entrada e saída introdução – hardware de...

Post on 12-Nov-2018

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saídaIntrodução – hardware de E/S

Carlos Gustavo A. da Rocha

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Introdução● Uma das principais funções dos SOs é controlar os

dispositivos de E/S ligados ao computador● O SO se comunica de fato com cada dispositivo, e

oferece uma interface bem mais simples para os programadores– Desta forma podemos utilizar o mesmo código para ler

um arquivo de um disco rígido, DVD, pen-drive etc. Já para o SO, estas ações são completamente diferentes

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Introdução● O código referente a E/S representa a maior parte

do sistema operacional– Nela é que encontramos os conhecidos “drives”, que

muitas vezes são desenvolvidos pelo fabricante do dispositivo, e não do SO

– Os drives podem ser inseridos e removidos do SO dinamicamente, e são sua maior fonte de instabilidade

● Logicamente, de forma semelhante a gerência de memória, a E/S engloba o funcionamento de hardware e software

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Dispositivos de E/S● A grosso modo, os dispositivos de E/S podem ser

divididos em duas grandes classes– Dispositivos de bloco: armazenam a informação em

blocos de tamanho fixo, que podem ser endereçados● As operações de E/S são na verdade a leitura ou

escrita de um ou mais blocos (que possuem um “endereço”)

● Exemplos: discos, CDs, cartões de memória etc

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Dispositivos de E/S

– Dispositivos de caracter: recebem ou enviam um fluxo contínuo de caracteres durante o seu funcionamento

● Uma grande diferença é que os dados que chegam ou saem destes dispositivos não é “endereçável”

● Exemplos: teclados, mouses, impressoras, placas de rede etc

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Dispositivos de E/S● Esta classificação não é perfeita existindo

dispositivos (como o relógio do computador) que não se enquadram em nenhuma das classes– Contudo continua sendo a mais aceita

● O software (driver) que controla cada dispositivo deve lidar com todas as suas particularidades. Um exemplo é o volume de dados gerado, que pode ir de poucos bytes (ex: teclado) até centenas de Megabytes (ex: placas de rede) por segundo

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Dispositivos de E/S● Em diversas arquiteturas de computadores é

comum a existência de “controladores” de dispositivos (IDE, SATA, USB etc)– Isto possibilita aos fabricantes de SOs (pelo menos na

teoria), que eles tenham que escrever drivers apenas para o controlador e não para cada dispositivo

– Por exemplo, o SO precisa ter apenas o driver para o controlador SATA da placa mãe (algumas dezenas de modelos), e não para cada disco rígido existente (alguns milhares de modelos)

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● Cada controlador ou dispositivo de E/S possui

– Um conjunto de registradores que controlam seu funcionamento

● “By writing into these registers, the operating system can command the device to deliver data, accept data, switch itself on or off, or otherwise perform some action. By reading from these registers, the operating system can learn what the device's state is, whether it is prepared to accept a new command, and so on.”

– E opcionalmente um buffer de dados no qual o sistema operacional pode ler ou escrever realizando a E/S em si

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● A E/S mapeada em memória “mapeia” os

registradores e buffers dos dispositivos, de forma que eles podem ser lidos e escritos como se fossem parte da memória RAM

● A arquitetura “IBM-PC” sempre utilizou esta estratégia de E/S– Portas de E/S (registratores): 0 a 64K– Buffers de E/S: 640K a 1M– Na prática, estes valores podem variar um pouco

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● Desta forma, na teoria, tudo que um driver de

dispositivo que utiliza E/S mapeada precisa fazer, é ler e escrever valores nas regiões de memória que representam seus registradores e buffer de E/S – Na prática eles têm que se lidar com uma série de outras

coisas, como interrupções de hardware, temporizadores, latências, erros e sua correção, gerenciamento do uso de energia etc etc etc

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● Na arquitetura “IBM-PC” existe um dispositivo na

placa mãe, chamado de PCI Bridge, por onde passam todas as solicitações de acesso à memoria– É a PCI Bridge que irá “direcionar” os acessos para o

local correto que pode ser a memória RAM real, registradores ou buffers dos dispositivos de E/S

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● Computadores Pentium e posteriores

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● E/S mapeada em memória● A unidade de gerenciamento de memória,

juntamente com a PCI bridge, impede o acesso às regiões de memória utilizadas por registradores e buffers de E/S aos processos de usuários– Desta forma dispositivos só podem ser acessados pelo

próprio SO, mais especificamente pelo seu driver

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Acesso direto a memória (DMA)● Fazer com que a CPU seja a responsável por

requisitar todas as operações de E/S pode gerar um grande desperdício de tempo

● Quase todas as arquiteturas modernas possuem um dispositivo de hardware, conhecido como controlador de DMA, que funciona como segue

1. CPU “programa” o controlador de DMA informando o que deve ser transferido e para onde

2. O controlador de DMA solicita a leitura dos dados ao dispositivo

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Acesso direto a memória (DMA)3. A medida que os dados são lidos, eles são copiados para uma região predeterminada da memória

4. Ao concluir a leitura o dispositivo envia uma interrupção ao controlador de DMA, que é repassada para a CPU

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Acesso direto a memória (DMA)● Durante toda a operação de E/S por meio de DMA

a CPU fica ocupada realizando outras atividades● Controladores de DMA utilizados na prática

permitem várias operações de E/S ao mesmo tempo, bem como a transferência de dados diretamente entre dois dispositivos (e não apenas entre um dispositivo e a memória)

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Interrupções● Em computadores IBM-PC sempre que um

dispositivo de E/S finaliza uma leitura ou escrita ele gera uma “interrupção”– Envio de um sinal pelo barramento da placa mãe

● Este sinal é detectado por um dispositivo da placa mãe chamado de “tratador de interrupções”– O “tratador de interrupções” é que repassa a informação

de que uma interrupção ocorreu para a CPU

Sistemas Operacionaiscarlos.rocha@ifrn.edu.br

Entrada e saída

● Interrupções● Quando toma conhecimento da ocorrência de uma

interrupção, a CPU para o que estava fazendo e passa a executar uma “rotina de tratamento” da interrupção– Um trecho do código do driver do dispositivo

top related