Você está na página 1de 38

11/10/11

Captulo 3 Entrada/Sada
3.1 Princpios do hardware de E/S 3.2 Princpios do software de E/S 3.3 Camadas do software de E/S 3.4 Impasses 3.5 Discos 3.6 Terminais com base em caracteres

Pearson Education

Sistemas Operacionais Modernos 2 Edio

Introduo
O controle da E/S uma das tarefas centrais de um sistema operacional, que: emite comandos para os controladores de dispositivo, processa interrupes e trata de erros esconde detalhes especficos dos diferentes dispoitivos para o resto do S.O. atravs de uma interface uniforme tenta paralelizar E/S e processamento da CPU/Memria para minimizar latncia e maximizar vazo do acesso aos dispositivos de E/S controla o acesso concorrente dos dispositivos O sub-sistema de E/S consiste de duas camadas: Software independente dos dispositivos (para cada classe de dispositivo) Software dependente do dispositivo (drivers)
Pearson Education Sistemas Operacionais Modernos 2 Edio 2

11/10/11

Tipos de Dispositivo
O Hardware de um dispositivo de E/S definido por:
Conjunto de comandos bsicos disponibilizados As funes que executa As mensagens de status/erro que emite

Essencialmente, existem dois tipos de dispositivo: Dispositivos de bloco = transferem ou armazenam dados em blocos de tamanho fixo, cada bloco possui um endereo e cada bloco pode ser acessado independentemente. Exemplos: HD, Floppydisk, CD-ROM, DVD Dispositivos de Caractere = envia ou aceita um fluxo de caracteres. Cada caractere no possui endereo e no pode ser acessado individualmente. Para cada caractere (ou conjunto pequeno deles), gerada uma interrupo. Exemplos: Teclado, Mouse, Interface de rede, etc. Obs: Esta classificao apenas geral: nem todo dispositivo de E/S se enquadra exatamente em uma das 2 categorias. Por exemplo: Fitas de backup, Relgio, Vdeo mapeado em memria, etc.
Pearson Education Sistemas Operacionais Modernos 2 Edio

Categorias de Dispositivos Outra classicao "


Para Interao Homem-Computador
Teclado, mouse, Display Impressoras

Para armazenamento e processamento interno


Discos Pen-drives Sensores Controladores Atuadores

Para comunicao remota


Interfaces de rede (Ethernet, 802.11, BlueTooth, ) Modems
Pearson Education Sistemas Operacionais Modernos 2 Edio

11/10/11

Controladores de Dispositivos
Componentes de dispositivos de E/S
Componente eletro-mecnico (motor, engrenagem, cabeote, sensores, etc.) Circuito integrado (= controlador do dispositivo)

A interface de hardware (pinos) entre o controlador e a componente mecnica padronizada (ISO, SCSI, IDE) Um controlador pode fazer o controle agregado de vrios dispositivos (componentes eletro-mecnicas) Tarefas do controlador
converter fluxo serial de bits em conjuntos de bytes Verificao e correo de erros Bufferizao: agrupar bloco de bytes para transferncia para a memria principal

Do ponto de vista conceitual, o controlador o dispositivo de E/S.


Pearson Education Sistemas Operacionais Modernos 2 Edio

Arquitetura Conceitual
Conceitualmente, como se houvesse conexo direta entre CPU/Memria e os controladores

Em arquiteturas reais, existem vrios barramentos e processadores dedicados para tirar a carga da CPU principal e servir de ponte entre os barramentos

Pearson Education

Sistemas Operacionais Modernos 2 Edio

11/10/11

Arquitetura Real

Arquitetura de um Pentium
Pearson Education Sistemas Operacionais Modernos 2 Edio 8

Controladores de Dispositivos
Cada controlador possui alguns registradores que so usados para fazer o controle da E/S (da parte eletro-mecnica) e para emitir informaes sobre status e condies de erro (Estes registradores so chamados portas de E/S) Em algumas arquiteturas, o espao de endereamento da memria RAM e desses registradores nico (E/S mapeada em memria) Exemplo: Motorola 680x0 Em outras arquiteturas, existe um espao de endereamento especfico para E/S (fora da RAM), usado apenas pelos controladores. A associao de um endereo de porta de E/S para um controlador feita na interface componente-barramento pelo circuito de decodificao de endereos do barramento.

Pearson Education

