Entrada e Saída
Ambientes Operacionais
Prof. Simão Sirineo Toscani
[email protected]
www.inf.pucrs.br/~stoscani
1
Princípios básicos de hardware





Periférico é um dispositivo conectado a um computador
de forma a possibilitar sua interação com o mundo
externo
Os periféricos são conectados ao computador através de
um componente denominado interface
As interfaces são interconectadas aos barramentos
internos do computador
As interfaces possuem registradores internos, através
dos quais são acionadas
Interfaces possuem um microprocessador (controlador
ou controladora) dedicado a realização e controle das
operações de entrada e saída
2
Arquitetura de Entrada e Saída

Dispositivo de E/S possui uma parte mecânica
e outra eletrônica
3
Dispositivos de Entrada e Saída

Classificados como:
•
•
Orientados a caractere
• Unidade de transferência é o caractere
•
E.g. Teclado, interface serial (mouse)
Orientados a bloco
• Unidade de transferência de dados é um bloco de
caracteres (tamanho fixo)

• E.g. disco
Nem todos dispositivos se enquadram:
•
E.g. relógio
4
Dispositivos de Entrada e Saida

Apresentam características próprias
• Taxa de transferência de dados
• Complexidade de controle
• Unidade de transferência
• Representação de dados
• Tratamento de erros
5
Tipos de conexão e
transferência de dados

Dois tipos de intefaces
• Interface Serial
• Apenas uma linha p/ transferência (bit)
• Interface Paralela
• Mais de uma linha (8 linhas - byte)
6
Como controladores e SO
interagem?

Controladora é programada via
registradores da interface (registradores
de configuração)

Registradores podem ser vistos de duas
maneiras (definido pela arquitetura)
• E/S mapeada em espaço de E/S
• E/S mapeada em espaço de memória
7
Espaço de endereçamento
• Conjunto de endereços de memória que o
•
processador consegue acessar diretamente
A forma de acessar os registradores (das
interfaces) dos periféricos é definida no
projeto do processador:
• Espaço único
• Dois espaços, um deles dedicado à E/S
• No caso de haver 2 espaços, existem
instruções específicas para acessar um ou
outro espaço de endereçamento
8
Mapeamento em espaço de E/S


Processador possui duas áreas distintas
de endereçamento
O espaço de E/S é acessado com
instruções especiais, diferentes das
outras que acessam memória principal
9
Mapeamento em espaço de
memória



Um único espaço de endereçamento
Parte da memória fica reservada para
E/S
Os periféricos são acionados através
das instruções normais de acesso à
memória
10
Técnicas para realizar E/S



E/S programada
E/S orientada à interrupções
Acesso direto à memória
11
E/S programada



Toda interação entre o processador e o
controlador é de responsabilidade do
programador
Ciclo de funcionamento
• Envia comando ao controlador
• Espera término do comando
Processador espera o término da
operação
12
Desvantagem

Desperdício de tempo de CPU para
verificar estado da operação de E/S
• CPU é muito mais rápida

Solução é inserir operações entre
sucessivas consultas sobre o estado da
operação
• Polling

Qual freqüência do polling?
13
E/S orientada à interrupção



Processador inicia a operação de E/S
CPU é interrompida quando termina a
operação de E/S
Enquanto interrupção não ocorre, a CPU
pode executar outras tarefas (portanto,
evita desperdício de tempo de CPU)
14
Desvantagem

CPU é intermediária
• Toda palavra lida do (ou escrita no) periférico
passa pela CPU
15
DMA – Acesso direto à memória



Transfere diretamente um bloco de
dados entre o dispositivo E/S e a
memória
Interrupção só quando acaba a
transferência de todo o bloco
Processador só se envolve com E/S no
início e no fim da transferência
16
Objetivos da gerência de E/S




Eficiência
Uniformidade é desejável:
•
Todos dispositivos enxergados da forma mais
uniforme possível
Esconder os detalhes (estes são tratados
pelas camadas de mais baixo nível)
Fornecer abstrações genéricas: read, write,
open e close
17
Princípios básicos de sw de E/S


Subsistema de E/S é complexo dada a
diversidade de periféricos
Padronizar ao máximo para reduzir
número de rotinas
• Novos dispositivos não alteram a visão do
usuário em relação ao SO

