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
Gerência de Armazenamento: Sistemas de Entrada e Saída
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. 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. 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
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. 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
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
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
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. 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. 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. 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
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. 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!
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. 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
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. 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
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
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