Site hosted by Angelfire.com: Build your free website today!


Estructura y elementos básicos de los
sistemas operativos


 

2.1. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS

Lo primero que hay que decidir al diseñar un sistema operativo es su finalidad y el tipo de proceso que se quiere realizar a través de él (proceso por lotes, tiempo compartido, multiproceso, etc.).

Para ello es preciso tener en cuenta las necesidades que pueden plantearse:

· Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso a que se le quiere destinar.

· Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.

A continuación vamos a describir las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.
 

2.1.1. Estructura monolítica

Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Figura 2.1).

Las características fundamentales de este tipo de estructura son:

- Construcción del programa final a base de módulos compilados separadamente que se unen a través del editor de enlace.

- Buena definición de parámetros de enlace entre las distintas rutinas existentes.

- Carecen de protecciones y privilegios.

- Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión.

  2.1.2. Estructura jerárquica

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software.

Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con una clara interfaz con el resto de elementos.

Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el primero de los cuales fue el denominado THE (Techniche Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos (Figura 2.2).

En este sistema operativo pueden verse las distintas capas en su orden jerárquico:

- Hardware (Nivel - 1).

- Planificación del procesador (Nivel 0).

- Gestión de la memoria (Nivel 1).

- Controlador de la consola del operador (Nivel 2).

- Control de las operaciones de entrada/salida (Nivel 3).

- Gestión de archivos (Nivel 4).

- Control de programas de usuario (Nivel 5).


En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o «rings» (Figura 2.3).

En el sistema de rings, cada anillo tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores.

De esta forma, las zonas mas internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.
 

2.1.3. Máquina virtual

Se trata de un tipo de sistemas operativos que presentan una interfaz a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente.

Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas:

- La multiprogramación.

- La máquina extendida.
 
 

El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes.

El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario (Figura 2.4).
 

2.1.4. Cliente-servidor

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.

Este sistema sirve para todo; por tanto, es de propósito general y se basa en lo mismo que el resto de sistemas operativos convencionales: el núcleo y los procesos, presentando grandes diferencias en cuanto a la forma de distribuir los trabajos entre sus distintas partes. Suele suministrar mecanismos adecuados para la gestión de:

- Procesos.

- Memoria.

- Comunicación entre procesos.
 
 

El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro (Figura 2.5).
 

2.2. PRESTACIONES DE UN SISTEMA OPERATIVO

Como ya se ha dicho, la misión de un sistema operativo es la de ayudar a los usuarios en el manejo de la computadora; para ello deberá proporcionar ciertos servicios que se pueden considerar desde dos puntos de vista distintos:

2.2.1. Servicios de usuario

El sistema operativo ofrece sus servicios a los usuarios de dos formas diferentes: Las llamadas al sistema operativo desde un proceso y la ejecución de programas del propio sistema.
 

- Llamadas al sistema operativo

Constituyen la interfaz entre un programa en ejecución y el sistema operativo. Estas llamadas se pueden agrupar de la siguiente forma:

En general, las llamadas al sistema operativo necesitan pasar algún tipo de información para la correcta ejecución del proceso a través de algún registro o bloque de parámetros.

En la Figura 2.6 puede verse el esquema de ejecución de una llamada al sistema operativo.

Las llamadas al sistema operativo son como las llamadas a un subprograma desde el punto de vista del programa que llama. Tras la llamada, se ejecuta la rutina del sistema operativo que ha sido invocada, tomando los datos de los parámetros correspondientes; a continuación se devuelve el control al proceso que efectuó la llamada, ejecutándose la siguiente instrucción y, en su caso, tomando los datos de vuelta a los parámetros correspondientes.
 

- Programas del sistema

En los sistemas operativos actuales, además de las funciones básicas del núcleo que pueden ser ejecutadas a través de llamadas al sistema operativo, existe un conjunto de programas del sistema o de utilidad cuya misión es resolver problemas comunes y frecuentes de los usuarios, ofreciéndolos de forma cómoda y sencilla (Figura 2.7).

Estos programas los podemos agrupar de la siguiente forma:


2.2.2. Servicios del sistema

El intérprete de comandos y los programas del sistema son los que fijan el entorno y la forma de ver el sistema operativo por los usuarios. En cambio, el programador del sistema tiene una visión totalmente diferente; para él todo son recursos físicos y dispositivos que deben ser convertidos en entidades lógicas para ofrecérselas a los usuarios.

Se puede decir que un sistema operativo es un programa activado por eventos; es decir, si no hay programas en ejecución, ni operaciones de entrada/salida pendientes, etc., el si~ tema estará inactivo hasta que se produzca alguna nueva petición. Normalmente cada evento producirá una interrupción de la ejecución del sistema operativo.
 

- Llamadas al sistema operativo

En esta ocasión las llamadas al sistema operativo se agrupan por el tipo de llamada y no por la acción que realizan. Pueden ser:


- Interrupciones de los dispositivos de E/S

Una vez que un programa en ejecución realiza una petición de entrada/salida, se pueden tomar dos tipos de acción por parte del sistema operativo:

- Gestión de excepciones

Cuando un programa en ejecución comete un error, se producirá una interrupción; por ejemplo, una división por 0, intento de violación de un archivo protegido, intento de ejecución de una instrucción no permitida o privilegiada, etc. El tratamiento de estos errores se conoce como manejo de excepciones.

Los sistemas operativos suelen asociar alguna función para el tratamiento de estos errores. El núcleo da control a esta función en el momento de aparición de un error de este tipo.
 

2.2.3. Protecciones

Los programas de aplicación de los usuarios no están exentos de errores, así como los sistemas tampoco están libres de usuarios con malas intenciones. Por ello, el sistema operativo debe incluir ciertas funciones de protección con objeto de evitar problemas entre procesos y entre éstos y el propio sistema operativo.
 

Todos los dispositivos externos cuentan, por parte del sistema operativo, con rutinas para el control de las operaciones de entrada/salida. Estas rutinas se denominan controladores o drivers de dispositivos y entre otras funciones protegen los accesos incorrectos, devolviendo el control al núcleo del sistema operativo, indicándole la situación errónea que se ha producido.
  En general, cada proceso tiene una zona de memoria asignada para el tratamiento de sus datos denominada espacio de direccionamiento y no puede acceder a zonas asignadas al sistema operativo o a otros procesos. Para evitarlo existen unos registros frontera que indican el límite de memoria asignado a cada proceso (Figura 2.8).

Si un proceso intentase acceder a direcciones que están fuera de la zona de memoria de su espacio de direccionamiento, se producirá una interrupción que dará control al sistema operativo dando cuenta del error que se ha producido.
 

Otro tipo de problemas que pueden presentarse es la presencia de bucles infinitos o accesos al procesador que no lo liberan nunca. En estos casos la única solución es la de apagar y volver a encender (reset) para volver a comenzar desde el principio.

Para evitarlo, el hardware incluye un temporizador que marca períodos de tiempo, de manera que al terminar un período de tiempo se produzca una interrupción y tome el control el sistema operativo.
 
 


Fecha última modificación: 18 - Agosto - 2001
Jimena Osorio M.