La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

GESTIÓN DE PROCESOS.

Presentaciones similares


Presentación del tema: "GESTIÓN DE PROCESOS."— Transcripción de la presentación:

1 GESTIÓN DE PROCESOS

2 El PROCESO Informalmente, un proceso es un programa en ejecución. La ejecución de un proceso debe proceder de manera secuencial. Un proceso es más que el código del programa, incluye la actividad actual, representada por el valor del contador de programa y el contenido de los registros del procesador, la pila del proceso, que contiene datos temporales ( como los parámetros de subrutinas, direcciones de retorno y variables temporales), y una sección de datos que contiene variables globales.

3 EL PROCESO Terminado nuevo En ejecución listo En espera admitido salir
interrupción En ejecución listo Despacho del planificador En espera Espera por E/S o suceso Terminación de E/S o suceso

4 ESTADO DE UN PROCESO A medida que un proceso se ejecuta, cambia de estado. El estado de un proceso está definido en parte por la actividad actual de ese proceso. Cada proceso puede estar en uno de los siguientes estados: Nuevo (new): El proceso se está creando. En ejecución (Running): Se está ejecutando instrucciones. En espera (Waiting): El proceso está esperando que ocurra algún suceso (como la terminación de una operación de E/S o la recepción de una señal). Listo (Ready): El proceso está esperando que se le asigne a un procesador. Terminado (Terminated): El proceso terminó su ejecución.

5 BLOQUE DE CONTROL DE PROCESO
Cada proceso se representa en el SO con un bloque de control de proceso (PCB, process control block), también llamado bloque de control de tarea. puntero Estado del proceso Número del puntero CONTADOR DE PROGRAMA REGISTROS LÍMITES DE MEMORIA LISTA DE ARCHIVOS ABIERTOS **EL PCB simplemente sirve como depósito De cualquier información que pueda variar De un proceso a otro.** ……

6 BLOQUE DE CONTROL DE PROCESO
Estado del proceso: Que puede ser nuevo, listo, en ejecución, en espera, detenido, etc. Contador de programa:Indica la dirección de la siguiente instrucción que se ejecutará para este proceso. Registros de CPU: El número y el tipo de los registros varía dependiendo de la arquitectura del computador. Incluyen acumuladores, registros índice, punteros de pila y registros de propósito general, entre otros. Información de planificación de CPU: Incluye una prioridad del proceso, punteros a colas de planificación y cualesquier otros parámetros de planificación. Información de gestión de memoria: Puede incluir datos como el valor de los registros de base y límite, las tablas de páginas o las tablas de segmentos, dependiendo del sistema de memoria empleado por el SO. Información contable: Incluye la cantidad de tiempo real consumida, límites de tiempo, números de cuenta, números de trabajo o proceso, etc.

7 PLANIFICACIÓN DE PROCESOS
El objetivo de la multiprogramación es tener algún proceso en ejecución en todo momento, a fin de maximizar el aprovechamiento de la CPU. El objetivo del tiempo compartido es conmutar la CPU entre procesos con tal frecuencia que los usuarios puedan interactuar con cada programa durante su ejecución.

8 COLAS DE PLANIFICACIÓN
Conforme los procesos ingresan en el sistema, se colocan en una cola de trabajos. Esta cola incluye todos los procesos del sistema. Los procesos que están en la memoria principal y están listos y esperando para ejecutarse se mantienen en una lista llamada COLA DE PROCESOS LISTOS, que se normalmente se almacena como lista enlazada. La cabecera de esta cola contiene punteros al primer y al último PCB de la lista. Cada PCB tiene un campo de puntero que apunta al siguiente proceso de la cola de procesos listos. Cuando a un proceso se le asigna la CPU, se ejecuta durante un tiempo y finalmente termina, es interrumpido o espera que ocurra un suceso en particular, como la terminación de un proceso de E/S. La lista de procesos que esperan un dispositivo de E/S en particular se llama COLA DE DISPOSITIVO. Cada dispositivo tiene su cola.

