+ All Categories
Home > Documents > Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S...

Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S...

Date post: 18-Apr-2015
Category:
Upload: internet
View: 106 times
Download: 2 times
Share this document with a friend
86
Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S
Transcript
Page 1: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Capítulo 5 - Entrada/Saída

5.1 Princípios do hardware de E/S5.2 Princípios do software de E/S5.3 Camadas do software de E/S

Page 2: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Capítulo 5 - Entrada/Saída

5.1 Princípios do hardware de E/S5.2 Princípios do software de E/S5.3 Camadas do software de E/S

Page 3: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Controladores de Dispositivos

Composto por dispositivos: Mecânico Eletrônico

Exemplo: HD

Mecânico: Discos magnéticos com cabeçote de leitura e motores que rotacionam e movem os discos e cabeçotes.

Eletrônico: Controlador

Page 4: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Controladores de Dispositivos

Podem ser reutilizados em outros dispositivos, fornecendo uma modularização.

Tem como principal função converter o fluxo serial de bits em blocos de bytes e corrigir eventuais erros.

Podem ter registradores dentro do espaço de memória (E/S mapeada na memória).

Page 5: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Mapeada na Memória

(a) Espaços de memória e E/S separados

(b) E/S mapeada na memória

(c) Híbrido

Page 6: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Espaço de Memória e E/S Separados

Possui registradores específicos para E/S. É necessário usar códigos específicos de

Assembly para acessar os registradores.

Page 7: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Mapeada na Memória

Mapeia todos os registradores de controle no espaço de memória.

É possível acessar através de métodos IN/OUT de C.

Não necessita de qualquer mecanismo de proteção, pois o usuário está apenas acessando uma área da memória.

Page 8: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Mapeada na Memória (Cont.)

Desta forma o SO é capaz de modificar os acesso do usuário a um dispositivo específico apenas incluindo/removendo as páginas desejas em sua tabela de páginas.

Page 9: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Dois Espaços de Endereçamento de E/S

Este último esquema reserva um espaço na memória para os dispositivos de E/S.

Tem desvantagem a necessidade de calcular em tempo de inicialização do sistema quais endereços de memória estão reservados para os dispositivos de E/S.

Page 10: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Direct Memory Access (DMA)

O controlador solicita um bloco de dados, armazena-o em um buffer e o contador de blocos é decrementado. Ao final deste loop, os blocos de dados são copiados diretamente na memória e uma interrupção é solicitada.

Desta forma a CPU é utilizada apenas para iniciar a transferência e esta pode ser alocada para o próximo processo.

Page 11: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Direct Memory Access (DMA)

Page 12: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer Interno

O uso de um buffer interno é de extrema importância, pois os dados chegam a uma taxa constante ao controlador.

Caso não houvesse um buffer, os dados seriam perdidos e teriam quer ser relidos.

E no caso do barramento se manter ocupado por um longo tempo, um erro de overrun é levantado.

Page 13: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer Interno

Uma solução para este problema é a leitura intercalada dos dados no disco.

A intercalação única resolve o problema quando a taxa de leitura dos dados ocorrem duas vezes mais rápidas que o controlador consegue escrever na memória.

Page 14: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer Interno

(a) Nenhuma intercalação.

(b) Intercalação única.

(c) Intercalação dupla.

Page 15: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Capítulo 5 - Entrada/Saída

5.1 Princípios do hardware de E/S5.2 Princípios do software de E/S5.3 Camadas do software de E/S

Page 16: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Projeto de Software de E/S

Objetivos Independência de dispositivo. Nomeação uniforme. Tratamento de erros.

Page 17: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Projeto de Software de E/S

Independência de dispositivo: A escrita de programas que acessam os

dispositivos de E/S não deve distinguí-los. Um programa escrito para acessar um dispositivo

de bloco (HD) deve ser capaz de acessar da mesma forma um outro dispositivo de bloco (cd-rom).

Page 18: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Projeto de Software de E/S

Nomeação uniforme: Deve suportar uma nomeação independente de

dispositivo, usando uma cadéia de caracteres ou um número inteiro.

No Unix, todos os discos podem ser integrados a hierarquia do sistema de arquivo e o usuário não precisa qual nome corresponde a qual dispositivo.

Page 19: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Projeto de Software de E/S

Tratamento de erros: Os erros devem ser tratados o mais próximo

possível do hardware. O erro só é passado adiante quando não é possível

corrigí-lo. Um exemplo é quando um disquete está sendo lido

e o cabeçote está sujo, uma nova solicitação de leitura pode remover a sujeira do cabeçote e o dado é, finalmente, lido.

Page 20: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Transferência Síncrona vs Assíncrona

