PublicouCatarina Ribeiro Alterado mais de 6 anos atrás
1 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula 17 – Gerenciamento de Dispositivos de Entrada/Saída (E/S) Profa. Sarita Mazzini Bruschi Slides de autoria de Luciana A. F. Martimiano baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
2 Dispositivos de E/S Princípios de Software
Organizar o software como uma série de camadas facilita a independência dos dispositivos: Camadas mais baixas apresentam detalhes de hardware: Drivers e manipuladores de interrupção; Camadas mais altas apresentam interface para o usuário: Aplicações de Usuário; Chamadas de Sistemas; Software Independente de E/S ou Subsistema de Kernel de E/S;
5 Dispositivos de E/S Princípios de Software - Camadas
Drivers: São gerenciados pelo kernel do SO; Contêm todo o código dependente do dispositivo; Controlam o funcionamento dos dispositivos por meio de seqüência de comandos escritos/lidos nos/dos registradores da controladora; Dispositivos diferentes possuem drivers diferentes; Classes de dispositivos podem ter o mesmo driver; São dinamicamente carregados; Drivers defeituosos podem causar problemas no kernel do SO;
6 Dispositivos de E/S Princípios de Software - Camadas
Comunicação feita por barramento;
8 Dispositivos de E/S Princípios de Software - Camadas
Software de E/S no nível Usuário: Bibliotecas de E/S são utilizadas pelos programas dos usuários Chamadas ao sistema (system calls);
9 Dispositivos de E/S Princípios de Software - Camadas
Software Independente de E/S: Realizar as funções comuns a qualquer dispositivos; Prover uma interface uniforme para os drivers dos dispositivos Número de procedimentos que o restante do SO pode utilizar para fazer o driver trabalhar para ele; Fazer o escalonamento de E/S; Atribuir um nome lógico a partir do qual o dispositivo é identificado; Ex.: UNIX  (/dev) Prover buffering: ajuste entre a velocidade e a quantidade de dados transferidos; Cache de dados: armazenar na memória um conjunto de dados freqüentemente acessados;
10 Dispositivos de E/S Princípios de Software - Camadas
11 Dispositivos de E/S Princípios de Software - Camadas
Software Independente de E/S: Reportar erros e proteger os dispositivos contra acessos indevidos : Programação: Ex.: tentar efetuar leitura de um dispositivo de saída (impressora, vídeo); E/S: Ex.: tentar imprimir em uma impressora desligada ou sem papel; Memória: escrita em endereços inválidos; Gerenciar alocação, uso e liberação dos dispositivos  acessos concorrentes;
12 Dispositivos de E/S Princípios de Software
Software Independente de E/S: Transferência de dados: Síncrona (bloqueante): requer bloqueio até que os dados estejam prontos para transferência; Assíncrona (não-bloqueante): transferências acionadas por interrupções; mais comuns; Tipos de dispositivos: Compartilháveis: podem ser utilizados por vários usuários ao mesmo tempo; Exemplo: disco rígido; Dedicados: podem ser utilizados por apenas um usuário de cada vez; Exemplo: impressora, unidade de fita;
13 Dispositivos de E/S - Ciclo de E/S
14 Dispositivos de E/S - Ciclo de E/S Seqüência da Figura anterior
Um processo emite uma chamada de sistema bloqueante (por exemplo: read) para um arquivo que já esteve aberto (open); O código da chamada de sistema verifica os parâmetros. Se os parâmetros estiverem corretos e o arquivo já estiver no buffer (cache), os dados retornam ao processo e a E/S é concluída; Se os parâmetros estiverem corretos, mas o arquivo não estiver no buffer, a E/S precisa ser realizada; E/S é escalonada; Subsistema envia pedido para o driver;
15 Dispositivos de E/S - Ciclo de E/S Seqüência da Figura anterior
Driver aloca espaço de buffer, escalona E/S e envia comando para a controladora do dispositivo escrevendo nos seus registradores de controle; Driver pode usar a DMA; A controladora do dispositivo opera o hardware, ou seja, o dispositivo propriamente dito; Após a conclusão da E/S, uma interrupção é gerada; A rotina de tratamento de interrupções apropriada recebe a interrupção via vetor de interrupção, armazena os dados, sinaliza o driver e retorna da interrupção;
16 Dispositivos de E/S - Ciclo de E/S Seqüência da Figura anterior
17 Dispositivos de E/S - Discos
Cada superfície é dividida em trilhas; Cada trilha é dividida em setores ou blocos (512 bytes a 32K); Um conjunto de trilhas (com a mesma distância do eixo central) formam um cilindro; Cabeças de leitura e gravação; Tamanho do disco: nº cabeças (faces) x nº cilindros (trilhas) x nº setores x tamanho_setor; superfície cabeçote Disco Magnético
18 Dispositivos de E/S - Discos
Discos Magnéticos: Grande evolução em relação a: Velocidade de acesso (seek): tempo de deslocamento do cabeçote até o cilindro correspondente à trilha a ser acessada; Transferências: tempo para transferência (leitura/escrita) dos dados; Capacidade; Preço;
19 Dispositivos de E/S - Discos
20 Dispositivos de E/S - Discos
21 Dispositivos de E/S - Discos
Drivers de Disco: Fatores que influenciam tempo para leitura/escrita no disco: Velocidade de acesso (seek)  tempo para o movimento do braço até o cilindro; Delay de rotação (latência)  tempo para posicionar o setor na cabeça do disco; Tempo da transferência dos dados; Tempo de acesso: Tseek + Tlatência* + Ttransferência; * Tempo necessário para o cabeçote se posicionar no setor de escrita/leitura;
22 Dispositivos de E/S – Discos
Algoritmos de escalonamento no disco: FCFS (FIFO)  First-Come First-Served; SSF  Shortest Seek First; Elevator (também conhecido como SCAN); Escolha do algoritmo depende do número e do tipo de pedidos; Driver mantém uma lista encadeada com as requisições para cada cilindro;
23 Dispositivos de E/S - Discos
24 Dispositivos de E/S - Discos
25 Dispositivos de E/S - Discos
26 Dispositivos de E/S – Discos RAID
RAID (Redundant Array of Independent Disks)  armazena grandes quantidades de dados; RAID combina diversos discos rígidos em uma estrutura lógica: Aumentar a confiabilidade, capacidade e o desempenho dos discos; Recuperação de dados  redundância dos dados; Armazenamento simultâneo em vários discos permite que os dados fiquem protegidos contra falha (não simultânea) dos discos; Performance de acesso, já que a leitura da informação é simultânea nos vários dispositivos;
27 Dispositivos de E/S – Discos RAID
Pode ser implementado por: Hardware (controladora): Instalação de uma placa RAID no servidor, o subsistema RAID é implementado totalmente em hardware; Libera o processador para se dedicar exclusivamente a outras tarefas; A segurança dos dados aumenta no caso de problemas devido à checagem da informação na placa RAID antes da gravação;
28 Dispositivos de E/S – Discos RAID
Pode ser implementado por: Software (sistema operacional) Menor desempenho no acesso ao disco; Oferece um menor custo e flexibilidade; Sobrecarrega o processador com leitura/escrita nos discos; Para o SO existe um único disco;
29 Dispositivos de E/S – Discos RAID
A forma pela qual os dados são escritos e acessados define os níveis de RAID (até 9 níveis): RAID 0: Também conhecido como Stripping; Arquivos são espalhados entre os discos em stripes; Melhora desempenho das operações de E/S; Sem controle ou correção de erros; Todo o espaço do disco é utilizado para armazenamento; Utilizam mesma controladora (controladora RAID); Aplicações multimídia (alta taxa de transferência);
30 Dispositivos de E/S – Discos RAID
31 Dispositivos de E/S – Discos RAID
Conhecido como espelhamento (mirroring); Operações de escrita no disco primário são replicadas em um disco secundário; Pode ter controladoras diferentes; Desvantagem: espaço físico em dobro (alto custo); Transações on-line (tolerância a falhas); RAID 10: Combinação dos RAID 1 e RAID 0;
32 Dispositivos de E/S – Discos RAID
33 Dispositivos de E/S – Discos RAID
Dados são armazenados em discos diferentes com paridade (permite reconstruir dados perdidos); Stripes; Paridade é mantida em um disco apenas; Diferença básica: como a paridade é calculada (na transferência): Raid 2 - Hamming ECC (error-correcting codes)– nível de bit; Raid 3 - XOR ECC - nível de byte ou bit; Raid 4 – XOR ECC - nível de bloco; RAID 5: Stripes; Paridade XOR ECC distribuída - nível de bloco; Paridade está distribuída nos discos; RAID 6: Raid 5 com dois discos de paridade;