fbpx
Wikipedia

Llamada 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.

La biblioteca de C de GNU provee funcionalidad que aísla 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.

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

  • - llamadas al sistema para el kernel Linux 2.6.
  • How System Calls Work on Linux/i86
  • Sysenter Based System Call Mechanism in Linux 2.6
  •   Datos: Q722192

llamada, sistema, informática, llamada, sistema, inglés, system, call, mecanismo, usado, aplicación, para, solicitar, servicio, sistema, operativo, biblioteca, provee, funcionalidad, aísla, aplicaciones, núcleo, linux, esta, imagen, para, utilizar, funcionalid. En informatica llamada al sistema en ingles system call es el mecanismo usado por una aplicacion para solicitar un servicio al sistema operativo La biblioteca de C de GNU provee funcionalidad que aisla a las aplicaciones del nucleo Linux en esta imagen Para utilizar funcionalidad especifica de Linux se emplea la rutina syscall de la biblioteca de C de GNU O bien una implementacion propia de la llamada a sistema en ensamblador Si una aplicacion utiliza la interfaz de llamadas a sistema de Linux con implementaciones propias en exclusiva entonces dicha aplicacion se considera monolitica Indice 1 Mecanismo 2 Las bibliotecas como intermediarias 3 Ejemplos y herramientas 4 Implementaciones tipicas 5 Vease tambien 6 Enlaces externosMecanismo EditarLas llamadas al sistema comunmente usan una instruccion especial de la CPU que causa que el procesador transfiera el control a un codigo privilegiado generalmente es el nucleo previamente especificado Esto permite al codigo privilegiado especificar donde va a ser conectado asi como el estado del procesador Cuando una llamada al sistema es invocada la ejecucion del programa que invoca es interrumpida y sus datos son guardados normalmente en su PCB Bloque de Control de Proceso del ingles Process Control Block para poder continuar ejecutandose luego El procesador entonces comienza a ejecutar las instrucciones de codigo de bajo nivel de privilegio para realizar la tarea requerida Cuando esta finaliza se retorna al proceso original y continua su ejecucion El retorno al proceso demandante no obligatoriamente es inmediato depende del tiempo de ejecucion de la llamada al sistema y del algoritmo de planificacion de CPU Las bibliotecas como intermediarias EditarGeneralmente los sistemas operativos proveen bibliotecas que relacionan los programas de usuario y el resto del sistema operativo usualmente una biblioteca de tiempo de ejecucion 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 informacion al kernel y conmutar a modo supervisor asi 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 aplicacion y el software e incrementa su portabilidad Ejemplos y herramientas EditarEn 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 mas de 300 Implementaciones tipicas EditarLa implementacion de las llamadas al sistema requiere un control de transferencia que involucra caracteristicas especificas de la arquitectura del procesador Una forma tipica de implementar es usar una interrupcion por software Linux usa esta implementacion en la arquitectura x86 Para los procesadores con arquitectura RISC esta es la unica forma pero arquitecturas CISC como x86 soportan otras tecnicas adicionales Un ejemplo es SYSCALL SYSENTER Vease tambien EditarGlibcEnlaces externos EditarLinux system calls llamadas al sistema para el kernel Linux 2 6 How System Calls Work on Linux i86 Sysenter Based System Call Mechanism in Linux 2 6 Tabla de Systems Calls en Windows Datos Q722192Obtenido de https es wikipedia org w index php title Llamada al sistema amp oldid 134734611, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos