Está en la página 1de 10

GESTION DE PROCESOS

3.1. INTRODUCCIÓN A LOS PROCESOS.


Todas las computadoras modernas pueden realizar varias tareas al mismo tiempo.
Mientras ejecuta el programa de un usuario, una computadora puede asimismo estar leyendo un disco e imprimiendo en una
impresora.
En un sistema de multiprogramación, la unidad central de procesamiento (CPU) también cambia de un programa a otro.
Ejecutando cada uno en decenas o cientos de milisegundos.
En cualquier instante de tiempo la CPU está ejecutando solo un programa, por eso en el curso de un segundo puede trabajar
en varios programas, con lo que se da al usuario la ilusión de paralelismo.
Algunas veces las personas hablan de pseudo paralelismo para referirse a estos cambios que la CPU realiza entre
programas, a fin de compararlo con el verdadero paralelismo del hardware de la operación de esta unidad mientras corren
uno o más dispositivos de entrada o salida.

3.2. CONCEPTOS ASOCIADOS A LOS PROCESOS


3.2.1 PLANIFICACION
Decisión de cuál proceso debe ejecutarse, cuándo y por cuánto tiempo.
SEÑAL: Trama enviada por el S.O. para la suspensión temporal  de un  proceso,  la cual es tratada por  un  procedimiento
especial  de control. Las partes constitutivas de un proceso suspendido son:
Espacio de Direcciones o Imagen Central.
Datos en la Tabla de Procesos. La  Tabla  de
Procesos es un arreglo o lista ligada y creada para cada proceso.

3.2.2. PCB:
Bloque o registro de datos que contiene diversa  información relacionada con un proceso concreto, incluyendo:
Estado del Proceso: En Ejecución, Bloqueado o Listo.
Contador del Programa: dirección de la siguiente instrucción a ser ejecutada por el proceso.
Registros de la CPU.
Información de Planificación de la CPU: prioridad del proceso, apuntadores a las colas de planificación y
otros parámetros de planificación.
Información de Administración de Memoria: registros límites y tablas de páginas.
Información Contable: cantidad de tiempo real y de la CPU utilizado,
límites de tiempo, números de cuenta y números de proceso o trabajo.
Información del Estado de la E-S: solicitudes de E-S pendientes, dispositivos  de E-S
(como discos o unidades  de  cinta) asignados al proceso y una lista de archivos abiertos.

3.3. JERARQUIA DE PROCESOS


Forma de crear y destruir procesos  cuando se requiera durante la operación del sistema.

– Proceso Hijo: Proceso creado por otro proceso.


– Proceso Padre: Proceso que crea otros procesos.
Ejemplo
En UNIX, los procesos se crean con una llamada al sistema (FORK), la cual puede ser ejecutada varias veces por el proceso
Padre (varios Hijos ejecutándose en paralelo) y también por los procesos Hijos (árbol de procesos de profundidad
“arbitraria”, generalmente el nivel máximo es 3).

• UID (Identificación  del  Usuario)  y


• GID  (Identificación  del Grupo): Ayudan al registro de pertenencia de un proceso a un usuario o grupo específico.
• ORGANIZACIÓN: Arboles con un máximo de tres niveles (jerarquía poco profunda) que dura unos cuantos
segundos donde el manejo de propiedad y  protección  es vertical-descendente (Padre-Hijo).
• VELOCIDAD RELATIVA: La velocidad relativa de dos procesos depende de la complejidad relativa de los
programas y el tiempo que dispone cada uno.
• PLANIFICADOR DEL PROCESO: Es la parte del S.O. que lleva a cabo la Planificación.
• MODELO DE PROCESOS (Modelo de Paralelismo): Todo Sw ejecutable (inclusive el S.O.), se organiza en
varios PROCESOS SECUENCIALES o, simplemente, PROCESOS. Conceptualmente, cada proceso tiene su
propia CPU virtual. Si la CPU alterna entre los procesos, la velocidad a la que se ejecuta un proceso no será
uniforme y es probable que no se pueda reproducir si los mismos procesos se ejecutan de nuevo.
• En este Modelo, en vez de interrupciones, se tienen procesos: del usuario, del disco, de terminal, etc., los cuales se
bloquean en espera de que algo ocurra.

