Beruflich Dokumente
Kultur Dokumente
Unidad 2:
Procesos
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 1
Contenidos
• Conceptos de proceso. Estados de un proceso. Modelo
de cinco estados de procesos.
• Control de procesos. Modos de ejecución. Creación de
procesos.
• Administración de procesos en Unix/Linux.
• Procesos e hilos.
• Creación y ejecución de procesos. Propuesta de proyecto anual.
Control 1.
• Comunicación entre procesos:
– Concurrencia.
– Exclusión mutua.
– Semáforos.
– Mensajes.
– Taller 2: Comunicación entre procesos. Control 2.
• Clase de recapitulación.
• Clase de recapitulación.
• Prueba de Cátedra 1.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 2
Objetivos y Metodología
• Metodología:
– Clases expositivas mezclando teoría y ejercicios.
Se realizarán talleres en los que el estudiante
deberá programar algoritmos básicos en los que
se utilicen procesos, estados y su comunicación.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 3
Introducción a los Procesos
• Proceso:
– Concepto con mayor relevancia en los Sistemas
Operativos.
– Representan una abstracción de un programa en
ejecución.
– Todos los demás conceptos giran en torno al concepto
de proceso.
• Modelo del proceso:
– Todo el software ejecutable en la computadora, lo que
incluye al Sistema Operativo, se organiza en varios
procesos.
– Un proceso es un programa ejecutándose, con su Contador
de Programa (program counter - PC), registros y variables.
– De manera conceptual, cada proceso tiene su CPU virtual.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 4
Multiprogramación
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 10
Conclusión de un proceso
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 11
Jerarquías de procesos
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 12
Ejemplo de jerarquía
pstree
init-+-6*[agetty] // Proceso especial que se inicia al cargarse el SO
|-events/0
|-fcron
|-httpd---10*[httpd]
|-java
|-khelper
|-klogd
|-ksoftirqd/0
|-kswapd0
|-kthread-+-aio/0
| |-kacpid
| |-kblockd/0
| |-khubd
| |-2*[kjournald]
| |-kpsmoused
| |-kseriod
| |-2*[pdflush]
| `-shpchpd
|-master-+-pickup
| `-qmgr
|-mysqld_safe---mysqld
|-slapd
|-sshd---sshd---bash---pstree
|-syslogd
`-watchdog/0
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 13
Estados de los procesos
• Aunque cada proceso es una entidad independiente,
con su contador de programas y estado interno, es
muy frecuente que necesite interactuar con otros
procesos.
• Según la velocidad de ejecución relativa de ambos
procesos, dada por la relativa complejidad de ambos
programas y por la cantidad de tiempo de CPU que
cada uno de ellos alcance a emplear, puede ocurrir
que alguno de ellos esté listo para ejecutarse pero
que no alcance a disponer de los elementos
necesarios para poderlo hacer, por lo que deberá
bloquearse en espera de que pueda disponer de los
recursos que necesita.
• También es posible que el SO detenga a un proceso
listo para ejecutarse, ya que el algoritmo de
planificación de procesos ha decidido que debe
sustituirle: asignar el procesador a otro proceso.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 14
Estados … (2)
En resumen, los estados posibles para un proceso son:
1. En ejecución (Running): Realmente utiliza la CPU en el instante
actual.
2. Bloqueado (Blocked): No puede ejecutarse hasta que reciba la
señal de que ocurrió el evento externo a él pero que necesita para
disponer de los recursos con que continuar su ejecución.
3. Listo (Ready): Ejecutable. Posee todos los recursos que necesita
para trabajar excepto el procesador. Se detiene temporalmente
para permitir que se ejecute algún otro proceso.
Transiciones posibles:
1. El proceso se bloquea
en espera de recurso.
2. El planificador elige
otro proceso.
3. El planificador elige a
este proceso.
4. El recurso esperado
está disponible.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 15
Estados … (3)
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 17
Modelo con cinco estados
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 18
Transiciones en el Modelo de
cinco estados
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 19
Estado “suspendido”
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 20
Proceso “suspendido” e
intercambio
• Cuando todos los procesos de la memoria principal
están en el estado bloqueado, el sistema operativo
puede suspender un proceso poniéndolo en estado
suspendido y transferirlo a disco.
• El espacio que se libera de la memoria principal
puede utilizarse entonces para traer otro proceso.
• Cuando el sistema operativo haya realizado una
operación de intercambio de un proceso a disco,
tendrá dos opciones para seleccionar el proceso que
se trae a memoria:
– admitir un proceso recién creado o
– traer un proceso suspendido previamente.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 21
Saliendo del estado suspendido
• Puede parecer que la preferencia debe ser traer un proceso
suspendido previamente para darle servicio, en lugar de hacer
crecer la carga total de procesos en el sistema.
• Pero esta línea de razonamiento presenta una dificultad:
– Todos los procesos que fueron suspendidos estaban en el
estado bloqueado en el momento de la suspensión.
– Realmente no haría ningún bien traer de nuevo a memoria
principal un proceso bloqueado porque no está todavía listo
para ejecutarse.
• Sin embargo, cada proceso en estado suspendido fue
bloqueado originalmente por un suceso concreto.
• Cuando se produzca tal suceso, el proceso se desbloqueará y
estará disponible para su ejecución.
• Por tanto, no se necesita volver a pensar sobre este aspecto
del diseño.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 22
Estados necesarios
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 24
Procesos de usuario en
memoria virtual
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 25
Estados y Memoria Virtual (2)
• El uso de la VM parece eliminar la necesidad del
intercambio explicito, ya que cualquier dirección
deseada de cualquier proceso puede ser trasladada
dentro o fuera de la memoria principal por el
hardware de gestión de memoria del procesador.
• Sin embargo, como se estudiará en la unidad 3, el
rendimiento del sistema de VM puede desplomarse si
hay un número suficientemente grande de procesos
activos, todos los cuales están en parte en la
memoria principal.
• Por tanto, incluso en un sistema de VM, el SO
siempre tendrá que expulsar de cuando en cuando
algunos procesos, de forma completa y explicita,
para mejorar el rendimiento.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 26
Diagrama de transición de estados
con dos estados suspendidos
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 27
Nuevas transiciones
1. Bloqueado → Bloqueado y suspendido:
Si no hay procesos Listos, entonces al menos un proceso
Bloqueado se expulsa para dar cabida a otro proceso que
no esté bloqueado.
Esta transición puede hacerse aun cuando hay procesos
listos disponibles, cuando el sistema operativo determina
que el proceso que está actualmente en Ejecución o un
proceso Listo que sería conveniente expedir requiere más
memoria principal para mantener un rendimiento adecuado.
2. Bloqueado y suspendido → Listo y suspendido:
Un proceso en estado Bloqueado y suspendido se pasa al
estado Listo y suspendido cuando ocurre el suceso que
estaba esperando.
Nótese que esto requiere que esté accesible para el sistema
operativo la información relativa a los procesos
suspendidos.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 28
Nuevas transiciones (2)
3. Listo y suspendido → Listo:
Cuando no hay procesos Listos en la memoria principal, el SO tendrá
que traer uno para continuar la ejecución.
Además, puede darse el caso de que un proceso en estado Listo y
suspendido tenga una prioridad mayor que la de un proceso en estado
Listo.
En tal caso, el diseñador del SO puede decidir que es más importante
tomar el proceso de mayor prioridad que minimizar el intercambio.
4. Listo → Listo y suspendido:
Generalmente, el SO prefiere suspender a un proceso Bloqueado en vez
de a uno Listo, ya que el proceso Listo podría ejecutarse de inmediato,
mientras que el proceso Bloqueado estará ocupando espacio en la
memoria principal sin poder ejecutarse.
Sin embargo, puede ser necesario suspender un proceso Listo si ésta es
la única forma de liberar un bloque lo suficientemente grande de
memoria principal.
Por último el SO puede escoger suspender un proceso Listo de más baja
prioridad en lugar de uno Bloqueado que sea de prioridad más alta si
estima que dicho proceso Bloqueado pronto estará listo.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 29
Otras transiciones importantes
5. Nuevo → Listo, Suspendido y Nuevo → Listo:
Cuando se crea un nuevo proceso, se le puede añadir a la
cola de listos o a la de listos y suspendidos.
En ambos casos, el SO necesita construir unas tablas para
poder administrar el proceso y asignarle un espacio de
direcciones.
Podría ser preferible que el SO llevara a cabo estas labores en
un primer momento, de modo que se mantuviera una reserva
grande de procesos que no están bloqueados.
Con esta estrategia sería frecuente el caso de que hubiese
poco espacio en memoria principal para un nuevo proceso; de
ahí el uso de la nueva transición Nuevo → Listo y suspendido.
Por otro lado, puede argumentarse que una filosofía de
creación de los procesos “justo a tiempo”, retrasando la
creación todo lo que se pueda, reducirla la sobrecarga del SO
y le permitirla llevar a cabo las tareas de creación de
procesos en el momento en el que el sistema esté atascado
de todas maneras con procesos Bloqueados.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 30
Otras transiciones … (2)
6. Bloqueado y suspendido → Bloqueado:
La inclusión de esta transición puede parecer resultado de un
mal diseño.
Después de todo: si un proceso no está listo para ejecutarse
y aún no está en memoria principal, ¿cuál es el interés por
traerlo a memoria?
Pero es posible la siguiente situación:
Un proceso termina, liberando memoria principal.
Hay un proceso en la cola de Bloqueados y suspendidos que
tiene una prioridad mayor que la de cualquier proceso de la
cola de Listos y suspendidos, así que el sistema operativo
tiene razones para suponer que pronto ocurrirá el suceso por
el que el proceso está bloqueado.
En estas circunstancias, podría parecer razonable traer un
proceso Bloqueado a memoria antes que un proceso Listo.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 31
Otras transiciones … (3)
7. Ejecución → Listo y suspendido:
Generalmente, un proceso en Ejecución pasa al estado Listo
cuando expira su fracción de tiempo asignado.
Sin embargo, si se está expulsando al proceso porque hay un
proceso de prioridad mayor en la lista de Bloqueados y
suspendidos que se acaba de desbloquear, entonces el SO
podría pasar el proceso en Ejecución directamente a la cola
de Listos y suspendidos, liberando espacio en la memoria
principal.
8. Varios → Terminado:
Normalmente, los procesos terminan mientras están
ejecutándose, bien porque se completaron o bien por causa
de alguna condición drástica de error.
Sin embargo, en algunos sistemas operativos, un proceso
puede ser finalizado por el proceso que lo creó o bien finalizar
cuando termina el proceso padre.
Si se permite esto, un proceso situado en cualquier estado
podrá pasar al estado Terminado.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 32
Otros usos de la suspensión
• Hasta ahora, se ha identificado el concepto de proceso
suspendido con el hecho de que el proceso no está en
memoria principal.
• Un proceso que no esté en memoria no estará disponible de
inmediato para su ejecución, esté o no esperando un suceso.
• Se puede generalizar este concepto de proceso suspendido
definiéndole como aquel proceso que tiene las características
siguientes:
1. Un proceso que está suspendido no está disponible de
inmediato para ejecución.
2. El proceso puede estar esperando o no un suceso. Si lo está,
la condición de bloqueado es independiente de la condición de
suspendido y el hecho de que ocurra el evento por el cuál se
bloqueó no lo habilita para la ejecución.
3. El proceso fue situado en el estado suspendido por un agente
(por si mismo, por el proceso padre o por el sistema
operativo) con el fin de impedir su ejecución.
4. El proceso no puede apartarse de este estado hasta que el
agente lo ordene explícitamente.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 33
Razones para la Suspensión de
procesos
• Intercambio (SWAP): El sistema operativo necesita liberar
suficiente memoria principal para cargar un proceso que está
listo para ejecutarse.
• Otra razón del SO: El sistema operativo puede suspender un
proceso de fondo, de utilidad o cualquier proceso que se
sospecha sea el causante de un problema.
• Solicitud de un usuario: Un usuario puede querer
suspender a ejecución de un programa con fines de
depuración o en conexión con el uso de un recurso.
• Por tiempo: Un proceso puede ejecutarse periódicamente
(por ejemplo, un proceso de contabilidad o de supervisión del
sistema) y puede ser suspendido mientras espera el siguiente
intervalo de tiempo.
• Solicitud del proceso padre: Un proceso padre puede
querer suspender a ejecución de un proceso descendiente
para examinar o modificar el proceso suspendido o para
coordinar la actividad de varios descendientes.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 34
Tablas de control del SO
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 35
Control de procesos
• El bloque de control de proceso es la estructura de datos
central y más importante de un sistema operativo.
• Cada bloque de control de proceso contiene toda la información
de un proceso necesaria para el sistema operativo.
• Los bloques son leídos y/o modificados por casi todos los
módulos de un sistema operativo, incluyendo aquellos que
tienen que ver con la planificación, la asignación de recursos,
el tratamiento de interrupciones y el análisis y supervisión del
rendimiento.
• Puede decirse que el conjunto de los bloques de control de
procesos definen el estado del sistema operativo.
• Esto saca a relucir una cuestión importante de diseño:
– Una serie de rutinas del sistema operativo necesitarán
acceder a la información de los bloques de control de
procesos.
• La provisión de acceso directo a estas tablas no es difícil: Cada
proceso está dotado de un único ID que puede utilizarse como
índice en una tabla de punteros a los bloques de control de
procesos.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 36
Estructuras de colas de
procesos
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 37
Control de procesos (2)
• La dificultad no está en el acceso, sino más bien en la
protección.
• Existen dos problemas:
1. Un error en una sola rutina, como la de tratamiento de
interrupciones, puede dañar los bloques de control de procesos,
lo que destruiría la capacidad del sistema para administrar los
procesos afectados.
2. Un cambio de diseño en la estructura o en la semántica del
bloque de control de procesos podría afectar a varios módulos del
sistema operativo.
• Estos problemas se pueden abordar exigiendo a todas las
rutinas del sistema operativo que pasen a través de una
rutina de manejo, cuya única tarea sería la de proteger los
bloques de control de proceso y que se constituiría en el único
árbitro para leer y escribir en estos bloques.
• La concesión en el empleo de una rutina tal está en el
rendimiento y en el grado con el que pueda confiarse en que
el resto del software del sistema sea correcto.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 38
Modos de ejecución
• La mayoría de los procesadores dan soporte para dos modos
de ejecución por lo menos.
• Ciertas instrucciones pueden ejecutarse solo en modo
privilegiado: la lectura o modificación de registros de control
tales como la palabra de estado del programa, instrucciones
primitivas de E/S e instrucciones relativas a la gestión de
memoria.
• Además, sólo se puede acceder a ciertas regiones de memoria
como la zona de los vectores de interrupción ó a las zonas
que contienen el mapeo de memoria de entrada / salida en el
modo más privilegiado.
• El modo menos privilegiado a menudo se conoce como modo
de usuario, ya que los programas de usuario ejecutan
normalmente en ese modo.
• Al modo más privilegiado normalmente se le conoce como
modo del sistema, modo de control o, modo del núcleo. Este
último término se refiere al núcleo del sistema operativo, que
es la parte del sistema operativo que lleva a cabo las
funciones importantes del sistema.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 39
Modos de ejecución (2)
• La razón por la que se usan dos modos debe quedar clara:
Es necesario proteger al sistema operativo y a las tablas
importantes del mismo, tales como los bloques de control de
procesos, de los posibles accesos de los programas de
usuario.
• En el modo del núcleo, el software tiene control completo del
procesador y de todas sus instrucciones, registros y memoria.
• Este nivel de control no es necesario y, por seguridad,
tampoco conveniente para los programas de usuario.
• Surgen dos preguntas:
– ¿Cómo conoce el procesador en qué modo va a ejecutar?
Normalmente hay un BIT en la palabra de estado del procesador
(program status word - PSW) que indica el modo de ejecución.
Este BIT es cambiado como respuesta a ciertos sucesos. Por
ejemplo, cuando un usuario hace una llamada a un servicio del
sistema operativo, el modo se cambia al de núcleo. Esto se suele
llevar a cabo ejecutando una instrucción que cambia el modo.
– ¿Cómo se cambia de modo? El SO ejecuta una instrucción
privilegiada que lo permite.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 40
Implementación de procesos
• Para implementar el modelo del proceso, el SO necesita
conservar una tabla (arreglo de estructuras) llamada tabla de
procesos, con un elemento (ítem, registro) por proceso.
• Este registro contiene información respecto al estado del
proceso:
– Contador de programa (program counter - PC),
– Apuntador de la pila (stack pointer – SP),
– Distribución de la memoria,
– Condición ó estado de archivos abiertos,
– Información de rendición de cuentas y planificación,
así como cualquier otra información relevante al proceso que
deba guardarse para permitir su cambio del estado listo al
estado ejecución de manera que pueda continuar como si
nunca hubiese sido detenido.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 41
Ejemplo de tabla de procesos
Manejo de procesos Asignación de la memoria Manejo de los archivos
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 42
Cambio de proceso
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 44
Cuándo cambiar … (2)
• En primer lugar, se van a tener en cuenta las interrupciones
del sistema.
• Se pueden distinguir, como hacen muchos sistemas, dos
clases de interrupciones del sistema, una conocida
simplemente como interrupción y otra conocida como trampa.
• La primera es originada por algún tipo de suceso que es
externo e independiente del proceso que está ejecutándose,
como la culminación de una operación de E/S.
• La segunda tiene que ver con una condición de error o de
excepción generada dentro del proceso que está
ejecutándose, como un intento ilegal de acceso a un archivo.
• En una interrupción ordinaria, el control se transfiere
primero a un gestor de interrupciones, quien lleva a cabo
algunas tareas básicas y, después, se salta a una rutina del
sistema operativo que se ocupa del tipo de interrupción que
se ha producido.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 45
La Interrupción
Elemento clave para desarrollar un SO con
multiprogramación.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 46
Manejo de Interrupciones
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 47
Cambios en memoria y
registros
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 48
Interrupciones … (2)
• A partir de este momento, comienza la responsabilidad del
software.
• El procedimiento de manejo de interrupciones debe comenzar
su ejecución guardando todos los registros en la tabla del
proceso corriente. El número de dicho proceso, así como un
puntero a su registro en la tabla de procesos se guardan en
variables globales, de manera que puedan recuperarse
rápidamente.
• Comúnmente, la comunicación entre procesos se realiza
mediante mensajes, por lo que se generará un mensaje al
proceso que espera bloqueado por la ocurrencia del evento
para que cambie su estado a listo.
• Para concluir, el programa de manejo de la interrupción
deberá entregar el control a programa planificador para que
asigne el procesador al proceso que corresponda. En sistemas
operativos de tiempo real, suele ser al proceso listo que tenga
la mayor prioridad.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 49
Esqueleto de las acciones
1. El hardware coloca en la pila al program counter, etc.
2. El hardware carga nuevo program counter tomado del vector
de interrupción.
3. Un procedimiento en lenguaje ensamblador (Assembly
language procedure) salvaguarda los registros.
4. Otro procedimiento en lenguaje ensamblador establece el
nuevo stack.
5. Un programa escrito en C (u otro lenguaje de mayor nivel
que el ensamblador) actúa como servicio de interrupción,
construyendo y enviando mensajes.
6. El código de paso de mensajes señaliza al programa que
espera por este evento que ya ocurrió, colocando como listo
al receptor de dicho mensaje.
7. El Scheduler decide cual proceso deberá ejecutarse a
continuación.
8. El procedimiento escrito en C devuelve el control al
procedimiento escrito en ensamblador.
9. El procedimiento en ensamblador da inicio al proceso que
corresponda actualmente.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 50
Clasificación de interrupciones
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 54
Pasos involucrados en un
cambio completo de proceso
1. Salvar el contexto del procesador, incluyendo el contador de
programa y otros registros.
2. Actualizar el bloque de control del proceso que estaba en estado
de ejecución. Esto implica cambiar el estado del proceso a alguno
de los otros estados: listo, bloqueado, etc. También se tienen que
actualizar otros campos significativos, incluyendo la razón por la
que se abandona el estado de ejecución y la información de
contabilidad.
3. Mover el bloque de control del proceso a la cola apropiada: listos,
bloqueados en espera por el suceso i, etc.
4. Seleccionar otro proceso para ejecución.
5. Actualizar el bloque de control del proceso seleccionado. Esto
incluye cambiar el estado de dicho proceso a ejecución.
6. Actualizar las estructuras de datos de gestión de memoria. Esto
puede hacer falta dependiendo de cómo se gestione la traducción
de direcciones; este tema se analiza en la unidad 3.
7. Restaurar el contexto del procesador a aquel que existía en el
momento en el que el proceso seleccionado dejó por última vez el
estado de ejecución, cargando los valores previos del contador de
programa y de otros registros.
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 55
Fuentes de información
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 57
Referencias en Internet
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 58
Textos en Internet (inglés)
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 59
Registros y banderas de x86
2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy 60