Organizado em camadas
18
Estrutura do subsistema E/S
Software
Sistema operacional
E/S nível de usuário
E/S independente do dispositivo
Interface padrão para drivers de dispositivos (API)
driver
SCSI
driver
EIDE
driver
floppy
driver
rede
driver
teclado
Hardware
19
Visão Geral do software de E/S




Tratador de interrupção
•
•
É acionado ao final da operação de transferência
Aciona driver
Driver de dispositivo
•
•
Recebe requisições
Configura (aciona) o controlador
E/S independente de dispositivo
•
•
Nomes e proteção
bufferização
E/S a nível de usuário
•
Chamadas de E/S
20
Driver de Dispositivo



Conjunto de estruturas de dados e funções
que controlam um ou mais dispositivos com
interface bem definida
Fornecido pelo fabricante do periférico
Vantagens:
•
•
•
•
Isola código especifico do dispositivo
Facilita adicionar novos drivers
O kernel fica isolado de modificações dos drivers
O sistema tem uma visão uniforme dos dispositivos
21
E/S Independente de dispositivo






Escalonamento
•
•
Determina melhor ordem para atendimento à requisições de E/S
Divide de forma justa o acesso a periféricos
Manipulação de buffers
•
Área de armazenamento temporária
Cache
•
Permitir o acesso rápido aos dados
Spooling
•
Controlar acesso a dispositivos que atendem apenas uma requisição
por vez
Direitos de acesso
•
Controlar acesso à dispositivos de acordo com as suas permissões
Tratamento de erros
•
Informar à camada superior que houve erro
22
E/S a nível de usuário



Implementação, em nível de linguagem
de programação, de rotinas que
permitem programas fazer acesso à
dispositivos
Estas rotinas estão em bibliotecas da
linguagem
Interagem com as funções da API do SO
(chamada de sistema)
23
Dispositivos Periféricos Típicos


Existem vários tipos de dispositivos
Vamos discutir alguns, mais típicos
24
Disco





Dispostos em alturas diferentes com auxílio de
um eixo central (spindle).
A tecnologia atual permite superpor até 8
discos.
As duas superfícies de cada disco são
recobertas por uma película magnética na qual
os dados são gravados.
O eixo gira a uma rotação constante (e.g. 5400
rpm)
Os cabeçotes de leitura/gravação (um para
cada superfície de disco) realizam movimentos
de vai-e-vem (seek)
25
Disco
26
Disco



A definição de trilhas (tracks) e setores
(sectors) é chamada formatação
Acesso antigamente feito por número do
cilindro, trilha e setor.
Hoje, o controlador do disco tem um
endereço linear LBA (linear block
address)
27
Disco

Partes do disco podem ser separadas
em unidades lógicas
• partições
28
Disco

Tempo de acesso
t




t
t
access
seek
latency t transfer
Onde
• taccess é o tempo de acesso total
• tseek é o tempo de movimentação do cabeçote
• tlatency é o tempo de atraso rotacional
• ttransfer é o tempo para transferir os dados
29
Disco

Entrelaçamento
• Evita latência rotacional em setores
•
adjacentes
Numerar setores de forma não contígua
D is co 1
D is co 2
F a to r d e e n tr e l a ç a m e n to = 0 F a to r d e e n tr e l a ç a m e n to = 2
15
0
14
5
1
13
2
12
11
10
6
8
7
11
15
6
3
4
1
4
9
12
5
9
0
10
14
7
3
2
8
13
30
Disco

Escalonamento
• Que fazer quando várias requisições
chegam?
• Chegam mais rápido que seu atendimento
• O controlador pode escolher diferentes
estratégias para melhorar performace
• FCFS (First Come First Served)
• SSTF (Shortest Seek Time First)
• SCAN (Variação do SSTF)
• C-SCAN (SCAN unidirecional)
31
Vídeo



Nos PCs antigos eram mapeados em memória
•
Podia-se escrever no vídeo através de uma posição
de memória específica
Hoje, são bem mais sofisticados
•
•
Possuem capacidade de processamento
Recebem diretivas mais complexas (e.g.: desenha um
retângulo com preenchimento da cor tal)
Alguns sistemas permitem mais de um monitor
por CPU! Pode-se visualizar duas telas
(distintas) ao mesmo tempo
32
Teclado


