SlideShare una empresa de Scribd logo
1 de 85
Descargar para leer sin conexión
CARRERA DE INGENIERIA EN SISTEMAS 
SISTEMAS OPERATIVOS 
Docente: 
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: fpajila@unl.edu.ec
Segunda Parte: 
Administració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.
1. Procesos
Introducción 
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.
1. Concepto 
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 
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 
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 
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.
Proceso en memoria
1.1 Estados de un proceso 
Conforme se ejecuta un proceso cambia su estado. 
– 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.
Diagrama de estados de un proceso
1.2 Bloque de control de proceso 
(PCB) 
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)
Diagrama bloque de control de proceso 
(PCB)
Diagrama de conmutación de la CPU de un 
proceso a otro
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.
2. Planificació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.
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.
Planificador de procesos en Linux 
Represented by the C structure task_struct 
pid 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 */
2.1 Colas de planificación 
Los procesos se encuentran en colas y se 
mueven entre ellas 
Cola de trabajos: conjunto de todos los 
procesos en el sistema 
Cola de procesos listos: conjunto de 
procesos que se encuentran en memoria 
principal, listos y esperando ejecutarse 
Colas de dispositivo: conjunto de 
procesos esperando un dispositivo de E/S
Diagrama de cola de procesos preparados y 
diversas colas de los dispositivos de E/S
Diagrama de colas para la 
planificació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)
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
Diagrama de colas para la 
planificació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
Diagrama de conmutación de contexto
3. Operaciones sobre procesos 
3.1 Introducion 
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?
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.
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).
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
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 -el 
Un proceso puede tener muchos hijos pero sólo un 
padre
El padre puede pasar al hijo datos de inicialización 
(entrada) 
Compartición de recursos 
Padre puede repartir sus recursos entre sus hijos 
El hijo puede estar restringido a un subconjunto de 
los recursos del padre 
El hijo o subproceso tambien puede obtener recursos 
directamente del S.O. 
Ejecución 
El padre y el hijo se ejecutan concurrentemente 
El padre espera hasta que el hijo termine de 
ejecutarse 
Espacio de direcciones 
El hijo es un duplicado del padre(Usa el mismo 
Programa y datosdel padre) 
El proceso hijo carga un nuevo programa
Arbol de procesos en un Sistema Solaris
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
Programa C que bifurca un proceso distinto
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
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 )
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
Modelos de comunicación (a) Paso de Mensajes (b) Memoria Compartida
3.4 Ejercicios 
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.
2. Hilos
2.1 Introducion 
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 
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.
Esquema de procesos monohebra y multihebra
2.1 Introducion 
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 
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.2 Ventajas 
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 Hebras a nivel de usuario 
•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
Esquema de modelos de hebras
2.2 Hebras a nivel de usuario 
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.3 Hebras a nivel de Kernel 
•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 lenta 
Si una hebra se bloquea las hebras pares pueden continuar 
Todas las hebras reciben el mismo tiempo de CPU
2.4 Ejercicios 
•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.
3. Planificación 
de la CPU
Introducción 
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.
Objetivos de la planificación 
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.
3.1. Conceptos Básicos 
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.
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.
3.2 Planificador 
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).
Esquema de la Alternancia de ráfagas de CPU y E/S
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.
Tipos de planificadores 
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 preparados 
Planificador 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) 
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
3.3 Despachador 
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.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
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).
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: 
Equidad 
Maximizar el uso de la CPU 
Maximizar la productividad 
Minimizar el tiempo de espera 
Minimizar el tiempo de retorno 
Minimizar el tiempo de respuesta
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.
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: 
P1 P2 P3 
0 24 27 30 
Tiempo de espera para P1 = 0; P2 = 24; P3 = 27 
Tiempo de espera medio: (0 + 24 + 27)/3 = 17ut
Ejemplo del Algoritmo FIFO 
Ahora cambiamos el orden de llegada de los procesos 
P2 , P3 , P1 
La nueva planificación es: 
P1 P3 P2 
0 3 6 30 
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
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.
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.
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
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) 
P1 P3 P2 
P4 
0 3 7 8 12 
16 
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
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) 
P1 P3 P2 
PPP2 4 
1 
0 2 4 5 7 
11 
Tiempo de espera medio = (9 + 1 + 0 +2)/4 = 3 ut 
Tiempo de retorno = (16 + 7 + 5 +11)/4 = 9.75 ut 
16
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.
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.
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
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.
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.
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
Algoritmo por Round Robin o Circular 
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.
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.
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.
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.
Esquema del multiprocesamiento simetrico

Más contenido relacionado

La actualidad más candente

Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesDaniel Morales
 
