gerência de armazenamento: sistemas de entrada e saída

30
Sistemas Operacionais I Gerência de Armazenamento: Sistemas de Entrada e Saída Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Upload: alexandre-duarte

Post on 24-May-2015

3.741 views

Category:

Education


38 download

DESCRIPTION

Explorar a estrutura do subsistema de E/S de um sistema operacional Discutir os princípios e complexidade do hardware de E/S Prover detalhes do aspectos de desempenho do hardware e software de E/S

TRANSCRIPT

Page 1: Gerência de Armazenamento: Sistemas de Entrada e Saída

Sistemas Operacionais I

Gerência de Armazenamento: Sistemas de Entrada e Saída

Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da Paraíba

Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Page 2: Gerência de Armazenamento: Sistemas de Entrada e Saída

Objetivos

Explorar a estrutura do subsistema de E/S de um sistema operacional

Discutir os princípios e complexidade do hardware de E/S

Prover detalhes do aspectos de desempenho do hardware e software de E/S

Page 3: Gerência de Armazenamento: Sistemas de Entrada e Saída

Hardware de E/S

Variedade imensa de dispositivos de E/S Conceitos comuns

Porta Barramento (daisy chain ou acesso

compartilhada direto) Controlador (adaptador do hospedeiro)

Instruções de E/S controlam os dispositivos Os dispositivos possuem endereços,

utilizados para Instruções de E/S diretas E/S Mapeada em memória

Page 4: Gerência de Armazenamento: Sistemas de Entrada e Saída

Uma estrutura típica de barramento

Page 5: Gerência de Armazenamento: Sistemas de Entrada e Saída

Polling

Determina o estado de um dispositivo Pronto para receber comandos Ocupado Erro

Ciclo de Espera ocupada para aguardar E/S do dispositivo

Page 6: Gerência de Armazenamento: Sistemas de Entrada e Saída

Interrupções

A CPU tem uma linha de solicitação de interrupção ativada pelo dispositivo de E/S

O gerenciador de interrupção recebe o sinal

Interrupções podem ser mascaradas para que a CPU ignore ou adie seu tratamento

Um vetor de interrupções é utilizado para selecionar o endereço da rotina de tratamento adequada Baseado em prioridades Algumas não podem ser mascaradas

O mecanismo de interrupções é utilizado também para exceções

Page 7: Gerência de Armazenamento: Sistemas de Entrada e Saída

Ciclo de E/S baseado em interrupções

Page 8: Gerência de Armazenamento: Sistemas de Entrada e Saída

Acesso direto à memória

Utilizado para evitar o uso de E/S programada para o movimento de grandes volumes de dados

Requer um controlador de DMA

Dispensa a CPU na transferência de dados entre o dispositivo de E/S e a memória

Page 9: Gerência de Armazenamento: Sistemas de Entrada e Saída

Seis etapas de uma transferência DMA

Page 10: Gerência de Armazenamento: Sistemas de Entrada e Saída

Interface de E/S para aplicações As chamada de sistema de E/S encapsulam o

comportamento dos dispositivos em classes genéricas

A camada do driver de dispositivo esconde as diferenças entre os controladores de E/S do núcleo do SO

Os dispositivos variam em várias dimensões Fluxo de caracteres ou blocos Acesso sequencial ou aleatório Dedicado ou compartilhado Velocidade de operação Leitura-escrita, apenas leitura, apenas escrita

Page 11: Gerência de Armazenamento: Sistemas de Entrada e Saída

Estrutura de E/S do núcleo

Page 12: Gerência de Armazenamento: Sistemas de Entrada e Saída

Características de dispositivos de E/S

Page 13: Gerência de Armazenamento: Sistemas de Entrada e Saída

Dispositivos de bloco e de caracteres Dispositivos de bloco incluem drivers de

disco Comandos incluem read, write, seek E/S crua ou via sistema de arquivos Possibilidade de acesso a arquivos

mapeados em em memória

Dispositivos de caracteres incluem teclados, mouses e portas seriais Comandos incluem get, put Bibliotecas permitem edição de linhas

Page 14: Gerência de Armazenamento: Sistemas de Entrada e Saída

Dispositivos de rede

Diferenciam-se o suficiente de dispositivos de bloco e de caracteres para terem sua própria interface

Unix e Windows NT/9x/2000 incluem uma interface socket Separam protocolo de rede de operação da

rede Incluem uma função select

As abordagens variam amplamente (pipes, FIFOs, streams, queues, mailboxes)

Page 15: Gerência de Armazenamento: Sistemas de Entrada e Saída

Relógios e Temporizadores

Fornecem o tempo atual, tempo decorrido e temporizador

Temporizador de intervalo programado utilizado para temporização e interrupções periódicas

Page 16: Gerência de Armazenamento: Sistemas de Entrada e Saída

