• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sd02 (si)   gerenciamento de entrada e saída
 

Sd02 (si) gerenciamento de entrada e saída

on

  • 344 views

 

Statistics

Views

Total Views
344
Views on SlideShare
263
Embed Views
81

Actions

Likes
1
Downloads
4
Comments
0

2 Embeds 81

http://www.computacaodepressao.com.br 79
http://digg.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sd02 (si)   gerenciamento de entrada e saída Sd02 (si) gerenciamento de entrada e saída Presentation Transcript

    • Sistemas DistribuídosParte 2Gerenciamento de Entrada e SaídaProfessor Eduardo Xavier
    • Objetivos do controle de E/S• Emitir comandos para os dispositivos– Na maioria das vezes, os programas e o próprio SOenxergam os dispositivos de uma forma que não é a suareal interface. Por exemplo:– Discos são vistos como blocos de bytes, em vez detrilhas e cilindros.– Partições lógicas em um mesmo disco são vistascomo discos fisicamente diferentes• Atender interrupções– Sempre que uma operação de I/O (Input/Output)termina, é preciso informar ao SO que o processo quesolicitou a operação já pode ser desbloqueado. Isso éfeito por meio de uma “interrupção”.Professor Eduardo Xavier
    • Objetivos do controle de E/S (cont.)• Manipular erros– Se ocorre algum problema em uma operação de I/O, épreciso que o erro seja tratado. O tratamento do errogeralmente se processa de duas formas:– Definir um curso de ação para fazer com que aoperação de I/O seja processada corretamente(exemplo: repetir a operação)– Gerar uma mensagem de erro que seráencaminhada para o SO (ou para quem solicitou oI/O)Professor Eduardo Xavier
    • Diversas formas de “ver” o hardware• Dependendo do ponto de vista de cada indivíduo, o hardwarepode ser encarado de uma maneira diferente– Programadores de aplicações enxergam cada dispositivoda forma como suas aplicações devem manipular os dados– Projetistas de SO visualizam a forma como cada dispositivovai interagir com o sistema operacional– Projetistas de hardware focalizam sua atenção emconsumo de energia e trocas de sinais elétricos entre cadadispositivo e o restante do hardware do computador• Nesta parte da disciplina vamos concentra nossa atenção emcomo o HW é programado e manipulado pelo sistemaoperacional, sem se preocupar com funciona interno.Professor Eduardo Xavier
    • Dispositivos de Entrada/Saída• Podemos classificar os dispositivos de I/O emtrês categorias:1. Dispositivos organizados em BLOCOS2. Dispositivos organizados em CARACTERES3. Dispositivos organizados de outra formaProfessor Eduardo Xavier
    • Dispositivos de Entrada/Saída• Categoria 1: Dispositivos de BLOCO• Neste tipo de dispositivo as informações sãoarmazenadas e transmitidas em blocos de tamanhofixo e cada bloco tem um endereço próprio quepermite sua localização.• Normalmente, o tamanho do bloco varia entre 128 e4096 bytes (mas não se trata de uma restrição e simde um padrão normalmente adotado pela indústria)• É possível ler ou escrever cada blocoindependentemente do outro a qualquer instante• Exemplo de dispositivo organizado em blocos:– Discos magnéticosProfessor Eduardo Xavier
    • Dispositivos de Entrada/Saída• Categoria 2: Dispositivos de CARACTERE• Este tipo de dispositivo libera ou aceita filas decaracteres sem levar em conta a padronização daestrutura de armazenamento• As informações enviadas/obtidas por este tipo dedispositivo não são endereçáveis nem aceitamoperações de busca aleatória• Exemplos de dispositivo organizados em caracteres:– Impressoras– Leitoras ópticasProfessor Eduardo Xavier
    • Dispositivos de Entrada/Saída• Categoria 3: Outros dispositivos• As duas categorias anteriores abrangem a maioria dosdispositivos hoje fabricados, porém existem alguns quetrabalham de formas diferentes, que não seenquadram nem na transmissão de dados em blocosnem em filas de caracteres• Exemplo de dispositivo cuja organização não se dá nemem blocos nem em caracteres:– Relógios - não usam blocos endereçáveis ou filas decaracteres, apenas geram interrupções em intervalosregularesProfessor Eduardo Xavier
    • Controladores de Dispositivos• Unidades de E/S são o resultado da combinação decomponentes mecânicos e componentes eletrônicos– O componente eletrônico é chamado de controlador dedispositivo (é comum também ser chamado de devicecontroler ou adapter em literatura técnica)• Geralmente, é um circuito impresso que pode serinserido no computador• Exemplos: controlador de vídeo, controladora de discos– O componente mecânico é o dispositivo propriamentedito• Exemplo: vídeo, discos, impressoraProfessor Eduardo Xavier
    • Controladores de Dispositivos• IMPORTANTE– O SO vê o controlador e não o dispositivo• O SO usa o(s) barramento(s) para se comunicar com osdispositivos• Nos mainframes, estes barramentos são chamados de“canais de E/S” e servem para aliviar a carga da CPU• Entre um controlador e cada dispositivo existe uma interfacede baixo nível, responsável por converter a forma como odispositivo manipula os dados em uma forma padronizada decomunicação– Por exemplo: Discos são formatados em setores, trilhas ecilindros, mas o driver envia uma lista serial de bits e cabeao controlador converter esta lista em um grupo de blocosProfessor Eduardo Xavier
    • Controladores de DispositivosProfessor Eduardo XavierBarramentoMemóriaPrincipalCPUInterfacesde baixo nívelControladorde DiscosControladorde VídeoControladorUSBControladordeImpressoraOutrosControladores? ? ?
    • Controladores de Dispositivos• Registradores internos de cada controlador– Cada controlador tem uns poucos registradores que sãousados para comunicação com a CPU– Em algumas máquinas estes registradores fazem parte doespaço de endereçamento regular, ou seja, podem serendereçados diretamente– O SO realiza operações de E/S escrevendo comandos eparâmetros (que os comandos utilizam) nestesregistradores– Quando o comando é completado, o controlador causauma interrupção para permitir que a CPU assuma ocomando novamente e teste o resultado da operação– As informações a respeito do andamento da operaçãotambém são armazenadas nestes registradoresProfessor Eduardo Xavier
    • Software de Entrada/Saída• O gerenciamento de I/O é organizado como umasérie de camadas sobrepostas– As camadas mais baixas se preocupam com ohardware– As camadas mais altas se destinam a manter umainterface simples para o usuárioProfessor Eduardo Xavier
    • Software de Entrada/Saída• Conceitos importantes:– Independência do dispositivo físico• Exemplo: qualquer software que acessa discos deveconseguir funcionar para vários tipos de disco semnecessitar ser recompilado a cada mudança dehardware– Uniformidade de nome• O nome de um dispositivo deve ser uma cadeia decaracteres ou um inteiro. A formação deste nome nãodeve depender do dispositivo– Manipulação de erros:• Erros devem ser tratados o mais próximo possível dohardware e só são repassados para as camadassuperiores caso não possam ser resolvidosProfessor Eduardo Xavier
    • Software de Entrada/Saída• Tipos de Transferências de Dados– Transferências Síncronas• Transferências de dados síncronas são realizadas emblocos– Transferências Assíncronas• Transferências de dados assíncronas são controladaspor interrupções• Muitos dispositivos de E/S são assíncronos– A CPU inicia a transferência e vai cuidar de outra coisaenquanto esta é processada até que ocorra umainterrupção• Para o usuário geralmente isso se apresenta deforma síncrona (blocos), pois facilita a programaçãoProfessor Eduardo Xavier
    • Software de Entrada/Saída• Existem dispositivos dedicados ou compartilhadospor vários usuários– IMPORTANTE: Dispositivos dedicados também podemgerar DEADLOCK• O software de E/S pode ser estruturado em 4camadas:– Software de manipulação de interrupções– Drivers de dispositivos– Software do sistema operacional independente dodispositivo– Software em nível de usuárioProfessor Eduardo Xavier
    • Camada 1:Software de Manipulação de Interrupções• O que são “Interrupções”?– Interrupções são eventos complexos, quedevem ser isolados de modo que apenas umapequena parte do sistema operacional osmanipule• O isolamento pode ser feito através dobloqueio de processos envolvidos com aoperação de I/O solicitada– Quando a operação de I/O se encerra, umainterrupção é gerada para informar o fato aosistema operacionalProfessor Eduardo Xavier
    • Camada 1:Software de Manipulação de Interrupções• Como funciona o software de manipulaçãode interrupções?– Ao captar uma interrupção, a rotina detratamento da mesma desbloqueia o processoque dependia da operação de I/O• OBS: O bloqueio aconteceu no momento emque este processo solicitou a execução daoperação de entrada/saída, conforme foivisto nas aulas de gerenciamento deprocessosProfessor Eduardo Xavier
    • Camada 2:Drivers de Dispositivos• O que é um “Driver de Dispositivo”?– Parte do SO que conhece intimamente ocontrolador de dispositivo– Cada driver manipula um dispositivo ou umaclasse de dispositivos– O trabalho do driver é aceitar requisições desoftware de alto nível e atendê-lasProfessor Eduardo Xavier
    • Camada 2:Drivers de Dispositivos• Funcionamento dos Drivers– Os drivers organizam as requisições pendentes em filas– Passos do funcionamento dos drivers:1.Traduz a requisição em comandos de baixo nível que ocontrolador de dispositivo entenda2.Escreve os comandos nos registradores do controlador3.Aguarda a execução ou bloqueia-se (se as operaçõesforem lentas)4.Verifica erros (quando a operação é completada)5.Repassa o resultado (dados e/ou status) para osolicitante6.Atende a próxima requisição da fila (volta ao passo 1)ou aguarda nova requisição (se a fila estiver vazia)Professor Eduardo Xavier
    • Camada 3:Software Independente de Dispositivo• Este tipo de software realiza operações de E/S que sãocomuns a todos os dispositivos usando uma interfaceuniforme para o SW do usuário• É sua função:– Encarregar-se do mapeamento entre nomes simbólicos dedispositivos e drivers– Proteger os dispositivos (garante apenas acessos autorizados)– Manipular blocos lógicos de informação de forma padronizada,independente do dispositivo físico• Exemplo: o SW se encarrega de mostrar ao usuário um tamanho de blocológico único, independente da formatação de cada disco– Executar “bufferrização” para tornar transparente o fluxo de dados– Coordenar a alocação de espaço em dispositivos do tipo BLOCO– Controlar a alocação e liberação de dispositivos dedicados– Gerenciar errosProfessor Eduardo Xavier
    • Camada 4:Software em Nível de Usuário• O que é?– É uma pequena porção de software formada porbibliotecas ligadas (linkadas) juntamente comprogramas de usuário• Grande parte das “system calls” partem destenível• Geralmente, a formatação de uma entrada ousaída de dados é feita por um procedimento debibliotecaProfessor Eduardo Xavier
    • Camada 4:Software em Nível de Usuário• Spooling– Nem todo o software de E/S utilizado pelo usuárioconsiste de procedimentos da biblioteca. Outraimportante categoria é o spooling.• Spooling é um modo de negociação com dispositivosdedicados de E/S em sistemas multiprogramados• Exemplo: Spooling de impresão– Durante as aulas de gerenciamento de processos ofuncionamento do spooling de impressão (fila de impressão)foi usado para exemplificar o problema de condições decorridaProfessor Eduardo Xavier
    • DISPOSITIVODISPOSITIVOResumo da Arquiteturade Entrada/SaídaProfessor Eduardo XavierGerenciadoresde InterrupçãoDrivers de DispositivoSoftware Independentedo DispositivoProcessos do UsuárioCamadasRequisição de E/SResposta daRequisição de E/SFuncionalidadesExecuta operação de E/SIdentificação, proteção, bloqueio e“bufferização”Inicializa registradores do dispositivoVerifica Status da operaçaoDesbloqueia o driver quando a operaçãode E/S se completaExecuta fisicamente a operação de E/S