Arbol con una jerarquía de tres niveles

A A es Padre de B y C
B es Padre de D
C es Padre de E y F

B C

B y C son Hijos de A
D es Hijo de B
E y F son Hijos de C

E
D F

Multiprogramación de cuatro procesos

Contador de Programa
A
B Computadora que
multiprograma
Alternador de
Procesos C cuatro programas
en memoria
D

Modelo conceptual de cuatro procesos


secuenciales independientes

Cuatro Contadores de Programa


Ejecución independiente
de cada uno de los
A C D B procesos
• El nivel inferior de un S.O. con estructura
de procesos controla las interrupciones y
realiza la planificación. El resto del sistema
consta de procesos secuenciales:
0 1 n-2 n-1
...

Planificador

• ACTIVIDADES DE LA CPU
Existen diferentes denominaciones para referirse a las actividades de la CPU:
– un Sistema Por Lotes ejecuta TRABAJOS.
– Un Sistema en Tiempo Compartido tiene TAREAS o PROGRAMAS DE USUARIO.
• En varios aspectos, estas actividades son similares, por lo que a todas se les llamará PROCESOS.
• ESTADO DE UN PROCESO
Está definido por la actividad actual del proceso. Puede ser de tres tipos:
1) BLOQUEADO:
2) EN EJECUCION:
3) LISTO:
Estado bloqueado
Suspensión inherente al problema: está listo para ser ejecutado pero no posee datos, se encuentra en espera de ellos. Cuando
un proceso se bloquea, lo hace porque desde el punto de vista lógico no puede continuar aunque la CPU esté ociosa. No se
puede ejecutar debido a la ocurrencia de algún evento externo.
Estado en ejecución
Utiliza la CPU en el instante dado.
Estado listo
Ejecutable, se detiene en forma temporal para que se ejecute otro proceso. En ese momento, no existe CPU disponible para
él. No puede ejecutarse porque la CPU ha sido asignada a otro proceso (CPU insuficiente).
TRANSICIONES DE ESTADO
De los tres estados posibles, pueden realizarse cuatro transiciones entre éstos:
1) El proceso se bloquea en espera de datos.
2) El planificador elige otro proceso pues decide que el proceso en ejecución ya ha sido ejecutado el tiempo
suficiente y es hora que otro proceso tenga tiempo de CPU.
3) El planificador elige este proceso. Los demás procesos han tenido su parte y es tiempo que el primer
proceso vuelva a ejecutarse.
4) Los datos están disponibles.

• DIAGRAMA DE TRANSICIONES DE ESTADO:


A. TANENBAUM

1.1 En Ejecución 1.2

1.3
Bloqueado Listo
1.4

• DIAGRAMA DE TRANSICIONES DE ESTADO:


B. SILBERSCHATZ-PETERSON-GALVIN

Nuevo Proceso
proceso terminado
1.3
Listo En Ejecución

1.4 Bloqueado 1.1

No aparece la transición 1.2

3.4. ADMINISTRACION DE PROCESOS

Planificación del procesador

La planificación del procesador se refiere a la manera de decidir cuánto tiempo de ejecución y cuando se le asignan a cada
proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de
los sistemas esto es crucial para el buen funcionamiento del sistema.

NIVELES DE PLANIFICACIÓN
En los sistemas de planificación generalmente se identifican tres niveles: el alto, el medio y el bajo. El nivel alto decide que
trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel
intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento.
Mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya están listos (y que en algún momento
pasó por los otros dos planificadores) es al que le toca ahora estar ejecutándose en la unidad central de procesamiento.

En adelante se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en
ejecución.