Protocolo ventana deslizante
Protocolo ventana deslizanteProtocolo ventana deslizante
Protocolo ventana deslizanteasanterom
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAErika Rodríguez
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entradaSasil Catzim
 
Buses, Direccionamiento, Temporizacion
Buses, Direccionamiento, TemporizacionBuses, Direccionamiento, Temporizacion
Buses, Direccionamiento, TemporizacionYESENIA CETINA
 
Control de flujo por hardware o software,
Control de flujo  por hardware o software,Control de flujo  por hardware o software,
Control de flujo por hardware o software,Victor Mijangos
 
Direccion ip
Direccion ipDireccion ip
Direccion ipelizabeth
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salidaDavid Martinez
 
Protocolos de la capas del modelo osi
Protocolos de la capas del modelo osiProtocolos de la capas del modelo osi
Protocolos de la capas del modelo ositaniannz
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
Decodificador de instrucciones
Decodificador de instruccionesDecodificador de instrucciones
Decodificador de instruccionesAlejandro Cano
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónNatalia Ludeña
 
Arquitectura de memorias RAM Y ROM
Arquitectura de memorias RAM Y ROMArquitectura de memorias RAM Y ROM
Arquitectura de memorias RAM Y ROMYESENIA CETINA
 

La actualidad más candente (20)

Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Protocolo ventana deslizante
Protocolo ventana deslizanteProtocolo ventana deslizante
Protocolo ventana deslizante
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Buses, Direccionamiento, Temporizacion
Buses, Direccionamiento, TemporizacionBuses, Direccionamiento, Temporizacion
Buses, Direccionamiento, Temporizacion
 
Control de flujo por hardware o software,
Control de flujo  por hardware o software,Control de flujo  por hardware o software,
Control de flujo por hardware o software,
 
Direccion ip
Direccion ipDireccion ip
Direccion ip
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Protocolos de la capas del modelo osi
Protocolos de la capas del modelo osiProtocolos de la capas del modelo osi
Protocolos de la capas del modelo osi
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Decodificador de instrucciones
Decodificador de instruccionesDecodificador de instrucciones
Decodificador de instrucciones
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y Fragmentación
 
Arquitectura de memorias RAM Y ROM
Arquitectura de memorias RAM Y ROMArquitectura de memorias RAM Y ROM
Arquitectura de memorias RAM Y ROM
 

Similar a Gestión de procesos (20)

Grupo1
Grupo1Grupo1
Grupo1
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Portafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisioPortafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisio
 
Portafolio dionisio 2
Portafolio dionisio 2Portafolio dionisio 2
Portafolio dionisio 2
 
Capitulo5 2011
Capitulo5 2011Capitulo5 2011
Capitulo5 2011
 
Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrencia
 
Procesos
ProcesosProcesos
Procesos
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Clases procesos
Clases procesosClases procesos
Clases procesos
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Procesos
ProcesosProcesos
Procesos
 
Planificador
PlanificadorPlanificador
Planificador
 
Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa ii
 
Procesos
ProcesosProcesos
Procesos
 
Prueba
PruebaPrueba
Prueba
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Capitulo4.ppt
Capitulo4.pptCapitulo4.ppt
Capitulo4.ppt
 
Capitulo4.ppt
Capitulo4.pptCapitulo4.ppt
Capitulo4.ppt
 

Más de Freddy Patricio Ajila Zaquinaula (9)

Introducción a las Tics
Introducción a las TicsIntroducción a las Tics
Introducción a las Tics
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Introducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativoIntroducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativo
 
Unidad Central de procesamiento
Unidad Central de procesamientoUnidad Central de procesamiento
Unidad Central de procesamiento
 
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
Memoria Externa, Unidadad de Entrada/Salida, Introducción al Sistema Operativo
 
Sistema de Interconexión, Memoria Caché, Memoria Interna.
Sistema de Interconexión, Memoria Caché, Memoria Interna.Sistema de Interconexión, Memoria Caché, Memoria Interna.
Sistema de Interconexión, Memoria Caché, Memoria Interna.
 
Organizacion y arquitectura del computador (UNL marzo - julio 2013)
Organizacion y arquitectura del computador (UNL marzo - julio 2013)Organizacion y arquitectura del computador (UNL marzo - julio 2013)
Organizacion y arquitectura del computador (UNL marzo - julio 2013)
 

Último

LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 

Último (20)

LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 

