Sd02 (si) gerenciamento de entrada e saída

24
Sistemas Distribuídos Parte 2 Gerenciamento de Entrada e Saída Professor Eduardo Xavier

description

 

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

Page 1: Sd02 (si)   gerenciamento de entrada e saída

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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