OBJETIVOS DE LA PLANIFICACIÓN
Una estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución apropiadamente,
conjuntamente con un buen rendimiento y minimización de la sobrecarga (overhead) del planificador mismo. En general, se
buscan cinco objetivos principales:

Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algún momento obtienen su turno de
ejecución o intervalos de tiempo de ejecución hasta su terminación exitosa.
Maximizar la Producción: El sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo.
Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a
sus requerimientos.
Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo.
El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rápido y con cargas pesadas debe
ir degradándose paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo proceso en cargas similares de
todo el sistema, la respuesta en todos los casos debe ser similar

3.5. CARACTERÍSTICAS A CONSIDERAR DE LOS PROCESOS


No todos los equipos de cómputo procesan el mismo tipo de trabajos, y un algoritmo de planificación que en un sistema
funciona excelente puede dar un rendimiento pésimo en otro cuyos procesos tienen características diferentes. Estas
características pueden ser:

Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida
(aplicaciones de bases de datos, por ejemplo).
Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan
intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con matrices.

PROCESOS DE LOTE O INTERACTIVOS


Un proceso de lote es más eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que
un programa interactivo espera mucho tiempo (no es lo mismo el tiempo de lectura de un archivo que la velocidad en que
una persona teclea datos) por las respuestas de los usuarios.

PROCESOS EN TIEMPO REAL


Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecución.

LONGEVIDAD DE LOS PROCESOS


Existen procesos que típicamente requerirán varias horas para finalizar su labor, mientras que existen otros que solo
necesitan algunos segundos.

PLANIFICACIÓN APROPIATIVA O NO APROPIATIVA


Planificación apropiativa
La planificación apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecución ya no puede ser
suspendido, ya no se le puede arrebatar la unidad central de procesamiento. Este esquema puede ser peligroso, ya que si el
proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados
indefinidamente.

Planificación no apropiativa
Una planificación no apropiativa es aquella en que existe un reloj que lanza interrupciones periódicas en las cuales el
planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da su turno a otro proceso.

En una planificación no apropiativa, un trabajo muy grande aplaza mucho a uno pequeño, y si entra un proceso de alta
prioridad esté también debe esperar a que termine el proceso actual en ejecución.
3.6. PLANIFICACIÓN DE LA CPU
La planificación de CPU es la base de los sistemas operativos multiprogramados. Al conmutar la CPU entre procesos, el
sistema operativo puede hacer más productivo al computador.
3.6.1. Conceptos Básicos
Las políticas de planificación intentan cubrir los siguientes objetivos:
- justicia. La política debe ser lo más justa posible con todo tipo de procesos, sin favorecer a unos y perjudicar a
otros.
- Máxima capacidad de ejecución. Debe dar un servicio aceptable para que todos los trabajos se realicen lo más
rápidamente posible. Esto se logra disminuyendo el número de cambios de procesos.
- Máximo número de usuarios interactivos. En los sistemas de tiempo compartido se tratará de que puedan estar
trabajando el mayor número de usuarios simultáneamente.
- Predecibilidad. La política de planificación debe concebirse de tal forma que en todo momento pueda saberse
cómo será su ejecución.
- Minimización de la sobrecarga.La computadora debe tener poca sobrecarga ya que ésta incide directamente sobre
el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de proceso. Por ello, los cambios de contexto deben
minimizarse.
- Equilibrio en el uso de recursos. Para obtener un buen rendimiento en el uso de los recursos y que éstos estén
ocupados equitativamente el mayor tiempo posible.
- Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, éste debe ejecutarse mas
rápidamente.

Despachador
Uno de los componentes que interviene en la función de planificación de la CPU es el despachador (dispatcher). Este es el
módulo que cede el control de la CPU al proceso seleccionado por el planificador a corto plazo. Esta función implica:
 Cambiar de contexto
 Cambiar a modo de usuario.
 Saltar al punto apropiado del programa del usuario para reiniciar ese programa.

El despachador debe ser lo más rápido posible, porque se invoca en cada conmutación de proceso.

3.6.2. CRITERIOS DE PLANIFICACIÓN


