Proceso
Un proceso es una unidad de procesamiento gestionada por el sistema operativo (es un programa en ejecución)
El sistema operativo implementa una colección de máquinas abstractas
Cada máquina es una simulación del hardware de von Neumann subyacente
El gestor de procesos crea el entorno en el que coexisten varios procesos. Cada uno se ejecuta en su propia máquina abstracta como multitarea
Un recurso es cualquier elemento de la máquina abstracta que puede ser solicitado por un proceso
Un proceso solicita un recurso realizando una llamada al sistema, lo que puede producir que se bloquee si no está disponible
La reserva del recurso produce que el recurso forme parte de la configuración de la máquina abstracta del proceso
Ejemplos de recursos: procesador, memoria principal, dispositivos E/S, archivos
Tablas del sistema operativo
El sistema operativo mantiene tablas que describen a los procesos y a los recursos del sistema:
- Tablas de procesos: tablas de BCPs
- Tablas de memoria: información sobre el uso de la memoria
- Tablas de E/S: información asociada a los periféricos y a las operaciones de E/S
- Tablas de archivos: información sobre los ficheros abiertos
Imagen de memoria del proceso
Un espacio de direcciones del proceso es el conjunto de direcciones lógicas que puede direccionar
En ordenadores de 32 bits el máximo es de 4 GB
En ordenadores de 64 bits el máximo es de 128 GB, sin embargo, en la actualidad no hay placas que admitan memorias tan grandes
La imagen de memoria del proceso es el bloque de memoria física asignada al proceso
El espacio de direcciones del proceso se encuentra limitado al bloque de direcciones físicas correspondientes
El espacio de direcciones es importante para la protección de los recursos frente a los accesos no autorizados
Estado del procesador
Cuando está ejecutándose, el estado del procesador reside en los registros del procesador:
- Registros generales
- Contador de programa (PC)
- Puntero de pila (SP)
- Registros de estado
- Registros especiales
Cuando no ejecuta, su estado del procesador reside en el BCP
Cambio de contexto
Cuando se produce una interrupción:
- Se salva el estado del procesador en el correspondiente BCP
- Se pasa a ejecutar la rutina de tratamiento de interrupción del sistema operativo
Planificador o scheduler:
- Módulo del sistema operativo que selecciona el siguiente proceso a ejecutar
Activador o dispatcher:
- Módulo del sistema operativo que pone en ejecución el proceso seleccionado
Bloque de control de proceso (BCP)
Información de identificación de proceso
- ID del proceso y del padre (pid, ppid)
- ID del usuario real y efectivo (uid, euid)
- ID del grupo real y efectivo (gid, egid)
Información del estado del procesador
Información de control del proceso
- Información de planificación y de estado
- Descripción del espacio de direcciones
- Recursos asignados (ficheros abiertos, puertos, …)
- Comunicación entre procesos
- Punteros para estructurar los procesos en listas o colas