SOP - TADS Gerência de Entrada/Saída - 2

Documentos relacionados
Sistemas Operacionais Capítulo 5 Entrada/Saída

Capítulo 5 Entrada/Saída

Infra-Estrutura de Software. Entrada / Saída

Infra-Estrutura de Software

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Capítulo 5 Entrada/Saída

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Sistemas Operacionais. Entrada/Saída

SOP - TADS Fundamentos de Sistemas Operacionais

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Revisão Ultimas matérias

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída

Entrada e Saída e Dispositivos

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Capítulo 5 Entrada/Saída

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas de Entrada e Saída

Sistemas de entrada/saída

DISCO MAGNÉTICO Cabeçote Trilha

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

SSC0640 Sistemas Operacionais I

Gerência de Dispositivos. Adão de Melo Neto

Sistemas Operacionais. Sistema de entrada e Saída

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Gerência de Entrada e Saída

Gerência de Dispositivos. Adão de Melo Neto

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Sistemas Operativos I/O. Rui Maranhão

Introdução. Gerenciamento de Armazenamento

Sistemas Operacionais

SOP - TADS Escalonamento de Processos

ARQUITETURA DE COMPUTADORES UNIDADES DE MEMÓRIA. Prof: Leandro Coelho

Entrada e saída Introdução hardware de E/S

Discos. Hardware Tadeu Ferreira Oliveira -

Introdução ao Gerenciamento de Entrada e Saída (E/S)

SSC0640 Sistemas Operacionais I

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ENTRADA E SAÍDA PROFESSOR CARLOS MUNIZ

Revisão Ultima aula [1/2]

ENSINO À DISTÂNCIA UNIDADE IV

SSC0611 Arquitetura de Computadores

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Sistemas Operacionais

Cap. 12 Gerência de Dispositivos 1

Sistemas Operacionais

Sistemas Operacionais

Arquitetura de Computadores

Implementação de Diretórios (1)

Introdução e Conceitos Básicos

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Infra-Estrutura de Software

Fundamentos de Sistemas Operacionais

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Fundamentos de Arquivos e Armazenamento Secundário

18/10/2010. SO pode atuar de duas maneiras diferentes:

Problemas com Entrada e Saída

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída


Sistemas de Informação. Sistemas Operacionais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES DISPOSITIVOS DE ENTRADA E SAÍDA. Prof. Dr. Daniel Caetano

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Sistemas Operacionais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Fundamentos de Sistemas Operacionais

Aula 24: E/S: Dispositivos Típicos e Barramentos

Barramento. Prof. Leonardo Barreto Campos 1

Dispositivos de Entrada e Saída

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Introdução aos Sistemas Operacionais

Sistemas Operacionais. Prof. MSc André Y. Kusumoto

LISTA DE EXERCÍCIOS 02

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Dispositivos de Entrada e Saída

SOP - TADS Processos. Revisão Ultima aula

ORGANIZAÇÃO DE COMPUTADORES DISPOSITIVOS DE ENTRADA E SAÍDA

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

Sistemas Operacionais

Organização e Arquitetura de Computadores I

Dispositivos de Entrada e Saída

Entrada/Saída e Armazenamento

Arquitetura de Computadores. Revisão Volnys Bernal. Agenda. Revisão: Arquitetura de Computadores. Sobre esta apresentação

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

SOP - TADS Impasses - Deadlock

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Organização de Computadores 1

Hierarquia. Hierarquia

Departamento de Engenharia Elétrica - EESC-USP. Organização de Computadores. Memórias Parte 2. Aula 5. Prof. Dr. Marcelo Andrade da Costa Vieira

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Transcrição:

SOP - TADS Gerência de Entrada/Saída - 2 Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Objetivos do Software de E/S Técnicas para realizar E/S Camadas do Software de E/S Discos magnéticos 2/48 1

Objetivos do Software de E/S Interdependência do dispositivo: Programas de usuário são capazes de lidar com quaisquer dispositivos Os programas não devem se preocupar com as diferenças dos dispositivos O SO deve tratar as diferenças Ex.: Um programa que lê uma entrada deveria ser capaz de ler de: um disco, um CD, um teclado, sem que sejam necessárias modificações para cada dispositivo 3/48 Objetivos do Software de E/S Nomeação uniforme: Todos os dispositivos devem ser nomeados da mesma maneira, sem distinções O nome de um arquivo, ou dispositivo deve ser simplesmente uma cadeia de caracteres Ex. No UNIX todos os discos podem ser integrados na hierarquia do sistema de arquivos Ao montar um dispositivo USB em um diretório, significa que ao copiarmos os dados ao diretório copiaremos ao dispositivo USB 4/48 2

