SO-10 Entrada e Saída: Software

9,189 views

Published on

Sistemas de Entrada e Saída. Visão Geral. Princípios de Software (Sistemas Operacionais)

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • este tema e para ser apresentado em debati escolar........
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
9,189
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
334
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

SO-10 Entrada e Saída: Software

  1. 1. Sistemas de Entrada/Saída Princípios de Software
  2. 2.   Princípios de Software   Tratadores (Manipuladores) de Interrupções   Acionadores de Dispositivos (Device Drivers)   Subsistema de E/S   Operações de E/S   Ciclo de Operações em uma Requisição de E/S   Desempenho dos Sistemas de E/S Eduardo Nicola F. Zagari 2 Sistemas Operacionais -Entrada e Saída
  3. 3.   Conceito chave: o software de E/S deve buscar independência do dispositivo   Características/objetivos importantes:   Uniformidade de nome para os dispositivos (strings/inteiros)   Manipulação de erros (devem ser feitas o mais próximo possível do hardware)   Transferências síncronas (bloqueantes) e assíncronas (manipuladas por interrupção)   Dispositivos compartilhados ou dedicados (possibilidade de deadlock) Eduardo Nicola F. Zagari 3 Sistemas Operacionais -Entrada e Saída
  4. 4. Processos Operações de E/S Independente do dispositivo Software Subsistema de E/S Device Drivers Manipuladores de Interrupção Controladores Dependente do Hardware dispositivo Dispositivos Eduardo Nicola F. Zagari 4 Sistemas Operacionais -Entrada e Saída
  5. 5.   São eventos “complicados” de se tratar. Assim, devem ser tratadas por uma pequena parte (parte específica) do SO   Uma forma de tratá-las isoladamente é bloquear os processos que estiverem aguardando operações de E/S até uma interrupção de “operação completada”   A rotina de tratamento desta interrupção libera o processo bloqueado (UP em um semáforo, SIGNAL em um monitor ou envio de uma mensagem) Eduardo Nicola F. Zagari 5 Sistemas Operacionais -Entrada e Saída
  6. 6.   Todo código dependente do dispositivo se concentra do acionador (driver) do dispositivo   Cada acionador manipula um dispositivo ou uma classe de dispositivos semelhantes   Acionadores para:  fita magnética,  rede,  terminais etc   Função: receber comandos gerais (abstratos) sobre acessos aos dispositivos e traduzi-los para comandos específicos (executados pelos controladores) Eduardo Nicola F. Zagari 6 Sistemas Operacionais -Entrada e Saída
  7. 7.   O acionador é a parte do SO que reconhece o hardware, ou seja, sabe quantos registradores um controlador possui, para que eles servem, como são utilizados e quais são seus comandos.   Devido a dependência entre os acionadores e as chamadas de sistema (system calls), os fabricantes desenvolvem, para um mesmo dispositivo, diferentes acionadores, um para cada SO.   Dispositivo adicionado ⇒ acionador deve ser acoplado ao kernel do SO Eduardo Nicola F. Zagari 7 Sistemas Operacionais -Entrada e Saída
  8. 8.   Exemplo: leitura de um dado (bloco) em um disco disco System Call Ler bloco n Acionador Ler bloco no Controlador E/S de disco Disco X, Cilindro Y, de disco disco Trilha W, Setor Z disco   Se acionador estiver desocupado, a requisição é aceita, caso contrário, ele a põe em uma fila de requisições pendentes   Transcreve a requisição abstrata em ações concretas (comandos). Por exemplo, para um disk driver:   informar onde o bloco se encontra no disco   verificar se o motor do driver está girando   determinar se o braço está no cilindro apropriado etc Eduardo Nicola F. Zagari 8 Sistemas Operacionais -Entrada e Saída
  9. 9.   Decididas quais operações realizar e em que ordem, o acionador escreve os comandos nos registradores do controlador  Alguns controladores aceitam apenas um comando por vez, outros aceitam uma lista deles.   Após o(s) comando(s) ter(em) sido(s) emitido(s), podem ocorrer duas situações  o acionador deve se bloquear até que a operação seja completada (requisição bloqueante) –  no caso da operação ser lenta (envolvendo movimentos mecânicos, como no nosso exemplo)  acionador deve aguardar, no caso de operações rápidas –  por exemplo, o deslocamento da tela em terminais requer apenas a escrita de um poucos bytes nos registradores do controlador (microssegundos) Eduardo Nicola F. Zagari 9 Sistemas Operacionais -Entrada e Saída
  10. 10.   Se for o caso, uma vez completada a operação, o controlador gera uma interrupção que ativa o acionador   O acionador verifica a ocorrência de erros   Se tudo estiver correto, ele passa as informações (dados lidos) para a camada superior (Subsistema de E/S)   Finalmente, ele retorna as informações de situação de erro (status)   Caso haja, pega a próxima requisição; caso contrário, aguarda pela próxima... Eduardo Nicola F. Zagari 10 Sistemas Operacionais -Entrada e Saída
  11. 11. Eduardo Nicola F. Zagari 11 Sistemas Operacionais -Entrada e Saída
  12. 12. Eduardo Nicola F. Zagari 12 Sistemas Operacionais -Entrada e Saída
  13. 13. Eduardo Nicola F. Zagari 13 Sistemas Operacionais -Entrada e Saída
  14. 14.   É o Software no Nível do Usuário   A maior parte do software de E/S está embutida no SO (subsistema de E/S)   Uma pequena porção consiste em rotinas de bibliotecas, ligadas junto com os programas de usuários (ou mesmo em programas inteiros rodando fora do núcleo)   Chamadas de sistema, incluindo as de E/S, são normalmente feitas por procedimentos de bibliotecas, como as oferecidas pelas linguagens de programação C, Pascal etc Eduardo Nicola F. Zagari 14 Sistemas Operacionais -Entrada e Saída
  15. 15.   Por isto que os comandos de E/S nestas linguagens independem do ambiente operacional onde se está trabalhando.  Por exemplo: bytes_lidos = fread(buffer, tam_item, n_itens, arquivo); –  o procedimento fread será ligado com o programa (fica contido no código binário presente no espaço do usuário) –  antes de efetuar a chamada de sistema, este procedimento coloca seus parâmetros nas posições de memória apropriadas Eduardo Nicola F. Zagari 15 Sistemas Operacionais -Entrada e Saída
  16. 16.  Outro exemplo: –  formatação de entradas e saídas são feitas por procedimentos da biblioteca de E/S padrão: »  printf, »  gets etc Estas porções do código, que rodam como parte dos programas do usuário, são parte do Sistema de E/S Eduardo Nicola F. Zagari 16 Sistemas Operacionais -Entrada e Saída
  17. 17.   Nem todo software de E/S consiste de procedimentos de bibliotecas   Por exemplo, Sistemas de SPOOLING (Simultaneous Peripheral Operation On-Line)   Spooling: modo de negociação com os dispositivos dedicados de E/ S em sistemas multiprogramados  Exemplo: impressora –  Processo abre o arquivo especial da impressora –  Mantém arquivo aberto por horas, sem usá-lo –  Ninguém mais imprime nada... Eduardo Nicola F. Zagari 17 Sistemas Operacionais -Entrada e Saída
  18. 18.  Técnica de Spooling –  Cria-se um processo especial, denominado daemon (servidor), e um diretório especial, chamado diretório de spool (spooling directory) –  Processo envia arquivo para daemon (isto é, copia o arquivo no diretório de spool) –  Daemon, que é o único processo que tem permissão para usar o arquivo especial associado à impressora, transfere os arquivos do diretório de spool para impressora, um a um  Spooling também é usado em outras situações (p. ex., em transferência de mensagens de correio eletrônico) Eduardo Nicola F. Zagari 18 Sistemas Operacionais -Entrada e Saída
  19. 19. Eduardo Nicola F. Zagari 19 Sistemas Operacionais -Entrada e Saída
  20. 20.   Desempenho do Sistema de E/S afeta diretamente o desempenho global do sistema:   Uso da CPU na execução do código do acionador do dispositivo   Mudanças de contexto devido às interrupções   Sobrecarga do barramento da memória durante as cópias de dados   Um exemplo: o “custo” do tráfego de um caracter pela rede Eduardo Nicola F. Zagari 20 Sistemas Operacionais -Entrada e Saída
  21. 21. Eduardo Nicola F. Zagari 21 Sistemas Operacionais -Entrada e Saída
  22. 22.   Melhorando o desempenho:   Reduzir o número de mudanças de contexto   Reduzir o número de cópias de dados entre controlador, núcleo e processo   Reduzir a freqüência de interrupções usando grandes transferências, controladores inteligentes e polling (quando viável)   Usar DMA para aumentar o “paralelismo”   Usar CPU, memória, barramento e dispositivos de E/S de forma balanceada, para evitar gargalos Eduardo Nicola F. Zagari 22 Sistemas Operacionais -Entrada e Saída

×