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

Preview:

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

Citation preview

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

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

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

Uma estrutura típica de barramento

Polling

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

Ciclo de Espera ocupada para aguardar E/S do dispositivo

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

Ciclo de E/S baseado em interrupções

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

Seis etapas de uma transferência DMA

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

Estrutura de E/S do núcleo

Características de dispositivos de E/S

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

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)

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

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

Dois métodos de E/S

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”

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!

Tabela de estado de dispositivo

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

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

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

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

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

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

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

Comunicação entre computadores

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

Progressão da funcionalidade dos dispositivos

Recommended