Please enable JavaScript.
Coggle requires JavaScript to display documents.
Gestión de Procesos de los Sistemas Operativos - Coggle Diagram
Gestión de Procesos
de los Sistemas Operativos
Que es?
es un programa en ejecución, incluyendo el valor actual del program counter (PC), registros y variables.
Estados de un proceso
En espera: El proceso está esperando a que ocurra algún evento (Como la terminación de una operación de entrada o salida, o la recepción de una señal.
Listo: El proceso está en espera de ser asignado a un procesador.
Ejecución: Se están ejecutando instrucciones.
Terminado: El proceso ha terminado su ejecución.
Nuevo: El proceso se está creando.
Es responsable de las
siguientes actividades.
La planificación de los procesos.
La provisión de mecanismos para sincronización, comunicación y manejo de bloqueos mutuos.
La creación y eliminación de procesos tanto del usuario como del Sistema Operativo
Bloque de Control
del Proceso
Cada proceso se representa en el sistema operativo mediante un bloque de control del proceso (Process Control Block PCB) también denominado bloque de control de tarea.
Información para planificación (p.ej., prioridad)
Información para administración de memoria (p.ej., registros base y límite)
Registros de CPU
Información de I/O: dispositivos y recursos asignados al proceso, archivos abiertos, etc.
Program counter
Estadísticas y otros: tiempo real y tiempo de CPU usado, identificador del proceso, identificador del dueño, etc.
Estado (ejecutando, listo, bloqueado)
Creación de Procesos
Un proceso puede crear varios procesos nuevos, a través de una llamada al sistema para la creación de procesos, durante el curso de la ejecución.
El padre continúa ejecutándose de
manera concurrente con sus hijos.
El padre espera hasta que alguno
de sus hijos haya terminado.
Terminación de
un Proceso
Un proceso concluye cuando termina de ejecutar su sentencia final, y le pide al sistema operativo que lo borre usando la llamada exit.
Ya no se requiere la tarea asignada al hijo.
El padre está saliendo y el sistema no permite que un hijo continúe si su padre termina.
El hijo ha excedido el uso de alguno de los recursos que tiene asignados.
Concepto
de Hilo
Normalmente, un "programa hilado" (threaded program, programa construido mediante hilos) tiene el potencial de incrementar el rendimiento total de la aplicación en cuanto a productividad y tiempo de respuesta mediante ejecución de código asíncrono y paralelo.
Elementos de un
Hilo y un Proceso
Todos los hilos comparten el mismo espacio de direcciones, y así comparten también las mismas variables globales.
Bloqueado (Suspend): cuando el hilo se encuentra esperando algún evento o a la espera de que otro libere el bloqueo por el que se encuentra detenido.
Listo o preparado (Ready): cuando el hilo está preparado para su ejecución, y se encuentra a la espera de ser elegido por el planificador.
En ejecución (Running): cuando el hilo posee la CPU y se encuentra activo.
Terminado (Finished): cuando el hilo ha finalizado, pero todavía no ha sido recogido por el hilo padre, aunque no puede ser planificado nunca más.
Un proceso puede tener uno o más hilos. Los hilos son un mecanismo que permite mejorar el rendimiento de los sistemas operativos tratando de reducir la sobrecarga producida por el cambio de contexto entre procesos.
Tienen un bajo coste de sincronización.
Comparten el mismo espacio de direcciones.
Tienen un bajo coste de creación.
Pueden progresar independientemente unos de otros.
Necesitan poca memoria.