1.2.1. Las llamadas al sistema
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
1.2.1. Las llamadas al sistema
Como hemos dicho, un sistema operativo proporciona un entorno para la ejecución de programas. Una parte de este entorno consiste en un conjunto de servicios que son accesibles por los procesos1 que se están ejecutando en el sistema. Estas funcionalidades son como una extensión de las instrucciones que puede ejecutar el procesador y están en la línea de una concepción del sistema como una máquina virtual que puede hacer cosas más complicadas que las que puede hacer el hardware en sí mismo.
Los programadores de aplicaciones invocan los servicios del sistema operativo desde sus programas haciendo llamadas al sistema2.
Aunque cada sistema operativo puede ofrecer servicios muy específicos, de manera general podemos agruparlos en las clases siguientes:
- Gestión de procesos. En este apartado, englobamos las llamadas que hacen referencia a la creación y la eliminación de procesos, pero también podemos encontrar otros servicios, como la suspensión y la reanimación de procesos. También podemos modificar atributos de ejecución, como la prioridad o el tiempo de cuota de CPU asignado. Tal como veremos más adelante, todas estas llamadas se encuentran bajo el control del núcleo del sistema operativo, que determina en última instancia si la petición realizada por un proceso puede ser servida de acuerdo con sus privilegios.
Notas y pies de figura de la fuente
(1)Tal como introdujimos en el módulo anterior, un proceso no es más que un programa en ejecución. (2)Estas llamadas al sistema también se llaman API (Application Programming Interface) del sistema operativo.
Página 10
-
Señalización entre procesos. En un sistema multitarea, el nexo natural de unión entre todas las aplicaciones en ejecución es el sistema operativo. Así, el vehículo apropiado para comunicar y sincronizar procesos es el núcleo del sistema operativo. Señales, semáforos, regiones críticas y otras funciones son ejemplos concretos de esta clase de servicios.
-
Gestión de dispositivos de entrada/salida. Los servicios relacionados con el sistema de entrada/salida son de los más completos y también de los más utilizados. Tienen como funciones principales crear canales de entrada/salida3, abrirlos y cerrarlos, así como escribirlos y leerlos. Los sistemas operativos también proporcionan un conjunto de llamadas para conocer el estado de un canal o cambiarle los atributos.
-
Gestión directa de los recursos del sistema. Este grupo de servicios es muy específico de cada sistema operativo, pero un ejemplo común es la gestión de la memoria. Algunas de las operaciones que se efectúan con la memoria del sistema son capturar, liberar, proteger y compartir.
-
Gestión del sistema de archivos. Junto con el bloque de servicios de entrada/salida, también es un grupo de servicios muy utilizado. La gestión del sistema de ficheros incluye las funcionalidades más conocidas también por los usuarios del intérprete de pedidos en relación con la gestión de archivos y directorios, como crear y eliminar entradas, cambiar de directorio o mostrar el directorio actual. También permite entablar las operaciones típicas con ficheros, como crear, eliminar, copiar o cambiar el nombre.
-
Protecciones. El sistema operativo tiene que combinar los atributos entre el proceso y el servicio que pide para determinar si este servicio se puede dar o no. Es una de las partes más utilizadas por los administradores de los sistemas, especialmente como llamadas del sistema, pero no lo es tanto por parte de los usuarios.
-
Funciones de tiempo. Todas las referencias temporales de los procesos provienen de llamadas al sistema operativo, como por ejemplo la fecha y la hora. También se pueden capturar datos sobre el tiempo de ejecución de un proceso, el tiempo de CPU u otras funciones estadísticas de esta clase.
Notas y pies de figura de la fuente
(3)Los canales básicamente permiten extraer datos desde un proceso o hacia éste.
Ver fragmento extraído sin normalizar
1.2.1. Las llamadas al sistema
Como hemos dicho, un sistema operativo proporciona un entorno para la (1)Tal como introdujimos en el mó-
ejecución de programas. Una parte de este entorno consiste en un conjunto dulo anterior, un proceso no es
más que un programa en ejecu-
de servicios que son accesibles por los procesos1 que se están ejecutando en ción.
el sistema. Estas funcionalidades son como una extensión de las instrucciones
que puede ejecutar el procesador y están en la línea de una concepción del
sistema como una máquina virtual que puede hacer cosas más complicadas
que las que puede hacer el hardware en sí mismo.
(2)Estas llamadas al sistema tam-
Los programadores de aplicaciones invocan los servicios del sistema bién se llaman API (Application
Programming Interface) del siste-
operativo desde sus programas haciendo llamadas al sistema2. ma operativo.
Aunque cada sistema operativo puede ofrecer servicios muy específicos, de
manera general podemos agruparlos en las clases siguientes:
1)Gestióndeprocesos. En este apartado, englobamos las llamadas que hacen
referencia a la creación y la eliminación de procesos, pero también podemos
encontrar otros servicios, como la suspensión y la reanimación de procesos.
También podemos modificar atributos de ejecución, como la prioridad o el
tiempo de cuota de CPU asignado. Tal como veremos más adelante, todas estas
llamadas se encuentran bajo el control del núcleo del sistema operativo, que
determina en última instancia si la petición realizada por un proceso puede
ser servida de acuerdo con sus privilegios.
## Página 10
<!-- source-page: 10 -->
GNUFDL • PID_00214804 10 El sistema operativo: una máquina virtual
2)Señalizaciónentreprocesos. En un sistema multitarea, el nexo natural de
unión entre todas las aplicaciones en ejecución es el sistema operativo. Así,
el vehículo apropiado para comunicar y sincronizar procesos es el núcleo del
sistema operativo. Señales, semáforos, regiones críticas y otras funciones son
ejemplos concretos de esta clase de servicios.
3)Gestióndedispositivosdeentrada/salida. Los servicios relacionados con (3)Los canales básicamente permi-
el sistema de entrada/salida son de los más completos y también de los más ten extraer datos desde un proceso
o hacia éste.
utilizados. Tienen como funciones principales crear canales de entrada/sali-
da3, abrirlos y cerrarlos, así como escribirlos y leerlos. Los sistemas operativos
también proporcionan un conjunto de llamadas para conocer el estado de un
canal o cambiarle los atributos.
4)Gestióndirectadelosrecursosdelsistema. Este grupo de servicios es muy
específico de cada sistema operativo, pero un ejemplo común es la gestión de
la memoria. Algunas de las operaciones que se efectúan con la memoria del
sistema son capturar, liberar, proteger y compartir.
5)Gestióndelsistemadearchivos. Junto con el bloque de servicios de en-
trada/salida, también es un grupo de servicios muy utilizado. La gestión del
sistema de ficheros incluye las funcionalidades más conocidas también por
los usuarios del intérprete de pedidos en relación con la gestión de archivos y
directorios, como crear y eliminar entradas, cambiar de directorio o mostrar el
directorio actual. También permite entablar las operaciones típicas con fiche-
ros, como crear, eliminar, copiar o cambiar el nombre.
6)Protecciones. El sistema operativo tiene que combinar los atributos entre
el proceso y el servicio que pide para determinar si este servicio se puede dar o
no. Es una de las partes más utilizadas por los administradores de los sistemas,
especialmente como llamadas del sistema, pero no lo es tanto por parte de los
usuarios.
7)Funcionesdetiempo. Todas las referencias temporales de los procesos pro-
vienen de llamadas al sistema operativo, como por ejemplo la fecha y la hora.
También se pueden capturar datos sobre el tiempo de ejecución de un proceso,
el tiempo de CPU u otras funciones estadísticas de esta clase.