***CLASIFICACION DE LOS SITEMAS OPERATIVOS***
Sistemas Operativos Por Sus
Estructura
Según
[Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema
operativo, los cuales son:
• Requisitos
de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al
uso al que se le quiere destinar.
• Requisitos
del software: Donde se engloban aspectos como el mantenimiento, forma de
operación, restricciones de uso, eficiencia, tolerancia frente a los errores y
flexibilidad.
A
continuación se describen las distintas estructuras que presentan los actuales
sistemas operativos para satisfacer las necesidades que de ellos se quieren
obtener.
*Estructura monolítica: Es la estructura de los primeros sistemas
operativos constituídos fundamentalmente por un solo programa compuesto de un
conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a
cualquier otra (Ver Fig. 2). Las características fundamentales de este tipo de
estructura son:
• Construcción
del programa final a base de módulos compilados separadamente que se unen a
través del ligador.
• Buena
definición de parámetros de enlace entre las distintas rutinas existentes, que
puede provocar mucho acoplamiento.
• Carecen
de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos
de los recursos de la computadora, como memoria, disco, etc.
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.
*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. Se constituyó una estructura jerárquica o de niveles en los sistemas
operativos, el primero de los cuales fue denominado THE (Technische Hogeschool,
Eindhoven), de
Dijkstra,
que se utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos
sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría.
[Feld93].
En el
sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa
(trap),
por donde pueden entrar las llamadas de las capas inferiores. De esta forma,
las zonas más internas del sistema operativo o núcleo del sistema estarán más
protegidas de accesos indeseados desde las capas más externas. Las capas más
internas serán, por tanto, más privilegiadas que las externas.
*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.
*Cliente-Servidor
(MicroKernel): Es el
más reciente y predominante, sirve para toda clase de aplicaciones y el
propósito de este es de tipo general cumpliendo así con las mismas actividades
de los otros sistemas operativos.
Su núcleo (core) esta
designado a establecer comunicación entre los clientes y servidores. Los
procesos pueden ser tanto servidores como cliente a su vez el cliente actual
como servidor para otro proceso.
Sistemas Operativos Por
Servicios
*Monousuarios: Los sistemas operativos monousuarios 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.
*Multiusuarios: Los sistemas operativos multiusuarios 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.
*Monotareas: Los sistemas monotarea son aquellos que
sólo permiten una tarea a la vez por usuario.
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.
*Multitareas: Un sistema operativo multitarea 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.
*Uniproceso: Un sistema operativo uniproceso es aquél
que es capaz de manejar solamente un procesador de la computadora, de manera
que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico
de este tipo de sistemas es el DOS y MacOS.
*Multiproceso: Un sistema operativo multiproceso se
refiere al número de procesadores del sistema, que es más de uno y éste es
capaz de usarlos todos para distribuir su carga de trabajo.
Generalmente
estos sistemas trabajan de dos formas: simétrica o asimétricamente.
Cuando
se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores
el cual jugará el papel de procesador maestro y servirá como pivote para distribuir
la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se
trabaja de manera simétrica, los procesos o partes de ellos (threads) son
enviados indistintamente a cualesquiera de los procesadores disponibles,
teniendo, teóricamente, una mejor distribución y equilibrio en la carga de
trabajo bajo este esquema.
Se dice
que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede
consistir de un área de memoria, un conjunto de registros con valores
específicos, la pila y otros valores de contexto. Us aspecto importante a
considerar en estos sistemas es la forma de crear aplicaciones para aprovechar
los varios procesadores.
Existen aplicaciones
que fueron hechas para correr en sistemas monoproceso que no toman ninguna
ventaja a menos que el sistema operativo o el compilador detecte secciones de código
paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes.
Por otro lado, el programador puede modificar sus algoritmos y aprovechar por
sí mismo esta facilidad, pero esta última opción las más de las veces es
costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto
o más tiempo a la paralelización que a elaborar el algoritmo inicial.
Sistemas Operativos Por La
Forma Que Ofrecen Sus Servicios
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 accede a los servicios. Bajo esta
clasificación se pueden detectar dos tipos principales: sistemas operativos de
red y sistemas operativos distribuidos.
*Sistemas Operativos de Red: Los sistemas operativos de red se definen
como aquellos que tiene la capacidad de interactuar con sistemas operativos en
otras computadoras por medio 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
acceder. Por ejemplo, si un usuario en la computadora hidalgo necesita el
archivo
matriz.pas
que se localiza en el directorio /software/codigo en la computadora 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 de la computadora morelos y lo coloca en el directorio
donde se ejecutó el mencionado comando. Lo importante es hacer ver que el
usuario puede acceder y compartir muchos recursos.
*Sistemas Operativos Distribuidos: 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 accede 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 fallas de algunos recursos distribuidos y consolidar la protección y
seguridad entre los diferentes componentes del sistema y los usuarios. [Tan92].
Los avances tecnológicos en las redes de área local y la creación de microprocesadores
de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el
suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes,
y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad
de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas
en los varios microprocesadores para luego reunir los sub-resultados, creando
así una máquina virtual en la red que exceda en poder a un mainframe. El sistema
integrador de los microprocesadores que hacer 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 fiabilidad
y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control
de los cajeros automáticos en diferentes estados de la república. 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 disco duro con
una alta fiabilidad y disponibilidad. La solución puede ser que para cada grupo
de trabajo se asigne una partición de 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 ni cuenta se da de estas
fallas, es decir, obtiene acceso a recursos en forma transparente.
Tipos de
Sistemas Operativos y sus Características
Los sistemas operativos más conocidos son los siguientes:
1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.
La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.
Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.
Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.
2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.
3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciónes para mejorar la eficacia del trabajo.
4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.
5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.
6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.
7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.




No hay comentarios:
Publicar un comentario