Administraci
Administració ó n de n de procesos
procesos
El modelo de Procesos
Concepto
Concepto central dentro de cualquier sistemacentral 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
Estados de un Proceso
Bloqueado
Listo Corriendo
Estados de un Proceso
Corriendo
Corriendo Corriendo:
ØEl procesador lo esta ejecutando.
ØEsta haciendo uso del
procesador.
Bloqueado
Listo
Listo Listo:
ØAl terminarse su tiempo de CPU.
ØPuede ser ejecutado en cualquier momento.
Estados de un Proceso
Bloqueado
Listo Corriendo
Bloqueado Bloqueado:
ØNo se puede ejecutar.
Estados de un Proceso
Bloqueado
Listo Corriendo
Estados de un Proceso
Bloqueado
Listo Corriendo
El scheduler suspende y ejecuta los procesos de acuerdo al tiempo que llevan en ejecución o en espera.
Estados de un Proceso
Bloqueado
Listo Corriendo
Cuando un proceso necesita un recurso ocupado.
El scheduler ejecuta un proceso que se
encuentre Listo.
Estados de un Proceso
Bloqueado
Listo Corriendo
Se desocupa el recurso necesario.
El proceso pasa a Listo para ser ejecutado
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
El concepto de procesos
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)
El concepto de procesos El concepto de procesos
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.
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:
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.
Este tipo de eventos se llaman
condiciones de carrera o competencia
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.
Concurrencia - Problemas
A la tabla se le llama recurso crítico
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.
Concurrencia – Soluciones
Existen diferentes soluciones:
Ø Algoritmo de Variables de Cierre Ø Algoritmo de Alternancia Estricta Ø Algoritmo de Peterson
Ø Instrucción Test and Set Lock Ø Deshabilitar interrupciones Ø Semáforos
Prá Pr áctica de Laboratorio ctica de Laboratorio
§ Estado de procesos
Planificaci
Planificació ón de n de Procesos
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
Planificaci
Planificació ón de procesos 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
Planificaci
Planificació ón de procesos 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?
Bloqueado
Listo Corriendo
Necesaria Decision a tomar Por planificación
Planificación - Criterios
¿Cuando es necesario planificar?
Bloqueado
Listo Corriendo
El planificador puede seleccionar un proceso y ejecutarlo hasta el final o suspender los procesos
ejecutándose para darle tiempo de CPU a otros procesos Listos.
Planificación no-expropiativa
Planificación - Criterios
¿Cuando es necesario planificar?
Bloqueado
Listo Corriendo
El planificador puede seleccionar un proceso y ejecutarlo hasta el final o suspender los procesos
ejecutándose para darle tiempo de CPU a otros procesos Listos.
Planificación expropiativa
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
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
SJF (Shortest Job First):
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)
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:
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 :
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.
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
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:
A B
C D E F
G H
B C F G
G HE F A B
C D A D
E H Procesos en la memoria Principal
Procesos en Disco
(a) (b) (c)
Práctica Ejemplo
5 Procesos llegan a un Sistema de procesamiento por Lotes:
4 8 m.
E
1 4 m.
D
2 2 m.
C
5 6 m.
B
3 10 m.
A
Prioridad Prioridad TpoTpo. de CPU. de CPU
Proceso Proceso
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)
Round Robin
Para este algoritmo se debe suponer un quantum de 1 minuto de CPU.
E D C B A
10 9 8 7 6 5 4 3 2
Vuelta 1
Proceso
5 4 3 2 1
10 9 8 7 6
14 13 FF 12 11
18 17 16 15
21 F F 20 19
24 23 22
26 F F 25
28 27
F F 29 30
Round Robin
Resultados:
Ø Total Proceso A:
Ø Total Proceso B:
Ø Total Proceso C:
Ø Total Proceso D:
Ø Total Proceso E:
Promedio Total:
Round Robin
Resultados:
Ø Total Proceso A: 30 Ø Total Proceso B: 23 Ø Total Proceso C: 8 Ø Total Proceso D: 17 Ø Total Proceso E: 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)
Por Prioridad
Resultados:
Ø Total Proceso B: 6 Ø Total Proceso E: 6+ 8 14 Ø Total Proceso A:14+10 24 Ø Total Proceso C:24+ 2 26 Ø Total Proceso D:26+ 4 30 Promedio Total: 20
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
FCFS Primero en llegar primero en
ser atendido
FCFS Primero en llegar primero en ser atendido
Resultados:
Ø Total Proceso A: 10
Ø Total Proceso B: 10+6 16 Ø Total Proceso C: 16+2 18 Ø Total Proceso D: 18+4 22 Ø Total Proceso E: 22+8 30 Promedio Total: 19.2
Este algoritmo procesa primero proceso cuyo tiempo de ejecución sea menor:
1. Proceso C (2) 2. Proceso D (4) 3. Proceso B (6) 4. Proceso E (8) 5. Proceso A (10)
SJF Primero el trabajo más corto
SJF Primero el trabajo más corto
Resultados:
Ø Total Proceso C: 2
Ø Total Proceso D: 2+ 4 6 Ø Total Proceso B: 6+ 6 12 Ø Total Proceso E: 12+ 8 20 Ø Total Proceso A: 20+10 30 Promedio Total: 14