Buscar

06 - SO - Entrada-Saida

Prévia do material em texto

*
*
Entrada/Saída
Sistemas Operacionais
Graduação Tecnológica
Prof.: Marcone Carvalho
*
*
Entrada/Saída
Princípios do hardware de E/S
Princípios do software de E/S
Camadas do software de E/S
Relógios
Gerenciamento de energia
*
*
*
Princípios do Hardware de E/S
Diversidade de dispositivos
Tipos básicos de dispositivos
Arquitetura de E/S
Introdução aos barramentos
Controladores de dispositivos
Comunicação SO (CPU) – Controlador
Controle de interrupção
*
*
*
A Importância de E/S
Tipos de processo:
orientado à CPU (CPU-bound)
orientado à E/S (I/O-bound)
*
*
*
Princípios do Hardware de E/S
 Diversidade
Taxas de dados típicas de dispositivos, redes e barramentos
125MB/s = 1Gb/s,
Observe a diferença de Bytes (B) e bits (b)
*
*
*
Tipos básicos de dispositivos
Caracter: transferem bytes um a um. Ex.terminal
Bloco: transferem bytes em bloco. Ex. disco
Sequencial. Tem acesso em ordem fixa. Ex. modem
Acesso randômico: Ordem pode ser alterada. Ex CD-ROM
Síncrono: Tem tempo de resposta previsível. Ex. fita
Assíncrono: Tempo de resposta imprevisível. Ex. teclado
Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado
Dedicado. Só pode ser usado por um processo por vez. Ex. Impressora
Read-write, read only e write-only: disco, cdrom, video
*
*
*
Princípios do Hardware de E/S
Diversidade de dispositivos
Tipos básicos de dispositivos
Arquitetura de E/S
Introdução aos barramentos
Controladores de dispositivos
Comunicação SO (CPU) – Controlador
Controle de interrupção
*
*
*
Arquitetura de Entrada/Saída
Portas (ports)
Comunicação ponto a ponto
Ex: Porta serial e paralela
Barramentos (bus)
Conjunto de condutores elétricos e com um protocolo rígido que define como mensagens trafegam sobre esses condutores 
Permite a comunicação entre vários componentes
Protocolo é um conjunto de regras que definem como as comunicações no barramento serão efetuadas
*
*
*
Arquitetura de E/S
Controladores
Hw que controla uma porta, barramento ou dispositivo(s) Ex: Controlador da porta serial Controlador SCSI (Small Computer System Interface) Controlador de disco
Device Drivers
Partes do S.O. que fornecem uma interface de acesso uniforme para cada dispositivo
Traduz as chamadas de alto nível (usuário) para o dispositivo específico
Conversão de dados
Detecção e correção de erros
*
*
Barramento PCI 
Peripheral Component Interconnect
Bridge para 
o ISA ou EISA
EISA bus ou ISA bus
ISA ou EISA slots
DRAM
PCI bus
Bridge/
Cont. de memória
slots
Cache
LAN
Controlador
de Vídeo
Controlador
SCSI
Controlador
EIDE
AGP
EIDE - Enhanced Integrated Drive Electronics
*
*
Barramentos
Dispositivos 
Ativos ou Mestres - dispositivos que controlam o protocolo de acesso ao barramento para leitura ou escrita de dados
Passivos ou Escravos - dispositivos que simplesmente obedecem a requisição do mestre
Exemplo:
CPU ordena que o controlador de disco leia ou escreva um bloco de dados
	 A CPU é o mestre e o controlador de disco é o escravo
*
*
*
Princípios do Hardware de E/S
Diversidade de dispositivos
Tipos básicos de dispositivos
Arquitetura de E/S
Introdução aos barramentos
Controladores de dispositivos
Comunicação SO (CPU) – Controlador
Controle de interrupção
*
*
*
Controladores de Dispositivos
Componentes de dispositivos de E/S
mecânico 
eletrônico
O componente eletrônico é o controlador do dispositivo
pode ser capaz de tratar múltiplos dispositivos
Tarefas do controlador
converter fluxo serial de bits em blocos de bytes 
executar toda correção de erro necessária
tornar o bloco disponível para ser copiado para a memória principal
*
*
Comunicação S.O.(CPU) – Controlador
Diagrama de um controlador
Registrador de dados
Status/Registrador de Controle
Lógica
de E/S
Dados
Status
Controle
Dados
Status
Controle
Linhas
de Endereço
Linhas de 
Controle
Linhas de
Dados
Interface para
barramento 
do sistema
Interface para
dispositivo
externo
*
*
*
Comunicação S.O.(CPU) - Controlador
E/S isolada
Através de instruções especiais de E/S
Especifica a leitura/escrita de dados numa porta de E/S
E/S mapeada em memória
Através de instruções de leitura/escrita na memória
Híbrido (ex. IBM-PC):
E/S mapeada em memória: memória de vídeo
E/S isolada: dispositivos em geral
Como a CPU acessa a informação?
*
*
*
Comunicação S.O.(CPU) – Controlador
Espaços de memória e E/S separados - E/S isolada
E/S mapeada na memória
Híbrido
*
*
*
Comunicação S.O.(CPU) – Controlador
E/S mapeada na memória
(a) Arquitetura com barramento único
(b) Arquitetura com barramento duplo (dual)
*
*
*
Comunicação S.O.(CPU) - Controlador
E/S Programada
CPU lê constantemente o status do controlador e verifica se já acabou (Polling ou Busy-waiting)
Espera até o fim da operação
E/S por Interrupção
CPU é interrompida pelo módulo de E/S e ocorre transferência de dados
CPU continua a executar outras operações
E/S por DMA - Acesso Direto à Memória
Quando necessário, o controlador de E/S solicita ao controlador de DMA a transferência de dados de/para a memória
Nesta fase de transferência não há envolvimento da CPU
Ao fim da transferência, a CPU é interrompida e informada da transação
Como a CPU sabe que o dispositivo já executou o comando?
*
*
*
Interrupções: Revisão
	Como ocorre uma interrupção: conexões entre dispositivos e controlador de interrupção usam linhas de interrupção no barramento em vez de fios dedicados
*
*
Controlador de Interrupção
O 8259A do IBM-PC
Sinais de controle:
IRQx - Interrupt request x
INT (Interrupt) - Houve interrupção
INTA (Int. Acknowledge) - Interrupção recebida
RD (Read) - Leitura
WR (Write) - Escrita
CS (Chip select) - Seleção do chip do controlador
INT
INTA
RD
WR
CS
DADOS
CPU
Controlador
 de 
