• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
io
 

io

on

  • 5,921 views

io

io

Statistics

Views

Total Views
5,921
Views on SlideShare
5,901
Embed Views
20

Actions

Likes
5
Downloads
0
Comments
0

4 Embeds 20

http://www.slideshare.net 17
http://ateliemadeirartes.com 1
http://www.ateliemadeirartes.com 1
http://geografiast.blogspot.gr 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    io io Presentation Transcript

    • Entrada e Saída I/O
    • Princípios Básicos de Hardware
      • Periférico
        • Dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo.
        • Conectados ao computador através de um componente de hardware denominado interface .
      • Interface
        • Interconectadas ao barramento interno do computador.
        • Elemento chave na coordenação da transferência de dados.
        • Utilizam um processador dedicado a controladora .
      • Controladora
        • Processador dedicado a realização das operações de entrada e saída.
    • Arquitetura de entrada e saída barramento memória CPU disco vídeo rede Dispositivo de I/O: possui uma parte mecânica e outra eletrônica
    • Dispositivos de Entrada e Saída
      • Classificados como:
        • orientado a caractere
          • unidade de transferência é o caractere
            • Ex: teclado, interface serial
        • orientado a bloco
          • unidade de transferência de dados é um bloco de caracteres (fixo)
            • Ex: disco, fitas DAT
        • Obs:
          • Alguns dispositivos não se enquadram nesta classificação
            • Ex: relógio, memória de vídeo mapeada em E/S
    • Dispositivos de Entrada e Saída
      • Classificados de acordo com o tipo de entidade que interagem
          • Com usuário
            • Ex: vídeo, teclado, mouse, impressora, . . .
          • Com dispositivos eletrônicos
            • Ex: disco, fitas, atuadores, controladores, . . .
          • Com dispositivos remotos
            • Ex: modem, interfaces de rede
    • Dispositivos de Entrada e Saída
      • Apresentam características próprias
        • Taxa de transferência de dados
        • Complexidade de controle
        • Unidade de transferência
          • caractere, bloco ou stream
        • Representação de dados
          • Esquemas de codificação
        • Tratamentos de erros
          • depende do tipo do dispositivo
    • Tipos de conexão e transferência de dados
      • Em função da interconexão física das interfaces com o periférico
        • Interface serial
          • Apenas uma linha para transferência de dados
            • (bit a bit)
        • Interface paralela
          • mais de uma linha para transferência de dados
            • Ex: n x 8 bits
    • Como controladoras e S.O. interagem?
      • Controladora - programada via registradores de configuração
        • recebem ordens do processador
        • fornecem estados de operação
        • leitura e escrita de dados do periférico
      • Registradores são “vistos” como posições de memória
        • E/S mapeada em espaço de E/S
        • E/S mapeada em espaço de memória
    • Mapeamento dos registradores
      • Espaço de endereçamento
        • conjunto de endereços de memória que o processador consegue endereçar
        • definido no projeto de processador
          • pode haver um único espaço de endereçamento
          • pode haver um espaço de endereçamento dedicado a entrada e saída
        • Instruções específicas para acessar um ou outro espaço de endereçamento
          • Ex: mov, in, out
    • Mapeamento em espaço de memória
      • Um único espaço de endereçamento
      • No projeto do computador se reserva uma parte de sua área de endereçamento para acesso a periféricos (controladoras)
      • Instruções de acesso a memória do tipo mov end, dado podem tanto referenciar uma posição real de memória como um registrador associado a um periférico de E/S
      • Exemplo
        • Processadores da família Motorola
    • Mapeamento em espaço de E/S
      • O processador possui duas áreas distintas de endereçamento
        • Espaço de memória: acessado via instruções de acesso à memória (mov)
        • Espaço de E/S: acessado via instruções de acesso específicas (in , out)
      • No projeto de um computador (sistema) usando tal processador é possível utilizar os dois tipos de mapeamento para acesso a periféricos de E/S
      • Exemplo
        • Processadores da família Intel
    • Exemplo de acesso a dispositivos Controladora de impressão onde um registrador fornece o “status” da impressão (end. 315H) e outro corresponde ao envio do caractere a ser impresso (end. 312H). mapeado em memória mapeado em E/S le_status: mov AL, 315H print_char: mov AL, 65H mov 312H, AL le_status: in AL, 315H print_char: mov AL, 65H out 312H, AL
    • Técnicas para realização de E/S
      • E/S programada (PIO)
      • E/S orientada a interrupções (interrupt driven)
      • Acesso direto a memória
    • E/S Programada
      • Toda interação entre o processador e o controlador é de responsabilidade do programador
      • Ciclo de funcionamento
        • envio de comando a controladora
        • espera pela realização do comando
      • Módulo (controladora) de entrada/saída atualiza bits de estado da operação
      • processador espera término da operação (busy waiting)
    • Desvantagem da E/S programada
      • Desperdício do tempo do processador para verificar continuamente o estado de uma operação de E/S
        • diferença de velocidade entre dispositvo de I/O e processador
      • Solução é inserir operações entre sucessivas consultas sobre o estado de uma operação de E/S
        • polling
      • Problema é determinar a freqüência para a realização do polling
    • E/S orientada a interrupção ( interrupt driven )
      • Evita o desperdício de tempo do polling
      • Processado é interrompido quando o módulo de E/S está pronto
      • Enquanto a interrupção não ocorre o processador está liberado para executar outras tarefas
      • Processador é responsável por iniciar uma operação de E/S
      • Interrupção solicita atenção do processador para executar uma rotina específica ao final da operação de E/S
        • tratador de interrupção
    • Desvantagem da E/S orientada a interrupção
      • Processador atua como um intermediário na transferência, pois cada palavra lida (escrita) passa pelo processador
    • Acesso Direto a Memória (DMA)
      • Transfere diretamente um bloco de dados entre a memória e o módulo de E/S
      • O mecanismo de interrupção é utilizado para sinalizar final de tarefa
      • processador é envolvido com a tarefa de E/S apenas no começo e no final da transferência.
    • Evolução das arquiteturas de E/S
      • Processador controla diretamente o periférico
      • Controlador ou módulo de E/S é adicionado
        • processador usa PIO sem interrupções
        • processador não necessita tratar detalhes dos dispositivos de E/S
      • Controlador ou módulo de E/S baseado em interrupções
      • Transferência de dados em DMA
      • Módulo de E/S possui um processador separado
      • processador de E/S
        • computador dedicado ao processamento de E/S
        • transferência de dados é feito, por exemplo, via rede
    • Gerência de E/S
      • Problema
        • E/S extremamente lenta se comparada com a velocidade de processamento e de acesso da memória principal
        • Multiprogramação possibilita que processos executem enquanto outros esperam por operações de E/S
        • Procedimento de swapping é E/S
        • Eficiência no tratamento de E/S é importante
    • Gerência de E/S
      • Objetivos
        • Eficiência
        • Generalidade
          • desejável que dispositivos sejam tratados da maneira mais uniforme possível
        • Esconder os detalhes do serviço de E/S em camadas de mais baixo nível
        • Fornecer ao alto nível abstrações genéricas como read, write, open e close.
    • Princípios Básicos de Software de E/S
      • Subsistema de E/S é bastante complexo devido a diversidade de periféricos
      • Objetivo é padronizar as rotinas de acesso aos periféricos de E/S de forma a reduzir o número de rotinas
        • permitir a inclusão de novos dispositivos sem alterar a visão do usuário (interface de utilização)
      • Para atingir este objetivo o subsistema de E/S é organizado em camadas
    • Estrutura em Camadas do Subsistema de E/S E/S nível de usuário E/S independente de dispositivo Hardware interface padrão para drivers de dispositivos (API) driver SCSI driver IDE driver floppy driver rede driver teclado software S.O.
    • Organização lógica do software de E/S
      • Segue filosofia modular (3 módulos principais)
        • Dispositivo lógico de E/S
          • não se preocupa com detalhes de controle
          • oferece uma interface de programação ao processo usuário
        • Dispositivo físico de E/S
          • aceita solicitações abstratas e converte para um tratamento específico
          • bufferização
        • Escalonamento e Controle
          • tratamento de interrupção e status
        • Obs: organização não é única e depende do tipo de dispositivo e sua aplicação
    • Software de E/S
      • Síncrono (bloqueante)
        • processo é suspenso até conclusão da operação
        • simples programação e uso
      • Assíncrono (não bloqueante)
        • processo continua sua execução enquanto E/S é realizada
        • mecanismos empregados:
          • interrupção para sinalizar conclusão da operação
          • emprego de multithreading
    • Drivers de Dispositivos
      • Camada inferior de software de E/S
      • Responsável pela gerência do dispositivo físico de E/S
      • Código específico a um dispositivo
      • Recebe solicitações da camada de gerência de dispositivo lógico
        • exporta uma “visão” uniforme subdividindo os periféricos de E/S em função da unidade de transferência de dados:
          • orientado a bloco
          • orientado a caractres
          • pseudo-dispositivos
      • Responsável pelo tratamento de erros
    • Entrada e saída independente de dispositivo
      • Implementa procedimentos e funções gerais a todos os dispositivos de E/S
      • Principais serviços
        • Escalonamento de E/S
        • Denominação
        • Bufferização
        • Cache de dados
        • Alocação e liberação
        • Direitos de acesso
        • Tratamento de erros
    • Entrada e saída independente de dispositivo
      • Fornece uma visão lógica do dispositivo através de estruturas de dados genéricas que representam classes de dispositivos
      • Atribuição uniforme do nome independente do dispositivo
    • Entrada e saída independente de dispositivo
      • O UNIX é um exemplo clássico
        • nome do dispositivo é uma string
        • discos (dispositivos) fazem parte do sistema de arquivos
      /dev fd0 fd0a fd0b fd0c crw-rw-rw- 1 root root 187, 83 Apr 1 14:56 fd0 crw-rw-rw- 1 root root 187, 84 Apr 1 14:56 fd0a crw-rw-rw- 1 root root 187, 85 Apr 1 14:56 fd0b crw-rw-rw- 1 root root 187, 86 Apr 1 14:56 fd0c major number minor number
    • Bufferização de E/S Dispositivo de E/S Sistema Operacional Aplicação sem buffer buffer único buffer duplo buffer circular in in move move in in move . . .
    • E/S a nível de usuário
      • “ Visão” que o usuário possui dos dispositivos de E/S
        • Interface de programação associada a bibliotecas de E/S
        • Interface de “comandos”
          • ls, cp, mv, etc...
      • Construído sobre primitivas do S.O.
    • Dispositivos periféricos típicos
      • Dispositivos de E/S são fundamentais para que um sistema seja utilizável
      • Existe uma grande gama de dispositivos de E/S
        • impossível analisar todos
        • princípio de funcionamento tem base comum
      • Periférico mais importante é o disco por desempenhar um papel fundamental em diversos aspectos do S.O.
        • armazenamento de dados
        • suporte a implementação de memória virtual
        • aspectos relacionados a tolerância a falhas de segurança de dados (RAID)
    • Disco Magnético
      • Pratos (platters)
        • disco de plástico, ou metal, recoberto de material magnetizável
      • Dados são gravados e, posteriormente, recuperados através de um cabeçote de leitura e gravação
        • Escrita
          • o cabeçote é submetido a uma tensão que gera um campo magnético o qual magnetiza o disco com diferentes padrões de polaridades
        • Leitura
          • a variação do campo magnético gerado pela rotação do disco induz uma corrente no cabeçote de leitura
    • Disco Magnético
      • Organização e Formatação
        • Organizado em uma seqüência de circulos concêntricos
          • trilhas
            • cuja largura corresponde a largura do cabeçote de leitura/escrita
        • Trilhas são separadas por gaps
          • evita problemas de alinhamento
        • Duas tecnologias definem o número de bits por trilha
          • CAV ( Constant Angular Velocity)
            • número de bits por trilha constante
            • trilhas mais internas possuem maior densidade bits/polegada
            • Ex: floppy 3,5”
          • CLV ( Constant Linear Velocity)
            • número de bits por trilha depende da distância ao centro do disco
            • Ex: CD-ROM
    • Organização e Formatação
      • Transferência de dados para o disco é feita em blocos
        • Tipicamente, o bloco é menor que a capacidade de uma trilha
      • Trilha é subdividida em unidades de tamanho fixo ( setores )
      • Setor:
        • Unidade de armazenamento de informações
        • Informações de controle
          • Ex: Início e final de setor, ECC (Error Correcting Code)
      • A definição de trilhas e setores é feita pela formatação física
        • vem de fábrica
    • Organização e Formatação inter-sector gap inter-track gap trilhas S0 S1 S2 S3 S4 S5 SN SN S0 S1 S2 S3 S4 S5 zona de dados ECC info controle setores
    • Carateríticas Físicas
      • Cabeçote de leitura/escrita são montados sobre um braço
        • fixo: um cabeçote por trilha
        • móvel: cabeçote se desloca sobre as trilhas
      • Removível x não removível
        • meio magnético montado fisicamente nos braços ou não
          • Ex: disquete
      • Densidade dupla x densidade simples
        • Filme magnético nas duas superfícies do disco ou não
    • Organização e Formatação
      • Múltiplos pratos (disk pack)
        • vários pratos empilhados e centrados
        • cada prato um cabeçote de leitura/escrita (braço móvel)
        • cilindro
          • conjunto de trilhas de mesmo número em pratos diferentes
      • Mecanismo do cabeçote leitura/escrita
        • contato físico entre a superfície magnética e o cabeçote
          • Ex: floppy
        • distância fixa (air gap) da superfície magnética
        • distância fixa (air gap) da superfície magnética quando o disco entra em rotação (disco rígido)
    • Exemplo de especificação de disco
      • Disco 4.1 GBytes
        • 255 cabeças
        • 63 setores de 512 bytes
        • 525 cilindros
        • Capacidade: 255 x 63 x512 x 525
      • 64 o setor mantém um mapa de setores na trilha
      • tecnologia atual permite até 8 pratos com 16 cabeçotes
        • diferença no número de cabeçotes é lógico
    • Métodos de acesso a dado
      • Acesso a um dado implica em fornecer superfície, trilha e setor
      • Método CHS (Cylinder, Head, Sector)
      • Método LBA (Linear Block Adressage)
        • necessita de suporte por hardware (firmware)
        • converte um setor lógico em coordenadas CHS
    • Desempenho do Disco
      • Para ler/escrever dados é necessário posicionar o cabeçote na trilha e setor desejados
      • 3 tempos envolvidos
        • tempo de posicionamento (seek time)
          • tempo necessário para posicionar o cabeçote na trilha desejada
        • tempo de latência rotacional
          • tempo para atingir o início do setor a ser lido/escrito
        • tempo de transferência
          • tempo para escrita/leitura efetiva dos dados
    • Temporização de acesso ao disco cabeçote leitura/escrita trilha seek time setor transfer time latency time t acesso =t seek + t latência + t transf
    • Tempo de Posicionamento
      • Possui duas componentes
        • tempo de acionamento e aceleração do cabeçote
        • tempo de deslocamento até atrilha desejada
      • Não é linear em função do número de trilha
        • tempo de identificação da trilha (confirmação)
      • tempo médio de seek
        • fornecido pelo fabricante
          • 5 a 13 ms (tecnologia ano 2003)
    • Tempo de Latência Rotacional
      • Definido pela velocidade de rotação do motor
        • discos rígidos (ano ref. 2000)
          • 5.400 a 10.000 rpm
        • floppy
          • 300 a 600 rpm
      • Estima-se o tempo médio
        • 3 ms para um disco de 10.000 rpm
    • Tempo de Transferência
      • Depende da velocidade de rotação
      • tempo médio de acesso é dado por:
      T = b rN T - tempo de transferência b - número de bytes a serem transferidos N - número de bytes em uma trilha r - rotação do disco em rpm T acesso = T seek_médio + + 1 2r b rN
    • Exemplo de transferência
      • Acessar um arquivo de dados de 1.3 MB armazenado em disco com as seguintes características:
        • T seek_médio =10ms, 10.000 rpm, 512 Bytes por setor, 320 setores/trilha
        • caso 1: Acesso seqüêncial(2560 setores=8trilhas x 320 setores)
          • T acesso = 10 ms + 8 x (3 ms + 6 ms) = 0.082 s
        • caso 2: Acesso aleatório (leitura de um setor por vez)
          • T acesso = 2560 ms x ( 10 + 3 ms + 6 ms) = 33.328 s
    • Entrelaçamento
      • Forma de aumentar o desempenho no acesso ao disco
      • Objetivo
        • evitar latência rotacional em setores adjacentes
      • Técnica consiste em numerar os setores não mais de forma contígua mas sim com um espaço entre eles
      0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 11 6 1 12 7 2 13 8 3 14 9 4 15 10 5 fator de entrelaçamento = 0 fator de entrelaçamento = 1
    • Escalonamento do Disco
      • Tratar E/S de forma eficiente se traduz em obter um tempo de acesso rápido e explorar ao máximo a largura de banda do disco
        • minimizar o tempo de posicionamento (seek)
      • Largura de banda do disco
        • número total de bytes transferidos, dividido pelo tempo decorrido entre o primeiro acesso e a conclusão da transferência
      • Algoritmos para reduzir tempo de seek
        • algoritmos de escalonamento de disco
          • forma de organizar atendimento de requisições
            • FCFS, SST, SCAN, C-SCAN, etc...
      • Exemplo para análise
        • Disco organizado em 200 trilhas (0 a 199)
        • Posição inicial do cabeçote: trilha 53
        • Atender a seguinte fila de requisições:
          • 98, 183, 37, 122, 14, 124, 65, 67
      Escalonamento do Disco
    • FCFS - First Come First Served
      • Acessa na ordem em que chegam as requisições
      • Deslocamento equivalente a 640 trilhas
    • STF - Shortest Seek Time First
      • Seleciona menor seek em relação a posição atual do cabeçote
      • Análogo ao SJF (Shortest Job First)
        • pode provocar postergação de requisição (starvation)
      • Deslocamento equivalente a 236 trilhas
    • Scan
      • O cabeçote inicia movimento em uma extremidade do disco e se movimenta na outra direção
        • executa requisições na ordem desta varredura
        • ao chegar no outro extremo, inverte o sentido e repete o procedimento
      • Conhecido como algoritmo do elevador
    • Scan
      • Deslocamento equivalente a 208 trilhas
    • C-Scan
      • Variação do algoritmo scan
      • Procedimento idêntico ao do Scan, porém as requisições são atendidas apenas em um sentido da varredura
        • ao final da varredura o cabeçote é reposicionado no início do disco
      • Fornece uma visão lógica onde o disco é tratado como uma fila circular
        • Oferece um tempo médio de acesso mais uniforme que o algoritmo Scan
    • C-Scan
    • C-Look Versão do C-Scan que não precisa atingir a extremidade para voltar
    • Outras variações de Scan
      • N-step-Scan
        • Divide a fila de requisições em um certo número de filas de tamanho N
        • Cada fila é atendida separadamente usando Scan
        • Novas requisições são inseridas em filas diferentes da que está sendo atendida no memomenta da chegada destas requisições
      • FScan
        • Baseada em 2 filas
        • Uma fila recebe todas as requisições enquanto a outra é empregada para atender as requisições já feitas
    • Selecionando algoritmo de escalonamento de disco
      • SSTF é o método mais empregado e é mais natural
      • SCAN e C-SCAN têm um desempenho melhor em sistemas com uma grande carga no disco
      • O desempenho depende do número e tipo de requisições.
      • Requisições a disco podem ser influenciadas pelo método de alocação de arquivos
      • O algoritmo de escalonamento de disco deve ser escrito como um módulo separado do S.O para permitir sua fácil substituição por outro
      • Tanto o SSTF ou Look são uma escolha razoável como algortimo default
    • RAID
      • Redundant Array of Inexpensive Disks
        • Conjunto de discos rígidos vistos pelo S.O. como um único disco lógico
        • Dados são distribuídos entre os diferentes discos físicos
          • permite acesso paralelo a dados aumentando o desempenho
        • Possibilita armazenamento de informações de paridade para permitir a recuperação de dados em caso de problemas no disco
          • aumento de possibilidade de falhas já que existem mais dispositivos envolvidos
          • Diferentes níveis
    • RAID 0 (sem redundância)
      • Dados são distribuídos nos diferentes discos do array
        • Requisições a blocos de dados armazenados em discos distintos podem ser efetuados em paralelo
      • O disco lógico é dividido em unidades de distribuição(strips)
        • Strip pode ser blocos físicos, setores, etc...
        • Strip são mapeados de forma round-robin em n discos (stripes)
        • Técnica conhecida como stripping
    • RAID 0 (sem redundância)
    • Raid 0 (sem redundância)
    • RAID 1 (espelhamento)
    • RAID 2 (redundância com código Hamming) -Discos são sincronizados, i.e., todos os cabeçotes estão posicionados no mesmo ponto (trilha e setor) -Todos os discos são acessados na realização de um E/S -A unidade de stripping é byte ou palavra -Executa o cálculo do código Hamming e o armazena em disco separados
    • RAID 3 (paridade) Similar ao RAID 2 Diferença é que só existe um disco de redundância
    • RAID 4 (paridade de bloco)
    • RAID 5 (paridade de bloco distribuído) Paridade distribuída em todos os discos segundo política round-robin
    • RAID 6 (redundância dupla) Vantagem - permite a recuperação dos dados com até dois discos com falhas
    • RAID 10
      • Combinação de RAID 0 e RAID 1
      • Os dados são divididos em strips (RAID 0) e após os discos são espelhados (RAID 1)
    • RAID - configurações
      • Podem ser implementadas em:
        • Hardware (firmware)
          • diferentes discos físicos são organizados de forma a compor um disco lógico
          • organização é configurada e gerenciada pelo controlador de disco
          • controlador realiza a geração das informações de redundância (firmware)
        • Software
          • Diferentes partições (discos lógicos) compõe um único disco lógico
          • RAID é feito pelo driver de disco (software)
          • Normalmente implementa RAID 1 e RAID 5