Na transferência síncrona é realizado o bloqueio, ou seja, o processo se mantém esperando o resultado/disponibilidade do dispositivo.

A assíncrona é orientada à interrupção, a CPU inicia o processo e é alocada para o próximo processo.

Page 21: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Transferência Síncrona vs Assíncrona

Os programas de usuário são mais simples de escrever usando operações bloqueantes (síncrona).

Fica a cargo do sistema operacional realizar as operações orientadas à interrupção parecerem bloqueantes (assíncrona).

Page 22: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

Os programas de E/S podem utilizar buffers para o armazenamento temporário dos dados.

Um exemplo é um pacote proveniente da placa de rede.

O SO não sabe onde armazenar o pacote sem antes ser analizado.

Page 23: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Dispositivos Compartilhados vs Dedicados

Alguns dispositivos podem ser usados por vários usuários simultaneamente.

Este compartilhamento só é possível em Hds devido a sua capacidade de acesso aleatório

Unidades de fita não é capaz de ser compartilhada (dedicada).

Page 24: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Formas de E/S

Existem três maneiras de se realizar E/S: E/S programada. E/S orientada a interrupção. E/S que usa DMA.

Page 25: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Programada

A CPU realiza todo o trabalho e fica dedicada ao processo que solicitou a operação.

Page 26: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Programada

Page 27: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Programada

O SO escreve no registrador de E/S os dados byte a byte (b) e, após cada byte escrito, o SO fica esperando o dispositivo ficar disponível novamente (c).

Page 28: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Programada

Page 29: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Programada

A principal desvantagem do uso deste método é que a CPU fica contínuamente verificando o status do dispositivo, causando uma espera ociosa ou polling.

Tem como principal vantagem ser extremamente simples de implementar.

Page 30: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Orientada à Interrupção

Permite que a CPU fique livre para realizar outras operações enquanto o dispositivo não fica disponível.

Page 31: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Orientada à Interrupção

Page 32: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Orientada à Interrupção

O processo envia o primeiro byte, quando o dispositivo fica disponível novamente, uma interrupção é lançada e o tratamento de interrupção é chamado (a).

O tratamento de interrupção verifica se ainda há algum dado a ser enviado ao dispositivo, caso haja, o próximo byte é enviado e o processo continua bloqueado (b).

Page 33: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S Orientada à Interrupção

Tem como principal desvantagem a ocorrência de uma interrupção a cada byte.

Interrupções são operações custosas.

Page 34: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S com DMA

O controlador de DMA faz o papel da CPU e a operação é realizada usanda E/S programada.

Page 35: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S com DMA

Page 36: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S com DMA

O processo solicita a operação de E/S e o controlador DMA inicia a tranferência byte a byte, assim como é feita a E/S programada (a).

Assim que o buffer inteiro é transferido, uma interrupção é lançada e o processo pode enviar outro buffer ou ser desbloqueado.

Page 37: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

E/S com DMA

A principal vantagem é que ocorre uma interrupção a cada buffer, invés de uma a cada byte.

Porém, o controlador pode ser mais lento que a CPU e isto impediria que o dispositivo funcione em sua máxima velocidade.

Page 38: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Capítulo 5 - Entrada/Saída

5.1 Princípios do hardware de E/S5.2 Princípios do software de E/S5.3 Camadas do software de E/S

Page 39: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Camadas do Software de E/S

Page 40: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Camadas do Software de E/S

Page 41: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Tratadores de Interrupção

As interrupções devem ser escondidas ao máximo.

Isto é feito bloqueando o driver que iniciou a opração de E/S.

Page 42: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Tratadores de Interrupção

O tratamento de uma interrupção é algo bem mais complexo que um simples UP sobre algum semáforo.

Uma série de passos devem ser executados quando uma interrupção ocorre.

Page 43: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Passos de Tratamento de Interrupção (1)

1. Salva quaisquer registradores que ainda não foram salvos pelo hardware de interrupção.

2. Estabele um contexto para a rotina de tratamento de interrupção.

3. Estabele uma pilha para a rotina de tratamento de interrupção.

Page 44: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Passos de Tratamento de Interrupção (2)

4. Sinaliza o controlador de interrupção.

5. Copia os registradores de onde eles foram salvos para a tabela de processos.

6. Executa a rotina de tratamento de interrupção. Ela extrairá informações dos registradores do controlador do dispositivo que está interrompendo.

Page 45: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Passos de Tratamento de Interrupção (3)

7. Escolhe o próximo processo a executar. Se a interrupção deixou pronto algum processo de alta prioridade anteriormente bloqueado, este pode ser escolhido para executar agora.

8. Estabelece o contexto da MMU (Unidade de gerenciamento de memória) para o próximo processo a executar. Algum ajuste na TLB (tabela de tradução de endereços) também pode ser necessário.

