Gerência de Dispositivos
2
Introdução
• É uma das principais e mais complexas funções de um SO.
• Sua implementação é estruturada através de camadas em um modelo semelhante ao
apresentado para um SO como um todo. • As camadas de mais baixo nível escondem
caracterísBcas dos disposiBvos das camadas
superiores, oferecendo uma interface simples e confiável ao usuário.
4
Introdução
• A diversidade dos disposiBvos de E/S exige que o SO tenha uma camada a mais (subsistema de E/S).
– Isola a complexidade dos disposiBvos Nsicos.
• Velocidade de operação, unidade de
transferência, representação dos dados, Bpos de operações e demais detalhes de cada
periférico são tratados pela camada de device driver.
– Oferece uma interface uniforme entre o subsistema
Subsistema de Entrada e Saída
• O SO deve tornar as operações de E/S o mais simples possível.
• O subsistema de E/S isola a complexidade de operações específicas para cada disposiBvo. • Aplicações podem manipular qualquer Bpo de
periférico com mais simplicidade.
• É composto por um conjunto de roBnas que possibilita a comunicação com qualquer
disposiBvo que possa ser conectado ao computador. São as chamadas ro2nas de entrada/saída.
6
Subsistema de Entrada e Saída
• As roBnas de E/S possibilitam a independência da aplicação com relação a caracterísBcas
específicas das arquiteturas dos disposiBvos.
• Duas maneiras de uma aplicação interagir com o subsistema de E/S:
– Chamada explícita: uma roBna de E/S do SO é
chamada diretamente por um código de alto nível. – Chamada implícita: maneira mais simples de acesso.
Usa comandos de leitura/gravação e chamadas a bibliotecas de roBnas oferecidas por linguagens de alto nível.
8
Subsistema de Entrada e Saída
• Operações podem ser classificadas segundo seu sincronismo.
– Síncronas: quando o processo que realizou a
operação fica aguardando no estado de espera pelo seu término.
– Assíncrono: quando o processo não aguarda pelo seu
término e conBnua pronto para ser executado. Exige um mecanismo de sinalização que avise ao processo quando for terminada a operação.
Subsistema de Entrada e Saída
• Cada disposiBvo trabalha com unidades de informações de tamanhos diferentes, como caracteres ou blocos.
• O subsistema de E/S é responsável por realizar as funções comuns a todos os Bpos de
disposiBvos.
– É responsável por criar uma unidade lógica de
transferência independente do disposiBvo e repassá-‐ lo para os níveis superiores sem o conhecimento da informação.
• Os aspectos específicos ficam a cargo da camada inferior.
10
Subsistema de Entrada e Saída
• Buffering: técnica que permite reduzir o número de operações de E/S.
– Quando um dado é lido do disco, o sistema traz para
a área de buffer não só o dado solicitado, mas um bloco de dados.
• Uma das principais funções do subsistema de E/S é criar uma interface padronizada com os device drivers.
Device Driver
• Tem a função de implementar a comunicação do subsistema de E/S com os disposiBvos
(controladores de E/S).
• Subsistema de E/S trata de funções ligadas a todos os disposiBvos.
• Drivers tratam apenas dos seus aspectos parBculares.
• Recebem comandos gerais sobre acessos aos disposiBvos e os traduzem para comandos específicos para os controladores.
12
Device Driver
• Trabalha em conjunto com o controlador, pois é ele quem reconhece as caracterísBcas
14
Device Driver
• Os drivers fazem parte do núcleo do SO, sendo geralmente escritos em Assembly.
• São códigos reentrantes que executam em modo kernel.
– Um erro em sua programação significa
compromeBmento no funcionamento do SO.
• Como cada disposiBvo tem sua forma única de funcionamento, cada fabricante é responsável por desenvolver os drivers de seus disposiBvos.
Controlador de Entrada e Saída
• Componentes de HW responsáveis por
manipular diretamente os disposiBvos de E/S. • Em geral, pode ser uma placa independente em
um slot ou implementado diretamente na placa mãe.
• O SO se comunica cos os disposiBvos através dos controladores.
• Possui memória e registradores próprios
uBlizados na execução de instruções enviadas pelo driver.
16
Controlador de Entrada e Saída
• Em operações de leitura, deve armazenar em seu buffer interno uma sequência de bits provenientes do disposiBvo até formar um bloco.
• Após verificar a ocorrência de erros, transfere os bits para a memória principal.
• Esta transferência pode ser realizada pela UCP ou por um controlador de DMA (Acesso Direto à
Memória).
• A técnica de DMA evita ocupar o processador com esta transferência.
• O controlador de DMA é um disposiBvo de HW que pode fazer parte do controlador ou ser
18
Controlador de Entrada e Saída
1. A UCP inicializa os registradores do controlador DMA e fica livre para realizar outras aBvidades. Resumindo, delega a ordem para o controlador. 2. O controlador DMA solicita para o controlador
de disco a transferência do bloco do disco para o buffer interno.
3. O disco envia para o controlador de DMA o bloco solicitado e o DMA faz a verificação de erros.
4. O controlador de DMA envia para a memória principal o bloco de dados.
20
DisposiBvos de Entrada e Saída
• São uBlizados para permiBr a comunicação entre o sistema computacional e o mundo externo.
• A transferência de dados ocorre por meio dos controladores.
• Podem ser classificados em duas categorias de acordo com a forma com que os dados são
armazenados.
– Disposi2vos estruturados: armazenam informações
em blocos de tamanhos fixos. Cada bloco possui um endereço que pode ser lido ou gravado de forma independente dos demais.
DisposiBvos de Entrada e Saída
– Disposi2vos estruturados (cont.).
• Acesso direto: quando um bloco pode ser recuperado
diretamente através de um endereço.
• Acesso sequencial: quando precisa-‐se percorrer
sequencialmente os demais blocos até encontrar o bloco desejado.
– Disposi2vos não-‐estruturados: aqueles que enviam o
recebem uma sequência de caracteres sem estar
estruturada no formato de um bloco. Esta sequência não é endereçável e não permite acesso direto ao dado. Terminais, impressoras e interfaces de rede.
22
Discos MagnéBcos
• Principal repositório de dados uBlizado pela maioria das aplicações e pelo próprio SO.
• É consBtuído por vários discos sobrepostos em um eixo verBcal, girando a uma velocidade constante. • É composto por trilhas concêntricas divididas em
setores.
• Trilhas dos diferentes discos que ocupam a mesma posição verBcal, formam um cilindro.
• Para cada superNcie de disco, existe um mecanismo
24
Discos MagnéBcos
• O tempo para leitura/gravação é função de três tempos disBntos:
– Tempo de seek: tempo para chegar até o cilindro do
bloco.
– Tempo de latência rotacional: tempo de espera até que o
disco gire e se alcance o setor desejado.
– Tempo de transferência: tempo necessário para a
transferência do bloco entre memória principal e o setor do disco.
26
Discos MagnéBcos
• RAID (Redundant Arrays of Inexpensive Disk): técnica de gerenciamento de discos que oBmiza operações de E/S e implementa redundância e proteção de dados.
• Cria-‐se um disposiBvo virtual conhecido como array de discos.
– Consiste de um grupo de discos Nsicos que são tratados pelo SO como se fosse um único disco.
• Grande capacidade de armazenamento, alto
Discos MagnéBcos
• RAID 0: striping.
– Implementação do chamado disk striping, que é
distribuir as operações de E/S entre os diversos discos Nsicos para ter melhor desempenho.
– Os dados são divididos entre os discos durante sua
gravação em seus diversos stripes.
– Não implementa qualquer Bpo de redundância.
28
Discos MagnéBcos
• RAID 1: Espelhamento.
– Consiste em replicar todo o conteúdo do disco
principal chamado primário, em um ou mais discos denominados espelhos ou secundários.
– A redundância garante que, no caso de falha do
disco primário, os discos-‐espelho sejam usados de forma transparente pelo SO.
– Toda operação de escrita realizada no disco primário
30
Discos MagnéBcos
• RAID 5: Acesso Independente com Paridade Distribuída.
– Consiste em distribuir os dados entre os discos do
array e implementar redundância baseada em paridade.
– A redundância é implementada através do cálculos
do valor de paridade dos dados e estes são armazenados nos discos junto com os dados.
– A capacidade úBl do subsistema de discos com esta
32