1 entrada/saída objetivo uma das funções principais do so é controlar os dispositivos de e/s:...

80
1 Entrada/Saída Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções, trata erros, fornece interface simples entre dispositivos e o restante do sistema. Vamos estudar como o SO faz esta tarefa.

Upload: ivan-araujo-de-sequeira

Post on 07-Apr-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

11

Entrada/SaídaEntrada/SaídaObjetivo

Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções, trata erros, fornece interface simples entre dispositivos e o restante do sistema.Vamos estudar como o SO faz esta tarefa.

Page 2: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

22

Entrada/SaídaEntrada/SaídaCapítulo 5Capítulo 5

5.1 Princípios do hardware de E/S5.2 Princípios do software de E/S5.3 Camadas do software de E/S5.4 Discos5.5 Relógios5.6 Interfaces com usuário5.7 Clientes magros5.8 Gerenciamento de energia

Page 3: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

33

(5.1) Princípios do Hardware de E/S(5.1) Princípios do Hardware de E/S

Não importa para este curso o Hardware por dentro mas como é programado.

Dispositivos de E/S – categorias:

Dispositivos de Blocos:Armazena informação em blocos de tamanho fixo, cada um com seu próprio endereço. O bloco é lido ou escrito independentemente dos outros. Ex: disco, CD-ROMs, pen-drives.

Dispositivos de caractere:Envia ou recebe fluxos de caracteres, sem considerar

estruturas de blocos. Ex: Impressoras, interfaces de rede.

PG 203

Page 4: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

44

(5.1) Princípios do Hardware de E/S(5.1) Princípios do Hardware de E/S

Alguns dispositivos não se encaixam nesta classificação. Ex: relógio – não é endereçavel por bloco, nem envia e recebe caracteres.

A classificação ajuda para criar sw independente de dispositivo quando possível.

Velocidade do dispositivo pressiona o sw p/ atendê-lo.

PG 204

Page 5: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

55

(5.1) Controladores de Dispositivos(5.1) Controladores de Dispositivos Componentes de dispositivos de E/S

– Mecânico: o dispositivo em si– Eletrônico: controlador do dispositivo (placa); pode tratar

múltiplos dispositivos; desejável interface padronizada entre dispositivo e controlador. Ex: USB.

Tarefas do controlador– converter fluxo serial de bits em bloco de bytes – executar toda correção de erro necessária– tornar o bloco disponível para ser copiado para a memória O controlador desenvolve funções específicas - não

precisam ser implementadas pelo SO q inicializa o controlador e atribui a ele o trabalho completo.

PG 204

Page 6: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

66

(5.1) E/S mapeada na memória (1)(5.1) E/S mapeada na memória (1)

a) Espaços de memória e E/S separados. Necessita instrução especial de E/S : IN REG, PORT – CPU lê registro de controle do dispositivo (PORT) e armazena resultado em registrador da CPU (REG).

b) E/S mapeada na memória (MOV REG, END): registradores de controle são associados a endereços de memória.

c) Híbrido. Ex: Pentium; ends. reservados para dados e portas.

O controlador tem registradores para comunicar-se com a CPU associados a número de porta.

Buffer

Reg. controle

PG 205

Page 7: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

77

(5.1) E/S mapeada na memória (2)(5.1) E/S mapeada na memória (2)

Vantagens de E/S mapeada na memória:

1. Não precisa instruções especiais (IN ou OUT) – pode programar em C, não assembly;

2. Fácil para impedir acesso do usuário a E/S: colocar em páginas diferentes registradores de dispositivos diferentes, concedendo assim a usuários específicos controle sobre dispositivos específicos.

3. Sem mapeamento na memória são necessárias 2 instruções: uma para ler o reg de controle, outra para uso (comparação, movimentação,etc). Instruções de referência à memória já usam diretamente os registradores de controle.

PG 206

Page 8: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

88

(5.1) E/S mapeada na memória (3)(5.1) E/S mapeada na memória (3)

Desvantagens:

1. Uso de cache pode ser desastroso: a primeira referencia coloca na cache, as próximas leituras repetem o valor obtido, ou seja, repetem a leitura do cache não do dispositivo, fornecendo dado antigo. Neste caso é necessário uso seletivo do cache: para estes casos desabilitar o uso de cache o que é complexo para SO e/ou Hw;

2. Examinar todas as referências de memória para detectar quem responde a cada referência: memória ou dispositivo.

PG 206

Page 9: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

99

(5.1) E/S mapeada na memória (4)(5.1) E/S mapeada na memória (4)

(a) Arquitetura com barramento único: ambos olham o end. diretamente: se end. de E/S, dispositivo responde, senão memória responde (pré-programado sem conflito).

(b) Arquitetura com barramento dual para ganhar velocidade no acesso a mem. O dispositivo não inspeciona todos os acessos - CPU separa os endereços? Complexo…

PG 207

Page 10: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1010

(5.1) A solução do Sistema Pentium(5.1) A solução do Sistema Pentium

Na iniciação do SO, a ponte PCI contem registradores pré-carregados com a faixa de endereços reservados (não utilizável como memória). Endereços desta faixa não são enviados para a memória mas para o barramento PCI.

PG 207

Page 11: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1111

(5.1) Acesso Direto à Memória (DMA)(5.1) Acesso Direto à Memória (DMA)

Tendo ou não E/S mapeada na memória é preciso endereçar Tendo ou não E/S mapeada na memória é preciso endereçar os controladores dos dispositivos para trocar dados com eles.os controladores dos dispositivos para trocar dados com eles.

Utiliza-se Acesso Direto a Memória para transferir dados com Utiliza-se Acesso Direto a Memória para transferir dados com rapidez. O controlador de rapidez. O controlador de DMADMA (Direct Memory Access) é (Direct Memory Access) é integrado ao controlador de disco para aliviar a CPU deste integrado ao controlador de disco para aliviar a CPU deste controlecontrole..

