viernes, 27 de septiembre de 2013



Buenas tardes a todos mis lectores, hoy voy a publicar una entrada referente a las distintas estructuras de los sistemas operativos desde su comienzo, hablaremos sobre la Estructura monolítica, Estructura jerárquica, Cliente-Servidor.
También hablaremos de los distintos sistemas operativos en referencia a mono-usuario/multi-usuario mono-tarea/multitarea y la diferencia entre multitarea y multiproceso.

Pero antes de comenzar con este pantallazo general sobre los distintos sistemas operativos, quiero hacer la aclaración de siempre...



ADVERTENCIAprobablemente mucha gente esté en desacuerdo con lo que expreso en las entradas de mi blog, la idea del blog siempre fue, como todo blog, la de presentar textos que muestren un poco de mi "día a día", en mi caso en el mundo de la programación y la informática.
No obstante, todos mis textos están basados en la normativa vigente, y en toda mi experiencia hasta el momento, aquellos que estén en desacuerdo, probablemente sea por ignorancia o desconocimiento, y también podríamos mencionar engreimiento, creer que saben todo, pero tampoco podemos dejar de lado que quizá esté equivocado en algunas cosas, pero con el tiempo me daré cuenta y lo aclararé en nuevas entradas al blog.

Vamos entonces al tema en cuestión.-

Dependiendo del sistema operativo podemos desarrollar o tomar posturas que apoyen a distintas estructuras de sistemas operativos, cada estructura tenía un objetivo original, es evidente por lo que ya han podido apreciar a lo largo de mis publicaciones, que nadie diseña una nueva idea en informática si no es para representar un nuevo punto de vista o algo nuevo, por lo que podemos concluir que cada estructura fue diseñada en base a un punto de vista diferente a las demás.

La primer estructura que analizaremos es la estructura Monolítica, ésta 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.
Las características fundamentales de estos sistemas operativos basados en ésta 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.

además podemos inducir que éste tipo de sistemas cuentan con un solo usuario (mono-usuario) y solo pueden ejecutar una sola tarea (mono-tarea)

La segunda estructura que analizaremos es la estructura Jerárquica, ésta estructura basa todo su funcionamiento en capas que tienen una jerarquía, cada capa está claramente definida y tiene una interfaz directa con su capa superior para poder interactuar.
Edsger Dijkstra, (que ya lo nombramos varias veces en publicaciones en mi blog), fue el primero en desarrollar un sistema operativo con esta estructura, fue llamado como "THE" (Téchnische Hogeschool Eindhoven), también conocido como THE Operating System éste sistema operativo presentaba 7 capas o niveles jerárquicos, cada capa podía comunicarse con la capa superior a traves de una interfaz bien definida.
Entre otras cosas éste modelo de capas agrega seguridad al sistema, ya que las capas inferiores no pueden ser accedidas por cualquier capa sino por la inmediata superior (la capa superior únicamente), por lo que por ejemplo las acciones sobre el hardware no podían ser ejecutadas por usuarios comunes, sino por la capa de gestión de entrada/salida.
El sistema THE de dijkstra fue utilizado para fines didácticos y dio origen al resto de los sistemas basados en esta estructura.

Nivel 5 - Usuario
Nivel 4 - Archivos
Nivel 3 - Entrada/salida
Nivel 2 - Comunicaciones
Nivel 1 - Memoria
Nivel 0 - Gestión de CPU
Nivel -1 - Hardware

En base a estos niveles en los que separó la computadora pueden verse 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)

La mayoría de los sistemas operativos actuales se basa en la estructura anterior.

Para continuar y que no se haga muy largo, voy a obviar la estructura de Máquina Virtual y a continuar con Cliente-Servidor...
Se concideran dos objetos claros en el sistema, el cliente y el servidor, el servidor son aquellas partes del sistema encargadas de proveer de recursos y cosas a los clientes, los clientes son las otras partes del sistema que requieren de un "servicio" y en general podría decirse que contactan con el servidor.
En modelos como éste suele surgir un cambio de roles a la hora de trabajar, cuando un servidor de x necesita de algún servicio se convierte en el cliente de otro servidor.
Se sabe que esta estructura tiene puntos positivos, como:

Mejora de gestión de procesos.
Mejora de gestión de memoria.
Mejora de comunicación entre procesos.

El encargado de establecer la comunicación entre los clientes y los servidores es el núcleo del sistema.

Bueno y eso es todo para la entrada del día de hoy, los espero mañana con otra entrada interesante sobre la programación y las ramas que tienen relación con ella.

Tenga en cuenta que la próxima publicación de éste hilo se pondrá más interesante con la explicación de procesos y probablemente Hilos que quizá nos lleve a programación multi-hilos.

Un saludo para todos los lectores.-
Aclaración final, tomé como referencia para escribir esta entrada el libro de "Introducción a los Sistemas Operativos" de E. Alcalde/J. Morera, edición 1992

0 comentarios:

Publicar un comentario