Noções básicas de E/S

Concluído

Para começar, cada dispositivo de E/S tem um controlador de dispositivo. Um controlador de dispositivo normalmente pode ser sinalizado por meio de uma instrução de E/S privilegiada ou de E/S mapeada em memória. As instruções de E/S são fornecidas por alguns ISAs. O Intel IA-32 é um exemplo de processador que fornece instruções de E/S em seu ISA. No entanto, muitos processadores recentes permitem executar E/S entre a CPU e os controladores de dispositivo por meio de E/S mapeada em memória (por exemplo, processadores RISC). Como mostra a Figura 1, com E/S mapeada em memória, uma região específica do espaço de endereço de memória física é reservada para acessar dispositivos de E/S. Esses endereços são reconhecidos pelo controlador de memória como comandos para dispositivos de E/S e não correspondem a locais de memória física reais. Endereços diferentes mapeados na memória são usados para diferentes dispositivos de E/S. Por fim, para proteger os dispositivos de E/S, as instruções de E/S e os endereços mapeados na memória são manipulados no modo do sistema, tornando-se privilegiados.

Memory-mapped I/O with a specific region in the RAM address space for accessing I/O devices.

Figura 1: E/S mapeada em memória com uma região específica no espaço de endereço RAM para acessar dispositivos de E/S

Como as operações de E/S são executadas no modo do sistema, os programas do usuário podem invocá-las somente por meio de chamadas de sistema do SO (supondo sistemas tradicionais). O SO abstrai a maioria dos detalhes de dispositivos de E/S e os torna acessíveis somente por meio de interfaces bem definidas. A Figura 2 mostra as três principais interfaces que entram em cena quando um programa do usuário coloca uma solicitação de E/S. São elas: interface de chamada do sistema, interface de driver de dispositivo e interface de nível de operação. Iniciando uma operação de E/S, uma solicitação de E/S de usuário faz com que um sistema do SO chame esse controle de transferência para o SO. Em seguida, o SO chama os drivers de dispositivo (um conjunto de rotinas de software) por meio da interface de driver de dispositivo. Uma rotina de driver de dispositivo relevante converte a solicitação de E/S em uma operação específica para o dispositivo físico solicitado. A operação convertida é posteriormente transferida por meio da interface de nível de operação para o dispositivo físico correspondente.

The three major interfaces involved in I/O operations: system call, device driver, and operation-level interfaces.

Figura 2: As três principais interfaces envolvidas em operações de E/S: interfaces de chamada do sistema, de driver de dispositivo e de nível de operação

Verificar seu conhecimento

1.

A CPU e os dispositivos de E/S podem se comunicar por meio de:

2.

Qual das sequências de chamadas a seguir seria usada por um sistema tradicional para executar uma operação de E/S?

3.

E/S mapeada em memória: