Pré-requisito - Microkernel 
O kernel fornece muitos serviços relacionados a E / S. Vários serviços, como agendamento, armazenamento em cache, spool, reserva de dispositivo e tratamento de erros, são fornecidos pelo subsistema de E / S do kernel construído na infraestrutura de hardware e driver de dispositivo. O subsistema de E / S também é responsável por se proteger de processos errôneos e usuários mal-intencionados. 

  1. Agendamento de I / O - 
    Agendar um conjunto de requests de E / S significa determinar uma boa ordem para executá-los. A ordem em que o aplicativo emite a chamada do sistema é a melhor escolha. O agendamento pode melhorar o desempenho geral do sistema, pode compartilhar a permissão de acesso do dispositivo de maneira justa a todos os processos, reduzir o tempo médio de espera, o tempo de resposta e o tempo de retorno para a conclusão da E / S. 

    Os desenvolvedores de sistemas operacionais implementam programações mantendo uma fila de espera da solicitação para cada dispositivo. Quando um aplicativo emite uma chamada de sistema de E / S de bloqueio, a solicitação é colocada na fila para esse dispositivo. O agendador de E / S reorganiza a ordem para melhorar a eficiência do sistema. 
     

  2. Buffer - 
    Um buffer é uma área da memória que armazena dados sendo transferidos entre dois dispositivos ou entre um dispositivo e um aplicativo. O armazenamento em buffer é feito por três motivos. 
    1. A primeira é lidar com uma incompatibilidade de velocidade entre o produtor e o consumidor de um fluxo de dados. 
       
    2. O segundo uso do buffer é fornecer adaptação para dados que têm tamanhos de transferência de dados diferentes. 
       
    3. O terceiro uso do buffer é suportar a semântica de cópia para a E / S do aplicativo, “semântica de cópia” significa, suponha que um aplicativo queira gravar dados em um disco que está armazenado em seu buffer. ele chama a chamada do sistema write() , fornecendo um ponteiro para o buffer e o inteiro especificando o número de bytes a serem gravados. 
       
  3. Cache - 
    um cache é uma região de memória rápida que armazena uma cópia dos dados. O acesso à cópia em cache é muito mais fácil do que o arquivo original. Por exemplo, a instrução do processo atualmente em execução é armazenada no disco, armazenada em cache na memória física e copiada novamente no cache secundário e primário da CPU. 

    A principal diferença entre um buffer e um cache é que um buffer pode conter apenas a cópia existente de um item de dados, enquanto um cache, por definição, mantém uma cópia no armazenamento mais rápido de um item que reside em outro lugar. 

     

  4. Spool e reserva de dispositivo - 
    Um spool é um buffer que contém a saída de um dispositivo, como uma impressora que não pode aceitar fluxos de dados intercalados. Embora uma impressora possa atender a apenas um trabalho por vez, vários aplicativos podem desejar imprimir suas saídas simultaneamente, sem que suas saídas se misturem. 

    O sistema operacional resolve esse problema, impedindo que todas as saídas continuem para a impressora. A saída de todos os aplicativos é armazenada em spool em um arquivo de disco separado. Quando um aplicativo termina de imprimir, o sistema de spool enfileira o arquivo de spool correspondente para enviar para a impressora. 

     

  5. Tratamento de erros - 
    um sistema operacional que usa memória protegida pode proteger contra muitos tipos de erros de hardware e aplicativo, de modo que uma falha completa do sistema não seja o resultado normal de cada pequena falha mecânica. Dispositivos e transferências de E / S podem falhar de várias maneiras. por motivos transitórios, como quando uma rede fica sobrecarregada ou por motivos permanentes, como quando um controlador de disco fica com defeito. 

     

  6. Proteção I / O - 
    erros e a questão da proteção estão intimamente relacionados. Um processo do usuário pode tentar emitir instruções de E / S ilegais para interromper o funcionamento normal de um sistema. Podemos usar os vários mecanismos para garantir que tal interrupção não ocorra no sistema. 

    Para evitar o acesso ilegal de E / S, definimos todas as instruções de E / S como instruções privilegiadas. O usuário não pode emitir instruções de E / S diretamente. 
     

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.