Normalmente, um único controlador de DMA está disponível Normalmente, um único controlador de DMA está disponível para controlar transferências para vários dispositivos, que para controlar transferências para vários dispositivos, que podem ocorrer, muitas vezes, simultaneamente.podem ocorrer, muitas vezes, simultaneamente.Contém registrador de endereço de memória, registrador Contém registrador de endereço de memória, registrador contador de bytes, registradores de controle: especificam contador de bytes, registradores de controle: especificam direção da transferência, bytes transferidos em um surto, etc.direção da transferência, bytes transferidos em um surto, etc.

PG 207

Page 12: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1212

(5.1) Acesso Direto à Memória (DMA)(5.1) Acesso Direto à Memória (DMA)

Passo 1:CPU dá ordens para controlador de DMA: o que transferir e para onde;

Passo 2: Controlador de DMA faz requisição de leitura ao controlador de disco;

Passo 3: Lê dado e coloca na memória (outro ciclo);Passo 4: Controlador de disco envia sinal ao DMA.Passo 2 a 4: repetidos até que contador de bytes = 0

Controlador de DMA interrompe a CPU para avisar que concluiu.

PG 208

Page 13: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1313

(5.1) Interrupções(5.1) Interrupções

2. Controlador coloca nas linhas de end. um índice do vetor de interrupção associado ao dispositivo que sinalizou. O vetor aponta para a rotina com o tratamento adequado.

3. A rotina de interrupção sinaliza o atendimento. O controlador está livre para outra interrupção.

1. Quando dispositivo termina operação, gera interrupção.Controlador de interrupção: chip localizado na placa mãe

PG 209

Page 14: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1414

Interrupções precisas e imprecisasInterrupções precisas e imprecisasPrecisa: PC salvo; instruções anteriores ao PC totalmente executadas; instruções seguintes não executadas; estado de execução da instrução apontada pelo PC é conhecido.Imprecisa: Com pipelines há instruções em diferentes estágios. Quando há interrupção salvar muita informação para voltar no mesmo estágio depois do tratamento.

Interrupção torna-se lenta => difícil dizer a abordagem melhorPG 210

Page 15: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1515

(5.2) Objetivos do Software de E/S (1)(5.2) Objetivos do Software de E/S (1)Que tipo de programas deveríamos escrever para tratar E/S?Que tipo de programas deveríamos escrever para tratar E/S? Independência de dispositivo

Escrever programas aptos a acessar qualquer dispositivo de E/S sem especificar previamente qual (ex: ler de disquete, disco rígido, CD-ROM... )

Nomeação uniformeO nome deve ser independente de dispositivo, pode ser uma cadeia de caracteres ou um número inteiro. (Unix ok, monta os dispositivos na hierarquia do Sistema de Arquivo como se fosse arquivo)

Tratamento de erroTrata o mais próximo possível do hardware: quando camadas inferiores não conseguem recuperar, informar camadas superiores (controlador, drive, SO, user).

PG 211

Page 16: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1616

(5.2) Objetivos do Software de E/S (2)(5.2) Objetivos do Software de E/S (2)

Tipo de Transferência: Síncronas (bloqueantes) vs. Assíncronas (orientadas a interrupção):– SO pode fazer operação assíncrona parecer bloqueante

pois é mais fácil para o programador; 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, precisam ser copiados, para lidar com diferentes taxas ou inspeção posterior (ex: rede);

Dispositivos Compartilháveis vs. Dedicados– discos são compartilháveis por vários usuários;– unidades de fita não são ( passível de impasses);SO deve tratá-los com as suas características.

PG 212

Page 17: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1717

(5.2) E/S Programada (1)(5.2) E/S Programada (1)

Passos da impressão de uma cadeia de caracteres:1) Programa solicita impressão – chamada ao sistema;2) SO copia buffer para espaço do núcleo; SO copia dado para

registrador de dados da impressora;3) Quando terminou primeira impressão SO continua

Há 3 maneiras de fazer E/S:(1) E/S Programada: A CPU faz todo o trabalho (sem

DMA, sem interrupção); bom para sistemas simples.

PG 213

Page 18: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1818

(5.2) E/S Programada (2)(5.2) E/S Programada (2)

Escrita de uma cadeia de caracteres para a impressora usando E/S programada

Simples, porém segura a CPU na espera ociosa

PG 213

Page 19: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

1919

(5.2) E/S Orientada à Interrupção(5.2) E/S Orientada à Interrupção

(2) E/S orientada à Interrupção: escrita de uma cadeia de caracteres para a impressora

a) Código executado quando é feita a chamada ao sistema para impressão

b) Rotina de tratamento de interrupção

PG 214

Page 20: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2020

(5.2) E/S Usando DMA(5.2) E/S Usando DMA

(3) Impressão de uma cadeia de caracteres usando DMA

a) Código executado quando é feita a chamada ao sistema para impressão

b) Rotina de tratamento de interrupção

Usando E/S com Interrupção, a CPU é interrompida a cada caracter o que também desperdiça a CPU

PG 214

Page 21: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2121

(5.3) Camadas do Software de E/S(5.3) Camadas do Software de E/S

Normalmente o software de E/S é organizado em 4 camadas com funções e interfaces bem definidas

Subseção:5.3.45.3.35.3.25.3.1

PG 215

Page 22: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2222

(5.3.1) Tratadores de Interrupção (1)(5.3.1) Tratadores de Interrupção (1)

As interrupções devem ser escondidas o máximo possível para não interferir nas demais tarefas do SO; o resto do SO não deve tomar conhecimento.

Para esconder interrupções:– Bloquear o driver que iniciou uma operação de E/S

até que uma interrupção notifique que a E/S foi completada (que tal um down em um semáforo?)

– Rotina de tratamento de interrupção cumpre sua tarefa e então desbloqueia o driver que a chamou. (Que tal um up? É só isto a fazer?)

PG 215

Page 23: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2323

(5.3.1) Tratadores de Interrupção (2)(5.3.1) Tratadores de Interrupção (2)

Passos que devem ser executados em software depois da interrupção do hardware acontecer:

1. Salva registradores (do processo interrompido) que ainda não foram salvos pelo hardware de interrupção

2. Estabelece contexto para rotina de tratamento de interrupção: talvez manipular Tab. Páginas, TLB, MMU...

