Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Estructura de Los Sistemas Operativos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

FACULTAD DE CIENCIAS DE LA INGENIERÍA

UNIVERSIDAD TÉCNICA ESTATAL DE QUEVEDO


TEMA:
Sistemas operativos, tipos y conceptos
CARRERA:
Ingeniería en Telemática
ASIGNATURA:
Estructura de los Sistemas Operativos
AUTORES:
Darwin Álava
Cristhian Mazón
Adrián Avilés
DOCENTE:
Ing. Kenya Guerrero
Estructura de los sistemas operativos
Las estructuras internas de los sistemas operativos pueden ser muy diferentes, ya
que se debe tener en cuenta las metas de los usuarios (fácil uso, confiable, rápido,
etc.) y las del sistema (fácil de diseñar, implementar y mantener, eficiente, etc.).
Sistemas monolíticos
En los sistemas monolíticos, todos los componentes de gestión y programas del
sistema están escritos en un solo código o espacio lógico. Pueden decirse que el
núcleo es el Sistema Operativo. La división más evidente que puede hacerse es
entre procesos de aplicación o usuario y procesos del sistema.
Los sistemas monolíticos son los más comunes puesto que su implementación y
diseño son los menos complejos. La desventaja es que como todo el sistema se
ejecuta en el mismo nivel de privilegio que el núcleo (el Sistema Operativo es el
núcleo) es muy probable que haya problemas (el sistema se apague, se bloquee o
se cuelguen procesos, por ejemplo) si ocurre algún fallo del hardware o existe algún
error sin depurara en el código del sistema. GNU/Linux es monolítico, aunque con
éste se introdujo una variante interesante. A pesar de ser monolítico, es modular, lo
que significa que es posible quitar o añadir componentes al núcleo incluso en
caliente (o sea, en pleno funcionamiento). Así, si un módulo tiene problemas se
puede reemplazar, arreglar o eliminar sin afectar al resto de funcionalidades. Otra
ventaja interesante de los sistemas monolíticos es su velocidad. Ya que todos los
componentes del Sistema Operativo comparten los privilegios y direcciones y la
separación funcional solo se hace entre procesos del sistema y los de aplicación, la
demora para ejecutar las llamadas al sistema es mínima.
Sistemas por capas o niveles de privilegio
En la medida que el hardware se desarrolló para incorporar mecanismos de
protección para la gestión de procesos, memoria y entrada/salida, los Sistemas
Operativos se adaptaron a este diseño. El objetivo de la arquitectura por capas o
niveles de privilegio, es separar la acción del código de los procesos del sistema,
del núcleo y de los procesos de usuario. Idealmente se separa en el nivel de máximo
privilegios o protección, al código base del núcleo.
En el siguiente nivel de privilegios se ubica a los procesos del sistema para la
gestión de procesos y memoria; en otro nivel a los procesos de gestión de entrada
salida incluyendo los drivers y en el nivel de menos privilegio, se ejecutan el resto
de los procesos de aplicación. Esto por supuesto, no siempre es así y pueden existir
muchísimas variantes en la implementación. Una práctica común es ubicar los
procesos y componentes de entrada/salida en los dos primeros niveles, para
acelerar su ejecución. Lo relevante en esta arquitectura es que se necesitan realizar
restricciones en cuanto a las llamadas al sistema que puedan ejecutar los procesos
de determinados niveles. Por ejemplo, se ha de evitar que un proceso pueda
efectuar una llamada al sistema que requiera la atención de un componente de
menor privilegio o tal vez evitar que los programas de aplicación hagan llamadas
directamente sobre el núcleo. Así puede obligarse a utilizar como mediadores a
otros niveles.
Sistemas de Micronúcleo
La posibilidad de separar funcionalmente los programas del sistema de los
programas de aplicación y asegurar protección adicional con el hardware, origina
otra arquitectura, la de micronúcleo. En esta, se trata de combinar el rendimiento y
sencillez de la arquitectura monolítica con la protección y organización de la
arquitectura por capas. La idea fundamental es obtener un núcleo lo más pequeño
y rápido posible y tratar el resto de las funciones y componentes como procesos de
aplicación. En esta nueva concepción, es usual que el núcleo solo contenga lo
necesario para la gestión de memoria y procesos.
El resto se ejecutan como aplicaciones de usuario; es decir, con el nivel mínimo de
privilegios. En la práctica es un poco difícil conseguir esto sin una pérdida apreciable
de rendimiento. En alguna medida deben incluirse en el núcleo otras funciones
como el manejo de hardware y algunos drivers.

Sistemas cliente-servidor
Separar funcionalmente el núcleo, los procesos del sistema y los procesos de
aplicación, induce una idea interesante: ¿Se podrán separar físicamente los
procesos del sistema y/o los de aplicación? La arquitectura dónde cada proceso se
ejecuta de manera independiente, es una de las más difíciles de lograr. Esta
independencia implica que los procesos podrían ser ejecutados en sistemas (no
solo CPU, sino todo el hardware) diferentes y distantes geográficamente. En cada
sistema independiente solo estarían presentes el núcleo y los componentes
mínimos para la ejecución de uno o algunos procesos. En esta arquitectura, se
manifiesta con mayor peso la necesidad de establecer llamadas al sistema robustas,
para la comunicación entre procesos. Se escoge el modelo cliente - -servidor para
esta comunicación, porque se establece que cada proceso (independiente o no)
actúa como servidor del resto. En esta arquitectura, el objetivo fundamental del
núcleo es garantizar la comunicación entre procesos. Esta filosofía propició la
creación de los Sistemas Operativos distribuidos que son, básicamente,
implementaciones basadas en el modelo cliente-servidor. Aunque los Sistemas
Operativos distribuidos no serán estudiados en este curso, explotan un mecanismo
interesante de la comunicación entre procesos, que es el paso de mensajes. La
tendencia actual es desarrollar aplicaciones distribuidas en vez de Sistemas
Operativos distribuidos, aprovechando las redes de computadoras.

También podría gustarte