gerência de armazenamento: sistemas de entrada e saída
Post on 24-May-2015
3.741 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
top related