Sistemas
Operacionais
Capítulo 11
Gerência de Dispositivos
11.1 – Introdução
- Uma das principais e mais complexas funções
do Sistema Operacional.
- Implementada através de uma estrutura
de camadas de software e hardware.
- Procura oferecer uma interface simples e confiável
para o usuário e a aplicação.
- Esconde das camadas superiores, detalhes das
camadas inferiores.
- Dividido em dois grupos:
- O 1o Visualiza os dispositivos de um modo único.
- O 2o é específico para cada dispositivo.
- A maior parte da gerência de E/S trabalha
independentemente de dispositivo, permitindo a comunicação
dos processos com qualquer tipo de periférico, proporcionando
maior flexibilidade.
11.2 – Operações de Entrada/Saída
- O sistema deve tornar a tarefa o mais simples
possível.
- Independência de dispositivos - o sistema
deve se comunicar com qualquer tipo de dispositivo conectado ao
computador.
- Acesso à dispositivos através bibliotecas.
Linguagens de auto nível permitem portabilidade, como C ou
Pascal.
- A independência de dispositivos deve ser
realizada através de system calls, chamadas de system calls
de entrada/saída, presentes na camada de mais alto nível
implementada pelo sistema operacional.
- Permite o usuário acessar os dispositivos
sem se preocupar com detalhes.
- A comunicação é feita através
das bibliotecas e System Calls através de parâmetros.
- Objetivos da System Calls, neste caso, é
esconder do programador características associadas à
programação de cada dispositivo.
11.3 – Subsistema de Entrada/Saída
- Funções
- Realizar funções que são
comuns a todos os dispositivos.
- Criar uma unidade lógica de informações
independente de dispositivos e repassá-la para os níveis
superiores.
- Implementar todo o mecanismo de proteção
de acesso aos dispositivos.
- Mapear o nome do dispositivo com seu respectivo
driver. As camadas superiores acessam o dispositivo através
deste nome.
- Controlar os dispositivos de Entrada/Saída
de forma segura e confiável obtendo um maior compartilhamento.
- Bufferização, permitindo reduzir
o número de operações de Entrada/Saída,
utilizando-se de uma área de memória intermediária
chamada buffer.
- Aspectos e funções específicas
ficam a cargo dos device drivers.
- Normalmente, os erros são tratados nas
camadas mais próximas ao hardware, sendo que alguns podem
ser tratados independente de dispositivos.
11.4 – Device Drivers (driver)
- Principal função – comunicação
com dispositivos de Entrada/Saída em alto nível de
hardware, geralmente através de controladores, especificando
características físicas de cada dispositivo.
- Subsistemas de E/S trata de funções
que afetam todos os dispositivos e os Drivers tratam apenas dos
seus aspectos particulares.
- Cada Device Driver controla apenas um tipo de
dispositivo ou grupo de dispositivos semelhantes.
- Função de receber comandos gerais
sobre acessos aos dispositivos, geralmente System Calls, e traduzi-los
para comandos específicos para serem executados pelos controladores.
- Os drivers fazem parte do núcleo do Sistema
Operacional, sendo escritos geralmente em assembly.
- Normalmente são desenvolvidos, para o
mesmo dispositivo, diferentes devices drivers para cada sistema
operacional. Isto devido ao fato dos mesmos serem de alto grau de
dependência.
- Quando um novo dispositivo é adicionado,
este deve ser acoplado ao núcleo do sistema.
11.5 – Controladores (ou interfaces)
- São componentes eletrônicos (hardware)
responsáveis por manipular diretamente os dispositivos de
Entrada/Saída.
- Serve de comunicação do Sistema
Operacional com os Dispositivos.
- Em geral, possui memória e registradores
próprios para executar instruções enviadas
pelo device driver.
- Em operações de leitura, o controlador
armazena uma seqüência de bits vinda do dispositivo no
seu buffer interno e verifica a ocorrência de erros, não
havendo erros, o bloco é transmitido para a memória
principal.
- Na maioria dos dispositivos orientados a bloco,
como discos, é implementada a técnica de DMA para
transferência de dados entre o controlador e a memória
principal:
- O device driver executa as operações
de Entrada/Saída gravando os comandos nos registradores
do controlador.
- O controlador executa a operação
com o dispositivo enquanto a UCP pode realizar outras tarefas.
- O device driver, então, testa os resultados
através dos registradores do controlador.
- Alguns controladores, particularmente os de discos,
implementam técnicas de cache para melhorar o desempenho.
- SCSI (Small Computer Systems Interface)
- Padrão popular para conexão de
dispositivos ao computador.
- Inicialmente utilizado em RISC.
- Define padrões de hardware e software
que permitem conectar ao computador qualquer tipo de dispositivo,
mesmo de fabricantes diferentes.
- O Sistema Operacional deve estar configurado
com um driver SCSI e o hardware com um controlador SCSI onde os
periféricos são conectados.
11.6 – Dispositivos de Entrada/Saída
- Responsáveis pela comunicação
entre o computador e o mundo externo.
- Tipos de dispositivos quanto à Entrada/Saída
- Dispositivos somente para entrada de dados
(teclado, mouse).
- Dispositivos somente para saída de dados
(impressoras).
- Dispositivos para entrada e saída de
dados (modems, discos, fitas).
- Comunicação efetuada através
de blocos de informações ou palavra a palavra, realizando-se
a transfer6encia através de controladores de dispositivos
sob supervisão da UCP.
- Dispositivos Estruturados:
- Armazenam informações em blocos
de tamanho fixo, cada um com um endereço.
- Tamanho do bloco varia entre 128 e 1.024 bytes.
- Blocos pode ser lidos ou gravados de forma
independentes.
- Exemplo : Discos
- Acesso Direto – blocos de dados pode ser recuperado
diretamente através de um endereço, exemplo discos
magnéticos.
- Acesso seqüencial – para acessar um bloco
de dados, o dispositivo deve percorrer seqüencialmente o
meio de armazenamento à procura do bloco, exemplo, fita
magnética.
- Dispositivos não-Estruturados:
- Podem enviar ou receber uma seqüência
de caracteres sem estar estruturada no formato de um bloco.
- A seqüência de caracteres não
é endereçável, não podendo haver operações
de acesso ao dado após a transmissão.
- Exemplo: terminais, impressoras, interfaces
de rede.
11.7 – Discos Magnéticos
-
Pelo fator tempo ser um fator crucial no acesso aos dados, aspectos
como desempenho e segurança devem ser considerados.
-
O Disco é composto de diversos discos sobrepostos, unidos
por um mesmo eixo vertical, girando em velocidade constante.
-
Cada disco compõe-se de trilhas concêntricas, que estão
divididas em setores.
-
As trilhas dos diferentes discos que ocupam a mesma posição
vertical formam um cilindro.
-
Para cada superfície de um disco existe uma cabeça
de leitura/gravação.
-
O conjunto de cabeças é preso a um braço que
se movimenta entre os vários cilindros no sentido radial.
-
O tempo necessário para ler/gravar um bloco de dados é
em função de três fatores:
-
Tempo de procura – tempo gasto para mover o braço até
o cilindro onde o bloco se encontra.
-
Tempo de latência – tempo de espera até que o setor
desejado se posicione sob a cabeça de leitura/gravação.
-
Tempo de transferência – tempo necessário para ler/gravar
o bloco do/para o setor.
-
Em muitos casos, o fator que leva mais tempo é o tempo de
procura, são necessárias algumas estratégias
para minimizar o tempo de procura.
-
Copiar parte dos dados do disco para a memória principal
pode minimizar os tempos de procura e latência.
-
Técnicas que permitem aumentar o desempenho e segurança
do armazenamento de dados em disco:
-
Espelhamento :
-
Simples duplicação dos dados de um disco em um
ou mais discos.
-
Procura diminuir o tempo de acesso aso dados e aumentar a segurança
em caso de problemas físicos nos discos.
-
O sistema fica responsável a escolher o disco em que
o sistema realizará a operação requisitada.
-
Ambos os discos precisam ser atualizados pelo sistema.
-
Striping :
-
Permite que dados sejam divididos e gravados em diversos discos.
-
Procura diminuir o tempo de acesso.
- É
preciso formar um conjunto de discos chamado stripe set.
-
Quando o stripe set é criado, divide-se cada disco em
pedaços (stripes.
-
Sempre que um arquivo é gravado, seus dados são
espelhados simultaneamente pelos stripes dos diversos discos.
-
RAID (Redundant Array of Inexpensive Disks) – envolve a técnica
de espelamento e striping e definem diferentes níveis para
melhoria do desempenho e segurança de armazenamento de dados
em dicos.
[voltar]
|