Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS SIMONE MARKENSON Rio de Janeiro, maio de 2011 1 CONTEÚDO DA AULA Diversidade de periféricos Velocidade Representação de caractere Unidade de transferência Tratamento de erro Programação independente do periférico Utilização de novos periféricos MOTIVAÇÃO As operações de E/S devem ser o mais simples e transparente possível. O subsistema de E/S de um sistema operacional deve isolar a complexidade de operações específicas para cada tipo de dispositivo. É composto por um conjunto de rotinas que possibilita a comunicação com qualquer dispositivo conectado ao computador sem que o usuário se preocupe com os detalhes do dispositivo. SUBSISTEMA DE E/S COMPONENTES – E/S COMPONENTES - RESUMO E/S Nível do usuário E/S independente do dispositivo Interface de I/O para aplicação Driver (mecanismos de acesso ao dispositivo fornecendo uma visão uniforme) Hardware S.O. E/S independente do dispositivo Funções de gerenciamento de alocação e uso do dispositivo que não dependem de características do hardware E/S independente do dispositivo Escalonamento de E/S: ordem de atendimento as requisições Denominação: associação de um nome a um periférico Buferização: área de memória que compatibiliza a comunicação entre dispositivos com velocidades e unidades de transferência diferentes. Cache de dados: armazena em memória os dados mais recentes (cópia) Alocação e liberação de uso Direitos de acesso Tratamento de erros Device Driver Implementa a comunicação do subsistema de E/S com um dispositivo específico. Responsável pela tradução do que é solicitado pela aplicação para o que é entendido pelo dispositivo Recebem comandos gerais e os transforma e comandos específicos para o dispositivo. CLASSIFICAÇÃO Quanto a comunicação Comunicação com o usuário Comunicação com equipamento Comunicação com dispositivos remotos Quanto a transferência de dados Orientado a bloco (ex. disco) Orientado a caractere (ex. terminal) CLASSIFICAÇÃO Forma de comunicação Programmed I/O: Tratamento de acesso de responsabilidade do programador, fazendo com que a aplicação aguarde o término da operação de E/S. Interrupt-driven I/O : O processo que executou a operação permanece bloqueado até que a operação se complete. O Processador é interrompido quando a operação de E/S termina colocando o processo no estado de pronto. Direct memory Access (DMA): Transferência dos dados diretamente para a memória sem interferência do processador Escalonamento de E/S Baseado na fila de requisição FiFo (First in First out) Mais simples Atendimento na ordem dos pedidos Prioridade fora do controle do gerenciador LiFo (Last in First out) Diminui o movimento da cabeça de leitura em arquivos seqüenciais Escalonamento de E/S Baseado na localização SSTF (shortest service time first) Fila é reordenada para atender as requisições de forma a minimizar o movimento da cabeça Possibilidade de starvation Scan (elevador) Variação do SSTF porém estipula uma direção preferencial O sentido se inverte ao final da varredura C-Scan Semelhante ao Scan porém com um sentido único exemplo Seqüência iniciando na trilha 100: 55,58,39,18,90,160,150,38,184 FIFO Seqüência iniciando na trilha 100: 55,58,39,18,90,160,150,38,184 SSTF exemplo Seqüência iniciando na trilha 100: 55,58,39,18,90,160,150,38,184 SCAN exemplo Seqüência iniciando na trilha 100: 55,58,39,18,90,160,150,38,184 C-SCAN exemplo Exercício Uma unidade de disco com 5000 cilindros , numerados de 0 a 4999 esta atendendo a um pedido no cilindro 20, sendo o atendimento anterior feito no cilindro 15. Considerando as requisições abaixo em ordem de chegada calcule o tempo gasto para atender as requisições para as políticas de escalonamento FIFO e C-SCAN sabendo que são gastos 6 ms entre cada trilha. Requisições: 10 – 22 – 20 – 2 – 40 – 6 - 38 Solução: FIFO: Posição atual = 20 20 10 10 10 22 12 22 20 2 20 2 18 2 40 38 40 6 34 6 38 32 ----- 146 * 6 = 876 876 e 59914 ms 30 e 28 ms 59914 e 59928 ms 876 e 59928 ms Exercício Uma unidade de disco com 5000 cilindros , numerados de 0 a 4999 esta atendendo a um pedido no cilindro 20, sendo o atendimento anterior feito no cilindro 15. Considerando as requisições abaixo em ordem de chegada calcule o tempo gasto para atender as requisições para as políticas de escalonamento FIFO e C-SCAN sabendo que são gastos 6 ms entre cada trilha. Requisições: 10 – 22 – 20 – 2 – 40 – 6 - 38 Solução: C-SCAN: Posição atual = 20 (subindo) 20 4999 4979 4999 0 4999 0 10 10 ----- 9988 * 6 = 59928 876 e 59914 ms 30 e 28 ms 59914 e 59928 ms 876 e 59928 ms
Compartilhar