Sistemas Operacionais Modernos 2 Edio

11/10/11

E/S mapeada na memria

(a) Espaos de memria e E/S separados X (b) E/S mapeada na memria X (c ) Hbrido

(a) Barramento nico X (b) Barramento separado


Pearson Education Sistemas Operacionais Modernos 2 Edio 10

Interao CPU-Controlador
Funcionamento bsico: Driver escreve comandos e parmetros nas portas de E/S (Por exemplo, instrues assembly IN Reg,Port, e OUT Reg,Port Controladores ativam interrupes (e.g. IRQ = Interrupt ReQuest line), avisando quando seus registradores podem ser lidos/escritos ou quando a E/S foi finalizada O chip de controle de interrupes converte o IRQ para um ndice do vetor de interrupo.

Pearson Education

Sistemas Operacionais Modernos 2 Edio

11

11/10/11

Interrupes de Hardware

Bus

Obs: Conexo entre dispositivos e controlador de interrupes usam linhas de interrupo nos barramentos (em vez de cabos dedicados) Tecnologia PlugnPlay: Ao se conectar um dispositivo de E/S na placa me, a BIOS automaticamente atribui um IRQ livre para o dispositivo (Exemplo: Pentium PCs possuem 15 IRQs.)
Pearson Education Sistemas Operacionais Modernos 2 Edio

12

Passos de uma E/S de bloco controlada por CPU


1. CPU escreve comando (p.ex., ler bloco de endereo E) em registrador do controlador de disco 2. Controlador aciona a componente eletro-mecnica, e transfere os dados bit-a-bit do disco para um buffer do controlador 3. Controlador calcula checksum para verificar se h dados corrompidos. Se houver, faz nova leitura. 4. Quando bloco de dados foi completamente lido, controlador levanta uma interrupo 5. Driver executa loop para copiar byte-by-byte o bloco do controlador para a memria principal

Pearson Education

Sistemas Operacionais Modernos 2 Edio

13

11/10/11

Direct Memory Access (DMA)


Em vrias arquiteturas existe um componente de HW dedicado transferncia direta de blocos de dados para a memria - Direct Memory Access (DMA): Evita que a CPU tenha que executar o loop para transferncia do bloco de/para a memria principal. CPU apenas inicia E/S informando: endereo inicial na memria, endereo do bloco no disco, nmero de a serem transferidos.

Pearson Education

Sistemas Operacionais Modernos 2 Edio

15

Acesso Direto Memria (DMA)

Operao de uma transferncia com DMA


Pearson Education Sistemas Operacionais Modernos 2 Edio 17

11/10/11

Configuraes de uso de DMA

Pearson Education

Sistemas Operacionais Modernos 2 Edio

Saida (Escrita em Impressora)

Passos da impresso de uma cadeia de caracteres


Pearson Education Sistemas Operacionais Modernos 2 Edio 20

11/10/11

E/S Programada

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


Pearson Education Sistemas Operacionais Modernos 2 Edio 21

E/S Orientada Interrupo

Escrita de uma cadeia de caracteres para a impressora usando E/S orientada interrupo
a) Cdigo executado quando feita a chamada ao sistema para impresso b) Rotina de tratamento de interrupo
Pearson Education Sistemas Operacionais Modernos 2 Edio 22

11/10/11

E/S Usando DMA

Impresso de uma cadeia de caracteres usando DMA


a) Cdigo executado quando quando feita a chamada ao sistema para impresso b) Rotina de tratamento de interrupo
Pearson Education Sistemas Operacionais Modernos 2 Edio 23

Princpios do Software de E/S Objetivos do Software de E/S (1)


Independncia de dispositivo
Programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (disquete, disco rgido ou CD-ROM)

Nomeao uniforme
Nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um nmero inteiro que independente do dispositivo

Tratamento de erro
Trata o mais prximo possvel do hardware
Pearson Education Sistemas Operacionais Modernos 2 Edio 25

10

11/10/11

Objetivos do Software de E/S (2)


Transferncias Sncronas vs. Assncronas
transferncias bloqueantes vs. orientadas a interrupo utilizao de buffers para armazenamento temporrio dados provenientes de um dispositivo muitas vezes no podem ser armazenados diretamente em seu destino final

Gerenciar o acesso concorrente (e otimizado) a dispositivos compartilhados


