Fundamentos de Procesos y Multitarea en Sistemas Operativos
Clasificado en Informática
Escrito el en
español con un tamaño de 3,14 KB
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.