3. Estabelece uma pilha para a rotina de tratamento de interrupção, para armazenar seus próprios dados.

4. Sinaliza o controlador de interrupção, reabilita as interrupções (já estou tratando esta, pode aceitar outras).

PG 215

Page 24: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2424

(5.3.1) Tratadores de Interrupção (3)(5.3.1) Tratadores de Interrupção (3)

5. Copia os registradores de onde eles foram salvos (possivelmente uma pilha) para tabela de processos (associado ao processo interrompido);

6. Executa rotina de tratamento de interrupção

7. Escolhe o próximo processo a executar: este tratamento pode ter liberado processo mais prioritário

8. Estabelece o contexto da MMU para o próximo processo a executar

9. Carrega os registradores do novo processo

10. Começa a executar o novo processo

PG 215

Page 25: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2525

(5.3.2) Drivers dos Dispositivos (1)(5.3.2) Drivers dos Dispositivos (1)

A comunicação entre os drivers e os controladores de dispositivos é feita por meio do barramento

Driver: Código específico para tratar o dispositivo, em geral escrito pelo fabricante, fornecidocom o dispositivo.

Posição lógica dos drivers dos dispositivos: executam no modo núcleo para acessar registradores dos controladores, abaixo do restante do SO

PG 216

Page 26: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2626

(5.3.2) Drivers dos Dispositivos (2)(5.3.2) Drivers dos Dispositivos (2)

Categorias: dispositivos de bloco ou dispositivos de caractere - interface padrão para cada caso: procedimentos que o SO pode utilizar para fazer o driver trabalhar para ele.

Antigamente para ter um novo driver era necessário recompilar todo o SO gerando um novo binário. Atualmente os SO carregam dinamicamente um novo driver. O driver deve ser o mais independente possível, para que um driver com defeito não prejudique o SO.

Drivers devem ser reentrantes: podem ser chamados novamente antes que a primeira chamada tenha sido concluída. Ex: driver de rede – processa pacote enquanto está chegando outro.PG 217

Page 27: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2727

(5.3.2) Drivers dos Dispositivos (3)(5.3.2) Drivers dos Dispositivos (3)

Driver típico:

– Verifica validade de parâmetros de entrada;– Traduz parâmetros abstratos para concretos (Ex: ler do

disco => posicionar trilha, setor, cilindro);– Verificar se dispositivo em uso – enfileira requisição;– Emite sequência de comandos (escreve nos

registradores do dispositivo);– Se auto-bloqueia até término da operação ou já finaliza

operação sem bloqueio (ex: comando para rolar tela – dura ns e não tem operação mecânica);

– Verifica ocorrência de erros;

PG 217

Page 28: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2828

(5.3.3) Software de E/S Independente (5.3.3) Software de E/S Independente de Dispositivo (1)de Dispositivo (1)

As fronteiras entre drivers e sw independente varia de acordo com o sistema As fronteiras entre drivers e sw independente varia de acordo com o sistema e o dispositivo. Deseja-se executar funções de E/S comuns a todos e o dispositivo. Deseja-se executar funções de E/S comuns a todos dispositivos com interface uniforme para o sw ao nível de usuário. Funções dispositivos com interface uniforme para o sw ao nível de usuário. Funções feitas pelo sw independente de dispositivo:feitas pelo sw independente de dispositivo:

Interface uniforme para os drivers dos dispositivosInterface uniforme para os drivers dos dispositivos

Armazenamento em bufferArmazenamento em buffer

Relatório dos errosRelatório dos erros

Alocação e liberação de dispositivos dedicados (SO Alocação e liberação de dispositivos dedicados (SO examina requisições e aceita ou rejeita)examina requisições e aceita ou rejeita)

Fornecimento de tamanho de bloco independente de Fornecimento de tamanho de bloco independente de dispositivo (SO esconde o real)dispositivo (SO esconde o real)

PG 218

Page 29: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

2929

(5.3.3) Software de E/S Independente de (5.3.3) Software de E/S Independente de Dispositivo (2) – Interface UniformeDispositivo (2) – Interface Uniforme

(a) Sem uma interface-padrão do driver – necessário se adaptar a novo driver – esforço de programação

(b) Com uma interface-padrão do driver torna-se fácil acoplar novo driver. Os desenvolvedores sabem o que se espera deles. Para cada classe de dispositivo definir um conjunto de funções.

PG 218

Page 30: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3030

(5.3.3) Software de E/S Independente de (5.3.3) Software de E/S Independente de Dispositivo (3) – Utilização de BufferDispositivo (3) – Utilização de Buffer

a)a) Entrada sem utilização de buffer (bloqueia/desbloqueia Entrada sem utilização de buffer (bloqueia/desbloqueia processo do usuário a cada caracter);processo do usuário a cada caracter);

b)b) Utilização de buffer no espaço do usuário Utilização de buffer no espaço do usuário (bloqueia/desbloqueia a cada buffer trocado) : e se buffer (bloqueia/desbloqueia a cada buffer trocado) : e se buffer paginado quando chega char? Fixa página! Fixa todos paginado quando chega char? Fixa página! Fixa todos processos que fazem E/S? Desempenho...processos que fazem E/S? Desempenho...

PG 219

Page 31: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3131

(5.3.3) Software de E/S Independente de (5.3.3) Software de E/S Independente de Dispositivo (3) – Utilização de BufferDispositivo (3) – Utilização de Buffer

c)c) Utilização de buffer no núcleo seguido de cópia para o Utilização de buffer no núcleo seguido de cópia para o espaço do usuário; e se chegarem mais caracteres da rede espaço do usuário; e se chegarem mais caracteres da rede enquanto página do usuário está sendo trazida do disco para enquanto página do usuário está sendo trazida do disco para memória? Buffer se enche e não tem onde esvaziar.memória? Buffer se enche e não tem onde esvaziar.

d)d) Utilização de buffer duplo no núcleo, trabalham Utilização de buffer duplo no núcleo, trabalham alternativamente: enquanto um copia para usuário outro alternativamente: enquanto um copia para usuário outro recebe dados externos.recebe dados externos.

PG 220

Page 32: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3232

