Conceitos Fundamentais de E/S e Gerenciamento de Dispositivos
Classificado em Computação
Escrito em em
português com um tamanho de 6,81 KB
13) Por Que os Arquivos de Saída para Impressora Normalmente São Colocados em SPOOL no Disco Antes de Serem Impressos?
Como a impressora é um periférico muito mais lento que o computador, este teria de ficar esperando a impressão terminar para, então, executar uma nova tarefa. Para resolver esse problema, a maioria das impressoras tem um buffer, ou seja, uma memória interna utilizada para armazenar temporariamente os dados que estão vindo do computador. Com isso, os dados são transferidos do computador para o buffer, liberando-o mais rapidamente. Quanto maior o buffer da impressora, mais cedo esta liberará o computador.
A solução adaptada por todos os sistemas operacionais (com exceção do DOS) chama-se spooler. O aplicativo gera a impressão e transfere os dados a serem impressos para o spooler, um programa que ficará sendo executado em segundo plano. Esse programa ficará gerenciando a impressão, enquanto o aplicativo ficará livre para executar outra tarefa ou trabalhar com outro documento. É possível, inclusive, fechar o aplicativo que gerou a impressão.
7) Como Funciona a E/S Usando Interrupções? Explique
Considerando o caso da impressão em uma impressora que não armazena os caracteres, mas imprime-os um a um à medida que chegam. Se a impressora pode imprimir cem caracteres por segundo, cada caractere leva cerca de 10ms para ser impresso. Isso significa que, após cada caractere ser escrito no registrador de dados da impressora, a CPU permanece em um laço ocioso durante 10ms esperando permissão para a saída do próximo caractere. Isso é mais do que o tempo necessário para fazer um chaveamento de contexto e executar algum outro processo durante os 10ms que de outra maneira seriam perdidos.
3) Como Funciona a E/S Mapeada na Memória? Explique
Cada controlador tem alguns registradores usados para a comunicação com a CPU. Por meio da escrita nesses registradores, o sistema operacional pode comandar os dispositivos para entregar ou aceitar dados, ligar e desligar ou executar alguma outra tarefa. A partir da leitura desses registradores, o sistema operacional pode descobrir o estado do dispositivo, se ele está preparado para aceitar um novo comando e assim por diante.
Além dos registradores de controle, muitos dispositivos têm um buffer de dados que os sistemas operacionais pode ler ou escrever. Por exemplo, é comum os computadores mostrarem pixels na tela por meio de uma memória de acesso aleatório (RAM) para vídeo, a qual é basicamente apenas um buffer de dados, disponível para ser escrita pelos programas ou pelo sistema operacional.
4) Como Funciona o Acesso Direto à Memória (DMA)? Explique
Não importa se a CPU tem ou não E/S mapeada na memória: ela precisa endereçar os controladores dos dispositivos para poder trocar dados entre eles. A CPU pode requisitar dados de um controlador de E/S, um byte de cada vez, mas, fazendo isso, desperdiça muito tempo da CPU, de modo que um esquema diferente, chamado de Acesso Direto à Memória (DMA), muitas vezes é usado.
O sistema operacional somente pode usar DMA se o hardware tem o controlador de DMA, que existe na maioria dos sistemas. Algumas vezes, esse controlador é integrado nos controladores de disco e em outros controladores, mas esse projeto requer um controlador de DMA separado para cada dispositivo. Normalmente, um único controlador de DMA se encontra disponível (por exemplo, na placa-mãe), para controlar as transferências para vários dispositivos, as quais podem ocorrer, muitas vezes, simultaneamente.
Interrupções: Precisas vs. Imprecisas
- Interrupção Precisa: Deixa a máquina em um estado bem definido. Esta interrupção é dividida em quatro propriedades:
- O Program Counter (PC) é salvo em um lugar conhecido.
- Todas as instruções anteriores àquela apontada pelo PC foram totalmente executadas.
- Nenhuma instrução posterior à apontada pelo PC foi executada.
- O estado de execução da instrução apontada pelo PC é conhecido.
- Interrupção Imprecisa: Complica bastante a vida do projetista do sistema operacional, que se vê então obrigado a calcular o que já foi executado e aquilo que ainda deve ser executado. Diferentes instruções próximas do contador de programa encontram-se em diferentes estágios de execução, e nos permite observar que as instruções imprecisas geralmente colocam uma grande quantidade de informação de estado interno em uma pilha para dar ao sistema operacional a possibilidade de calcular o que estava acontecendo. É exatamente complicado. Da mesma forma, salvar uma grande quantidade de informação na memória a cada interrupção torna a interrupção lenta, e a recuperação ainda pior. Isso gera uma situação irônica, em que CPUs superescalares muito rápidas às vezes são inadequadas para o trabalho em tempo real em virtude da lentidão das interrupções.
6) Como Funciona a E/S Programada? Explique
O processo do usuário requisita então a impressora para a escrita por meio de uma chamada de sistema para abri-la. Se a impressora está sendo usada por outro processo, a chamada falha e retorna um código de erro ou um bloqueio até que a impressora esteja disponível, dependendo do sistema operacional e dos parâmetros de chamada. Uma vez que tenha a impressora, o processo do usuário efetuará uma chamada de sistema para imprimir a cadeia de caracteres na impressora.
9) Explique o Conceito Driver de Dispositivo
Cada controlador tem alguns registradores do dispositivo usados para dar a ele comandos ou para ele ler seu status a partir dele, ou ambos os casos. O número de registradores do dispositivo e a natureza dos comandos variam radicalmente de dispositivo para dispositivo. Por exemplo, um driver de mouse deve aceitar informações de mouse dizendo quando ele se moveu e qual botão foi pressionado. Em contrapartida, o drive de disco deve saber sobre setores, trilhas, cilindros, cabeçotes, movimentos de braço, controladores do motor, tempos de ajuste de cabeçote e sobre as demais mecânicas que fazem o disco trabalhar corretamente. Obviamente, esses drivers serão muito diferentes.
10) Explique de Que Modo um SO Pode Facilitar a Instalação de um Novo Dispositivo Sem Necessidade de Recompilação do Sistema?
Com o advento dos computadores pessoais, com milhares de opções de dispositivos de E/S, esse modelo de recompilação deixou de ser funcional. Poucos usuários são capazes de recompilar ou religar o núcleo, mesmo que eles tenham o código fonte. Em vez disso, os SOs se converteram para um modelo no qual os drivers podem ser carregados no sistema durante a execução.