Procesos, hilos y multitarea en sistemas operativos: estados y planificación

Clasificado en Informática

Escrito el en español con un tamaño de 3,14 KB
Actualizado el

Resumen

El documento explica cómo un sistema operativo gestiona los procesos: sus estados (en ejecución, bloqueado y listo), el Bloque de Control de Proceso (PCB) y las colas de planificación. También trata la conmutación de contexto, los hilos (threads) y la diferencia entre multiproceso y multitarea. Es útil para repasar los conceptos básicos de gestión de procesos.

Puntos clave

  • Un proceso puede estar en ejecución, bloqueado o listo, y todos pueden ejecutarse de forma concurrente multiplexando la CPU.
  • El Bloque de Control de Proceso (PCB) almacena la información que varía de un proceso a otro, incluidos los registros de CPU.
  • Los procesos listos para ejecutarse se mantienen en la cola de procesos listos, implementada como lista enlazada; cada dispositivo tiene además su propia cola.
  • La conmutación de contexto es tiempo de gasto extra, porque el sistema no realiza trabajo útil durante ella.
  • Los threads son procesos ligeros que permiten una gestión más eficiente.
  • El multiproceso implica varios procesadores ejecutando tareas a la vez, mientras que la multitarea asigna slots de CPU a cada proceso mediante un planificador.

Resumen generado con IA a partir del documento. Ponte a prueba

Gestión y Ejecución de Procesos

Todos estos procesos pueden ejecutarse de forma concurrente, multiplexando la o las CPU entre ellos. Generalmente, un proceso también incluye la pila, que contiene datos temporales, y una sección de datos que contiene variables globales.

Estados de un Proceso

En general, cada proceso puede estar en uno de los siguientes estados:

  • En ejecución
  • Bloqueado
  • Listo

Bloque de Control de Proceso (PCB)

Cada proceso es gestionado mediante un Bloque de Control de Proceso (PCB, por sus siglas en inglés). El PCB sirve como depósito de cualquier información que pueda variar de un proceso a otro.

Componentes del PCB

Entre la información almacenada destacan los registros de CPU: el número y tipo de estos varía dependiendo de la arquitectura de la computadora. Los registros incluyen acumuladores, registros índice, apuntadores de pila y registros de propósito general.

Planificación y Colas de Procesos

Los procesos que están en la memoria principal y que están listos para ejecutarse se mantienen en una estructura llamada cola de procesos listos (almacenada como una lista enlazada). La cabecera de esta cola contiene apuntadores al primer y al último PCB de la lista. Cada PCB contiene un apuntador hacia el siguiente proceso en la cola. Además, existen otras colas en el sistema, ya que cada dispositivo tiene su propia cola.

Una representación común para estudiar la planificación de procesos es el diagrama de colas. Cada rectángulo representa una cola. Hay dos tipos de colas: la cola de procesos listos y un conjunto de colas de dispositivo. Los círculos representan los recursos que dan servicio a las colas, y las flechas indican el flujo de procesos en el sistema.

Conmutación de Contexto

El tiempo de conmutación de contexto es exclusivamente gasto extra, porque el sistema no realiza trabajo “útil” durante la misma. Esta se ha convertido en un cuello de botella tan importante para el desempeño que se están empleando estructuras nuevas para evitarla hasta donde sea posible.

Hilos (Threads) y Multiprocesamiento

Los procesos ligeros, conocidos como threads, permiten una gestión más eficiente. Por ejemplo, el thread principal y el de gestión de eventos. Casi todas las clases referentes al manejo de threads se encuentran en el paquete java.lang.*. Para crear un thread, se implementa el método run().

Diferencia entre Multiproceso y Multitarea

  • Multiproceso: Significa que el equipo de hardware cuenta con más de un procesador (CPU) y, por tanto, ejecuta varias tareas a la vez.
  • Multitarea: Se consigue mediante un planificador de tareas que va asignando slots de CPU a cada proceso.

Preguntas frecuentes

¿Qué es el Bloque de Control de Proceso (PCB)?

Es la estructura con la que el sistema gestiona cada proceso. Sirve como depósito de la información que puede variar de un proceso a otro, como los registros de CPU.

¿Cuál es la diferencia entre multiproceso y multitarea?

El multiproceso significa que el equipo tiene más de un procesador y ejecuta varias tareas a la vez. La multitarea se consigue con un planificador que asigna slots de CPU a cada proceso.

¿Por qué la conmutación de contexto es un problema?

Porque es tiempo extra en el que el sistema no realiza trabajo útil, y se ha convertido en un cuello de botella para el rendimiento.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Cuáles son los tres estados en los que puede estar un proceso según el texto?
2. ¿Qué información almacena el PCB?
3. ¿Cómo se implementa la cola de procesos listos?
4. ¿Por qué se considera la conmutación de contexto un gasto extra?
5. ¿Qué significa multiproceso según el texto?
6. ¿Qué componente se encarga de asignar slots de CPU en la multitarea?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.