Un proceso es un concepto manejado por el sistema
operativo y que referencia un programa en ejecución.
Cuando se
ejecuta más de un proceso de forma concurrente en un sistema, todos necesitan
que el propio sistema les suministre una serie de recursos. Para ello, el
sistema operativo, gracias a la UCP, se encarga de asignar estos
recursos en un orden adecuado y atendiendo a unas prioridades. También realiza
funciones de sincronización de todos los procesos, para que se ejecuten en el
orden adecuado y según la prioridad decidida.
Esta
estructura de datos, que es única para cada proceso, identifica el proceso respecto
de los demás y sirve para controlar su correcta ejecución. Es lo que se llama
el bloque de control del proceso o BCP, y contendrá para cada
proceso la siguiente información: estado actual del proceso, identificador del
proceso, prioridad del proceso, ubicación en memoria y recursos
utilizados.
Una hebra es un punto de ejecución
de un proceso. Un proceso tendrá siempre una hebra, en la que corre el propio
programa, pero puede tener más hebras.
Un
proceso clásico será aquel que solo posea una hebra.
Una hebra o hilo es un
subproceso de un proceso que consume recursos propios pero que depende del
proceso padre que lo ha ejecutado.
Hoy en
día existen gran cantidad de programas diseñados en multihilo o multihebra. De
esta forma, si un programa puede realizar varias cosas, como analizar el
registro del equipo, desfragmentar el disco duro y realizar copias de
seguridad, todas ellas se podrán ejecutar a la vez. En programas
convencionales, solamente se podría ejecutar una tras otra, pero no todas a la
vez.
Básicamente los estados posibles
de un proceso, son los siguientes:
ü En ejecución: El
procesador está ejecutando instrucciones del programa que lo compone y tiene
concedido el tiempo de uso de la UCP en un instante concreto.
ü
Preparado
en espera o activo: Un proceso está preparado para ser ejecutado; es decir, está
esperando turno para poder utilizar su intervalo de tiempo y poner en
funcionamiento sus instrucciones accediendo a los recursos del sistema.
ü Bloqueado. El proceso está retenido;
es decir, está bloqueado debido a causas múltiples.
Un programa se convierte en proceso cuando se
ejecuta y reside completamente en memoria RAM
Toda la información de un proceso que el sistema operativo necesita para controlarlo
se mantiene en una estructura de datos vista anteriormente: el bloque de control de procesos o BCP. En sistemas operativos
multiproceso, el sistema operativo mantiene listas de bloques de control de
procesos para cada uno de los estados del sistema.
El BCP de cada proceso almacena
información como:
ü Estado actual del proceso. Ejecución, preparado o
bloqueado.
ü Identificador del proceso.
Dependiendo del sistema operativo, a cada proceso se le asigna un
PID.
ü Prioridad del proceso. La asignada
por el planificador.
ü Ubicación en memoria. Dirección de
memoria en la que se carga el proceso.
ü Recursos utilizados. Recursos hardware y software para poder
ejecutarse.
Gracias a los algoritmos de planificación, el
cargador, planificador, BCP, recursos hardware y software se sincronizan
mediante el sistema operativo para la ejecución ordenada de los procesos.
Sabemos que el ordenador cuenta con la
memoria central o principal, pero esta es limitada y, en grandes sistemas,
insuficiente.
Al principio, para ubicar los procesos en memoria y solucionar este
problema, se adoptaron técnicas tales como dividir el programa en partes
denominadas capas.
Al principio, en los sistemas
operativos monousuario y monoproceso,
la gestión de memoria era muy sencilla.
Las memorias tenían poca capacidad y solo se reservaba una parte
de ellas para el sistema operativo.
La parte del sistema operativo que administra la memoria es el administrador de memoria. Su labor es
clara: llevar un registro de las partes de memoria que se están utilizando y de
las que no.
Para gestionar la memoria en sistemas operativos multitarea, esta se divide
en particiones fijas. Así, el sistema operativo dispone de una cola de los
procesos que solicitan entrar en memoria. El planificador tiene en cuenta los requerimientos de memoria de cada
uno de los procesos y las particiones de memoria disponibles. Estos
requerimientos de uso de memoria se almacenan en el BCP (Bloque de control de
procesos)
El swapping es una técnica similar a la de memoria
virtual. Cuando varios usuarios están ejecutando procesos en un mismo
ordenador, este se ve obligado a cargarlos en RAM. Según el estado en el que se
encuentre el proceso de cada usuario, la memoria se irá liberando de su proceso
y pasará a la zona de swap mediante
la técnica que se llama swap-out. De esta forma, la memoria
interna queda liberada para que en ella se pueda almacenar otro proceso del
mismo usuario o de otro.
Programas reubicables, reentrantes, residentes y reutilizables
Reubicables: Son aquellos que, una vez cargados en RAM
para ejecutarse, pueden variar de situación, ya que la parte de RAM que ocupan
puede ser necesaria para ubicar otro proceso. Estos procesos o programas
cambian de posición cuando se está realizando una operación sobre el ordenador.
Reentrantes: Aquellos programas que, si no se están
ejecutando, dejan la memoria libre para otros procesos.
Residentes: Son aquellos que, una vez cargados en
memoria, permanecerán en ella hasta que se apague el ordenador. No cambian su
ubicación en ningún momento. Suelen ser programas de antivirus, de análisis de
sistema, de monitorización, etc
Reutilizables: Son programas que normalmente
son utilizados por varios usuarios a la vez en memoria, independientemente del
número de usuarios que los vayan a utilizar. Con ello se consigue un mejor
aprovechamiento de la memoria.
Cuando trabajamos con sistemas operativos multiusuario, la gestión de datos
que se hace dentro del ordenador y su ubicación en memoria y en los soportes de
almacenamiento externo, pueden plantear algunos problemas.
En general, los tipos de archivos que
gestiona todo sistema operativo son tres:
ü Archivos regulares o estándares. Son los que contienen información del usuario, programas, documentos,
texto, gráficos, etc.
ü Directorios. Son archivos que contienen referencias a otros archivos regulares o
a otros directorios.
Archivos especiales. Los que no son de ninguno de los dos tipos anteriores.