Gestión de Memoria y Ciclo de Vida de los Procesos en Sistemas Operativos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,41 KB

Paginación

La paginación es una técnica de gestión de memoria en la que se divide toda la memoria principal en marcos de página. Todos los marcos de página tienen el mismo tamaño. Los datos con los que se trabaja están agrupados en páginas; cuando se necesita una página, esta se puede cargar en cualquier marco de página que esté disponible.

Procesos

De forma intuitiva, podemos considerar que un proceso es un programa en ejecución. Si en un sistema informático se están ejecutando tres programas diferentes (un navegador, un compilador y un editor), mientras dure su ejecución, existirá un proceso por cada programa. Un sistema operativo multitarea intenta dedicar atención a todos los procesos para que su ejecución avance en paralelo, aunque sea de un modo aparente.

Gestión Combinada: Segmentación y Paginación

En algunos sistemas operativos (SO) se utiliza una gestión combinada con segmentación y paginación. Se emplea la segmentación para definir áreas de memoria específicas para los procesos.

Estados y Modos de Ejecución de los Procesos

1. Ejecución en Modo Usuario

El proceso está siendo ejecutado por una CPU. En un momento dado, solo puede haber tantos procesos en ejecución como CPUs físicas tenga la máquina. Además, la CPU está funcionando en modo usuario, es decir, está ejecutando código del espacio de usuario. Si el código está mal escrito y se produce un error, la aplicación terminará.

2. Ejecución en Modo Núcleo

El proceso está siendo ejecutado por una CPU que funciona en modo núcleo (o modo supervisor). Solo el kernel del SO se ejecuta en este modo. Cuando una CPU funciona en modo núcleo, permite realizar operaciones que están prohibidas en modo usuario, permitiendo que el núcleo del sistema operativo controle todo el sistema informático. Si el código está mal escrito y se produce un error, probablemente todo el sistema se detenga.

3. Listo para Ejecutar y en Memoria

Un proceso está listo para ejecutar cuando está disponible para ser asignado a alguna CPU. Además, este proceso se encuentra cargado en la memoria principal, de manera que puede ser ejecutado en cuanto quede una CPU disponible.

4. Dormido y en Memoria

Un proceso dormido está esperando que ocurra un determinado suceso: la llegada de una señal de algún otro proceso, la completitud de una operación de entrada/salida o el transcurso de un tiempo determinado. Es decir, de momento no precisa la atención de ninguna CPU. No obstante, el proceso permanece cargado en la memoria principal.

5. Listo para Ejecutar y Descargado

Un proceso que esperaba un suceso ya está preparado para ejecutarse, pero aún necesita ser cargado en la memoria principal (mediante técnicas de swapping) antes de que pueda ser planificado en alguna CPU.

6. Dormido y Descargado

El proceso no necesita la atención de ninguna CPU porque está esperando algún suceso externo, y el planificador del SO ha decidido descargarlo de la memoria principal al disco para que la memoria liberada pueda agilizar el funcionamiento de otros procesos.

7. Expulsado

Básicamente, es un proceso que abandona la ejecución en modo núcleo antes de ser planificado para la ejecución en modo usuario. A efectos de planificación, aquellos procesos que están en estado expulsado y los que están listos para ejecutar y en memoria forman una sola cola.

8. Creado

Un nuevo proceso puede pasar al estado de listo para ejecutar y en memoria o bien al de listo para ejecutar y descargado, en función de la disponibilidad de memoria en el sistema.

9. Zombie

Cuando un proceso termina, el SO libera todos los recursos que tenía asociados, excepto la estructura de control que guarda los datos del proceso, esperando a que el proceso padre la recoja. Si un proceso termina y el proceso padre no recoge estos datos, el proceso se queda en estado zombie. En un sistema que funciona correctamente, no debería haber procesos en este estado durante un tiempo prolongado.

Entradas relacionadas: