domingo, 18 de febrero de 2018

Procesos


El concepto central en un sistema operativo es la idea de proceso.
Ojo: un proceso no tiene por qué estar siempre en ejecución. La vida de un proceso pasa por varias fases, incluyendo la ejecución.

Una analogía: receta de un pastel (el programa), ingredientes (los datos), cocinero (la CPU), la mesa de cocina (la memoria), cada pastel (un proceso), el horno (un dispositivo E/S).

¡Nuestro chef puede tener varios pasteles a medio hacer!

Concurrencia: su ejecución parece simultánea pero, en realidad, la CPU salta de uno a otro (como nuestro sufrido cocinero). Es lo que llamamos sistema operativo multitarea.
Mientras ejecuta un proceso, el otro está en espera.
Cuando hay varias CPUs podemos tener ejecución paralela. Pero cada CPU sólo puede ejecutar un proceso a la vez. Normalmente número de procesos > número de CPUs.

Tipos de procesos
Podemos clasificarlos en función de distintos criterios.

Según su diseño:

Reutilizables: se cargan en memoria cada vez que se usan. Los programas de usuario suelen ser de este tipo.
Reentrantes: se carga una sola copia del código en memoria. Cada vez que se usan se crea un nuevo proceso con su zona de datos propia, pero compartiendo el código.


Según su acceso a CPU y recursos:

Apropiativos: acceden a los recursos y sólo los abandonan de forma voluntaria (mediante instrucción CPU).
No apropiativos: permiten a otros procesos apropiarse de los recursos que ahora poseen.

Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.


Estados de los procesos

Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado. Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.


No hay comentarios:

Publicar un comentario