UNIJUI – Universidade Regional do Noroeste do Estado do Rio Grande do Sul DETEC – Departamento de Tecnologia Curso: Informática Disciplina: Sistemas Operacionais Professor: Edson Luiz Padoin Nome:_Maiquel Roberto Schneider____ Data: 18/06/2007 Trabalho: Gerenciamento de I/O Linux: A performance de um I/O é bem mais complexa que a de um processador, depende de aspectos sistêmicos (características dos dispositivos, conexão entre o dispositivo e o resto do sistema, hierarquia de memória e SO), lembre-se que as máquinas interagem com as pessoas por intermédio dos dispositivos de I/O. Arquivos de dispositivos Representam os dispositivos de e/s. Cada um possui 3 atributos: o Tipo: caracter, bloco. o Número maior: identifica a classe. o Número menor: identifica um dispositivo específico em uma classe. Implementação de E/S Comunicação Kernel - DRIVER o Orientados a Bloco o Orientados a Caracter o Dispositivos de Rede Comunicação Driver – Controladora Comunicação Controladora – Dispositivo Orientados a Bloco Permitem acesso aleatório aos dados o Possibilita operações de Seek Transfere uma quantidade fixa de dados (somente o bloco inteiro) Orientados a Caracter Os devices de caractere são aqueles que podem ser acessados e manejados como um arquivo normal. Este tipo de driver geralmente implementa as funções primitivas como open(), close(), read() e write(). Controladores (adapters) Interface (em hardware) que o dispositivo apresenta ao resto do sistema Componente de hardware que conecta os periféricos ao computador Interfaces empregam um outro componente: o controlador O controlador é geralmente constituído por: o Conjunto de registos programáveis o Conjunto de registos para dados (escrita/leitura) o Lógica de controlo o No fundo é um micro-processador, com ligações aos barramentos do sistema o São processadores desenvolvidos para realizar determinada função (controlar um disco rígido) o Possuem registradores de estado e de controle (CSR), sendo estes utilizados para inicializar, encerrar, diagnosticar e realizar instruções em um controlador Dispositivos De Rede Não utiliza a interface do VFS Utiliza chamadas de sistema especiais - listen, bind, socket, etc... Sistema de arquivos Os dispositivos podem ser visualizados no sistema de arquivos. Cada dispositivo de e/s é visto como um arquivo especial e se encontram do diretório /dev. Exemplo: IDEs Portas seriais Porta paralela, dispositivo nulo /dev/lpN: Corresponde a porta da impressora ou porta de um serviço paralelo. N é o número correspondente a porta... 0 = LPT1 por exemplo. Outros /dev/console: Este é um dispositivo especial, simbolizando os consoles (terminais nãográficos). /dev/null: Este é um dispositivo nulo! Ou seja, tudo que você mandar ou se referir a ele, será nulo. 2 Windows: Uma das principais funções de um sistema operacional é controlar os dispositivos de entrada/saída. O sistema operacional deve disponibilizar uma interação entre os dispositivos e o resto do sistema, que seja simples e fácil de usar. O sistema operacional não se preocupa com o funcionamento interno e com a forma que é construído o hardware de entrada/saída, mas com a programação e utilização deste hardware. Principais Funções do SO no I/O Controlar todos os dispositivos de E/S e emitir comandos; Interceptar interrupções; Tratar os erros; Fornecer uma interface entre os dispositivos e o restante do sistema, uma interface que seja simples e fácil de usar. Na medida do possível a interface deve ser a mesma para todos os dispositivos(O código de E/S representa uma fração significativa de todo o sistema operacional). Exemplos de dispositivos: Entrada: Teclados, mouses, joysticks, digitalizadores de imagem, cameras fotograficas, leitores de codigo de barra, microfones, etc... Saída: Monitores, impressoras, plotters, gravadores de CD, placas de som, etc... Armazenamento: Discos flexiveis, discos rigidos, cd-rom, DVDs, Zip-Drivers, unidades de fita, etc... windows Gerenciador está bastante relacionado com gerenciador de plug and play; Plug end Play é basicamente um barramento enumerável; Barramentos: PCI, USB, IEEE, SCSI, etc.. Plug and Play envia uma requisição a cada Slot, pedindo que cada dispositivo ali alojado se identifique; Depois de descobrir o que existe ele aloca os recursos de Hardware, como níveis de interrupção, localiza os drivers apropriados e carrega-os na memória; Um objeto-drive é criado para cada um; Obs: Linux trata todos os dispositivos como VFS(Virtual File System) Princípios básicos de hardware Dispositivos de Entrada e saída: dispositivos de bloco: armazena informações em blocos de tamanho fixo, cada um com seu próprio endereço. Os tamanhos de blocos comuns variam de 512 bytes a 32.768 bytes. A propriedade essencial de um dispositivo de blocos é que cada bloco pode ser lido ou escrito independentemente de todos os outros. Os discos são os dispositivos de blocos mais comuns. Exemplos: discos-rígidos, CD-ROMs dispositivos de carctere: envia ou recebe um fluxo de caracteres, sem considerar qualquer outra estrutura de blocos. Ele não é endereçável e não dispõe de qualquer operação de posicionamento. Impressoras, interfaces de redes, mouses e a maior parte de outros dispositivos que são diferentes dos discos podem ser considerados dispositivos de Caractere. Exemplos: teclados, modens, impressoras Periférico; Interface; Controlador - ler dados; - escrever dados; - ler status; - escrever comando. As unidades de E/S consistem, usualmente, em um componente mecânico e um componente eletrônico. Muitas vezes é possível separar as duas partes para permitir o desenvolvimento de um projeto mais geral e modular. O componente eletrônico é chamado de Controlador do dispositivo ou Adaptador. Nos computadores pessoais é freqüente ele se apresentar na forma de uma placa controladora de circuito impresso que pode ser inserida em um conector de expansão. O componente mecânico é o dispositivo propriamente dito. Ex: Dispositivos com suas taxas de transferência entre componentes eletrônicos e mecânicos. I/O – hardware Objetivos do Software de I/O Manipuladores de Interrupção; Drivers de Dispositivos; Software do Windows independente do dispositivo; Software do nível do usuário. Controladores (adapters) Interface (em hardware) que o dispositivo apresenta ao resto do sistema O controlador é geralmente constituído por: o Conjunto de registros programáveis o Conjunto de registros para dados (escrita/leitura) o Lógica de controle o No fundo é um micro-processador, com ligações aos barramentos do sistema Acesso aos Dispositivos de I/O E/S programada; Interrupções; Vimos que as interrupções podem ser de três tipos: o Hardware – geradas por periféricos o Software – geradas por programas o Excepções – geradas no próprio processador Em questões de I/O, as interrupções de hardware têm um papel muito importante o Quando um dispositivo termina uma operação de I/O, gera uma interrupção numa linha de IRQ DMA (acesso direto a memória). 4 BUS 3. Transferência de dados 1. CPU programa o controlador DMA 2. Pedido de transferência Endereç o Contado r Controlo CPU 5. Interrupção Controlador de DMA Buffer 4. Acknowledge Controlador de Disco Memória RAM * Interrupções de hardware 2. Controlador activa linha de interrupções 3. CPU envia 1. Dispositivo termina I/O IRQ é activada 4. Controlador coloca interrupt vector no BUS Existem basicamente três formas diferentes de efetuar operações de I/O I/O programada O CPU efetua todo o trabalho de I/O O CPU vai enviando/recebendo os dados dos dispositivos Após despachar cada dado (byte ou bloco), verifica se o periférico está pronto para continuar Este método designa-se por polling Desvantagem: O processador passa maior parte do tempo em espera ativa I/O por interrupções Com este modelo, o processador envia/recebe dados do periférico, mas depois pode-se dedicar a outro processo Entretanto quando o periférico está pronto para continuar, interrompe o processador Após a interrupção o processador envia/recebe mais dados e assim sucessivamente até a operação de I/O estar concluída Vantagem Maior rendimento – o processador pode-se ocupar de outros processos, enquanto não chega uma interrupção Desvantagem As interrupções ocorrem com demasiada frequência I/O por DMA 5 Semelhante a I/O programada, mas o controlador DMA substitui o processador O processador limita-se a dar as instruções necessárias ao controlador de DMA para iniciar a transferência de dados Quando o controlador termina a transferência de dados, notifica o processador através de uma interrupção Vantagem: Uma só interrupção após toda a operação de I/O terminar Desvantagem (só em alguns casos): Este esquema pode não funcionar se o periférico for demasiado rápido em relação ao controlador de DMA Níveis de I/O O modelo de I/O para um sistema operativo, pode ser descrito por várias camadas funcionais Utilizador Device independent software Device drivers Tratamento de interrupções Hardware Tratamento de Interrupções Quando ocorre uma interrupção, o SO tem diversas tarefas a efetuar: o Salva/0000000guardar o conteúdo dos registos do processador o Estabelecer um contexto para a rotina de tratamento da interrupção (que no fundo é um processo) o Enviar sinal ao controlador de interrupções (ou reativá-las, se não existir controlador) o Executar a rotina de tratamento da interrupção o Escolher um novo processo para correr Entretanto pode ter desbloqueado um processo prioritário, por isso o processo que vai correr não é necessariamente aquele que perdeu o processador devido à interrupção 6