Gerenciamento de Entrada e Saída (E/S) Adriano J. Holanda http://adrianoholanda.org Depto Computação e Matemática FFCLRP USP 02/06/2014
Entrada e Saída: E/S teclado mouse impressora disco rígido monitor processador. controladora controladora placa de de disco USB vídeo memória
Entrada e Saída: E/S teclado mouse impressora gerenciamento de processos disco rígido monitor processador. controladora controladora placa de de disco USB vídeo memória
Entrada e Saída: E/S teclado mouse impressora disco rígido monitor processador. controladora controladora placa de de disco USB vídeo memória gerenciamento de memória
Entrada e Saída: E/S teclado mouse impressora disco rígido gerenciamento de entrada e saída (E/S) monitor processador. controladora controladora placa de de disco USB vídeo memória
Subsistema de entrada e saída Fonte: [Oliveira, 2008] E/S: nível. de usuário Sistema operacional E/S independente do dispositivo Interface padrão para drivers de dispositivo (API) driver disco driver USB driver rede... driver teclado Software Hardware
Drivers de dispositivo Exemplo: driver de placa de rede Aplicação de rede Espaço do usuário. Subsistema de rede do SO Espaço do kernel Driver da placa de rede Interface com o dispositivo de rede Placa de rede Hardware
Classificação das camadas de E/S Dispositivos de caracter São dispositivos cujo fluxo de dados ocorre de forma sequencial, um byte após o outro. Exemplo: teclado, porta serial.
Classificação das camadas de E/S Dispositivos de caracter São dispositivos cujo fluxo de dados ocorre de forma sequencial, um byte após o outro. Exemplo: teclado, porta serial. Dispositivos de bloco Os dados são acessados de forma aleatória em pedaços de tamanho fixo chamado blocos. Exemplo: Disco rígido, memória flash, disquete, leitor de Blu-ray.
Classificação das camadas de E/S Dispositivos de caracter São dispositivos cujo fluxo de dados ocorre de forma sequencial, um byte após o outro. Exemplo: teclado, porta serial. Dispositivos de rede Os dados são recebidos e transmitidos em pacotes. Exemplo: Interface de rede.
Dispositivos de bloco
Dispositivos de bloco Introdução Os Dispositivos de bloco fornecem acesso a dispositivos que transferem aleatoreamente blocos de tamanho fixo, tais como disco rígido, CD-ROM, DVD-ROM dentre outros. Os blocos frequentemente possuem o tamanho de 4096 bytes, porém, este tamanho pode variar de acordo com a arquitetura e sistema de arquivos. Drivers eficientes são críticos para performance.
Dispositivos de bloco Conceitos essenciais A menor unidade endereçável em um dispositivo de bloco é um setor. O tamanho mais comum do setor é 512 bytes. Porém, alguns dispositivos possuem tamanhos diferentes, por exemplo, muitos CD-ROMs possuem setores de 2-KB. Os blocos são armazenados temporariamente em um zona de memória chamada buffer, para ajuste entre as diferenças na velocidade de transferência entre as camadas dos subsistemas. Por exemplo, se a placa de rede suporta envio de blocos de 4-KB, e o SO necessita enviar 64-KB, estes são armazenados no buffer até o término da transmissão.
Dispositivos de Bloco: Disco Rígido
Busca em disco rígido Trilha. trilha
Busca em disco rígido Setor. setor
Busca em disco rígido Cabeçote de leitura e escrita. cabeçote de leitura e escrita
Escalonamento das requisições de E/S O escalonador de E/S gerencia a fila de requisições dos dispositivos de bloco, decidindo qual requisição é despachada, com o objetivo de maximizar a performance global de E/S do sistema. O escalonadores de E/S realizam 2 ações principais sobre as requisições para minimizar as buscas: Fusão: agrupamento de 2 ou mais requisições ao mesmo bloco; Ordenação: classifica as requisições de acordo com algum critério.
Algoritmos de escalonamento de E/S Disco rígido 1. FCFS(firt-come first-served): as requisições são atendidas conforme a ordem de chegada na fila;
Algoritmos de escalonamento de E/S Disco rígido 1. FCFS(firt-come first-served): as requisições são atendidas conforme a ordem de chegada na fila; 2. SSTF (shortest seek time first): as requisições são atendidas de acordo com o menor tempo de acesso, e são reordenadas constantemente, para levar em conta a posição atual do cabeçote, privilegiando os setores mais próximos à posição corrente na reordenação da fila de requisições. Desvantagem: Suscetível à postergação indefinida (starvation).
Algoritmos de escalonamento de E/S Disco rígido 1. FCFS(firt-come first-served): as requisições são atendidas conforme a ordem de chegada na fila; 2. SSTF (shortest seek time first): as requisições são atendidas de acordo com o menor tempo de acesso, e são reordenadas constantemente, para levar em conta a posição atual do cabeçote, privilegiando os setores mais próximos à posição corrente na reordenação da fila de requisições. Desvantagem: Suscetível à postergação indefinida (starvation). 3. SCAN: é uma variação do SSTF que se diferencia por adotar um sentido de varredura preferencial, como por exemplo do mais interno para o mais externo. Ao atingir o mais interno, inverte-se o sentido e novas requisições no sentido contrário são atendidas na próxima varredura. Também é conhecido como algoritmo do elevador.
Algoritmos de escalonamento de E/S Disco rígido 1. FCFS(firt-come first-served): as requisições são atendidas conforme a ordem de chegada na fila; 2. SSTF (shortest seek time first): as requisições são atendidas de acordo com o menor tempo de acesso, e são reordenadas constantemente, para levar em conta a posição atual do cabeçote, privilegiando os setores mais próximos à posição corrente na reordenação da fila de requisições. Desvantagem: Suscetível à postergação indefinida (starvation). 3. SCAN: é uma variação do SSTF que se diferencia por adotar um sentido de varredura preferencial, como por exemplo do mais interno para o mais externo. Ao atingir o mais interno, inverte-se o sentido e novas requisições no sentido contrário são atendidas na próxima varredura. Também é conhecido como algoritmo do elevador. 4. C-SCAN: variação do SCAN que se diferencia por adotar o sistema de varredura em somente uma direção. Por exemplo, se o cabeçote atingir o cilindro mais interno, é então reposicionado no cilindro mais externo e a varredura é realizada novamente.
Sistemas Operacionais. Rômulo Silva de Oliveira, Alexandre da Silva Carissimi e Simão Sirineo Roscani. Editora Bookman, 2008. Linux Kernel Development. Robert Love. Addison Wesley Publisher, 2010. Principles of Modern Operating Systems. José M. Garrido, Richard Schlesinger. Jones and Bartlett Publishers, 2008.