Gestión de procesos

  • 1. CARRERA DE INGENIERIA EN SISTEMAS SISTEMAS OPERATIVOS Docente: 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: fpajila@unl.edu.ec
  • 3. 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.
  • 5. Introducción 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.
  • 6. 1. Concepto 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”
  • 7. 1. Concepto 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)
  • 8. 1. Concepto 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)
  • 9. 1. Concepto 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.
  • 11. 1.1 Estados de un proceso Conforme se ejecuta un proceso cambia su estado. – 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.
  • 12. Diagrama de estados de un proceso
  • 13. 1.2 Bloque de control de proceso (PCB) 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)
  • 14. Diagrama bloque de control de proceso (PCB)
  • 15. Diagrama de conmutación de la CPU de un proceso a otro
  • 16. 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.
  • 17. 2. Planificació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.
  • 18. 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.
  • 19. Planificador de procesos en Linux Represented by the C structure task_struct pid 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 */
  • 20. 2.1 Colas de planificación Los procesos se encuentran en colas y se mueven entre ellas Cola de trabajos: conjunto de todos los procesos en el sistema Cola de procesos listos: conjunto de procesos que se encuentran en memoria principal, listos y esperando ejecutarse Colas de dispositivo: conjunto de procesos esperando un dispositivo de E/S
  • 21. Diagrama de cola de procesos preparados y diversas colas de los dispositivos de E/S
  • 22. Diagrama de colas para la planificación de procesos
  • 23. 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)
  • 24. 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
  • 25. Diagrama de colas para la planificación de procesos
  • 26. 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
  • 28. 3. Operaciones sobre procesos 3.1 Introducion 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?
  • 29. 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.
  • 30. 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).
  • 31. 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
  • 32. 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 -el Un proceso puede tener muchos hijos pero sólo un padre
  • 33. El padre puede pasar al hijo datos de inicialización (entrada) Compartición de recursos Padre puede repartir sus recursos entre sus hijos El hijo puede estar restringido a un subconjunto de los recursos del padre El hijo o subproceso tambien puede obtener recursos directamente del S.O. Ejecución El padre y el hijo se ejecutan concurrentemente El padre espera hasta que el hijo termine de ejecutarse Espacio de direcciones El hijo es un duplicado del padre(Usa el mismo Programa y datosdel padre) El proceso hijo carga un nuevo programa
  • 34. Arbol de procesos en un Sistema Solaris
  • 35. 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
  • 36. Programa C que bifurca un proceso distinto
  • 37. 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
  • 38. 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 )
  • 39. 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
  • 40. Modelos de comunicación (a) Paso de Mensajes (b) Memoria Compartida
  • 41. 3.4 Ejercicios 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.
  • 43. 2.1 Introducion 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
  • 44. 2.1 Introducion 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.
  • 45. Esquema de procesos monohebra y multihebra
  • 46. 2.1 Introducion 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.
  • 47. 2.1 Introducion 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
  • 48. 2.2 Ventajas 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.
  • 49. 2.2 Hebras a nivel de usuario •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
  • 50. Esquema de modelos de hebras
  • 51. 2.2 Hebras a nivel de usuario 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
  • 52. 2.3 Hebras a nivel de Kernel •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 lenta Si una hebra se bloquea las hebras pares pueden continuar Todas las hebras reciben el mismo tiempo de CPU
  • 53. 2.4 Ejercicios •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.
  • 55. Introducción 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.
  • 56. Objetivos de la planificación 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.
  • 57. 3.1. Conceptos Básicos 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.
  • 58. 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.
  • 59. 3.2 Planificador 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).
  • 60. Esquema de la Alternancia de ráfagas de CPU y E/S
  • 61. 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.
  • 62. Tipos de planificadores 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 preparados Planificador 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) 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
  • 63. 3.3 Despachador 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
  • 64. 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
  • 65. 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).
  • 66. 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: Equidad Maximizar el uso de la CPU Maximizar la productividad Minimizar el tiempo de espera Minimizar el tiempo de retorno Minimizar el tiempo de respuesta
  • 67. 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.
  • 68. 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: P1 P2 P3 0 24 27 30 Tiempo de espera para P1 = 0; P2 = 24; P3 = 27 Tiempo de espera medio: (0 + 24 + 27)/3 = 17ut
  • 69. Ejemplo del Algoritmo FIFO Ahora cambiamos el orden de llegada de los procesos P2 , P3 , P1 La nueva planificación es: P1 P3 P2 0 3 6 30 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
  • 70. 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.
  • 71. 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.
  • 72. 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
  • 73. 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) P1 P3 P2 P4 0 3 7 8 12 16 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
  • 74. 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) P1 P3 P2 PPP2 4 1 0 2 4 5 7 11 Tiempo de espera medio = (9 + 1 + 0 +2)/4 = 3 ut Tiempo de retorno = (16 + 7 + 5 +11)/4 = 9.75 ut 16
  • 75. 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.
  • 76. 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.
  • 77. 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
  • 78. 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.
  • 79. 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.
  • 80. 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
  • 81. Algoritmo por Round Robin o Circular 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.
  • 82. 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.
  • 83. 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.
  • 84. 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.