• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
24
0
0

Texto

(1)

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)

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

(3)

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

(4)

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

(5)

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]

(6)

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

(a) Início da operação (b) tratamento da interrupção 11/48

Confirma o recebimento Retorna para o processo que executava antes da 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

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

(7)

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

(8)

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)

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

Discos magnéticos

39/48

r é rps

b é nº bytes por setor

N é quantidade de bytes em uma trilha

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

(21)

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

(22)

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

(23)

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:

(24)

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.

Referências

Documentos relacionados

Para tratar a diversidade, a complexidade, e as diferentes formas de operações de cada periférico, as interfaces empregam no seu projeto um outro componente, o

Se o documento indica vários locais de publicação transcreve se o que Se o documento indica vários locais de publicação, transcreve-se o que estiver em maior evidência seguido

• Gerar nos alunos de Análise e desenvolvimento de software a capacidade de analisa, documentar e especificar sistemas computacionais de informação.. Estes devem fazer uso

• O ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido

• Deve-se avaliar o conjunto de requisitos essenciais para a definição do Documento de Visão do software e este deve incluir o escopo do projeto e suas limitações, bem como

• Depois de determinar os custos e benefícios para uma possível solução, você pode realizar a análise de custo- benefício.. Estudo

• Requisitos são tipicamente utilizados como informações fundamentais para a fase de projeto de um produto ou serviço, especificando as propriedades e funções necessárias

Na Nova Zelândia em sistemas pastoris as vacas produzem em média 17 litros de leite ao dia, enquanto nos produtores analisados neste estudo a média de