Dispositivos de E/S Sistemas Operacionais (SOPBCC) De: Andrew S. Tanenbaum Tradução: Ronaldo A.L. Gonçalves Luís A. Consulado
Responsável pela disciplina: Prof. Dr. Maurício Aronne Pillon Curso de Ciência da Computação
1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Entrada/Saída • Princípios do hardware de E/S • Princípios do software de E/S • Camadas do software de E/S • Discos Magnéticos • Escalonamento de Disco
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
2
Princípios de Hardware
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
3
Princípios do Hardware de E/S • Dispositivos são catalogados em: – Orientados a blocos → armazena as informações em blocos de tamanhos fixos (512 a 32 768 bytes); – Orientados a caracteres → envia e recebe fluxo de caracteres sem considerar a estrutura de blocos; – Relógios?! Não são endereçáveis por blocos nem enviam ou recebem fluxos de caracteres. Simplesmente causam interrupções.
• Existe uma ampla variação de velocidades entre os dispositivos de E/S; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
4
Princípios do Hardware de E/S
Taxas de dados típicas de dispositivos, redes e barramentos Pearson Education Sistemas Operacionais Modernos – 2ª Edição
5
Controladores de Dispositivos • Componentes de dispositivos de E/S – mecânico – eletrônico
• O componente eletrônico é o controlador do dispositivo (adaptador) – pode ser capaz de tratar múltiplos dispositivos
• Tarefas do controlador – converter fluxo serial de bits em bloco de bytes – executar toda correção de erro (ECC) necessária – tornar o bloco disponível para ser copiado para a memória principal Pearson Education Sistemas Operacionais Modernos – 2ª Edição
6
E/S Mapeada na Memória • Cada controlador tem alguns registradores usados para comunicação com a CPU; • Por meio da escrita nesses registradores que o sistema operacional comanda o dispositivo; • A partir da leitura desses registradores que o sistema operacional pode descobrir o estado do dispositivo; • Como a CPU se comunica com os registradores dos controladores e com os buffers de dados dos dispositivos?
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
7
E/S mapeada na memória (1)
a) Espaços de memória e E/S separados b) E/S mapeada na memória c) Híbrido Pearson Education Sistemas Operacionais Modernos – 2ª Edição
8
E/S Mapeada na memória • Vantagens: – Registradores de controles são apenas variáveis na memória e podem ser endereçadas em C; – Não é necessário mecanismo de proteção especial para impedir o acesso a processos usuários. – Instruções que permitam referenciar a memória podem ser usadas para referenciar registradores de controle; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
9
E/S Mapeada em memória • Desvantagens: – Requer o uso de código assembly para ler/escrever nos registradores; – Custo adicional ao controle de E/S devido ao uso de código em assembly; – Uso de cache para as palavras de memória é desastroso; – Espaço de endereçamento único implica que os módulos de memória e dispositivos devem verificar todas as referências de memórias; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
10
Acesso direto a memória • Necessidade de endereçar os controladores dos dispositivos para poder trocar dados; • A CPU pode solicitar ao controlador byte a byte (grande desperdício de tempo); • DMA – o controlador tem acesso ao barramento de sistema independente da CPU. – Registrador de endereço de memória – Registrador contador de bytes – Registradores (um ou mais) de controle Pearson Education Sistemas Operacionais Modernos – 2ª Edição
11
Acesso direto a memória • Sem o auxílio do DMA – Controlador efetua a leitura do bloco (serialmente, bit a bit); – Calcula o soma de verificação (verificação de erros); – Causa a interrupção; – Sistema operacional pode ler o bloco do buffer do controlador (um byte ou uma palavra de cada vez); – Armazena na memória principal;
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
12
Acesso direta a memória • Com o DMA ativo: – (1) CPU programa o controlador de DMA (o que transferir e o destino destes blocos de dados); – (1) CPU ordena ao disco o carregamento de dados para o seu buffer interno e verificação da soma; – (1) DMA é chamado quando os dados encontramse no buffer e são válidos; – (2) DMA solicita uma requisição de leitura para o disco; – (3) Disco transfere os dados para a memória Pearson Education Sistemas Operacionais Modernos – 2ª Edição
13
Acesso direto à memória • Com o DMA ativo: – (4) Controlador de disco envia sinal de confirmação para o controlador de DMA; – Quando a transferência é finalizada o DMA interrompe a CPU. • Os controladores de DMA variam, alguns atendem uma única solicitação por vez, outros múltiplas solicitações simultâneas. Pearson Education Sistemas Operacionais Modernos – 2ª Edição
14
Acesso Direto à Memória (DMA)
Operação de uma transferência com DMA Pearson Education Sistemas Operacionais Modernos – 2ª Edição
15
Interrupções revisadas • Funcionamento de interrupções: – Quando um dispositivo de E/S finaliza seu trabalho, ele gera uma interrupção; – Isto é feito através do envio de um sinal pela linha de barramento à qual está associado; – O sinal é detectado pelo chip controlador de interrupção localizado na placamãe; – O sinal de interrupção faz com que a CPU pare de executar a tarefa atual e trate da interrupção. Pearson Education Sistemas Operacionais Modernos – 2ª Edição
16
Interrupções Revisitadas
Como ocorre uma interrupção. Conexões entre dispositivos e controlador de interrupção usam linhas de interrupção no barramento em vez de fios dedicados Pearson Education Sistemas Operacionais Modernos – 2ª Edição
17
Princípios do Software de E/S
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
18
Objetivos do Software de E/S • • • •
Tornar o acesso independente de dispositivo; Tratamento de erros; Tipo de transferência (síncrona/assíncrona); Controle do buffer temporário;
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
19
Princípios do Software de E/S Objetivos do Software de E/S (1) • Independência de dispositivo – Programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (disquete, disco rígido ou CDROM)
• Nomeação uniforme – Nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um número inteiro que é independente do dispositivo
• Tratamento de erro – Trata o mais próximo possível do hardware Pearson Education Sistemas Operacionais Modernos – 2ª Edição
20
Objetivos do Software de E/S (2) • Transferências Síncronas vs. Assíncronas – transferências bloqueantes vs. orientadas a interrupção – utilização de buffer para armazenamento temporário – dados provenientes de um dispositivo muitas vezes não podem ser armazenados diretamente em seu destino final
• Dispositivos Compartilháveis vs. Dedicados – discos são compartilháveis – unidades de fita não são Pearson Education Sistemas Operacionais Modernos – 2ª Edição
21
Técnicas para realização de E/S • E/S programada • E/S orientada a interrupções • Acesso direto a memória
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
22
E/S Programada • CPU controla todas as etapas; • Um usuário deseja imprimir a cadeia de caracteres ABCDEFGH; – O buffer é transferido do espaço usuário para o espaço núcleo; – O sistema operacional passa a enviar (caractere à caractere) a cadeia ao espaço de memória do dispositivo (E/S mapeada na memória);
• Espera ociosa (desperdício da CPU); Pearson Education Sistemas Operacionais Modernos – 2ª Edição
23
E/S Programada (1)
Passos da impressão de uma cadeia de caracteres Pearson Education Sistemas Operacionais Modernos – 2ª Edição
24
E/S Programada (2)
Escrita de uma cadeia de caracteres para a impressora usando E/S programada Pearson Education Sistemas Operacionais Modernos – 2ª Edição
25
E/S orientada à interrupção • Considere uma impressora que não armazena os caracteres, imprimeos a medida que eles chegam; • Objetivo excluir o tempo de espera ociosa da CPU; – O buffer do usuário é copiado para o espaço de endereçamento do núcleo; – A CPU envia um caractere e faz um chaveamento de contexto; – Assim que a impressora finalizar o processo de escrita, ela gera uma interrupção; • Desvantagem: a ocorrência da interrupção para cada caractere; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
26
E/S usando DMA • Funcionamento: o controlador DMA responsabilizase pelo envio (caractere a caractere) ao dispositivo; • Vantagem: reduzir o número de interrupções de um por caractere para um por buffer;
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
27
Camada do Software de E/S
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
28
Camadas do Software de E/S
Camadas do sistema de software de E/S Pearson Education Sistemas Operacionais Modernos – 2ª Edição
29
Tratadores de Interrupção (1) •
As interrupções devem ser escondidas o máximo possível – uma forma de fazer isso é bloqueando o driver que iniciou uma operação de E/S até que uma interrupção notifique que a E/ S foi completada
•
Rotina de tratamento de interrupção cumpre sua tarefa – e então desbloqueia o driver que a chamou Pearson Education Sistemas Operacionais Modernos – 2ª Edição
30
Tratadores de Interrupção (2) •
Passos que devem ser executados em software depois da interrupção ter sido concluída
2.
salva registradores que ainda não foram salvos pelo hardware de interrupção 3. estabelece contexto para rotina de tratamento de interrupção 4. estabelece uma pilha para a rotina de tratamento de interrupção 5. sinaliza o controlador de interrupção, reabilita as interrupções 6. copia os registradores de onde eles foram salvos 7. executa rotina de tratamento de interrupção 8. escolhe o próximo processo a executar 9. estabelece o contexto da MMU para o próximo processo a executar 10. carrega os registradores do novo processo 11. começa a executar o novo processo Pearson Education Sistemas Operacionais Modernos – 2ª Edição
31
Drivers dos dispositivos • Cada controlador possui registradores para comandos e status; • O número de registradores variam de dispositivo para dispositivo; • Cada dispositivo de E/S precisa de um código específico de tratamento (driver do dispositivo); • Em geral, os drivers são escritos pelo fabricante; • É desejável que um driver trate de uma classe de dispositivos; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
32
Drivers dos dispositivos • Duas grandes categorias: – Dispositivos de bloco: discos ...; – Dispositivos de caractere: teclado, impressora ...
• Em geral, os sistemas operacionais definem uma interface padrão para cada categoria. • Alguns funções de um driver: – Tratar requisições abstratas de leitura ou gravação independente do dispositivo; – Iniciar o dispositivo; – Tratar necessidade de energia – Tratar eventos; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
33
Drivers dos Dispositivos
• Posição lógica dos drivers dos dispositivos • A comunicação entre os drivers e os controladores de dispositivos é feita por meio do barramento Pearson Education Sistemas Operacionais Modernos – 2ª Edição
34
Software de E/S Independente de Dispositivo (1) Interface uniforme para os drivers dos dispositivos Armazenamento em buffer Relatório dos erros Alocação e liberação de dispositivos dedicados Fornecimento de tamanho de bloco independente de dispositivo
Funções do software de E/S independente de dispositivo Pearson Education Sistemas Operacionais Modernos – 2ª Edição
35
Software de E/S Independente de Dispositivo (2)
(a) Sem uma interfacepadrão do driver (b) Com uma interfacepadrão do driver Pearson Education Sistemas Operacionais Modernos – 2ª Edição
36
Software de E/S Independente de Dispositivo (3)
a) b) c) d)
Entrada sem utilização de buffer Utilização de buffer no espaço do usuário Utilização de buffer no núcleo seguido de cópia para o espaço do usuário Utilização de buffer duplo no núcleo Pearson Education Sistemas Operacionais Modernos – 2ª Edição
37
Relatório dos erros • Erros de programação: – Escrever em um dispositivo de entrada (teclado); – Fornecimento de endereços inválidos; – Atitude a ser tomada, retornar o código (tipo) de erro ocorrido ao processo envolvido;
• Erros reais de E/S: – Tentativa de escrita em um bloco danificado; – Atitude deve ser decidida pelo driver. Pearson Education Sistemas Operacionais Modernos – 2ª Edição
38
Alocação e liberação de dispositivos dedicados • Alguns dispositivos, tais como gravadores de CD/DVD, podem ser usados por apenas um único processo por vez; • Associar chamadas de sistemas diretamente ao dispositivo (open);
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
39
Software de E/S no Espaço do Usuário
Camadas do sistema de E/S e as principais funções de cada camada Pearson Education Sistemas Operacionais Modernos – 2ª Edição
40
Discos Magnéticos
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
41
Discos magnéticos • Leituras e escritas igualmente rápidas; • Adequados ao uso de memórias secundárias (paginação, segmentação, etc); • Organização de discos: – Cilindros; – Trilhas; – Setores;
• Pode ou não possuir um microcontrolador no próprio disco. Pearson Education Sistemas Operacionais Modernos – 2ª Edição
42
Discos Hardware do Disco (1)
• Posicionamento (7X) X capacidade (50milX); • Progresso expressivo na densidade de bits das superfícies de gravação; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
43
Desempenho dos Discos • Desempenho dos processadores (2X a cada 18 meses) avançam mais rapidamente do que o dos discos; • Tempo de posicionamento nos discos: – Década de 70 de 50 a 100ms; – Atuais ~10ms;
• Como amenizar este problema? Paralelizando as tarefas. Pearson Education Sistemas Operacionais Modernos – 2ª Edição
44
RAID • E/S Paralela, melhor desempenho e confiança; • RAID (Redundant array of inexpensive/ Independent disks) • Idéia de base: – Instalar uma caixa cheia de discos próxima ao computador; – Substituir a controladora padrão por uma mais complexa, a controladora RAID; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
45
Níveis de RAID • RAID 0: o disco é dividido em unidade de distribuição (strips); • RAID 1: espelhamento (mirroring); • RAID 2: sincronizados (trilhas e setores posicionados no mesmo ponto). Com código de correção de erros (Código de Hamming); • RAID 3: semelhante ao RAID 2, porém com paridade; • RAID 4: independente (não sincronizado). Paridade por faixa; • RAID 5: semelhante ao RAID4, porém com a paridade distribuída entre os discos; Pearson Education Sistemas Operacionais Modernos – 2ª Edição
46
Hardware do Disco (3)
• RAIDs níveis 0 a 2 • Discos de segurança e de paridade são os sombreados Pearson Education Sistemas Operacionais Modernos – 2ª Edição
47
Hardware do Disco (4)
• RAIDs níveis 3 a 5 • Discos de segurança e de paridade são os sombreados Pearson Education Sistemas Operacionais Modernos – 2ª Edição
48
Controle de Erros • Princípio – Inclusão de informações redundantes junto com cada bloco de dados gravados. • Identificação de um erro • Deduzir o conteúdo que deveria estar escrito
mensagem n bits
redundância r bits
m bits = n bits + r bits > Palavra de Código
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Correção de erros • Código de Hamming – Bits que são potência de 2 são bits de verificação • 1,2,4,8,16 etc
– Os demais bits são preenchidos com os m bits de dados. – Como descobrir quais são os bits de verificação de um bit de dados? • Bit de dados 11 = 1 + 2 + 8 • Bit de dados 29 = 1 + 4 + 8 + 16 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Correção de um único erro Bits de dados Bits de teste Porcentagem de aumento 8 4 50 16
5
31,25
32
6
18,75
64
7
10,94
128
8
6,25
256
9
3,52
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Correção de Erros (Exemplo) – Palavra de 8bits = m1 ... m8 – Palavra de 12bits c/ código de hammig = x1 ... x12 – Bits de dados: • • • • • • • •
x3=m1; x5=m2; x6=m3; x7=m4; x9=m5; x10=m6; x11=m7; x12=m8;
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Correção de erro (cont) – Bits de verificação: – – – – – – – –
x1 = x3 + x5 + x7 + x9 + x11 x2 = x3 + x6 + x7 + x10 + x11 x4 = x5 + x6 + x7 + x12 x8 = x9 + x10 + x11+ x12 k1 = y1 + y3 + y5 + y7 + y9 + y11 k2 = y2 + y3 + y6 + y7 + y10 + y11 k3 = y4 + y5 + y6 + y7 + y12 k4 = y8 + y9 + y10 + y11 + y12 » Se k4 k3 k2 k1 for zero não há erro » Senão bit representado por k4 k3 k2 k1 está incorreto! » O sinal + representa a operação ou exclusivo.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Escalonamento de braço de disco • FCFS (First Come First Served) • SSTF (Shortest Seek Time First) • SCAN (algoritmo do elevador)
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Algoritmos de Escalonamento de Braço de Disco (2)
Algoritmo de escalonamento de disco Posicionamento Mais Curto Primeiro (SSF) Pearson Education Sistemas Operacionais Modernos – 2ª Edição
55
Algoritmos de Escalonamento de Braço de Disco (3)
O algoritmo do elevador para o escalonamento das requisições do disco Pearson Education Sistemas Operacionais Modernos – 2ª Edição
56