Disco, monitor, rede so disp. E/S compartilhados unidades de fita no so
Pearson Education Sistemas Operacionais Modernos 2 Edio 26

Camadas do Software de E/S

Camadas do sistema de software de E/S


Pearson Education Sistemas Operacionais Modernos 2 Edio 27

11

11/10/11

Modelo de Operao de I/O

Pearson Education

Sistemas Operacionais Modernos 2 Edio

Drivers de Dispositivo
Driver de dispositivo esconde as especifcidades dos controladores do restante do subsistema de E/S Muitas vezes, escritos em assembly Dispositivos de E/S podem variar em vrios aspectos
Orientados a bloco X orientados a caracteres Acesso Sequencial ou aleatrio Uso concorrente ou dedicado Taxa de transferncia de dados Leitura-escrita, s leitura, s escrita

Chamadas de sistema para E/S refletem o comportamento em categorias gerais Para dispositivo de bloco
read(), write(), seek(),

Para dispositivos de caraceteres


get(), put()
Pearson Education Sistemas Operacionais Modernos 2 Edio 31

12

11/10/11

Drivers dos Dispositivos

A comunicao entre os drivers e os controladores de dispositivos feita por meio do barramento Drivers escrevem e lm as portas de E/S (comandos especficos, variveis de controle e estado do dispositivo) Pearson Education Sistemas Operacionais Modernos 2 Edio

32

Drivers de Dispositivo
Caractersticas/Tarefas dos Drivers:
Cdigo para controle bsico do controlador do dispositivo Para alguns dispositivos mantm uma fila de requisies pendentes Trata requisies concorrentes (por vrios processos) Para dispositivos de bloco traduz requisies lgicas (leia bloco x) em comandos especficos (p.exemplo: mova para cilindro 3; leia a transfira dados dos setores 34-35 em trilha 6) Espera a chegada de interrupo, verifica integridade dos dados e transfere dados para uma regio de memria
Pearson Education Sistemas Operacionais Modernos 2 Edio 33

13

11/10/11

Algoritmos de Escalonamento de Acesso ao Disco


O Tempo necessrio para ler ou escrever um bloco de disco dominado pelo tempo de posicionamento (seek time) A fim de minimizar o tempo de posicionamento para vrias requisies, o driver deve escalonar as mesmas de acordo com a trilha alvo. A verificao do cdigo de redundncia (bits de paridade) feita por controladores
34

Pearson Education

Sistemas Operacionais Modernos 2 Edio

Algoritmos de Escalonamento de Disco


1) First-Come-First Served (FCFS): no h como otimizar tempo de posicionamento (seek time). 2) Algoritmo Primeiro-Mais-Prximo (Shortest Seek First) :
Usa tabela indexada por cilindro com lista de pedidos para cada cilindro Enquanto move o cabeote para um cilindro, novos pedidos vo chegando Escolhe sempre o pedido para o cilindro mais prximo do corrente Atende todos os pedidos para o cilindro corrente
Ordem de Chegada: 11 1 36 16 34 9 12
Pearson Education

Posio " inicial

Pedidos" pendentes

Sequncia de posicionamentos

Sistemas Operacionais Modernos 2 Edio

35

14

11/10/11

Algoritmos de Escalonamento de Disco


Principal problema do Shortes Seek First: Assumindo uma distribuio uniforme dos pedidos em todas as trilhas, ento: Para discos muito utilizados, o cabeote tender a permanecer nos cilindros do meio, e mover-se com menor probabilidade para os cilindros nos extremos. Portanto, dados gravados em cilindros extremos levaro mais tempo para serem acessados do que dados em cilindros do meio.
PB Posio atual PA PA > PB

Disco

Pearson Education

Sistemas Operacionais Modernos 2 Edio

36

Algoritmos de Escalonamento de Disco


Algoritmo do elevador:
Manter o sentido da movimentao at que no haja mais pedidos para acesso em cilindros a diante No sentido de movimentao, atende primeiro os cilindros mais prximos Um flag (UP/DOWN) registra o sentido de movimentao.
Ordem chegada: 11 1 36 16 34 9 12

Sequncia de posicionamentos

Pearson Education

Sistemas Operacionais Modernos 2 Edio

37

15

11/10/11

Algoritmo do Elevador
Variantes:
Mover o cabeote somente at o cilindro mais afastado para o qual exista uma requisio
Vantagem: ganha-se eficincia no atendimento global das requisies