Page 46: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Passos de Tratamento de Interrupção (4)

9. Carrega os registradores do novo processo, incluido sua PSW (Program Status Word).

10. Inicia a execução do novo processo.

Page 47: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Camadas do Software de E/S

Page 48: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Cada dispositivo necessita de um código específico do mesmo para controlá-lo.

Este código é chamado de driver do dispositivo.

Page 49: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Geralmente é escrito pelo fabricante e fornecido juntamente com o dispositivo.

Cada sistema operacional precisa do seu próprio driver.

Page 50: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Para ter acesso direto aos registradores dos dispositivos, o driver deve fazer parte do núcleo do SO.

Isso é devido à proteção de acesso aos registradores de E/S.

Page 51: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

É possível criar um driver que execute no espaço do usuário e solicite ao SO a escrite e leitura dos registradores.

Isto, na realidade, até proporcionaria uma maior estabilidade ao SO, visto que drivers defeituosos podem interferir no núcleo do SO.

Page 52: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Posicionamento Lógico dos Drivers

Page 53: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

O SO deve permitir a instalação de novos drivers.

No Unix o SO costumava ser um único programa binário, compilado para usar os periféricos.

Qualquer mudança nos dispositivos de E/S necessitava uma recompilação do SO.

Page 54: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Em geral, possuem uma estrutura similar: Inicia verificando se os parâmetros estão corretos

e, algumas vezes, uma tradução dos valores é necessária

Verifica se o dispositivo está disponível e se o hardware pode executar a requisição imediatamente. Em alguns casos que alguns dispositivos sejam ligados.

Page 55: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

O driver escreve os comandos nos registradores e, alguns, podem ter uma de comandos que são executados sem a ajuda do SO.

Controlar um dispositivo significa emitir uma sequência de comandos. É no driver onde a sequência de comandos está

armazenada.

Page 56: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Nos casos que o driver espera por uma ação ser completada, este se autobloqueia e espera por uma interrupção para desbloqueá-lo.

Ao fim da operação o driver verifica se há alguma requisição pendente, caso não haja, este se bloqueia e fica a espera de novas requisições.

Page 57: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Na realidade, o processo de espera e execução de um comando pode ser mais complexo.

Uma requisição pode chegar enquanto o driver está executando alguma ação.

Alguns devem ser capazes de prover reentrância. Capacidade de executar o código concorrentemente

e de forma segura.

Page 58: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Drivers do Dispositivo

Um dispositivo pode ser removido durante a execução de um processo que o utilizava.

O driver deve ser capaz de interromper a transferência e informar os processos sobre a remoção. Isto deve ser feito sem causar nenhum dano às

estruturas de dados do núcleo.

Page 59: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Camadas do Software de E/S

Page 60: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Software Independente de Dispositivo

• O SO deve fornecer uma interface uniforme a todos os drivers.

– Um HD (dispositivo de bloco) não deve ser tratado diferente de um CD, por exemplo.

– Sem isto, as funções de acesso seriam diferentes para cada dispositivo.

– Facilita o desenvolvimento.

Page 61: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Software Independente de Dispositivo

• O acoplamento de um novo driver se torna mais fácil.

– O desenvolvedor sabe o que se espera dele (quais funções devem ser disponibilizadas).

• Na prática não é exatamente assim, entretanto, alguns dispositivos compartilham semelhanças.

Page 62: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

(a) Entrada sem uso de buffer.

(b) Buffer no espaço do usuário.

(c) Buffer no espaço do usuário e no núcleo.

(d) Buffer duplo no núcleo.

Page 63: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

• Novamente o uso de buffer é de extrema importância.

• Sem um buffer, a CPU é interrompida, constantemente, para armazenar/analisar o dado que chega.

– Os dados podem chegar a uma taxa constante e os novos dados podem ser perdidos.

Page 64: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

(a) Entrada sem uso de buffer.

(b) Buffer no espaço do usuário.

(c) Buffer no espaço do usuário e no núcleo.

(d) Buffer duplo no núcleo.

Page 65: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer no Espaço do Usuário

Uma solução proposta para este problema é utilizando um buffer no espaço de usuário.

A rotina de tratamento de interrupção preenche o buffer com os dados que chegam.

O processo é desbloqueado quando este está cheio.

Page 66: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer no Espaço do Usuário

• Se o buffer estiver paginado no disco quando um dado chegar, este terá que ser trazido a memória principal para incluir o novo dado.

• O buffer pode ser trancado na memória e se manter na memória principal.

– Porém se vários processos realizam isto, a memória ficará cheia de processos que não podem ser paginados.

Page 67: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

(a) Entrada sem uso de buffer.

(b) Buffer no espaço do usuário.

