Requisito previo: Microkernel
El kernel proporciona muchos servicios relacionados con E/S. Varios servicios, como la programación, el almacenamiento en caché, la cola de impresión, la reserva de dispositivos y el manejo de errores, son proporcionados por el kernel, el subsistema de E/S integrado en el hardware y la infraestructura de controladores de dispositivos. El subsistema de E/S también es responsable de protegerse de procesos errantes y usuarios malintencionados.
- Programación de E/S:
programar un conjunto de requests de E/S significa determinar un buen orden para ejecutarlas. El orden en que la aplicación emite la llamada al sistema es la mejor opción. La programación puede mejorar el rendimiento general del sistema, puede compartir el permiso de acceso del dispositivo de manera justa a todos los procesos, reducir el tiempo de espera promedio, el tiempo de respuesta y el tiempo de respuesta para que se complete la E/S.Los desarrolladores de sistemas operativos implementan horarios manteniendo una cola de espera de la solicitud para cada dispositivo. Cuando una aplicación emite una llamada al sistema de E/S de bloqueo, la solicitud se coloca en la cola para ese dispositivo. El programador de E/S reorganiza el orden para mejorar la eficiencia del sistema.
- Almacenamiento en búfer:
un búfer es un área de memoria que almacena datos que se transfieren entre dos dispositivos o entre un dispositivo y una aplicación. El almacenamiento en búfer se realiza por tres razones.- El primero es hacer frente a un desajuste de velocidad entre el productor y el consumidor de un flujo de datos.
- El segundo uso del almacenamiento en búfer es proporcionar adaptación para datos que tienen diferentes tamaños de transferencia de datos.
- El tercer uso del almacenamiento en búfer es admitir la semántica de copia para la E/S de la aplicación, «semántica de copia» significa, supongamos que una aplicación quiere escribir datos en un disco que está almacenado en su búfer. llama a la llamada del sistema write() , proporcionando un puntero al búfer y el número entero que especifica el número de bytes para escribir.
- El primero es hacer frente a un desajuste de velocidad entre el productor y el consumidor de un flujo de datos.
- Almacenamiento en caché:
un caché es una región de memoria rápida que contiene una copia de los datos. El acceso a la copia en caché es mucho más fácil que el archivo original. Por ejemplo, la instrucción del proceso que se está ejecutando actualmente se almacena en el disco, se almacena en caché en la memoria física y se copia nuevamente en el caché primario y secundario de la CPU.La principal diferencia entre un búfer y un caché es que un búfer puede contener solo la copia existente de un elemento de datos, mientras que un caché, por definición, contiene una copia en un almacenamiento más rápido de un elemento que reside en otro lugar.
- Spooling y reserva de dispositivos:
un spool es un búfer que contiene la salida de un dispositivo, como una impresora que no puede aceptar flujos de datos intercalados. Aunque una impresora solo puede servir un trabajo a la vez, es posible que varias aplicaciones deseen imprimir su salida al mismo tiempo, sin que sus salidas se mezclen.El sistema operativo resuelve este problema al evitar que toda la salida continúe hacia la impresora. La salida de todas las aplicaciones se almacena en un archivo de disco separado. Cuando una aplicación termina de imprimirse, el sistema de spool pone en cola el archivo de spool correspondiente para enviarlo a la impresora.
- Manejo de errores:
un sistema operativo que usa memoria protegida puede protegerse contra muchos tipos de errores de hardware y aplicaciones, por lo que una falla completa del sistema no es el resultado habitual de cada falla mecánica menor. Los dispositivos y las transferencias de E/S pueden fallar de muchas maneras, ya sea por razones transitorias, como cuando una red se sobrecarga o por razones permanentes, como cuando un controlador de disco se vuelve defectuoso. - Protección de E/S: los
errores y el tema de la protección están estrechamente relacionados. Un proceso de usuario puede intentar emitir instrucciones de E/S ilegales para interrumpir el funcionamiento normal de un sistema. Podemos utilizar los diversos mecanismos para garantizar que dicha interrupción no pueda tener lugar en el sistema.Para evitar el acceso ilegal de E/S, definimos todas las instrucciones de E/S como instrucciones privilegiadas. El usuario no puede emitir instrucciones de E/S directamente.
Publicación traducida automáticamente
Artículo escrito por AshishVishwakarma1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA