You are on page 1of 18

Universidade Federal Rural do Semi-Árido

Departamento de Ciências Exatas e Naturais


Ciência da Computação

Sistemas Operacionais
Aula 11: Princípios do software de E/S

Silvio Fernandes
2009.1
1
Introdução
• O conceito primordial no projeto do SW de
E/S é conhecido como independência de
dispositivo, pela qual programas são aptos
acessar qualquer dispositivo de E/S de uma
maneira, seja ele um disquete, disco rígido, ou
CD-ROM.
• O conceito de nomeação uniforme, diz que o
nome de cada arquivo ou dispositivo deveria
ser uma simples cadeia de caracteres ou valor
inteiro, totalmente independente do
dispositivo
2
Introdução
• Em relação ao tratamento de erros há o
conceito de que eles devem ser tratados o
mais “próximo” do hardware possível
• Se um controlador descobre um erro ele deve
tratá-lo, caso não tenha condições para isso o
erro deve ser informado ao driver do
dispositivo que também tenta tratá-lo

3
Introdução
• Em último caso o processo do usuário é
informado que o houve um erro que não pode
ser tratado

4
Introdução
• Em relação a transferência de dados ela pode
ser síncrona (bloqueante), que é a forma mais
utilizada nas camadas de software de alto
nível, por facilitar a programação
• Ou assíncrona (orientada a interrupção),
forma utilizada na E/S física
• Outra questão é a utilização de buffer para
armazenamento temporário
– Muitas vezes os dados não podem ser
armazenados nos seu destino final

5
Introdução
• Outro conceito é o de dispositivo
compartilhado versus dedicado
– Alguns dispositivos (como discos) podem ser
usados por muitos usuários ao mesmo tempo
– Outros dispositivos (como fitas) devem ser
dedicados a um único usuário até que finalize suas
operações
• Há 3 maneiras de realizar E/S
– E/S programada
– E/S orientada a interrupção
– E/S que usa DMA
6
E/S programada
• É uma das formas mais simples de E/S e usa a
CPU para fazer todo o trabalho
• Ex: um processo de usuário mandando uma
cadeia “ABCDEFGH” para impressora
1. O processo monta um buffer com a cadeia a ser
enviada para o dispositivo, no seu espaço de
endereçamento
2. O processo requisita o uso do dispositivo, por
meio de uma chamada ao sistema. Caso ele não
esteja pronto um código de erro será retornado

7
E/S programada
3. Uma vez com a posse do dispositivo o processo
efetua uma outra chamada ao sistema, para enviar a
cadeia ao dispositivo
4. O SO copia o buffer para o espaço de
endereçamento do núcleo, onde ele é mais
facilmente acessado, e verifica se o dispositivo está
disponível no momento. Logo que ele esteja o SO
copia a 1ª unidade de dados para o buffer de dados
do dispositivo
5. Em seguida, o SO verifica se o dispositivo está
novamente pronto, e apenas quando ele estiver
copia a 2ª unidade de dados para o buffer do
dispositivo e assim sucessivamente

8
E/S programada
• Passos na impressão de uma cadeia de
caracteres

9
E/S programada
• O aspecto essencial da E/S programada, é que
após a saída de um caractere, a CPU
continuamente verifica se o dispositivo está
pronto para aceitar outro
• Esse comportamento é muitas vezes chamado
de espera ociosa ou polling

10
E/S programada
• A principal vantagem da E/S programada é
sua simplicidade
• Sua principal desvantagem é o tempo
desperdiçado de CPU

11
E/S orientada à interrupção
• Um modo de permitir que a CPU faça alguma
coisa enquanto espera o dispositivo ficar
pronto é usar interrupções
• Sempre que o dispositivo não estiver pronto
o SO deve chamar o escalonador e executar
outro processo (ao invés de permanecer
aguadando)
• Quando o dispositivo fica pronto ele gera
uma interrupção que detém o processo atual
e salva o seu estado
12
E/S orientada à interrupção
• Então a rotina de tratamento de interrupção
do dispositivo é chamada
• Se não há mais dados para enviar ao
dispositivo a rotina executa uma ação para
desbloquear o processo de usuário
solicitante
• Caso contrário ele envia a próxima unidade
de dados confirma a interrupção e retorna
para o processo que estava executando antes
de sua ocorrência
13
E/S orientada à interrupção

a) Código executado quando é feita a chamada ao sistema para


impressão
b) Rotina de tratamento de interrupção
14
E/S usando DMA
• A desvantagem da E/S orientada à
interrupção é a ocorrência de uma
interrupção para cada caractere
• Interrupções levam tempo, de modo que
desperdiça tempo de CPU
• Uma solução é usar o acesso direto à
memória (DMA), onde o controlador DMA
alimenta os caracteres para a impressora um
por vez, sem que a CPU seja perturbada

15
E/S usando DMA
• O DMA executa E/S programada em que
somente o controlador de DMA faz todo o
trabalho, em vez da CPU
• A grande vantagem é reduzir o número de
interrupções de um por caractere para um
por buffer impresso
• Se existem muitos caracteres e as
interrupções são lentas, há uma melhoria
substancial

16
E/S usando DMA
• Mas se o controlador DMA não é capaz de
dirigir o dispositivo em velocidade máxima
ou a CPU não tem nada para fazer então as
outras técnicas são mais vantajosas

17
Referências
• Andrew S. Tanenbaum. “Sistemas
Operacionais Modernos”. 2ª Edição, Prentice
Hall, 2007.
• Francis B. Machado e Luiz P. Maia.
“Arquitetura de Sistemas Operacionais”. 3a.
Edição. LTC, 2004.

18

You might also like