Llamada al sistema

La biblioteca de C de GNU provee funcionalidad que aisla a las aplicaciones del núcleo ( Linux en esta imagen). Para utilizar funcionalidad específica de Linux se emplea la rutina syscall() de la biblioteca de C de GNU. O bien una implementación propia de la llamada a sistema en ensamblador. Si una aplicación utiliza la interfaz de llamadas a sistema de Linux con implementaciones propias en exclusiva, entonces dicha aplicación se considera monolítica.

En informática, llamada al sistema (en inglés system call) es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo.

Mecanismo

Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el procesador transfiera el control a un código privilegiado (generalmente es el núcleo), previamente especificado. Esto permite al código privilegiado especificar donde va a ser conectado así como el estado del procesador.

Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB (Bloque de Control de Proceso del inglés Process Control Block), para poder continuar ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de código de bajo nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y continúa su ejecución. El retorno al proceso demandante no obligatoriamente es inmediato, depende del tiempo de ejecución de la llamada al sistema y del algoritmo de planificación de CPU.

Other Languages