Está en la página 1de 15

Procesos

Procesos

Video conceptual

Referencias

Descarga en PDF
LECCIÓN 1 de 4

Procesos

Procesos

Funcionamiento

En un ambiente de multiprogramación, múltiples programas se encuentran


simultáneamente en ejecución y, recordemos, cada uno de ellos tendrá un
proceso activo que guarda información vital para su funcionamiento, como,
por ejemplo, el valor del registro Program Counter. Cada proceso tendrá su
propia información y, al momento de ejecución de cada proceso, el sistema
operativo deberá copiar toda la información en los registros del procesador,
los cuales son compartidos por todos los procesos.

Creación y terminación de procesos

Un proceso se crea cuando el sistema arranca; cuando el sistema utiliza una


system call para crear un proceso; cuando es el usuario el que llama a la
creación; o cuando se inicia un trabajo por lotes.

Aquí se puede diferenciar entre procesos en primer plano (por ejemplo,


cuando un procesador de textos modifica la fuente a pedido del usuario), y
procesos secundarios, que no tienen una función específica para el usuario.

Por ejemplo, un servidor de contenidos tiene un proceso secundario que


espera que un usuario elija un video de la base de datos para luego
comenzar a enviar los datos.

Un programa puede terminarse por diversas causas, voluntarias o


involuntarias.

Salida normal (voluntaria): cuando, por ejemplo, un programa es


cerrado por el usuario.

Salida por error (voluntaria): debido a errores, como la inexistencia


de archivos.

Error fatal (involuntario): en este caso, hay un error en el código del


programa.

Eliminación por otro proceso (involuntaria): se realiza mediante una


llamada al sistema que elimina el proceso. En el caso de Windows,
dentro de la pestaña Procesos del Administrador de Tareas, se
selecciona el proceso y se utiliza la opción “Finalizar tarea”.

Estados de un proceso
El esquema más simple para entender los estados de un proceso consiste,
como se observa en la Figura 1, en un diagrama de dos estados.

Ejecutándose: luego de que el proceso es creado y se encuentra en


un estado de no ejecución, el sistema operativo decide que debe
ejecutarse y, por ende, pasa a este estado.

No ejecutándose: todos los procesos recién creados, o que se


detienen, están en este estado, a la espera de ser seleccionados
por el sistema operativo para que empiecen a ejecutarse.

Figura 1: Diagrama de dos estados

Fuente: Stallings, 2005, p. 114.

Este esquema, si bien es muy simple, trae algunos inconvenientes. Si


suponemos que un proceso está en ejecución y muchos otros aguardan en
una cola de espera, entonces todos deberán esperar una cierta cantidad de
tiempo antes de que llegue su turno.
El problema es que no todos los procesos pueden esperar la misma cantidad
de tiempo. Además, puede haber un proceso al que, cuando le llegue su
turno, no tenga nada que hacer. En ese caso, se desperdicia tiempo del
procesador debido a una implementación ineficiente de este.

Para mejorar la situación, el estado No Ejecutando se divide en dos:

listo: el proceso está preparado para ser ejecutado;

bloqueado: el proceso necesita que suceda algo más (por ejemplo,


que arribe algún tipo de dato) antes de estar listo para ser
ejecutado.

Además, se agregan los estados Nuevo y Saliente. Un nuevo proceso todavía


no fue cargado en la memoria principal, por lo que no está listo para ser
ejecutado. Recuerda que, para que el procesador ejecute instrucciones,
estas deben estar en la memoria principal. Puede darse el caso de que el
sistema operativo decida no aceptar más procesos por cuestiones de
rendimiento. Entonces, mantendrá los nuevos procesos en estado Nuevo y
esperará a que otros procesos en estado Listos finalicen.

Un proceso saliente es aquel que fue detenido o tiene algún problema, por lo
que el sistema operativo lo saca de la lista de procesos que pueden
ejecutarse.
En la Figura 2 se observa el nuevo diagrama de cinco estados, en el que las
transiciones se simbolizan con flechas. Algunas de estas transiciones son las
siguientes.

Listo −> Ejecutando: el denominado Planificador del sistema


operativo selecciona alguno de los procesos que están en estado
Listo para su ejecución.

Ejecutando −> Listo: en un ambiente de multiprogramación, un


proceso no puede monopolizar el uso del procesador y ejecutar
permanentemente. El procesador determina si un proceso llegó al
límite de su tiempo y, en ese caso, frena la ejecución para darle
lugar a otro proceso. También puede darse que un proceso que se
encuentra bloqueado pase a estado Listo, y su prioridad sea mayor
a la de un proceso en ejecución. En ese caso, a pesar de que el
proceso en ejecución no expiró su tiempo asignado, será expulsado
por el sistema operativo para que se ejecute el proceso de mayor
prioridad. El manejo de prioridades es muy importante para el
sistema operativo.

Figura 2: Diagrama de cinco estados


Fuente: Stallings, 2005, p. 117.

Para aprender sobre las demás transiciones, consulta el capítulo 3 del libro
de Stallings.

Nuevo estado: Suspendido

Dado que la velocidad de un procesador de computadora es muchísimo


