ARQUICTECTURA DE LOS SISTEMAS OPERATIVOS
Un sistema operativo es
el software encargado de ejercer el control y coordinar el uso del hardware
entre diferentes programas de aplicación y los diferentes usuarios. El sistema
operativo se encarga de crear el vínculo entre los recursos materiales, el
usuario y las aplicaciones (procesador de texto, videojuegos, etcétera). Cuando
un programa desea acceder a un recurso material, no necesita enviar información
específica a los dispositivos periféricos, simplemente envía la información al
sistema operativo, el cual la transmite a los periféricos correspondientes a
través de su driver (controlador).
MULTIPROGRAMACIÓN
Multiprogramación es un término que
significa que muchos programas que no están relacionados unos con otros pueden
residir en la memoria de una computadora y tomar turnos usando la unidad
central de procesamiento, cualquiera que haya usado Windows ®, Unix o Linux ha
experimentado un entorno de multiprogramación porque estos sistemas pueden
ejecutar un largo numero de programas de usuario aparentemente de manera
simultanea en una sola unidad central de procesamiento.
La sección que permite la
multiprogramación en un sistema operativo se denomina Kernel, éste software
consiste en un numero de procedimientos que llevan a cabo funciones como crear
tareas, decidir cual tarea correrá en un momento dado, proveyendo un mecanismo
para cambiar al procesador de una tarea a otra y provee formas primitivas de
acceso controlado a recursos compartidos.
TIMESHARING
El tiempo compartido (o multitarea)
es una extensión lógica de la multiprogramación. En los sistemas de tiempo
compartido, la CPU ejecuta múltiples trabajos conmutando entre ellos, pero las
conmutaciones se producen tan frecuentemente que los usuarios pueden interactuar
con cada programa mientras éste está en ejecución.
Dado que usuario suministra
directamente instrucciones al sistema operativo o a un programa, se requere que
exista comunicación directa entre el usuario y el sistema, por ejemplo, al
utilizar un dispositivo de entrada, como un teclado, el tiempo de
respuesta debe ser pequeño (menor a 1 segundo). Este tipo de sistema
operativo permite que muchos usuarios compartan simultáneamente la computadora.
Dado que el tiempo de ejecución de cada acción tiende a ser pequeño, sólo es
necesario un tiempo pequeño de CPU para cada usuario. Puesto que el sistema
cambia rápidamente de un usuario al siguiente, cada usuario tiene la impresión
de que el sistema completo está dedicado a él, incluso aunque esté siendo
compartido por muchos usuarios.
DISEÑO POR CAPAS
Es una generalización del modelo de
estructura simple para un sistema monolítico. En esta arquitectura, el sistema
operativo se divide en una jerarquía de capas, donde cada capa solamente
utiliza los servicios de la capa inferior y se enfoca en ofrecerle una interfaz
clara y bien definida a la capa superior. En cada capa se encapsulan funciones
específicas, así cada capa se encarga de una función individual del sistema
operativo. Su principal ventaja redica en poseer un diseño mucho más modular,
seguro y escalable que el monolítico.El primer modelo creado con esta
estructura fue denominado THE: Technische Hogeschool Eindhoven (Holanda -
Dijkstra, 1968).
DISEÑO CLIENTE-SERVIDOR
En este modelo, lo único que hace el
núcleo es controlar la comunicación entre los clientes y los servidores. Al
separar el sistema operativo en partes, cada una de ellas controla una parte
del sistema, como el servicio a archivos, servicios a procesos, servicio a
terminales o servicio a la memoria, y cada parte es pequeña y controlable.
Además, como todos los servidores se ejecutan como procesos en modo usuario y
no en modo núcleo, no tienen acceso directo al hardware. En consecuencia, si
hay un error en el servidor de archivos, éste puede fallar, pero esto no
afectará en general a toda la máquina.
DISEÑO MÁQUINAS VIRTUALES
En este modelo, mediante software, se
proporciona a los programas la emulación de un sistema el cual se quiere
reproducir. El software emulador traduce las peticiones hechas
a la máquina
virtual en operaciones sobre la máquina real. Se pueden
ejecutar varias máquinas virtuales al mismo tiempo, por ejemplo, mediante tiempo compartido. Los recursos
reales se reparten entre las distintas máquinas virtuales.
Se separan
totalmente las funciones de multiprogramación y de máquina virtual.
Existe un elemento central llamado monitor de la máquina virtual que:
*Ejecuta en el
hardware.
* Realiza la
multiprogramación.
*Proporciona varias
máquinas virtuales a la capa superior.
Las máquinas virtuales instrumentan
copias exactas del hardware, con su modo núcleo/usuario, E/S,
interrupciones y todo lo demás que posee una máquina real. Pueden ejecutar
cualquier sistema operativo que se ejecute en forma directa sobre el hardware.
Las distintas máquinas virtuales pueden
ejecutar distintos sistemas operativos, y en general, así lo hacen. Soportan
periféricos virtuales.