Pode ser visto como uma matriz de i
linhas e j colunas, que entram em
contato quando uma tecla é pressionada
Cada elemento i,j da matriz corresponde
a um caractere (tecla).
33
Teclado






Quando uma tecla é pressionada, o teclado gera um scan code
(código de varredura) e gera uma interrupção.
O tratador de interrupção obtém o scan code e armazena o
código ASCII correspondente numa região especial da
memória (buffer de teclado)
Os caracteres digitados são lidos do buffer de teclado através
de chamadas do SO
Para o usuário final, são disponibilizadas rotinas de biblioteca,
como por exemplo, getc() na linguagem C
Os usuários querem visualizar os caracteres digitados na tela:
ecoamento.
No caso de várias janelas abertas, os caracteres digitados
devem ser direcionados à janela correta. O direcionamento é
feito através do conceito de “janela ativa”.
34
Rede



Uma rede é um conjunto de computadores
interconectados de forma a compartilhar
recursos comuns: discos, impressoras,
arquivos, etc.
A interconexão envolve o emprego de um
hardware especial: a interface de rede
A tecnologia usada na interface, determina
como fisicamente os dados serão transmitidos,
a velocidade de transmissão, a capacidade de
transmitir e receber ao mesmo tempo (full
duplex), etc.
35
Hardware da placa de rede



A placa de rede transforma os sinais digitais
em sinais analógicos, usados na transmissão.
Possui um processador dedicado (o controlador de rede) e uma capacidade de memória
(buffers), onde os dados a serem transmitidos
ou recebidos são armazenados.
Trabalha orientada a eventos:
•
•
Final da transmissão (este evento é interpretado como
disponibilidade para nova transmissão)
Recepção de uma mensagem (significa que uma
mensagem deve ser lida).
36
Software de rede


Independentemente da tecnologia e dos
aspectos físicos do hardware, o software
de gerenciamento de rede deve tratar de
problemas similares.
Como esse software é complexo e
envolve muitas abstrações, ele é
organizado em camadas (e.g., modelo
OSI/ISO).
37
Software envolvido na transmissão
de uma msg
• Um processo A quer enviar uma mensagem para um
processo B, executado em uma máquina remota
• Primeiro problema: a quantidade de bytes da msg pode
•
•
ser maior que a quantidade máxima fisicamente
permitida. Solução: dividir a mensagem em pacotes
menores (fragmentação)
Para cada pacote transmitido, a placa de rede gera uma
interrupção para sinalizar que ela está pronta para
enviar outro pacote.
No outro extremo, a máquina do processo B, deve
receber os pacotes e remontar a msg. Para cada pacote
recebido é gerada uma interrupção (e o pacote
transferido para um buffer maior)
(continua)
38
Software envolvido na transmissão
de uma msg
•
•
•
Como o driver de rede identifica que estes dados são para o
processo B e não para outro processo? Como ele não mistura
os pacotes recebidos? Solução: criar canais lógicos entre os
processos (estabelecidos antes de começar o envio/recepção
de dados)
Outro problema: pacotes podem ser perdidos (por erros no
meio físico ou por falta de espaço no buffer do destinatário).
Solução: o destinatário deve contar os pacotes e sinalizar as
perdas ao remetente
Outro problema: o pacote i+1 chega antes do pacote i. Isto
ocorre quando, devido a um erro, o pacote i é retransmitido,
enquanto o i+1 é recebido corretamente, ou quando o pacote
i+1 utiliza um caminho mais curto que o pacote i (roteamento).
Solução: o software deve ser capaz de ordenar os pacotes
recebidos e descartar os pacotes repetidos
39
Protocolo de comunicação
•
•
•
Todos os problemas e procedimentos vistos nos dois
slides anteriores (e muitos outros) são gerenciados
pelo que se denomina protocolo de rede.
Um exemplo bem conhecido de protocolo é a familia
TCP/IP, pois toda a Internet está baseada nessa
família.
Os protocolos são implementados em camadas: no
nível mais baixo estão as placas de redes, no mais
alto está a aplicação do usuário.
40
Download

Gerencia do Processador