1 Unidad 2 – Gestión de ProcesosSistemas Operativos Unidad 2 – Gestión de Procesos
2 Agenda Concepto de Proceso Planificación de ProcesosOperaciones entre Procesos Comunicación interprocesos
3 Concepto de Proceso
4 Proceso Puede pensarse como un programa en ejecuciónNecesita recursos para llevar a cabo su tarea Los sistemas constan de una colección de procesos Los procesos del SO ejecutan código del sistema Los procesos del usuario ejecutan código de usuario Todos estos procesos pueden ejecutarse en forma concurrente
5 Proceso El SO es el responsable de la creación y eliminación de procesos del sistema y de usuario Planifica los procesos y provee de mecanismos para la sincronización, comunicación e interbloqueos en los procesos
6 Proceso Los primeros sistemas informáticos permitían ejectuar un programa a la vez Este programa tenía control total sobre el Sistema y los recursos Actualmente, se pueden cargar varios programas en memoria y se ejecutan concurrentemente Esto, requiere mayor control y aislamiento
7 Estructura del ProcesoEl proceso son todas las actividades de la CPU Desde los trabajos de los sistemas de procesamiento por lotes Hasta los programas ejecutados en un Sistema de tiempo compartido Trabajo y proceso se usan indistintamente
8 Estructura del ProcesoUn proceso no es solo código de un programa Incluye la actividad actual representada por un contador de programa y los contenidos de los registros del procesador Incluye también la pila del proceso (con datos temporales) Incluye sección de datos (variables globales) Memoria (memoria asignada dinámicamente)
9 Estructura del ProcesoPila memoria datos texto Proceso en memoria
10 Estructura del ProcesoUn programa, por sí mismo, no es un proceso Un proceso es una entidad activa, con un CP y conjunto de recursos asociados Un programa se convierte en proceso cuando se carga en memoria Puede haber dos procesos asociados a un mismo programa Un proceso puede crear varios procesos a medida que se ejecuta
11 Estado del Proceso A medida que se ejecuta, cambia de estadoDiagrama de estados de un proceso
12 Bloque de control de procesoPara el SO un proceso es un bloque de control de proceso (PCB) Un PCB contiene muchos elementos de información: Estado del proceso Contador de Programa (PC) Registros de la CPU Información de planificación de la CPU Información de gestión de memoria Información contable Información del estado de E/S
13 Bloque de control de proceso
14 Agenda Concepto de Proceso Planificación de ProcesosOperaciones entre Procesos Comunicación interprocesos
15 Planificación de Procesos
16 Planificación de ProcesosEl objetivo de la multiprogramación es tener en ejecución varios procesos al mismo tiempo El planificador de procesos selecciona un proceso disponible para ejecutar el programa en la CPU En sistemas de un solo procesador, si hay muchos procesos que quieren ejecutarse deberán ser asignados
17 Colas de planificaciónA medida que los procesos entran en el Sistema, se colocan en una cola de trabajos Existen varias colas Cola de Procesos preparados Cola de dispositivo (cada dispositivo tiene una)
18 Diagrama de colas
19 Planificadores Los procesos se mueven entras las distintas colas de planificación Los procesos se guardan en cola en un dispositivo de almacenamiento masivo El planificador de largo plazo selecciona procesos de esta cola y los carga en memoria El planificador a corto plazo o de la CPU selecciona procesos de entre los procesos que ya están preparados para su ejecución
20 Planificadores La diferencia radica en la frecuencia de ejecuciónEl planificador a corto plazo se ejecuta frecuentemente El planificador a largo plazo se ejecuta menos frecuentemente, hasta minutos pueden pasar. El de largo plazo controla la multiprogramación (número de procesos en memoria)
21 Planificadores Los procesos se describen como limitados por la E/S o limitados por la CPU Es importante que el planificador a largo plazo seleccione una adecuada mezcla de procesos Generalmente el planificador de largo plazo no se usa en los sistemas actuales Intercambio se llama al esquema que se adiciona un planificador a medio plazo
22 Agenda Concepto de Proceso Planificación de ProcesosOperaciones entre Procesos Comunicación interprocesos
23 Operaciones entre procesos
24 Operaciones entre procesosLos sistemas deben proporcionar un mecanismo para la creación y terminación de procesos Un proceso puede crear varios procesos nuevos, dando lugar a un árbol de procesos Los procesos se identifican por medio de un pid Un proceso hijo puede obtener recursos de su padre
25 Operaciones entre procesosCuando un proceso crea otro proceso nuevo, existen dos posibilidades en términos de ejecución: El padre continua ejecutándose concurrentemente con su hijo El padre espera hasta que alguno o todos sus hijos han terminado de ejecutarse También existen dos posibilidades en función del espacio de direcciones del nuevo proceso: El proceso hijo es un duplicado del padre El proceso hijo carga un nuevo programa
26 Agenda Concepto de Proceso Planificación de ProcesosOperaciones entre Procesos Comunicación interprocesos
27 Comunicación interprocesos
28 Comunicación interprocesosLos procesos pueden ser: Independientes Cooperativos Independiente cuando no puede afectar o verse afectado por otro proceso Cooperativos cuando puede afectar o verse afectado por los demás procesos
29 Comunicación interprocesosLa cooperación entre procesos requiere mecanismos de comunicación interprocesos Existen dos modelos de comunicación interprocesos: Memoria compartida Paso de mensajes
30 Comunicación interprocesos
31 Comunicación interprocesosMemoria compartida Se requiere que se establezca una region de memoria compartida El SO intenta evitar que un proceso acceda a datos de otro En memoria compartida no participa el SO Problema del productor – consumidor para mostrar la memoria compartida
32 Comunicación interprocesosPaso de mensajes No comparten memoria Los procesos pueden no estar en la misma máquina Proporciona dos operaciones: send y receive Los mensajes pueden ser de tamaño fijo Debe existir un enlace de comunicaciones entre emisor y receptor Formas de implementar un enlace: Comunicación directa o indirecta Comunicación síncrona o asíncrona Almacenamiento en búfer explícito o automático
33 Hebras Una hebra es una unidad básica de utilización de la CPUEsta formada por ID, un CP, conjuntos de registros y una pila Comparten con otras hebras la sección de código, la sección de datos y otros recursos del SO Varias hebras más tareas a la vez Ejemplo: servidor web que recibe multiples pedidos
34 Hebras
35 Hebras - Ventajas CAPACIDAD DE RESPUESTA COMPARTICIÓN DE RECURSOSContinúa ejecutándose incluso si una parte del programa está bloqueado Incrementa la capacidad de respuesta Ej. Explorador web COMPARTICIÓN DE RECURSOS Las hebras comparten memoria y recursos del proceso La ventaja de compartir código y datos es que puede tener varias hebras de actividad diferentes dentro del mismo espacio de direcciones ECONOMÍA Más económico crear y realizar cambios de context entre hebras Por ej. En Solaris es 30 veces más lento crear un proceso que una hebra USO SOBRE ARQ. MULTIPROC. Ventajas en configuraciones multihebras Las hebras se ejecutan en paralelo en diferentes procesadores Incrementan el grado de concurrencia
36 Preguntas?