Objetivos do Software de E/S Tratamento de Erros: Muitos erros de dispositivos de E/S podem ser tratados em baixo nível, sem chegar ao usuário O ideal é tratar o mais próximo possível do hardware A recuperação de um erro pode ser feita com transparência, em baixo nível, sem que níveis superiores saibam que ele ocorreu Ex.: Verificação de consistência de um dado do disco 5/48 Objetivos do Software de E/S Tipo de transferência: Síncrona: Bloqueante O SO precisa implementar através de operações assíncronas Assíncrona: Orientada a interrupção O chamador não espera pelo resultado, ele solicita a operação e mais tarde recupera o resultado Em uma operação read, o programa é automaticamente suspenso até que os dados estejam disponíveis no buffer 6/48 3

Objetivos do Software de E/S Utilização de buffer: Operações de E/S exigem que o SO gerencie buffers de armazenamento temporário de dados Dados provenientes de um dispositivo não devem ser armazenados diretamente em seu destino Transferência de dados entre buffers pode ter um impacto significativo no desempenho 7/48 Técnicas para realizar E/S E/S programada E/S orientada a interrupções E/S usando DMA 8/48 4

Técnicas para realizar E/S E/S programada [1/2] A CPU deve fazer todo o trabalho Forma mais simples de se implementar Exemplo: Impressão de uma string 1. SO copia uma String para um buffer 2. Dados do buffer são enviados caractere a caractere para a impressora É caracterizada pela espera ocupada ou polling CPU fica muito tempo ociosa Esse tipo de solução é adequado para sistemas embarcados ou se a E/S é muito rápida (ociosidade pequena) 9/48 Técnicas para realizar E/S E/S programada [2/2] 10/48 5

Técnicas para realizar E/S E/S orientada a interrupções [1/2] Ao invés da CPU esperar pelo dispositivo, ela inicia a operação de E/S e espera uma interrupção para continuar Outro processos podem ser executados até ocorrer a interrupção Impressora esta preparada para aceitar o próximo, gera uma interrupção Não existem mais caracteres a imprimir, acorda o solicitante Imprime o caractere Confirma o recebimento Retorna para o processo que executava antes da interrupção (a) Início da operação (b) tratamento da interrupção 11/48 Técnicas para realizar E/S E/S orientada a interrupções [2/2] Mais eficiente que a E/S programada Diminui a ociosidade CPU ainda é interrompida para cada caractere impresso 12/48 6

Técnicas para realizar E/S E/S usando DMA CPU programa o controlador e é interrompida somente no final da operação Por exemplo, depois de todo buffer ser impresso Em geral é mais eficiente CPU é menos interrompida e fica livre para outros processos Problema: O controlador de DMA pode ser mais lento que a CPU Assim não será capaz de dirigir o dispositivo em sua capacidade máxima 13/48 Camadas do Software de E/S 7

Camadas do Software de E/S Software de E/S é organizado em 4 camadas Cada uma tem uma função bem definida 15/48 Camadas do Software de E/S Tratadores de interrupção As interrupções devem ser escondidas o máximo possível Uma forma de fazer isso é bloquear o driver que iniciou uma operação de E/S até que uma interrupção indique que a E/S foi completada Rotina de tratamento de interrupção cumpre sua tarefa E então desbloqueia o driver que a chamou Tratamento de interrupções em software envolve: Trocar de contexo (processo corrente tratador) Tratar a interrupção Escolher um novo processo para executar (escalonador) Trocar de contexto (tratador novo processo) 16/48 8

Camadas de Software de E/S Drivers de dispositivo [1/3] Vimos que cada controlador tem registradores para controle e status O número de registradores variam de dispositivo para dispositivo Cada dispositivo precisa de um código específico de tratamento (driver de dispositivo) o driver de um mouse deve tratar dados relacionados a movimento e a botões pressionados; o driver de um disco guarda informações como: saber sobre trilhas, setores, cabeçotes, movimento do braço, tempos de ajuste, etc. Geralmente, os drivers são escritos pelo fabricante Relacionado a questões de confiabilidade e segurança É desejável que um driver trate uma classe de dispositivos Fortemente relacionados, sejam muito semelhantes Não podemos usar um driver de um mouse para um joystick 17/48 Camadas de Software de E/S Drivers de dispositivos [2/3] São classificados em duas categorias: Dispositivos de blocos: Disco, fita... Dispositivos de caractere: Mouse, teclado, impressora Em geral os SO definem uma interface padrão para cada categoria Procedimentos que o restante do SO pode utilizar para fazer o driver trabalhar Algumas funções de um driver: Tratar requisições abstratas de leitura ou gravação Inicializar o dispositivo Tratar necessidade de energia Tratar eventos 18/48 9