Mover o cabeote at o cilindro mais afastado, independente de haver requisio


Vantagem: garante-se um tempo mdio igual de atendimento para requisies nos cilindros centrais e extremos do disco Desvantagem: se nunca houve escritas em cilindros alm dos limites, improvvel que aconteam requisies para l.

Guardar quais foram os cilindros mais extremos usados at ento (cilmin, cilmax), e fazer a varredura dentro desse intervalo.
Pearson Education Sistemas Operacionais Modernos 2 Edio

Software de E/S Independente de Dispositivo


Implementa funes comuns a todos as formas de E/S e fornece uma interface uniforme para as aplicaes. Funes tpicas do software de E/S independente de dipositivo API uniforme para os drivers dos dispositivos Armazenamento em buffer Relatrio dos erros Alocao e liberao de dispositivos dedicados Define tamanho de bloco nico, independente de dispositivo
Pearson Education Sistemas Operacionais Modernos 2 Edio 39

16

11/10/11

API e nomes uniformes


Com uma API pardo para drivers mais fcil instalar novos drivers Referncia uniforme de arquivos e dispositivos facilita o uso:
Nomes simblicos de dispositivos so mapeados para o driver correspondente i-node de /dev/disk0 contm: Numero principal do dispositivo = localizao do driver Numero secundrio do disp. = a unidade de disco (parmetro do driver)

Bits de rwx controle de acesso tambm definem as permisses de acesso ao dispositivo


Pearson Education Sistemas Operacionais Modernos 2 Edio 40

Software Independente do Dispositivo


Principais Funes: Exemplos:
get(), put() Mapeamento de nomes simblicos para os drivers correspondentes (/dev/tty00) . Permisses para acesso aos dispositivos por progrmas em espao usurio. Mapeamento de tamanho de bloco nico para tamanhos de setores variados em discos diferentes. Transferncia controlada de bytes do disco para interface de rede, compensando diferentes taxas de dados de cada dispositivo Gerenciamento de blocos livres nos dispositivos de bloco (discos) Funes para a alocao e liberao de certos dispositivos (p.ex. fita magntica) Se erro no pode ser compensado/contornado pelo driver, deve informar ao programa do usurio e evitar a sua futura ocorrncia (marcando blocos com problema)
Pearson Education Sistemas Operacionais Modernos 2 Edio 41

17

11/10/11

Bufferizao: para compensar taxas de transferncia para impedir acesso direto

Software de E/S Independente de Dispositivo

a) b) c)

Entrada sem utilizao de buffer Utilizao de buffer no espao do usurio Utilizao de buffer no ncleo seguido de cpia para o espao do usurio d) Utilizao de buffer duplo no ncleo Obs: s c) e d) permitem multiprogramao!
Pearson Education

Sistemas Operacionais Modernos 2 Edio

43

Buffer Circular
a generalizao do buffer duplo Torna a taxa de E/S independente da taxa de consumo dos dados pelo processo destinatrio Usado para fazer a busca antecipada de blocos (provvel necessidade de blocos vizinhos) Permite atender requisies de leitura de vrios processos

Pearson Education

Sistemas Operacionais Modernos 2 Edio

44

18

11/10/11

E/S com buffers


Block-oriented
Processo pode processar um bloco enquanto o outro est sendo lido para memria Buffers ficam residentes em RAM (sem swapping) Subsistema de E/S mantm registro da associao entre buffers e processos do usurio envolvidos na E/S

Stream-oriented
Uma linha lida/escrita de cada vez (com CRCarriage return) sinalizando fim da linha Os caracteres no buffer podem ser pr processados antes de serem entregues para o processo
Pearson Education Sistemas Operacionais Modernos 2 Edio

Software de E/S no Espao do Usurio


So processos (daemons) responsveis por efetuar a E/S Exemplos:
lpd - spool de arquivos para a impresso inetd, ftpd, rshd, httpd, dhcpd - processos que tratam E/S com a rede

Pearson Education

Sistemas Operacionais Modernos 2 Edio

47

19

11/10/11

