Arquitecturas y Tipos de Sistemas Operativos
Arquitecturas y Tipos de Sistemas Operativos
1. Estructura Monolítica
Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución
y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de
trabajo o tipos de aplicaciones.
2. Estructura Jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas, se hizo necesaria una mayor organización del software, del sistema operativo,
donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas
estuviera perfectamente definida y con un claro interface con el resto de elementos.
3. Máquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso,
mostrando una máquina que parece idéntica a la máquina real subyacente. Estos
sistemas operativos separan dos conceptos que suelen estar unidos en el resto de
sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas
operativos de máquina virtual es el de integrar distintos sistemas operativos dando la
sensación de ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión
llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas
virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino
una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un
sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario
4. Cliente-Servidor (Microkernel).
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores.
Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de
aplicación normal es un cliente que llama al servidor correspondiente para acceder a un
archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez,
un proceso cliente puede actuar como servidor para otro. Este paradigma ofrece gran
flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee
solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos,
dejando a los servidores proveer la mayoría que el usuario final o programador puede
usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez,
serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en
una versión de UNIX que contempla en su diseño este paradigma.
Son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores
que tenga la computadora o el número de procesos o tareas que el usuario pueda
ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se
han clasificado en este renglón.
Son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias
terminales conectadas a la computadora o por medio de sesiones remotas en una red de
comunicaciones. No importa el número de procesadores en la máquina ni el número de
procesos que cada usuario puede ejecutar simultáneamente. Permite que varios usuarios
ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la
computadora. Normalmente estos sistemas operativos utilizan métodos de protección de
datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un
momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta
su finalización y/o interrupción. Puede darse el caso de un sistema multiusuario y
monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos
puede estar haciendo solo una tarea a la vez.
Es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por
ejemplo, puede estar editando el código fuente de un programa durante su depuración
mientras compila otro programa, a la vez que está recibiendo correo electrónico en un
proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso
de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario,
mejorando su productividad. Gracias a los avances en la miniaturización y mejora de
capacidades, las computadoras de los noventas nos presentaron con los sistemas
operativos multitareas, estos poseen la capacidad para administrar el uso del procesador
asignándole las operaciones a ejecutar, la aparente capacidad para realizar diferentes
tareas al mismo tiempo es lograda gracias tanto a la velocidad del procesador y
componentes físicos instalados como al sistema operativo que administra las diferentes
tareas y va asignando una operación perteneciente a cada catea al procesador para su
realización.
Los sistemas monoprocesador solo pueden trabajar con un solo procesador, si tuviera dos
seria multiprocesador Ejemplo: DOS.
Los sistemas de este tipo pueden utilizar varios procesadores para distribuir el trabajo de
cada uno. Generalmente estos trabajan o pueden ser de dos tipos:
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la
del usuario, el cómo accesa a los servicios. Bajo esta clasificación se pueden detectar dos
tipos principales: sistemas operativos de red y sistemas operativos distribuidos.
Los sistemas operativos de red se definen como aquellos que tiene la capacidad de
interactuar con sistemas operativos en otros ordenadores a través de un medio de
transmisión con el objeto de intercambiar información, transferir archivos, ejecutar
comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es
que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema
para ejecutar estas operaciones, además de la ubicación de los recursos que desee
añadir. Por ejemplo, si un usuario en el ordenador “hidalgo” necesita el archivo
“matriz.pas” que se localiza en el directorio /software/código en el ordenador “morelos”
bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los
comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas .
hidalgo%. En este caso, el comando rcp que significa “remote copy” trae el archivo
indicado del ordenador “morelos” y lo coloca en el directorio donde se ejecutó el
mencionado comando. Lo importante es hacer ver que el usuario puede accesar y
compartir muchos recursos.
Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar
recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de
proceso) en una sola máquina virtual que el usuario accesa en forma transparente. Es
decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los
conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar
de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como
sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo,
por la complejidad que suponen: distribuir los procesos en las varias unidades de
procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y
paralelismo, recuperarse de fallos de algunos recursos distribuidos y consolidar la
protección y seguridad entre los diferentes componentes del sistema y los usuarios.
El sistema integrador de los microprocesadores que hacen ver a las varias memorias,
procesadores, y todos los demás recursos como una sola entidad en forma transparente,
se le llama sistema operativo distribuido. Las razones para crear o adoptar sistemas
distribuidos se dan por dos razones principales: por necesidad (debido a que los
problemas a resolver son inherentemente distribuidos) o porque se desea tener más
seguridad y disponibilidad de recursos.
En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos. Ahí no es
posible ni eficiente mantener un control centralizado, es más, no existe capacidad de
cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto.
En el segundo caso, supóngase que se tienen en una gran empresa varios grupos de
trabajo; cada uno necesita almacenar grandes cantidades de información en el disco duro
con una alta seguridad y disponibilidad. La solución puede ser que para cada grupo de
trabajo se asigne una partición del disco duro en servidores diferentes, de manera que si
uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y,
más aún, se podría tener un sistema con discos en espejo (mirror) a través de la red, de
manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario
no se da cuenta de estos fallos, es decir, obtiene acceso a recursos en forma
transparente.
Definir una arquitectura para el Sistema Operativo; esta estará influida en alguna medida
por el hardware que manejará. Sin embargo es posible identificar algunos componentes
comunes como el núcleo y las llamadas al sistema. El núcleo contiene, básicamente, todo
el código e información necesaria para la gestión de procesos y memoria y en la mayoría
de los sistemas operativos también se incluye buena parte de la gestión de entrada/salida.
Según la arquitectura que tengamos así es como el usuario se comunica con el sistema
operativo y el sistema operativo o el núcleo con los componentes del hardware, por tanto
cada sistema operativo tiene una arquitectura específica en dependencia de las
necesidades de este.
Cada paradigma de desarrollo exige diferente número y tipo de vistas o modelos para
describir una arquitectura. No obstante, existen al menos tres vistas absolutamente
fundamentales en cualquier arquitectura:
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.
1. Estructura Monolítica
2. Estructura Jerárquica
THE: El sistema de multiprogramación THE fue un sistema operativo diseñado por
un equipo liderado por Edsger W. Dijkstra, descrito en monografías entre 1965 y
1966 y publicado en 1968. Dijkstra nunca le dio el nombre "THE", sino que esto fue
solamente una abreviatura de “Technische Hogeschool Eindhoven”, el nombre
neerlandés de la Escuela Técnica Superior de Eindhoven (actualmente,
Universidad Técnica de Eindhoven; en neerlandés, Technische Universiteit
Eindhoven). El sistema operativo THE fue principalmente un sistema batch que
soportaba multitarea, aunque no fue diseñado como tal.
Multics: Multics (Multiplexed Information and Computing Service) fue uno de los
primeros sistemas operativos de tiempo compartido y tuvo una gran influencia en
el desarrollo de los posteriores sistemas operativos.
Unix: Unix (registrado oficialmente como UNIX®) es un sistema operativo portable,
multitarea y multiusuario; desarrollado en 1969 por un grupo de empleados de los
laboratorios Bell de AT&T.
3. Máquina Virtual
4. Cliente-Servidor (Microkernel)
MS-DOS.
Mac OS: Mac OS (del inglés Macintosh Operating System, en español Sistema
Operativo de Macintosh) es el nombre del sistema operativo creado por Apple para
su línea de computadoras Macintosh, también aplicado retroactivamente a las
versiones anteriores a System 7.6, y que apareció por primera vez en System
7.5.1. Es conocido por haber sido uno de los primeros sistemas dirigidos al gran
público en contar con una interfaz gráfica compuesta por la interacción del mouse
con ventanas, iconos y menús.
Windows 1.0: Windows 1.0 fue el primer sistema operativo gráfico de 16 bits,
desarrollado por Microsoft y lanzado el 20 de noviembre de 1985, siendo uno de
los primeros sistemas gráficos diseñados. Fue el primer intento de Microsoft de
implementar un ambiente operativo multitudinaria con interfaz de usuario gráfica
en la plataforma de PC. Windows 1.01 fue la primera versión de este producto.
Costaba 99 dólares y se requería una computadora que tuviera un mínimo de 320
kb de memoria RAM, una tarjeta gráfica y una unidad de disquete (para instalar en
disquete, se requerían dos unidades).
Windows 95: Windows 95 es un sistema operativo con interfaz gráfica de usuario
híbrido de entre 16 y 32 bits. Fue lanzado al mercado el 24 de agosto de 1995 por
la empresa de software Microsoft con notable éxito de ventas. Durante su
desarrollo se conoció como Windows 4 o por el nombre clave Chicago.
Windows ME: Windows Me (Windows Millenium Edition), comercialmente (Me,
siglas en inglés de Millenium Edition), es una versión de Microsoft Windows, en
formato gráfico híbrido de 16-bit/32 bits, lanzado el 14 de septiembre de 2000
diseñado por Microsoft Corporation para el mayoritario mercado de usuarios de
PC. Tras la madurez ya alcanzada por sus predecesores, Windows 95 y Windows
98, Windows Me se presenta como una importante evolución. Fue el último
sistema operativo lanzado en la serie de Windows 9x.Cabe destacar que Windows
Me ha sido muy poco popular por sus continuos errores y muchas desventajas de
uso.
Unix
macOS X
Windows XP
GNU/Linux
86-DOS
MS-DOS
macOS
Windows 1.0
macOS X
Windows 95
GNU/Linux
Unix
ChromeOS
Android
MS-DOS
OS/2
86-DOS
Sun OS
Windows NT
macOS X
Firefox OS
Android
Symbian
Bibliografía:
https://es.wikibooks.org/wiki/Sistemas_operativos/Por_servicios
https://es.wikibooks.org/wiki/Sistemas_operativos/Por_su_estructura
https://es.wikibooks.org/wiki/Sistemas_operativos/Por_la_forma_de_servicio
http://sistemasoperativoutp.weebly.com/tipos-de-so.html
https://es.wikipedia.org/wiki/Arquitectura_de_software