io

3,465 views

Published on

io

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,465
On SlideShare
0
From Embeds
0
Number of Embeds
84
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

io

  1. 1. Entrada e Saída I/O
  2. 2. Princípios Básicos de Hardware <ul><li>Periférico </li></ul><ul><ul><li>Dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo. </li></ul></ul><ul><ul><li>Conectados ao computador através de um componente de hardware denominado interface . </li></ul></ul><ul><li>Interface </li></ul><ul><ul><li>Interconectadas ao barramento interno do computador. </li></ul></ul><ul><ul><li>Elemento chave na coordenação da transferência de dados. </li></ul></ul><ul><ul><li>Utilizam um processador dedicado a controladora . </li></ul></ul><ul><li>Controladora </li></ul><ul><ul><li>Processador dedicado a realização das operações de entrada e saída. </li></ul></ul>
  3. 3. Arquitetura de entrada e saída barramento memória CPU disco vídeo rede Dispositivo de I/O: possui uma parte mecânica e outra eletrônica
  4. 4. Dispositivos de Entrada e Saída <ul><li>Classificados como: </li></ul><ul><ul><li>orientado a caractere </li></ul></ul><ul><ul><ul><li>unidade de transferência é o caractere </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: teclado, interface serial </li></ul></ul></ul></ul><ul><ul><li>orientado a bloco </li></ul></ul><ul><ul><ul><li>unidade de transferência de dados é um bloco de caracteres (fixo) </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: disco, fitas DAT </li></ul></ul></ul></ul><ul><ul><li>Obs: </li></ul></ul><ul><ul><ul><li>Alguns dispositivos não se enquadram nesta classificação </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: relógio, memória de vídeo mapeada em E/S </li></ul></ul></ul></ul>
  5. 5. Dispositivos de Entrada e Saída <ul><li>Classificados de acordo com o tipo de entidade que interagem </li></ul><ul><ul><ul><li>Com usuário </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: vídeo, teclado, mouse, impressora, . . . </li></ul></ul></ul></ul><ul><ul><ul><li>Com dispositivos eletrônicos </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: disco, fitas, atuadores, controladores, . . . </li></ul></ul></ul></ul><ul><ul><ul><li>Com dispositivos remotos </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: modem, interfaces de rede </li></ul></ul></ul></ul>
  6. 6. Dispositivos de Entrada e Saída <ul><li>Apresentam características próprias </li></ul><ul><ul><li>Taxa de transferência de dados </li></ul></ul><ul><ul><li>Complexidade de controle </li></ul></ul><ul><ul><li>Unidade de transferência </li></ul></ul><ul><ul><ul><li>caractere, bloco ou stream </li></ul></ul></ul><ul><ul><li>Representação de dados </li></ul></ul><ul><ul><ul><li>Esquemas de codificação </li></ul></ul></ul><ul><ul><li>Tratamentos de erros </li></ul></ul><ul><ul><ul><li>depende do tipo do dispositivo </li></ul></ul></ul>
  7. 7. Tipos de conexão e transferência de dados <ul><li>Em função da interconexão física das interfaces com o periférico </li></ul><ul><ul><li>Interface serial </li></ul></ul><ul><ul><ul><li>Apenas uma linha para transferência de dados </li></ul></ul></ul><ul><ul><ul><ul><li>(bit a bit) </li></ul></ul></ul></ul><ul><ul><li>Interface paralela </li></ul></ul><ul><ul><ul><li>mais de uma linha para transferência de dados </li></ul></ul></ul><ul><ul><ul><ul><li>Ex: n x 8 bits </li></ul></ul></ul></ul>
  8. 8. Como controladoras e S.O. interagem? <ul><li>Controladora - programada via registradores de configuração </li></ul><ul><ul><li>recebem ordens do processador </li></ul></ul><ul><ul><li>fornecem estados de operação </li></ul></ul><ul><ul><li>leitura e escrita de dados do periférico </li></ul></ul><ul><li>Registradores são “vistos” como posições de memória </li></ul><ul><ul><li>E/S mapeada em espaço de E/S </li></ul></ul><ul><ul><li>E/S mapeada em espaço de memória </li></ul></ul>
  9. 9. Mapeamento dos registradores <ul><li>Espaço de endereçamento </li></ul><ul><ul><li>conjunto de endereços de memória que o processador consegue endereçar </li></ul></ul><ul><ul><li>definido no projeto de processador </li></ul></ul><ul><ul><ul><li>pode haver um único espaço de endereçamento </li></ul></ul></ul><ul><ul><ul><li>pode haver um espaço de endereçamento dedicado a entrada e saída </li></ul></ul></ul><ul><ul><li>Instruções específicas para acessar um ou outro espaço de endereçamento </li></ul></ul><ul><ul><ul><li>Ex: mov, in, out </li></ul></ul></ul>
  10. 10. Mapeamento em espaço de memória <ul><li>Um único espaço de endereçamento </li></ul><ul><li>No projeto do computador se reserva uma parte de sua área de endereçamento para acesso a periféricos (controladoras) </li></ul><ul><li>Instruções de acesso a memória do tipo mov end, dado podem tanto referenciar uma posição real de memória como um registrador associado a um periférico de E/S </li></ul><ul><li>Exemplo </li></ul><ul><ul><li>Processadores da família Motorola </li></ul></ul>
  11. 11. Mapeamento em espaço de E/S <ul><li>O processador possui duas áreas distintas de endereçamento </li></ul><ul><ul><li>Espaço de memória: acessado via instruções de acesso à memória (mov) </li></ul></ul><ul><ul><li>Espaço de E/S: acessado via instruções de acesso específicas (in , out) </li></ul></ul><ul><li>No projeto de um computador (sistema) usando tal processador é possível utilizar os dois tipos de mapeamento para acesso a periféricos de E/S </li></ul><ul><li>Exemplo </li></ul><ul><ul><li>Processadores da família Intel </li></ul></ul>
  12. 12. Exemplo de acesso a dispositivos Controladora de impressão onde um registrador fornece o “status” da impressão (end. 315H) e outro corresponde ao envio do caractere a ser impresso (end. 312H). mapeado em memória mapeado em E/S le_status: mov AL, 315H print_char: mov AL, 65H mov 312H, AL le_status: in AL, 315H print_char: mov AL, 65H out 312H, AL
  13. 13. Técnicas para realização de E/S <ul><li>E/S programada (PIO) </li></ul><ul><li>E/S orientada a interrupções (interrupt driven) </li></ul><ul><li>Acesso direto a memória </li></ul>
  14. 14. E/S Programada <ul><li>Toda interação entre o processador e o controlador é de responsabilidade do programador </li></ul><ul><li>Ciclo de funcionamento </li></ul><ul><ul><li>envio de comando a controladora </li></ul></ul><ul><ul><li>espera pela realização do comando </li></ul></ul><ul><li>Módulo (controladora) de entrada/saída atualiza bits de estado da operação </li></ul><ul><li>processador espera término da operação (busy waiting) </li></ul>
  15. 15. Desvantagem da E/S programada <ul><li>Desperdício do tempo do processador para verificar continuamente o estado de uma operação de E/S </li></ul><ul><ul><li>diferença de velocidade entre dispositvo de I/O e processador </li></ul></ul><ul><li>Solução é inserir operações entre sucessivas consultas sobre o estado de uma operação de E/S </li></ul><ul><ul><li>polling </li></ul></ul><ul><li>Problema é determinar a freqüência para a realização do polling </li></ul>
  16. 16. E/S orientada a interrupção ( interrupt driven ) <ul><li>Evita o desperdício de tempo do polling </li></ul><ul><li>Processado é interrompido quando o módulo de E/S está pronto </li></ul><ul><li>Enquanto a interrupção não ocorre o processador está liberado para executar outras tarefas </li></ul><ul><li>Processador é responsável por iniciar uma operação de E/S </li></ul><ul><li>Interrupção solicita atenção do processador para executar uma rotina específica ao final da operação de E/S </li></ul><ul><ul><li>tratador de interrupção </li></ul></ul>
  17. 17. Desvantagem da E/S orientada a interrupção <ul><li>Processador atua como um intermediário na transferência, pois cada palavra lida (escrita) passa pelo processador </li></ul>
  18. 18. Acesso Direto a Memória (DMA) <ul><li>Transfere diretamente um bloco de dados entre a memória e o módulo de E/S </li></ul><ul><li>O mecanismo de interrupção é utilizado para sinalizar final de tarefa </li></ul><ul><li>processador é envolvido com a tarefa de E/S apenas no começo e no final da transferência. </li></ul>
  19. 19. Evolução das arquiteturas de E/S <ul><li>Processador controla diretamente o periférico </li></ul><ul><li>Controlador ou módulo de E/S é adicionado </li></ul><ul><ul><li>processador usa PIO sem interrupções </li></ul></ul><ul><ul><li>processador não necessita tratar detalhes dos dispositivos de E/S </li></ul></ul><ul><li>Controlador ou módulo de E/S baseado em interrupções </li></ul><ul><li>Transferência de dados em DMA </li></ul><ul><li>Módulo de E/S possui um processador separado </li></ul><ul><li>processador de E/S </li></ul><ul><ul><li>computador dedicado ao processamento de E/S </li></ul></ul><ul><ul><li>transferência de dados é feito, por exemplo, via rede </li></ul></ul>
  20. 20. Gerência de E/S <ul><li>Problema </li></ul><ul><ul><li>E/S extremamente lenta se comparada com a velocidade de processamento e de acesso da memória principal </li></ul></ul><ul><ul><li>Multiprogramação possibilita que processos executem enquanto outros esperam por operações de E/S </li></ul></ul><ul><ul><li>Procedimento de swapping é E/S </li></ul></ul><ul><ul><li>Eficiência no tratamento de E/S é importante </li></ul></ul>
  21. 21. Gerência de E/S <ul><li>Objetivos </li></ul><ul><ul><li>Eficiência </li></ul></ul><ul><ul><li>Generalidade </li></ul></ul><ul><ul><ul><li>desejável que dispositivos sejam tratados da maneira mais uniforme possível </li></ul></ul></ul><ul><ul><li>Esconder os detalhes do serviço de E/S em camadas de mais baixo nível </li></ul></ul><ul><ul><li>Fornecer ao alto nível abstrações genéricas como read, write, open e close. </li></ul></ul>
  22. 22. Princípios Básicos de Software de E/S <ul><li>Subsistema de E/S é bastante complexo devido a diversidade de periféricos </li></ul><ul><li>Objetivo é padronizar as rotinas de acesso aos periféricos de E/S de forma a reduzir o número de rotinas </li></ul><ul><ul><li>permitir a inclusão de novos dispositivos sem alterar a visão do usuário (interface de utilização) </li></ul></ul><ul><li>Para atingir este objetivo o subsistema de E/S é organizado em camadas </li></ul>
  23. 23. Estrutura em Camadas do Subsistema de E/S E/S nível de usuário E/S independente de dispositivo Hardware interface padrão para drivers de dispositivos (API) driver SCSI driver IDE driver floppy driver rede driver teclado software S.O.
  24. 24. Organização lógica do software de E/S <ul><li>Segue filosofia modular (3 módulos principais) </li></ul><ul><ul><li>Dispositivo lógico de E/S </li></ul></ul><ul><ul><ul><li>não se preocupa com detalhes de controle </li></ul></ul></ul><ul><ul><ul><li>oferece uma interface de programação ao processo usuário </li></ul></ul></ul><ul><ul><li>Dispositivo físico de E/S </li></ul></ul><ul><ul><ul><li>aceita solicitações abstratas e converte para um tratamento específico </li></ul></ul></ul><ul><ul><ul><li>bufferização </li></ul></ul></ul><ul><ul><li>Escalonamento e Controle </li></ul></ul><ul><ul><ul><li>tratamento de interrupção e status </li></ul></ul></ul><ul><ul><li>Obs: organização não é única e depende do tipo de dispositivo e sua aplicação </li></ul></ul>
  25. 25. Software de E/S <ul><li>Síncrono (bloqueante) </li></ul><ul><ul><li>processo é suspenso até conclusão da operação </li></ul></ul><ul><ul><li>simples programação e uso </li></ul></ul><ul><li>Assíncrono (não bloqueante) </li></ul><ul><ul><li>processo continua sua execução enquanto E/S é realizada </li></ul></ul><ul><ul><li>mecanismos empregados: </li></ul></ul><ul><ul><ul><li>interrupção para sinalizar conclusão da operação </li></ul></ul></ul><ul><ul><ul><li>emprego de multithreading </li></ul></ul></ul>
  26. 26. Drivers de Dispositivos <ul><li>Camada inferior de software de E/S </li></ul><ul><li>Responsável pela gerência do dispositivo físico de E/S </li></ul><ul><li>Código específico a um dispositivo </li></ul><ul><li>Recebe solicitações da camada de gerência de dispositivo lógico </li></ul><ul><ul><li>exporta uma “visão” uniforme subdividindo os periféricos de E/S em função da unidade de transferência de dados: </li></ul></ul><ul><ul><ul><li>orientado a bloco </li></ul></ul></ul><ul><ul><ul><li>orientado a caractres </li></ul></ul></ul><ul><ul><ul><li>pseudo-dispositivos </li></ul></ul></ul><ul><li>Responsável pelo tratamento de erros </li></ul>
  27. 27. Entrada e saída independente de dispositivo <ul><li>Implementa procedimentos e funções gerais a todos os dispositivos de E/S </li></ul><ul><li>Principais serviços </li></ul><ul><ul><li>Escalonamento de E/S </li></ul></ul><ul><ul><li>Denominação </li></ul></ul><ul><ul><li>Bufferização </li></ul></ul><ul><ul><li>Cache de dados </li></ul></ul><ul><ul><li>Alocação e liberação </li></ul></ul><ul><ul><li>Direitos de acesso </li></ul></ul><ul><ul><li>Tratamento de erros </li></ul></ul>
  28. 28. Entrada e saída independente de dispositivo <ul><li>Fornece uma visão lógica do dispositivo através de estruturas de dados genéricas que representam classes de dispositivos </li></ul><ul><li>Atribuição uniforme do nome independente do dispositivo </li></ul>
  29. 29. Entrada e saída independente de dispositivo <ul><li>O UNIX é um exemplo clássico </li></ul><ul><ul><li>nome do dispositivo é uma string </li></ul></ul><ul><ul><li>discos (dispositivos) fazem parte do sistema de arquivos </li></ul></ul>/dev fd0 fd0a fd0b fd0c crw-rw-rw- 1 root root 187, 83 Apr 1 14:56 fd0 crw-rw-rw- 1 root root 187, 84 Apr 1 14:56 fd0a crw-rw-rw- 1 root root 187, 85 Apr 1 14:56 fd0b crw-rw-rw- 1 root root 187, 86 Apr 1 14:56 fd0c major number minor number
  30. 30. Bufferização de E/S Dispositivo de E/S Sistema Operacional Aplicação sem buffer buffer único buffer duplo buffer circular in in move move in in move . . .
  31. 31. E/S a nível de usuário <ul><li>“ Visão” que o usuário possui dos dispositivos de E/S </li></ul><ul><ul><li>Interface de programação associada a bibliotecas de E/S </li></ul></ul><ul><ul><li>Interface de “comandos” </li></ul></ul><ul><ul><ul><li>ls, cp, mv, etc... </li></ul></ul></ul><ul><li>Construído sobre primitivas do S.O. </li></ul>
  32. 32. Dispositivos periféricos típicos <ul><li>Dispositivos de E/S são fundamentais para que um sistema seja utilizável </li></ul><ul><li>Existe uma grande gama de dispositivos de E/S </li></ul><ul><ul><li>impossível analisar todos </li></ul></ul><ul><ul><li>princípio de funcionamento tem base comum </li></ul></ul><ul><li>Periférico mais importante é o disco por desempenhar um papel fundamental em diversos aspectos do S.O. </li></ul><ul><ul><li>armazenamento de dados </li></ul></ul><ul><ul><li>suporte a implementação de memória virtual </li></ul></ul><ul><ul><li>aspectos relacionados a tolerância a falhas de segurança de dados (RAID) </li></ul></ul>
  33. 33. Disco Magnético <ul><li>Pratos (platters) </li></ul><ul><ul><li>disco de plástico, ou metal, recoberto de material magnetizável </li></ul></ul><ul><li>Dados são gravados e, posteriormente, recuperados através de um cabeçote de leitura e gravação </li></ul><ul><ul><li>Escrita </li></ul></ul><ul><ul><ul><li>o cabeçote é submetido a uma tensão que gera um campo magnético o qual magnetiza o disco com diferentes padrões de polaridades </li></ul></ul></ul><ul><ul><li>Leitura </li></ul></ul><ul><ul><ul><li>a variação do campo magnético gerado pela rotação do disco induz uma corrente no cabeçote de leitura </li></ul></ul></ul>
  34. 34. Disco Magnético <ul><li>Organização e Formatação </li></ul><ul><ul><li>Organizado em uma seqüência de circulos concêntricos </li></ul></ul><ul><ul><ul><li>trilhas </li></ul></ul></ul><ul><ul><ul><ul><li>cuja largura corresponde a largura do cabeçote de leitura/escrita </li></ul></ul></ul></ul><ul><ul><li>Trilhas são separadas por gaps </li></ul></ul><ul><ul><ul><li>evita problemas de alinhamento </li></ul></ul></ul><ul><ul><li>Duas tecnologias definem o número de bits por trilha </li></ul></ul><ul><ul><ul><li>CAV ( Constant Angular Velocity) </li></ul></ul></ul><ul><ul><ul><ul><li>número de bits por trilha constante </li></ul></ul></ul></ul><ul><ul><ul><ul><li>trilhas mais internas possuem maior densidade bits/polegada </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Ex: floppy 3,5” </li></ul></ul></ul></ul><ul><ul><ul><li>CLV ( Constant Linear Velocity) </li></ul></ul></ul><ul><ul><ul><ul><li>número de bits por trilha depende da distância ao centro do disco </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Ex: CD-ROM </li></ul></ul></ul></ul>
  35. 35. Organização e Formatação <ul><li>Transferência de dados para o disco é feita em blocos </li></ul><ul><ul><li>Tipicamente, o bloco é menor que a capacidade de uma trilha </li></ul></ul><ul><li>Trilha é subdividida em unidades de tamanho fixo ( setores ) </li></ul><ul><li>Setor: </li></ul><ul><ul><li>Unidade de armazenamento de informações </li></ul></ul><ul><ul><li>Informações de controle </li></ul></ul><ul><ul><ul><li>Ex: Início e final de setor, ECC (Error Correcting Code) </li></ul></ul></ul><ul><li>A definição de trilhas e setores é feita pela formatação física </li></ul><ul><ul><li>vem de fábrica </li></ul></ul>
  36. 36. Organização e Formatação inter-sector gap inter-track gap trilhas S0 S1 S2 S3 S4 S5 SN SN S0 S1 S2 S3 S4 S5 zona de dados ECC info controle setores
  37. 37. Carateríticas Físicas <ul><li>Cabeçote de leitura/escrita são montados sobre um braço </li></ul><ul><ul><li>fixo: um cabeçote por trilha </li></ul></ul><ul><ul><li>móvel: cabeçote se desloca sobre as trilhas </li></ul></ul><ul><li>Removível x não removível </li></ul><ul><ul><li>meio magnético montado fisicamente nos braços ou não </li></ul></ul><ul><ul><ul><li>Ex: disquete </li></ul></ul></ul><ul><li>Densidade dupla x densidade simples </li></ul><ul><ul><li>Filme magnético nas duas superfícies do disco ou não </li></ul></ul>
  38. 38. Organização e Formatação <ul><li>Múltiplos pratos (disk pack) </li></ul><ul><ul><li>vários pratos empilhados e centrados </li></ul></ul><ul><ul><li>cada prato um cabeçote de leitura/escrita (braço móvel) </li></ul></ul><ul><ul><li>cilindro </li></ul></ul><ul><ul><ul><li>conjunto de trilhas de mesmo número em pratos diferentes </li></ul></ul></ul><ul><li>Mecanismo do cabeçote leitura/escrita </li></ul><ul><ul><li>contato físico entre a superfície magnética e o cabeçote </li></ul></ul><ul><ul><ul><li>Ex: floppy </li></ul></ul></ul><ul><ul><li>distância fixa (air gap) da superfície magnética </li></ul></ul><ul><ul><li>distância fixa (air gap) da superfície magnética quando o disco entra em rotação (disco rígido) </li></ul></ul>
  39. 39. Exemplo de especificação de disco <ul><li>Disco 4.1 GBytes </li></ul><ul><ul><li>255 cabeças </li></ul></ul><ul><ul><li>63 setores de 512 bytes </li></ul></ul><ul><ul><li>525 cilindros </li></ul></ul><ul><ul><li>Capacidade: 255 x 63 x512 x 525 </li></ul></ul><ul><li>64 o setor mantém um mapa de setores na trilha </li></ul><ul><li>tecnologia atual permite até 8 pratos com 16 cabeçotes </li></ul><ul><ul><li>diferença no número de cabeçotes é lógico </li></ul></ul>
  40. 40. Métodos de acesso a dado <ul><li>Acesso a um dado implica em fornecer superfície, trilha e setor </li></ul><ul><li>Método CHS (Cylinder, Head, Sector) </li></ul><ul><li>Método LBA (Linear Block Adressage) </li></ul><ul><ul><li>necessita de suporte por hardware (firmware) </li></ul></ul><ul><ul><li>converte um setor lógico em coordenadas CHS </li></ul></ul>
  41. 41. Desempenho do Disco <ul><li>Para ler/escrever dados é necessário posicionar o cabeçote na trilha e setor desejados </li></ul><ul><li>3 tempos envolvidos </li></ul><ul><ul><li>tempo de posicionamento (seek time) </li></ul></ul><ul><ul><ul><li>tempo necessário para posicionar o cabeçote na trilha desejada </li></ul></ul></ul><ul><ul><li>tempo de latência rotacional </li></ul></ul><ul><ul><ul><li>tempo para atingir o início do setor a ser lido/escrito </li></ul></ul></ul><ul><ul><li>tempo de transferência </li></ul></ul><ul><ul><ul><li>tempo para escrita/leitura efetiva dos dados </li></ul></ul></ul>
  42. 42. Temporização de acesso ao disco cabeçote leitura/escrita trilha seek time setor transfer time latency time t acesso =t seek + t latência + t transf
  43. 43. Tempo de Posicionamento <ul><li>Possui duas componentes </li></ul><ul><ul><li>tempo de acionamento e aceleração do cabeçote </li></ul></ul><ul><ul><li>tempo de deslocamento até atrilha desejada </li></ul></ul><ul><li>Não é linear em função do número de trilha </li></ul><ul><ul><li>tempo de identificação da trilha (confirmação) </li></ul></ul><ul><li>tempo médio de seek </li></ul><ul><ul><li>fornecido pelo fabricante </li></ul></ul><ul><ul><ul><li>5 a 13 ms (tecnologia ano 2003) </li></ul></ul></ul>
  44. 44. Tempo de Latência Rotacional <ul><li>Definido pela velocidade de rotação do motor </li></ul><ul><ul><li>discos rígidos (ano ref. 2000) </li></ul></ul><ul><ul><ul><li>5.400 a 10.000 rpm </li></ul></ul></ul><ul><ul><li>floppy </li></ul></ul><ul><ul><ul><li>300 a 600 rpm </li></ul></ul></ul><ul><li>Estima-se o tempo médio </li></ul><ul><ul><li>3 ms para um disco de 10.000 rpm </li></ul></ul>
  45. 45. Tempo de Transferência <ul><li>Depende da velocidade de rotação </li></ul><ul><li>tempo médio de acesso é dado por: </li></ul>T = b rN T - tempo de transferência b - número de bytes a serem transferidos N - número de bytes em uma trilha r - rotação do disco em rpm T acesso = T seek_médio + + 1 2r b rN
  46. 46. Exemplo de transferência <ul><li>Acessar um arquivo de dados de 1.3 MB armazenado em disco com as seguintes características: </li></ul><ul><ul><li>T seek_médio =10ms, 10.000 rpm, 512 Bytes por setor, 320 setores/trilha </li></ul></ul><ul><ul><li>caso 1: Acesso seqüêncial(2560 setores=8trilhas x 320 setores) </li></ul></ul><ul><ul><ul><li>T acesso = 10 ms + 8 x (3 ms + 6 ms) = 0.082 s </li></ul></ul></ul><ul><ul><li>caso 2: Acesso aleatório (leitura de um setor por vez) </li></ul></ul><ul><ul><ul><li>T acesso = 2560 ms x ( 10 + 3 ms + 6 ms) = 33.328 s </li></ul></ul></ul>
  47. 47. Entrelaçamento <ul><li>Forma de aumentar o desempenho no acesso ao disco </li></ul><ul><li>Objetivo </li></ul><ul><ul><li>evitar latência rotacional em setores adjacentes </li></ul></ul><ul><li>Técnica consiste em numerar os setores não mais de forma contígua mas sim com um espaço entre eles </li></ul>0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 11 6 1 12 7 2 13 8 3 14 9 4 15 10 5 fator de entrelaçamento = 0 fator de entrelaçamento = 1
  48. 48. Escalonamento do Disco <ul><li>Tratar E/S de forma eficiente se traduz em obter um tempo de acesso rápido e explorar ao máximo a largura de banda do disco </li></ul><ul><ul><li>minimizar o tempo de posicionamento (seek) </li></ul></ul><ul><li>Largura de banda do disco </li></ul><ul><ul><li>número total de bytes transferidos, dividido pelo tempo decorrido entre o primeiro acesso e a conclusão da transferência </li></ul></ul>
  49. 49. <ul><li>Algoritmos para reduzir tempo de seek </li></ul><ul><ul><li>algoritmos de escalonamento de disco </li></ul></ul><ul><ul><ul><li>forma de organizar atendimento de requisições </li></ul></ul></ul><ul><ul><ul><ul><li>FCFS, SST, SCAN, C-SCAN, etc... </li></ul></ul></ul></ul><ul><li>Exemplo para análise </li></ul><ul><ul><li>Disco organizado em 200 trilhas (0 a 199) </li></ul></ul><ul><ul><li>Posição inicial do cabeçote: trilha 53 </li></ul></ul><ul><ul><li>Atender a seguinte fila de requisições: </li></ul></ul><ul><ul><ul><li>98, 183, 37, 122, 14, 124, 65, 67 </li></ul></ul></ul>Escalonamento do Disco
  50. 50. FCFS - First Come First Served <ul><li>Acessa na ordem em que chegam as requisições </li></ul><ul><li>Deslocamento equivalente a 640 trilhas </li></ul>
  51. 51. STF - Shortest Seek Time First <ul><li>Seleciona menor seek em relação a posição atual do cabeçote </li></ul><ul><li>Análogo ao SJF (Shortest Job First) </li></ul><ul><ul><li>pode provocar postergação de requisição (starvation) </li></ul></ul><ul><li>Deslocamento equivalente a 236 trilhas </li></ul>
  52. 52. Scan <ul><li>O cabeçote inicia movimento em uma extremidade do disco e se movimenta na outra direção </li></ul><ul><ul><li>executa requisições na ordem desta varredura </li></ul></ul><ul><ul><li>ao chegar no outro extremo, inverte o sentido e repete o procedimento </li></ul></ul><ul><li>Conhecido como algoritmo do elevador </li></ul>
  53. 53. Scan <ul><li>Deslocamento equivalente a 208 trilhas </li></ul>
  54. 54. C-Scan <ul><li>Variação do algoritmo scan </li></ul><ul><li>Procedimento idêntico ao do Scan, porém as requisições são atendidas apenas em um sentido da varredura </li></ul><ul><ul><li>ao final da varredura o cabeçote é reposicionado no início do disco </li></ul></ul><ul><li>Fornece uma visão lógica onde o disco é tratado como uma fila circular </li></ul><ul><ul><li>Oferece um tempo médio de acesso mais uniforme que o algoritmo Scan </li></ul></ul>
  55. 55. C-Scan
  56. 56. C-Look Versão do C-Scan que não precisa atingir a extremidade para voltar
  57. 57. Outras variações de Scan <ul><li>N-step-Scan </li></ul><ul><ul><li>Divide a fila de requisições em um certo número de filas de tamanho N </li></ul></ul><ul><ul><li>Cada fila é atendida separadamente usando Scan </li></ul></ul><ul><ul><li>Novas requisições são inseridas em filas diferentes da que está sendo atendida no memomenta da chegada destas requisições </li></ul></ul><ul><li>FScan </li></ul><ul><ul><li>Baseada em 2 filas </li></ul></ul><ul><ul><li>Uma fila recebe todas as requisições enquanto a outra é empregada para atender as requisições já feitas </li></ul></ul>
  58. 58. Selecionando algoritmo de escalonamento de disco <ul><li>SSTF é o método mais empregado e é mais natural </li></ul><ul><li>SCAN e C-SCAN têm um desempenho melhor em sistemas com uma grande carga no disco </li></ul><ul><li>O desempenho depende do número e tipo de requisições. </li></ul><ul><li>Requisições a disco podem ser influenciadas pelo método de alocação de arquivos </li></ul><ul><li>O algoritmo de escalonamento de disco deve ser escrito como um módulo separado do S.O para permitir sua fácil substituição por outro </li></ul><ul><li>Tanto o SSTF ou Look são uma escolha razoável como algortimo default </li></ul>
  59. 59. RAID <ul><li>Redundant Array of Inexpensive Disks </li></ul><ul><ul><li>Conjunto de discos rígidos vistos pelo S.O. como um único disco lógico </li></ul></ul><ul><ul><li>Dados são distribuídos entre os diferentes discos físicos </li></ul></ul><ul><ul><ul><li>permite acesso paralelo a dados aumentando o desempenho </li></ul></ul></ul><ul><ul><li>Possibilita armazenamento de informações de paridade para permitir a recuperação de dados em caso de problemas no disco </li></ul></ul><ul><ul><ul><li>aumento de possibilidade de falhas já que existem mais dispositivos envolvidos </li></ul></ul></ul><ul><ul><ul><li>Diferentes níveis </li></ul></ul></ul>
  60. 60. RAID 0 (sem redundância) <ul><li>Dados são distribuídos nos diferentes discos do array </li></ul><ul><ul><li>Requisições a blocos de dados armazenados em discos distintos podem ser efetuados em paralelo </li></ul></ul><ul><li>O disco lógico é dividido em unidades de distribuição(strips) </li></ul><ul><ul><li>Strip pode ser blocos físicos, setores, etc... </li></ul></ul><ul><ul><li>Strip são mapeados de forma round-robin em n discos (stripes) </li></ul></ul><ul><ul><li>Técnica conhecida como stripping </li></ul></ul>
  61. 61. RAID 0 (sem redundância)
  62. 62. Raid 0 (sem redundância)
  63. 63. RAID 1 (espelhamento)
  64. 64. RAID 2 (redundância com código Hamming) -Discos são sincronizados, i.e., todos os cabeçotes estão posicionados no mesmo ponto (trilha e setor) -Todos os discos são acessados na realização de um E/S -A unidade de stripping é byte ou palavra -Executa o cálculo do código Hamming e o armazena em disco separados
  65. 65. RAID 3 (paridade) Similar ao RAID 2 Diferença é que só existe um disco de redundância
  66. 66. RAID 4 (paridade de bloco)
  67. 67. RAID 5 (paridade de bloco distribuído) Paridade distribuída em todos os discos segundo política round-robin
  68. 68. RAID 6 (redundância dupla) Vantagem - permite a recuperação dos dados com até dois discos com falhas
  69. 69. RAID 10 <ul><li>Combinação de RAID 0 e RAID 1 </li></ul><ul><li>Os dados são divididos em strips (RAID 0) e após os discos são espelhados (RAID 1) </li></ul>
  70. 70. RAID - configurações <ul><li>Podem ser implementadas em: </li></ul><ul><ul><li>Hardware (firmware) </li></ul></ul><ul><ul><ul><li>diferentes discos físicos são organizados de forma a compor um disco lógico </li></ul></ul></ul><ul><ul><ul><li>organização é configurada e gerenciada pelo controlador de disco </li></ul></ul></ul><ul><ul><ul><li>controlador realiza a geração das informações de redundância (firmware) </li></ul></ul></ul><ul><ul><li>Software </li></ul></ul><ul><ul><ul><li>Diferentes partições (discos lógicos) compõe um único disco lógico </li></ul></ul></ul><ul><ul><ul><li>RAID é feito pelo driver de disco (software) </li></ul></ul></ul><ul><ul><ul><li>Normalmente implementa RAID 1 e RAID 5 </li></ul></ul></ul>

×