- Un sistema operativo multiarea permite que coexistan varios procesos activos a la vez, ejecutando todos ellos de forma concurrente. existen 3 modelos de computadoras en los que se pueden ejecutar procesos concurrentes
b) Multiprocesador
c) Multicomputadora
Principios generales de la concurrencia
En un sistema multiprogramador con único procesador los procesos se intercalan en el tiempo aparentando una ejecución simultanea. aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.
Tipos de procesos concurrentes
Los procesos se ejecutan de forma concurrente en un sistema, se pueden clasificar como procesos independientes o cooperantes:
- Independiente: es aquel que se ejecuta sin requerir la ayuda o cooperación de otros procesos.
- Cooperantes: están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos.
Pueden implementarse soluciones de software para los procesos concurrentes que se ejecutan en maquinas mono procesador o multiprocesador con memoria principal compartida.
Tipos de algoritmo
- Algoritmo de Dekker: la solución se desarrolla por etapas. Este método ilustra la mayoría d los errores habituales que se producen en construcción de programas concurrentes.
- Algoritmo de Peterson: ha desarrollado una solución simple y elegante.La variable global señal indica la posición de cada proceso con respecto a la exclusivo mutua y la variable global turno resuelve los conflictos de simultaneidad.
- Inhabilitacion de interrupciones: en una maquina mono procesador la ejecución de procesos concurrentes no puede superponerse, solo puede intercalarse. Es mas un proceso continuara ejecutándose asta que solicite un servicio de SO o asta que se interrumpido.
- Instrucción especiales de maquina: en configuración multiprocesador varios procesadores comparten el acceso a una memoria principal común.
Principios generales de concurrencia
- Facilita la programación de las aplicaciones al permitir que estas se estructuren como un conjunto de procesos que cooperan entre si para alcanzar un objetivo en común.
- Acelera los calculos si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos cada uno de los cuales se ejecuta en paralelo con los demás.
- Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultanea desde varias terminales.
- Permite un mejor aprovechamiento de los recursos en especial de la UCP ya que se puede aprovechar la fases de E/S de unos procesos para realizar las fases de procesamiento de otros.