educatica!

educación, informática y demás

Clases de informática, Informática, Sistemas operativos

Gestión de procesos

Un proceso es un programa en ejecución. Como ya sabemos, para que un programa pueda ser ejecutado tiene que estar cargado en memoria principal para que la CPU pueda leer y ejecutar cada una de sus instrucciones.

El sistema operativo es el programa que se encarga de cargar el programa, las instrucciones que lo componen, en memoria principal y ejecutarlo.

En un S.O. monotarea solo tendremos un procveso a la vez en ejecución. Sin embargo, en un sistema operativo multitarea tendremos varios procesos en ejecución a la vez. Esta situación es compleja y tiene que ser gestionada por el S.O.

Cada proceso para ejecutarse necesitará una serie de recursos del sistema. Alguien, el S.O., se tiene que encargar de comprobar si hay recursos disponibles para dicho proceso y reservarlos. Por ejemplo, un proceso necesita una porción de memoria principal para poderse cargar y ser ejecutado por la CPU. Además un proceso puede necesitar acceder a dispositivos de E/S, por ejemplo el teclado, el ratón para recibir información del usuario; la pantalla para mostrar información al usuario; al sistema de ficheros (disco duro, por ejemplo) para guardar información en ficheros, etc.

Para poder gestionar todos los procesos del sistema – un proceso es un programa en ejecución – el S.O. tiene que almacenar cierta información de cada proceso, como especie de ficha. Esta ficha se denomina Bloque de Control del Proceso. Aquí se almacenará la información mínima que necesita el S.O. para gestionar cada proceso.

El sistema operativo crea un nuevo BCP antes de comenzar a ejecutar un programa, en el proceso de carga del programa. El BCP contiene, entre otras, la siguiente información:

  • PID – Identificador de proceso. Se trata de un número que sirve para identificar el proceso.
  • Estado. Estado en el que se encuentra actualmente el proceso.
  • Contexto. El contexto de un proceso es la información necesaria para poder recuperar la ejecución del proceso en cualquier momento. Por ejemplo, se almacena el contenido de los registros de la CPU en el momento en el que un proceso deja la CPU pero todavía no ha terminado su ejecución, por ejemplo porque se ha bloqueado en E/S o porque ha terminado su tiempo de uso de la CPU.
  • Recursos. En el BCP se almacena información de los recursos en uso por el proceso, como ficheros abiertos…
  • Memoria. Direcciones de memoria en uso del proceso.
  • Usuario. Qu´é usuario es el propietario del proceso.
  • etc.

¿Cómo decide el S.O. a qué proceso le cede la CPU para que se pueda ejecutar?. Para ello el S.O. utiliza algún algoritmo de planificación de procesos.

FIFO

Algunos ejemplos..

Otro ejercicio

Deja un comentario

Tema creado por Anders Norén