T4 - Procesos

Anxo López Rodríguez

T4 - Procesos

IC - 1.º Grado en Inteligencia Artificial

Anxo López Rodríguez

Escuela Superior de Enxeñaría Informática - Universidade de Vigo


Multiprogramación

Técnica que oermite que varios programas se alojen en la memoria principal de forma simultanea. La cantidad de programas que pueden estar presentes al mismo tiempo se llama grado de multiprogramación

Programa VS Proceso

Un programa es una entidad estática y pasiva un conjunto de instrucciones que no cambian una vez han sido definidas. Cuando este programa es ejecutado se convierte en un proceso, una entidad dinámica y activa que no puede existir por sí sola (es decir que tiene que ser ejecutada). La ejecución de un proceso varía dependiendo del Estado del sistema y no tiene porqué ejecutarse en un sistema operativo, puede estar integrado en hardware o firmware como la bios o sistemas embebidos.

Concurrencia

Capacidad de un sistema para que dos más procesos progresen simultáneamente (¡Ojo! Simultaneo no es paralelo). Es fundamental en sistemas que manejan múltiples tareas, ya que nos permite optimizar el uso de recursos del procesador y avanzar sin tener que completar una tarea para hacer otra. Hay dos tipos:

Paralelismo

Capacidad de un sistema para ejecutar más de un proceso al mismo tiempo. Para que los procesos sean paralelos, tienen que coexistir en el mismo espacio de tiempo y se tienen que ejecutar simultáneamente en diferentes núcleos. El paralelismo implica ejecución simultánea real, a diferencia de los sistemas multiprocesador o mononucleo que hacen cambios de contexto rápido (pseudoparalelismo).

Paralelismo VS Concurrencia

El paralelismo implica concurrencia (Si varios procesos ejecutan al mismo tiempo, conviven a la vez), pero la concurrencia no implica paralelismo (Si varios procesos conviven, no tienen por qué ejecutarse a la vez).

Áreas de comunicación entre procesos

Los procesos no trabajan de forma aislada, a veces cooperan para alcanzar un objetivo (sincronización) o compiten por el uso de recursos (exclusión mutua). Para entender el uso de estas áreas, debemos entender los tipos de recursos:

Exclusión mutua

Mecanismo utilizado para gestionar la interacción entre dos o mas procesos que se están ejecutando en paralelo y quieren acceder a un recurso no compartible. Garantiza que sólo un proceso tenga acceso al recurso, dando el acceso exclusivo, mientras que otros esperan a que se libere.

Sincronización

Comunicación requerida entre dos o mas procesos para sincronizar sus actividades. Puede ser simple, un proceso cuando llegue x punto no puede seguir hasta que otro no llegue a y punto (1º espera a 2º), o múltiple, Un proceso llegado a un punto no puede seguir hasta que el otro llegue a ese mismo punto (Se esperan mutuamente)

Interbloqueo

Un proceso está interbloqueado cuando está a la espera de un proceso que nunca se producirá. Ocurre en sistemas donde varios procesos se interrelacionan y dependen de la finalización de otros para poder continuar. Puede llegar a la paralización de tareas críticas, por ello se utilizan estrategias de prevención, evitación, extención y recuperación de los mismos.