01. gerenciamento de perifericos
Post on 06-Jul-2015
144 Views
Preview:
TRANSCRIPT
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 1/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 1/20________________________________________________________________________________________________________
PROCESSAMENTO DE ENTRADA E SAÍDA (E/S)
Proporcionar recursos de E/S é uma das tarefas mais complexas de qualquer Sistema
Operacional.
Os usuários querem expressar o desejo de executar operações de E/S, de forma mais
simples possível.
Por exemplo:
...
Var
Arq1, Arq2: T;...
Read(Arq1, y);
...
Write(Arq2, y);
...
Dessa forma, as rotinas Read e Write, no caso, escondem do usuário todos os
detalhes dos dispositivos de E/S, disponíveis no sistema, tais como: se Arq1 é arquivo
de disco rígido ou flexível, ou se é o teclado, ou se é fita magnética, etc; se Arq2 é
uma impressora, ou se é disco, etc.
Nesse caso, as operações de E/S são oferecidas por uma biblioteca, a qual deverá
contar com o suporte do Sistema Operacional, o qual é o responsável maior do
gerenciamento das E/S do sistema.
Para tanto, o Sistema Operacional deve prover a interface entre a E/S a nível deusuário (ou nível lógico) e a E/S a nível físico.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 2/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 2/20________________________________________________________________________________________________________
E/S a nível físico trata dos detalhes específicos de cada dispositivo, enquanto que as
E/S a nível lógico visa esconder esses detalhes do usuário; ou seja elas encapsulam
as operações a nível físico, oferecendo operações bem mais abstratas.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 3/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 3/20________________________________________________________________________________________________________
Note neste exemplo que o dado (caractere) lido é armazenado em um buffer, o qual é
passado para a rotina de E/S lógico, o qual deve interpretar o conteúdo segundo as
pretensões especificadas pelo usuário através de parâmetros (no caso o tipo da
variável).
Uma pergunta. Por que se escreveu:
“Esperar a digitação ...;”
em vez de:
“Ler um caractere;”
???
Porque deseja-se passar para Buffer o caractere digitado.
Assim, a operação Esperar está na realidade expressando as regras de sincronização
do problema do produtor versus consumidor, no caso específico de se poder produzir
um dado de cada vez.
Isso é preciso para compatibilizar as diferentes velocidades de processamento entre a
UCP (que executa as rotinas de E/S) e o dispositivo (no caso, o teclado).
É notório, então, que as diferentes velocidades de processamento dos diversos
dispositivos de E/S e a das UCPs, tornam mais complexas a tarefa de gerenciá-los.
Ilustrando essa diferença de velocidade.
UCP de 100MHz
Winchester de 10ms.
100mhz ----> ciclo = 1/100 = 0,01ms = 10ns
Vamos supor que na média, o tempo para execução de uma instrução seja de 10ciclos, ou seja 100ns = 0,1ms.
O tempo de acesso a um dado do winchester é de aproximadamente 10ms (ignorando
os detalhes de interpretação, armazenamento, etc.).
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 4/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 4/20________________________________________________________________________________________________________
Dessa forma, enquanto “é lido um dado” do winchester, é possível executar 100
instruções.
(observação: é preciso verificar se o dado é um byte, ou palavra, ou 1 setor, ou etc.)
Assim, enquanto um processo está solicitando a leitura de dados de um arquivo, por
exemplo, muito do tempo da UCP será gasto em ficar questionando se um dado ficou
disponibilizado, para poder ser armazenado em uma posição bem definida da
memória, para que a rotina de E/S lógica possa interpretá-lo, coerentemente com as
pretensões do usuário.
Para evitar esse gasto, é interessante alocar 1 processador para cuidar da ativação da
leitura (no caso), e da espera pela disponibilização do dado para o seu
armazenamento em local apropriado (INTERFACE OU PLACA DE CONTROLE).Quando o dado ficar disponibilizado, este processador deve avisar a UCP que a sua
tarefa terminou e que ele está disponível para executar qualquer uma de suas
operações, basta solicitar.
Isso permite (como já visto) a multiprogramação do sistema.
Vamos a seguir estudar esses processadores ou placas de controle ou interfaces,como também os softwares que forem necessários para o processamento de E/S.
DISPOSITIVOS E CONTROLADORES DE E/S
As operações de E/S envolvem vários componentes como: a UCP, a memória, e os
dispositivos externos como: impressora, unidades de disco e terminais, por exemplo.
Vamos em primeiro lugar, ver como conectá-los, para permitir que eles se
comuniquem.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 5/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 5/20________________________________________________________________________________________________________
Barramento:
Controladores
Normalmente, os dispositivos não são conectados diretamente no barramento. Em vez
disso eles são conectados por meio de controladores de dispositivos.
Os controladores em geral podem comunicar-se com
vários dispositivos. Eles podem transferir dados para dispositivos e retardar operações
até os dispositivos estejam prontos.
A necessidade de um controlar é para simplificar a arquitetura do sistema.
Além disso, existe a razão econômica; pois um controlador pode controlar váriosdispositivos eliminando-se a redundância de componentes eletrônicos.
Os controladores podem ser:
• Não inteligentes; e
• Inteligentes.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 6/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 6/20________________________________________________________________________________________________________
Os não inteligentes são aqueles que oferecem apenas as operações básicas de
controle do dispositivo.
Já os inteligentes, podem ser planejados para formar blocos de dados, detectar e
corrigir erros, etc.
Técnicas de projetos visam colocar essas funções em VLSI.
Controladores de Dispositivos
Escrever software para controlar dispositivos requer muita atenção a detalhes, comoconhecer as especificações técnicas deles.
A maioria dos programadores não nem um pouco interessados em se preocuparem
com isso. Na verdade eles nem precisam desde que se crie dispositivos lógicos.
Dispositivos Lógicos
Program P;
Var
Arquivo: T;
...
Read(Arquivo, x);
...
Arquivo pode ser:
• arquivo de disco;
• memória;
• impressora;
• etc.
Dispositivo
Lógico
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 7/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 7/20________________________________________________________________________________________________________
É obvio que alguns componentes devem se preocupar com aqueles detalhes.
Os componentes que devem tratar de detalhes dos dispositivos, são comumente
denominados de drivers.
Esses drivers muitas vezes fazem parte do núcleo do Sistema Operacional (residente;
porque são solicitados com muita freqüência).
Algumas vezes existem na forma instalável.
Essa última forma, permite que os programadores escrevam seus próprios drivers.
Tipicamente, o Sistema Operacional mantém uma tabela na qual cada entradacorresponde a um driver. Por exemplo:
nome ponteiro atributos
teclado .... ....
winchester ... ...
impressora ... ...
A questão é: “como os drivers se encaixam no esquema geral de processamento de
E/S?”
Níveis de Processamento de E/S
Em geral o processamento de E/S tem vários níveis de abstrações.
A saber:
• a nível de solicitação feita pelo programa de usuário: comandos de E/S
disponibilizados aos usuários por meio de bibliotecas da linguagem de
programação, por exemplo. ( Read(a, b); WriteLn; ).
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 8/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 8/20________________________________________________________________________________________________________
• a nível de Sistema Operacional / Linguagem de Programação: os comandos de E/S
(rotinas de E/S) determinam qual dispositivo físico deve ser acionado para efetuar a
transferência de dados (do meio externo para o computador ou vice versa), se este
dispositivo é apropriado, programar o dispositivo para efetuar a transferência de
dados, etc. Por exemplo: Write(saída, a, b); (* onde saída é impressora *)
• a nível de programação do dispositivo: rotinas que implementam aquelas
operações solicitadas no nível superior, ou seja: operações de programar o
dispositivo, ativar o dispositivo, etc. Por exemplo: rotinas para programação da
impressora.
• a nível físico de transferência de dados: operações de transferência de dados
propriamente dito. Por exemplo: a impressora imprimindo os dados.
Ilustrando:
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 9/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 9/20________________________________________________________________________________________________________
Por que estruturar assim?.
(desenvolvimento de projeto top down ou bottom up).
Pela principal facilidade percebida na estruturação hierárquica: a portabilidade ;
Normalmente, as rotinas a nível de programação de dispositivo, são denominadas de
“drivers” (controladores).
Os drivers executam funções que são dependentes do sistema por meio das quais
podem-se controlar as ações do dispositivo.
Exemplo:
Ultimamente, muitas funções de drivers estão sendo transferidas para o hardware do
controlador.
Funções de um Driver
As responsabilidades de um driver são, de um modo geral:
• se preparar para E/S : o que envolve verificar o estado do dispositivo, alocá-lo e
iniciar a transferência de dados;
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 10/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 10/20________________________________________________________________________________________________________
• finalizar a operação de E/S : o que envolve verificar o resultado da operação
(terminada ou abortada) e responder adequadamente.
Algumas das funções de um driver são:
• Verificação do estado do dispositivo: verificar se o dispositivo está ou não
operacional;
• Emissão de comandos específicos para o dispositivo: programar o dispositivo para
leitura ou escrita de dados;
• Verificação de erro de transmissão (e, algumas vezes, correção): ruídos elétricos
ou conexões defeituosos podem causar erros de transmissão. Assim, é importante
que existe mecanismo que os detecte e os acuse, ou detecte-os e corrija-os.
Outros erros são: fim da f ita magnética; tentativa de gravação em disco protegido;
etc.• Verificação de ociosidade: verificar se o dispositivo está ou não ocupado;
• Bufferização de dados: normalmente são usados buffers para a retenção dos
dados lidos do meio externo ou para serem emitidos para o meio externo, por
questão de facilitar o controle do fluxo dos mesmos;
• Escalonamento de E/S do dispositivo: em alguns casos, o driver pode escalonar as
solicitações de E/S de maneira a otimizar o uso do dispositivo; por exemplo, para
otimizar o movimento da cabeça do disco.
• Cálculo do endereço de disco;
• Determinação de blocos defeituosos;
E/S Programada
E/S física programada, os dados são transferidos à base de 1 caractere por vez.
Abordagem muito comum para drivers de terminais, teclado e muitas impressoras;
normalmente para dispositivos lentos.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 11/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 11/20________________________________________________________________________________________________________
Os passos básicos para o driver de leitura são:
• instruir o controlador para ler um dado;
• esperar que este dado chegue no buffer do controlador;
• sinalizar o término da operação;
Os passos básicos para o driver de escrita são:
• colocar o dado a ser impresso no buffer do controlador;
• instruir o controlador para imprimi-lo;
• esperar o término da operação;
• sinalizar este fato;
E/S Mapeada na Memória
Dentro do espaço de endereçamento do computador são alocados os registradores de
cada controlador de dispositivo.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 12/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 12/20________________________________________________________________________________________________________
Exemplo de um driver para impressão de 1 caractere, escrito em pseudo Assembler:
...
MOV 3AF2H, Caractere
MOV 3AF0H, Com_Escrita
Ciclo MOV AX, 3AF1H
AND AX, 0001H
CMP AX, 0
JZ Ciclo
...
Vantagens: não precisa de instruções especiais de E/S, porque o endereço de cada
registrador corresponde ao endereço de uma célula (palavra) de memória.
Desvantagens: maior dificuldade para proteção, como também o custo seria muito
alto, porque as células correspondentes aos registradores de controladores de
dispositivos, deverão ser protegidos contra acessos não privilegiados (veja
Gerenciamento de Memória).
/* Ler re istrador de estado ara AX /* Selecionar o bit que indica o
/* término da opera ão
/* Se este bit está igual a zero, então
/* não acabou a operação. Caso
/* contrário, sim.
/* Colocar no Buffer do registrador o
/* caractere a ser impresso e /* comandar a sua im ressão
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 13/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 13/20________________________________________________________________________________________________________
E/S Acionada por Interrupção
O objetivo de E/S acionada por interrupção é evitar a espera ocupada (“busy wait”).
Assim fazendo, a UCP em vez de f icar executando aquele trecho de programa que
fica verificando se a operação solicitada ao dispositivo terminou, pode-se atribuir a ele
tarefas produtivas.
Para tanto, a idéia é a seguinte:
O driver inicia a operação da mesma maneira que o exemplo acima (as duas primeiras
instruções).
Porém, agora, em vez de ficar verificando o término da operação, ele libera a UCP,
para que esta possa executar outras tarefas.
“Quando a operação de E/S terminar, o controlador manda um sinal para a UCP para
que esta suspenda o que ela estava fazendo, e vá executar a rotina associada a este
sinal de interrupção. No caso, é a continuação daquele driver” (veja
Multiprogramação).
ACESSO DIRETO À MEMÓRIA
É permitir que dados externos passem do dispositivo para a memória e vice versa,
sem a necessidade de que a “UCP fique gerenciando isso”.
Isso significa que o driver fica mais simples, pelo menos a primeira vista, pois já não
precisava ficar verificando o término da operação (interrupção) e, agora, não precisacuidar de ficar colocando os dados no buffer da controladora (no caso de saída) e não
precisa ficar cuidando da transferência dos dados do buffer para a memória (no caso
de entrada).
É claro que deve existir algum hardware que execute aquelas tarefas. Um hardware
que pode ser programado para entrada ou saída para ir pegando os dados do
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 14/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 14/20________________________________________________________________________________________________________
dispositivo associado e ir colocando-os para a memória, no caso de leitura, e no caso
de saída, ir pegando os dados da memória e ir solicitando ao dispositivo a sua
impressão, ou gravação, ou etc.
Esse hardware é chamado de DMA (Direct Acess Memory).
As funções de um driver para um DMA são as seguintes, de um modo geral:
• a operação a ser executada (entrada ou saída);
• o endereço de memória que ele deve iniciar o acesso;
• o número de caracteres a transferir
• o dispositivo envolvido
Logo que o DMA recebe essas informações, ele inicia a sua operação de
transferência de dados da memória para o dispositivo (saída) ou vice-versa (entrada).
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 15/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 15/20________________________________________________________________________________________________________
Para a transferência de cada dado (1 caractere, por exemplo), ele solicita permissão
de acesso à memória à UCP (isso é chamado de ROUBO de CICLO), para evitar
conflito, pois este está constantemente acessando a memória durante a execução de
um programa.
Ao final da transferência de todos os dados, o DMA sinaliza o Sistema de Interrupção
para que este avise a UCP sobre o término da operação.
Conclusão: com DMA, a UCP ficará cedendo 1 ciclo seu a cada dado a ser transferido
(cujo tempo é muitíssimo menor do que o tempo necessário para tratar o preâmbulo e
o final de uma rotina de tratamento de interrupção) e tratar apenas uma interrupção.
Dessa forma o paralelismo entre E/S e a UCP é grande e, consequentemente, obtém-se um desempenho maior do sistema como um todo.
Processadores de E/S
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 16/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 16/20________________________________________________________________________________________________________
O objetivo é permitir que as operações de E/S sejam feitas de forma independente da
UCP; ou seja as operações de E/S possam ser executadas em paralelo com as
funções da UCP (uma espécie de multiprocessamento”).
Para tanto, o controlador deve estar sob o controle de um processador com
características semelhantes a de uma UCP, no sentido de que ele é capaz de
entender e executar de forma automática, um determinado conjunto de instruções
(repertório de instruções).
Como a função deste tipo de processador é executar operações de E/S, as instruções
de seu repertório são mais comumente chamados de comandos de E/S (I/O
Commands - IOCs).
Como a função desse processador é servir de canal por onde os dados podem fluir
sem “necessidade de interferência da UCP”, ele é também denominado de CANAL.
Assim, os IOCs, são também denominados de palavras de comando do canal
(channel commands words).
Por meio do IOCs o processador é programado para executar toda a tarefa de
transferência de dados; acionar o dispositivo, verificar o estado deste, etc.
Especificamente, um processador de E/S pode emitir comandos que ativam um
controlador de dispositivo e detectam seu estado.
O programa que o processador de E/S executa para controlar um dispositivo é
chamado de IOP - Input/Output Program, ou um programa de canal.
Os IOPs podem residir na memória principal ou em uma memória separada associada
ao processador de E/S.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 17/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 17/20________________________________________________________________________________________________________
Usando-se processadores de E/S, agora, em vez da controladora avisar a UCP do
término da tarefa solicitada (via Sistema de Interrupção, por exemplo), ela avisa o
processador que a está gerenciando.
Assim, agora, quem fica ocioso entre a solicitação de uma E/S e o término do
atendimento, é o processador de E/S. Para economizar isso, um processador de E/S
poderia cuidar de vários dispositivos de E/S.
Comandos do Processador de E/S
Posicionar: posicionar a cabeça da leitora/escrita do disco na trilha especificada.
Escrever: transferir dados da memória para o controlador, que por sua vez os
transfere para o dispositivo apropriado.
Ler: transferir dados do dispositivo para o processador de E/S.
Pular para a Próxima Linha ou Avançar para a
Próxima Página: emitir comandos de pula para a próxima linha ou avançar uma
página, para a controladora.
Posicionar no Início: rebobinar uma fita magnética.
Verificar Estado: comando para detectar o estado de um controlador ou dispositivo,
para verificar se eles estão prontos para receberem comandos.
Comando de E/S da UCP
Iniciar E/S: fazer com que o processador de E/S inicie a execução de um programa de
E/S.
Halt: fazer com que o processador de E/S suspenda a execução do programa de E/S.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 18/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 18/20________________________________________________________________________________________________________
Processando uma Solicitação de E/S
1. Programa de usuário em execução, executa a chamada de uma rotina de E/S
(suponhamos de Entrada);
2. A rotina chamada é colocada em execução (essa rotina é do tipo independente de
dispositivo);
3. A rotina seleciona o driver que deve dirigir o dispositivo desejado pelo usuário e
solicita a sua execução;
4. Esse driver define o programa de E/S que o processador de E/S deve executar e
emite o Start I/O (SIO);
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 19/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 19/20________________________________________________________________________________________________________
5. O processador de E/S executa o programa de E/S que está na memória;
6. Este programa instrui o processador para emitir os devidos comandos para a
controladora comandar o dispositivo que de fato acessará os dados.
7. O dispositivo lê os dados e passa-os para a controladora em reposta ao comando
de leitura desta;
8. Os dados são armazenados no buffer do processador de E/S;
9. Processador de E/S executa comandos que transferem dados deste buffer para o
do Sistema Operacional;
10. As rotinas do Sistema Operacional movem os dados de seu buffer para a memória
do usuário e notifica o respectivo programa do usuário de que a E/S foi
completada.
5/8/2018 01. Gerenciamento de Perifericos - slidepdf.com
http://slidepdf.com/reader/full/01-gerenciamento-de-perifericos 20/20
SISTEMAS OPERACIONAIS - PROCESSAMENTO DE ENTRADA/SAÍDA - 20/20________________________________________________________________________________________________________
top related