9 COLAS DE PLANIFICACIÓN
Un proceso nuevo se coloca inicialmente en la cola de procesos listos, donde espera hasta que se le escoge para ejecutarse (se le despacha) y recibe la CPU. Una vez asignado puede ocurrir: El proceso podría emitir una solicitud de E/S y entonces colocarse en una cola E/S. El proceso podría crear un nuevo subproceso y esperar a que termine. El proceso podría ser desalojado por el CPU (interrupción).

10 PLANIFICADORES Un proceso migra de una cola de planificación a otra durante toda el ciclo. El planificador adecuado se encarga de este proceso de selección. En un sistema por lotes es común que haya más procesos presentados de los que se pueden ejecutar enseguida. Se colocan en spool en un dispositivo de almacenamiento masivo (disco) y ahí esperan hasta ejecutarse.

11 TIPOS DE PLANIFICACIÓN
A LARGO PLAZO Escoge procesos de esta reserva (listos) y los carga en la memoria para que se ejecuten. Se ejecuta con una frecuencia menor a los de CORTO PLAZO. Controla el grado de multiprogramación (el número de procesos que están en la memoria). Si el grado de multiprogramación es estable, la frecuencia promedio de creación de procesos debe ser igual a la frecuencia promedio de salida de proceso del sistema.

12 TIPOS DE PLANIFICACIÓN
PROCESOS A MEDIANO PLAZO Forma parte de la función de intercambio. Se basa en la necesidad de controlar el grado de multiprogramación Si nos emplea memoria virtual, deberá tener en cuenta las necesidades de memoria del proceso. La idea clave en que se basan es que en ocasiones es provechoso sacar procesos de la memoria (y de la contención activa por la CPU), a fin de reducir el grado de multiprogramación. En algún momento posterior, el proceso se reintroducirá en la memoria y podrá continuar su ejecución donde se quedó. (Swapping).

13 TIPOS DE PLANIFICACIÓN
PROCESO A CORTO PLAZO Escoge entre los procesos que estén listo para ejecutarse, y asigna la CPU a uno de ellos. Debe seleccionar un proceso nuevo para la CPU de forma relativamente frecuente. Un proceso podría ejecutarse durante unos cuantos milisegundos antes de esperar una solicitud de E/S. En muchos casos, el planificador a corto plazo se ejecuta por lo menos una vez cada 100 milisegundos. Debe tomarse en cuenta los factores: Equidad: Repartir el uso de la cpu Eficiencia: Evitar tiempos ociosos de la cpu. Rendimiento: Maximizar números de peticiones.

14 COMMUTACIÓN DE CONTEXTO
El cambio de la CPU a otro proceso requiere guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso. Esta tarea se denomina conmutación de contexto (context switch). El tiempo de conmutación de contexto es exclusivamente gasto extra (overhead), porque el sistema no realiza trabajo útil durante la conmutación.

15 OPERACIONES CON PROCESOS
Creación de procesos: Un proceso puede crear varios procesos nuevos, a través de una llamada al sistema de “crear proceso”, durante el curso de su ejecución. El proceso creador se denomina PADRE, y los nuevos procesos son los HIJOS de ese proceso. Cada uno de estos procesos nuevos puede a su vez crear otros procesos, formando un árbol de procesos. Un proceso necesita ciertos recursos (tiempo de cpu, memoria, archivos dispositivos de e/s) para efectuar su tarea. El padre quizás tenga que dividir sus recursos entre sus hijos, o tal vez varios de sus hijos puedan compartir algunos recursos.

16 OPERACIONES CON PROCESOS
Creación de procesos: Cuando un proceso crea un proceso nuevo puede ocurrir en términos de ejecución: El padre sigue ejecutándose de forma concurrente con sus hijos. El padre espera hasta que algunos de sus hijos, o todos, han terminado. También hay 2 posibilidades en términos de espacio de direcciones del nuevo proceso: El proceso hijo es un duplicado del proceso padre. Se carga un programa en el proceso hijo.

