Llamada al sistema


(Redirigido desde Llamadas_al_sistema)

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.

Índice

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.

Las bibliotecas como intermediarias


Generalmente, los sistemas operativos proveen bibliotecas que relacionan los programas de usuario y el resto del sistema operativo, usualmente una biblioteca de tiempo de ejecución (runtime) de C como la glibc de GNU o la biblioteca de C de Microsoft. Esta biblioteca maneja, entre otras cosas, los detalles de bajo nivel para transferir información al kernel y conmutar a modo supervisor, así como cualquier procesamiento de datos o tareas que deba ser realizada en modo supervisor. Idealmente, esto reduce la dependencia entre el sistema operativo y la aplicación y el software, e incrementa su portabilidad.

Ejemplos y herramientas


En los sistemas operativos bajo norma POSIX o similares, algunas llamadas al sistema muy usadas son open, Read (system call), write, close, wait, exec, fork, exit y kill. Los sistemas operativos actuales tienen cientos de llamadas, por ejemplo Linux 2.x y FreeBSD tienen más de 300.

Implementaciones típicas


La implementación de las llamadas al sistema requiere un control de transferencia que involucra características específicas de la arquitectura del procesador. Una forma típica de implementar es usar una interrupción por software. Linux usa esta implementación en la arquitectura x86.

Para los procesadores con arquitectura RISC, esta es la única forma, pero arquitecturas CISC como x86 soportan otras técnicas adicionales. Un ejemplo es SYSCALL/SYSENTER.

Véase también


Enlaces externos











Categorías: Conceptos de sistemas operativos




A partir de: 10.10.2021 06:03:30 CEST

Fuente: Wikipedia (Autores [Historia])    Licencia: CC-BY-SA-3.0

Modificaciónes: Se eliminaron todas las imágenes y la mayoría de los elementos de diseño relacionados con ellos. Algunos iconos fueron reemplazados por FontAwesome-Icons. Algunas plantillas se eliminaron (como "el artículo necesita expansión) o se asignaron (como" notas de sombrero "). Las clases CSS fueron eliminadas o armonizadas.
Se eliminaron los enlaces específicos de Wikipedia que no conducen a un artículo o categoría (como "Enlaces rojos", "enlaces a la página de edición", "enlaces a portales"). Cada enlace externo tiene un FontAwesome-Icon adicional. Además de algunos pequeños cambios de diseño, se eliminaron los contenedores de medios, mapas, cuadros de navegación, versiones habladas y Geo-microformatos.

Tenga en cuenta: Debido a que el contenido dado se toma automáticamente de Wikipedia en el momento dado, una verificación manual fue y no es posible. Por lo tanto, LinkFang.org no garantiza la precisión y la actualidad del contenido adquirido. Si hay una información que es incorrecta en este momento o tiene una pantalla incorrecta, no dude en Contáctenos: e-mail.
Ver también: Información legal & Política de privacidad.