administración de procesos - marubarrenechea's weblog · 9 concurrencia –definiciones Øun...
TRANSCRIPT
1
AdministraciAdministracióón de n de procesosprocesos
El modelo de ProcesosConceptoConcepto central dentro de cualquier sistemacentral dentro de cualquier sistemaoperativooperativo..
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.
2
Estados de un Proceso
Bloqueado
Listo Corriendo
Estados de un Proceso
Corriendo
CorriendoCorriendo:ØEl procesador lo
esta ejecutando.ØEsta haciendo
uso del procesador.
Bloqueado
Listo
3
ListoListo:ØAl terminarse su
tiempo de CPU.ØPuede ser
ejecutado en cualquier momento.
Estados de un Proceso
Bloqueado
Listo Corriendo
BloqueadoBloqueado:ØNo se puede ejecutar.ØEstá a la espera de algún recurso.
Estados de un Proceso
Bloqueado
Listo Corriendo
4
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 seencuentre Listo.
5
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 sistema2. Ejecución de una llamada al sistema para crear procesos (ej.:
fork, CreateProcess)3. Solicitud de un usuario para crear procesos4. Inicio de un trabajo por lotes
El concepto de procesosEl concepto de procesos
6
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 procesosEl concepto de procesos
Comunicación entre procesosAlmacenamiento 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.
7
ConcurrenciaConcepto 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:
8
Concurrencia - Problemas1. 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 A6. 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 A6. 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
9
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.
10
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
PrPrááctica de Laboratorioctica de Laboratorio
§ Estado de procesos
11
PlanificaciPlanificacióón de n de ProcesosProcesos
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
12
PlanificaciPlanificacióón de procesosn de procesos
Los procesos tienen dos tipos de comportamiento:
a) Dedicados al cómputob) Dedicados a las E/S
Planificación - Criterios
Criterios que intenta buscar el planificador:
Ø EquidadØ EficaciaØ Tiempo de respuestaØRendimientoØ Tiempo de espera
13
PlanificaciPlanificacióón de procesosn 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 tomarPor planificación
14
Planificación - Criterios
¿Cuando es necesario planificar?
Bloqueado
Listo CorriendoEl 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
15
Planificación - Algoritmos
Hay tres categorías de algoritmos de planificación:
a) Para sistemas por lotesb) Para sistemas interactivosc) Para sistemas en tiempo real.
Planificación - AlgoritmosSistemas por lotes:
No hay usuarios impacientes esperando ante terminales.
Por lo general no son expropiativos, o son expropiativospero 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
16
Planificación - AlgoritmosFCFS (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: SimpleDesventaja: No es adecuado para los sistemas de propósito general
Planificación - AlgoritmosSJF (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.
17
Planificación - Algoritmos
SJF (Shortest Job First):
Planificación - AlgoritmosSistemas interactivos:
Es expropiativo para atender más rápido las solicitudes de los usuarios.
Características que deben tener:
a) Respuesta rápidab) Buena proporcionalidad (tiempo esperado vs. tiempo de cómputo requerido)
18
Planificación - AlgoritmosRound 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:
19
Planificación - AlgoritmosPlanificació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:
20
Planificación - AlgoritmosMú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 - AlgoritmosPor 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.
21
Planificación - AlgoritmosSistemas 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 plazosb) Buena predecibilidad
Planificación - AlgoritmosSegú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
22
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 - AlgoritmosPlanificación en dos niveles:
A BC D
E FG H
B CF G
E FG H
A BC D
A DE H
Procesos en la memoria Principal
Procesos en Disco
(a) (b) (c)
23
Práctica Ejemplo5 Procesos llegan a un Sistema de procesamiento por Lotes:
48 m.E
14 m.D
22 m.C
56 m.B
310 m.APrioridadPrioridadTpoTpo. de CPU. de CPUProcesoProceso
Práctica EjemploTarea: Se debe ejecutar la planificación completa de los procesos para los siguientes algoritmos:
1.Round Robin2.Planificación por prioridad3.FCFS (First Come, First Served)4.SJF (Shortest Job First)
24
Round RobinPara este algoritmo se debe suponer un quantum de 1 minuto de CPU.
E
D
C
B
A
10987654321VueltaProceso
5
4
3
2
1
10
9
8
7
6
14
13
FF
12
11
18
17
16
15
21
FF
20
19
24
23
22
26
FF
25
28
27
FF
29 30
Round RobinResultados:
Ø Total Proceso A:Ø Total Proceso B:Ø Total Proceso C:Ø Total Proceso D:Ø Total Proceso E:
Promedio Total:
25
Round RobinResultados:
Ø 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 PrioridadEl 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)
26
Por PrioridadResultados:Ø 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 A2. Proceso B3. Proceso C4. Proceso D5. Proceso E
FCFS Primero en llegar primero en ser atendido
27
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
28
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
ResumenResultados:
Ø Round Robin: 21.2Ø Por Prioridad: 20Ø FCFS: 19.2Ø SJF: 14