Modos de ejecución en un CPU.
Las aplicaciones no deben
poder usar todas las instrucciones de la CPU. No obstante el Sistema Operativo,
tiene que poder utilizar todo el conjunto de instrucciones del CPU. Por ello,
una CPU debe tener (al menos) dos modos de operación diferentes:
- Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones.
- Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.
Llamadas al sistema-.
Una aplicación, normalmente no sabe dónde está situada la
rutina de servicio de la llamada. Por lo que si ésta se codifica como una
llamada de función, cualquier cambio en el S.O. haría que hubiera que
reconstruir la aplicación.
Pero lo más importante es que una llamada de función no
cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la
rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce
un cambio de modo de operación de la CPU en la llamada (y la recuperación del
modo anterior en el retorno).
Esto se hace utilizando instrucciones máquina diseñadas
específicamente para este cometido, distintas de las que se usan para las
llamadas de función.
Bibliotecas de interfaz de llamadas al sistema.
Las llamadas al sistema no siempre tienen una expresión sencilla
en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz,
que son bibliotecas de funciones que pueden usarse para efectuar llamadas al
sistema. Las hay para distintos lenguajes de programación.
La aplicación llama a una función de la biblioteca de
interfaz (mediante una llamada normal) y esa función es la que realmente hace
la llamada al sistema.
Por Rocio Rocio Ramirez PDVSA.