Sistemas Operativos de
multiprogramación (o Sistemas Operativos de multitarea).
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). Para
activar otra tarea que se encuentre en segundo plano, el usuario debe traer al
primer plano la ventana o pantalla que contenga esa aplicación. 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 información del usuario), y siempre que esta
aplicación lo permita. En los sistemas multitarea de tiempo compartido, como
OS/2, cada tarea recibe la atención del microprocesador durante una fracción de
segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de
prioridad o se procesa en orden secuencial. Dado que el sentido temporal del
usuario es mucho más lento que la velocidad de procesamiento del ordenador, las
operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Se distinguen por sus habilidades para poder soportar la
ejecución de dos o más trabajos activos (que se están ejecutado) al mismo
tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP)
siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria
principal, de manera que cada uno está usando el procesador, o un procesador
distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98,
Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de
multiprogramación o multitarea son las siguientes:
·
Mejora productividad del sistema y
utilización de recursos.
·
Multiplexa recursos entre varios programas.
·
Generalmente soportan múltiples usuarios
(multiusuarios).
·
Proporcionan facilidades para mantener el
entorno de usuarios individuales.
·
Requieren validación de usuario para
seguridad y protección.
·
Proporcionan contabilidad del uso de los
recursos por parte de los usuarios.
·
Multitarea sin soporte multiusuario se
encuentra en algunos computadores personales o en sistemas de tiempo real.
·
Sistemas multiprocesadores son sistemas
multitareas por definición ya que soportan la ejecución simultánea de múltiples
tareas sobre diferentes procesadores.
·
En general, los sistemas de multiprogramación
se caracterizan por tener múltiples programas activos compitiendo por los
recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son más primitivos y
es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un
proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por
ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro
proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
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.
Estos tipos de sistemas son muy simples, porque todos los
dispositivos de entrada, salida y control dependen de la tarea que se esta
utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas
de inmediato; ya que existe un solo usuario. Y están orientados principalmente
por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y 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).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran
cantidad de trabajos con poca o ninguna interacción entre los usuarios y los
programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos
al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos,
y fueron introducidos alrededor de 1956 para aumentar la capacidad de
procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un
tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los
Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la
ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes
exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento
científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento
académico.
Algunas otras características con que cuentan los
Sistemas Operativos por lotes son:
·
Requiere que el programa, datos y órdenes al
sistema sean remitidos todos juntos en forma de lote.
·
Permiten poca o ninguna interacción
usuario/programa en ejecución.
·
Mayor potencial de utilización de recursos
que procesamiento serial simple en sistemas multiusuarios.
·
No conveniente para desarrollo de programas
por bajo tiempo de retorno y depuración fuera de línea.
·
Conveniente para programas de largos tiempos
de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
·
Se encuentra en muchos computadores
personales combinados con procesamiento serial.
·
Planificación del procesador sencilla,
típicamente procesados en orden de llegada.
·
Planificación de memoria sencilla,
generalmente se divide en dos: parte residente del S.O. y programas
transitorios.
·
No requieren gestión crítica de dispositivos
en el tiempo.
·
Suelen proporcionar gestión sencilla de
manejo de archivos: se requiere poca protección y ningún control de
concurrencia para el acceso.
Sistemas Operativos de tiempo
real.
Los Sistemas Operativos de tiempo real son aquellos en
los cuales no tiene importancia el usuario, sino los procesos. Por lo general,
están subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. se utilizan en entornos donde son
procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos
para aplicaciones muy específicas como control de tráfico aéreo, bolsas de
valores, control de refinerías, control de laminadores. También en el ramo
automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real
están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas
Operativos de tiempo real son los siguientes:
·
Control de trenes.
·
Telecomunicaciones.
·
Sistemas de fabricación integrada.
·
Producción y distribución de energía
eléctrica.
·
Control de edificios.
·
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real
son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo
real, cuentan con las siguientes características:
·
Se dan en entornos en donde deben ser
aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema
computacional, en breve tiempo o dentro de ciertos plazos.
·
Se utilizan en control industrial,
conmutación telefónica, control de vuelo, simulaciones en tiempo real.,
aplicaciones militares, etc.
·
Objetivo es proporcionar rápidos tiempos de
respuesta.
·
Procesa ráfagas de miles de interrupciones
por segundo sin perder un solo suceso.
·
Proceso se activa tras ocurrencia de suceso,
mediante interrupción.
·
Proceso de mayor prioridad expropia recursos.
·
Por tanto generalmente se utiliza
planificación expropiativa basada en prioridades.
·
Gestión de memoria menos exigente que tiempo
compartido, usualmente procesos son residentes permanentes en memoria.
·
Población de procesos estática en gran
medida.
·
Poco movimiento de programas entre
almacenamiento secundario y memoria.
·
Gestión de archivos se orienta más a
velocidad de acceso que a utilización eficiente del recurso.
Sistemas Operativos de tiempo
compartido.
Permiten la simulación de que el sistema y sus recursos
son todos para cada usuario. El usuario hace una petición a la computadora,
esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la
terminal del usuario.
Los principales recursos del sistema, el procesador, la
memoria, dispositivos de E/S, son continuamente utilizados entre los diversos
usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para
sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema
Operativo, principalmente en la administración de memoria principal y
secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son
Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo
compartido:
·
Populares representantes de sistemas
multiprogramados multiusuario, ej: sistemas de diseño asistido por computador,
procesamiento de texto, etc.
·
Dan la ilusión de que cada usuario tiene una
máquina para sí.
·
Mayoría utilizan algoritmo de reparto
circular.
·
Programas se ejecutan con prioridad rotatoria
que se incrementa con la espera y disminuye después de concedido el servicio.
·
Evitan monopolización del sistema asignando
tiempos de procesador (time slot).
·
Gestión de memoria proporciona protección a
programas residentes.
·
Gestión de archivo debe proporcionar
protección y control de acceso debido a que pueden existir múltiples usuarios
accesando un mismo archivos.
Sistemas Operativos
distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un
conjunto de procesadores. Puede ser que este conjunto de procesadores esté en
un equipo o en diferentes, en este caso es trasparente para el usuario. Existen
dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel
que comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores. En un sistema débilmente acoplado los
procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su
memoria local.
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.
Características de los Sistemas Operativos distribuidos:
·
Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware y software .
·
Gobierna operación de un S.C. y proporciona
abstracción de máquina virtual a los usuarios.
·
Objetivo clave es la transparencia.
·
Generalmente proporcionan medios para la
compartición global de recursos.
·
Servicios añadidos: denominación global,
sistemas de archivos distribuidos, facilidades para distribución de cálculos (a
través de comunicación de procesos internodos, llamadas a procedimientos
remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o más
computadoras unidas atravé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.
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 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 estos tipos de Sistemas Operativos están:
Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.