Chapter 5: Towards Functional Peptoid-Based Materials for Environmental
5.4 Conclusions and Future Directions
En esta clasificación se encuentran:
a. Sistemas centralizados
Hasta que los computadores personales no tuvieron un precio accesible y suficiente potencia, la mayoría de los sistemas (UNIX) utilizaban el modelo de proceso centralizado. Con este tipo de modelo los computadores mainframe se encargaban de todo el procesamiento y los usuarios manejaban únicamente terminales brutas(es decir, no disponían de memoria, ni procesador).
Actualmente se siguen utilizando los sistemas centralizados (como los Terminal Services de Microsoft) pero las terminales dejan de ser brutas y pueden realizar otras muchas tareas por sí mismas.
Los principales sistemas operativos centralizados en el mercado son: z/OS, OS/390, Linux, TPF, VSE y ESA.
b. Sistemas de red
Estos sistemas operativos son aquellos que mantienen a dos o más computadores unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema. En este entorno, cada computador mantiene su propio sistema operativo y su propio sistema de archivos local.
El primer sistema operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel.
Los sistemas operativos de red usados más ampliamente son: Novell NetWare, Personal NetWare, LAN Manager, Windows NT Server, Windows 2000 Server, UNIX, LINUX, LANtastic, etc.
c. Sistemas distribuidos
Los sistemas operativos distribuidos son sistemas cuasi-independientes que permiten distribuir los trabajos, tareas o procesos entre un conjunto de procesadores. Puede ocurrir que este conjunto de procesadores se encuentre en el mismo equipo o en equipos distintos (siendo, en este último caso, transparente para el usuario).
Existen dos esquemas básicos:
- Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores.
- Un sistema débilmente acoplado es aquel en el que los procesadores no comparten ni memoria ni reloj, ya que cada uno de ellos cuenta con memoria local.
Las principales ventajas de los sistemas distribuidos (no solamente los sistemas operativos) con respecto a los sistemas centralizados se describen enseguida:
- Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando están distribuídos.
- Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior.
- Confiabilidad: Si una sola máquina falla, el sistema total sigue funcionando.
- Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo cual es mucho más difícil en un sistema centralizado y caro.
- Distribución: Algunas aplicaciones requieren de por sí una distribución física.
Por otro lado, los sistemas distribuídos también exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son:
- Compartir datos: Un sistema distribuído permite compartir datos más fácilmente que los sistemas aislados, que tendrian que duplicarlos en cada nodo para lograrlo.
- Compartir dispositivos: Un sistema distribuído permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuído logra un efecto sinergético.
- Comunicaciones: La comunicación persona a persona es factible en los sistemas distribuídos, en los sistemas aislados no.
- Flexibilidad: La distribución de las cargas de trabajo es factible en el sistema distribuído, se puede incrementar el poder de cómputo.
Así como los sistemas distribuídos exhiben grandes ventajas, también se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas operativos en la actualidad.
El problema más importante en la creación de sistemas distribuídos es el software: los problemas de compartición de datos y recursos es tan complejo que los mecanismos de solución generan mucha sobrecarga al sistema haciéndolo ineficiente. El chequear, por ejemplo, quiénes tienen acceso a algunos recursos y quiénes no, el aplicar los mecanismos de protección y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas están aún en pañales.
Otros problemas de los sistemas operativos distribuídos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para computadoras que ejecutan secuencialmente, de manera que el identificar secciones de código “paralelizable” es un trabajo árduo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribución. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y, finalmente, los "abrazos mortales" (deadlocks). Estos problemas de por sí se presentan en los sistemas operativos multiusuarios o multitareas, y su tratamiento en los sistemas distribuídos es aún más complejo, y por lo tanto, necesitará de algoritmos más complejos con la inherente sobrecarga esperada.
Los sistemas operativos distribuidos más extendidos son los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
d. Sistemas operativos paralelos
En estos tipos de sistemas operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. Ejemplos de este tipo de sistemas operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.