1.2. La ejecucion concurrente
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
1.2. La ejecución concurrente
En la figura 1 podemos ver la ejecución concurrente de un conjunto de procesos (P1, P2 y P3) sobre un sistema monoprocesador multiprogramado. En función de la escala de tiempo con la que examinemos la evolución de los procesos en el sistema podemos tener visiones diferentes sobre ellos.
Figura 1
Página 10
-
La primera escala de tiempo, que se ve en la figura 1a, corresponde al punto de vista del usuario. Aquí la ejecución de los tres procesos parece que se efectúa en paralelo, aparentemente cada proceso utiliza siempre el procesador. Ésta es la impresión que se da en los sistemas multiusuario: que cada usuario tiene una buena interactividad con el sistema y que el usuario se encuentra solo trabajando delante de la máquina. Pero, en realidad, en un sistema que trabaja en modalidad de tiempo compartido eso no es cierto.
-
Si observamos el comportamiento de los procesos a una escala más pequeña de tiempo, vemos que hay una multiplexación del procesador en el tiempo (podéis ver la figura 1 b). Ampliando la figura 1a (haciendo un zoom), podemos observar que no hay una ejecución real en paralelo de los procesos; sólo uno de ellos está en ejecución real. Para conseguir el efecto de ejecución concurrente se realiza una conmutación entre los procesos que se reparten el tiempo del procesador. Estas conmutaciones se denominan cambio de contexto.
-
Finalmente, ampliando más la imagen, es decir, a una escala de tiempo todavía más pequeña, podemos ver el detalle de las transiciones entre procesos o cambio de contexto (podéis ver la figura 1c). Podemos observar que debe aparecer un fragmento de código nuevo para gestionar la interrupción que provoca el cambio. Para hacerlo, se han de llevar a cabo las operaciones siguientes:
- Guardar el estado del procesador tal como lo tenía el proceso P1 en el instante en el que se ha producido la interrupción sobre su PCB.
- Localizar el PCB del proceso P2.
- Restaurar el estado del procesador guardado en el PCB del segundo proceso.
El estado del procesador en un instante concreto está formado por los valores contenidos en cada uno de los registros del lenguaje máquina, por el puntero de pila, por el contador de programa y, en general, por toda la información que configura un proceso. Los valores concretos de este conjunto de registros en un instante de la vida de un proceso se denominan contexto del proceso.
Ver fragmento extraído sin normalizar
1.2. La ejecución concurrente
En la figura 1 podemos ver la ejecución concurrente de un conjunto de pro-
cesos (P1, P2 y P3) sobre un sistema monoprocesador multiprogramado. En
función de la escala de tiempo con la que examinemos la evolución de los
procesos en el sistema podemos tener visiones diferentes sobre ellos.
Figura 1
## Página 10
<!-- source-page: 10 -->
GNUFDL • PID_00214802 10 La gestión de procesos
1) La primera escala de tiempo, que se ve en la figura 1a, corresponde al punto
de vista del usuario. Aquí la ejecución de los tres procesos parece que se efectúa
en paralelo, aparentemente cada proceso utiliza siempre el procesador. Ésta es
la impresión que se da en los sistemas multiusuario: que cada usuario tiene
una buena interactividad con el sistema y que el usuario se encuentra solo
trabajando delante de la máquina. Pero, en realidad, en un sistema que trabaja
en modalidad de tiempo compartido eso no es cierto.
2) Si observamos el comportamiento de los procesos a una escala más pequeña
de tiempo, vemos que hay una multiplexación del procesador en el tiempo
(podéis ver la figura 1 b). Ampliando la figura 1a (haciendo un zoom), podemos
observar que no hay una ejecución real en paralelo de los procesos; sólo uno de
ellos está en ejecución real. Para conseguir el efecto de ejecución concurrente
se realiza una conmutación entre los procesos que se reparten el tiempo del
procesador. Estas conmutaciones se denominan cambiodecontexto.
3) Finalmente, ampliando más la imagen, es decir, a una escala de tiempo to-
davía más pequeña, podemos ver el detalle de las transiciones entre procesos o
cambio de contexto (podéis ver la figura 1c). Podemos observar que debe apa-
recer un fragmento de código nuevo para gestionar la interrupción que provo-
ca el cambio. Para hacerlo, se han de llevar a cabo las operaciones siguientes:
• Guardar el estado del procesador tal como lo tenía el proceso P1 en el
instante en el que se ha producido la interrupción sobre su PCB.
• Localizar el PCB del proceso P2.
• Restaurar el estado del procesador guardado en el PCB del segundo proce-
so.
El estado del procesador en un instante concreto está formado por los valores
contenidos en cada uno de los registros del lenguaje máquina, por el puntero
de pila, por el contador de programa y, en general, por toda la información
que configura un proceso. Los valores concretos de este conjunto de registros
en un instante de la vida de un proceso se denominan contextodelproceso.