Sistemas Operacionais Gerência de Dispositivos

Propaganda
Universidade Estadual de Mato Grosso do Sul – UEMS
Curso de Licenciatura em Computação
Sistemas Operacionais
Gerência de Dispositivos
Prof. José Gonçalves Dias Neto
[email protected]
Introdução
A gerência de dispositivos é estruturada em um modelo
de camadas;
Camadas de mais baixo nível escondem características
dos dispositivos das camadas superiores;
Deve fornecer interface simples, confiável e padronizada
ao usuário e suas aplicações;
Algumas camadas dizem respeito apenas a funções em
Software, já outras estão fisicamente implantadas
(Hardware).
Arquitetura em Camadas do
Gerenciamento de Dispositivos
Subsistema de Entrada e Saída
Isola a complexidade de operações específicas para
cada tipo de dispositivo das diversas outras camadas.
É composto por um conjunto de rotinas que permitem ao
usuário realizar operações de E/S sem se preocupar
com detalhes dos dispositivos.
Permite a independência da aplicação com relação a
características especificas das arquiteturas dos
diferentes dispositivos.
É possível escrever um programa que manipule
arquivos, estejam eles em discos rígidos, flexíveis, fita
magnética ou outros, sem alterar o código fonte.
Subsistema de Entrada e Saída
Aplicações podem realizar rotinas de E/S em dados
logicamente estruturados segundo o sistema de
arquivos (discos e fitas) como também dados não
estruturados (monitor, impressora).
Operações de E/S podem ser:
Sincronas: processo que realizou a operação fica aguardando no
estado de bloqueado pelo seu término;
Assincrona: Processo continua pronto para execução.
Este nível é responsável por implementar todo o mecanismo de
proteção de acesso ao dispositivo (permitindo ou não acesso
exclusivo).
Subsistema de Entrada e Saída
Subsistema de Entrada e Saída
Utiliza da técnica de buffering para reduzir o número de
operações de E/S.
Uma das principais funções é criar uma interface
padronizada com os device drivers.
Erros de E/S são tratados normalmente em níveis mais
próximos ao hardware;
Alguns erros como gravação em dispositivos de entrada,
leitura em dispositivos de saída e operações em
dispositivos inexistentes podem ser tratados neste nível.
Quanto um usuário realiza uma operação de E/S, é
verificado no susbsistema de E/S se o seu processo
possui permissão para tal operação.
Device Driver
Tem a função de implementar a comunicação do
subsistema de E/S com os dispositivos, por intermédio
dos controladores de E/S.
Enquanto o subsistema de E/S trata de funções ligadas a
todos os dispositivos, os Drivers tratam apenas dos
seus aspectos particulares.
Os drivers recebem comandos gerais sobre acesso aos
dispositivos e os traduz para comandos específicos.
Um driver manipula somente um tipo de dispositivo, ou
grupo de dispositivos semelhantes.
Realiza também funções como inicialização do dispositivo
e seu gerenciamento.
Device Driver
Device driver fazem parte do núcleo (kernel) do sistema.
São escritos normalmente em Assembly.
Os drivers são dependentes do restante do Sistema
Operacional, por isso existem drivers específicos para
cada SO.
Sempre que um novo dispositivo é instalado, o driver do
dispositivo deve ser adicionado ao núcleo do sistema.
Sistemas mais antigos, ao adicionar um driver é necessário
recompilar o kernel.
Sistemas mais novos permitem a instalação de novos
drivers sem nem mesmo reiniciar o SO.
Device Driver
Controlador de E/S
São componentes de hardware que manipulam diretamente os
dispositivos de E/S.
Os drivers comunicam-se com os dispositivos através dos
controladores de E/S.
Os controladores possuem memória e registradores próprios.
--------------------------------------------------------------------------------Em operações de leitura, o controlador deve armazenar em buffer interno
uma sequencia de bits provenientes do dispositivo, até formar um
bloco.
É realizada a verificação de erros;
Após isso o bloco pode ser transferido para o buffer de E/S na RAM.
Essa transferência pode ser feita por CPU ou via DMA (Direct Memory
Access).
Controlador de E/S
Controlador de E/S
Operação de leitura com DMA:
→ CPU através do driver inicializa os registradores da DMA,
ficando livre para realizar outras atividades;
→ a DMA solicita ao controlador para realizar o buffer interno do
bloco a ser lido;
→ o controlador armazena em buffer os bits até completar o
bloco necessário e verifica a existência de erros.
→ Caso não haja erros, a DMA transfere o bloco do buffer interno
do controlador para o buffer de E/S na memória principal.
→ ao término a DMA gera uma interrupção avisando que o bloco
está disponível em memória principal.
Controlador de E/S
Discos Magnéticos
Principal meio de armazenamento de dados, inclusive do próprio
sistema operacional.
Constituído por vários discos sobrepostos, unidos por um mesmo
eixo, giram em uma velocidade constante.
Cada disco é formado por trilhas concêntricas, que por sua vez são
formadas por setores.
As trilhas dos diversos discos que ocupam a mesma posição vertical
é denominado cilindro.
Existe um mecanismo de leitura/gravação que é capaz de percorrer
toda a superfície dos diversos discos através de um braço de
deslocamento.
O tempo de leitura/gravação de um bloco no disco é obtido em
função de 3 (três) atributos: tempo de seek, latência rotacional e
latência de transferência.
Discos Magnéticos
Discos Magnéticos
Tempo de seek: tempo gasto no posicionamento da
cabeça de leitura/gravação até o cilindro correto.
Latência rotacional: Tempo gasto até que o setor correto
atinja a cabeça de leitura/gravação.
Latência de transferência: tempo gasto para a
transferência do bloco entre memória principal e o setor
do disco (e vice-versa).
*O tempo de seek costuma ser o fator de maior impacto no baixo
desempenho dos discos magnéticos.
Discos Magnéticos
Desempenho, Redundância e
Proteção
No final da década de 1980, pesquisadores
desenvolveram a técnica de RAID (Redundant
Arrays of Inexpensive Disk).
Consiste em uma técnica que organiza os dados em
múltiplos discos para prover desempenho,
redundância e/ou proteção.
Existem 7 níveis de RAID.
O RAID pode ser implementado:
→ Diretamente na controladora de disco;
→ Por software (sistema operacional);
→ ou por um gerenciador externo de disco – JBOD(Just a Bunch
of Disks)
Desempenho, Redundância e
Proteção
RAID 0 - Striping
Distribui as operações de E/S entre os diversos discos
físicos contidos no array.
Seu intuito é aumentar desempenho.
Como os dados são divididos entre os diversos discos, as
operações podem ser realizadas paralelamente.
É necessário formar um stripe set (conjunto de discos
físicos);
Cada disco é divido em pedaços denominados stripes;
Ao gravar um arquivos, este é divido em pedaços iguais e
enviados para cada disco simultaneamente.
Caso haja falha em um dos discos, a informação é
definitivamente perdida.
RAID 0 - Striping
RAID 1 - Mirroring
Replica todo o conteúdo de cada disco em um
novo disco. (espelhamento)
Garante alta confiabilidade, pois caso falhe um
disco principal, haverá seu espelho para
manter os dados disponíveis.
Custo elevado pois sempre será necessário o
dobro de espaço para armazenar qualquer
dado.
RAID 1 - Mirroring
RAID 5 - Acesso independe com
paridade distribuída
Um dos níveis mais implementados de RAID.
Distribui os dados entre os discos e implementa
redundância baseada em paridade.
Caso haja falha em algum dos discos, através de
um algoritmo e do strip de paridade, é
possível recuperar os dados perdidos.
Exigem um pequeno gasto adicional com
informação de controle (paridade).
Possui overhead para que o strip de paridade
seja gerenciado.
RAID 5 – Acesso independente com
paridade distribuída
Combinações: RAID 0+1
É uma combinação dos níveis 0 (Striping) e 1
(Mirroring);
Aqui os dados são divididos entre os discos para
melhorar o rendimento, mas também utilizam outros
discos para duplicar as informações.
O RAID 0 + 1 o mais rápido e seguro, porém de
custosa implementação.
Se um dos discos vier a falhar, o sistema vira um
RAID 0.
Combinações:
Combinações: RAID 1+0
É uma nova combinação dos níveis 1 e 0;
Cada par será espelhado, garantindo redundância, e os pares
serão distribuídos, melhorando desempenho.
Até metade dos discos pode falhar simultaneamente, sem
colocar o conjunto a perder, desde que não falhem os dois
discos de um espelho qualquer;
Vantagens:
✔ segurança contra perda de dados;
✔ pode falhar um dos HDs por par ao mesmo tempo;
Desvantagens:
✗ alto custo de expansão de hardware;
Combinações: RAID 1+0
Download