Post on 17-Dec-2018
Sistemas de Entrada e Saída
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília � UniCEUB
Maio, 2016
1 / 33
Sumário
1 Dispositivos de E/S
2 Interrupções
3 Software de E/S
2 / 33
Dispositivos de E/S
1 Dispositivos de E/S
2 Interrupções
3 Software de E/S
3 / 33
Dispositivos de E/S
De�nições
Diferentes formas de interagir com o hardware:
Entradas aceitas;Operações realizadas;Erros repassados aos softwares.
Foco: entender as operações que são disponibilizadas aos programas.
Dispositivos de bloco Armazenamento de informações em blocos detamanho �xo (discos);
Dispositivos de caractere Envia e recebe �uxo de caracteres.
4 / 33
Dispositivos de E/S
Dispositivos de bloco
Característica: cada bloco pode ser lido ou escrito independentementede todos os outros [Tanenbaum and Machado Filho, 1995];
Ex.: CD-ROM, discos, �ash drives;
Considerações sobre a possibilidade de escrita/leitura de blocosindependentes:
Como comparar a escrita em discos e �tas magnéticas?Como o acesso aleatório afeta o armazenamento ou não em blocos?É possível traçar sempre um limite? Como separar?
5 / 33
Dispositivos de E/S
Dispositivos de caractere
Dispositivos de caracteres:
Envia e recebe um �uxo de caracteres;Não são endereçáveis;Não tem operação de posicionamento.
Assim como os blocos, a classi�cação não é perfeita. Ex.: relógio
Não são endereçáveis por bloco;Não enviam nem recebem caracteres;Operação única: causa interrupção em intervalos de�nidos.
A divisão da classi�cação facilita o desenvolvimento de interfaces desoftware.
6 / 33
Dispositivos de E/S
Componentes
Portas Ponto de conexão entre o dispositivo e o computador;
Barramentos Mecanismo de conexão disponibilizado à porta;
Barramento PCI comum em computadores domésticos eservidores;Barramento de expansão: conecta dispositivos maislentos.
Controlador Dispositivo eletrônico que conecta a porta e os dispositivos.
Pode estar integrado ao dispositivo;Pode ser disponibilizado em uma placa separada(adpatador);Pode conter processador, microcontrolador, memória,etc.
A orquestração do acesso aos componentes é feita pelo driver.
7 / 33
Dispositivos de E/S
Barramentos
Figura 1.1: Estrutura típica de barramentos do PC [Galvin et al., 2013]
8 / 33
Dispositivos de E/S
Velocidade dos barramentos
Figura 1.2: Taxa de transmissão de alguns dispositivos de E/S[Tanenbaum and Machado Filho, 1995]
9 / 33
Dispositivos de E/S
Controladores de dispositivos
Controlados através de instruções de Entrada/Saída (I/O);
Comandos enviados e recebidos através dos registradores:
Registrador de entrada (data-in);Registrador de saída (data-out);Registrador de status;Registrador de controle.
Os dispositivos possuem endereços que podem ser utilizados por:
Instruções diretas Comandos enviados diretamente ao dispositivo;I/O na memória Os dispositivos e seus comandos estão diretamente
mapeados no espaço de endereçamento do processador.
10 / 33
Dispositivos de E/S
Endereços de I/O
Figura 1.3: Endereços típicos das portas nos PC's [Galvin et al., 2013]
11 / 33
Dispositivos de E/S
Comunicação
(a) I/O e memória separados;
(b) Espaço único de endereçamento;
(c) Dois espaços de endereçamento.
Figura 1.4: Mecanismos de endereçamento[Tanenbaum and Machado Filho, 1995]
12 / 33
Dispositivos de E/S
I/O na memória
Utilizado para evitar I/O programado (um bit de cada vez) paragrande quantidade de dados;
Precisa de uma controladora DMA � Direct Memory Access;
A transferência de dados entre o dispositivo e a memória não passapela CPU;
O barramento �rouba� ciclos da CPU para transferir os dados;
Ao �nalizar, gera uma interrupção que sinaliza o �m da operação;
DVMA: versão que trabalha direto com endereços virtuais.
13 / 33
Dispositivos de E/S
DMA
Figura 1.5: Algoritmo de transferência DMA [Galvin et al., 2013]
14 / 33
Interrupções
1 Dispositivos de E/S
2 Interrupções
3 Software de E/S
15 / 33
Interrupções
Interrupções revisitadas
A estrutura de interrupções em hardware funciona de uma maneiraligeiramente diferente:
1 Ao �nalizar o trabalho, o dispositivo de E/S gera uma interrupçãoenviando um sinal à linha de barramento;
2 O sinal é detectado pelo chip do controlador, que decide o que fazer;3 Se nenhuma outra interrupção está pendente, o controlador de
interrupção processa imediatamente;4 Se algum outro dispositivo solicitar o recurso e estiver ocupado, é
simplesmente ignorado;5 O dispositivo �ca enviando o sinal de interrupção até o barramento
estar disponível.
16 / 33
Interrupções
Implementação hardware
Figura 2.1: Ciclo de interrupções de E/S [Galvin et al., 2013]
17 / 33
Interrupções
Polling
Para cada byte de I/O:1 Dispositivo lê o registrador de status até que esteja disponível (0);2 Dispositivo ajusta o bit de leitura e/ou escrita. Se estiver escrevendo,
copia os dados para o registrador data-out;3 Dispositivo ajusta o bit de command-ready;4 Controladora ajusta o bit de ocupado e executa a transferência;5 Controladora ajusta o bit de ocupado, de erro e de command-ready
quando a transferência estiver completa.
Durante o passo 1 está no ciclo de busy-wait. Implicações?
18 / 33
Interrupções
Interrupções
O polling pode precisar de três ciclos de CPU:1 Lê bit de status;2 Extrai bit de status;3 Espera ou escreve.
O CPU precisa produzir algum tipo de interrupção;
Mecanismo de vetor de interrupção:
Troca de contexto no começo e no �m;Baseado em prioridade;Problema da cadeia de interrupções.
Algumas interrupções podem ser ignoradas: mascaradas.
19 / 33
Interrupções
Vetor de interrupção
Figura 2.2: Tabela de interrupções do processador Intel [Galvin et al., 2013]
20 / 33
Interrupções
Interrupção precisa
Pode ser difícil mapear o estado das interrupções em sistemamultiprocessados. Ex.: pipeline;
Interrupção precisa [Tanenbaum and Machado Filho, 1995]:1 O contador de programa (program counter � PC) é salvo em um lugar
conhecido;2 Todas as instruções anteriores àquela apontada pelo PC foram
totalmente executadas;3 Nenhuma instrução posterior à apontada pelo PC foi executada;4 O estado de execução da instrução apontada pelo PC é conhecido.
Se os requisitos não forem atendidos a interrupção é consideradaimprecisa.
21 / 33
Interrupções
Exemplo
(a) Interrupção precisa;
(b) Interrupção imprecisa.
Figura 2.3: Exemplo de interrupção precisa e imprecisa[Tanenbaum and Machado Filho, 1995]
22 / 33
Interrupções
Considerações
O mesmo mecanismo utilizado pelas interrupções também é utilizadopelas exceções;
Erro no acesso à memória: page fault;
A interação com o kernel acontece via trap;
Sistemas com múltiplas CPU podem executar interrupçõessimultâneas;
Processamento que leva em consideração o tempo.
23 / 33
Software de E/S
1 Dispositivos de E/S
2 Interrupções
3 Software de E/S
24 / 33
Software de E/S
Objetivos
Princípio: independência de dispositivo;
Não preciso saber qual é o disco antes de mandar o software escrever;
Qualquer input de teclado deve gerar a mesma saída na tela;
Nomeação uniforme: o arquivo deve ser identi�cado pela mesmasequência de caracteres em qualquer dispositivo;
O endereçamento do dispositivo é feito pelo nome do caminho: pontode montagem.
O tratamento de erros deve ocorrer o mais próximo do hardwarepossível;
Tipo de transferência: sincrona (bloqueante) ou assíncrona (orientadaà interrupção);
Utilização de armazenamento temporário: bu�er.
25 / 33
Software de E/S
Implementações de E/S
As implementações de E/S são organizadas de acordo com omecanismo de transferência:
E/S programada A CPU faz todo o trabalho. Envia os dados à medida quechegam e �ca esperando o sinal de disponível;
E/S interrupção E/S orientada à interrupção era uma interrupção aoterminar de enviar cada caractere;
E/S DMA Utiliza a DMA para evitar uma interrupção para cadacaractere.
26 / 33
Software de E/S
E/S programada
Figura 3.1: Passos ao enviar uma string à impressora[Tanenbaum and Machado Filho, 1995]
27 / 33
Software de E/S
E/S programada (implementação)
Figura 3.2: Escrevendo uma string na impressora utilizando E/S programada[Tanenbaum and Machado Filho, 1995]
28 / 33
Software de E/S
E/S orientada à interrupção
(a) Código executado no momento que a SYSCALL é chamada;
(b) Procedimento do serviço de interrupção da impressora.
Figura 3.3: Escrevendo uma string na impressora utilizando E/S orientada àinterrupção [Tanenbaum and Machado Filho, 1995]
29 / 33
Software de E/S
E/S orientada à DMA
(a) Código executado no momento que a SYSCALL é chamada;
(b) Procedimento do serviço de interrupção.
Figura 3.4: Imprimindo uma string utilizando DMA[Tanenbaum and Machado Filho, 1995]
30 / 33
Software de E/S
Camadas de software
Cada camada do software de E/S tem uma função bem de�nida;
A comunicação se dá através de uma interface com a camadaadjacente.
Figura 3.5: Camadas do software de E/S [Tanenbaum and Machado Filho, 1995]
31 / 33
Software de E/S
OBRIGADO!!!
PERGUNTAS???
32 / 33
Software de E/S
Galvin, P. B., Gagne, G., and Silberschatz, A. (2013).Operating system concepts.John Wiley & Sons, Inc.
Tanenbaum, A. S. and Machado Filho, N. (1995).Sistemas operacionais modernos, volume 3.Prentice-Hall.
33 / 33