Los criterios que se deben tener en cuenta a la hora de elegir o diseñar un algoritmo de planificación son los siguientes:
 Tiempo de respuesta. Velocidad con que el ordenador da respuesta a una petición. Depende mucho de la
velocidad de los dispositivos de entrada/salida.
 Tiempo de servicio. ES el tiempo que tarda en ejecutarse un proceso, donde se incluye el tiempo de carga del
programa en memoria, el tiempo de espera en la cola de procesos listos; el tiempo de ejecución en el procesador y
el tiempo consumido en operaciones de E/S.
 Tiempo de ejecución. Es idéntico al tiempo de servicio menos el tiempo de espera en la cola de procesos
preparados; es decir, es el tiempo teórico que necesitaría el procesos para ser ejecutado si fuera el único presente
en el sistema.
 Tiempo de procesador. Es el tiempo que un proceso está utilizando el procesador si contar el tiempo que se
encuentra bloqueado por operaciones de E/S.
 Tiempo de espera. Es el tiempo en que los procesos están activos pero sin ser ejecutados, es decir, los tiempos de
espera en las distintas colas.
 Eficiencia. Se refiere a la utilización del recurso más caro en un sistema, el procesador, que debe estar el mayor
tiempo posible ocupado para lograr así un gran rendimiento.
 Rendimiento. Es el número de trabajos o procesos realizados por unidad de tiempo, que debe ser lo mayor posible.

MEDIDAS
Consideremos :

Tiempo de servicio (T): T = tf - ti


Tiempo de espera (E): E = T – t

t: El tiempo que un proceso P necesita estar en ejecución para llevar a cabo su trabajo.
ti : Instante en que el usuario da la orden de ejecución del proceso.
tf : Instante en que el proceso termina su ejecución.

A partir de los dos valores anteriores , podemos establecer una relación que nos permite evaluar la actuación de la política
establecida en lo que se denomina índice de servicio (I).

I= t.
T

Este índice representa el tanto por uno de tiempo que el proceso está en ejecución respecto al tiempo de vida del mismo en
el sistema.
Si sólo existe un proceso ejecutándose en el sistema, según el valor del índice de servicio, podemos decir que:
- Cuando I sea próximo a la unidad, el proceso está limitado por proceso.
- Si I tiene un valor bajo próximo a 0, el proceso estará limitado por E/S.
Cuando existe más de un proceso en el sistema, se establecen medidas, pero con valores medios obtenidos al considerar el
conjunto de procesos presentes. Estas son:
Tiempo medio de servicio
Tiempo medio de espera
Eficiencia (indice medio de servicio).
Además de las anteriores, en la planificación del procesador se emplean otras dos medidas de interes:

- Tiempo del núcleo. Es el tiempo consumido por el núcleo del SO para tomar las decisiones de
planificación del procesador, donde se incluyen los tiempo de cambios de contexto.
- Tiempo de inactividad. Es el tiempo consumido cuando la cola de procesos listos está vacía y por tanto
no puede realizarse ningún trabajo productivo.

3.6.3. ALGORITMOS DE PLANIFICACION


Planificación Primero en llegar primero en ser servido (FCFS)

En esta política de planificación, el procesador ejecuta cada procesos hasta que termina; los procesos que entren el la cola de
procesos listos permanecerán colados en el orden en que lleguen hasta que les toque su ejecución, por ejemplo:

Nombre Instante de Tiempo de Instante de T E I


Proceso llegada ejecución finalización
A 0 3 3 3 0 1.00
B 1 5 8 7 2 0.71
C 4 2 10 6 4 0.33
D 5 6 16 11 5 054
E 8 4 20 12 8 0.33
Media 7.8 3.8 0.58

Los procesos cortos que entren en el sistema después de uno o varios largos, tendrán que esperar un periodo de tiempo
relativamente largo hasta su ejecución.
Las características de esta política son:

