Вы находитесь на странице: 1из 40

Estrutura de I/O

Sistemas Operacionais

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

E/S nível de usuário

Software
Sistema operacional

E/S independente do dispositivo

Interface padrão para drivers de dispositivos (API)


driver driver driver driver driver
SCSI EIDE floppy rede 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 access
 t seek
 t 
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
Disco 1 Disco 2
Fator de entrelaçamento = 0 Fator de entrelaçamento = 2

15 0 5 0
14 1 10 11
13 2 15 6
12 3 4 1
4 9 12
11
10 5 14 7
9 6 3 2
8 7 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 contro-
lador 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

Вам также может понравиться