17 OPERACIONES CON PROCESOS
TERMINACIÓN DE PROCESOS Un proceso finaliza cuando termina de ejecutar su último enunciado y le pide al SO que lo elimine utilizando la llamada SALIR (exit). EL SO liberara todos los recursos del proceso, o puede devolver datos a su proceso padre. También ocurre la terminación cuando un proceso causa la finalización de otro con una llamada al sistema apropiado (abortar). Normalmente, sólo el padre del proceso que se terminará puede emitir tal llamada. El padre necesita conocer la identidad de sus hijos. Cuando crea un proceso nuevo, el SO le pasa la identidad del proceso recién creado.

18 OPERACIONES CON PROCESOS
TERMINACIÓN DE PROCESOS Un padre podría terminar la ejecución de uno de sus hijos por: El hijo se ha excedido en la utilización de algunos de los recursos que se le asignaron. La tarea que se asignó al hijo ya no es necesaria. El padre va a salir, y el SO no permite que un hijo continúe si su padre termina.

19 PROCESOS INDEPENDIENTES Y COOPERATIVOS
Los procesos concurrentes que se ejecutan en el SO pueden ser independientes o cooperativos. Uno proceso es independiente si no puede afectar ni ser afectado por los demás procesos que se ejecutan en el sistema. Un proceso es cooperativo si puede afectar o ser afectado por los demás procesos que se ejecutan en el sistema. Hay varias razones para crear un entorno que permita la cooperación entre procesos: Compartir información: Ofrecer entorno que permita acceso concurrente a recursos. Aceleración de los cálculos: Tarea que se divide en subtareas paralelas para que se ejecute con mayor rapidez.. Se puede dar si el computador cuenta con varios elementos procesadores o canales de e/s. Modularidad: Patrón modular dividiendo las funciones del sistema en procesos individuales. Comodidad: Un usuario podría tener muchas tareas que realizar en un momento dado. La ejecución concurrente precisa cooperación entre los procesos por tanto requiere de mecanismos y sincronizar acciones.

20 Ilustración de proceso cooperativo
Un proceso productor produce información que es consumida por un proceso consumidor. Ej. Un compilador podría producir código de ensamble, que es consumido por un ensamblador. Éste, a su vez, podría producir módulos objetos, que son consumidos por el cargador. **Para que los procesos productores y consumidores puedan ejecutarse de forma concurrente, es preciso contar con un buffer de elementos que el productor pueda llenar y el consumidor pueda vaciar. ** Deben estar sincronizados.

21 MECANISMOS DE PLANIFICACIÓN
Encolador (Enqueuer) Cuando un proceso cambia al estado LISTOS, el encolador lo coloca en una estructura de datos de tipo cola. Conmutador de contexto (Context switcher) Cuando un proceso va a ser desalojado de la CPU, el conmutador de contexto guarda el contenido de los registros de la CPU en el BCP del proceso. Distribuidor (dispatcher) El distribuidor selecciona uno de los procesos de la cola de LISTOS y le asigna la CPU.

22 MECANISMOS DE PLANIFICACIÓN Gráfico

23 CRITERIOS DE LA PLANIFICACIÓN
Criterios para comparar el rendimiento de los diversos algoritmos de planificación: Tiempo de servicio (Ts) Tiempo estimado de ejecución Tiempo de retorno (Tr) Tiempo transcurrido desde que llega al sistema hasta que termina Tiempo de espera (Tw) Suma de tiempos que el proceso está en no ejecución Tiempo de retorno normalizado (Tr / Ts) Tiempo de retorno dividido por el tiempo de servicio

24 PRIORIDADES El planificador seleccionará siempre a un proceso de mayor prioridad antes que a los de menor prioridad. Utiliza múltiples colas de Listos para representar cada nivel de prioridad. Los procesos de prioridad más baja pueden sufrir inanición (no son elegidos nunca). Una solución ante la inanición consiste en permitir que un proceso cambie su prioridad en función de su edad o su historial de ejecución.


Descargar ppt "GESTIÓN DE PROCESOS."

Presentaciones similares


Anuncios Google