Zusammenfassung der Ressource
Procesos en Linux.
- Se puede definir como un programa en ejecución.
- Un proceso es un ente dinámico.
- Cambia su estado
continuamente, según
sus necesidades.
- Su creación se da con la llamada al sistema fork()
- Todos los procesos derivan de un único proceso padre, que el sistema lanzó en su inicialización.
- Un programa es un ente estático.
- Es la unidad de trabajo del sistema en un
momento dado.
- Implementa multiprogramación y
técnicas de tiempo compartido
- task_struct: almacena toda
información relacionada al proceso
- task_interrumpible: el
proceso está esperando por
la llegada de una señal.
- task_running: el proceso
se encuentra activo.
- task_ininterrumpible: el proceso
espera por recursos hardware.
- task_zombie: el proceso termina, pero
no se elimina de la tabla de control.
- Varias task_struct conforman la tabla
de control de procesos.
- state: estado actual del proceso.
- policy: prioridad del proceso.
- mm: contiene información sobre la memoria vitrual de cada proces.
- Planificación.
- Cómo se reparte el tiempo de
procesador entre distintas tareas.
- Determina el siguiente
proceso a tomar por la CPU.
- Procesos ordinarios.
- Procesos de tiempo real
(ejecutados primero).
- Rutina goodness: determina la
política de planificación.
- A mayor valor devuelto, mayor prioridad.
- schedule: define el mecanismo de planificación.
- Identificadores de proceso.
- PID: identificador de proceso dado por el SO.
- PPID: identifica el proceso padre.
- UID: permite saber quien lanzó el proceso.
GUID: a qué grupo pertenece el propietario del
proceso.
- EUID, EGID: los toman ciertos programas en su ejecución.
- FSUID, FSGID: usados cuando se trabaja
con sistemas de archivos.
- SUID, SGID: almanecan los UID y GID
originales cuando el proceso modifica los
mismos.
- Archivos.
- fs, files: mantienen información sobre el sistema
de archivos y archivos abiertos por el proceso.
- Contenidos en task_struct.
- Espacio de direccionamiento.
- Entes estáticas:
almacenadas en unidades
secundarias.
- Entes dinámicas:
almacenadas en memoria
principal.
- Memoria virtual: lanzar programas a la CPU
con mayor tamaño que la memoria física.
- Zonas de memoria
- Sólo lectura:instrucciones que componen el programa
- Heap: asignación de memoria dinámica.
- PC: dirección de la instrucción en ejecución.
- Lectura-escritura: almacenamiento de datos globales.
- SP: dirección a partir de la cual se salvarán las variables.
- Procesos e hilos.
- El objetivo es compartir recursos de manera cómoda.
- Derivan las tareas: entidad que sólo posee recursos.
- Un proceso se compone de una
tarea, la cual tiene un único hilo
en ejecución.
- Tendrán espacio de direccionamiento virtual.
- Threads con la misma tarea, tendrán el mismo espacio virtual.
- Mismos espacios de memoria que un proceso.
- Creados mediante la llamada al sistema clone.
Aún cuando su objetivo es crear procesos.
- POSIX: biblioteca estándar para el entorno multihilo.
- Creación.
- Seguridad.
- Portabilidad.