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
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.