(5.3.3) Software de E/S Independente de (5.3.3) Software de E/S Independente de Dispositivo (4) – Utilização de BufferDispositivo (4) – Utilização de Buffer

A operação em rede pode envolver muitas cópias de um A operação em rede pode envolver muitas cópias de um pacote. O controlador de rede ajusta a taxa de transferência pacote. O controlador de rede ajusta a taxa de transferência

para a taxa da redepara a taxa da rede

Cópias são necessárias, porém degradam o desempenho

PG 220

Page 33: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3333

(5.3.3) Software de E/S Independente de (5.3.3) Software de E/S Independente de Dispositivo (5)Dispositivo (5)

Relatórios de Erros – Classificar erros (ex: foi dada ordem errada ou erro real – escrever em disco danificado), tentar recuperar (se usuário online pergunta o que fazer), relatar quando não é possível recuperar;

Alocação e Liberação de Dispositivos Dedicados: há dispositivos que só podem ser usados por um processo por vez; SO pode emitir mensagem de falha ou bloquear em fila;

Tamanho de bloco independente de dispositivo: o SO pode esconder detalhes. Ex: em disco – cada disco tem tamanho diferente de setor; esconder o tamanho do bloco físico oferecendo tamanho de bloco lógico. PG 221

Page 34: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3434

(5.3.4) Software de E/S no Espaço (5.3.4) Software de E/S no Espaço do Usuáriodo Usuário

Resumo: Camadas do sistema de E/S e as principais funções de cada camada

Uma parte do sw de E/S é constituída de bibliotecas ligadas ao programa do usuário. Pode-se utilizar um sistema de spooling com daemon que o gerencia, protegendo o recurso do acesso direto do usuário.

PG 222

Page 35: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3535

(5.4) (5.4) HHardware do Disco (1)ardware do Disco (1)

Cilindro: definido como sendo um conjunto de  Trilhas verticalmente alinhadas e com mesmo diâmetro e compostas por Setores que são as unidades físicas de gravação Em amarelo ilustra-se a trilha, em azul o setor.

O Disco Magnético:O Disco Magnético:

Page 36: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3636

(5.4) Hardware do Disco (2)(5.4) Hardware do Disco (2)

Em ambos os casos há 192 setores, porém o controlador mapeia requisição virtual em posicionamento real

Nos discos modernos o disco é dividido em zonas: há mais Nos discos modernos o disco é dividido em zonas: há mais setores nas zonas mais externas.setores nas zonas mais externas. (a) Ilustra um disco (a) Ilustra um disco pequenopequeno com duas zonas (a mais externa tem 32 setores, a com duas zonas (a mais externa tem 32 setores, a interna 16)interna 16)

Para ocultar detalhes o Para ocultar detalhes o driver apresenta driver apresenta geometria virtual que geometria virtual que pode ser diferente do pode ser diferente do formato fisico. Em formato fisico. Em (b) (b) Uma possível Uma possível geometria virtual para geometria virtual para esse discoesse disco

PG 224

Page 37: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3737

(5.4) Hardware do Disco (3) - RAID(5.4) Hardware do Disco (3) - RAIDRedundant Array of Inexpensive (?) Disk,Redundant Array of Inexpensive (?) Disk,

termo redefinido pela indústria paratermo redefinido pela indústria paraRedundant Array of Independent DiskRedundant Array of Independent Disk

Tradicionalmente o desempenho da CPU aumenta mais Tradicionalmente o desempenho da CPU aumenta mais que desempenho do disco, buscar soluções:que desempenho do disco, buscar soluções:

Idéia -> E/S paralela: Idéia -> E/S paralela: Conjunto de discos com controladora RAID que pareça um único disco grande com melhor confiabilidade e desempenho.

Controlador de disco substituído por controlador RAID Diferentes níveis => Diferentes níveis => diferentes esquemas de

organização (RAID 0 a RAID 5).PG 225

Page 38: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3838

(5.4) Hardware do Disco (4)(5.4) Hardware do Disco (4)

RAID 0RAID 0Considera um discão dividido em faixas de k setores.Faixa 0 – setores 0 a k-1; Faixa 1 – setores k a 2k-1, etc. Ler um bloco pode implicar ler os 4 discos em paralelo. Vantagem: E/S paralela sem o SO saber.

RAID 1RAID 1Duplica todos os discos; durante uma escrita cada faixa é escrita duas vezes. Vantagem: confiabilidade

Discos de segurança e de paridade são os sombreados

PG 226

Page 39: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

3939

(5.4) Hardware do Disco (4)(5.4) Hardware do Disco (4)

RAID 2RAID 2Acrescenta bits de paridade no byte para checar erros

(código de Hamming). Se a cada 4 bits, acrescentar-se 3 bits de paridade, chega-se a palavra de 7 bits.

Sincroniza os discos e escreve uma palavra de 7 bits , um bit por disco. Se um disco falhar, os bits do check permitem corrigir o erro.

Vantagem: confiabilidade e paralelismo.Desvantagem: sincronizar discos e checar Hamming.

PG 226

Page 40: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4040

(5.4) Hardware do Disco (5)(5.4) Hardware do Disco (5)

RAID 5RAID 5Faixas - paridade distribuída entre todos os discos.Faixas - paridade distribuída entre todos os discos.

Vantagem: confiabilidade. Vantagem: confiabilidade.

RAID 3RAID 3Apenas bit de paridade para

detecção de erros – Se disco quebra, supõe que bit era zero: se paridade ok, era zero, senão era um.

RAID 4RAID 4Trabalha com faixas: como o

RAID0RAID0, mas com um disco para paridade; este disco tem grande carga.

PG 226

Page 41: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4141

(5.4) Hardware do Disco (6)(5.4) Hardware do Disco (6)

Estrutura de gravação de um CD (áudio) ou CD-ROM: o Estrutura de gravação de um CD (áudio) ou CD-ROM: o espiral esticado daria 5,6km. Para ler: laser de baixa potência espiral esticado daria 5,6km. Para ler: laser de baixa potência dispara luz e verifica-se a luz refletida para diferenciar dispara luz e verifica-se a luz refletida para diferenciar depressão-superfície. A transição depressão/superfície ou depressão-superfície. A transição depressão/superfície ou superfície/depressão é o 1 e ausência de transição superfície/depressão é o 1 e ausência de transição representa o 0.representa o 0.