Camadas de Software de E/S Toda comunicação é feita pelo barramento 19 Camadas de Software de E/S Software E/S independente de dispositivo Embora boa parte do software de E/S seja específica do dispositivo, outras partes são independentes Tratar funções comuns para todos dispositivos de E/S: 1. Interface uniforme para os drivers de dispositivos 2. Uso de buffers de E/S 3. Relatório de erros 4. Alocação e liberação de dispositivos dedicados 5. Tamanho de bloco independente de dispositivo 20/48 10

Camadas de Software de E/S Interface uniforme para os drivers dos dispositivos Fazer todos os dispositivos de E/S e drivers parecerem mais ou menos os mesmos Se os dispositivos possuem interfaces diferentes, a cada novo dispositivo o SO deve ser modificado Reconstruir o SO para cada dispositivo não é uma boa ideia. 21/48 Camadas de Software de E/S Interface uniforme para os drivers de dispositivo a) Sem interface-padrão do driver Funções diferem de driver para driver b) Com interface-padrão do driver 22/48 11

Camadas de Software de E/S Uso de buffers de E/S a) Entrada sem uso de buffer b) Uso de buffer no espaço do usuário c) Uso de buffer no núcleo d) Buffer duplo no núcleo 23/48 Camadas de Software de E/S Relatório de erros Forma como o SO vai lidar com os erros ocorridos durante uma E/S São comuns Podemos classifica-los em dois tipos: Erros de programação Escrever em um dispositivo de entrada (teclado) Fornecimento de endereços inválidos» Atitude a ser tomada: retornar o código (tipo) de erro ao processo envolvido Erros reais de E/S Tentativa de escrita em um bloco danificado Podem ser irrecuperáveis» Atitude deve ser decidida pelo driver 24/48 12

Camadas de Software de E/S O mau uso, ou má programação de drivers de dispositivos está relacionado a grande parte dos problemas de um SO 25/48 Camadas de Software de E/S Alocação/Liberação de recursos Alguns dispositivos tais como gravadores de CD/DVD, podem ser usados por apenas um processo por vez O SO deve examinar as requisições de uso de um dispositivo, podendo aceita-las ou rejeita-las Associar chamadas de sistema ao dispositivo (open) Caso o dispositivo não possa ser alocado, a chamada pode falhar ou o chamador ser bloqueado Esta é uma decisão de projeto 26/48 13

Camadas de Software de E/S Software de E/S no espaço do usuário Chamadas de sistema e funções de biblioteca que permitem ao usuário fazer E/S read, write, printf, scanf,... Spooling Lidar com dispositivos dedicados a E/S em sistemas de multiprogramação Ex.: Uma impressora: Ao invés de cada usuário abrir o arquivo especial de caractere para imprimir, eles enviam para um diretório que têm um processo responsável por fazer isto 27/48 Camadas de Software de E/S Resumindo 28/48 14

Discos Discos magnéticos O disco é um dos dispositivos de E/S mais importantes Serve não apenas como memória secundária (de massa) como também oferece suporte a outras funções do SO Swapping Memória virtual Consideremos aqui discos magnéticos (hard disk) Princípios de funcionamento similares a outros dispositivos como CD e DVD 30/48 15

Discos magnéticos Organização dos discos [1/2] Um disco é formado por um conjunto de pratos Superfícies cobertas por um material ferromagnético A superfície do disco é magnetizada para armazenar os bits desejados Cabeça (cabeçote) de leitura e escrita converte bits de/para padrões magnéticos registrados na superfície do disco Há uma ou duas cabeças por superfície Cada disco é organizado em trilhas concêntricas Cada trilha é dividida em setores de tamanho fixo Um cilindro representa uma trilha em todas as superfícies 31/48 Discos magnéticos Organização dos discos [2/2] 32/48 16

Discos magnéticos Formato dos setores Cada setor possui o seguinte formato Preâmbulo: marca o início do setor Dados: geralmente em blocos de 512 bytes ECC: um código de correção de erros Permite corrigir erros de leitura em alguns bits de dados 33/48 Discos magnéticos Evolução dos parâmetros de disco Tempo de posicionamento diminuiu 7 vezes Taxa de transferência aumentou 1300 vezes Capacidade aumentou 50 mil vezes 34/48 17

