Según [Alcal92], se deben
observar dos tipos de requisitos cuando se construye un sistema operativo, los
cuales son:
Requisitos de usuario: Sistema
fácil de usar y de aprender, seguro, rápido y adecuado al uso al 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 se describen las
distintas estructuras que presentan los actuales sistemas operativos para
satisfacer las necesidades que de ellos se quieren obtener.
Estructura monolítica.
Es la estructura de los primeros
sistemas operativos constituídos fundamentalmente por un solo programa
compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una
puede llamar a cualquier otra (Ver Fig. 2). 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 ligador.
Buena definición de parámetros de
enlace entre las distintas rutinas existentes, que puede provocar mucho
acoplamiento.
Carecen de protecciones y
privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos
de la computadora, como memoria, disco, etc.
Generalmente están hechos a
medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por
lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo
o tipos de aplicación.

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, del sistema operativo, donde una parte del
sistema contenía subpartes y esto organizado en forma de niveles.
Se dividió el sistema operativo
en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente
definida y con un claro interface con el resto de elementos.
Se constituyó una estructura
jerárquica o de niveles en los sistemas operativos, el primero de los cuales
fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se
utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos
sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría.
[Feld93].

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" (Ver Fig. 4).

En el sistema de anillos, cada
uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden
entrar las llamadas de las capas inferiores. De esta forma, las zonas más
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.
cliente-servidor ( Microkernel)
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 toda
clase de aplicaciones por tanto, es de propósito general y cumple con las
mismas actividades que los sistemas operativos convencionales.
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." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los
servicios posibles en el sistema final, ya que el núcleo provee solamente
funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando
a los servidores proveer la mayoría que el usuario final o programador puede
usar. Estos servidores deben tener mecanismos de seguridad y protección que, a
su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se
está trabajando en una versión de UNIX que contempla en su diseño este
paradigma.
No hay comentarios:
Publicar un comentario