O Disco Optico:O Disco Optico:

Depressão: região “queimada” – laser

Superfície: região não queimada entre depressões

PG 227

Page 42: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4242

(5.4) Hardware do Disco (6)(5.4) Hardware do Disco (6)

Esquema lógico dos dados em um CD-ROMEsquema lógico dos dados em um CD-ROMHá 3 esquemas de correção de erros:Há 3 esquemas de correção de erros:1)1) A nível de símbolo: 14 bits p/ apenas 8 de dados (Hamming)A nível de símbolo: 14 bits p/ apenas 8 de dados (Hamming)2)2) A nível de quadro: Para detectar erros de surto curto.A nível de quadro: Para detectar erros de surto curto.3)3) A nível de setor : Ainda, Error Correction Code com 288 bytesA nível de setor : Ainda, Error Correction Code com 288 bytesResumindo: dos 98 quadros da parte de dados (7203 bytes), Resumindo: dos 98 quadros da parte de dados (7203 bytes),

apenas 2048 bytes são dados úteis, apenas 28% de apenas 2048 bytes são dados úteis, apenas 28% de eficiência, mas grande confiabilidade.eficiência, mas grande confiabilidade.

PG 229

Page 43: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4343

(5.4) Hardware do Disco (7)(5.4) Hardware do Disco (7)

Secção transversal de um disco CD-R e laser CD-RW – empregam 3 lasers com potências

diferentes: Potência alta – gera a depressão (Química); potência média: retorna ao estado natural; potência baixa; só para leitura

CD-R (Recordable)Evolução do CD_ROM – útil agora para backup.

CD-RW (Rewritable)Evolução do CD-R

PG 230

Page 44: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4444

(5.4) Hardware do Disco (8)(5.4) Hardware do Disco (8)

Disco DVD com lado duplo e camada dupla (dependendo de onde o laser focaliza retorna dado de uma camada ou de outra). Capacidade do DVD do exemplo 17 GB. DVD Comum: lado simples e camada simples: 4.7GB (Cabe um filme médio)

DVD – Digital Video DiscEm relação ao CD: depressões menores, espiral mais

estreito, laser vermelho. Aumenta capacidade original.

PG 232

Page 45: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4545

(5.4) Hardware do Disco (9)(5.4) Hardware do Disco (9)

Disco single-layer armazenam até 25GB e double-layer Disco single-layer armazenam até 25GB e double-layer até 50 GB, suficiente para 9 horas de vídeo em alta-até 50 GB, suficiente para 9 horas de vídeo em alta-definição ou 23 horas em definição standard.definição ou 23 horas em definição standard.Trabalham com laser azul e violeta daí o nome, admite Trabalham com laser azul e violeta daí o nome, admite transferências mais rápidas, codecs mais avançados de audio transferências mais rápidas, codecs mais avançados de audio e vídeo.e vídeo.HD-DVD (competidor do Blu-ray): também laser azul, 15GB HD-DVD (competidor do Blu-ray): também laser azul, 15GB (camada simples) ou 30GB (camada dupla).(camada simples) ou 30GB (camada dupla).Há disputas entre empresas e entre estúdios de cinema.Há disputas entre empresas e entre estúdios de cinema.

Blu-ray: associação de líderes de produtos Blu-ray: associação de líderes de produtos eletrônicos, e produtores de media eletrônicos, e produtores de media definiram o novo formato para definiram o novo formato para armazenar vídeos de alta definição.armazenar vídeos de alta definição.

Page 46: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4646

(5.4) Formatação do Disco Rígido(1)(5.4) Formatação do Disco Rígido(1)

Formatação de baixo nível: criar por software uma série de trilhas concêntricas, cada uma com um certo número de setores com pequenos intervalos entre eles.

Um setor de disco

•Preâmbulo – padrão binário p/ hw identificar início do setor;

•Dados – Maioria usa 512 bytes – tamanho dado pelo programa de formatação;

•ECC – Variam de fabricante para fabricante.PG 233

Page 47: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4747

(5.4) Formatação do Disco (2)(5.4) Formatação do Disco (2)Após a formatação de baixo nível, o disco é dividido em

partições. No Pentium o setor 0 contém o registro principal de boot - MBR (Master Boot Record) que apresenta um código do boot e a tabela de partições.

Formatação de alto nível: insere bloco de boot, lista de blocos livres ou mapa de bits, diretório raíz; coloca código na entrada da tabela de partições informando qual é o sistema de arquivos usado na partição.

Neste ponto o sistema pode ser iniciado.

PG 234

Page 48: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4848

(5.4) Formatação do Disco (3)(5.4) Formatação do Disco (3)

Quando a energia é ligada:

(1) BIOS entra em ação e carrega o registro principal de boot e salta para este código;

(2) Este programa de boot verifica qual partição está ativa e carrega o setor de boot específico desta partição e o executa;

(3) Este setor contém um pequeno programa que procura outro programa (SO) no diretório raíz. O SO é carregado na memória e executado.

PG 235

Page 49: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

4949

(5.4) Algoritmos de Escalonamento do (5.4) Algoritmos de Escalonamento do Braço do Disco (1)Braço do Disco (1)

O tempo para ler/escrever um bloco do disco é determinado por:

(1) Tempo de posicionamento – p/ mover o braço para o cilindro correto;

(2) Atraso de rotação – p/ rodar o setor correto sob o cabeçote;(3) Tempo de transferência real do dado.

Para maioria dos discos o tempo de posicionamento é preponderante sobre os outros dois, buscar algoritmos para reduzi-lo

Quando disco está trabalhando novas requisições chegam: Que algoritmo utilizar para atender com eficiência as requisições?

PG 235

Page 50: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5050

(5.4) Algoritmos de Escalonamento do (5.4) Algoritmos de Escalonamento do Braço do Disco (2)Braço do Disco (2)

Ex: Disco com 40 cilindros , chega solicitação para ler bloco no cilindro 11. Enquanto atendendo chegam solicitações para os cilindros 1, 36,16, 34,9 e 12 que ficam pendentes.

Que tal algoritmo FCFS para requisições ao disco?

Com FCFS se deslocaria (11->1) 10, (1->36) 35, (36->16) 20, 18, 25 e 3 num total de 111 cilindros percorridos.

Muito deslocamento com o FCFS…

Que tal tratar a próxima requisição como a mais próxima da posição atual do cabeçote?

PG 235

Page 51: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5151

(5.4) Algoritmos de Escalonamento do (5.4) Algoritmos de Escalonamento do Braço do Disco (3)Braço do Disco (3)

Algoritmo posicionamento mais curto primeiro (Shortest Seek First - SSF)Para as referências feitas estando no 11: 1, 36,16, 34,9 e 12 A sequencia seria 12, 9, 16, 1, 34 e 36, totalizando 61 cilindros

percorridos.

PG 236

Page 52: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5252

(5.4) Algoritmos de Escalonamento do (5.4) Algoritmos de Escalonamento do Braço do Disco (4)Braço do Disco (4)

Problema: Se após a requisição 16, chega uma para 8, será atendida antes da 1. Ao atender a 8 chega uma requisição para 13, será atendida antes da 1…

Com um disco totalmente carregado, o braço tenderá a ficar no meio na maior parte do tempo, sendo injusto com as requisições que estão nos cilindros mais externos.

Este problema pode acontecer também com elevadores em prédios… Como eles resolveram?

PG 236

Page 53: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5353

(5.4) Algoritmos de Escalonamento do (5.4) Algoritmos de Escalonamento do Braço do Disco (5)Braço do Disco (5)

Algoritmo do Elevador: move-se numa mesma direção até não haver requisições pendentes naquela direção. Usa bit Direção (Sobe ou Desce).

No exemplo a ordem de atendimento é 12,16,34,36,9,1, totalizando 60 cilindros. Valor máximo para distância total é fixo: duas vezes o número de cilindros.

PG 236

Page 54: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5454

(5.5) Hardware do Relógio(5.5) Hardware do Relógio

Um relógio programável é constituído de: Oscilador : gera sinal periódico de altíssima precisão; Contador: conta regressivamente, quando chega a zero gera interrupção a

CPU; Registrador de apoio: contém valor a ser carregado no contador a cada

interrupção

Relógios (Temporizadores) são essenciais em sistemas multiprogramados para evitar que um processo monopolize a CPU e manter a hora do dia.

Interrupções periódicas são chamadas de tiques de relógio.

PG 241

Page 55: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5555

(5.5) Software do Relógio (1)(5.5) Software do Relógio (1)

O hw gera interrupções a intervalos conhecidos. O resto o driver deve realizar. Suas obrigações:

(a) Manter a hora do dia;(b) Evitar que um processo execute mais tempo que

permitido;(c) Contabilizar uso da CPU;(d) Tratar chamadas de alarme feito pelo usuário;(e) Gerar perfil de execução ,monitoramento e

estatísticas.

PG 242

Page 56: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5656

(5.5) Software do Relógio (2)(5.5) Software do Relógio (2)

Para evitar perda do horário quando energia é desligada, Para evitar perda do horário quando energia é desligada, há um relógio de segurança mantido por bateria que pode há um relógio de segurança mantido por bateria que pode ser lido na inicialização do sistema. Há também a ser lido na inicialização do sistema. Há também a possibilidade de sincronizar-se com um computador possibilidade de sincronizar-se com um computador remoto. Há uma forma padrão para obter horário.remoto. Há uma forma padrão para obter horário.

A hora é traduzida em número de tiques de relógio desde A hora é traduzida em número de tiques de relógio desde as12 horas de 1 de janeiro de 1970, como Unix faz, ou as12 horas de 1 de janeiro de 1970, como Unix faz, ou 1 de janeiro de 1980 como Windows faz.1 de janeiro de 1980 como Windows faz.

Se contador de 32 bits, com relógio de 60Hz, a Se contador de 32 bits, com relógio de 60Hz, a capacidade estouraria em 2 anos => o sistema não pode capacidade estouraria em 2 anos => o sistema não pode armazenar tempo real como número de tiques desde 1 de armazenar tempo real como número de tiques desde 1 de janeiro de 1970 em 32 bits.janeiro de 1970 em 32 bits.

PG 242

Page 57: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5757

(5.5) Software do Relógio (3)(5.5) Software do Relógio (3)

Três maneiras para manter a hora do dia, sem estourar a Três maneiras para manter a hora do dia, sem estourar a capacidade de contagem:capacidade de contagem:

(a)(a) Manter um contador grande (64 bits);Manter um contador grande (64 bits);(b)(b) Contador auxiliar conta tiques até acumular um segundo, Contador auxiliar conta tiques até acumular um segundo,

então incrementa contador de segundos: 2então incrementa contador de segundos: 23232 segundos = segundos = 136 anos;136 anos;

(c)(c) Contar tiques a partir do t de boot do sistema e não a partir Contar tiques a partir do t de boot do sistema e não a partir de t externo. Armazenar hora do boot em formato de t externo. Armazenar hora do boot em formato convenienteconveniente

PG 242

Page 58: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5858

(5.5) Software do Relógio (4)(5.5) Software do Relógio (4)

Simulação de vários temporizadores com um único relógio:Simulação de vários temporizadores com um único relógio:gerar interrupção em 4203, 4207, 4213, 4215, 4216.gerar interrupção em 4203, 4207, 4213, 4215, 4216.

As vezes o processo precisa que o SO dê aviso após intervalo de tempo. Ex: sleep.

Se muitos sinais são esperados, o driver pode simular relógios encadeando as requisições pendentes juntas.

PG 243

Page 59: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

5959

(5.5) Software do Relógio (5)(5.5) Software do Relógio (5)

Durante uma interrupção de relógio o driver precisa realizar:

• Incrementar o tempo real;

• Decrementar o quantum e comparar com zero;

• Contabilizar uso da CPU;

• Decrementar contador de alarme;

Operações que devem ser feitas rapidamente, pois se repetem várias vezes por segundo.

