Está en la página 1de 13

República Bolivariana de Venezuela

Ministerio del poder popular para la educación superior


Instituto de tecnología de Maracaibo
Carrera: informática
Catedra: sistemas operativos
Sección: 3313

Estructura de Sistemas Operativos

Realizado por:
Ricardo plata
CI:17.855.748
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 fácil de usar y de aprender, seguro,


rápido y adecuado para el uso que se le necesita dar.

 Requisitos del software: Considera el continuo mantenimiento, forma


de operación, restricciones de uso, eficiencia, tolerancia frente a los errores
y flexibilidad.
El objetivo de la estructuración es buscar una organización interna que facilite
la comprensión, incremente la portabilidad, extensión y favorecer el
mantenimiento de los Sistemas Operativos.

A continuación 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 darán una idea de algunos diseños que se han llevado a la
práctica.

TIPOS DE SISTEMAS OPERATIVOS

SISTEMAS MONOLITICOS (ESTRUCTURA SIMPLE)

Según la Real Academia Española Monolítico es algo de una pieza, sin fisuras


o rígido, inflexible.
Los sistemas Monolíticos son la estructura más simple para un Sistema
Operativo. También llamados de Estructura Modular, fue escrito para
proporcionar una máxima funcionalidad dentro del menor espacio posible.
Se caracteriza porque no tienen una estructura totalmente clara, con esto nos
referimos a que sus rutinas y funcionalidades (ej. manejo de drivers, sistemas
de archivos, gestión 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 núcleo (kernel) lo que lo hace altamente vulnerable,
por esta razón cuando falla un programa se produce un error en todo el
sistema.
Además, otro problema inherente al Sistema Monolítico 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 compilación
de un nuevo kernel puede durar varias horas y necesita de una gran cantidad
de memoria. Cada vez que alguien añade una nueva característica o corrige un
error, significa que se necesitará hacer una recopilación del kernel entero, un
ejemplo de ésto podemos verlo en Linux. También el hecho de que en el
espacio del kernel están incluidos todos los servicios básicos, tiene tres
grandes inconvenientes: el tamaño del núcleo, la falta de extensibilidad y la
mala capacidad de mantenimiento.

EJEMPLOS SISTEMAS MONOLÍTICOS:

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

 Linux
 Syllable
 Núcleos tipo DOS
 DR-DOS
 Familia Microsoft Windows 9x (95, 98, 98SE, Me)
LOS SISTEMAS DE MICRONUCLEO O MICROKERNEL
El Micronúcleo surge como una nueva forma de organización para un Sistema
Operativo, es un término algo tedioso de entender ya que puede no ser relativo
a su tamaño, pero si a su diseño.

En este sistema las funciones centrales son manejadas por el núcleo(kernel) y


la interfaz de usuario es manejada por el entorno(Shell). El Microkernel se
encarga de todo el código de un sistema, y de planificar los hilos (threads) con
la finalidad de tener multitareas.

Algunas ventajas que podemos destacar de los Micronúcleo son los siguientes:

•Uniformidad de interfaces: disponen de una interfaz única para las


solicitudes de los procesos, el paso de mensajes.

•Portabilidad: reduciendo el núcleo e implementando casi todo en servidores,


para implementarlo en arquitecturas diferentes, sólo habría que modificar el
núcleo haciendo más simple su portabilidad.

•Fiabilidad: es más fácil corregir fallas en un sistema pequeño ya que se


pueden realizar pruebas más rigurosas que en un sistema mucho más grande.

ALGUNOS EJEMPLOS DE SISTEMAS MICRONÚCLEO SON:

 AIX
 BeOS
 Mach
 MorphOS
 QNX
 Minix
 Hurd
 L4
 RadiOS
 Symbian
 VSTa
A continuación examinaremos cuáles son las principales características de un
sistema Monolítico y un Micronúcleo, además se podrá notar por qué el
Sistema Micronúcleo supera algunas problemáticas relativas al diseño de un
sistema Monolítico:

Micronúcleo o
Sistema Monolítico
Microkernel

Sin estructura definida

Todo sistema operativo se ejecuta en modo Todo el núcleo se ejecuta


supervisor en modo supervisor

Menos robusto Más robusto

El sistema operativo es
El sistema operativo es interrumpible
interrumpible

Menor rendimiento debido


Mayor rendimiento, eficiencia a la sobrecarga de
comunicaciones

Fácil de modificar en
Difícil de modificar en tiempo de ejecución
tiempo de ejecución

Menos adaptable Más adaptable

Realiza todas las funciones con un único programa

El sistema es escrito como una colección de


procedimientos y no existe "ocultación de
información" ya que cualquier procedimiento puede
ser invocado por otros
Un error o una vulnerabilidad de seguridad puede
expandirse y afectar a todo el núcleo

Cualquier cambio a realizar requiere el reinicio del


sistema para que este se haga efectivo

Sistema Cliente-Servidor:

Dentro de esta estructura también podríamos incluir el Sistema Cliente-Servidor


ya que presenta una ligera variación 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 núcleo (kernel), trasladando el código de todos sus
servicios a las capas superiores; y el núcleo sólo deberá controlar la
comunicación, que se realiza mediante mensajes, entre clientes y servidores o
servidores y hardware.

El objetivo es desarrollar la mayoría de las funciones del sistema operativos


como procesos de usuario. Un proceso de usuario, llamado en este caso
proceso cliente, envía 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 pequeña y controlable,
así al ejecutar los procesos en modo usuario y no en modo núcleo si hay algún
error en algún servidor, este afectará sólo a dicha parte y no a toda la máquina,
ya que no se tiene acceso al hardware.

Un caso sencillo de cliente, en este caso, es un programa de aplicación que


llama al servidor para acceder a un archivo, otro ejemplo es cuando el
programa de aplicación realiza una operación 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 continuación:
Los sistemas por capas o jerárquica (Estructura por niveles)

En esta estructura el Sistema Operativo queda definido modularmente por


divisiones en capas o niveles, cuya organización está dada como una jerarquía
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 sólo se comunica para obtener lo requerido con la
capa n-1 (Ver imagen derecha), donde la capa inferior es la más privilegiada. El
encargado de que solamente haya comunicación entre capas adyacentes es el
procesador.

La capa más interna o inferior (capa 0) corresponde al Hardware, mientras que


la más 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 comunicación inter-proceso y la consola del operador.

Capa 1: Administración de memoria y discos.

Capa 0: Correspondiente al Hardware, realizando asignación del procesador,


también alterna entre procesos cuando ocurren interrupciones o se han
expirado y proporciona multiprogramación básica de la CPU.

Como ventajas de este sistema podemos mencionar que al tener una


organización modularizada, otorga facilidad en construcción y depuración del
sistema. La facilidad de construcción se respalda porque al existir esta división
en módulos (capas) se produce una abstracción del problema, simplificándose
solamente a la función que realiza el módulo correspondiente a una capa N.
También al lograr esta abstracción, no es necesario saber detalles de
implementación de las capas inferiores, sólo se utilizan. La facilidad de
depuración, quiere decir, que sea más simple la tarea de encontrar errores en
el código 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, sólo a la capa relacionada con la falla.
Con respecto a las desventajas de esta organización, al realizar la construcción
de las capas, la problemática es la forma de realizar la división y definición 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 planificación 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 módulos

La mayoría de los sistemas operativos modernos implementan este enfoque.


Lo que caracteriza este tipo de estructura es que el kernel se compone por
módulos, y cada uno de estos módulos se encuentra separado de forma
independiente, tal que, si alguno falla no afecta a los otros, ni al núcleo, por
ejemplo, si el módulo de software que se encarga de controlar el proceso de
Telnet en una unidad se bloquea o es atacado, sólo este proceso se verá
afectado. El resto de las operaciones siguen sus funciones habituales. Los
módulos se pueden cargar dinámicamente en el núcleo cuando se necesiten,
ya sea, en tiempo de ejecución o durante el arranque del sistema. El kernel
dispone de los componentes fundamentales y se conectan directamente con
servicios adicionales. Además otros componentes pueden cargarse
dinámicamente al núcleo. Este enfoque modular utiliza la programación
orientada a objetos.

En general, esta estructura se parece bastante a la de capas, pero es mucho


más flexible debido a que cualquier módulo de esta estructura puede llamar a
otro. Es similar a la estructura de Microkernel, pues el kernel también tiene las
funciones esenciales, pero este es más eficiente ya que, no necesitan un
mecanismo de paso de mensajes para comunicarse, sólo interfaces conocidas.

Tabla comparativa sobre algunas funcionalidades entre Sistemas


Monolítico y Sistemas por Módulos:

Funcionalidad Sistema Monolítico Sistema Modular

Cerrada, es decir, Abierta, es decir, que todos los


inmodificable a los componentes del sistema del
Arquitectura programadores ajenos a computador sean compatibles en
la compañía propietaria cualquier ambiente sin importar la
del código fuente. compañía que lo haya producido.

Dependencia de Absolutamente
No existe dependencia.
Hardware dependiente.

Las funciones nuevas requieren


Escalabilidad No existe. un reinicio de la unidad, son
instaladas como un nuevo SO.

Vulnerabilidad
Existe una vulnerabilidad
frente a los Muy Vulnerable
controlada.
ataques

Ejecución limitada, difícil


realizar ejecuciones de
Ejecución de instrucciones externas, ya Control total de ejecución de
Scripts que el sistema carga al comandos externos.
inicio las funciones a
realizar.

Es posible extender sus


No es posible extender
capacidades hacia operaciones
las capacidades del SO
Extensibilidad con agentes externos mediante
sin crear un nuevo
API’s en un modelo cliente-
código.
servidor.

Niveles de Muy bajos, ya que si se Altos. Al existir un error de


Disponibilidad produce un error local, programación, este sucede
puede ocasionar un localmente en un componente del
sistema inestable, sistema, el cual puede ser
detenido o un error en fácilmente reparado, sin afectar
todo el sistema. al resto.

Este tipo de sistemas no


es adecuado para realizar
Soporte para
funciones en línea, como Óptimo soporte, a causa de su
Redes
por ejemplo alta disponibilidad.
Convergentes
sincronización de voz,
datos y videos.

Posibles, ya que cada módulo


Cambios Al estar todo integrado
independientemente puede ser
dinámicos en el conjuntamente, no es
dado de alta o baja de manera
software posible.
independiente.

EJEMPLOS DE COMANDOS LINUX PARA GESTIONAR MÓDULOS:

•lsmod: Muestra todos los módulos que están cargados en el kernel Linux.

•modprobe: Se utiliza para agregar, ver y eliminar módulos.

•rmmod: Utilizado para descargar módulos del kernel, con la restricción de que


no estén siendo utilizados y que no sean llamados por otros módulos.

EJEMPLOS SISTEMA POR MÓDULOS:

 Unix modernos
 Solaris
 Linux
 Mac OSX
El sistema operativo (SO) tiene las siguientes características:

1. Conveniencia: Un SO hace más conveniente el uso de una computadora.


2. Eficiencia: El SO permite que los recursos de la computadora se usen de manera
correcta y eficiente.
3. Habilidad para evolucionar: un SO debe de ser capaz de aceptar nuevas
funciones sin que tenga problemas.
4. Encargado de administrar el hardware: el SO debe de ser eficaz, recibiendo las
señales provenientes de los periféricos y Hardware en general.
5. Relacionar dispositivos: cuando el SO detecta otro sistema operativo conectado
en si mismo.
6. Algoritmos: un SO hace el uso de la computadora más racional y eficiente.

También podría gustarte