o No es apropiativa
o Es justa, aunque los procesos largos hacen esperar mucho a los cortos
o Es una política predecible
o El tiempo medio de servicio es muy variable en función del número de procesos y su duración

Procesador
A B C D E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Unidades de tiempo

Planificación por prioridad


Los procesos de mayor prioridad se ejecutan primero. Si existen varios procesos de mayor prioridad que otros, pero entre
ellos con la misma prioridad, pueden ejecutarse estos de acuerdo a su orden de llegada o por 'round robin'. La ventaja de
este algoritmo es que es flexible en cuanto a permitir que ciertos procesos se ejecuten primero e, incluso, por más tiempo.
Su desventaja es que puede provocar aplazamiento indefinido en los procesos de baja prioridad.

Ejemplo de asignación por prioridad


Por ejemplo, suponga que existen procesos de prioridad 20 y procesos de prioridad 10. Si durante todo el día terminan
procesos de prioridad 20 al mismo ritmo que entran otros con esa prioridad, el efecto es que los de prioridad 10 estarán
esperando por siempre. También provoca que el sistema sea impredecible para los procesos de baja prioridad.

El trabajo más corto primero (JSF) (Short Job First)


Es difícil de llevar a cabo porque se requiere saber o tener una estimación de cuánto tiempo necesita el proceso para
terminar. Pero si se sabe, se ejecutan primero aquellos trabajos que necesitan menos tiempo y de esta manera se obtiene el
mejor tiempo de respuesta promedio para todos los procesos.

Ejemplo
Si llegan 5 procesos A,B,C,D y E cuyos tiempos de CPU son 26, 18, 24, 12 y 4 unidades de tiempo, se observa que el orden
de ejecución será E,D,B,C y A (4,12,18, 24 y 26 unidades de tiempo respectivamente). En la tabla siguiente se muestra en
que unidad de tiempo comienza a ejecutarse cada proceso y como todos comenzaron a esperar desde la unidad cero, se
obtiene el tiempo promedio de espera.
Proceso Espera desde Termina Tiempo de Espera
A 0 4 4
B 0 16 16
C 0 34 34
D 0 58 58
E 0 84 84
Tiempo promedio = (4 + 16 + 34 + 58 + 84 )/5 = 39 unidades.

El tiempo restante más corto (SRT) (Short Rest Time)


Es parecido al del trabajo más corto primero, pero aquí se está calculando en todo momento cuánto tiempo le resta para
terminar a todos los procesos, incluyendo los nuevos, y aquel que le quede menos tiempo para finalizar es escogido para
ejecutarse. La ventaja es que es muy útil para sistemas de tiempo compartido porque se acerca mucho al mejor tiempo de
respuesta, además de responder dinámicamente a la longevidad de los procesos; su desventaja es que provoca más
sobrecarga porque el algoritmo es más complejo.

La tasa de respuesta más alta:


Este algoritmo concede el turno de ejecución al proceso que produzca el valor mayor de la siguiente formula:

tiempo que ha esperado + tiempo total para terminar


valor = _______________________________________
tiempo total para terminar.

Es decir, que dinámicamente el valor se va modificando y mejora un poco las deficiencias del algoritmo del trabajo más
corto primero.

Por política:
Una forma de asignar el turno de ejecución es por política, en la cual se establece algún reglamento específico que el
planificador debe obedecer. Por ejemplo, una política podría ser que todos los procesos reciban el mismo tiempo de uso de
CPU en cualquier momento.

Ejemplo
Esto significa, por ejemplo, que si existen 2 procesos y han recibido 20 unidades de tiempo cada uno (tiempo acumulado en
time slices de 5 unidades) y en este momento entra un tercer proceso, el planificador le dará inmediatamente el turno de
ejecución por 20 unidades de tiempo. Una vez que todos los procesos están 'parejos' en uso de CPU, se les aplica 'round
robin'.
Problemas de Concurrencia
En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que reparten el uso de CPU
entre estos) se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. Imagine que
un proceso está escribiendo en la unidad de cinta y se le termina su turno de ejecución e inmediatamente después el proceso
elegido para ejecutarse comienza a escribir sobre la misma cinta.

