Algunas definiciones
”Es un conjunto de actividades que transforma una entrada en una salida y que consume recursos. También se lo puede definir como un programa en ejecución con derechos restringidos."
"Un proceso es la ejecución de un programa de aplicación con derechos restringidos; el proceso es la abstracción que provee el kernel del sistema operativo para la ejecución protegida"
"Es simplemente un programa que se está ejecutando en un instante dado”
Un proceso incluye
- Los archivos abiertos
- Las señales pendientes
- Datos internos del kernel
- El estado completo del procesador
- Un espacio de direcciones de memoria
- Uno o más hijos de ejecución
API’s
Las acciones básicas que todo SO debe proveer sobre la abstracción de la CPU
- Creación (Create):
- Todo sistema operativo debe incluir una forma de crear un nuevo proceso
- Destrucción (Destroy):
- Así como existe una interface para crear un proceso debe existir una interface para destruirlo por la fuerza
- Espera (Wait):
- A veces es útil esperar a que un proceso termine su ejecución por ende algún tipo de interface de esperar debe ser provista
- Control vario (Miscellaneous Control):
- Además de esperar o matar a un proceso, otros tipos de operaciones deben poder realizarse. Por ejemplo, suspender su ejecución por un tiempo y luego reanudarla
- Estado (Status):
- Tiene que existir una forma de saber sobre la situación del proceso y su estado. Cuánto hace que se está ejecutando, en que estado se encuentra, etc.
Contexto de un proceso
Definición
Cada proceso tiene un contexto bien definido que comprende la información necesaria para describir completamente al mismo. El contexto de un proceso consiste de
- User Address Space:
- Control Information:
- El Kernel utiliza dos estructuras principales para mantener información de control de un proceso, la User Area y la Estructura Proc. Cada proceso además tiene su propio kernel stack y mapas de traducción de direcciones
- Credentials:
- Las credenciales del proceso incluyen los groups IDs y user id, asociados con el
- Variables de entorno:
- Son un conjunto de strings del formato
clave = valor
que son heredadas del proceso padre- Hardware context:
En forma resumida, el contexto de un proceso consiste en la unión de user-level context register context y system level context.
Link to original