E/S bloqueante e não-bloqueante Bloqueante – processo suspenso até a conclusão da

operação de E/S Fácil de utilizar e de entender Insuficiente para algumas necessidades

Não-bloqueante – a chamada de E/S retorna com os dados disponíveis no momento Interface do usuário, cópia de dados (bufferização de E/S) Implementado utilizando múltiplas threads Retorna rapidamente com a contagem de bytes lidos ou

escritos

Assíncrona – o processo roda enquanto a operação de E/S é executada Difícil de usar Subsistema de E/S sinaliza quando a operação de E/S /e

concluída

Page 17: Gerência de Armazenamento: Sistemas de Entrada e Saída

Dois métodos de E/S

Page 18: Gerência de Armazenamento: Sistemas de Entrada e Saída

Subsistema de E/S do núcleo Escalonamento

Filas por dispositivo para ordenação de requisições de E/S

O sistema operacional tenta manter alguma justiça Bufferização – dados são armazenados na

memória enquanto estão sendo transferidos entre dispositivos Ajuda a lidar como diferenças de velocidade entre os

dispositivos Ajudar a lidar com diferenças nos tamanhos de

transferência dos dispositivos Ajuda a manter a “semântica de cópia”

Page 19: Gerência de Armazenamento: Sistemas de Entrada e Saída

Subsistema de E/S do núcleo Cache – memória rápida para armazenamento

temporário de dados Sempre mantém apenas uma cópia Aspecto chave para melhorar o desempenho

Spooling - mantém a saída para um dispositivo Útil se o dispositivo só pode atender uma requisição

por vez Ex. Impressora

Reserva de dispositivo – provê acesso exclusivo a um dispositivo Chamadas de sistema para alocação e liberação Risco de deadlocks!

Page 20: Gerência de Armazenamento: Sistemas de Entrada e Saída

Tabela de estado de dispositivo

Page 21: Gerência de Armazenamento: Sistemas de Entrada e Saída

Tratamento de erros

O sistema operacional pode se recuperar de um erro de leitura de disco, erro de dispositivo indisponível e falhas transientes de escrita

Precisa reportar um código de erro quando uma requisição de E/S

Log de erros do sistema mantem um registro dos problemas

Page 22: Gerência de Armazenamento: Sistemas de Entrada e Saída

Proteção de E/S

Processos de usuário podem acidentalmente ou propositalmente tentar interferir na operação normal do sistema utilizando operações de E/S ilegais Todas as instruções de E/S foram definidas

para ter acesso privilegiado Operações de E/S precisam ser realizadas

através de chamadas de sistema

Page 23: Gerência de Armazenamento: Sistemas de Entrada e Saída

Uso de chamadas de sistema para realizar operações de E/S

Page 24: Gerência de Armazenamento: Sistemas de Entrada e Saída

Estruturas de dados do núcleo O núcleo mantem informação de estado dos

diversos componentes envolvidos nas operações de E/S, incluindo tabelas de arquivos abertos, conexões de rede, estado de dispositivos de caractere

Muitas, mas muitas mesmo, estruturas de dados complexas para gerenciar buffers, alocação de memória, blocos ocupados, etc

Alguns sistemas utilizam orientação a objetos e troca e de mensagens para implementar operações de E/S

Page 25: Gerência de Armazenamento: Sistemas de Entrada e Saída

Requisições de E/S para operações do hardware Considere um processo tentando ler um

arquivo do disco: Determinar o dispositivo onde o arquivo está

armazenado Traduzir o nome em uma representação do

arquivo no dispositivo Fazer a leitura dos dados do disco para um

buffer Disponibilizar os dados lidos para o processo Retornar o controle

Page 26: Gerência de Armazenamento: Sistemas de Entrada e Saída

Ciclo de vida de uma requisição de E/S

Page 27: Gerência de Armazenamento: Sistemas de Entrada e Saída

Desempenho

Operações de E/S representam um fator chave no desempenho do sistema:

Demanda para a CPU executar código dos drivers de dispositivo

Troca de contextos devido a interrupções Cópia de dados Tráfego de redes é especialmente

dispendioso

Page 28: Gerência de Armazenamento: Sistemas de Entrada e Saída

Comunicação entre computadores

Page 29: Gerência de Armazenamento: Sistemas de Entrada e Saída

Melhorando o desempenho

Reduzir o número de trocas de contexto Reduzir a quantidade de dados copiados Reduzir o número de interrupções

utilizando pacotes maiores para transferências, controladores inteligentes e polling

Utilizar DMA Balancear o uso de CPU, memória,

barramentos e dispositivos de E/S para vazão máxima

Page 30: Gerência de Armazenamento: Sistemas de Entrada e Saída

Progressão da funcionalidade dos dispositivos