sd02 (si) gerenciamento de entrada e saída
DESCRIPTION
TRANSCRIPT
![Page 1: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/1.jpg)
Sistemas DistribuídosSistemas Distribuídos
Parte 2Gerenciamento de Entrada e Saída
Professor Eduardo Xavier
![Page 2: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/2.jpg)
Objetivos do controle de E/S Objetivos do controle de E/S
• Emitir comandos para os dispositivos– Na maioria das vezes, os programas e o próprio SO
enxergam os dispositivos de uma forma que não é a sua real interface. Por exemplo:
– Discos são vistos como blocos de bytes, em vez de trilhas e cilindros.
– Partições lógicas em um mesmo disco são vistas como discos fisicamente diferentes
• Atender interrupções– Sempre que uma operação de I/O (Input/Output)
termina, é preciso informar ao SO que o processo que solicitou a operação já pode ser desbloqueado. Isso é feito por meio de uma “interrupção”.
Professor Eduardo Xavier
![Page 3: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/3.jpg)
Objetivos do controle de E/S (cont.)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 erro geralmente se processa de duas formas:
– Definir um curso de ação para fazer com que a operaçã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 o I/O)
Professor Eduardo Xavier
![Page 4: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/4.jpg)
Diversas formas de “ver” o hardwareDiversas formas de “ver” o hardware
• Dependendo do ponto de vista de cada indivíduo, o hardware pode ser encarado de uma maneira diferente– Programadores de aplicações enxergam cada dispositivo
da forma como suas aplicações devem manipular os dados– Projetistas de SO visualizam a forma como cada dispositivo
vai interagir com o sistema operacional– Projetistas de hardware focalizam sua atenção em
consumo de energia e trocas de sinais elétricos entre cada dispositivo e o restante do hardware do computador
• Nesta parte da disciplina vamos concentra nossa atenção em como o HW é programado e manipulado pelo sistema operacional, sem se preocupar com funciona interno.
Professor Eduardo Xavier
![Page 5: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/5.jpg)
Dispositivos de Entrada/SaídaDispositivos de Entrada/Saída
• Podemos classificar os dispositivos de I/O em três categorias:
1. Dispositivos organizados em BLOCOS
2. Dispositivos organizados em CARACTERES
3. Dispositivos organizados de outra forma
Professor Eduardo Xavier
![Page 6: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/6.jpg)
Dispositivos de Entrada/SaídaDispositivos de Entrada/Saída• Categoria 1: Dispositivos de BLOCO
• Neste tipo de dispositivo as informações são armazenadas e transmitidas em blocos de tamanho fixo e cada bloco tem um endereço próprio que permite sua localização.
• Normalmente, o tamanho do bloco varia entre 128 e 4096 bytes (mas não se trata de uma restrição e sim de um padrão normalmente adotado pela indústria)
• É possível ler ou escrever cada bloco independentemente do outro a qualquer instante
• Exemplo de dispositivo organizado em blocos: – Discos magnéticos
Professor Eduardo Xavier
![Page 7: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/7.jpg)
Dispositivos de Entrada/SaídaDispositivos de Entrada/Saída
• Categoria 2: Dispositivos de CARACTERE• Este tipo de dispositivo libera ou aceita filas de
caracteres sem levar em conta a padronização da estrutura de armazenamento
• As informações enviadas/obtidas por este tipo de dispositivo não são endereçáveis nem aceitam operações de busca aleatória
• Exemplos de dispositivo organizados em caracteres: – Impressoras– Leitoras ópticas
Professor Eduardo Xavier
![Page 8: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/8.jpg)
Dispositivos de Entrada/SaídaDispositivos de Entrada/Saída
• Categoria 3: Outros dispositivos• As duas categorias anteriores abrangem a maioria dos
dispositivos hoje fabricados, porém existem alguns que trabalham de formas diferentes, que não se enquadram nem na transmissão de dados em blocos nem em filas de caracteres
• Exemplo de dispositivo cuja organização não se dá nem em blocos nem em caracteres:
– Relógios - não usam blocos endereçáveis ou filas de caracteres, apenas geram interrupções em intervalos regulares
Professor Eduardo Xavier
![Page 9: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/9.jpg)
Controladores de DispositivosControladores de Dispositivos• Unidades de E/S são o resultado da combinação de
componentes mecânicos e componentes eletrônicos– O componente eletrônico é chamado de controlador de
dispositivo (é comum também ser chamado de device controler ou adapter em literatura técnica)
• Geralmente, é um circuito impresso que pode ser inserido no computador
• Exemplos: controlador de vídeo, controladora de discos
– O componente mecânico é o dispositivo propriamente dito
• Exemplo: vídeo, discos, impressora
Professor Eduardo Xavier
![Page 10: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/10.jpg)
Controladores de DispositivosControladores de Dispositivos
• IMPORTANTE– O SO vê o controlador e não o dispositivo
• O SO usa o(s) barramento(s) para se comunicar com os dispositivos
• 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 interface de baixo nível, responsável por converter a forma como o dispositivo manipula os dados em uma forma padronizada de comunicação– Por exemplo: Discos são formatados em setores, trilhas e
cilindros, mas o driver envia uma lista serial de bits e cabe ao controlador converter esta lista em um grupo de blocos
Professor Eduardo Xavier
![Page 11: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/11.jpg)
Controladores de DispositivosControladores de Dispositivos
Professor Eduardo Xavier
Barramento
MemóriaPrincipal
CPU
Interfaces de baixo nível
Controladorde Discos
Controladorde Vídeo
ControladorUSB
Controladorde
Impressora
OutrosControladores
? ? ?
![Page 12: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/12.jpg)
Controladores de DispositivosControladores de Dispositivos• Registradores internos de cada controlador
– Cada controlador tem uns poucos registradores que são usados para comunicação com a CPU
– Em algumas máquinas estes registradores fazem parte do espaço de endereçamento regular, ou seja, podem ser endereçados diretamente
– O SO realiza operações de E/S escrevendo comandos e parâmetros (que os comandos utilizam) nestes registradores
– Quando o comando é completado, o controlador causa uma interrupção para permitir que a CPU assuma o comando novamente e teste o resultado da operação
– As informações a respeito do andamento da operação também são armazenadas nestes registradores
Professor Eduardo Xavier
![Page 13: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/13.jpg)
Software de Entrada/SaídaSoftware de Entrada/Saída
• O gerenciamento de I/O é organizado como uma série de camadas sobrepostas
– As camadas mais baixas se preocupam com o hardware
– As camadas mais altas se destinam a manter uma interface simples para o usuário
Professor Eduardo Xavier
![Page 14: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/14.jpg)
Software de Entrada/SaídaSoftware de Entrada/Saída
• Conceitos importantes:– Independência do dispositivo físico
• Exemplo: qualquer software que acessa discos deve conseguir funcionar para vários tipos de disco sem necessitar ser recompilado a cada mudança de hardware
– Uniformidade de nome• O nome de um dispositivo deve ser uma cadeia de
caracteres ou um inteiro. A formação deste nome não deve depender do dispositivo
– Manipulação de erros: • Erros devem ser tratados o mais próximo possível do
hardware e só são repassados para as camadas superiores caso não possam ser resolvidos
Professor Eduardo Xavier
![Page 15: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/15.jpg)
Software de Entrada/SaídaSoftware de Entrada/Saída
• Tipos de Transferências de Dados– Transferências Síncronas
• Transferências de dados síncronas são realizadas em blocos
– Transferências Assíncronas• Transferências de dados assíncronas são controladas
por interrupções• Muitos dispositivos de E/S são assíncronos
– A CPU inicia a transferência e vai cuidar de outra coisa enquanto esta é processada até que ocorra uma interrupção
• Para o usuário geralmente isso se apresenta de forma síncrona (blocos), pois facilita a programação
Professor Eduardo Xavier
![Page 16: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/16.jpg)
Software de Entrada/SaídaSoftware de Entrada/Saída
• Existem dispositivos dedicados ou compartilhados por vários usuários– IMPORTANTE: Dispositivos dedicados também podem
gerar DEADLOCK
• O software de E/S pode ser estruturado em 4 camadas:– Software de manipulação de interrupções– Drivers de dispositivos– Software do sistema operacional independente do
dispositivo– Software em nível de usuário
Professor Eduardo Xavier
![Page 17: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/17.jpg)
Camada 1: Software de Manipulação de InterrupçõesCamada 1: Software de Manipulação de Interrupções
• O que são “Interrupções”?– Interrupções são eventos complexos, que
devem ser isolados de modo que apenas uma pequena parte do sistema operacional os manipule• O isolamento pode ser feito através do
bloqueio de processos envolvidos com a operação de I/O solicitada
– Quando a operação de I/O se encerra, uma interrupção é gerada para informar o fato ao sistema operacional
Professor Eduardo Xavier
![Page 18: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/18.jpg)
Camada 1: Software de Manipulação de InterrupçõesCamada 1: Software de Manipulação de Interrupções
• Como funciona o software de manipulação de interrupções?– Ao captar uma interrupção, a rotina de
tratamento da mesma desbloqueia o processo que dependia da operação de I/O• OBS: O bloqueio aconteceu no momento em
que este processo solicitou a execução da operação de entrada/saída, conforme foi visto nas aulas de gerenciamento de processos
Professor Eduardo Xavier
![Page 19: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/19.jpg)
Camada 2: Drivers de DispositivosCamada 2: Drivers de Dispositivos
• O que é um “Driver de Dispositivo”?– Parte do SO que conhece intimamente o
controlador de dispositivo
– Cada driver manipula um dispositivo ou uma classe de dispositivos
– O trabalho do driver é aceitar requisições de software de alto nível e atendê-las
Professor Eduardo Xavier
![Page 20: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/20.jpg)
Camada 2: Drivers de DispositivosCamada 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 o controlador de dispositivo entenda
2. Escreve os comandos nos registradores do controlador3. Aguarda a execução ou bloqueia-se (se as operações
forem lentas)4. Verifica erros (quando a operação é completada)5. Repassa o resultado (dados e/ou status) para o
solicitante6. 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
![Page 21: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/21.jpg)
Camada 3: Software Independente de DispositivoCamada 3: Software Independente de Dispositivo
• Este tipo de software realiza operações de E/S que são comuns a todos os dispositivos usando uma interface uniforme para o SW do usuário
• É sua função:– Encarregar-se do mapeamento entre nomes simbólicos de
dispositivos 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 bloco
ló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 erros
Professor Eduardo Xavier
![Page 22: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/22.jpg)
Camada 4: Software em Nível de UsuárioCamada 4: Software em Nível de Usuário
• O que é?– É uma pequena porção de software formada por
bibliotecas ligadas (linkadas) juntamente com programas de usuário• Grande parte das “system calls” partem deste
nível• Geralmente, a formatação de uma entrada ou
saída de dados é feita por um procedimento de biblioteca
Professor Eduardo Xavier
![Page 23: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/23.jpg)
Camada 4: Software em Nível de UsuárioCamada 4: Software em Nível de Usuário
• Spooling– Nem todo o software de E/S utilizado pelo usuário
consiste de procedimentos da biblioteca. Outra importante categoria é o spooling.
• Spooling é um modo de negociação com dispositivos dedicados de E/S em sistemas multiprogramados
• Exemplo: Spooling de impresão– Durante as aulas de gerenciamento de processos o
funcionamento do spooling de impressão (fila de impressão) foi usado para exemplificar o problema de condições de corrida
Professor Eduardo Xavier
![Page 24: Sd02 (si) gerenciamento de entrada e saída](https://reader033.vdocuments.pub/reader033/viewer/2022061217/54b4b9ad4a795988368b45d4/html5/thumbnails/24.jpg)
DISPOSITIVODISPOSITIVO
Resumo da Arquiteturade Entrada/SaídaResumo da Arquiteturade Entrada/Saída
Professor Eduardo Xavier
Gerenciadores de Interrupção
Drivers de Dispositivo
Software Independente do Dispositivo
Processos do Usuário
Camadas
Requisição de E/S Resposta da Requisição de E/S
Funcionalidades
Executa operação de E/S
Identificação, proteção, bloqueio e “bufferização”
Inicializa registradores do dispositivo
Verifica Status da operaçao
Desbloqueia o driver quando a operação de E/S se completa
Executa fisicamente a operação de E/S