Impasses (Deadlocks)
Em vrias situaes o sistema operacional (ou um programa do usurio) precisa ter acesso exclusivo a mais de um recurso ou dispositivo. Por exemplo: cpia direta de dados entre dois dispositivos Impasses podem ocorrer para qualquer tipo de recurso: dispositivo de E/S (impressora, regio em disco, interface de rede) ou uma bases de dados Exemplo em Banco de Dados:
Processo A faz lock em registro R1, e B faz lock em registro R2. Quando A tenta adquirir R2, bloqueado, e no libera R1. Assim, B pode ficar bloqueado tambm

Recurso:: qualquer coisa que pode ser usada por um nico processo a cada vez. Um sistema geralmente tem vrios tipos de recurso, e talvez vrias instncias de cada tipo. Cada instncia poder ser usada por um nico processo. Pearson Education Sistemas Operacionais Modernos 2 Edio

48

Impasses
Recurso preemptivo:: que pode ser tirado do processo que o est usando sem causar problemas Exemplo de recurso: memria principal
Processo pode ser swapped out

Recurso no-preemptivo:: no pode ser tirado do processo que o est usando sem causar uma falha no processamento falha e inconsistencia no estado do recurso Exemplo de recursos: impressora ou fita Impasses s ocorrem com recursos no-preemptivos! Potenciais impasses com recursos preemtiveis podem ser resolvidos realocando o recurso de um processo para outro. Sequncia de aes executadas por cada processo: (Requisita recurso; Usa recurso; Libera recurso) A requisio bloqueia enquanto o recurso est em uso por outro processo.
Pearson Education Sistemas Operacionais Modernos 2 Edio 49

20

11/10/11

Impasses
Definio: Se todos os processos de um conjunto esto esperando por um evento (de liberao) que somente outro processo do mesmo conjunto pode fazer. Isso nunca ocorrer. Quatro condies so necessrias para existncia de um impasse: 1. Excluso Mtua: cada recurso atribuda a um nico processo, ou ento est disponvel; 2. Condio segura&pede: O processo que detentor de um recurso pode solicitar novos recursos. 3. Impossibilidade de preempo: somente o processo de posse do recurso pode liber-lo; 4. Espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um esperando por recursos sendo mantidos por outro processo;

Pearson Education

Sistemas Operacionais Modernos 2 Edio

50

Modelando Impasses
Essas 4 condies podem ser modeladas usando um grafo direcionado de recursos (e processos)

Impasse se houver um ciclo no grafo!


Grafos de Recursos podem seu usados para verificar se uma certa sequncia de requisies de recursos leva a um impasse: Execute as requises passo-a-passo e verifique se em algum momento forma-se um ciclo.
Pearson Education Sistemas Operacionais Modernos 2 Edio

51

21

11/10/11

A ordem de alocao de recursos faz toda a diferena!

Exemplo

Se existe possibilidade de ocorrncia de impasse o S.O. precisa criar um escalonamento seguro de processos, i.e. suspender temporariamente um processo. No exemplo: executar primeiro A e C, depois B. Pearson Education Sistemas Operacionais Modernos 2 Edio

52

Estratgias para lidar com impasses


1. Ignore o problema e tora para que no ocorra
Abordagem prtica de engenharia Avalie bem: probabilidade vs impacto negativo vs custo de implementao A maioria dos Sistemas Operacionais (incl. Unix/Minix) seguem essa abordagem A cada alocao de recurso (ou periodicamente) verifique o Grafo de Recursos; se houver um ciclo, termine um dos processos (e desfaa seus efeitos colaterais) evite qualquer uma das 4 condies necessrias.

2. Deteco e Recuperao

3. Preveno

4. Alocao segura de recursos


Pearson Education Sistemas Operacionais Modernos 2 Edio 53

22

11/10/11

Preveno de Impasses
Idia: impor restries adequadas sobre os processos para evitar ocorrncia de qualquer uma das 4 condies necessrias: 1. 2. 3. 4. Excluso Mtua: cada recurso atribuda a um nico processo, ou ento est disponvel; Condio segura&pede: O processo que detentor de um recurso pode solicitar novos recursos. Impossibilidade de preempo: somente o processo de posse do recurso pode liber-lo; Espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um esperando por recursos sendo mantidos por outro processo;

Vejamos mtodos para(evitar) cada condio...

Pearson Education

Sistemas Operacionais Modernos 2 Edio

54

Preveno de Impasses
1. Evitar excluso mtua:
Concentre alocao em nico processo (coordenador), e.g. spooler ...mas nem todos os recursos podem ser gerenciados dessa forma Exemplo: se spooler tambm usa espao em disco: se comea a imprimir job1 antes de ter todos os dados em disco, um job de impresso (job2) pode ocupar todo o espao restante do disco e evitar que job1 termine

