Gestión de procesos
-
Upload
freddy-patricio-ajila-zaquinaula -
Category
Education
-
view
312 -
download
14
description
Transcript of Gestión de procesos
![Page 1: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/1.jpg)
CARRERA DE INGENIERIA EN SISTEMAS
Docente:
SISTEMAS OPERATIVOS
Periodo:
Ing. Freddy Patricio Ajila Z.
septiembre 2013 – febrero 2014
1
AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES
Email: [email protected]
![Page 2: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/2.jpg)
Segunda Parte:
Administración de procesos
![Page 3: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/3.jpg)
OBJETIVO
1. Proporcionar una visión general de las
actividades relacionadas con la gestión de
procesos y hebras, la creación y eliminación de
procesos del sistema y de usuario, la palnificación
de procesos, los mecanismos de sincronización y
el tratamiento de interbloqueos en los procesos.
![Page 4: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/4.jpg)
1. Procesos
![Page 5: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/5.jpg)
Un proceso es un programa en ejecución y nececita de
ciertos recurso como: CPU, memoria, archivos,
dispositivos E/S para llevar a cabo su tarea. Estos
recursos se asignan cuando se crea o ejecuta un
proceso.
Todo sistema tiene una colección de procesos: los
procesos del S.O ejecutan código del sistema y los
procesos de usuario ejecutan código de usuario. Todos
estos procesos pueden ejecutarse en forma concurrente.
Introducción
![Page 6: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/6.jpg)
Un proceso es un programa en ejecución.
Un proceso es la unidad más pequeña planificable
Aunque el usuario ejecute un solo programa, el S.O
podría dar soporte a sus propias actividades
internas programadas, como los mecanismos de
gestion de memoria, a todas estas actividades se
las denomina tambien “procesos”
1. Concepto
![Page 7: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/7.jpg)
En la mayoría de textos los términos proceso y tarea
significan lo mismo.
Un proceso incluye:
Código del programa (código de prog de usuario)
Contador de programa (Actividad actual, se apoya con el
contenido de los registros del procesador)
Pila ( datos temp como parametros de funciones, direcciones
de retorno y variables locales)
Sección de datos ( variables globales)
head ( memoria asignada en time de ejecución)
1. Concepto
![Page 8: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/8.jpg)
Un programa es una entidad pasiva almacenada en disco
(archivo ejecutable), mientras que un proceso es una
entidad activa.
Un programa se convierte en proceso cuando se carga en
memoria un archivo ejecutable.
Existen dos técnicas habituales para cargar archivos
ejecutables:
– Doble clic al ícono del archivo ejecutable
– via linea de comangos digitando el nombre del
archivo (prog.exe, a.out)
1. Concepto
![Page 9: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/9.jpg)
Un programas puede tener varios procesos por ej.
usuario ejecuta varias copias del explorador web,
cada copia es un proceso distinto aunque las
seciones de codigo sean iguales pero la pila, los
datos, el heap varian
Es habitual tambien que un proceso cree muchos
otros procesos a medida que se ejecuta.
1. Concepto
![Page 10: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/10.jpg)
Proceso en memoria
![Page 11: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/11.jpg)
Conforme se ejecuta un proceso cambia su estado.
1.1 Estados de un proceso
– nuevo: El proceso se está creando– en ejecución: Se están ejecutando sus
instrucciones– en espera: Está esperando que ocurra
algún evento (ej. E/S)– listo: Está esperando que le asignen la
CPU– terminado: Ha terminado su ejecución
Pueden haber muchos procesos preparados y en espera. Ver
sig figura.
![Page 12: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/12.jpg)
Diagrama de estados de un proceso
![Page 13: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/13.jpg)
C/proceso se representa en el S.O mediante u PCB. Un PCB Contiene contiene elementos como:
Estado del proceso: (ejecución, espera, etc)
Contador de programa: (apunta a sig instrucción a ser ejecutada )
Registros de la CPU: (guarda info de registros de cPU, indicadores de estado y contador del prog cuando hay una interrupción y luego pueda continuar ejecu tandose)
Información de planificación de CPU: (prioridad del proceso, punteros a colas de planificación, etc)
Información de gestión de memoria: (Información de memoria asigada al proceso)
Información contable: (tiempo real de CPU empleado, lim time asignado, num proceso, etc)
Información de estado de E/S: (lista de disp E/S asignadas al proceso, list de file abiertos, etc)
1.2 Bloque de control de proceso (PCB)
![Page 14: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/14.jpg)
Diagrama bloque de control de proceso (PCB)
![Page 15: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/15.jpg)
Diagrama de conmutación de la CPU de un proceso a otro
![Page 16: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/16.jpg)
Introducción a los Hilos
Threads.- (Hilos).- un proceso puede ser un solo hilo de ejecución (hilo de isntrucciones).
Con los hilos existe la posibilidad de tener varios contadores de programa por proceso lo cual implica que varias instruciones pueden ejecutar a la vez
Los contadores de programa de cada proceso se almacenan en los PBC de cada proceso.
![Page 17: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/17.jpg)
El objetivo de la multiprogramación es tener en ejecución
varios procesos al mismo tiempo con el fin de maximizar
el uso de la CPU.
El objetivo de los S.O de tiempo compartido es conmutar
la CPU entre los distintos procesos con mucha frecuencia
permitiendo al usuario interactuar con distintos
programas mientras esten en ejecucion, para lograrlo
entra en ación el planificador de procesos.
2. Planificación de procesos
![Page 18: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/18.jpg)
Planificador de procesos en Linux
El bloque de control de procesos (PCB) en LINUX se representa
mediante la estructura de C task.struct . Esta estructura
contiene toda la información necesaria para representar un
proceso, incluyendo el estado del proceso, la información de
planificación, la gestión de memoria, la lista de archivos abiertos
y los punteros a los procesos padres e hijos. Dentro del Kernel
todos los procesos activos se representan mediante una lista
doblemente enlazada de objetos task_struct y el kernel mantine
un puntero al proceso que se está ejecutando en ese momento.
![Page 19: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/19.jpg)
Planificador de procesos en Linux
Represented by the C structure task_structpid t_pid; /* process identifier */ long state; /* state of the process */ unsigned int time_slice /* scheduling information */ struct task_struct *parent; /* this process’s parent */ struct list_head children; /* this process’s children */ struct files_struct *files; /* list of open files */ struct mm_struct *mm; /* address space of this process */
![Page 20: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/20.jpg)
2.1 Colas de planificación
Los procesos se encuentran en colas y se mueven entre ellasCola de trabajos: conjunto de todos los procesos en el sistemaCola de procesos listos: conjunto de procesos que se encuentran en memoria principal, listos y esperando ejecutarseColas de dispositivo: conjunto de procesos esperando un dispositivo de E/S
![Page 21: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/21.jpg)
Diagrama de cola de procesos preparados y diversas colas de los dispositivos de E/S
![Page 22: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/22.jpg)
Diagrama de colas para la planificación de procesos
![Page 23: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/23.jpg)
2.2 Planificadores
Planificadores a largo plazo.- Selecciona cuales procesos deben ser cargados en la cola de preparados (se invocan no tan frecuentemente segundos, minutos)
Planificadores a corto plazo.- Selecciona cual es el siguiente procesos que debe ser ejecutado por la CPU. (Se invocan muy frecuentemente milisegundos)
![Page 24: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/24.jpg)
2.2 Planificadores
Planificador a medio Plazo.- esquema de intercambio; Elimina procesos de memoria y luego los coloca en el Disco, y luego los carga a memoria para su ejecución. Este planificador permite reducir el grado de multiprogramación al retirar de memoria temporalmente un proceso liberandolo al CPU.
Los planificadores buscan un equilibrio entre:
Procesos Limitados por la CPU, y Procesos Limitados por E/S para mantener un número de procesos adecuados en las colas de procesos preparados y colas de dispositivos de E/S
![Page 25: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/25.jpg)
Diagrama de colas para la planificación de procesos
![Page 26: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/26.jpg)
2.3 Cambio (Conmutación) de contexto
Cuando se cambia el proceso que posee la CPU, el sistema debe salvar el estado del viejo proceso y cargar el estado del nuevo proceso
El tiempo que dura una conmutación de contexto es un gasto extra; el sistema no hace nada útil durante la conmutación
El tiempo requerido para la conmutación depende del soporte del procesador
![Page 27: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/27.jpg)
Diagrama de conmutación de contexto
![Page 28: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/28.jpg)
Existen dos operaciones sobre procesos Creación y Terminación.
“Un proceso puede crear otros varios procesos nuevos mientras
se ejecuta”. Entonces surge la pregunta:
¿Cómo el sistema operativo puede tener un registro y un rastro
de cuantos procesos han sido creados por un proceso en
particular?
3. Operaciones sobre procesos
3.1 Introducion
![Page 29: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/29.jpg)
Para responder esta pregunta realicemos la siguiente actividad
practica en su distribución de Ubuntu:
Abra, una ventana de terminal y coloquemos el comando: ps -el
| more y Deberíamos obtener una respuesta similar a la inferior.
De aquí es importante determinar cual el PID (Identificador de
proceso) del proceso init.
![Page 30: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/30.jpg)
Ahora digitemos el comando ps axjf.
Deberíamos obtener una salida en pantalla similar a esta, o
identifique esta salida en su computador:
Ahora llene la siguiente tabla identificando el Identificador de
proceso (PID) y el Identificador de proceso superior o padre
(PPID).
![Page 31: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/31.jpg)
Por ultimo identifique el resto de columnas leyendo el manual del comando ps,
a través del comando man ps. Realice el Informe como Practica 8
![Page 32: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/32.jpg)
3.1 Creación de procesos
Un proceso crea procesos hijos, los cuales pueden crean otros procesos, formando un árbol de procesos
La mayoria de S.O identifican los procesos mediante un identificador de procesos PID que generalmente es un número entero.
En general un proceso nececitará de ciertos recursos como tiempo de CPU, memoria, archivos, dispositivos E/S para llevar a cabo sus tareas.
En sistemas UNIX podemos tener un listado de los procesos usando el comando ps -elUn proceso puede tener muchos hijos pero sólo un
padre
![Page 33: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/33.jpg)
El padre puede pasar al hijo datos de inicialización (entrada)Compartición de recursos
Padre puede repartir sus recursos entre sus hijosEl hijo puede estar restringido a un subconjunto de los recursos del padreEl hijo o subproceso tambien puede obtener recursos directamente del S.O.
EjecuciónEl padre y el hijo se ejecutan concurrentementeEl padre espera hasta que el hijo termine de ejecutarse
Espacio de direccionesEl hijo es un duplicado del padre(Usa el mismo Programa y datosdel padre)El proceso hijo carga un nuevo programa
![Page 34: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/34.jpg)
Arbol de procesos en un Sistema Solaris
![Page 35: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/35.jpg)
Ejemplo de creación de un proceso en UNIX
fork() llamada al sistema para crear un nuevo proceso
exec() llamada al systema despues de fork () para reemplazar el proceso en el espacio de direcciones con un nuevo programa
wait espera a que el proceso hijo termine
![Page 36: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/36.jpg)
Programa C que bifurca un proceso distinto
![Page 37: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/37.jpg)
3.2 Terminación de procesos
Un proceso termina cuando ejecuta su ultima instrucción y pide al sistema operativo que lo termine usando la llamada sistema exit().
El hijo envía entonces al padre información de terminación mediante un llama al sistema con wait().
Luego el S.O libera todos los recursos usados por el proceso
Un proceso padre puede terminar la ejecución de sus hijos con abort () por varias razones como:
El hijo se ha excedido en el uso de recursos asignados
La tarea que realiza el hijo no es ya necesaria
El padre abandona el sistema y el S.O no permite al proceso hijo continuar su ejecución.
Algunos SOs que no permiten que un hijo continue ejecutandose cuando su padre se ha completado normal o anormalmente surge el fenomeno de terminación en cascada
![Page 38: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/38.jpg)
3.3 Comunicación Interprocesos
Los procesos que se ejecutan en el S.O pueden ser independientes (no se ven afectados por la ejecución de otros procesos) o cooperativos (se ven afectados por la ejecución de otros procesos)
Existen entornos de cooperación de procesos:
Compartir información (varios usuarios desean la misma información por ej: un archivo compartido)
Acelerar los calculos.- (dividir la tarea en subtareas en ejecutar en paralelo, depende del hardware)
Modularidad.- Dividir funciones en diferentes hebras y ejecutarlas al mismo tiempo
Conveniencia.- Usuario ejecuta varias tareas (Editando, imprimiendo, y compilando en paralelo )
![Page 39: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/39.jpg)
Los Los procesos cooperativos requieren de un mecanismo de comunicación interprocesos para comunicarse entre si.
Fundamentalmente la comunicación se consigue entre dos esquemas memoria compartida y paso de mensajes.
Memoria compartida: Este método requiere que los procesos que se van a comunicar compartan algunas variables e intercambien información por medio del uso de variables compartidas.
En un sistema de memoria compartida, el proporcionar mecanismos de comunicación es responsabilidad de los programadores de la aplicación.
El S.O solo tiene que proporcionar la memoria compartida
Paso de Mensajes:
Este metodo permite a los procesos intercambiar mensajes, las responsabilidad de proporcionar mecanismos de comunicación le corresponde al S.O.
Estos dos metodos se pueden emplear simultaneamente dento de un S.O
![Page 40: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/40.jpg)
Modelos de comunicación (a) Paso de Mensajes (b) Memoria Compartida
![Page 41: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/41.jpg)
Realizar un programa que genere la serie primos/pares. El
proceso padre deberá controlar el limite de la serie. El hijo 1
debera generar y retornar un primo y el hijo 2 deberá generar
y retornar un par.
•Realizar los ejercicios 3.6 y 3.7 de la pagina 104 y 105 que
está al final del capitulo 3.
•Cada programa tiene el valor de 1 punto que se acumula para
el examen de la unidad.
3.4 Ejercicios
![Page 42: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/42.jpg)
2. Hilos
![Page 43: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/43.jpg)
La mayoria de S. O Modernos tinen caracterisiticas que
permiten que un proceso tenga múltiples hebras de control.
Una hebra es una unidad básica de utilización de la CPU que
comprende:
Un ID de hebra
Un contador de programa
Un conjunto de registros
Una pila
2.1 Introducion
![Page 44: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/44.jpg)
Comparte con otras hebras que pertenece al mismo proceso la
sección de código, datos y otros recursos del S.O como los
archivos arbiertos.
Un proceso tradicional tiene una sola hebra de control
(programas típicos de programadores iniciales)
Si un proceso tiene multiples hebra de control puede realizar
mas de una tarea a lavez.
Las API de bibliotecas de hebra más comunes son:
Pthreads, Win32 y Java.
2.1 Introducion
![Page 45: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/45.jpg)
Esquema de procesos monohebra y multihebra
![Page 46: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/46.jpg)
Muchos paquetes de software modernos son multihebra.
Normalmente una aplicación se ejecuta como un proceso con
varias hebras de control.
Por ejemplo:
Un web explorer podrrí tener una hebra para mostrar imágenes
y texto y otra hebra para buscar la información en la red.
Un procesador de textos podría tener una hebra para
reconocer caracteres del teclado, otra para mostar gráficos e
imagenes, otra para hacer copias automáticas y otra para el
corrector ortografico ejecutandose en segundo plano no
trasparente al usuario.
2.1 Introducion
![Page 47: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/47.jpg)
Podemos citar tambien a un servidor web sometido a atender
miles de peticiones concurrentes.Y para ello crearía una hebra
especifica por cada petición del cliente.
Las hebras comparten sus recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO
No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso
2.1 Introducion
![Page 48: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/48.jpg)
Proporcionan una mayor capacidad de respuesta al usuario
Comparten recursos como: el mismo espacio de direcciones,
código, datos y otros recursos del proceso al que pertenecen.
Economía: Ya que comparten recursos y así optimizan el
tiempo de conmutación de la CPU
Se aprovecha mejor las capacidades de las arquitecturas
multiprocesador.
2.2 Ventajas
![Page 49: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/49.jpg)
•Son hebras visibles al programador y desconocidas para el
kernel.
•En general las hebras de usuario se crean y gestionan maś
rapido que las hebras del Kernel.
•Existen tres modelos diferentes que permiten realcionar las
hebras de usuario y las hebras del kernel:
•Modelo muchos a uno: Asigna muchas hebras de usuario a
una sola hebra del kernel.
•Modelo uno a uno: Asigana a cada hebra de usuario la
correspondiente hebra del kernel.
Modelo muchos a muchos: Multiplexa muchas hebras de
usuario sobre un número menor o igual de hebras del kernel
2.2 Hebras a nivel de usuario
![Page 50: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/50.jpg)
Esquema de modelos de hebras
![Page 51: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/51.jpg)
Las bibliotecas de hebra proporcinan al programador una API para crear y gestionar hebras.
Las tres bibliotecas de hebras principales de uso común son:
Pthreads de POSIX Hebras Win32 para S.O Windows Hebras de Java
2.2 Hebras a nivel de usuario
![Page 52: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/52.jpg)
•El S.O soporta y gestiona las hebras a nivel del kernel
•La mayoría de S.O modernos proporsionan soporte para hebras
en el kernel entre elllos están Windows 98, NT, 2000, XP, 7 así
como solaris y Linux.
•
Características:
La conmutación de contexto entre hebras es más lentaSi una hebra se bloquea las hebras pares pueden continuarTodas las hebras reciben el mismo tiempo de CPU
2.3 Hebras a nivel de Kernel
![Page 53: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/53.jpg)
•Realizar un programa que genere la serie primos/pares. El
proceso deberá controlar el limite de la serie. El hilo 1 debera
generar y retornar un primo y el hilo 2 deberá generar y
retornar un par.
•Realizar los ejercicios 4.9 y 4.11 de la pagina 132 que está al
final del capitulo 4.
•Cada programa tiene el valor de 1 punto que se acumula para
el examen de la unidad.
2.4 Ejercicios
![Page 54: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/54.jpg)
3. Planificación de la CPU
![Page 55: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/55.jpg)
El término planificación de procesos hace referencia a un conjunto de políticas y mecanismos del SO que gobiernan el orden en que se ejecutan los procesos
•Los mecanismos de planificación de la CPU son la base de los S.O
mltiprogramados
•Por medio de la conmutación de la CPU entre distintos procesos el S.O
hace que el computador sea más productivo.
•Por elllo es importante conocer los conceptos básicos sobre la planificación
de la CPU y los algoritmos utilizados para este fin.
•
•Es importante también analizar como seleccionar el mejor algoritmo para
un sistema en particular.
Introducción
![Page 56: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/56.jpg)
Los objetivos principales de la planificación de proceso son:
Equidad: todos los procesos deben poder ejecutarse sin esperas largas
Eficacia:mantener ocupada la CPU un 100% del tiempo
Tiempo de respuesta: minimizar al maximo el tiempo de respuesta al usuario
Rendimiento: maximizar el número de tareas o procesos ejecutados por segundo, minuto u hora.
Objetivos de la planificación
![Page 57: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/57.jpg)
Partiremos basandonos en el objetivo de la
multiprogramación que pretende mantener
ucupada la CPU todo el tiempo cargando varios
procesos en memoria. Cuando un proceso debe
esperar el S.O retira el uso de la CPU a ese proceso
y se lo concede a otro proceso y esto se repite
continuamente.
3.1. Conceptos Básicos
![Page 58: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/58.jpg)
Este tipo de planificación no se da solo a nivel de
uso de la CPU ya que es fundamental para el S.O
planificar tambien el uso del resto de recursos del
computador (Disp de E/S).
La CPU es el recurso principal del computador así
que es crucial su correcta planificación en el diseño
del S.O.
![Page 59: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/59.jpg)
Un planificador de procesos es un módulo del SO que se encarga de mover los procesos entre las distintas colas de planificación.
La ejecución de un proceso consiste en una alternancia entre ráfagas de CPU y ráfagas de E/S.
Un proceso limitado por E/S (I/O bound) es aquél que pasa más tiempo haciendo E/S que usando la CPU (tiene ráfagas de CPU cortas).
Un proceso limitado por CPU (CPU bound) es aquél que pasa más tiempo computando que haciendo E/S (tiene ráfagas de CPU largas).
3.2 Planificador
![Page 60: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/60.jpg)
Esquema de la Alternancia de ráfagas de CPU y E/S
![Page 61: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/61.jpg)
Existen cuatro circunstancias por las cuales se puede decidir planificar la CPU:
1. Cuando un proceso cambia de estado de ejecución a estado de espera (Ej: solicicitud de de E/S, invocación wait para esperar que termine de ejecutarse uno de los procesos hijo)2. Cuando un proceso cambia del estado de ejecución al estado preparado (Ej: Cuando se produce una interrupción)3. Cuando un proceso cambia del estado de espera al estado preparado (Ej: cuando se completa una opración de E/S)4. Cuando un proceso finaliza su ejecución.Cuando ocurre 1 ó 4, el planificador es invocado debido a que el proceso en ejecución libera el procesador.Si el planificador es invocado cuando ocurre 2 ó 3, se dice que este es expropiativo, ya que puede quitar el procesador al proceso que estaba en ejecución.
![Page 62: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/62.jpg)
Planificador a largo plazo (planificacion de la cola de trabajos) - escoge los procesos que saldran de la cola de trabajos e ingresarán en la cola de listos o preparadosPlanificador a medio plazo (planifi de cola intermedia)Escoge los procesos que saldrán temporalmente de la memoria principal (cola listos) y pasados a una cola intermedia y luego son devueltos a la cola de listos (intercambio, swapping)
Tipos de planificadores
Planificador a corto plazo (planificador de la cola listos) - escoge de la cola de listos el proceso que se ejecutará a continuación y le asigna la CPU
![Page 63: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/63.jpg)
El despachador es un módulo que cede la CPU al proceso elegido por el planificador de CPU. Para ello el despachador tiene que:
Realizar una conmutación de la CPU
Cambiar la máquina a modo usuario (no privilegiado)
Saltar al punto apropiado del programa para continuar con su ejecución
El tiempo que tarda el despachador en detener un proceso y poner otro en ejecución se denomina latencia del despachador. Debe ser lo más pequeña posible
3.3 Despachador
![Page 64: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/64.jpg)
3.4 Criterios de planificación
Los criterios que el S.O toma en cuenta para decidir que algoritmo utilizar en una situación en particular son:
1. Utilización de la CPU: Mantener la CPU tan ocupada como sea posible. Son valores comprendidos entre 40 y 100 %. (40% sistema ligeramente cargado y 90 % sistema intensamente cargado). Maximizar
2. Tasa de procesamiento: Info sobre número de procesos que se completan por unidad de tiempo. maximizar
3. Tasa de ejecución: Info por proceso que es la suma del tiempo que espera para cargarse en memoria + tiempo de espera en la cola de procesos preparados+tiempo de ejecución en CPU y colas de E/S. minimizar
![Page 65: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/65.jpg)
4. Tiempo de espera: Es el tiempo que espera un proceso en la cola de procesos listos para ser ejecutado (minimizar)
5. Tiempo de retorno / T Salida: Es el tiempo transcurrido desde que se empieza el proceso hasta que se completa su ejecución (minimizar)
6. Tasa de Respuesta / T Servicio: Es el tiempo de espera mas el tiempo de ejecución (minimizar).
![Page 66: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/66.jpg)
3.4 Algoritmos de Planificación
Pezamos revisando conceptos claves:
Proceso: Es una tarea en ejecución
Estados de un proceso: Listo, En ejecución y Bloqueado
Importancia de la planiificación: Se deben ejecutar en orden ciertas tareas dentro del sistema operativo
Objetivos de la planificación: EquidadMaximizar el uso de la CPUMaximizar la productividadMinimizar el tiempo de esperaMinimizar el tiempo de retornoMinimizar el tiempo de respuesta
![Page 67: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/67.jpg)
1. Algoritmo FIFO (First-Come, First-Served (FCFS)):
Conocido tambien como El primero en entrar es el primero en salir
En este algoritmo el tiempo de espera para que un proceso se ejecute es incierto y no mínimo.
Pudiendo así ejecutarse dentro de la CPU un proceso que consuma demasiado tiempo, atrasando a otros procesos y dejando la CPU sin trabajo por lapsos de tiempo.
En definitiva este algoritmo hace que los procesos pequeños (en relación de ráfagas de CPU o tiempo de uso de CPU) esperen a que un proceso grande abandone la CPU. Esto se convierte en una gran desventaja.
![Page 68: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/68.jpg)
Ejemplo del Algoritmo FIFO
ProcesosRáfaga de CPU (ms)
P1 24
P2 3
P3 3
Los procesos llegan en el orden: P1 , P2 , P3 . La planificación es:
Tiempo de espera para P1 = 0; P2 = 24; P3 = 27
Tiempo de espera medio: (0 + 24 + 27)/3 = 17ut
P1 P2 P3
24 27 300
![Page 69: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/69.jpg)
Ejemplo del Algoritmo FIFO
Ahora cambiamos el orden de llegada de los procesos
P2 , P3 , P1
La nueva planificación es:
Tiempo de espera para P1 = 6; P2 = 0; P3 = 3
Tiempo medio de espera: (6 + 0 + 3)/3 = 3
Mejoramos la planificación anterior
Con este algoritmo se puede producir un efecto convoy: varios procesos de ráfaga de CPU corta tienen que esperar a un proceso de ráfaga larga
P1P3P2
63 300
![Page 70: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/70.jpg)
Ejercicio 1
Procesos Ráfaga CPU (ms) T Llegada
P1 3 2
P2 1 4
P3 3 0
P4 4 1
P5 2 3
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 71: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/71.jpg)
Ejercicio 2
Procesos Ráfaga CPU (ms) T Llegada
P1 3 0
P2 1 1
P3 2 4
P4 3 5
P5 2 5
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 72: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/72.jpg)
1. Algoritmo SJF (Shortest Job First ):
Conocido tambien como El primer trabajo más corto
En otras palabras SJF seleciona el proceso con el trabajo mas corto
Asigna la CPU al proceso cuya siguiente ráfaga de CPU es más corta. Si dos procesos empatan se resuelve el empate por FCFS
Dos posibilidades:
no expropiativo (Cooperativo) – cuando se asigna la CPU a un proceso no se puede expropiar hasta que completa su ráfaga de CPU
Expropiativo (Apropiativo) – si llega un proceso a la cola de listos con una ráfaga de CPU más corta que el tiempo que le queda al proceso en ejecución, se expropia.
SJF es óptimo – da el mínimo tiempo de espera medio para un conjunto de procesos dado
Pero requiere conocer de antemano la duración de la siguiente ráfaga de CPU
![Page 73: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/73.jpg)
Ejemplo Algoritmo SJF (no expropiativo / colaborativo) :
Procesos T Llegada Ráfaga CPU
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (no expropiativo)
Tiepo de espera P1=(0-0);P2=(8-2);P3=(7-4);P4=(12-5)
Tiempo de espera medio = (0 + 6 + 3 + 7)/4 = 4 ut
P1 P3 P2
73 160
P4
8 12
![Page 74: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/74.jpg)
Ejemplo Algoritmo SJF (expropiativo / apropiativo) :
Procesos T Llegada Ráfaga CPU
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (apropiativo)
Tiempo de espera medio = (9 + 1 + 0 +2)/4 = 3 ut
Tiempo de retorno = (16 + 7 + 5 +11)/4 = 9.75 ut
P1 P3P2
42 110
P4
5 7
P2 P1
16
![Page 75: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/75.jpg)
Ejercicio 1
Procesos Ráfaga CPU (ms) T Llegada
P1 3 2
P2 1 4
P3 3 0
P4 4 1
P5 2 3
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 76: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/76.jpg)
Ejercicio 2
Procesos Ráfaga CPU (ms) T Llegada
P1 3 0
P2 1 1
P3 2 4
P4 3 5
P5 2 5
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 77: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/77.jpg)
3. Algoritmo Por Prioridades
Se asocia con cada proceso una prioridad (número entero).
La CPU se asigna al proceso con la prioridad más alta (consideramos número pequeño== prioridad alta)
Tenemos dos posibilidades:
Expropiativo (Apropiativo)
No expropiativo (Cooperativo)
SJF se puede ver como un algoritmo de planificación por prioridad en el que la prioridad es la duración predicha para la siguiente ráfaga de CPU
Problema: Inanición (Bloqueo indefinido) – los procesos de más baja prioridad podrían no ejecutarse nunca
Solución: Envejecimiento – conforme el tiempo pasa aumentar la prioridad de los procesos que esperan mucho en el sistema
![Page 78: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/78.jpg)
Ejercicio 1
Procesos Ráfaga CPU (ms) T Llegada Prioridad
P1 3 2 2
P2 1 4 3
P3 3 0 1
P4 4 1 3
P5 2 3 4
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 79: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/79.jpg)
Ejercicio 2
Procesos Ráfaga CPU (ms) T Llegada Prioridad
P1 3 0 1
P2 1 1 2
P3 2 4 3
P4 3 5 2
P5 2 5 4
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 80: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/80.jpg)
4. Algoritmo Roud Robion (Por Turnos)
Cada proceso obtiene la CPU durante un breve espacio de tiempo (cuanto o quantum(q) de tiempo), normalmente de 10 a 100 milisegundos. Cuando el tiempo pasa, el proceso es expropiado e insertado al final de la cola de listos.
Desempeño
q grande == FCFS
q pequeño == (este se denomina compartición de recursos se darán la apariencia de varios procesadores), aumenta el tiempo de cambio de contexto)
Es necesario q (de 10 a 100 milisegundos)sea grande con respecto a la conmutación de contexto(menor a 10 milisegundos), en otro caso la sobrecarga es muy alta
![Page 81: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/81.jpg)
Ejercicio 1
Procesos Ráfaga CPU (ms) T Llegada Prioridad
P1 3 2 2
P2 1 4 3
P3 3 0 1
P4 4 1 3
P5 2 3 4
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
Algoritmo por Round Robin o Circular
![Page 82: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/82.jpg)
Ejercicio 2
Procesos Ráfaga CPU (ms) T Llegada Prioridad
P1 3 0 1
P2 1 1 2
P3 2 4 3
P4 3 5 2
P5 2 5 4
Calcular el tiemo de espera de cada proceso y el tiempo medio de todos los procesos.
Calcular el tiempo de retorno de cada proceso y el tiempo promedio de todos los procesos.
Calcular el tiempo de respuesta de cada proceso y el tiempo promedio de todos los procesos.
![Page 83: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/83.jpg)
3.5 Planificación de sistemas multiprocesador
El objetivo es utilizar cualquiera de los procesadores para ejecutar un proceso de la cola de procesos preparados o listos.
Esto significa que ,si hay disponibles múltiples CPU entonces se puede compartir la carga, pero esto hace que la planificación sea más compleja.
![Page 84: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/84.jpg)
3.5.1 Métodos de planificación en sistemas multiprocesador
Multiprocesamiento asimétrico.- un solo procesador actua servidor maestro que procesa los procesos de E/S, y actividades del Sistema Operativo; y los otros procesadores ejecutan procesos de usuario.
Multiprocesamiento simétrico(SMP).- Cada procesador planifica y selecciona el proceso de la cola de preparados para ejecutarlos. (los procesadores pueden estar en una cola común; o cada procesador tiene su propia cola de procesos a ejecutar)
Todos los sistemas operativos modernos soportan multiprocesamiento simetrico Windows XP, Windows 2000, Solaris, Linux, Mac OS X.
![Page 85: Gestión de procesos](https://reader033.fdocuments.es/reader033/viewer/2022042816/559858c51a28abf75a8b457c/html5/thumbnails/85.jpg)
Esquema del multiprocesamiento simetrico