Llamada de sistema vs llamada de función
Un procesador típico ejecuta las instrucciones una por una. Pero puede haber ocasiones en las que el procesador tenga que detener la instrucción actual y ejecutar algún otro programa o segmento de código (que reside en otro lugar). Después de hacer esto, el procesador vuelve a la ejecución normal y continúa desde donde se detuvo. Una llamada al sistema y una llamada a la función son tales ocasiones. Una llamada al sistema es una llamada a una subrutina integrada en el sistema. Una llamada de función es una llamada a una subrutina dentro del propio programa.
¿Qué es una llamada al sistema??
Las llamadas al sistema proporcionan a los programas que se ejecutan en la computadora una interfaz para hablar con el sistema operativo. Cuando un programa necesita solicitar un servicio (para el cual no tiene permiso para hacerlo por sí mismo) del núcleo del sistema operativo, utiliza una llamada al sistema. Los procesos de nivel de usuario no tienen los mismos permisos que los procesos que interactúan directamente con el sistema operativo. Por ejemplo, para comunicarse con un dispositivo de E / S externo o para interactuar con cualquier otro proceso, un programa utiliza llamadas al sistema.
Qué es una función llamada?
Una llamada de función también se llama una llamada de subrutina. Una subrutina (también conocida como procedimiento, función, método o rutina) es parte de un programa más grande que es responsable de llevar a cabo una tarea específica. El programa más grande puede ejecutar una gran carga de trabajo, y la subrutina puede estar realizando solo una tarea simple, que también es independiente de la codificación del programa restante. Una función está codificada de tal manera que puede llamarse varias veces y desde diferentes lugares (incluso desde otras funciones). Cuando se llama a una función, el procesador puede ir a donde reside el código de la función y ejecutar las instrucciones una por una. Después de completar las funciones, el procesador volverá exactamente donde lo dejó y continuará la ejecución a partir de la siguiente instrucción. Las funciones son una gran herramienta para la reutilización de código. Muchos lenguajes de programación modernos soportan funciones. Una colección de funciones se llama una biblioteca. Las bibliotecas se utilizan a menudo como medio para compartir y comercializar software. En algunos casos, todo el programa podría ser una secuencia de subrutinas (por ejemplo, compilación de código en subprocesos).
¿Cuál es la diferencia entre Llamada de sistema y Llamada de función?
La llamada al sistema es una llamada a una subrutina integrada en el sistema, mientras que una llamada a la función es una llamada a una subrutina dentro del programa. A diferencia de las llamadas a funciones, las llamadas al sistema se usan cuando un programa necesita realizar alguna tarea, para la cual no tiene privilegios. Las llamadas del sistema son puntos de entrada en el kernel del sistema operativo y no están vinculadas al programa (como las llamadas de función). A diferencia de las llamadas al sistema, las llamadas a funciones son portátiles. La sobrecarga de tiempo de una llamada del sistema es más que la sobrecarga de una llamada de función porque debe tener lugar una transición entre el modo de usuario y el modo de núcleo. Las llamadas al sistema se ejecutan en el espacio de direcciones del kernel, mientras que las llamadas a funciones se ejecutan en el espacio de direcciones del usuario.