2.

Evitar condio Segura&Pede:


Alternativa 1: Faa com que cada processo requisite todos os recursos antes de comear. Mas isso gera problemas: Pode ser impossvel conhecer de antemo todos os processos que sero usados. Alocao de recursos no ser eficiente: recursos sero bloqueados (lock) mesmo enquanto o processo estiver acessando outros recursos Alternativa 2: Se um processo quer requisitar um novo recurso, precisa antes liberar temporariamente (e re-adquirir posse) de todos os recursos que detm Problema: muito provvel que todos processos sero sempre interrompidos (aumenta a sobrecarga)

Pearson Education

Sistemas Operacionais Modernos 2 Edio

55

23

11/10/11

Preveno de Impasses
3. 4. Evite no-preempo:
Todos os recursos teriam que ser preemptivos, mas isso impossvel (p.ex. Impressora, fita backup)

Eliminar condio de espera circular de alguma forma:


Alternativa 1: garanta que cada processo mantenha um nico recurso a cada momento (geralmente, inaceitvel) Alternativa 2: defina uma ordem global dos recursos e garanta que todas as requisies so sempre feitas seguindo essa ordem. Ciclo evitado pois se ij ento: se A mantm Ri no ir requisitar Rj, ou se B mantm Rj no ir requisitar Pi.

Variante: Em vez de impor uma ordem estrita de requisies garanta que nenhum processo requisite um recurso com no. maior do que um recurso que j possui. Problema: O nmero de recursos em potencialmente requisitados pode no ser desconhecido de antemo, impossibilitando uma ordenao
Pearson Education Sistemas Operacionais Modernos 2 Edio 56

Preveno de Impasses
Resumo das abordagens:
Abordagem Coordene alocao Requisite todos Rs incialmente Desaloque recursos Alocao ordenada de Rs

Pearson Education

Sistemas Operacionais Modernos 2 Edio

57

24

11/10/11

Alocao segura de recursos (Deadlock Avoidance)


O Algoritmo do Banqueiro (Dijkstra,65) determina uma alocao segura de recursos de forma que impasses nunca iro ocorrer. Idia princial:
Mantenha sempre suficientes recursos (estado seguro) de maneira que sempre exista um processo que possa alocar todos os recursos que precisa e assim possa terminar

Estado seguro:: um estado de alocao de recursos tal que exista uma sequncia de estados futuros de alocao dos recursos (e finalizao dos processos) que garanta que todos os processos em algum momento obtero todos os recursos necessrios e terminaro. Premissa:
Existe conhecimento prvio do conjunto mximo de recursos necessrios para cada processo
Pearson Education Sistemas Operacionais Modernos 2 Edio 58

Algoritmo do Banqueiro
(...deveria ser adotado pelo sistema financeiro!)
Caso para 1 tipo de recurso (por exemplo, $$): Um banco de uma pequena cidade d crdito a fazendeiros at um limite mximo; clientes sacam o dinheiro medida que precisam dele; o banco precisa garantir que sempre h suficiente dinheiro disponvel face os crditos concedidos. Exemplo: Banco tem um total de 10 unidades (p.ex. R$ 10 milhes) para todos os seus clientes.

Pearson Education

Sistemas Operacionais Modernos 2 Edio

59

25

11/10/11

Algoritmo do Banqueiro
Recursos com vrios tipos
Usa duas matrizes e 3 vetores: E: total de instncias de cada tipo de recurso P: quantidades alocadas de cada tipo de recurso A: quantidades disponveis de cada tipo de recurso

Pearson Education

Sistemas Operacionais Modernos 2 Edio

60

Algoritmo do Banqueiro
Verificao se uma nova requisio de recursos (equivale a pedido de emprstimo) vai levar a um estado seguro: 1. Procure por processo P (linha da matriz direita) cuja demanda restante de recursos menor do que A. Se no existe tal processo, ento sistema pode gerar em impasse; 2. Seno, assuma que P terminou (marque-o), e adicione o nmero mximos de recursos de P ao vetor A. 3. Repita passos 1 e 2 at que todos os processos foram marcados como terminados, ou ento verificou-se que estado no seguro requisio no deve ser atendida.
Pearson Education Sistemas Operacionais Modernos 2 Edio 61