Interrupções
IRQ0
IRQ1
IRQ2 IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
.........
*
*
Para Enfatizar: A Importância da Interrupção
O Elo Hardware-Software
*
*
*
Motivação
Para controlar entrada e saída de dados, não é interessante que a CPU tenha que ficar continuamente monitorando o status de dispositivos como discos ou teclados
O mecanismo de interrupções permite que o hardware "chame a atenção" da CPU quando há algo a ser feito 
*
*
*
Interrupções de Hardware
Interrupções geradas por algum dispositivo externo à CPU, como teclado ou controlador de disco, são chamadas de interrupções de hardware ou assíncronas [ocorrem independentemente das instruções que a CPU está executando]
Quando ocorre uma interrupção, a CPU interrompe o processamento do programa em execução e executa um pedaço de código (tipicamente parte do sistema operacional) chamado de tratador de interrupção
não há qualquer comunicação entre o programa interrompido e o tratador (parâmetros ou retorno)
em muitos casos, após a execução do tratador, a CPU volta a executar o programa interrompido 
Execução do
Programa P
Execução do Tratador
de Interrupção
Retomada de P
Interrupção
*
*
*
Interrupção de Relógio
(Um tipo de Interrupção de HW)
Permite ao sistema operacional atribuir quotas de tempos de execução (quantum ou time slice – fatias de tempo) para cada um dos processos em um sistema com multiprogramação
A cada interrupção do relógio, o tratador verifica se a fatia de tempo do processo em execução já se esgotou e, se for esse o caso, suspende-o e aciona o escalonador para que esse escolha outro processo para colocar em execução 
*
*
*
Interrupções Síncronas ou Traps
Traps ocorrem em consequência da instrução sendo executada [no programa em execução]
Algumas são geradas pelo hardware, para indicar por exemplo overflow em operações aritméticas ou acesso a regiões de memória não permitidas
Essas são situações em que o programa não teria como prosseguir
O hardware sinaliza uma interrupçãopara passar o controle para o tratador da interrupção (no SO), que tipicamente termina a execução do programa 
*
*
*
Traps (cont.)
Traps também podem ser geradas explicitamente por instruções do programa
Essa é uma forma do programa acionar o sistema operacional, por exemplo para requisitar um serviço de entrada ou saída
Um programa não pode "chamar" uma rotina do sistema operacional, já que o SO é um processo a parte, com seu próprio espaço de endereçamento...
Através do mecanismo de interrupção de software, um processo qualquer pode ativar um tratador que pode "encaminhar" uma chamada ao sistema operacional
Como as interrupções síncronas ocorrem em função da instrução que está sendo executada (ex. READ), nesse caso o programa passa algum parâmetro para o tratador 
*
*
Interrupções
Assíncronas (hardware)
geradas por algum dispositivo externo à CPU
ocorrem independentemente das instruções que a CPU está executando
não há qualquer comunicação entre o programa interrompido e o tratador
Exs.: interrupção de relógio, teclado
Síncronas (traps)
Geradas pelo no programa em execução, em consequência da instrução sendo executada
Algumas são geradas pelo hardware em situações em que o programa não teria como prosseguir
Como as interrupções síncronas ocorrem em função da instrução que está sendo executada, nesse caso o programa passa algum parâmetro para o tratador
Exs.: READ, overflow em operações aritméticas ou acesso a regiões de memória não permitidas
*
*
*
CPU – HW
Interrupção: Suporte de HW
Tipicamente, o hardware detecta que ocorreu uma interrupção,
aguarda o final da execução da instrução corrente e aciona o tratador,
antes salvando o contexto de execução do processo interrompido
Para que a execução do processo possa ser reiniciada mais tarde, é necessário salvar o program counter (PC) e outros registradores de status
Os registradores com dados do programa devem ser salvos pelo próprio tratador (ou seja, por software), que em geral os utiliza
Para isso, existe uma pilha independente associada ao tratamento de interrupções
Execução do
Programa P - SW
Execução do Tratador
de Interrupção (SO - SW)
Retomada de P
Interrupção
*
*
Entrada/Saída
Princípios do hardware de E/S
Princípios do software de E/S
Camadas do software de E/S
Gerenciamento de energia
*
*
*
Princípios do Software de E/S
Objetivos do Software de E/S (1)
Independência de dispositivo
Programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (disquete, disco rígido ou CD-ROM)
Nomeação uniforme
Nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um número inteiro que é independente do dispositivo
Tratamento de erro
Trata o mais próximo possível do hardware
*
*
*
Objetivos do Software de E/S (2)
Transferências Síncronas vs. Assíncronas
transferências bloqueantes vs. orientadas a interrupção
utilização de buffer para armazenamento temporário
dados provenientes de um dispositivo muitas vezes não podem ser armazenados diretamente em seu destino final – buffer, “broker”, …
Dispositivos Compartilháveis vs. Dedicados
discos são compartilháveis
unidades de fita não são
*
*
Entrada/Saída
Princípios do hardware de E/S
Princípios do software de E/S
Independência de dispositivo
Nomeação uniforme
Tratamento de erro o mais próximo possível do hardware
transferências bloqueantes vs. não-bloqueantes mas orientadas a interrupção
Dispositivos compartilháveis vs. dedicados
Camadas do software de E/S
Gerenciamento de energia
*
*
*
Camadas do Software de E/S
Camadas do sistema de software de E/S
*
*
*
Camadas do Software de E/S Tratadores de Interrupção (1)
As interrupções devem ser escondidas (transparentes) o máximo possível
uma forma de fazer isso é bloqueando o driver que iniciou uma operação de E/S até que uma interrupção notifique que a E/S foi completada
Rotina de tratamento de interrupção cumpre sua tarefa
e então desbloqueia o driver que a chamou
*
*
*
Camadas: Drivers dos Dispositivos
Posição lógica dos drivers dos dispositivos
A comunicação entre os drivers e os controladores de dispositivos é feita por meio do barramento
*
*
*
Camadas: Software de E/S Independente de Dispositivo (1)
Funções do software de E/S independente de dipositivo
*
*
*
Camadas: Software de E/S Independente de Dispositivo (3)
Entrada sem utilização de buffer
Utilização de buffer no espaço do usuário
Utilização de buffer no núcleo seguido de cópia para o espaço do usuário
Utilização de buffer duplo no núcleo (ex. tolerância a falha)
*
*
*
Camadas: Software de E/S Independente de Dispositivo (4)
A operação em rede pode envolver muitas cópias de um pacote
*
*
*
Camadas: Software de E/S no Espaço do Usuário
 Camadas do sistema de E/S e as principais funções de cada camada
*
*
Entrada/Saída
Princípios do hardware de E/S
Princípios do software de E/S
Camadas do software de E/S
Gerenciamento de energia
*
*
*
Gerenciamento de Energia (1)
Consumo de energia de várias partes de um laptop
*
*
*
Gerenciamento de Energia (2)
Execução em velocidade máxima do relógio
Cortando a voltagem pela metade 
corta a velocidade do relógio também pela metade, 
consumo de energia cai para 4 vezes menos
*
*
*
Gerenciamento de Energia (3): Impactos na Entrada/Saída
Dizer aos programas para usar menos energia
pode significar experiências mais pobres para o usuário
Exemplos
muda de saída colorida para preto e branco
reconhecimento de fala com vocabulário reduzido 
menos resolução ou detalhe em uma imagem
*
*
*
*
*
*
*
*
*
AGP - Accelerated Graphics Port (ou Advanced Graphics Port)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Continue navegando