Diferencia Entre Llamada Al Sistema Y Llamada A Función

Diferencia Entre Llamada Al Sistema Y Llamada A Función
Diferencia Entre Llamada Al Sistema Y Llamada A Función

Vídeo: Diferencia Entre Llamada Al Sistema Y Llamada A Función

Vídeo: Diferencia Entre Llamada Al Sistema Y Llamada A Función
Vídeo: ISI485 - Sistemas Operativos - C3P4 - Llamadas al Sistema Parte 1 2024, Abril
Anonim

Llamada al sistema vs llamada a 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 resida en algún otro lugar). Después de hacer esto, el procesador vuelve a la ejecución normal y continúa desde donde lo dejó. Una llamada al sistema y una llamada a una función son tales ocasiones. Una llamada al sistema es una llamada a una subrutina integrada en el sistema. Una llamada a función es una llamada a una subrutina dentro del programa mismo.

¿Qué es una llamada al sistema?

Las llamadas al sistema proporcionan a los programas que se ejecutan en la computadora una interfaz para comunicarse con el sistema operativo. Cuando un programa necesita solicitar un servicio (para el cual no tiene permiso para hacerlo por sí mismo) desde el 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 llamada de función?

Una llamada de función también se denomina 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 se encarga de realizar 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 se puede llamar varias veces y desde diferentes lugares (incluso desde dentro de otras funciones). Cuando se llama a una función, el procesador puede ir al lugar donde reside el código de la función y ejecutar las instrucciones de la función una por una. Después de completar las funciones, el procesador volverá exactamente a 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 admiten funciones. Una colección de funciones se llama biblioteca. Las bibliotecas se utilizan a menudo como medio para compartir e intercambiar software. En algunos casos, todo el programa podría ser una secuencia de subrutinas (por ejemplo, compilación de código enhebrado).

¿Cuál es la diferencia entre System Call y Function Call?

La llamada al sistema es una llamada a una subrutina incorporada al sistema, mientras que una llamada a una función es una llamada a una subrutina dentro del programa. A diferencia de las llamadas a funciones, las llamadas al sistema se utilizan cuando un programa necesita realizar alguna tarea para la que no tiene privilegios. Las llamadas al sistema son puntos de entrada al kernel del sistema operativo y no están vinculadas al programa (como las llamadas a funciones). A diferencia de las llamadas al sistema, las llamadas a funciones son portátiles. La sobrecarga de tiempo de una llamada al sistema es mayor que la sobrecarga de una llamada a función porque debe tener lugar una transición entre el modo de usuario y el modo de kernel. 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.

Recomendado: