P. 1
11 - Princicios Software Es

11 - Princicios Software Es

|Views: 395|Likes:
Publicado porteste1234566

More info:

Published by: teste1234566 on Sep 11, 2009
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/14/2012

pdf

text

original

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) b)

Código executado quando é feita a chamada ao sistema para impressão 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're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->