La multitarea es la característica de los sistemas operativos modernos de permitir que varios procesos se ejecuten —al parecer— al mismo tiempo compartiendo uno o más procesadores.
Un sistema operativo multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, la razón es porque actualmente nuestras CPUs sólo pueden ejecutar un proceso cada vez. La única forma de que se ejecuten de forma simultánea varios procesos es tener varias CPUs (ya sea en una máquina o en varias, en un sistema distribuido).
La magia de un sistema operativo multiproceso reside en la operacíon llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.
Tipos de Multitarea:
Cooperativa
Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemática, puesto que si el proceso de usuario se interrumpe y no cede la CPU al sistema operativo, todo el sistema estará trabado, es decir, sin poder hacer nada. Da lugar también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo sería Windows hasta la versión 2000.
Sistemas Operativos multiusuarios
La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en ocasiones también puede aplicarse a programas de computadora de otro tipo (e.j. aplicaciones de base de datos) e incluso a sistemas de cómputo. En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente, estrictamente es pseudo-simultáneo (tanto en paralelismo real como simulado).
En contraposición a los sistemas monousuario, que proveen servicio y procesamiento a un sólo usuario, en la categoría de multiusuario se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten los mismos recursos. Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primeros ejemplos de sistemas multiusuario fueron los centralizados, que los usuarios compartían a través del uso de múltiples dispositivos de interfaz humana (e.j. una unidad central y múltiples. sirve para empresas monitores y teclados).
Los recursos que se comparten son, normalmente, una combinación de:
- Procesador.
- Memoria.
- Almacenamiento secundario (en disco duro).
- Programas.
- Periféricos como impresoras, plotters, escáner, etc.
Sistemas Operativos multiprocesador
Se denomina multiprocesador a un computador que cuenta con dos o más microprocesadores (CPUs).
Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.
Los ordenadores multiprocesador presentan problemas de diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
- La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria.
- La arquitectura SMP, donde todos los procesadores comparten toda la memoria.
Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen esta capacidad.
Sistemas Operativos multitramo
- Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
- Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.
- Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.
Un sistema operativo de tiempo real es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estan subutilizados sus recursos con la finalidad de prestar atencion a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran numero de sucesos o eventos.
Muchos Sistemas Operativos de
tiempo real son construidos para aplicaciones muy especificas como
control de trafico aereo, bolsas de valores, control de refinerias,
control de laminadores. Tambien en el ramo automovilistico y de la
electronica de consumo, las aplicaciones de tiempo real estan creciendo
muy rapidamente. Otros campos de aplicacion de los Sistemas Operativos
de tiempo real son los siguientes:
- Control de trenes.
- Telecomunicaciones.
- Sistemas de fabricacion integrada.
- Produccion y distribucion de energia electrica.
- 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
caracteristicas:
- Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoria externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
- Se utilizan en control industrial, conmutacion telefonica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
- Objetivo es proporcionar rapidos tiempos de respuesta.
- Procesa rafagas de miles de interrupciones por segundo sin perder un solo suceso.
- Proceso se activa tras ocurrencia de suceso, mediante interrupcion.
- Proceso de mayor prioridad expropia recursos.
- Por tanto generalmente se utiliza planificacion expropiativa basada en prioridades.
- Gestion de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.
- Poblacion de procesos estatica en gran medida.
- Poco movimiento de programas entre almacenamiento secundario y memoria.
- Gestion de archivos se orienta mas a velocidad de acceso que a utilizacion eficiente del recurso.