Você está na página 1de 11

Estructura de un sistema operativo

Analizando la historia de los Sistemas Operativos notamos que se puede considerar que stos surgen
desde finales de los 50's con una arquitectura bastante obsoleta comparada con la de la actualidad.
Para poder construir un Sistema Operativo se deben tener en cuenta dos tipos de requisitos, los cuales
son:

Requisitos de usuario: Un sistema fcil de usar y de aprender, seguro, rpido y adecuado para
el uso que se le necesita dar.

Requisitos del software: Considera el continuo mantenimiento, forma de operacin,


restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.

El objetivo de la estructuracin es buscar una organizacin interna que facilite la comprensin,


incremente la portabilidad, extensin y favorecer el mantenimiento de los Sistemas Operativos.
A continuacin se describen las distintas estructuras que presentan los actuales Sistemas Operativos para
satisfacer las necesidades que de ellos se quieren obtener. stas no son de ninguna manera las nicas
estructuras posibles, pero nos darn una idea de algunos diseos que se han llevado a la prctica.
Los cuatro diseos son:

Contenido
[ocultar]

1 Los Sistemas Monolticos. (Estructuras Simples)

2 Los sistemas de Microncleo o Microkernel

3 Los sistemas por capas o jerrquica (Estructura por niveles)

4 Sistemas por mdulos

5 Referencias
o 5.1 Artculos
o 5.2 Enlaces

Los Sistemas Monolticos. (Estructuras Simples)

Segn la Real Academia Espaola Monoltico es algo de una pieza, sin fisuras o rgido, inflexible, Los sistemas
Monolticos son la estructura ms simple para un Sistema Operativo. Tambin llamados de Estructura Modular,
fue escrito para proporcionar una mxima funcionalidad dentro del menor espacio posible,
Se caracteriza porque no tienen una estructura totalmente clara, con sto nos referimos a que sus rutinas y
funcionalidades (ej. manejo de drivers, sistemas de archivos, gestin de memoria, etc.), se encuentran
agrupados
en
un
solo
programa
(el
Sistema
Operativo).
Este sistema est descrito como un conjunto de procedimientos o rutinas entrelazadas de tal forma que cada una
tiene la posibilidad de llamar a las otras rutinas cada vez que as lo requiera. Sin embargo, cabe destacar las
falencias en este tipo de estructura que radica principalmente en la poca confiabilidad otorgada, ya que todo el
sistema, al no tener una estructura definida, se ejecuta todo en el mismo nivel del ncleo (kernel) lo que lo hace
altamente vulnerable, por esta razn cuando falla un programa se produce un error en todo el sistema. Adems,
otro problema inherente al Sistema Monoltico es que si se modifica el hardware por lo general es necesario
recompilar el kernel para poder disponer de las funcionalidades. sto consume tiempo y recursos porque la
compilacin de un nuevo kernel puede durar varias horas y necesita de una gran cantidad de memoria. Cada vez
que alguien aade una nueva caracterstica o corrige un error, significa que se necesitar hacer una recopilacin
del kernel entero, un ejemplo de esto podemos verlo en Linux. Tambin el hecho de que en el espacio del
kernel estn incluidos todos los servicios bsicos, tiene tres grandes inconvenientes: el tamao del ncleo, la
falta de extensibilidad y la mala capacidad de mantenimiento.

Esquema Sistema Monoltico

EJEMPLOS SISTEMAS MONOLTICOS:


Los ejemplos tpicos de este sistema son Unix, MS-DOS y Mac OS hasta Mac OS 8.6. Otros ejemplos
son:

Linux

Syllable

Ncleos tipo DOS

DR-DOS

Familia Microsoft Windows 9x (95, 98, 98SE, Me)

Los sistemas de Microncleo o Microkernel


El Microncleo surge como una nueva forma de organizacin para un Sistema Operativo, es un trmino
algo tedioso de entender ya que puede no ser relativo a su tamao, pero si a su diseo.
En este sistema las funciones centrales son manejadas por el ncleo(kernel) y la interfaz de usuario es
manejada por el entorno(shell). El Microkernel se encarga de todo el cdigo de un sistema, y de
planificar los hilos(threads) con la finalidad de tener multitareas.
Algunas ventajas que podemos destacar de los Microncleos son los siguientes:
Uniformidad de interfaces: disponen de una interfaz nica para las solicitudes de los procesos, el paso
de mensajes.
Portabilidad: reduciendo el ncleo e implementando casi todo en servidores, para implementarlo en
arquitecturas diferentes, slo habra que modificar el ncleo haciendo ms simple su portabilidad.
Fiabilidad: es ms fcil corregir fallas en un sistema pequeo ya que se pueden realizar pruebas ms
rigurosas que en un sistema mucho ms grande.
ALGUNOS EJEMPLOS DE SISTEMAS MICRONCLEO SON:

AIX

BeOS

Mach

MorphOS

QNX

Minix

Hurd

L4

RadiOS

Symbian

VSTa

A continuacin examinaremos cules son las principales caractersticas de un sistema Monoltico y un


