Arranque del Sistema, Procesos y Llamadas al Sistema en Ingeniería Informática

Arranque del Sistema

El arranque del sistema es la secuencia de operaciones que, tras el encendido, llevan la máquina a un estado usable. A continuación, se detallan los pasos involucrados:

  1. El procesador realiza una inicialización interna que termina transfiriendo el control a una dirección determinada.
  2. En dicha dirección puede haber:
    • Si el sistema operativo está en ROM: el sistema operativo (ir al paso 5).
    • Si el sistema operativo no está en ROM: el cargador hardware.
  3. Cargador hardware: realiza una inicialización mínima que determina las características y el correcto funcionamiento del sistema.
  4. Determina el dispositivo de carga del sistema operativo y lee de dicho dispositivo el cargador software.

El cargador hardware se llama así por estar implementado por el fabricante del hardware. La utilidad del cargador hardware/cargador software radica en una mayor flexibilidad. El cargador software trata con las particularidades de su sistema operativo.

Arranque del Sistema (Continuación)

El cargador software (pertenece al SO) carga el sistema operativo y le transfiere el control una vez cargado. La inicialización del sistema operativo implica:

  • Creación de estructuras de datos del sistema operativo.
  • Comprobación detallada del sistema: detección de nuevos dispositivos, comprobación del sistema de archivos, etc.
  • Carga de los componentes opcionales que procedan del SO.
  • Creación de uno o más procesos de inicio de sesión.

Tras iniciar sesión, se crea un proceso intérprete de comandos (texto o gráfico).

Procesos

Un proceso se define como un programa en ejecución. Si se ejecuta dos o más veces un mismo programa, se obtienen procesos distintos. Un proceso puede cambiar el programa (execve) y sigue siendo el mismo proceso.

Un sistema operativo multiprogramado es aquel que permite más de un proceso en ejecución simultáneamente. Estos sistemas emplean mecanismos de protección para aislar procesos. Cada proceso tiene su propio espacio de memoria y se proporcionan mecanismos de comunicación y sincronización, así como mecanismos de identificación de procesos (PID). Un proceso puede crear otros procesos, estableciendo una relación paterno/filial entre ellos. Los procesos padre tienen atribuciones especiales sobre los procesos hijos.

Llamadas al Sistema

Una llamada al sistema es una petición que hace un proceso al sistema operativo para obtener algún tipo de servicio. La API (Application Programming Interface) es la interfaz que el sistema operativo presenta a los programas y está compuesta por el conjunto de todas las llamadas al sistema soportadas. Existen APIs estandarizadas como POSIX (Portable Operating System Interface) y APIs propietarias como WIN32 y WinFX.

Formas de Implementación de las Llamadas al Sistema

  • Mediante rutinas.
  • Mediante interrupciones.
  • Mediante instrucciones específicas.

Implementación mediante Rutinas

Por cada llamada al sistema, existe una rutina que la implementa. Las dificultades que surgen son:

  1. ¿En qué direcciones están?
    • Soluciones:
      • Punto de entrada en dirección fija. ¡Los programas dependen de esta dirección!
      • Punto de entrada en dirección apuntada por una variable. ¡Los programas dependen de la dirección de dicha variable!
      • Los programas hacen referencia al punto de entrada mediante una variable conocida por el montador de enlaces (Ej: CALL SYS). ¡Si cambia la versión del SO, hay que reenlazar los programas!
  2. ¿Cómo se pasa a modo supervisor? Nótese que la rutina de entrada al sistema operativo es una rutina externa a los programas.

Uno de los parámetros (normalmente un registro) indica qué servicio del sistema operativo se invoca. Los demás parámetros dependerán del tipo de servicio solicitado.

Implementación mediante Interrupciones

Existe un punto de entrada único al que se accede mediante una interrupción. Este punto de entrada se coloca en cualquier dirección de memoria. Para efectuar una llamada al sistema, se usa la instrucción INT n. En el vector n de interrupción se encuentra la dirección del punto de entrada. Al realizar una llamada:

  • Se pasa a modo supervisor.
  • El hardware determina la dirección del punto de entrada.
  • El código del SO se ejecuta en modo supervisor.
  • Al retornar, se restaura el modo de ejecución previo a la llamada.
Ventajas de la Implementación mediante Interrupciones
  • Independencia de los programas respecto a la ubicación del punto de entrada en memoria.
  • Conmutación implícita a modo supervisor.
  • Posibilidad de llamadas implícitas al sistema.
Inconvenientes de la Implementación mediante Interrupciones

Para cada llamada al sistema, el hardware realiza todas las comprobaciones y acciones que se llevarían a cabo para una interrupción: ¡muchas se podrían simplificar!

Llamadas Implícitas al Sistema

Se puede aprovechar la excepción producida por la ejecución de determinadas instrucciones no permitidas, como por ejemplo una instrucción INP para acceder a un dispositivo, para transferir el control al núcleo. El núcleo determina qué es lo que ha pasado y, si lo considera adecuado, simula al proceso la ejecución de la instrucción que intentó ejecutar, de manera que el proceso tiene la percepción de haber ejecutado la instrucción cuando realmente ha sido el SO quien lo ha hecho.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.