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
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

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

  • 1.
    Sistemas Operacionais I Gerênciade 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
  • 2.
    Objetivos  Explorar aestrutura 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
  • 3.
    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
  • 4.
    Uma estrutura típicade barramento
  • 5.
    Polling  Determina oestado de um dispositivo  Pronto para receber comandos  Ocupado  Erro  Ciclo de Espera ocupada para aguardar E/S do dispositivo
  • 6.
    Interrupções  A CPUtem 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
  • 7.
    Ciclo de E/Sbaseado em interrupções
  • 8.
    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
  • 9.
    Seis etapas deuma transferência DMA
  • 10.
    Interface de E/Spara 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
  • 11.
    Estrutura de E/Sdo núcleo
  • 12.
  • 13.
    Dispositivos de blocoe 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
  • 14.
    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)
  • 15.
    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
  • 16.
    E/S bloqueante enã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
  • 17.
  • 18.
    Subsistema de E/Sdo 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”
  • 19.
    Subsistema de E/Sdo 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!
  • 20.
    Tabela de estadode dispositivo
  • 21.
    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
  • 22.
    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
  • 23.
    Uso de chamadasde sistema para realizar operações de E/S
  • 24.
    Estruturas de dadosdo 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
  • 25.
    Requisições de E/Spara 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
  • 26.
    Ciclo de vidade uma requisição de E/S
  • 27.
    Desempenho  Operações deE/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
  • 28.
  • 29.
    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
  • 30.