El modelo de Procesos Concepto central dentro de cualquier sistema operativo. operativo.
Proceso vs. Programa: Programa:
Ø Es un archivo o conjunto de archivos que contienen código ejecutable. Generalmente residen en el disco.
Proceso: Ø Es un programa cuando se encuentra en ejecución.
1
Estados de un Proceso Listo
Corriendo
Bloqueado
Estados de un Proceso Listo
Corriendo
Corriendo: Corriendo ØEl procesador lo Bloqueado esta ejecutando. ØEsta haciendo uso del procesador.
2
Estados de un Proceso Listo: Listo
Listo
Corriendo
ØAl terminarse su tiempo de CPU. Bloqueado ØPuede ser ejecutado en cualquier momento.
Estados de un Proceso Listo
Corriendo
Bloqueado
Bloqueado: Bloqueado
ØNo se puede ejecutar. ØEstá a la espera de algún recurso.
3
Estados de un Proceso Listo
Corriendo
El scheduler suspende y ejecuta los procesos de acuerdo al tiempo que llevan en ejecución o en espera. Bloqueado
Estados de un Proceso Listo
Corriendo
Cuando un proceso necesita un recurso ocupado. El scheduler ejecuta un proceso que se encuentre Listo. Bloqueado
4
Estados de un Proceso Listo
Corriendo
Se desocupa el recurso necesario. El proceso pasa a Listo para ser ejecutado
Bloqueado
El concepto de procesos
CREACIÓN DE PROCESOS: 1. Inicialización del sistema 2. Ejecución de una llamada al sistema para crear procesos (ej.: fork, CreateProcess) 3. Solicitud de un usuario para crear procesos 4. Inicio de un trabajo por lotes
5
El concepto de procesos
TERMINACIÓN DE PROCESOS: 1. Norma voluntaria (ej.: cerrar una ventana de windows) 2. Error voluntario (ej.: tratar de compilar un programa que no existe) 3. Error fatal involuntario (ej.: división por cero, llamada a memorias que no existen, etc.) 4. Terminado por otro proceso (ej.: kill, TerminateProcess)
Comunicación entre procesos Almacenamiento compartido: Ø Se designa un espacio de memoria. Ø Los procesos interesados pueden leer y escribir en él. Ø Es el método mas común de comunicación. Ø Se necesita un control muy estricto para evitar problemas de concurrencia.
6
Concurrencia Concepto fundamental en la comunicación entre procesos. Se ocupa de ordenar la forma en que se ocupan y liberan los recursos del sistema. ¿Por que es necesario? ØVeamos un ejemplo sencillo:
Concurrencia - Problemas Ø Cuando un proceso necesita imprimir un archivo, coloca el nombre del archivo en una tabla llamada spooler de impresión. Ø Otro proceso llamado demonio de impresión, lee los nombres, los imprime y los borra de la tabla. Ø Veamos que puede suceder si 2 procesos intentan imprimir simultáneamente:
7
Concurrencia - Problemas 1. El proceso A lee la tabla y ubica la posición 5 como libre. 2. El planificador decide pasar el control al proceso B. 3. El proceso B lee la tabla y ubica la posición 5 como libre. 4. Copia el nombre del archivo en la posición 5. 5. El planificador le devuelve el control a A 6. El proceso A copia su archivo en la posición 5 Este tipo de eventos se llaman sobrescribiendo el archivo de B.
condiciones de carrera o competencia
Concurrencia - Problemas 1. El proceso A lee la tabla y ubica la posición 5 como libre. 2. El planificador decide pasar el control al proceso B. 3. El proceso B lee la tabla y ubica la posición 5 como libre. 4. Copia el nombre del archivo en la posición 5. 5. El planificador le devuelve el control a A 6. El proceso A copia su archivo en la posición 5 sobrescribiendo el archivo de B.
A la tabla se le llama recurso crítico
8
Concurrencia – Definiciones Ø Un recurso crítico es cualquier recurso que puede ser alterado por dos o más procesos al mismo tiempo. Ø Una sección crítica es la porción de código de un proceso que accede a un recurso crítico. Ø El objetivo es prohibir que más de un proceso lea o escriba en un recurso crítico a la vez: buscamos la exclusión mutua.
Concurrencia – Exclusión mutua Para lograr la exclusión mutua se debe asegurar que: 1. Sólo un proceso debe estar en la sección crítica. 2. No se debe asumir nada acerca de la velocidad y el número de procesadores. 3. Un proceso fuera de su sección crítica no puede bloquear a otros procesos. 4. Los procesos no deben esperar indefinidamente para acceder a su sección crítica.
Algoritmo de Variables de Cierre Algoritmo de Alternancia Estricta Algoritmo de Peterson Instrucción Test and Set Lock Deshabilitar interrupciones Semáforos
Práctica de Laboratorio § Estado de procesos
10
Planificación de Procesos
Planificación Cuando más de un proceso está en espera de ser procesado, se debe seleccionar cual va a ser el siguiente en ejecutarse.
Ésta es la tarea del planificador o scheduler
11
Planificación de procesos
Los procesos tienen dos tipos de comportamiento: a) Dedicados al cómputo b) Dedicados a las E/S
Planificación - Criterios Criterios que intenta buscar el planificador: Ø Equidad Ø Eficacia Ø Tiempo de respuesta Ø Rendimiento Ø Tiempo de espera
12
Planificación de procesos
Los algoritmos de planificación se dividen en dos: a) No expropiativos (sin reloj) b) Expropiativos (con reloj)
Planificación - Criterios ¿Cuando es necesario planificar? Listo
Corriendo Bloqueado
Necesaria Por planificación
Decision a tomar
13
Planificación - Criterios ¿Cuando es necesario planificar? El planificador puede Listo seleccionar un proceso y ejecutarlo hasta el final o suspender los procesos ejecutándose para darle tiempo de CPU a otros procesos Listos.
Corriendo Bloqueado
Planificación no-expropiativa
Planificación - Criterios ¿Cuando es necesario planificar? El planificador puede Listo seleccionar un proceso y ejecutarlo hasta el final o suspender los procesos ejecutándose para darle tiempo de CPU a otros procesos Listos.
Corriendo Bloqueado
Planificación expropiativa
14
Planificación - Algoritmos Hay tres categorías de algoritmos de planificación: a) Para sistemas por lotes b) Para sistemas interactivos c) Para sistemas en tiempo real.
Planificación - Algoritmos Sistemas por lotes: No hay usuarios impacientes esperando ante terminales. Por lo general no son expropiativos, o son expropiativos pero con tiempos largos. Características que deben tener: a) rendimiento alto (# trabajos/hora) b) tiempo de retorno bajo (tiempo promedio de ejecución) c) utilización de CPU alta
15
Planificación - Algoritmos FCFS (First Come First Served, primero en llegar primero en ser atendido): Ø No expropiativo Ø Atiende a los procesos por estricto orden de llegada Ø Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S) Ventaja: Simple Desventaja: No es adecuado para los sistemas de propósito general
Planificación - Algoritmos SJF (Shortest Job First, trabajo más corto primero): Ø No expropiativo. Ø Procesa primero el trabajo que tenga el menor tiempo de CPU primero. Ø El que se ejecuta primero tiene mayor incidencia en el tiempo medio. Ø El último, tiene incidencia nula. Ventaja: El tiempo medio se minimiza. Desventaja: Hay que adivinar el futuro.
Planificación - Algoritmos Sistemas interactivos: Es expropiativo para atender más rápido las solicitudes de los usuarios. Características que deben tener: a) Respuesta rápida b) Buena proporcionalidad (tiempo esperado vs. tiempo de cómputo requerido)
17
Planificación - Algoritmos Round Robin: Ø Es expropiativo. Ø Se define una cantidad de tiempo (quantum). Ø Cada proceso está en CPU un quantum. Ø Luego se pasa a la cola de LISTOS. Ø Se debe escoger un quantum adecuado. Ventaja: El tiempo medio se minimiza. Desventaja: Hay que adivinar el futuro.
Planificación - Algoritmos Round Robin:
18
Planificación - Algoritmos Planificación por prioridad: Ø A cada proceso se le asigna una prioridad. Ø La CPU se asigna al proceso con mayor prioridad en la cola LISTOS. Ventaja: Los procesos se comportan de la manera deseable. Desventaja: Se deben definir las prioridades. ¿Que sucede si hay mas de un proceso con la misma prioridad?
Planificación - Algoritmos Planificación por prioridad:
19
Planificación - Algoritmos Múltiples Colas: Ø Se crean varias colas. Ø Cada cola tiene su scheduler. Ø Se necesita un scheduler entre las colas. Ventaja: Se puede calificar a los procesos de acuerdo a su prioridad. Desventaja: Aumenta la complejidad. Es necesario mantener múltiples schedulers
Planificación - Algoritmos Por loteria: Ø
Cada vez que sea necesario tomar una decision de planificacion se escoge al azar un boleto de loteria y el proceso que tiene el boleto obtiene el recurso.
Ø
El sistema puede realizar un sorteo 50 veces por segundo, otorgando al ganador 20 ms de tiempo de CPU.
Ø
Debido a que unos procesos son mas importantes que otros, se les da mas boletos para aumentar sus posibilidades.
Ventaja: Se puede calificar a los procesos de acuerdo a su importancia. Desventaja: Aumenta la complejidad por el diseño e implementación del metodo de sorteo.
20
Planificación - Algoritmos Sistemas en tiempo real: Por lo general no son expropiativos ya que son procesos pequeños diseñados para cumplir tareas específicas en tiempos cortos. Características que deben tener: a) Cumplir los plazos b) Buena predecibilidad
Planificación - Algoritmos Según el tiempo de respuesta se dividen en: ØSTR duros: Es aquel sistema en el que el incumplimiento de alguno de los requerimientos de tiempo de respuesta del sistema compromete su seguridad (el hardware del sistema) tiene que cumplir estrictamente el intervalo de control, si no lo hace entonces el sistema esta fallando. ØSTR blando: El incumplimiento de algunos de los requerimientos de tiempo de respuesta al sistema conducen al degradamiento de su funcionamiento
21
Planificación - Algoritmos Planificación en dos niveles: Ø Todos los procesos no pueden residir en memoria. Ø Algunos deben estar en algún almacenamiento secundario (el disco). Ø Se necesita seleccionar que procesos subirán a memoria y cuales bajarán al disco.
Planificación - Algoritmos Planificación en dos niveles: Procesos en la memoria Principal AB CD
EF GH
BC FG
EF GH
AB CD
AD EH
(a)
(b)
(c)
Procesos en Disco
22
Práctica Ejemplo 5 Procesos llegan a un Sistema de procesamiento por Lotes: Proceso A
Tpo. Tpo. de CPU 10 m.
Prioridad 3
B
6 m.
5
C
2 m.
2
D
4 m.
1
E
8 m.
4
Práctica Ejemplo Tarea: Se debe ejecutar la planificación completa de los procesos para los siguientes algoritmos: 1. Round Robin 2. Planificación por prioridad 3. FCFS (First Come, First Served) 4. SJF (Shortest Job First)
23
Round Robin Para este algoritmo se debe suponer un quantum de 1 minuto de CPU. Vuelta Proceso
1
2
A
1
6
B
2
7
C
3
8
D
4
9
E
5
3
4
5
6
7
8
9
10
11 15 19 22
25
27
29
30
12 16 20 23
F
28
F
F 13 17
F
10 14 18 21 24
26
Round Robin Resultados: Ø Ø Ø Ø Ø
Total Total Total Total Total
Proceso Proceso Proceso Proceso Proceso
A: B: C: D: E:
Promedio Total:
24
Round Robin Resultados: Ø Ø Ø Ø Ø
Total Total Total Total Total
Proceso Proceso Proceso Proceso Proceso
A: B: C: D: E:
30 23 8 17 28
Promedio Total: 21.2
Por Prioridad El orden de ejecución de los procesos debe seguir el orden de prioridades: 1. Proceso B (5) 2. Proceso E (4) 3. Proceso A (3) 4. Proceso C (2) 5. Proceso D (1)
25
Por Prioridad Resultados: Ø Total Proceso Ø Total Proceso Ø Total Proceso Ø Total Proceso Ø Total Proceso
B: E: 6+ 8 A:14+10 C:24+ 2 D:26+ 4
6 14 24 26 30
Promedio Total: 20
FCFS Primero en llegar primero en ser atendido Este algoritmo procesa primero al primero en llegar. El orden es entonces: 1. Proceso A 2. Proceso B 3. Proceso C 4. Proceso D 5. Proceso E
26
FCFS Primero en llegar primero en ser atendido Resultados: Ø Ø Ø Ø Ø
Total Total Total Total Total
Proceso Proceso Proceso Proceso Proceso
A: B: C: D: E:
10+6 16+2 18+4 22+8
10 16 18 22 30
Promedio Total: 19.2
SJF Primero el trabajo más corto Este algoritmo procesa primero proceso cuyo tiempo de ejecución sea menor: 1. Proceso 2. Proceso 3. Proceso 4. Proceso 5. Proceso
C (2) D (4) B (6) E (8) A (10)
27
SJF Primero el trabajo más corto Resultados: Ø Ø Ø Ø Ø
Total Total Total Total Total
Proceso Proceso Proceso Proceso Proceso
C: D: B: E: A:
2+ 4 6+ 6 12+ 8 20+10
2 6 12 20 30
Promedio Total: 14
Resumen Resultados: Ø Ø Ø Ø
Round Robin: Por Prioridad: FCFS: SJF:
21.2 20 19.2 14
28
Preguntas
Práctica de Laboratorio § Planificación de procesos