Examen final Arquitectura computadoras

5

Click here to load reader

Transcript of Examen final Arquitectura computadoras

Page 1: Examen final Arquitectura computadoras

PALACIN PALACIOS PAJUELO DANIEL

UNIVERSIDAD NACIONAL DANIEL ALCIDES CARRION

ARQUITECTURA DE COMPUTADORASPARCIAL 2009 I

OBSERVACIONES: La evaluación es individual, cualquier incumplimiento dará lugar a la anulación y su

correspondiente nota cero.

PREGUNTA 1

Se tiene el siguiente conjunto de procesos:

ProcesoDuración

de laráfaga

PrioridadInstante de

llegada

P1 8 3 0P2 2 2 1P3 5 3 3P4 4 0 4P5 9 1 6

Nota: Usar la columna prioridad sola para la

planificación por prioridades.

Calcular el tiempo promedio de espera

(considere algoritmos apropiativos) para:

Planificación del trabajo del más corto

primero, SJF

Planificación por prioridades

Planificación circular, quantum=3

PREGUNTA 2

Analice el programa y mencione donde se produce la exclusión mutua o donde fracasa la exclusión mutua. Mencione porque.

program preg2;(* version de primitivas de exclusion mutua*)var p1quiere, p2quiere: boolean; nolineas: integer;

process uno;var lin: integer;

begin for lin := 1 to 20 do begin p1quiere := true; while p2quiere do begin p1quiere := false;

p1quiere := true end; nolineas := nolineas + 1; p1quiere := false endend; (* uno *)

process dos;var lin: integer;

begin for lin := 1 to 30 do begin p2quiere := true; while p1quiere do begin p2quiere := false;

p2quiere := true end; nolineas := nolineas + 1; p2quiere := false endend; (* dos *)

begin nolineas := 0; cobegin uno; dos coend;

writeln('Total de líneas =',nolineas)end.

www.palacinp.es.tl

Page 2: Examen final Arquitectura computadoras

PALACIN PALACIOS PAJUELO DANIEL

Solución 1:

Se tiene el siguiente conjunto de procesos:

Duración de la

ráfaga

Prioridad Instante dellegada

P1 8 3 0P2 2 2 1P3 5 3 3P4 4 0 4P5 9 1 6

Nota: Usar la columna prioridad sola para la planificación por prioridades.

Calcular el tiempo promedio de espera (considere algoritmos apropiativos) para:

- Planificación del trabajo del más corto primero, SJF.

- Planificación por prioridades.

- Planificación circular, quantum = 3.

PLANIFICACIÓN DEL TRABAJO DEL MÁS CORTO PRIMERO, SJF.

Resolviendo por la grafica de Gantt:

Tomando los procesos según la duración de la ráfaga se tiene:

P2 P4 P3 P1 P5

0 2 6 11 19 28

Sacando el tiempo de espera de los procesos P1, P2, P3, P4, P5.

- El tiempo promedio de ejecución (11 + 0 + 6 + 2 + 19)/5 = 38

- El tiempo promedio de espera es = 38/5 = 7.6

www.palacinp.es.tl

Page 3: Examen final Arquitectura computadoras

PALACIN PALACIOS PAJUELO DANIEL

PLANIFICACIÓN POR PRIORIDADES

Resolviendo por la grafica de Gantt:

Usando la columna prioridad para resolver el problema.

P4 P5 P2 P1 P3

0 4 13 15 23 28

Sacando el tiempo de espera de los procesos P1, P2, P3, P4, P5,

El tiempo promedio de espera es = (15 + 13 + 23 + 0 + 4) = 55/5 = 11

PLANIFICACIÓN CIRCULAR

Resolviendo por la grafica de Gantt:

Tenemos quantum = 3, por lo tanto los procesos p1, p3, p4, p5 tendrán que ponerse en cola.

P1 P2 P3 P4 P5 P1 P3 P4 P5 P1 P5

0 3 5 8 11 14 17 19 20 23 25 28

Sacando el tiempo de espera de los procesos P1, P2, P3, P4, P5. Sumando todos los tiempos de espera y sacándoles su promedio; luego dividiéndolos por el número de procesos.

El promedio de tiempo ejecución = (0 + 3 + 5 + 8 + 11 + 14 + 17+ +19 + 20 + 23 + 25)/11 =12Ahora el tiempo de espera es 12/5 = 2.4

www.palacinp.es.tl

Page 4: Examen final Arquitectura computadoras

PALACIN PALACIOS PAJUELO DANIEL

Solución 2:

La ejecución de exclusión mutua se explica de la siguiente manera con los comentarios en rojo

program preg2;(* version de primitivas de exclusion mutua*)var p1quiere, p2quiere: boolean; (*ambos en falso*) nolineas: integer;

process uno;var lin: integer;

begin for lin := 1 to 20 do begin (* entra en exclusión mutua*) p1quiere := true; (* muestra interes de ingreso*) while p2quiere do (* entra en espera*)

begin (*establece que porceso se ejecutará*) p1quiere := false; p1quiere := true end; (*ingresa en su region critica*) nolineas := nolineas + 1; p1quiere := false(*establece que terminó p1*) (*sale de su region critica*) end (* sale de exclusión mutua*)end; (* uno *)

process dos;var lin: integer;

begin for lin := 1 to 30 do begin (* entra en exclusión mutua*)

p2quiere := true; (* muestra interes de ingreso*) while p1quiere do (* entra en espera*) begin (*establece que porceso se ejecutará*) p2quiere := false; p2quiere := true end; (*ingresa en su region critica*) nolineas := nolineas + 1; p2quiere := false (*establece que terminó p2*) (*sale de su region critica*) end (* sale de exclusión mutua*) end; (* dos *)

begin nolineas := 0; (*establece inicio en 0*) cobegin (*establece que proceso se iniciará*) uno; dos coend; writeln('Total de líneas =',nolineas)end.

La exclusión mutua queda garantizada y ya no hay interrupciones de procesos, pero presenta otro problema, el de postergación indefinida.

Veamos cómo. El proceso podría, por ejemplo, proceder en espera indefinida ya que podrían llegar momentos en se atendería demasiado tiempo aun proceso y se dejaría en espera extrema al otro pudiendo llegar a que este nunca sea atendido. Cada proceso puede ajustar su bandera en verdadero, hacer la prueba del while, entrar en el ciclo while, ajustar su bandera en falso, retardarse, ajustar su bandera en verdadero y, luego, repetir lo mismo, comenzando con la prueba del while, Mientras ocurre esto, las condiciones de prueba permanecerán verdaderas. Entonces podría ocurrir lo ya mencionado. Por lo tanto, la exclusión mutua fracasaría.

www.palacinp.es.tl