Está en la página 1de 17

PROCESOS

Sistemas Operativos
ASPECTOS BÁSICOS DE LOS PROCESOS
Definición: Un programa ejecutable es un conjunto de
instrucciones y datos almacenados en un fichero. Cuando lo que
tiene ese programa se carga en la memoria y se pone en
ejecución, se convierte en un proceso.

Definición técnica: un proceso es una entidad formada por los


siguientes elementos principales:
• Una imagen binaria de un programa, cargada total o
parcialmente en la memoria física.
• La imagen binaria está formada por las instrucciones y datos
del programa.
• Un área de memoria para almacenar datos temporales,
conocida como pila.
La imagen binaria y la pila son el programa en si mismo, pero para que
el SO pueda controlar el
programa hacen falta una serie de estructuras de datos. Las
estructuras fundamentales son:

• La tabla de páginas para traducir las direcciones virtuales generadas


por el
• proceso en las direcciones físicas en la que se encuentra
almacenado.
• Una estructura de control, conocida como PCB, para que el sistema
operativo
• pueda controlar su ejecución.
ESTADOS DE UN PROCESO
Nuevo El proceso se acaba de crear esta siendo creado, pero aún no ha
sido admitido en el grupo de procesos ejecutables por el sistema
operativo
Listo Esta pronto para ejecdutat esperando por la cpu
El proceso está esperando ser asignado al procesador para su
ejecución. Una CPU clásica (con un solo núcleo) solo se puede
dedicar en cada momento a un proceso
Se esta ejecutando
Ejecución El proceso tiene la CPU y ésta ejecuta sus instrucciones. · En
espera: El proceso está esperando a que ocurra algún suceso,
como por ejemplo la terminación de una operación de E/S.

Esperando se cumpla algún otro evento


Esperar
El proceso no puede ser ejecutado hasta que no se produzca
cierto suceso. Como la terminación de una operación de E/S.

Terminar El proceso ha sido sacado del grupo de procesos ejecutables por


el sistema operativo.
PROCESOS DE DOS (2) ESTADOS
• Concurrencia es la existencia de varias
actividades ejecutándose simultáneamente
sin importar el numero de procesadores
conectado
DOS ESTADOS DIFERENTES
1. No ejecución: Está esperando la disponibilidad de una CPU o bien
no necesita la atención de ninguna CPU porque está esperando algún
suceso (por ejemplo una operación de entrada/salida).
2. Ejecución: El proceso se está ejecutando en alguna CPU.
• Mientras que en el estado de no ejecución puede haber varios
procesos, en el estado de ejecución sólo habrá un proceso por cada
CPU instalada (normalmente una).

En este modelo pueden ocurrir las siguientes transiciones de estado:


Entrar
• Un proceso nuevo, recién creado, pasa al estado de no ejecución. Y
muy probablemente esté preparado para ejecutar tan pronto como
haya una CPU disponible.
DOS ESTADOS DIFERENTES
• Expedir/Planificar
• Cuando hay una CPU disponible el SO toma uno de los procesos que
están esperando en no ejecución y lo pasa al estado de ejecución.
• Interrumpir
• Un proceso que está en ejecución pasa a no ejecución. Las razones
para esta transición son múltiples: el proceso ha estado en ejecución
durante un tiempo máximo, algún proceso de mayor prioridad
demanda la CPU, el proceso decide pasar voluntariamente a no
ejecución, el proceso inicia una operación de entrada/salida.
• Salir
• El proceso termina y deja de existir
MODELO CON ESTADO LISTO Y BLOQUEADO

• Un modelo más detallado puede incluir 5


estados.

Por: Inside the Linux scheduler


Las novedades frente al modelo anterior
son:
1.Cuando se crea un nuevo proceso, este debe ser admitido
por el SO. El SO puede rehusar pasar el nuevo proceso al
estado de listo al proceso si no cuenta con suficientes recursos.
2.El anterior estado de no ejecución se divide en listo y
bloqueado. De esta manera se distingue entre aquellos
procesos que no se están ejecutando porque no hay una CPU
disponible (estado listo) y los que están esperando que ocurra
algún suceso (estado bloqueado).
3.Cuando un proceso completa su ejecución el SO libera sus
recursos y posiblemente realiza algunas operaciones contables
como tomar nota de los recursos que utilizó. En algunos
sistemas se paga por el tiempo de CPU consumido.
MODELO DE ESTADOS DE UNIX

Por: Inside the Linux scheduler


EL SIGNIFICADO DE LOS ESTADOS EN UNIX
1-Ejecución modo usuario
•El proceso está siendo ejecutado por una CPU. En un momento dado sólo
puede haber tantos procesos en ejecución como CPUs físicas tenga la
máquina. Además la CPU está funcionando en modo usuario, es decir que
está ejecutando código del espacio de usuario. Si el código está mal escrito y
se produce un error, la aplicación terminará.

2 - Ejecución modo núcleo


•El proceso está siendo ejecutado por una CPU, y la CPU está funcionando en
modo núcleo. Sólo el kernel del SO se ejecuta en modo núcleo. Cuando una
CPU funciona en modo núcleo o modo supervisor, permite realizar algunas
operaciones que están prohibidas en modo usuario. De esta manera el
núcleo del sistema operativo puede controlar todo el sistema informático. Si
el código está mal escrito y se produce un error probablemente todo el
sistema se detenga.
3 - Listo para ejecutar y en memoria
• Un proceso está listo para ejecutar cuando está disponible para
ejecutar en cuanto sea asignado a alguna CPU. Además este
proceso está cargado en memoria principal, de manera que
puede ser ejecutado en cuanto quede una CPU disponible.
4 - Dormido y en memoria
• Un proceso dormido está esperando que ocurra determinado
suceso: le llegue una señal de algún otro proceso, se complete
una operación de entrada/salida, transcurra determinado
tiempo... Es decir, de momento no precisa la atención de ninguna
CPU. Además, el proceso está cargado en memoria principal.
5 - Listo para ejecutar y descargado
• Un proceso que estaba ocurriendo determinado suceso ya
está preparado para ejecutarse, pero aún necesita ser
cargado en memoria principal antes de que pueda ser
planificado en alguna CPU.
6 - Dormido y descargado
• El proceso no necesita la atención de ninguna CPU porque
está esperando algún suceso externo, y el planificador del SO
ha decidido descargarlo de la memoria principal (a disco)
para que la memoria principal liberada pueda agilizar el
funcionamiento de otros procesos.
EL SIGNIFICADO DE LOS ESTADOS EN UNIX

7 - Expulsado
• Básicamente es un proceso que abandona la ejecución en
modo núcleo antes de ser planificado para la ejecución en
modo usuario. A efectos de planificación aquellos procesos
que están en expulsado y los que están en listo para ejecutar
y en memoria forman una sola cola.

8 - Creado
• Un nuevo proceso puede pasar al estado de listo para
ejecutar y en memoria o bien al de listo para ejecutar y
descargado en función de la memoria disponible.
9 - Zombie
• Cuando un proceso termina, el SO libera todos los
recursos que tenía asociados excepto la estructura de
control que guarda los datos del proceso PCB(código de
retorno, tiempo de ejecución...) esperando a que el
proceso padre la recoja. Si un proceso termina y el
proceso padre no recoge estos datos, el proceso que ha
terminado se queda en el estado zombie. En un sistema
que funciona correctamente no debería haber procesos
en este estado durante un tiempo prolongado.
ESTADOS DE UN PROCESO EN LINUX

También podría gustarte