Gerenciador de Entrada/Saída - PDF Free Download
Download "Gerenciador de Entrada/Saída"
Luís de Escobar Azevedo
1 Universidade Federal do ABC BC Sistemas Operacionais (SO) Gerenciador de Entrada/Saída (aula 11) Prof. Marcelo Zanchetta do Nascimento
2 Roteiro Princípios básicos de hardware de E/S; Operações dos módulos de E/S; Tipos de E/S; Princípios básicos de software de E/S; Organização dos discos; Desempenho; Escalonamento de dados; Leitura Sugerida 2
3 Princípios básicos de hardware Periférico é um dispositivo conectado ao computador de forma a possibilitar sua interação com o mundo externo; Não são conectados diretamente aos barramentos (dados, endereços) do computador; São interconectados aos barramentos internos do computador interfaces. Elemento chave para transfêrencia de dados 3
4 Princípios básicos de hardware Razões para utilizar as interfaces: Inúmeros tipos de periféricos, com diferentes formas de operação, sendo impraticável implantar no computador uma lógica que permita a operação com todos ou mesmo parte destes dispositivos; Interface emprega em seu projeto um outro componente denominado controlador. Operações como: ler dados, escrever dados, etc. 4
5 Princípios básicos de hardware Dispositivos de E/S: UCP Memória Principal Controlador de Impressora Controlador de Disco Controlador de Fita Im p ressor a Disco Fita 5
6 Como os controladores interagem com o sistema operacional? Controlador é programado via registradores interno de configuração (barrramento de dados e de endereços): Recebem ordens do processador, Fornece o estado de uma operação, Permite a leitura e escrita de dados do periférico. Registradores são visto como posições de memória: E/S mapeamento em memória; E/S mapeamento em espaço de entrada e saída. 6
7 Mapeamento em espaço de memória e em espaço de entrada e saída Espaço de endereçamento Conjunto de endereços de memória reservada para que o processador possa endereçar dados Pode haver um espaço de endereçamento distinto a entrada e saída: Cada registrador é associado a um número de porta de E/S Instruções específicas para acessar um ou outro espaço de endereçamento (registradores): mov, in, out 7
8 Mapeamento em espaço de memória Um único espaço de endereçamento (memória e E/S) Projeto do computador reserva uma parte de área de memória de endereçamento para E/S Intruções de acesso do tipo mov end, dados pode referenciar uma posição real da memória como um registrador associado a um periférico. Ex. Processadores da família motorola 8
9 Mapeamento em espaço de E/S Processador possui duas áreas distintas de endereçamento: Acesso a memória: instruções (mov) Acesso a E/S: instruções (in, out) Numericamente o valor do endereço pode ser o mesmo nos dois casos: Diferença depende da instrução empregada (mov ou in). Pode ter uma parte alocada da memória para mapeamento de E/S Ex. Processadores Intel 9
10 Operação de módulos de E/S Via Acesso Direto à Memória (DMA) Utiliza um hardware especial, controlador DMA, para tranferência de dados; A técnica que propõe utilizar uma única interrupção para efetuar a transferência de um bloco de dados diretamente entre o recurso e a memória, sem o envolvimento da CPU => reduzindo o número de operações; 10
11 Operação de módulos de E/S Via Acesso Direto à Memória (DMA) Eficiente quando envolve muitos dados (leitura de disco). Funcionamento: CPU inicializa o controlador DMA fornecendo informações sobre quantidade de dados a transferir, origem e destino; CPU dispara a execução do DMA, iniciando a transferência; CPU se dedica a outra tarefa; Ao final da operação o DMA aciona uma interrupção para sinalizar o término da operação; 11
12 Operação de módulos de E/S Via Acesso Direto à Memória (DMA) 1 UCP Buffer de E/S 4 Buffer Registradores 2 Controlador de Disco Memória Pr incipal Con trolador de DMA 3 Disco 12
13 Princípios básicos de software de E/S O objetivo é padronizar as rotinas de acesso aos periféricos de forma a reduzir o número de rotinas; O subsistema é organizados em camadas: Camadas mais baixas apresentam detalhes de hardware: Drivers e manipuladores de interrupção; Camadas mais altas apresentam interface para o usuário: Aplicações de Usuário; Chamadas de Sistemas; Software Independente de E/S. 13
14 Princípios básicos de software de E/S Interface padrão para drivers de dispositivos (API) 14
15 Princípios básicos de software de E/S Software de E/S no nível Usuário: Bibliotecas de E/S são utilizadas pelos programas dos usuários Chamadas ao sistema (system calls); Software Independente de E/S: Realizar as funções comuns a qualquer dispositivo; Fazer o escalonamento de E/S; Atribuir um nome lógico a partir do qual o dispositivo é identificado; Ex.: UNIX (/dev) Prover buffering: ajuste entre a velocidade e a quantidade de dados transferidos; Cache de dados: armazenar na memória um conjunto de dados 15 freqüentemente acessados;
16 Princípios básicos de software de E/S Software Independente de E/S: Reportar erros e proteger os dispositivos contra acessos indevidos : Gerenciar alocação, uso e liberação dos dispositivos acessos concorrentes; Transferência de dados: Síncrona (bloqueante): requer bloqueio até que os dados estejam prontos para transferência; Assíncrona (não-bloqueante): transferências acionadas por interrupções; mais comuns; Tipos de dispositivos: Compartilháveis: podem ser utilizados por vários usuários ao mesmo tempo; Exemplo: disco rígido; Dedicados: podem ser utilizados por apenas um usuário de cada vez; 16
17 Princípios básicos de software Drivers de dispositivos Responsável pelo gerenciamento do dispositivo físico de E/S; Código específico a um dispositivo; Recebe solicitações da camada de gerenciamento do dispositivo (lógico): Subdivide os periféricos em função da unidade de transferência de dados; Orientado a caractere; Orientado a bloco; Responsável por tratamento de erros; 17
18 Princípios básicos de software Drivers de dispositivos Rotina de E/S Ler bloco n Dr iver de Disco Ler setor x Con tr olador de Disco Discos 18
19 Princípios básicos de software Funções gerais a todos os dispositivos de E/S: Escalonamento de E/S -> serviços responsável por reordenar requisições de acesso a dispositivos de E/S buscando melhorar desempenho do sistema; Denominação -> nome lógico para identificação do periférico; Buferização > memória onde dados são temporariamente armazenados quando são transferidos entre diferentes camadas do software de E/S; Cache de dados armazena na memória um conjunto de dados que estão sendo freqüentemente acessado; 19
20 Princípios básicos de software Alocação e liberação > utiliza o spooling (sequencializa os pedidos de acesso e atende um de cada vez) para organizá-lo em uma fila especial; Direitos a acesso > Acesso restrito a autorização (UNIX utiliza um bit de permissão de acesso); Tratamento de erros > manipula o erro informando a camada superior o sucesso ou fracasso de uma operação. 20
21 Dispostivios perífericos tipicos Existem uma grande variedade de dispositivos: Dispositivos apropriados para sistemas computacionais de grande porte; Exemplo:terminais de vídeo. Dispositivos de armazenamento secundário; Dispositivos de comunicação, etc; Para o sistema operacional: o periférico mais importante é o disco magnético, principalmente o disco rígido (Oliveira et al., 2001). 21
22 Organização dos Discos Possui um ou vários discos (disks) => às vezes chamados de pratos (platters), conectados a uma haste que gira em alta velocidade; O conjunto de discos => dividido em circunferências concêntricas denominadas cilindros (cylinders); A cabeça de leitura (head) define as trilhas (track) => que é dividida radialmente em setores (sectors); 22
23 Organização dos Discos 23
24 Organização dos Discos Setores (sectors) Armazenamento de informações; Informações de controle: Exemplo: início, final do setor e ECC (Error Correcting Code); Entre as trilhas existe um espaço livre (inter-track gap) da mesma forma entre os setores (inter-track gap); Todo o espaço livre existente entre trilhas e setores não é utilizado por este dispositivo. 24
25 Organização dos Discos 25
26 Organização dos Discos Múltiplos pratos (disk pack) Vários pratos empilhados e concentrados; Cada prato um cabeçote de leitura/escrita (braço móvel); Mecanismo do cabeçote de leitura e escrita Contato físico entre a superfície magnética e o cabeçote; Distância física (air gap) da superfície magnética (menor do que uma partícula de fumaça); 26
27 Organização dos Discos 27
28 Desempenho Tempo de acesso O tempo necessário para mover até o cilindro correto => o tempo de acesso à trilha ou tempo de pesquisa da trilha (seek time); O tempo necessário para a cabeça ser posicionada no início do setor desejado, chamado de atraso rotacional (rotational delay); O tempo de transferência dos dados => a leitura ou escrita dos dados (transfer time ou transmission time). 28
29 Desempenho 29
30 Tempo de Posicionamento Possui duas componentes Tempo de acionamento e aceleração do braço do cabeçote; Tempo de deslocamento até a trilha desejada; Não é linear em função do número de trilhas Tempo de identificação da trilha; Tempo médio de busca (seek): Exemplo: Maxtor DiamondMax Plus 9 9,3 ms Toshiba MK8025GAS 8,9 ms 30
31 Tempo de latência rotacional Definido pelo velocidade de rotação do motor Estima-se o tempo médio: Exemplo: Maxtor DiamondMax Plus 9 4,2 ms WD Caviar 4,2 ms 31
32 Entrelaçamento Técnica: Forma de aumentar o desempenho no acesso ao disco; Evitar latência rotacional em setores adjacentes; Consiste em numerar os setores não mais de forma contígua, mas sim com espaço entre eles. E x e mp l o : - l e i t u r a d o s s e t o r e s 4 e 5. - e x i s t e m 2 s e t o r e s. 32
33 Escalonamento de Dados S.O. deve gerenciar recursos de forma eficaz; Um processo realiza uma operação de E/S em disco através de uma chamada de sistema (System Call) => reflete em posições diferentes de trilhas e setores do disco; Menor tempo de posicionamento pode melhorar substancialmente o desempenho do sistema; 33
34 Escalonamento de Dados Objetivo: Minimizar os movimentos da cabeça de leitura e maximizar o número de bytes transferidos para atender a um maior número de requisições; Algoritmos para realizar a movimentação da cabeça de leitura do disco. 34
35 Escalonamento de Dados Exemplo: Disco organizado em 200 trilhas (0-199); Posição inicial do cabeçote: trilha 53; Atender a seguinte lista de requisições: 96, 183, 37, 122, 14, 124, 65 e
36 FCFS (First Come First Served) Acesso na ordem em que as requisições são solicitadas; Obtém-se um deslocamento equivalente a 640 trilhas; 36
37 SSTF (Shortest Seek Time First) Seleciona a requisição com menor tempo de Seek em relação a posição atual do cabeçote de leitura e escrita; Análogo ao algoritmo SJF (Shortest Job First); Pode provocar um atraso em uma requisição 37
38 SSTF (Shortest Seek Time First) De s l o c a me n t o e q u i v a l e n t e a t r i l h a s ; 38
39 SCAN O movimento do cabeçote inicia em uma extremidade do disco e se movimenta em direção a outra extremidade; Executa as requisições na ordem desta varredura; Ao chegar ao outro extremo, inverte o sentido e repete o procedimento; Conhecido como algoritmo do elevador; 39
40 SCAN De s l o c a me n t o e q u i v a l e n t e a t r i l h a s. 40
41 C-SCAN Variação do algoritmo de SCAN; Procedimento é idêntico ao do algoritmo SCAN, porém, as requisições são atendidas apenas em um sentido da varredura; Ao final da varredura o cabeçote é posicionado 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 SCAN; 41
42 C-SCAN 42
43 Leitura Sugerida TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010
44 Notas de Aula Notas de Aula Acesse o link abaixo: Obrigado!!!
45 Exercício 1- Aplicar os algoritmos de escalonamento no disco, FCFS, SSTF e SCAN para a seguinte seqüência de requisições: Seqüência: 10,22,20,2,30,6; Posição inicial cilindro 20; Disco com 36 cilindros; Tempo de cada movimentação: 6 mseg; Fazer: Fazer um gráfico; Calcular o número de movimentos do braço e o tempo total para o atendimento de todas as requisições; No SCAN considerar movimento inicial para a direita; 45