mayor que la de los dispositivos de entrada/salida, el procesador puede estar
la mayor parte del tiempo en espera, a pesar de que haya muchos procesos
ejecutándose en la memoria principal. Se puede pensar en agrandar la
memoria principal, para que el número de procesos sea tan grande que el
tiempo perdido en espera por el procesador se reduzca considerablemente.
Pero esto tiene dos inconvenientes: primero, que el costo de las
computadoras subiría notablemente; y segundo, que los procesos cada vez
consumen más memoria principal.
¿Qué sucede si parte de un proceso, o todo ese proceso, cambia de ubicación
y pasa a estar en un disco magnético en lugar de la RAM? Este mecanismo
se denomina swapping o intercambio. El sistema operativo mueve procesos
bloqueados desde la memoria principal al disco, en una cola denominada
Suspendidos. Como ahora hay más lugar en la RAM, el sistema operativo
puede aceptar un nuevo proceso o traer uno que se encuentre en disco
(Suspendido), y así aumentar el rendimiento, al disponer el procesador de
procesos en estado Listo.

Todos los procesos que se encuentren en el nuevo estado Suspendido,


previamente estaban en el estado Bloqueado. En cambio, si un proceso está
Suspendido, puede ser que todavía esté esperando otra acción para poder
ser ejecutado, o que esa acción ya haya sido realizada y el proceso esté
realmente listo para ejecutarse. Surgen entonces dos nuevos estados.

Bloqueado/Suspendido: el proceso se encuentra en


almacenamiento secundario y no está listo para ejecutarse, es
decir, espera por otro evento. En este estado, es conveniente que
siga en almacenamiento secundario.

Listo/Suspendido: el proceso también está en almacenamiento


secundario, pero a diferencia del anterior, ya está listo para
ejecutarse. No lo puede hacer porque no se encuentra en la
memoria principal.

Figura 3: Diagrama con estados suspendidos


Fuente: Stallings, 2005, p. 123.

En la Figura 3 se observa el nuevo diagrama, que incluye los dos nuevos


estados. Con estos dos nuevos estados surgen nuevas transiciones, por
ejemplo, las siguientes.

Listo/Suspendido -> Listo: un proceso que está en almacenamiento


secundario puede pasar a almacenamiento principal cuando el
sistema operativo lo decide. Esta decisión puede basarse en la
mayor prioridad del proceso que está en almacenamiento
secundario, o en el espacio que hay disponible en la memoria
principal para nuevos procesos.

Nuevo -> Listo/Suspendido. Esta transición evita que la memoria


principal colapse con nuevos procesos que, luego de ser creados,
ya están listos para ser ejecutados. Se utiliza un esquema más
conservador, según el cual los nuevos procesos van a
almacenamiento secundario hasta que el sistema operativo defina
si pueden pasar a la memoria principal.

Estudia todas las transiciones posibles en el capítulo 3 del libro de Stallings.

Tablas de procesos

El sistema operativo de una computadora mantiene diferentes tablas para


control: de memoria, de archivos, de entrada/salida y de procesos. No
obstante, estas tablas no están aisladas, sino que hay referencias entre
ellas. Por ejemplo, cuando se lee un archivo, este se encuentra en un disco
accesible mediante un dispositivo de entrada/salida.

En la tabla de procesos, cada proceso es una entrada, comúnmente


denominada bloque de control de proceso (BCP). Aquí es donde se guarda la
información relacionada al proceso (como, por ejemplo, el estado del registro
Program Counter), y se especifica cuál es la memoria que el proceso tiene
asignada, cuál es el estado de los archivos que este proceso tiene abiertos, o
si el proceso se encuentra bloqueado o suspendido.

Consulta la tabla 3.5 del libro de Stallings para conocer toda la información
que es almacenada en el BCP.
Transición de procesos

Una vez que un programa ha entrado en estado de ejecución y se haya


convertido en proceso, puede atravesar varias fases o estados hasta que
finaliza.

Cuando un proceso comienza, nunca se ejecuta directamente, sino que se


coloca en una “cola de procesos” en un estado denominado “Preparado”.
Cuando se le asigna su tiempo de ejecución, pasa al estado de “en
ejecución”.

Estos dos estados se alternan, en caso que haya varios procesos en


ejecución.

Los cambios de estados de los procesos se denominan “transiciones” y hay


varios tipos.

Transición “A”: ocurre cuando el programa que está en ejecución


necesita algún elemento para continuar ejecutándose (un dato, una
señal, etcétera).

Transición “B”: ocurre cuando el programa en ejecución ha


utilizado el tiempo asignado por el procesador y tiene que dejar
paso al siguiente proceso.
Transición “C”: el proceso que se encontraba “preparado” pasa al
estado de “en ejecución”, es decir, cuando le llega una nueva
disposición de tiempo para poder ejecutarse.

Transición “D”: es cuando el proceso pasa de estar “Bloqueado” a


estar “Preparado”. En esta transición, el proceso recibe una señal
que estaba esperando para pasar al estado de preparado y
posterior ejecución.

En los sistemas multiproceso, cuando un proceso o hilo pasa de un estado a


otro, lo que se produce se denomina “cambio de contexto”.

El cambio de contexto puede ser parcial (si se realiza entre hilos del mismo
proceso) o completo (entre hilos de diferentes procesos) ya que el cambio
afectará a memoria, hardware, archivos, etcétera.

C O NT I NU A R
LECCIÓN 2 de 4

Video conceptual

Los procesos

Verify to continue
We detected a high number of errors from your
connection. To continue, please confirm that
you’re a human (and not a spambot).

I'm not a robot


reCAPTCHA
Privacy - Terms

C O NT I NU A R
LECCIÓN 3 de 4

Referencias

Stallings, W. (2005). Sistemas Operativos. España: Pearson Education.


LECCIÓN 4 de 4

Descarga en PDF

Módulo 2 - Lectura 1.pdf


403.8 KB

También podría gustarte