End-User solicitações de E/S e objetos de arquivo

Os drivers no modo kernel são ocultos dos usuários finais por um subsistema protegido que implementa uma interface de programação já conhecida, como Windows ou POSIX. Os dispositivos são visíveis para o código do modo de usuário, que inclui subsistemas protegidos, somente como objetos de arquivo nomeados controlados pelo gerenciador de E/S.

A figura a seguir ilustra essa relação entre um usuário final, um subsistema e o gerente de E/S.

diagrama ilustrando objetos de arquivo que representam arquivos, volumes e dispositivos.

Um subsistema protegido, como o subsistema Win32, passa solicitações de E/S para o driver de modo kernel apropriado por meio dos serviços do sistema de E/S. O subsistema mostrado na figura anterior depende do suporte dos drivers de dispositivo de vídeo, de vídeo, de teclado e de mouse.

Um subsistema protegido isola seus usuários finais e aplicativos de terem que saber algo sobre componentes do modo kernel, incluindo drivers. Por sua vez, o gerenciador de E/S isola os subsistemas protegidos de ter que saber algo sobre configurações de dispositivo específicas do computador ou sobre implementações de drivers.

A abordagem em camadas do gerente de E/S também isola a maioria dos drivers de ter que saber algo sobre o seguinte:

  • Se uma solicitação de E/S se originou em qualquer subsistema protegido específico, como Win32 ou POSIX

  • Se um determinado subsistema protegido tem tipos específicos de drivers de modo de usuário

  • O que é o modelo e a interface de E/S de qualquer subsistema protegido para drivers

O gerenciador de E/S fornece drivers com um único modelo de E/S, um conjunto de rotinas de suporte no modo kernel que os drivers podem usar para realizar operações de E/S e uma interface consistente entre o originador de uma solicitação de E/S e os drivers que devem responder a ele.

Conforme mostrado na figura anterior, um subsistema e seus aplicativos nativos podem acessar o dispositivo de um driver ou um arquivo em um dispositivo de armazenamento em massa somente por meio de identificadores de objeto de arquivo fornecidos pelo gerenciador de E/S. Para abrir esse objeto de arquivo ou obter um identificador de E/S para um dispositivo ou um arquivo de dados, um subsistema chama os serviços do sistema de E/S com uma solicitação para abrir um arquivo nomeado. O arquivo nomeado pode ter um alias específico do subsistema (link simbólico) para o nome do modo kernel para o objeto de arquivo.

O gerenciador de E/S, que exporta esses serviços do sistema, é responsável por localizar ou criar o objeto de arquivo que representa o dispositivo ou o arquivo de dados e por localizar os driveres apropriados.