Microncleo, adems se podr notar por qu el Sistema Microncleo supera algunas problemticas
relativas al diseo de un sistema Monoltico:
Sistema Monoltico
Sin estructura definida
Todo sistema operativo se ejecuta en modo supervisor
Menos robusto
El sistema operativo es interrumpible
Mayor rendimiento, eficiencia
Difcil de modificar en tiempo de ejecucin
Menos adaptable
Realiza todas las funciones con un nico programa
El sistema es escrito como una coleccin de procedimientos y no
existe "ocultacin de informacin" ya que cualquier procedimiento
puede ser invocado por otros
Un error o una vulnerabilidad de seguridad puede expandirse y
afectar a todo el ncleo
Cualquier cambio a realizar requiere el reinicio del sistema para que
este se haga efectivo

Esquema Sistema Monoltico-Microncleo

Microncleo o Microkernel
Todo el ncleo se ejecuta en
modo supervisor
Ms robusto
El
sistema
operativo
es
interrumpible
Menor rendimiento debido a la
sobrecarga de comunicaciones
Fcil de modificar en tiempo de
ejecucin
Ms adaptable

Intentemos finalmente entender el Sistema Monoltico y Microncleo con una historieta

Sistema Cliente-Servidor:
Dentro de esta estructura tambin podramos incluir el Sistema Cliente-Servidor ya que presenta una
ligera variacin en la idea del Microkernel la cual es que este sistema hace la diferencia entre dos clases
de procesos: los servidores, cada uno de los cuales proporciona cierto servicio, y los clientes, que
utilizan estos servicios. A menudo la capa inferior es un microkernel, pero eso no es requerido. La
esencia es la presencia de procesos cliente y procesos servidor.
En los sistemas operativos modernos, los sistemas cliente-servidor nacen con la finalidad de minimizar
el ncleo (kernel), trasladando el cdigo de todos sus servicios a las capas superiores; y el ncleo slo
deber controlar la comunicacin, que se realiza mediante mensajes, entre clientes y servidores o
servidores y hardware.
El objetivo es desarrollar la mayora de las funciones del sistema operativos como procesos de usuario.
Un proceso de usuario, llamado en este caso proceso cliente, enva una solicitud a un proceso servidor,
que realiza el trabajo y devuelve la respuesta.

El sistema operativo se divide en partes donde cada una controla una faceta del sistema, entre ellos
servicios a archivos, servicios a procesos, servicios a terminales, o servicios a la memoria, donde cada
una es pequea y controlable, as al ejecutar los procesos en modo usuario y no en modo ncleo si hay
algn error en algn servidor, este afectar slo a dicha parte y no a toda la mquina, ya que no se tiene
acceso al hardware.

Un caso sencillo de cliente, en este caso, es un programa de aplicacin que llama al servidor para
acceder a un archivo, otro ejemplo es cuando el programa de aplicacin realiza una operacin de entrada
o salida a un dispositivo concreto. En cada uno de estos casos el cliente a su vez puede ser servidor de
otros servicios. Esta idea se refleja a continuacin:

Modelo Cliente Servidor

Los sistemas por capas o jerrquica (Estructura


por niveles)

Utilizacin de servicios de capas inferiores.


En esta estructura el Sistema Operativo queda definido modularmente por divisiones en capas o niveles,
cuya organizacin est dada como una jerarqua de capas donde cada una de ellas ofrece una interfaz
clara y bien definida, la capa superior solamente utiliza los servicios y funciones que ofrece la capa
inferior, es decir, la capa n slo se comunica para obtener lo requerido con la capa n-1 (Ver imagen
derecha), donde la capa inferior es la ms privilegiada. El encargado de que solamente haya
comunicacin entre capas adyacentes es el procesador.
La capa ms interna o inferior (capa 0) corresponde al Hardware, mientras que la ms alta o externa
corresponde a la interfaz de usuario.
El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven),
desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.
El sistema original consta de 6 capas:
Capa 5: Se encuentra la interfaz de usuario.
Capa 4: Aloja los programas de usuario.
Capa 3: Se controlan los dispositivos E/S (entrada y salida).
Capa 2: Se administra la comunicacin inter-proceso y la consola del operador.
Capa 1: Administracin de memoria y discos.
Capa 0: Correspondiente al Hardware, realizando asignacin del procesador, tambin alterna entre
procesos cuando ocurren interrupciones o se han expirado y proporciona multiprogramacin bsica de la
CPU.

Organizacin de Sistema por capas


Como ventajas de este sistema podemos mencionar que al tener una organizacin modularizada, otorga
facilidad en construccin y depuracin del sistema. La facilidad de construccin se respalda porque al
existir esta divisin en mdulos (capas) se produce una abstraccin del problema, simplificndose
solamente a la funcin que realiza el mdulo correspondiente a una capa N. Tambin al lograr esta
abstraccin, no es necesario saber detalles de implementacin de las capas inferiores, slo se utilizan. La
facilidad de depuracin, quiere decir, que sea ms simple la tarea de encontrar errores en el cdigo y
corregirlos. Otro aspecto positivo relacionado con la modularidad existente, cuando ocurre un error o
falla en una de las capas, no se compromete a todo el sistema, slo a la capa relacionada con la falla.
Con respecto a las desventajas de esta organizacin, al realizar la construccin de las capas, la
problemtica es la forma de realizar la divisin y definicin de las funcionalidades, ya que se tiene
considerar que las capas superiores solamente pueden utilizar los servicios de la capa que se encuentra
inferior, por lo tanto, se debe tener mucho cuidado en la planificacin del sistema para que exista un
ptimo funcionamiento. Otra desventaja que podemos mencionar es el gasto de tiempo que se genera en
ir de una capa a otra, cada capa implica un gasto extra.
EJEMPLOS DE SISTEMAS POR CAPAS:

THE (Technische Hogeschool Eindhoven)

Venus

MULTICS (Multiplexed Information and Computing Service)

Sistemas por mdulos

La mayora de los sistemas operativos modernos implementan este enfoque. Lo que caracteriza este tipo
de estructura es que el kernel se compone por mdulos, y cada uno de estos mdulos se encuentra
separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al ncleo, por ejemplo,
si el mdulo de software que se encarga de controlar el proceso de Telnet en una unidad se bloquea o es
atacado, slo este proceso se ver afectado. El resto de las operaciones siguen sus funciones habituales.
Los mdulos se pueden cargar dinmicamente en el ncleo cuando se necesiten, ya sea, en tiempo de
ejecucin o durante el arranque del sistema. El kernel dispone de los componentes fundamentales y se
conectan directamente con servicios adicionales. Adems otros componentes pueden cargarse
dinmicamente al ncleo. Este enfoque modular utiliza la programacin orientada a objetos.
En general, esta estructura se parece bastante a la de capas, pero es mucho ms flexible debido a que
cualquier mdulo de esta estructura puede llamar a otro. Es similar a la estructura de microkernel, pues
el kernel tambin tiene las funciones esenciales , pero este es ms eficiente ya que, no necesitan un
mecanismo de paso de mensajes para comunicarse, slo interfaces conocidas.
Tabla comparativa sobre algunas funcionalidades entre Sistemas Monoltico y Sistemas por
Mdulos:
Funcionalidad

Sistema Monoltico
Sistema Modular
Cerrada, es decir, inmodificable a Abierta, es decir, que todos los componentes
los programadores ajenos a la del sistema del computador sean compatibles
compaa propietaria del cdigo en cualquier ambiente sin importar la
fuente.
compaa que lo haya producido.

Arquitectura
Dependencia
Hardware
Escalabilidad

de

Absolutamente dependiente.

No existe dependencia.

No existe.

Las funciones nuevas requieren un reinicio de


la unidad, son instaladas como un nuevo SO.

Vulnerabilidad
Muy Vulnerable
Existe una vulnerabilidad controlada.
frente a los ataques
Ejecucin limitada, difcil realizar
Ejecucin
de ejecuciones
de
instrucciones Control total de ejecucin de comandos
Scripts
externas, ya que el sistema carga al externos.
inicio las funciones a realizar.
No es posible extender las Es posible extender sus capacidades hacia
Extensibilidad
capacidades del SO sin crear un operaciones con agentes externos mediante
nuevo cdigo.
APIs en un modelo cliente-servidor.
Muy bajos, ya que si se produce un Altos. Al existir un error de programacin,
Niveles
de error local, puede ocasionar un este sucede localmente en un componente del
Disponibilidad
sistema inestable, detenido o un sistema, el cual puede ser fcilmente
error en todo el sistema.
reparado, sin afectar al resto.
Este tipo de sistemas no es
adecuado para realizar funciones en
Soporte para Redes
ptimo soporte, a causa de su alta
lnea,
como
por
ejemplo
Convergentes
disponibilidad.
sincronizacin de voz, datos y
videos.
Cambios
Posibles,
ya
que
cada
mdulo
Al
estar
todo
integrado
dinmicos en el
independientemente puede ser dado de alta o
conjuntamente, no es posible.
software
baja de manera independiente.

EJEMPLOS DE COMANDOS LINUX PARA GESTIONAR MDULOS:


lsmod: Muestra todos los mdulos que estn cargados en el kernel Linux.
modprobe: Se utiliza para agregar, ver y eliminar mdulos.
rmmod: Utilizado para descargar mdulos del kernel, con la restriccin de que no estn siendo
utilizados y que no sean llamados por otros mdulos.
EJEMPLOS SISTEMA POR MDULOS:

Unix modernos

Solaris

Linux

Mac OSX

Esquema Mdulo Solaris

Ncleo Unix Moderno

Referencias

Abraham Silberschatz, Greg Gagne, Peter Baer Galvin (2006). Fundamentos de sistemas
operativos (7 edicin). Mcgraw-hill.

Sistemas Operativos Modernos, Andrew S. Tanenbaum (3 edicin).

Artculos

Monolithic
kernel
vs.
Microkernel,
Benjamin
(http://www.vmars.tuwien.ac.at/courses/akti12/journal/04ss/article_04ss_Roch.pdf)

Operating System Models (http://www.cloudbus.org/~raj/microkernel/chap2.pdf)

Roch

Você também pode gostar