33

Sistemas de Entrada e Saída - eduardosan.com filePode conter processador, microcontrolador, memória, etc. Aorquestraçãodo acesso aos componentes é feita pelodriver. 7/33. Dispositivos

Embed Size (px)

Citation preview

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