El resultado es una cinta cuyo contenido es un desastre de datos mezclados. Así como la cinta, existen una multitud de
recursos cuyo acceso debe ser controlado para evitar los problemas de la concurrencia.

El sistema operativo debe ofrecer mecanismos para sincronizar la ejecución de procesos: semáforos, envío de mensajes,
'pipes', etc. Los semáforos son rutinas de software (que en su nivel más interno se auxilian del hardware) para lograr
exclusión mutua en el uso de recursos. Para entender este y otros mecanismos es importante entender los problemas
generales de concurrencia, los cuales se describen enseguida.

Condiciones de Carrera o Competencia:


La condición de carrera (race condition) ocurre cuando dos o más procesos accesan un recurso compartido sin control, de
manera que el resultado combinado de este acceso depende del orden de llegada. Suponga, por ejemplo, que dos clientes de
un banco realizan cada uno una operación en cajeros diferentes al mismo tiempo.

Ejemplo
El usuario A quiere hacer un depósito. El B un retiro. El usuario A comienza la transacción y lee su saldo que es 1000. En
ese momento pierde su turno de ejecución (y su saldo queda como 1000) y el usuario B inicia el retiro: lee el saldo que es
1000, retira 200 y almacena el nuevo saldo que es 800 y termina. El turno de ejecución regresa al usuario A el cual hace su
depósito de 100, quedando saldo = saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se perdió y eso le encanta al
usuario A y B, pero al banquero no le convino esta transacción. El error pudo ser al revés, quedando el saldo final en 800.

Postergación o Aplazamiento Indefinido(a):


Esto se mencionó en el apartado anterior y consiste en el hecho de que uno o varios procesos nunca reciban el suficiente
tiempo de ejecución para terminar su tarea. Por ejemplo, que un proceso ocupe un recurso y lo marque como 'ocupado' y
que termine sin marcarlo como 'desocupado'. Si algún otro proceso pide ese recurso, lo verá 'ocupado' y esperará
indefinidamente a que se 'desocupe'.

Condición de Espera Circular:


Esto ocurre cuando dos o más procesos forman una cadena de espera que los involucra a todos. Por ejemplo, suponga que el
proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso 'disco'. En ese momento al proceso A se
le ocurre pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahí se forma una espera circular entre esos dos procesos
que se puede evitar quitándole a la fuerza un recurso a cualquiera de los dos procesos.
Condición de No Apropiación:
Esta condición no resulta precisamente de la concurrencia, pero juega un papel importante en este ambiente. Esta condición
especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará
disponible hasta que el proceso lo 'suelte' por su voluntad.
Condición de Espera Ocupada:
Esta condición consiste en que un proceso pide un recurso que ya está asignado a otro proceso y la condición de no
apropiación se debe cumplir. Entonces el proceso estará gastando el resto de su time slice checando si el recurso fue
liberado. Es decir, desperdicia su tiempo de ejecución en esperar. La solución más común a este problema consiste en que el
sistema operativo se dé cuenta de esta situación y mande a una cola de espera al proceso, otorgándole inmediatamente el
turno de ejecución a otro proceso.
Condición de Exclusión Mutua:
Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A
la sección de código que usa ese recurso se le llama 'región crítica'. La condición de exclusión mutua establece que
solamente se permite a un proceso estar dentro de la misma región crítica.
Esto es, que en cualquier momento solamente un proceso puede usar un recurso a la vez. Para lograr la exclusión mutua se
ideó también el concepto de 'región crítica'. Para lograr la exclusión mutua generalmente se usan algunas técnicas para
lograr entrar a la región crítica: semáforos, monitores, el algoritmo de Dekker y Peterson, los 'candados'. Para ver una
descripción de estos algoritmos consulte [Deitel93] [Tan92].
Condición de Ocupar y Esperar un Recurso:
Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene
asignado.

También podría gustarte