Entradas/Saídas
1. Princípios de hardware/software de E/S2. Camadas de software de E/S3. Relógios (Temporizadores)4. Gestão de consumo de potência
12/16/2002 Sistemas Operativos 2001/2002 2
Organização de um Sistema Operativo
System Call Handler
File System 1 ... File System m
Virtual memory
Driver 1 Driver 2 ... Driver nDriver 1 Driver 2 ... Driver n
Threads, thread scheduling, thread synchronization
Interrupt handling, context switching, MMU
Hide the low-level hardware
12/16/2002 Sistemas Operativos 2001/2002 3
PrincipiosPrincipios de hardware/de hardware/softwaresoftware de E/Sde E/SDispositivos de Entrada/SaídaDispositivos de Entrada/Saída
16.7 MB/secISA Bus12.5MB/secFast-Ethernet
60 MB/secXGA Disblay50 MB/secFireWire
6 MB/sec40x CD-ROM5 MB/secDisco IDE1.5 MB/secUSB1.25 MB/secEthernet400 KB/secScanner100 KB/secImpressora16 KB/secLinha ISDN7 KB/secModem100 bytes/secRato10 bytes/secTecladoRitmo de transferênciaDispositivo
20 GB/secSUN GigaplaneXB backplane
528 MB/secPCI bus125 MB/secGigaBit Ethernet78 MB/secSCSI Ultra-2Ritmo de transferênciaDispositivo
12/16/2002 Sistemas Operativos 2001/2002 4
Controladores de dispositivosDispositivos de E/S têm componentes:– mecânicos - o próprio dispositivo– e/ou electrónicos – placa controladora ou adaptador
O componente electrónico é o controlador do dispositivo– Pode ser utilizado para controlar vários dispositivos
Tarefas do controlador:– converter formato de dados fornecido pelo dispositivo (e.g. stream de bits
para um bloco de bytes)– realizar correcção de erros (e.g. Checksum)– colocar resultados da operação de E/S na memória principal
12/16/2002 Sistemas Operativos 2001/2002 5
Mapeamento de dispositivos de E/S
A) Espaço de endereçamento separadosB) Espaço de E/S mapeado no endereçamento de memóriaC) Solução híbrida
Programação fica mais facilitada com E/S em memória.
0
0xFF.. Memória
Dois espaços de endereçamento
Um espaço de endereçamento
Dois espaços de endereçamento
Portos E/S
(A) (B) (C)
12/16/2002 Sistemas Operativos 2001/2002 6
Mapeamento de dispositivos de E/SBarramento de E/S e Barramento de memória
CPU lê e escreve na memória através de um barramento com alta largura de banda.
(A) (B)
CPU Memória E/S CPU Memória E/S
Todos os endereços (memória e E/S)
Tem a finalidade de disponibilizar acesso a memória aos dispositivos de E/S
(a) Arquitectura com barramento único(b) Arquitectura com duplo barramento
Arquitectura dos PC’s actuais.
Exemplo de barramentos externos do Pentium: -Memória,PCI,ISA
Arquitectura dos PC’s actuais.
Exemplo de barramentos externos do Pentium: -Memória,PCI,ISA
12/16/2002 Sistemas Operativos 2001/2002 7
Direct Memory Access (DMA)
Passos numa transferência por DMA1. CPU programa DMA para fazer a transferência2. DMA pede transferência para a memória3. Dados são transferidos4. Acknowledge5. Interrompe quando conlcuído
Controlador Disco
DMA MemóriaCPUEndereçoContadorControlo
1. Buffer
4.
2. 3.5.
Drive
Cycle stealingBurst modeFly-by mode
12/16/2002 Sistemas Operativos 2001/2002 8
Revisão de interrupções
Passos seguidos quando ocorre uma interrupção. Linhas de interrupções existentes no barramento permitem a cada dispositivo gerar
uma interrupção diferente.
12/16/2002 Sistemas Operativos 2001/2002 9
Objectivos do software de E/SIndependência de dispositivos– Programas podem aceder a qualquer dispositivo de E/S, sem especificar o
dispositivo com antecedência.• (floppy, hard drive, or CD-ROM)
Uniformização dos nomes– Nome de dispositivo independente do tipo de dispositivo (/mnt/floppy;
/mnt/cdrom) . Ficheiros e devices são acedidos da mesma forma: usando “pathname”
– Independente do tipo de máquinaProcessamento de erros– Processamento o mais próximo do hardware como possível . Se o
controlador não conseguir tratar o erro, tem de ser o device driver
12/16/2002 Sistemas Operativos 2001/2002 10
Objectivos do software de E/SAbstração das transferência síncronas (no software) vs assíncronas (para o hardware)– transferências assíncrona ao nível do hardware (CPU faz pedido e vai fazer
outras actividades até receber um interrupt )– Programação normalmente é bloqueante ( depois de um system call tipo read, o
programa é suspenso até que a informação esteja disponível).Buffering– dados vindos do dispositivo não podem ser armazenados no seu destino final.
Pacote tem de ser armazenado no S.O.Distinguir dispositivos dedicados vs partilhados– discos são partilhados por vários utilizadores em simultâneo– tape drives não são partilhados (só 1 utilizador de cada vez a pode usar).– É da responsabilidade do SO lidar com estes dois tipos de dispositivos.
12/16/2002 Sistemas Operativos 2001/2002 11
Programação de E/SRecorrendo à CPU
ABCDEFGH
Texto para imprimir
ABCDEFGH
próximaABCDEFGH
próxima
User Página impressa
Página impressa
A AB
Kernel
Passos para imprimir texto
12/16/2002 Sistemas Operativos 2001/2002 12
Programação de E/SRecorrendo à CPUSequência de acções executadas pelo SO para o exemplo anterior
A CPU fica à espera que dispositivo esteja pronto para receber mais dados.
Polling ou espera activa.Desvantagens?
12/16/2002 Sistemas Operativos 2001/2002 13
Programação de E/S E/S baseado em interrupções
Escrita de uma string para a impressora utilizando interrupções:(a) Código é executado a chamada ao sistema é efectuada(b) Rotina de atendimento de interrupçãoUma interrupção em cada caracter.
System CallSystem Call
Rotina de atendimento de interrupções
Rotina de atendimento de interrupções
12/16/2002 Sistemas Operativos 2001/2002 14
Programação de E/SE/S utilizando DMA
Só é executado 1 vez
Só é executado 1 vez
Impressão da string utilizando DMA:– Código é executado quando o system call é realizado– Rotina de atendimento de interrupções
12/16/2002 Sistemas Operativos 2001/2002 15
Camadas de Camadas de softwaresoftware de E/Sde E/S
Camadas do software do sistema de E/S
Hardware
Interrupt handlers
Device drivers
User-level I/O software
Device-independent SO software
12/16/2002 Sistemas Operativos 2001/2002 16
Gestores de interrupções (1)
SO deve ocultar pormenores de interrupções– Usar um driver que inicie a operação de E/S e que bloqueie até a
tarefa terminar
Rotina de interrupção faz as suas tarefas e …– depois liberta o driver que iniciou a operação.
=> Qual o custo de uma interrupção para o sistema?
12/16/2002 Sistemas Operativos 2001/2002 17
Gestores de Interrupções (2)Passos a realizar pelo software quando ocorre interrupção:
1. Guardar registos que ainda não tenham sido guardados pelo hardware2. Preparar o contexto para a rotina de atendimento de interrupções3. Preparar stack para rotina de atendimento de interrupção4. Ack controlador de interrupções, activar interrupções5. Copiar registos de onde foram guardados6. Executar rotina de atendimento7. Escolher qual o novo processo que vai correr8. Preparar contexto da MMU para executar próximo processo9. Carregar registos do novo processo10. Executar o novo processo
12/16/2002 Sistemas Operativos 2001/2002 18
Drivers de dispositivosDrivers no Kernel
Drivers existem no kernel; por caracter ou bloco; comunicação entre os driverse controladores de dispositivos é feita através do barramento.
Resto do Sistema Operativo
DriverImpressora
DriverCamera
DriverCD-ROM
Programa User
Controlador Impressora
Controlador Camera
Controlador CD-ROM
Dispositivos
User space
Acções de um driver de um dispositivoPlug&Play?
Kernel space
Hardware
12/16/2002 Sistemas Operativos 2001/2002 19
Software de E/S independente de dispositivos
Reserva e liberação de dispositivos dedicados
Processamento de erros
Buffering
Definição de dimensão de bloco de dados independente do dispositivo
Interface normalizada com drivers de dispositivos
Funções do software independente do dispositivo de E/S.
12/16/2002 Sistemas Operativos 2001/2002 20
Software de E/S independente de dispositivos
(a) Sem uma interface normalizada(b) Com uma interface normalizada
12/16/2002 Sistemas Operativos 2001/2002 21
Software de E/S independente de dispositivos
(a) Input sem buffering(b) Buffering no espaço de utilizador(c) Buffering no kernel seguido de uma cópia para o espaço de utilizador(d) buffering duplo no kernel
12/16/2002 Sistemas Operativos 2001/2002 22
Software de E/S independente de dispositivos
Em algumas situações o buffering poderá diminuir o desempenho do sistema.
12/16/2002 Sistemas Operativos 2001/2002 23
Camadas de software de E/S - sumário
Resposta E/S
Chamada a rotina de E/S; configura E/S; spoolingPedido E/S
Processos utilizador
Drivers de dispositivos
Software independente de dispositivos Naming, protecção, buffering, reserva de recursos
Verifica estado, programa registos de dispositivos
Acorda driver quando operação terminarInterrupt handlers
Efectua operação E/SHardware
Camadas do sistema de E/S e as funções correspondentes
12/16/2002 Sistemas Operativos 2001/2002 24
RelógiosRelógiosHardware de relógios
Oscilador de cristal
Exemplo de um relógio programavel
Contador é decrementado em cada impulso
Valor de registo é utilizado para carregar o contador.
12/16/2002 Sistemas Operativos 2001/2002 25
Software de relógios64 bits 32 bits 32 bits
Tempo do dia em ticks Contador em ticks
Nº de ticks no segundo actual
Tempo do dia em segundosSolução 1
Usar contador 64 bits
Solução 1
Usar contador 64 bits Tempo de boot do sistema em segundos
Solução 2
Manter o tempo em segundos em vez de “ticks”. (2^32 = 136 anos)
Solução 2
Manter o tempo em segundos em vez de “ticks”. (2^32 = 136 anos)
Solução 3
-Contador de ticks desde que o sistema iniciou
-tempo de boot é usado calculando o clock backup
-quando necessário usam-se os 2 para calcular o tempo actual
Solução 3
-Contador de ticks desde que o sistema iniciou
-tempo de boot é usado calculando o clock backup
-quando necessário usam-se os 2 para calcular o tempo actual
Três modos de manter a hora do dia
12/16/2002 Sistemas Operativos 2001/2002 26
Software de relógios
Próximo sinalTempo actual
4200 3ClockHeader
Simulação de múltiplos relógio com um único relógio
3 4 6 2 1 X
12/16/2002 Sistemas Operativos 2001/2002 27
Soft Timers
Segundo relógio para gerar interrupções em aplicações– Especificado pelas aplicações– Sem problemas caso a frequência seja baixa
Soft timers evitam interrupções– Kernel verifica se um soft timer expirou– Desempenho depende da frequência do soft timer– Reduz overhead provocado pela rotina de atendimento da
interrupção (context switching; TLBs)
12/16/2002 Sistemas Operativos 2001/2002 28
PowerPower managementmanagement
22%Outros1%0.5 %Memória2%Som6%Modem12%20 %Disco Rigido18%12 %CPU39%68 %Display
Lorch and Smith (1998)Li et al. (1994)Device
Consumo de vários elementos de um computador portátil.
12/16/2002 Sistemas Operativos 2001/2002 29
Power management (2)
As zonas são retro-iluminadas de acordo com a zona do écran que está a ser utilizada.
12/16/2002 Sistemas Operativos 2001/2002 30
Power management (3)
(a) Sistema com relógio ao máximo(b) Utilizando metade da voltagem
(a) Reduz o relógio para metade(b) Reduz o consumo em 4
12/16/2002 Sistemas Operativos 2001/2002 31
Power management (4)
Informando as aplicações para gastarem menos energia– Implicando uma perca da qualidade de utilização
Exemplos– Mudar o output de cor para preto e branco– Reduzir vocabulário no reconhecimento de voz– Reduzir resolução ou detalhe das imagens