26

11/10/11

Algoritmo do Banqueiro
Trata-se de um trabalho terico interessante ... Mas raramente aplicado, de fato na prtica. Principais problemas:
Impossibilidade de conhecer de antemo as quantidades mximas de recursos necessrios para cada processo; Conjunto dos processos no fixo O conjunto de recursos dinmico (incl. falhas)

Existem abordagens mais pragmticas para a Preveno de Impasses (p.ex. Bloqueio em 2 fases, principalmente para bancos de dados)
Processo tenta bloquear todos os registros que precisa (fase 1) de uma vez. Se um dos registros j est bloqueado, processo aborta tentativa e tenta novamente mais tarde Se tiver sucesso, faz os acessos e libera todos os registros simultaneamente (phase 2).
Pearson Education Sistemas Operacionais Modernos 2 Edio 62

Estrutura do Disco
Cilindro: coleo de N trilhas (uma em cada superfcie de disco) Trilha: uma circunferncia de raio T completa em uma superfcie de disco; contm nmero varivel de setores (8-32 em floppies, milhares em HD) Setor: uma parte de uma trilha (com nmero fixo de bytes) O tempo de acesso a um setor depende essencialmente do tempo de posicionamento do pente de leitores at o cilindro correspondente e da velocidade de rotao do disco.
trilha Disco1 Disco 2 Disco 3 setor cilindro

Pearson Education

Sistemas Operacionais Modernos 2 Edio

63

27

11/10/11

Hardware do Disco (2)

Geometria fsica de um disco com duas regies Uma possvel geometria virtual para esse disco
Pearson Education Sistemas Operacionais Modernos 2 Edio 65

O cabeote precisa ser posicionado na trilha, no incio do setor alvo. Isso envolve: Tempo de posicionamento (Seek time)
Tempo para posicionar o cabeote na trilha

Parametros de Desempenho de acesso ao Disco

Latncia rotacional
Tempo necessrio para que o incio do setor aparea abaixo do cabeote

Pearson Education

Sistemas Operacionais Modernos 2 Edio

28

11/10/11

Parametros de Desempenho de acesso ao Disco


Tempo de acesso
Seek time + latncia rotacional

De fato, o tempo de posicionamento o que domina os demais Transferncia dos dados ocorre enquanto o setor passa de baixo do cabeote
Pearson Education Sistemas Operacionais Modernos 2 Edio

Formatao de Disco

Disposio dos setores em uma trilha: a) Sem entrelaamento b) Entrelaamento simples c) Entrelaamento duplo Vantagem: (b) e (c) evitam gargalos de buffers em acessos de setores consecutivosOperacionais Modernos 2 Edio Pearson Education Sistemas

74

29

11/10/11

Tratamento de Erro

a) Uma trilha de disco com um setor defeituoso b) Substituindo um setor reserva por um setor defeituoso c) Deslocando todos os setores para pular o setor defeituoso
Pearson Education Sistemas Operacionais Modernos 2 Edio 75

Redundncia de Disco

RAIDs nveis 0 a 2 Discos de segurana e de paridade so os sombreados


Pearson Education Sistemas Operacionais Modernos 2 Edio 76

30

11/10/11

Redundncia de Disco

RAIDs nveis 3 a 5 Discos de segurana e de paridade so os sombreados


Pearson Education Sistemas Operacionais Modernos 2 Edio 77

E/S Orientada a caracteres


As requisies so para obteno (ou escrita) caracter a caracter (e.g. puc(c), get (c)) Para compensar diferentes taxas de produo e consumo de caracteres, utiliza-se buffers Vrios caracteres possuem um significado especial (caracteres de controle), que precisam ser interpretados ou gerados Para alguns dispositivos, esses caracteres devem ser interpretados/ gerados nos buffers, antes de serem enviados serem consumidos.
Pearson Education Sistemas Operacionais Modernos 2 Edio 84

31

11/10/11

E/S Orientada a caracteres


buffers Produtor de caracteres Cosmumidor de caracteres

Caracter = byte codificando um evento/comando de E/S Exemplos de pares Produtor/Consumidor: Entrada: (teclado/ programa_usurio), (interface_rede/ programa_usurio) Sada: (Programa_usurio, monitor) (Programa _usurio, interface_rede)
Pearson Education Sistemas Operacionais Modernos 2 Edio 85

