Você está na página 1de 19

Sistemas Operacionais

Ivan Saraiva Silva


Ciência da Computação
2005.1

Aula 12
Entrada/Saída
• Dispositivos de E/S tem dois objetivos:
– Comunicação com mundo exterior (máquina  máquina;
máquina  humano)
• Armazenamento de informações em meios não
voláteis
• Subsistema de E/S é responsável pela gerência dos
dispositivos de comunicação e armazenamento
– Variedade de dispositivos
– Novos dispositivos
• dificuldade de suporte pelo sistema operacional
Princípios Básicos de Hardware
• Tipos de conexão e transferência de dados
– Serial versus paralela
• Técnicas para execução de E/S
– E/S programada
– E/S orientada a interrupções
– DMA (acesso direto a memória)
• Mapeamento
– Espaço em memória
– Espaço de E/S
– Controladoras
Mapeamento
• Espaço de Memória
– Os registradores dos dispositivos estão
mapeados no espaço de memória
– Memória de E/S, dados é programa estão no
mesmo espaço de endereçamento
– No acesso (Leitura/Escrita), a memória e os
dispositivos de E/S comparam o endereço
com o seu
Mapeamento
• Espaço de E/S
– Dois espaços de endereçamento distintos são
utilizados
• Memória para instruções e dados
• E/S para dispositivos de E/S
– Um sinal específico do barramento indica
qual espaço está sendo usado
Execução de E/S
• Programada
– Todo procedimento é executado pela CPU
(processo do Usuário e SO)
• Chama da do sistema para alocação do recurso
– Erro ou bloqueio até o recurso estar disponível
• Chama do sistema para executar a E/S
– Exemplo escrita
• SO copia os dados para o espaço do núcleo
• SO Gerencia o acesso ao dispositivo
– Leitura de registrador de estado
– Escrita em registrador de dados
Execução de E/S
• Orientada a Interrupção
– Interrupção permite aumentar o desempenho
da CPU
• Chama da do sistema para alocação do recurso
• Chama do sistema para executar a E/S
• SO copia os dados para o espaço do núcleo
• SO Escreve dados no buffer do Dispositivo
– Chama o escalonador para ativar outro processo
– O dispositivo interrompe a CPU quando termina de
consumir os dados
– Este procedimento pode se repetir
Execução de E/S
• Acesso Direto a Memória
– DMA (Direct Memory Access) é usado para
economizar tempo de CPU
• DMA tem acesso a memória como mestre
• Possúi registradores
– Endereço
– Contador
– Controle (um ou mais)
– Informações de controle necessárias
• Porta
• Direção do acesso
• Unidade de transferência
Realização de E/S
• Uso do DMA
– Leitura do disco
• A CPU programa o DMA, passando as
informações da operação de E/S desejada
• O Controlador de DMA aciona o
controlador do disco que lê do disco para
seu buffer interno
• Ao concluir a leitura o DMA controla a
escrita do buffer para a memória
Gerência de E/S
• Visão Lógica:
– Fornecer uma interface “amigável” para utilização dos
dispositivos de E/S
– “Esconder” detalhes de mais “baixo nível”
• Explorar eficientemente os dispositivos de E/S
– Desempenho
• Compartilhamento dos dispositivos de E/S
– Alocação dos dispositivos
– Escalonamento de requisições
Subsistema de E/S
Interface
• Subsistema de E/S disponibiliza suporte a um
número pequeno de dispositivos “abstratos”
de E/S
– Cada dispositivo abstrato representa uma classe
de dispositivos de E/S
• Dispositivos “abstratos”
– Orientado a bloco
– Orientado a caracter
– Rede
Orientados a Blocos
• Organiza dados em blocos de tamanho fixo
• Acessa diretamente um bloco de dados
– Blocos são identificados por endereços (número
do bloco)
– ex: blocos de disco
• Operações típicas:
– open( ), read( ), write( ) e close( )
– Disponibilizadas aos usuários via sistema de
arquivos
Orientados a Caracter
• Controla dispositivos que produzem ou consomem
conjunto de dados de tamanho arbitrário
• Operações típicas:
– put( ) e get( )
– ex: teclado, vídeo, mouse, impressora, etc...
• Operações específicas são fornecidas por uma
funções genéricas
– Inversão de cores, bip, inicialização, etc
Orientados a Rede
• Controle e acesso a dispositivos que estão fisicamente
instalados em outros equipamentos
• Necessário estabelecimento de conexões
• Interface típica são sockets
• Operações típicas:
– open( ), close( ), create( )
• Suporte a serviços:
– orientado a conexão: connect( ), accept( ), read( ), write( )
– sem conexão: send( ) e recv( )
Independente de Dispositivo
• Implementa uma classe de dispositivos abstrato
– bloco, caractere ou rede
– As características específicas dos dispositivos não
interferem (invalidam a implementação)
• Fornece suporte a um conjunto de funções comuns:
– Bufferização e cache
– Tratamento de erros
– Escalonamento do dispositivo
– Compartilhamento
Dependente dos dispositivos
• Receber comandos da camada independente de
dispositivo e interage com os dispositivos
Organização Básica dos Drivers
Chamadas de Sistema
• Bloqueante
– O “controle” retorna a camada de aplicação somente após a
conclusão da operação de entrada e saída
• Não Bloqueante
– O “controle” retorna a camada de aplicação com os dados
disponíveis no momento
• Assíncrona
– O “controle” retorna a camada de aplicação sem que a operação
de entrada e saída tenha sido concluída
• Programação (agendamento) de uma operação de E/S