Sistemas de Entrada e Saída - eduardosan.com€¦ · Interrupções Polling Para cada byte de I/O:...
Transcript of Sistemas de Entrada e Saída - eduardosan.com€¦ · Interrupções Polling Para cada byte de I/O:...
Sistemas de Entrada e Saída
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília � UniCEUB
Junho, 2017
1 / 44
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 / 44
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 / 44
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ógioNã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 / 44
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 / 44
Dispositivos de E/S
Barramentos
Figura 1.1: Estrutura típica de barramentos do PC [Galvin et al., 2013]
8 / 44
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 / 44
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 / 44
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 / 44
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 / 44
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 / 44
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 / 44
Interrupções
Implementação hardware
Figura 2.1: Ciclo de interrupções de E/S [Galvin et al., 2013]
17 / 44
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 / 44
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 / 44
Interrupções
Vetor de interrupção
Figura 2.2: Tabela de interrupções do processador Intel [Galvin et al., 2013]
20 / 44
Interrupções
Pipeline
Pode ser difícil mapear o estado das interrupções em sistemamultiprocessados.Como funciona o ciclo de interrupções no exemplo da �gura?
Figura 2.3: Execução do pipeline [Chagas, 2016]
21 / 44
Interrupções
Interrupção precisa
Para conseguir realizar a interrupção é preciso atender algunsrequisitos obrigatórios;Interrupção precisa [Tanenbaum and Machado Filho, 1995]:
1 O contador de programa (program counter � PC) é salvo em um lugarconhecido;
2 Todas as instruções anteriores àquela apontada pelo PC foramtotalmente 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.
22 / 44
Interrupções
Exemplo
(a) Interrupção precisa;
(b) Interrupção imprecisa.
Figura 2.4: Exemplo de interrupção precisa e imprecisa[Tanenbaum and Machado Filho, 1995]
23 / 44
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.
24 / 44
Camadas de Software de E/S
1 Dispositivos de E/S
2 Interrupções
3 Camadas de Software de E/S
25 / 44
Camadas de 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.
26 / 44
Camadas de 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.
27 / 44
Camadas de Software de E/S
E/S programada
Figura 3.1: Passos ao enviar uma string à impressora[Tanenbaum and Machado Filho, 1995]
28 / 44
Camadas de 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]
29 / 44
Camadas de 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]
30 / 44
Camadas de 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]
31 / 44
Camadas de 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]
32 / 44
Camadas de Software de E/S
Tratadores de interrupção
As interrupções normalmente são um fato desagradável e não podemser evitadas;
A implementação no hardware é feita através do driver;
Uma das formas de diminuir o risco é bloquear o driver até que aoperação de E/S seja �nalizada;
Ex.: interagir com semáforos;
Processar interrupção não é apenas dar um UP num semáforo: existemquestões relativas aos estados das tarefas que precisam ser tratadas;
Algoritmos de interrupção via software.
33 / 44
Camadas de Software de E/S
Algoritmo de interrupção
É possível de�nir um algoritmo de tratamento de interrupção[Tanenbaum and Machado Filho, 1995]:
1 Salva todos os registradores que ainda não foram salvos pelo hardware;2 Estabelece um contexto para a rotina de tratamento da interrupção;3 Estabelece uma pilha para a rotina de tratamento da interrupção;4 Sinaliza o controlador de interrupção;5 Copia os registradores de onde eles foram salvos para a tabela de
processor;
34 / 44
Camadas de Software de E/S
Algoritmo de interrupção (cont.)
6 Executa a rotina de tratamento de interrupção;7 Escolhe o próximo processo a executar;8 Estabelece o contexto da MMU para o próximo processo;9 Carrega os registradores do novo processo;10 Inicializa o novo processo.
35 / 44
Camadas de Software de E/S
Drivers de dispositivos
Figura 3.6: Posicionamento lógico dos drivers de dispositivos[Tanenbaum and Machado Filho, 1995]
36 / 44
Camadas de Software de E/S
Utilização dos drivers
Kernel monolítico x Microkernel;
Principal função do driver: executar requisições de E/S abstratas,independente do dispositivo;
Envio de comandos para o dispositivo;
Manusear em operação: hot pluggable systems;
Os drivers não são aptos a executar chamadas de sistema (SYSCALL).
37 / 44
Camadas de Software de E/S
E/S no kernel
Figura 3.7: Estrutura de E/S no kernel [Galvin et al., 2013]
38 / 44
Camadas de Software de E/S
Independência
Figura 3.8: Funções do software de E/S independente do dispositivo[Galvin et al., 2013]
39 / 44
Camadas de Software de E/S
Uniformidade
(a) Sem uma interface padrão
(b) Com uma interface padrão.
Figura 3.9: Interface uniforme para tratamento de dispositivos[Tanenbaum and Machado Filho, 1995]
40 / 44
Camadas de Software de E/S
E/S no espaço do usuário
Alguns pedaços do sistema operacional são construídos no formato debibliotecas reutilizáveis. Ex.: SYSCALL
As bibliotecas são �linkadas� no momento da compilação;
Daemon: Processo especial que consome o diretório de spool.
41 / 44
Camadas de Software de E/S
Camadas do espaço do usuário
Figura 3.10: E/S implementado por camadas e suas funções[Tanenbaum and Machado Filho, 1995]
42 / 44