Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco...

44

Transcript of Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco...

Page 1: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 2: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Sumário

1 Dispositivos de E/S

2 Interrupções

3 Camadas de Software de E/S

2 / 44

Page 3: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Dispositivos de E/S

1 Dispositivos de E/S

2 Interrupções

3 Camadas de Software de E/S

3 / 44

Page 4: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 5: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 6: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 7: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 8: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Dispositivos de E/S

Barramentos

Figura 1.1: Estrutura típica de barramentos do PC [Galvin et al., 2013]

8 / 44

Page 9: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 10: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 11: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 12: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 13: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 14: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Dispositivos de E/S

DMA

Figura 1.5: Algoritmo de transferência DMA [Galvin et al., 2013]

14 / 44

Page 15: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Interrupções

1 Dispositivos de E/S

2 Interrupções

3 Camadas de Software de E/S

15 / 44

Page 16: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 17: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Interrupções

Implementação hardware

Figura 2.1: Ciclo de interrupções de E/S [Galvin et al., 2013]

17 / 44

Page 18: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 19: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 20: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Interrupções

Vetor de interrupção

Figura 2.2: Tabela de interrupções do processador Intel [Galvin et al., 2013]

20 / 44

Page 21: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 22: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 23: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 24: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 25: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Camadas de Software de E/S

1 Dispositivos de E/S

2 Interrupções

3 Camadas de Software de E/S

25 / 44

Page 26: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 27: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 28: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 29: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 30: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 31: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 32: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 33: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 34: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 35: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 36: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 37: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 38: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 39: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 40: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 41: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 42: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

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

Page 43: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Camadas de Software de E/S

OBRIGADO!!!

PERGUNTAS???

43 / 44

Page 44: Sistemas de Entrada e Saída - Eduardo San · Dispositivos de E/S Dispositivos de bloco Característica: cada bloco pode ser lido ou escrito independentemente de todos os outros [Tanenbaum

Camadas de Software de E/S

Chagas, F. (2016).Notas de aula do prof. fernando chagas.

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.

44 / 44