1.ºClasificacion de sistemasoperativos de red
1.1sistema operativo por su estructura
Según, 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 constituidos
fundamentalmente por un solo programa compuesto de un conjunto de
rutinas entrelazadas de tal forma que cada una puede llamar a
cualquier otra. 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. Se puede
pensar también en estos sistemas como si fueran
`multicapa'. Multics y Unix caen en esa
categoría.
En la estructura anterior se basan prácticamente
la mayoría de los sistemas operativos actuales. Otra forma
de ver este tipo de sistema es la denominada de anillos
concéntricos o "rings".
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).
El tipo más reciente de sistemas operativos es el
denominado Cliente-servidor,
que puede ser ejecutado en la mayoría de las computadoras,
ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es
de propósito general y cumple con las mismas actividades
que los sistemas operativos convencionales.
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."
[Alcal92]. 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.
1.2Sistema Operativo por
su servicio
Esta clasificación es la más
comúnmente usada y conocida desde el punto de vista del
usuario final. Esta clasificación se comprende
fácilmente con el cuadro sinóptico que a
continuación se muestra:
Por Número de Usuarios:
Sistema Operativo Monousuario.
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.
En otras palabras los sistemas monousuarios son aquellos que nada
más puede atender a un solo usuario, gracias a las
limitaciones creadas por el hardware, los programas o el tipo de
aplicación que se este ejecutando.
Sistema Operativo Multiusuario.
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.
En esta categoría se encuentran todos los sistemas que
cumplen simultáneamente las necesidades de dos o
más usuarios, que comparten mismos recursos. Este tipo de
sistemas se emplean especialmente en redes. En otras palabras
consiste en el fraccionamiento del tiempo
(timesharing).
Por el Número de Tareas:
Sistema Operativo Monotarea.
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.
Los sistemas operativos monotareas son más primitivos y,
solo pueden manejar un proceso en cada momento o que solo puede
ejecutar las tareas de una en una.
Sistema Operativo Multitarea.
Un sistema operativo multitarea es aquél que le permite al
usuario estar realizando varias labores al mismo tiempo.
Es el modo de funcionamiento disponible en algunos sistemas
operativos, mediante el cual una computadora procesa varias
tareas al mismo tiempo. Existen varios tipos de multitareas. La
conmutación de contextos (context Switching) es un tipo
muy simple de multitarea en el que dos o más aplicaciones
se cargan al mismo tiempo, pero en el que solo se esta procesando
la aplicación que se encuentra en primer plano (la que ve
el usuario. En la multitarea cooperativa,
la que se utiliza en el sistema operativo Macintosh, las tareas
en segundo plano reciben tiempo de procesado durante los tiempos
muertos de la tarea que se encuentra en primer plano (por
ejemplo, cuando esta aplicación esta esperando informacion del usuario), y siempre
que
esta aplicación lo permita. En los sistemas multitarea de
tiempo compartido, como OS/2, cada tarea recibe la atencion del microprocesador
durante una fracción de segundo.
Un sistema operativo multitarea 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.
Un sistema operativo multitarea se distingue por su capacidad
para soportar la ejecución concurrente de dos o más
procesos
activos. La
multitarea se implementa generalmente manteniendo el
código y los datos de varios procesos
simultáneamente en memoria y multiplexando el procesador y
los dispositivos de E/S entre ellos.
La multitarea suele asociarse con soporte hardware y software
para protección de memoria con el fin de evitar que
procesos corrompan el espacio de direcciones y el comportamiento
de otros procesos residentes.
Por el Número de Procesadores:
Sistema Operativo de 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.
Sistema Operativo de 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.
Asimétrica.
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.
Simétrica.
Cuando se trabaja de manera simétrica, los procesos o
partes de ellos (threads) son enviados indistintamente a cual
quiera 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.
Un 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.
1.3Sistema Operativo por
la forma en que dan 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 accesa a los servicios. Bajo esta
clasificación se pueden detectar dos tipos principales:
sistemas operativos de red y sistemas operativos
distribuidos.
Sistema Operativo 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
accesar. 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 accesar y compartir muchos recursos.
El primer Sistema Operativo de red estaba enfocado a equipos con
un procesador Motorola 68000, pasando posteriormente a
procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell
Netware, Personal Netware,
LAN Manager,
Windows NT
Server, UNIX, LANtastic.
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
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 fallas de algunos recursos
distribuidos y consolidar la protección y seguridad entre
los diferentes componentes del sistema y los usuarios. 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
distribuído. 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
confiabilidad 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 confiabilidad 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.
Los sistemas distribuidos deben de ser
muy confiables, ya que si
un componente del sistema se compone otro componente debe de ser
capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen
tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring,
Amoeba, Taos, etc.