Funcionamento de uma entrada de dados de um teclado


Controlador gera uma interrupo para avisar que tecla foi lida Driver copia um nmero (cdigo de tecla pressionada/solta) da controladora para buffer interno
driver converte para caracteres para cdigo ASCII muitos SOs fornecem mapas de teclas ou pginas de cdigos carregveis

Ncleo recebe uma requisio de leitura de um processo, e repassa para driver


Pearson Education Sistemas Operacionais Modernos 2 Edio 86

32

11/10/11

Etapas da Leitura de uma tecla

Pearson Education

Sistemas Operacionais Modernos 2 Edio

Software de Entrada
Processamento de caracteres Usurio digita hellao Teclado gera: hella_o Processo recebe: hello Modo cr (raw mode) Driver entrega todos os caracteres para o processo (incl. teclas ctrl, alt, f1-f10, alt, shift,) Sem modificaes, sem eco (=mostrar o caracter digitado) Alguns programas usurios exigem: vi, emacs, password entry Modo cozido (cooked mode) Driver faz o eco e o processamento de caracteres especiais. Posix padroniza o efeito de teclas especiais o modo cannico (default)
Pearson Education Sistemas Operacionais Modernos 2 Edio

33

11/10/11

Software de Entrada

Caracteres tratados de forma especial no modo cannico


Pearson Education Sistemas Operacionais Modernos 2 Edio 89

Modo Cozido
Driver precisa... Bufferizar uma linha inteira antes de passa-la para o processo Processar caracteres de controle especiais
Control-C, Backspace, Del, line-erase, Tab, shift

Ecoar o caracter digitado Nova linha pode ser digitada em paralelo com o processamento de linha anterior
Para isso, precisa de buffers internos

Abordagem1 (para computadores com muitos terminais) Manter um pool de buffers a serem usados por demanda Abordagem 2 (para computadores com 1 usurio) Manter um buffer por terminal ((e.g., 500 bytes)

Pearson Education

Sistemas Operacionais Modernos 2 Edio

34

11/10/11

Software de Entrada
Buffers no Driver de terminal

a) Conjunto central de buffers b) Buffer dedicado para cada terminal


Pearson Education Sistemas Operacionais Modernos 2 Edio 91

Entrada e Sada de Terminais


echo de caracteres no monitor
read(mode,buff,1)
Raw/cooked Echo (Y/N)

controllers

Driver echo keyboard

Driver monitor
ESC seq.

Interrupts and key numbers

Pearson Education

Sistemas Operacionais Modernos 2 Edio

35

11/10/11

Saida para um terminal


O terminal aceita sequencias de escape (escape sequence), que embutem controles especiais ESCAPE:
0x1B

Exemplo: esc [ 3 ; 1 H esc [ 0 K esc [ 1 M V p/ posio (3,1) Da tela Apague a Suba linhas seguintes linha em 1 linha

Cada fabricante de terminal define sequencias ligeiramente diferentes Dificulta fazer software independente do dispositivo Unix usa arquivo termcap
uma base de dados que gera as sequencias de escape para cada fabricante.
Pearson Education Sistemas Operacionais Modernos 2 Edio

Papel do termcap
Fazer a traduo de comandos genricos de sada para sequncias de escape especficas para o tipo de terminal sendo usado.

Pearson Education

Sistemas Operacionais Modernos 2 Edio

36

11/10/11

Software de Sada

Seqncias de escapes ANSI so usadas para controlar navegao e edio em editores de texto reconhecidas pelo driver do terminal ESC o caractere de escape ASCII (0x1B) n,m, e s so parmetros numricos opcionais
Pearson Education Sistemas Operacionais Modernos 2 Edio 98

Hardware de Vdeo (1)

Vdeos mapeados na memria driver escreve diretamente na RAM de vdeo do monitor


Pearson Education Sistemas Operacionais Modernos 2 Edio 99

37

11/10/11

Hardware de Vdeo (2)

Uma imagem da RAM de vdeo


tela monocromtica simples modo caractere

Tela correspondente
os xs so bytes de atributos
Pearson Education Sistemas Operacionais Modernos 2 Edio 100

Terminais de rede
X Windows (1)

Clientes e servidores no sistema X Windows do MIT


Pearson Education Sistemas Operacionais Modernos 2 Edio 107

38