Gerência de Armazenamento: Sistemas de Entrada e Saída

4.831 visualizações

Publicada em

Explorar a estrutura do subsistema de E/S de um sistema operacional
Discutir os princípios e complexidade do hardware de E/S
Prover detalhes do aspectos de desempenho do hardware e software de E/S

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
4.831
No SlideShare
0
A partir de incorporações
0
Número de incorporações
64
Ações
Compartilhamentos
0
Downloads
134
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Gerência de Armazenamento: Sistemas de Entrada e Saída

  1. 1. Sistemas Operacionais I Gerência de Armazenamento: Sistemas de Entrada e Saída Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  2. 2. Objetivos  Explorar a estrutura do subsistema de E/S de um sistema operacional  Discutir os princípios e complexidade do hardware de E/S  Prover detalhes do aspectos de desempenho do hardware e software de E/S
  3. 3. Hardware de E/S  Variedade imensa de dispositivos de E/S  Conceitos comuns  Porta  Barramento (daisy chain ou acesso compartilhada direto)  Controlador (adaptador do hospedeiro)  Instruções de E/S controlam os dispositivos  Os dispositivos possuem endereços, utilizados para  Instruções de E/S diretas  E/S Mapeada em memória
  4. 4. Uma estrutura típica de barramento
  5. 5. Polling  Determina o estado de um dispositivo  Pronto para receber comandos  Ocupado  Erro  Ciclo de Espera ocupada para aguardar E/S do dispositivo
  6. 6. Interrupções  A CPU tem uma linha de solicitação de interrupção ativada pelo dispositivo de E/S  O gerenciador de interrupção recebe o sinal  Interrupções podem ser mascaradas para que a CPU ignore ou adie seu tratamento  Um vetor de interrupções é utilizado para selecionar o endereço da rotina de tratamento adequada  Baseado em prioridades  Algumas não podem ser mascaradas  O mecanismo de interrupções é utilizado também para exceções
  7. 7. Ciclo de E/S baseado em interrupções
  8. 8. Acesso direto à memória  Utilizado para evitar o uso de E/S programada para o movimento de grandes volumes de dados  Requer um controlador de DMA  Dispensa a CPU na transferência de dados entre o dispositivo de E/S e a memória
  9. 9. Seis etapas de uma transferência DMA
  10. 10. Interface de E/S para aplicações  As chamada de sistema de E/S encapsulam o comportamento dos dispositivos em classes genéricas  A camada do driver de dispositivo esconde as diferenças entre os controladores de E/S do núcleo do SO  Os dispositivos variam em várias dimensões  Fluxo de caracteres ou blocos  Acesso sequencial ou aleatório  Dedicado ou compartilhado  Velocidade de operação  Leitura-escrita, apenas leitura, apenas escrita
  11. 11. Estrutura de E/S do núcleo
  12. 12. Características de dispositivos de E/S
  13. 13. Dispositivos de bloco e de caracteres  Dispositivos de bloco incluem drivers de disco  Comandos incluem read, write, seek  E/S crua ou via sistema de arquivos  Possibilidade de acesso a arquivos mapeados em em memória  Dispositivos de caracteres incluem teclados, mouses e portas seriais  Comandos incluem get, put  Bibliotecas permitem edição de linhas
  14. 14. Dispositivos de rede  Diferenciam-se o suficiente de dispositivos de bloco e de caracteres para terem sua própria interface  Unix e Windows NT/9x/2000 incluem uma interface socket  Separam protocolo de rede de operação da rede  Incluem uma função select  As abordagens variam amplamente (pipes, FIFOs, streams, queues, mailboxes)
  15. 15. Relógios e Temporizadores  Fornecem o tempo atual, tempo decorrido e temporizador  Temporizador de intervalo programado utilizado para temporização e interrupções periódicas
  16. 16. E/S bloqueante e não- bloqueante  Bloqueante – processo suspenso até a conclusão da operação de E/S  Fácil de utilizar e de entender  Insuficiente para algumas necessidades  Não-bloqueante – a chamada de E/S retorna com os dados disponíveis no momento  Interface do usuário, cópia de dados (bufferização de E/S)  Implementado utilizando múltiplas threads  Retorna rapidamente com a contagem de bytes lidos ou escritos  Assíncrona – o processo roda enquanto a operação de E/S é executada  Difícil de usar  Subsistema de E/S sinaliza quando a operação de E/S /e concluída
  17. 17. Dois métodos de E/S
  18. 18. Subsistema de E/S do núcleo  Escalonamento  Filas por dispositivo para ordenação de requisições de E/S  O sistema operacional tenta manter alguma justiça  Bufferização – dados são armazenados na memória enquanto estão sendo transferidos entre dispositivos  Ajuda a lidar como diferenças de velocidade entre os dispositivos  Ajudar a lidar com diferenças nos tamanhos de transferência dos dispositivos  Ajuda a manter a “semântica de cópia”
  19. 19. Subsistema de E/S do núcleo  Cache – memória rápida para armazenamento temporário de dados  Sempre mantém apenas uma cópia  Aspecto chave para melhorar o desempenho  Spooling - mantém a saída para um dispositivo  Útil se o dispositivo só pode atender uma requisição por vez  Ex. Impressora  Reserva de dispositivo – provê acesso exclusivo a um dispositivo  Chamadas de sistema para alocação e liberação  Risco de deadlocks!
  20. 20. Tabela de estado de dispositivo
  21. 21. Tratamento de erros  O sistema operacional pode se recuperar de um erro de leitura de disco, erro de dispositivo indisponível e falhas transientes de escrita  Precisa reportar um código de erro quando uma requisição de E/S  Log de erros do sistema mantem um registro dos problemas
  22. 22. Proteção de E/S  Processos de usuário podem acidentalmente ou propositalmente tentar interferir na operação normal do sistema utilizando operações de E/S ilegais  Todas as instruções de E/S foram definidas para ter acesso privilegiado  Operações de E/S precisam ser realizadas através de chamadas de sistema
  23. 23. Uso de chamadas de sistema para realizar operações de E/S
  24. 24. Estruturas de dados do núcleo  O núcleo mantem informação de estado dos diversos componentes envolvidos nas operações de E/S, incluindo tabelas de arquivos abertos, conexões de rede, estado de dispositivos de caractere  Muitas, mas muitas mesmo, estruturas de dados complexas para gerenciar buffers, alocação de memória, blocos ocupados, etc  Alguns sistemas utilizam orientação a objetos e troca e de mensagens para implementar operações de E/S
  25. 25. Requisições de E/S para operações do hardware  Considere um processo tentando ler um arquivo do disco:  Determinar o dispositivo onde o arquivo está armazenado  Traduzir o nome em uma representação do arquivo no dispositivo  Fazer a leitura dos dados do disco para um buffer  Disponibilizar os dados lidos para o processo  Retornar o controle
  26. 26. Ciclo de vida de uma requisição de E/S
  27. 27. Desempenho  Operações de E/S representam um fator chave no desempenho do sistema:  Demanda para a CPU executar código dos drivers de dispositivo  Troca de contextos devido a interrupções  Cópia de dados  Tráfego de redes é especialmente dispendioso
  28. 28. Comunicação entre computadores
  29. 29. Melhorando o desempenho  Reduzir o número de trocas de contexto  Reduzir a quantidade de dados copiados  Reduzir o número de interrupções utilizando pacotes maiores para transferências, controladores inteligentes e polling  Utilizar DMA  Balancear o uso de CPU, memória, barramentos e dispositivos de E/S para vazão máxima
  30. 30. Progressão da funcionalidade dos dispositivos

×