Sistemas operativos Profesor: Rodrigo Sanhueza Figueroa

Preview:

Citation preview

Sistemas operativos

Profesor: Rodrigo Sanhueza Figueroa

Administración de procesos

Contenidos Concepto de proceso Planificación de procesos Operaciones con procesos Comunicación entre procesos

Concepto de proceso

Programa en ejecución Siempre tiene una hebra de ejecución Se ejecuta de forma secuencial Durante la ejecución cambia de estados

Nuevo En ejecución En espera (I/O) Listo Terminado

Concepto de proceso

Durante la ejecución cambia de estados

Concepto de proceso

S.O. multitareas cooperativos / preemptivos En cooperativos o no preemptivos un

proceso se puede tomar la CPU y no soltarla más

No puede garantizar que va a atender a un proceso cuando se lo pida

También se les llama apropiativos y no apropiativos

Concepto de proceso

El S.O. guarda info de ellos en el PCB, bloque de control de procesos. Estado del proceso Contador de programa, PC Registros de la CPU Información de planificación de CPU Información de uso (tiempos de CPU) Información de estado de I/O (dispositivos

usados, archivos abiertos)

Concepto de proceso

Planificación de procesos

Planificación: proceso por el cual el sistema operativo selecciona que proceso ejecutar, ocupa algoritmo de planificación

Para que sirve planificar Equidad, todos los procesos deben poder ejecutarse Eficacia, mantener ocupada la CPU un 100% del tiempo Tiempo de respuesta, minimizar el tiempo de respuesta al

usuario Tiempo de regreso, minimizar el tiempo que deben

esperar los usuarios por lotes para obtener sus resultados Rendimiento, maximizar el número de tareas procesadas

por hora.

Planificación de procesos

Colas de planificación Cola de trabajo Cola de procesos listos Cola de dispositivos Existe migración de procesos entre las

colas.

Planificación de procesos

Diagrama de colas

Planificación de procesos

Schedulers (planificadores) Un proceso migra de una cola de

planificación a otra durante su existencia El planificador se encarga de la selección Cambio de contexto

Cuando la CPU cambia a otro proceso, el sistema debe grabar el estado del proceso antiguo y cargar el estado del proceso nuevo

Cambio de contexto System overhead

Planificación de procesos

Dispatcher: Módulo que cede el control de la CPU al proceso seleccionado

Devuelve el control al scheduler una vez que el proceso ha terminado

Planificación de procesos

Criterios de planificación Max Utilización CPU Max Throughput (rendimiento) Min Tiempo retorno Min Tiempo espera Min Tiempo respuesta

Planificación de procesos

Algoritmos de planificación FIFO SJF Con prioridad Round Robin

Planificación de procesos

Servicio por orden de llegada: FIFO Consiste en una cola, la CPU atiende al

los procesos en orden de llegada No es preemptivo Analogía: supermercado Hay un tiempo de espera por proceso Hay un tiempo de espera promedio

Planificación de procesos

FIFO

Planificación de procesos

Primero el trabajo más corto: SJF Asigna la CPU a la ráfaga más corta Si hay igual duración queda como un

FIFO Minimiza tiempo promedio entre

procesos Los trabajos largos atrasan lo menos

posible a los demás

Planificación de procesos

SJF

Planificación de procesos

Planificación con prioridad Procesos asociados a número entero de

prioridad CPU proceso con prioridad más alta,

menor número Problema: bloqueo indefinido o inanición Solución: envejecimiento

Planificación de procesos

Proceso Tiempo ráfaga Prioridad

P1 10 3

P2 1 1

P3 2 3

P4 1 4

P5 5 2

Espera de 8.2 miliseg

Planificación de procesos

Round Robin: FIFO preemptivo Cada proceso se ejecuta un quantum (cantidad

pequeña de tiempo) Cambios de contexto

Planificación de procesos

Un 80% de las ráfagas de CPU son más cortas que el quantum

Proceso Duración de la ráfaga

P1 24

P2 3

P3 3

Con Quantum de 4: Tiempo promedio 5.66

Administración de procesos

Administración de procesos

Planificación de colas en múltiples niveles Se usa cuando es fácil clasificar los

procesos Cada cola tiene propio algoritmo de

planificación Planificación entre colas

Administración de procesos

Planificación por cola de múltiples niveles y retroalimentación Se permite a los procesos pasar de una

cola a otra Si un proceso usa demasiada CPU pasa

a una cola de menor prioridad Si pasa mucho tiempo en una cola pasa

a una de mayor prioridad (evitar envejecimiento de procesos)

Planificación de procesos

Planificación de procesos

parámetros: Número de colas. El algoritmo de planificación de cada cola. El método empleado para determinar cuando

promover procesos a cola con más prioridad. El método empleado para determinar en cual

cola ingresará un proceso cuando necesite servicio.

Operaciones con procesos

Los procesos padres crean procesos hijos

Los procesos hijos: Padres e hijos comparten recursos Usan un subconjunto de recursos del

padre No comparten recursos

Operaciones con procesos

Opciones de ejecución Padre e hijo concurrentes Padre espera a que termine el hijo

En UNIX: instrucción fork, que crea una copia del espacio de direcciones del padre, pueden ser concurrentes

Operaciones con procesos

Terminación de procesos Termina cuando ejecuta su última

instrucción Los procesos padres pueden terminar a

un proceso hijo

Operaciones con procesos

Los procesos pueden ser independientes o cooperativos Cooperativos comparten datos

Aceleran cálculos Modularidad comodidad

No determinismo

Operaciones con procesos

Hebras o threads Una hebra es una unidad básica de utilización

de CPU PC Registros Pila

Puede compartir con otras hebras Código Datos recursos

Operaciones con procesos

Operaciones con procesos

Hebras de usuario y hebras del kernel

Comunicación entre procesos

Se tienen mecanismos que permiten la comunicación y sincronización de procesos

Problema del productor y consumidor buffers

Mensajería Send Receive

Comunicación entre procesos

Comunicación entre procesos

Comunicación entre procesos

Comunicación entre procesos

Comunicación entre procesos

Recommended