PG 243

Page 60: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6060

(5.5) Temporizadores de Software(5.5) Temporizadores de Software É comum ter um segundo relógio programável , ajustado

para causar interrupções em qualquer taxa que um programa precisar– Ter interrupções de relógio não é um problema se a

frequência de interrupção é baixa: mas, se há muita interrupção e gasta-se um tempo para tratá-la… o que tem acontecido com projetos mais complexos.

A evolução dos projetos em muitos casos, desembocam nos mesmos problemas do passado. O relógio é mais rápido, porém com TLB, MMU, pipeline: uma interrupção tem muito o que fazer . Como atender uma requisição de rede Gigabit (um pacote a cada 12 µs)?

PG 243

Page 61: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6161

(5.5) Temporizadores de Software(5.5) Temporizadores de Software Temporizadores de software evitam interrupções

– Sempre que núcleo executa, antes de voltar para modo usuário, verifica o relógio de t real para checar se um temporizador de software expirou;

– Se temporizador expirou , escalona evento e reinicia temporizador;

– Quão bem isso funciona depende da taxa que se entra no núcleo. Porque se entra no núcleo? Chamadas de sistema, Faltas na TLB, na Tab. Pag., interrupções de E/S, CPU ociosa. Estudos indicam uma entrada a cada 2 µs a 18µs => perda ocasional é melhor que consumir 35% do tempo da CPU com interrupções.

– Combinar as 2 estratégias: relógio de Sw e Hw.PG 244

Page 62: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6262

(5.6) Interfaces com usuário: teclado, (5.6) Interfaces com usuário: teclado, mouse e monitor - Software de Entrada (1)mouse e monitor - Software de Entrada (1)

Embora teclado e vídeo sejam independentes, não são completamente: caracter digitado é mostrado no vídeo.

As vezes o programa que vai receber o que é digitado não quer detalhes de cada caracter, mas quer receber a linha final. Exemplo: Se o usuário digitar dste ao invés de date e depois corrigir o erro digitarád s t e bck bck bck a t e (11 caracteres).

O driver do teclado pode trabalhar em dois modos:• Modo canônico: trata edição e entrega linha corrigida;• Modo não canônico: entrega caracteres.POSIX fornecem funções que permite escolha do modo.

PG 245

Page 63: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6363

(5.6) Software de Entrada (2)(5.6) Software de Entrada (2)

Caracteres de controle que não conflitam com caracteres de texto. São tratados de forma especial no modo canônico

PG 246

Page 64: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6464

(5.6) Software de Entrada (3)(5.6) Software de Entrada (3)

Mouse: a movimentação fornece o posicionamento: uma mensagem é enviada ao computador se a posição for alterada de uma distância mínima (mickey) ou se um botão for apertado.

Indica mudanças nas posições , não posição absoluta (experimente levantar o mouse e mudá-lo de posição no ar: o que acontece?)

Mouses sem fio: enviam mensagens por ondas de rádio de baixa frequência; usando, por exemplo, Bluetooth.

Se dois cliques acontecem muito próximos no espaço ou tempo, há sinalização especial que pode ou não ser tratada pela interface gráfica.

PG 247

Page 65: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6565

(5.6) Software de Saída (1)(5.6) Software de Saída (1)

Janelas de Texto: As mais simples; o computador envia caracteres que são mostrados no terminal.

Os buffers podem pertencer ao mesmo conjunto da entrada ou serem dedicados somente à saída.

Para lidar com situações mais complexas como substituir uma linha no meio da tela, os terminais suportam uma série de comandos para mover cursor, inserir e apagar caracteres ou linhas onde está o cursor, etc.

Estes comandos são chamados de sequencias de escapes.

Estas sequências foram padronizadas (ANSI).

PG 248

Page 66: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6666

(5.6) Software de Saída (2)(5.6) Software de Saída (2)

As seqüências de escapes ANSI aceitas pelo driver do terminal na saída

ESC é o caractere de escape ASCII (0x1B) e n,m, e s são parâmetros numéricos opcionais.

