En artículos pasados hemos abordado el tema de los sistemas operativos, donde ya fijamos unas bases para entenderlos, y comenzamos una introducción práctica sobre ellos. Ahora, para entender los tipos de sistemas operativos que existen es necesario observar sus propiedades generales, así como cuáles son sus aplicaciones típicas y los requisitos tanto para los sistemas de lotes y de multiprogramación. Otro aspecto a detallarse es las variedades de tiempo compartido y de tiempo real de los sistemas multiprogramación, de los cuales se hace necesario entrar en detalles.
Clasificamos de esta manera a los sistemas operativos en cuatro apartados principales, los cuales son, de tiempo real, de un solo usuario/una sola tarea, un solo usuario/múltiples tareas, y multiusuario/multitarea.
Sistemas operativos de tiempo real
La principal característica de estos sistemas operativos es su rapidez y tamaño reducido. A menudo suelen estar integrados dentro de los circuitos de un dispositivo de hardware y no se cargan desde una unidad de almacenamiento como lo puede ser un disco duro o unidad externa.
El uso de programas en tiempo real solamente puede realizarse desde un sistema operativo de tiempo real, así como puede ser utilizado para su funcionamiento en múltiples tareas al mismo tiempo, así como con una tarea única.
La velocidad de las aplicaciones puede ser de milésimas o millonésimas de segundo y gracias a esta velocidad suelen ser utilizadas dentro de equipos de diagnóstico médico, sistemas de soporte vital, maquinarias, instrumentos científicos, equipos de comunicación telefónica, control de vuelo y sistemas industriales y militares.
Debido a estas necesidades de velocidad, el usuario y el uso de los recursos del equipo pasan a segundo término. Por otro lado, suele ser común que se espere que este tipo de sistemas procese miles de interrupciones por segundo sin pérdida de información.
Es habitual que dentro de estos sistemas aparezcan frecuentemente procesos explícitos en los que el programador los define y los controla, de tal forma que “cada proceso separado está al cargo del manejo de un único suceso externo. El proceso se activa tras la ocurrencia del suceso en cuestión, que con frecuencia viene señalado por una interrupción.” (Milenković, 1994, pág. 15) Debido a esto, la programación multitarea asigna procesos para ser ejecutados de manera independiente unos de otros.
Los procesos dentro de este tipo de sistemas operativos son asignados con determinado nivel de prioridad que es identificada por la importancia relativa del suceso del que depende y sirve, tal como ocurre con el procesador, al cual le es asignada la máxima prioridad. Es normal que los procesos de mayor prioridad se adueñen la ejecución de procesos de menor prioridad, dando lugar a la forma de planificación conocida como planificación expropiativa basada en prioridades, la cual es utilizada en la mayoría de OS de tiempo real.
Sistemas operativos de un solo usuario/una sola tarea
Se tratan de OS que solamente poseen la capacidad de realizar un proceso, como lo puede ser para los usuarios la impresión de un documento, el guardar un archivo en una unidad de almacenamiento, editar un fichero, etcétera.
Suelen ser sistemas operativos muy sencillos y pequeños, aunque sumamente limitados debido a lo mismo. Ejemplo de este tipo de OS es MS-DOS, y a pesar de sus limitaciones suelen cubrir una utilidad específica que es la de ejecutarse en equipos que no son ni poderosos ni costosos ya que ocupan muy poco espacio en disco y memoria.
Actualmente los objetivos de programación para sistemas operativos para computadoras personales han cambiado, ya que la prioridad de maximizar el uso del CPU y los dispositivos periféricos ha cambiado por brindar mayor comodidad y facilidad al usuario. De esta forma, “el sistema operativo MS-DOS de Microsoft ha sido reemplazado por muchas variantes de Microsoft Windows, e IBM ha mejorado el MS-DOS para llegar al sistema OS/2 de multitarea.” (Silberschatz, Galvin, & Gagne, 2002, pág. 10)
Sistemas operativos de un solo usuario/múltiples tareas
Este tipo de OS tienen la característica de poder realizar dos o más funciones al mismo tiempo; esta característica ha permitido el incremento de la productividad de los usuarios, de tal manera que cada persona puede realizar un gran número de ocupaciones en un periodo de tiempo menor, por ejemplo, imprimir un documento de gran tamaño mientras que realiza otro trabajo en la computadora.
Estos sistemas operativos fueron diseñados gracias la evolución de la programación por lotes con multiprogramación, lo que proporcionó un entorno en que los distintos elementos del sistema (hardware como el procesador, la memoria, las unidades de almacenamiento y los periféricos) eran utilizados de manera eficaz pero sin interacción con el usuario; debido a lo anterior, “el tiempo compartido, o multitarea, es una extensión lógica de la multiprogramación” (Op. Cit. pág. 8). Lo que ocurre es que al procesador se le asignan diferentes trabajos cambiando entre ellos su ejecución, pero debido a la rapidez de estas ejecuciones, los usuarios tienen la posibilidad de interactuar con cada programa.
Estos sistemas de interacción han brindado un tiempo de retorno menor que los sistemas por lotes de una sola tarea, pero son más lentos que los sistemas de tiempo real, su principal función ha sido la de facilitar el uso y administración de los recursos por parte del usuario y prácticamente todas las computadoras personales modernas poseen este tipo de sistema operativo, como son ejemplo de ello las diferentes versiones de Microsoft Windows y Mac OS.
Hace relativamente poco tiempo, las computadoras personales poseían un solo procesador, sin embargo, al disminuir los costos de los procesadores, los fabricantes de equipos personales comenzaron a construir equipos con microprocesadores de varios núcleos, lo que ofreció mayores capacidades para estos equipos, debido a esto, los programadores de sistemas operativos utilizaron una técnica conocida como multiproceso simétrico (SMP por sus siglas en inglés de Symmetric MultiProcesing), la cual permite dar mayor eficiencia y fiabilidad, ya que esta arquitectura permite que los procesadores de un equipo monousuario compartan la memoria principal y los dispositivos de entrada y salida, a través de un solo bus de comunicaciones u otro esquema de conexión interna, además de que todos los procesadores pueden ejecutar las mismas funciones de manera simétrica, de lo cual deriva su nombre.
Una característica de la técnica SMP es que es transparente al usuario la existencia de múltiples procesadores, ya que el “sistema operativo se ocupa de la planificación de hilos o procesos sobre los procesadores individuales y de la sincronización entre procesadores” (Stallings, 2005, pág. 82).
Sistemas operativos multiusuario/múltiples tareas
Este tipo de sistemas operativos permiten que a través de un sistema operativo instalado en un equipo llamado “Servidor de terminales”, de dos a más usuarios ejecuten varios procesos de manera simultánea. A diferencia de un sistema de red donde un servidor permite el acceso a archivos o recursos de hardware y los procesos se llevan a cabo de manera local, en un sistema multiusuario de múltiples tareas, el OS permite que cada usuario tenga un entorno completo de trabajo, a través de sesiones de usuario en el servidor, el cual desarrolla los procesos de manera remota.
La mayor ventaja que permite este tipo de sistemas operativos es que se pueden administrar realizando cambios en el servidor los cuales serán aprovechados por todos los equipos cliente, al mismo tiempo un equipo cliente con pocos recursos puede aprovechar las capacidades del servidor (el cual suele ser mucho más potente) reduciendo costos tanto en la adquisición de hardware como de licencias de software, aunque su mayor desventaja es que cuando la conexión con el servidor falla los usuarios quedan imposibilitados de trabajar con los recursos del servidor.
Dentro del modelo de cliente/servidor, los subsistemas protegidos y los programas se ordenan según esta arquitectura, de tal forma que es un modelo habitual en el procesamiento distribuido, pudiendo ser adoptado en sistemas únicos o monousuario.
Cada subsistema del entorno y servicios son ejecutados como uno o más procesos donde cada proceso espera la solicitud de un cliente para cada uno de sus servicios. Dentro de esta característica es posible que un cliente se trate de un programa o aplicación o incluso otro módulo del mismo sistema operativo, además de lo que se ha mencionado sobre otras máquinas remotas.
En este tipo de sistemas operativos, los clientes envían mensajes al servidor solicitando un servicio, el mensaje se traslada a través de un sistema ejecutor hasta el servidor apropiado, una vez que el servidor recibe el mensaje, este lleva a cabo la solicitud recibida y regresa el resultado o información a través de otro mensaje que es devuelto a través del mismo ejecutor.
Las ventajas de la arquitectura cliente/servidor son mostradas en la siguiente tabla:
Ventajas de la arquitectura |
|
Ventaja |
Descripción |
Simplifica el |
Es posible construir varias aplicaciones en el ejecutor sin conflictos |
Mejora de la |
Ya que cada módulo de servicio del ejecutor se ejecuta en un proceso |
Medio uniforme de |
Este mecanismo de paso de mensajes se encuentra oculto a las |
Son naturales para |
Comúnmente el procesamiento distribuido sigue el modelo |
Bueno, de momento es todo, próximamente les hablaremos sobre los comandos más usuales en todos los sistemas operativos, esperamos que les haya sido de utilidad.
Bibliografía
Milenković, M. (1994). SISTEMAS OPERATIVOS Conceptos y diseño (Segunda ed.). (J. Stumpf, Ed., & A. Bautista Paloma, Trad.) Madrid, España: McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A.
Silberschatz, A., Galvin, P., & Gagne, G. (2002). Sistemas Operativos (Sexta ed.). (F. R. Pérez Vázquez, Trad.) Ciudad de México, Distrito Federal, México: Limusa.
Stallings, W. (2005). Sistemas operativos (Quinta ed.). (M. Martín-Romo, Ed., J. M. Peña Sánchez, F. Pérez Costoya, M. Pérez Hernández, V. Robles Forcada, & F. J. Rosales García, Trads.) Madrid, España: Pearson Educación, S.A.