(c) Buffer no espaço do usuário e no núcleo.

(d) Buffer duplo no núcleo.

Page 68: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer no Espaço do Usuário e no Núcleo

• Um buffer pode ser criado no núcleo e os dados são transferidos para o buffer no espaço do usuário quando este está cheio.

– Novamente, o tratador de interrupção preenche o buffer no núcleo.

– A página associada ao buffer do usuário é carregada na memória principal e os dados são copiados.

Page 69: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer no Espaço do Usuário e no Núcleo

• Porém, os dados que chegam enquanto a página do buffer do usuário está sendo carregada são perdidos.

• A velocidade com que o buffer no núcleo é esvaziado pode ser menor que a velocidade com que os dados chegam.

Page 70: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer

(a) Entrada sem uso de buffer.

(b) Buffer no espaço do usuário.

(c) Buffer no espaço do usuário e no núcleo.

(d) Buffer duplo no núcleo.

Page 71: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Buffer Duplo no Núcleo

• Uma melhor solução é utilizando um buffer duplicado no núcleo.

• Enquanto um buffer está sendo esvaziado, o outro é utilizado para armazenar os dados que chegam.

Page 72: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer na Saída

• Estes problemas podem ocorrer na saída de dados, também.

• O processo poderia ficar bloqueado até o envio ser concluido.

– Porém, isto pode levar um longo tempo.

Page 73: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer na Saída

• O processo poderia ser liberado e uma interrupção seria lançada para avisar a conclusão da transferência.

– Poderia gerar uma condição de corrida.

– Difícil de programar.

– O processo não sabe quando poderá usar o buffer novamente.

Page 74: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffer na Saída

• O uso de um buffer no núcleo permite que o processo seja liberado imediatamente.

– O processo pode usar o buffer usado na transferência novamente, pois foi copiado para o buffer do núcleo.

Page 75: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Uso de Buffers

• O uso de buffers pode diminuir o desempenho das atividades de E/S.

– Os passos devem seguir uma ordem.

– Introduzindo novos passos (para uso do buffer) iria aumentar a quantidade de passos.

Page 76: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Relatório de Erros

• Os erros específicos de dispositivo devem ser tratados pelo driver.

• Mas o modelo do tratamento de erro não depende do dispositivo.

Page 77: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Relatório de Erros

• Podem existir erros de programação.

– Solicitações erradas.

• Fica a cargo do driver resolver erros reais de E/S.

Page 78: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Alocação/Liberação de Dispositivos Dedicados

• O SO deve examinar as requisições e aceitá-la ou rejeitá-la.

– Depende da disponibilidade do dispositivo e das permissões de acesso.

• Uma solução é realizar uma chamada open para a abertura de arquivos especiais (que estão diretamente associados ao dispositivo).

– Caso não esteja disponível, o open falha.

Page 79: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Alocação/Liberação de Dispositivos Dedicados

• O processo também poderia ser bloqueado até o dispositivo ser liberado.

– Pode causar um deadlock.

Page 80: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Tamanho de Bloco Independente de Dispositivo

• Os discos possuem diferentes tamanhos de setores.

• Cabe ao software independente de dispositivo esconder isto.

• Deve ser fornecido um tamanho uniforme.

– As camadas acima tratam apenas de dispositivos abstratos.

Page 81: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Camadas do Software de E/S

Page 82: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Software de E/S no Nível do Usuário

• Maior parte do software de E/S está dentro do SO.

• Uma pequena parte dele é constituida de bibliotecas ligadas aos programas do usuário ou até mesmo programas completos que rodam fora do núcleo.

Page 83: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Software de E/S no Nível do Usuário

• As chamadas do sistema são normalmente feitas por procedimentos de bibliotecas.

– O conjunto de todos os procedimentos de biblioteca fazem parte do sistema de E/S.

• Nem todo software de E/S no nível do usuário utiliza procedimentos de biblioteca.

– Sistema de Spooling se enquadra nesta categoria.

Page 84: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Spooling

• O uso de spool é uma forma de lidar com dispositivos dedicados de E/S em sistemas multiprogramação.

• Um processo de usuário poderia escrever diretamente na impressora.

– Mas se este reter o controle por várias horas, nenhum outro processo poderá usá-lo.

Page 85: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Spooling

• Para resolver este problema, são utilizados:

– Daemon, é um processo especial que realiza a requisição de E/S.

– Diretório de spool, é um diretório especial onde as requisições são colocadas.

• O daemon é o único processo com acesso ao dispositivo dedicado.

Page 86: Capítulo 5 - Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S.

Spooling

• É, principalmente, utilizado em sistemas de impressão.

• Pode ser usado em sistemas de transferência de arquivos pela rede, sistemas de newsgroups...


Recommended