Operating Systems: Architecture, Concepts and Implementation Help

1.4 Estrutura de Entrada e Saída

Os dispositivos de Entrada e Saída (ou E/S), são um dos grandes pontos importantes para um Sistema Operacional, como podemos notar no armazenamento que possui grande importância para ser um dispositivo de E/S.

  • Um outro ponto importante é que grande parte do código do SO é pensado para E/S;

    • Tanto por causa da confiabilidade como desempenho.

Por exemplo, para o controlador SCSI (Small Computer-System Interface) podemos ter sete ou até mais dispositivos conectados ao mesmo controlador.

Cada controlador armazena buffer local e um conjunto de registradores de uso especial.

Os controladores tem duas funções básicas, que se baseiam:

  • Move os dados para os dispositivos periféricos que controla.

  • Gerencia o uso do buffer local.

Tais sistemas possuem um driver de dispositivo (driver de dispositivo) que serve como ponte entre o dispositivo e o sistema, permitindo que a entrada dos dispositivos tenha uma saída uniforme para o restante do sistema.

O funcionamento de uma operação de E/S:

  • O driver de dispositivo carrega os registradores apropriados para dentro do controlador do dispositivo.

  • O controlador examina o conteúdo que tem nos registradores, para determinar que ação deve ser tomada.

  • O controlador começa a transferir os dados do dispositivo para o seu buffer local.

  • Assim que a transferência está concluída, o controlador de dispositivo envia uma interrupção para o driver de dispositivo informando que a transferência foi concluída.

  • O driver de dispositivo então retorna o controle diretamente para o SO, retornando os dados ou um ponteiro para esses dados, possivelmente, caso a operação seja de leitura.

    • Para outras operações, o driver retorna informações de status.

Representação:

Carregar dados

Determinar ação

Iniciar transferência

Sim

Se leitura

Se outra operação

Jogador - Driver de Dispositivo

Controlador do Dispositivo

Registradores

Controlador examina registradores

Buffer Local do Controlador

Transferência completa?

Interrupção enviada ao Driver

Controle retorna ao SO

Retorna Dados ou Ponteiro para Dados

Retorna Informações de Status

Com esse grande problema, precisamos então de um outro dispositivo, um que armazene esses dados para que o acesso seja mais rápido, para isso usamos a DAM (Direct Access Memory ou Memória de Acesso Direto).

Logo o ciclo se torna assim:

  • Depois de configurar buffers, ponteiros e contadores, o dispositivo de E/S, o controlador de dispositivo move um bloco inteiro de dados diretamente para ou do seu próprio buffer local para a memória.

    • Somente uma interrupção é feita por bloco, para que seja avisado ao driver de dispositivo que a transferência foi concluída.

Para alguns sistemas não é utilizado essa arquitetura de barramento e sim de switch:

  • Nesse tipo de sistema, os vários componentes do sistema podem interagir entre si ao mesmo tempo.

  • Ao invés de competir por ciclos de um barramento compartilhado.

  • Assim o DMA consegue ser ainda mais eficiente.

Representação da interação dos componentes num sistema:

Transporte_Com_DMA

Sistema de E/S

Requisição de E/S

Sinal de Interrupção

Processa Interrupção

Solicita DMA

Acesso Direto

Transferência de Dados

Execução de Instruções

Dispositivo de Entrada/Saída

Controlador de Dispositivo

CPU

Controlador DMA

Memória Principal

  • Com Mineiro:

Transporte_Com_Carrinho

Mundo_Minecraft

Solicita blocos ou ferramentas

Envia um mensageiro

Processa a ordem e planeja

Solicita Carrinho Automático - DMA

Leva os blocos diretamente

Retorna com espaço livre

Foca na construção ou exploração

Mineiro - Dispositivo de Entrada/Saída

Chefe de Recursos - Controlador

Jogador - CPU

Carrinho com Trilhos - Controlador DMA

Armazém/Cofre - Memória Principal

08 abril 2025