Gestión Avanzada de Procesos y Procesador en Sistemas Operativos: Comunicación y Sincronización de Datos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,69 KB
Gestión del Procesador: Comunicación y Sincronización de Datos
Gestión de Procesos
Introducción
El proceso es uno de los conceptos más importantes que giran en torno al sistema operativo. Surgió por primera vez con la multiprogramación, permitiendo ejecutar más de un programa de forma simultánea con el fin de aprovechar al máximo los recursos del computador.
Concepto de Proceso
Un proceso es un programa en ejecución, siendo la unidad de trabajo fundamental en el SO.
- Un proceso es una entidad activa que puede solicitar recursos (archivos, dispositivos, etc.).
Definición de Proceso
Un proceso es un programa en ejecución que se ejecuta secuencialmente (no más de una instrucción a la vez). El proceso es una abstracción creada por el SO que se compone de:
- Programa: Código y datos del programa cargado en memoria principal.
- Contexto de Ejecución: Contador de programa (PC), registros del procesador y una pila (*stack*) para la invocación de procedimientos.
El Núcleo (*Kernel*) y los Procesos
El núcleo o *kernel* de un sistema operativo (SO) es un conjunto de rutinas cuya misión es gestionar el procesador, la memoria, la entrada/salida (E/S) y el resto de recursos. Toda esta gestión tiene como objetivo atender el funcionamiento y las peticiones de los trabajos que se ejecutan en el sistema.
El corazón del SO es el núcleo, un programa de control que reacciona ante cualquier interrupción o evento externo, y que da servicio a los procesos: creándolos, terminándolos y respondiendo a cualquier petición de servicio de los mismos.
Conceptos Asociados a la Gestión de Procesos
Ciclo de Ráfagas de CPU y E/S
La ejecución de un trabajo se compone de ráfagas de CPU y de E/S.
- Ráfaga de CPU: Intervalo de tiempo consecutivo que un proceso está ejecutándose en la CPU.
- Ráfaga de E/S: Intervalo de tiempo consecutivo que un proceso está realizando una operación de E/S (utiliza o espera).
Cambio de Contexto
Para cambiar la CPU de un proceso a otro, se requiere guardar el estado del proceso anterior y cargar el estado del nuevo proceso.
Bloque de Control de Procesos (PCB)
Desde el punto de vista del SO, un proceso se representa por un conjunto de datos que incluyen su estado en cada momento, los recursos utilizados, los registros, etc. Todo este conjunto de información se conoce como el Bloque de Control de Procesos (PCB).
Objetivos del PCB
- Localización de la información relevante sobre un proceso.
- Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla.
Contenido del Bloque de Control de Procesos (PCB)
- Identificación del Proceso (PID): Número único asignado al proceso.
- Estado del Proceso: Indica la fase actual del proceso (Ejecutándose, Listo, Esperando, etc.).
- Contador de Programa (PC): Dirección de la próxima instrucción a ejecutar.
- Registros de Trabajo: Contienen los valores de los registros del procesador en un momento dado.
- Planificación de CPU: Incluye prioridades, punteros a colas de planificación y otros parámetros relevantes para la asignación de la CPU.
- Administración de Memoria: Contiene información como registros base y límite, tablas de página o segmento, etc.
- Contabilidad: Datos de uso de recursos (tiempo de CPU usado, límites de tiempo, número de cuenta, etc.).
- Estado de Recursos: Lista de recursos asignados al proceso y su estado actual.
Ubicación del Bloque de Control de Procesos (PCB)
La información del PCB se puede encontrar en la memoria principal o en disco. Se accede a ella cuando es necesaria su actualización o consulta. Los datos relativos al estado del proceso siempre se encuentran en la Memoria Principal (MP).
Estructura de la Imagen en Memoria de un Proceso
- Código: El programa ejecutable.
- Datos: Variables globales y estáticas.
- Pila (*Stack*): Utilizada para llamadas a funciones, variables locales y retorno de direcciones.