Discos magnéticos Acesso aos dados Para acessar dados, é preciso localizar o bloco desejado Superfície, trilha setor Existem dois métodos básicos de endereçamento CHS (cylinder, header, sector): usando os componentes LBA (Linear Block Adressing): usando um nº de bloco O método mais usado atualmente é o LBA O controlador é responsável por converter um número de bloco lógico nos parâmetros físico adequados Permite mascarar detalhes Variações do número de setores por trilhas: zonas Setores defeituosos 35/48 Discos magnéticos Desempenho do disco Para ler e escrever dados é necessário posicionar a cabeça de leitura e gravação O tempo da operação é dado por três componentes: Tempo de posicionamento (seek): tempo necessário para levar o braço até a trilha desejada Latência rotacional: tempo necessário para que o setor desejado passe sobre o cabeçote Tempo de transferência: tempo necessário para transferir efetivamente os dados Tempo de posicionamento domina 36/48 18

Discos magnéticos Determinando os componentes [1/3] O tempo de seek é uma característica do disco, e tipicamente é fornecido pelo fabricante Muitas vezes se trabalha com um valor médio A latência rotacional depende da velocidade de rotação e de qual setor está passando em baixo do cabeçote quando o braço chega à trilha desejada No melhor caso o setor desejado é o próximo No pior caso, o setor desejado acabou de passar Na média, a latência é dada pelo tempo de meia rotação 37/48 Discos magnéticos Determinando os componentes [2/3] O tempo de transferência depende da velocidade de rotação e do tamanho e densidade dos setores b é a quantidade de bytes em um setor r é a velocidade de rotação (rps) N é a quantidade de bytes em uma trilha 38/48 19

Discos magnéticos r é rps b é nº bytes por setor N é quantidade de bytes em uma trilha 39/48 Discos magnéticos Exemplo 1: Qual o tempo médio necessário para ler um setor de um disco com os seguintes parâmetros? Tempo de seek médio: 10 ms Velocidade de rotação: 10.000 rpm Bytes/setor: 512 bytes Bytes/trilha: 32.768 40/48 20

Discos magnéticos Exemplo 2: Qual o tempo médio necessário para ler cinco setores consecutivos em um disco com os seguintes parâmetros: Tempo de seek médio: 6,9 ms Tempo de rotação: 8,33 ms Bytes/setor: 512 Setores/trilha: 281 41/48 Discos magnéticos Entrelaçamento [1/2] Alguns discos não conseguem ler setores adjacentes de forma consecutiva devido à transferência do bloco de dados do buffer do controlador para a memória, o próximo setor passa pelo cabeçote antes que a leitura possa iniciar Isso implica em uma rotação adicional para cada setor Uma solução é inserir setores entre setores logicamente adjacentes Dá tempo para que o próximo setor seja lido 42/48 21

Discos magnéticos Entrelaçamento [2/2] a) Sem entrelaçamento b) Entrelaçamento simples c) Entrelaçamento duplo 43/48 Discos magnéticos Escalonamento de disco Como o tempo de posicionamento domina o tempo de acesso, redução nesse tempo melhoram o desempenho dos acessos ao disco Embora o tempo de posicionamento seja uma característica do disco, é possível mudar a ordem que as requisições de escrita e leitura são atendidas para minimizar os deslocamentos do braço Essa é a função dos algoritmos de escalonamento de disco FCFS SSF Elevador 44/48 22

Discos magnéticos FCFS (first come first served) As requisições são atendidas na ordem de chegada Consideremos um exemplo: Disco tem 40 cilindros Está sendo atendida uma requisição no cilindro 11 Chegam requisições para os cilindros: 1,36,16,34,9,12 A distância total para percorrer o conjunto de requisições é de 111 cilindros 45/48 Discos magnéticos SSF (Shortest Seek First) A requisição seguinte a ser atendida é aquela mais próxima do cilindro atual Algumas requisições podem levar muito tempo para serem atendidas Concentração de requisições em uma região do disco Exemplo: 46/48 23

Discos magnéticos Algoritmo do elevador Atende todas as requisições em uma direção Quando chega no final, muda a direção e atende as demais Exemplo (inicialmente subindo): 47/48 Bibliografia Andrew S. Tanenbaum. Sistemas Operacionais Modernos, 3a Edição. Capítulo 5.Pearson Prentice-Hall, 2009. 24