Exemplo: ESC [3;1H move o cursor para a posição (3,1)

PG 248

Page 67: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6767

(5.6) (5.6) X Windows (1)X Windows (1)

X: Sistema de gerenciamento de janelas portátil e flexível desenvolvido pelo MIT; o UNIX baseia sua interface no X. Pretendia conectar muitos usuários a sistema central.

Há um protocolo que permite comunicação cliente-servidor, independente de estarem na mesma máquina ou ligados pela rede.

Servidor X: no computador do usuário - programa que coleta entrada do teclado e mouse e escreve na tela. Controla a janela atualmente ativa para saber para qual cliente enviar dados. Segue ordens do cliente.

Clientes X: podem executar em máquinas remotas. Recebem do servidor as entradas e enviam comandos para a saída na tela de vídeo.

PG 249

Page 68: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6868

(5.6) (5.6) X Windows (2)X Windows (2)

Xlib: procedimentos de biblioteca primitivos para acessar a funcionalidade do X; Ex: pega um clique de mouse, não double clique.

X-Windows sozinho não é GUI completa

Intrinsics: gerencia botões, barras de rolagem e outros elementos. Motif: fornece interface GUI com aparência uniforme chamada pelo aplicativo.

Gerenciador de janela: Processo separado: cria, remove, movimenta janelas

PG 249

Page 69: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

6969

(5.6) Interfaces Gráficas (1)(5.6) Interfaces Gráficas (1)

PCs usam interface gráfica : GUI – Graphical User Interface.

Um pouco de história: Steve Jobs projetou comp com GUI! Macintosh foi inspiração para Microsoft (MS) que comprou licença para “elementos da interface”. Mais tarde, a Apple processou a MS por exceder a licença e perdeu.

PG 251

Page 70: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7070

(5.6) Interfaces Gráficas (2)(5.6) Interfaces Gráficas (2)

RAM de vídeo armazena as imagens exibidas na tela. A imagem da tela é armazenada no modo:

Caracter : cada byte um caracter a ser mostrado;

Mapa de bits: cada pixel na tela é representado na RAM por um bit por pixel (preto e branco simples) ou 24 bits por pixel (colorido de alta resolução).

Controlador de vídeo: Retira caracteres ou bits da RAM de vídeo e gera os sinais de vídeo empregados para guiar o monitor.

PG 252

Page 71: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7171

(5.6) Software de Saída para Windows (5.6) Software de Saída para Windows A GUI do Windows é muito rica com muitas funções

disponíveis através da API Win32. Elementos da GUI:WIMP – Windows, Icons, Menus, Pointing;

Janela é o item básico: tamanho e posição são determinados por coordenadas em pixels. Origem no vértice superior esquerdo; y aumenta para baixo.

Janela típica do Windows

localizada em (200,100)

PG 252

Page 72: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7272

(5.7) Clientes Magros (Thin clients)(5.7) Clientes Magros (Thin clients)A discussão continua:

Computação centralizada ou descentralizada? Primeiros Computadores: muitos usuários compartilhavam

computador central de grande porte; PCs: Computação descentralizada.

Vantagens e desvantagens em cada modelo:Desvantagens dos PCs: instalar SO em cada um, fazer

manutenção de software e hardware, não permite compartilhamento dos recursos.

Demanda de hoje: computação interativa de alto desempenho sem ter que administrar um computador.

Volta a cena o que chamávamos de terminal burro, agora educadamente se chamam de terminais leves.

PG 257

Page 73: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7373

(5.7) Clientes Magros (Thin clients)(5.7) Clientes Magros (Thin clients)

Idéia: tirar da máquina cliente os programas e utilizá-la como tela, com a computação sendo realizada pelo servidor. O protocolo entre cliente e servidor informa à tela como atualizar a RAM de vídeo.

THINC: exemplo de protocolo para clientes magros; ele só recebe comandos para atualizar a RAM de vídeo.

PG 258

Page 74: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7474

(5.8) Gerenciamento de Energia (1)(5.8) Gerenciamento de Energia (1)Consumo de energia é uma questão importante hoje: Para PCs: Problema ambiental – reduzir consumo

mundial – 100 milhões de comps ligados simultaneamente precisam de 20 usinas nucleares de porte médio;

Para comps. portáteis – baterias não duram muito.

Há 2 abordagens para economizar energia: SO desliga partes do comp. que não estão em uso

(principalmente dispositivos de E/S); Aplicação degrada qualidade para esticar o tempo da

bateria.

PG 259

Page 75: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7575

(5.8) Gerenciamento de Energia (2)(5.8) Gerenciamento de Energia (2)

Para conservar bateria projeta-se CPU, memória, dispositivos de E/S com 4 estados:

1. Ligado2. Dormindo: dispositivo não necessário por curto espaço

de tempo;3. Hibernando: dispositivo não necessário por longo

espaço de tempo;4. Desligado.O SO deve gerenciar as transições no momento correto.

Algoritmos e heurísticas devem ajudá-lo a tomar “boa” decisão.

(Gasta-se mais energia em 3->1 do que em 2->1)

PG 259

Page 76: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7676

(5.8) Gerenciamento de Energia (3)(5.8) Gerenciamento de Energia (3)

Vídeo é o campeão!Os três primeiros da lista são alvos para economia.

Que dispositivos podem ser controlados? Quanto se pode economizar? Quanto consome para reiniciar?

Pesquisa do consumo de energia de várias partes de um laptop

PG 260

Page 77: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7777

(5.9) Gerenciamento de Energia (4)(5.9) Gerenciamento de Energia (4)

Monitor: para mantê-lo nítido a iluminação deve ser reanimada o que demanda energia. Sugestão: utilizar zonas que podem ser ligadas ou desligadas independentemente. Quando janela sobre certas zonas, iluminar apenas aquelas zonas.

(a) Quando o cursor está na janela 2, pode-se escurecer as outras zonas. Economiza-se ¾ da potência da tela. Quando cursor na janela 1, é preciso iluminar 9 zonas

(b) A janela poderia ser transferida para as 4 zonas superiores.

PG 260

Page 78: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7878

(5.8) Gerenciamento de Energia (5)(5.8) Gerenciamento de Energia (5)

Em relação a Disco:

Consome energia para manter-se girando, mesmo que não haja acesso. É possível parar de girar após alguns minutos de atividade. Lembrar que demora para voltar a girar... Poderia se pensar em monitorar o disco para determinar quando fazê-lo parar. Manter cache grande pode ajudar.

Em relação a Memória:

Esvaziar cache e desligar cache, implica colocar memória em dormência pois recarga seria rápida; esvaziar memória principal (salvando em disco) e desligá-la, implica em hibernar a memória. Obs: Desligar mem. implica em desligar CPU. Pode valer a pena em certos períodos de tempo, pois reiniciá-la seria mais rápido que recarregar SO.

PG 261

Page 79: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

7979

(5.8) Gerenciamento de Energia (6)(5.8) Gerenciamento de Energia (6)

(a) Execução em velocidade máxima do relógio(b) Cortando a voltagem pela metade (por software!)

corta a velocidade do relógio também pela metade, consumo de energia cai para 4 vezes menos

Considerar ainda comunicação sem fio, gerenciamento térmico, gerenciamento da bateria: baterias inteligentes conversam com o SO; comps com várias baterias. Em relação a CPU:

PG 262

Page 80: 1 Entrada/Saída Objetivo Uma das funções principais do SO é controlar os dispositivos de E/S: emite comandos para dispositivos, intercepta interrupções,

8080

(5.8) Gerenciamento de Energia (7)(5.8) Gerenciamento de Energia (7)

SO poderia em algumas circunstâncias reduzir a velocidade da CPU para economizar energia.

Dizer aos programas para usar menos energia– pode significar experiências mais pobres para o usuário

porém duração da bateria por um tempo maior. Experimentos realizados e medidos

– Programa reprodutor de vídeo: muda de saída colorida para preto e branco; menos resolução. Chegou a economizar 30% de energia.

– Programa reconhecedor de voz: reduz vocabulário (Economia de 35%).

– Menos resolução em imagem JPG (9% de economia).Cada programa pode usar a sua heurística para economizar en.

PG 263