gestión de procesos

85
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]

Upload: freddy-patricio-ajila-zaquinaula

Post on 05-Jul-2015

318 views

Category:

Education


14 download

DESCRIPTION

Gestión de procesos, hilos, alogoritmos de planificación.

TRANSCRIPT

Page 1: Gestión de procesos

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

Segunda Parte:

Administración de procesos

Page 3: Gestión de procesos

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

1. Procesos

Page 5: Gestión de procesos

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

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

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

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

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

Proceso en memoria

Page 11: Gestión de procesos

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

Diagrama de estados de un proceso

Page 13: Gestión de procesos

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

Diagrama bloque de control de proceso (PCB)

Page 15: Gestión de procesos

Diagrama de conmutación de la CPU de un proceso a otro

Page 16: Gestión de procesos

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

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

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

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

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

Diagrama de cola de procesos preparados y diversas colas de los dispositivos de E/S

Page 22: Gestión de procesos

Diagrama de colas para la planificación de procesos

Page 23: Gestión de procesos

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

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

Diagrama de colas para la planificación de procesos

Page 26: Gestión de procesos

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

Diagrama de conmutación de contexto

Page 28: Gestión de procesos

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

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

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

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

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

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

Arbol de procesos en un Sistema Solaris

Page 35: Gestión de procesos

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

Programa C que bifurca un proceso distinto

Page 37: Gestión de procesos

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

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

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

Modelos de comunicación (a) Paso de Mensajes (b) Memoria Compartida

Page 41: Gestión de procesos

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

2. Hilos

Page 43: Gestión de procesos

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

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

Esquema de procesos monohebra y multihebra

Page 46: Gestión de procesos

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

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

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

•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

Esquema de modelos de hebras

Page 51: Gestión de procesos

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

•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

•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

3. Planificación de la CPU

Page 55: Gestión de procesos

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

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

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

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

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

Esquema de la Alternancia de ráfagas de CPU y E/S

Page 61: Gestión de procesos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Esquema del multiprocesamiento simetrico