administración de procesos - marubarrenechea's weblog · 9 concurrencia –definiciones Øun...

29
1 Administraci Administració n de n de procesos procesos El modelo de Procesos Concepto Concepto central dentro de cualquier sistema 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.

Upload: nguyenhuong

Post on 01-Oct-2018

212 views

Category:

Documents


0 download

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

29

PreguntasPreguntas

PrPrááctica de Laboratorioctica de Laboratorio

§ Planificación de procesos