Beruflich Dokumente
Kultur Dokumente
1
2
3
4
5
Nombre
Titulacin
SOLUCIONES
ms veloz
ms fcil de usar
ms seguro
ninguna de las anteriores
2.El fenmeno de espera activa por operaciones de entrada/salida se puede evitar utilizando:
a)
b)
c)
d)
interrupciones
instrucciones privilegiadas
acceso directo a memoria (DMA)
un pareja de registros base y lmite
4.Multiprogramacin implica:
a)
b)
c)
d)
Tiempo compartido
Procesamiento en lote
Interactividad
Todas las anteriores son falsas
5.Cul de estas tcnicas NO tiene como fin solapar la ejecucin de instrucciones en CPU con
la ejecucin de operaciones de entrada/salida?
a)
b)
c)
d)
6.Cuando un proceso en modo usuario intenta ejecutar una tarea privilegiada, ocurre:
a)
b)
c)
d)
una interrupcin
una excepcin
una llamada al sistema
un avatar
1/8
2/8
Nombre
2 (2,5 puntos)
t llegada
0
5
8
12
17
P1
P2
P3
P4
P5
Prioridad
5
3
2
1
4
CPU
7
4
5
4
6
Se pide:
a) Obtener el diagrama de Gantt, el tiempo de retorno y el tiempo de espera de cada
proceso, as como los tiempos medios de retorno y de espera.
b) Cuntas unidades de tiempo queda ociosa la CPU? Proponer alguna solucin para
minimizar dicho tiempo.
Solucin:
En los siguientes diagramas se muestran, por filas los procesos, y por columnas los
recuadros indican tiempo de CPU utilizada, y dentro de cada recuadro, subrayada, la
prioridad del proceso.
Para el problema planteado existen varias alternativas vlidas de solucin.
Alternativa 1: (Primero entra el proceso en la cola de preparados y luego se reevalan
las prioridades)
tret
tresp
actuacin
planificador
25
18
P1
11
P2
12
P3
10
P4
16
10
P5
14,8
u.t.
9,6
u.t.
12
15
18
21
24
-1
-2
21
-1
-1
10
-1
-2
-2
43
4
32
27
30
33
3/8
tresp
actuacin
planificador
25
18
P1
P2
P3
10
P4
16
10
P5
13,6
u.t.
8,4
u.t.
9
4
2
2
12
15
18
21
24
27
-1
27
30
33
30
33
1
1
0
1
--1
4
tresp
actuacin
planificador
25
18
P1
P2
12
P3
10
P4
16
10
P5
14,2
u.t.
9
u.t.
12
15
18
21
24
-1
-1
5
3
-1
4
El nmero de unidades de tiempo que la CPU est ociosa (cuadros sombreados) ser
de 7. Para minimizarlo podramos proponer que el planificador actuara tambin cuando
un proceso acaba totalmente, de forma que no queden instantes en los que la CPU no
trabajase.
3 (2.5 puntos) Responder y justificar brevemente cada una de las siguientes cuestiones:
a)
b)
4/8
Nombre
menos tiempo del procesador hayan consumido. Proponer una poltica que se ajuste
a lo solicitado, especificando sus principios de funcionamiento.
Una posible poltica sera una variante del Round-Robin que consistira
en ordenar la cola de unidades de ejecucin en estado listo utilizando
como criterio de ordenacin el tiempo del procesador ya consumido. A
igual tiempo consumido, entonces una ordenacin FIFO, o sea, por
tiempo de llegada a la cola.
c)
e)
5/8
4 (1,5 puntos)
Semforo empaqueta(0);
Semforo embotella(0);
int litros = 10;
Embotellador ()
{
loop {
... prepara una botella
Empaquetador ()
{
loop {
empaqueta.P();
litros = litros-1;
if ( litros == 0 ) {
empaqueta.V();
embotella.P();
}
}
litros = 10;
embotella.V();
}
}
5 (1,5 puntos)
6/8
Nombre
Siendo:
N: nmero de procesos que intervienen en el problema de seccin crtica
i: indica el proceso que quiere entrar en la seccin crtica
mn(v0, v1, , vn) : funcin que devuelve el valor mnimo
(a,b) < (c,d) : devuelve true si se cumple a<c o ((a=c) and (b<d)), en caso contrario
devuelve false;
La solucin propuesta es una versin errnea del algoritmo de la panadera de
Leslie Lamport. La eleccin del nmero de turno del algoritmo original se hace dndole
al proceso el mximo valor de los turnos de sus compaeros, ms uno. Aqu se ha
cambiado el mximo por el mnimo. Esto conduce a un algoritmo totalmente intil y
absurdo.
Puede comprobarse que cuando el proceso calcula su numero[i] a partir del mnimo de
los valores de nmero[], se devolver siempre un uno. Esto ocurre porque el mnimo
encontrado siempre es cero, que es el valor que precisamente tena numero[i] antes
de empezar a buscar el mnimo.
Lo anterior significa que los valores de numero[i] slo pueden ser:
- cero (el proceso no est interesado en entrar en seccin crtica)
- uno (el proceso quiere entrar en seccin crtica).
A su vez, eso significa que la lnea
while nmero[j] != 0 and (nmero([j],j) < (nmero[i],i) do no-operar;
realmente es equivalente a:
while nmero[j] ==1 and j<i do no-operar;
O sea, que un proceso I espera por otro proceso J si y solo si el proceso J quiere
entrar en seccin crtica y el identificador de J es menor que el de I. Esto significa que
si el proceso 10 est dentro de la seccin crtica y el proceso 5 est interesado en
entrar, este ltimo NO esperar por el proceso 10 y entrar sin ms en seccin crtica.
Es ms, si llega el proceso 3, tambin entrar en seccin crtica, porque no esperar ni
por el 5 ni por el 10. Por tanto se viola flagrantemente el requisito de exclusin
mutua.
Al no verificarse la exclusin mutua, no tiene sentido examinar las propiedades de
progreso o espera limitada. La solucin no es vlida.
Esto puede verse con ms claridad si reducimos el problema a N=2 procesos. El
cdigo de los dos procesos quedara como sigue:
Proceso 0.
eleccin[0] := true
nmero[0] := 1
eleccin[0] := false
while eleccin[1] do no-operar;
Seccin Crtica
nmero[0] := 0
Seccin Restante
Proceso 1.
eleccin[1] := true
nmero[1] := 1
eleccin[1] := false
while eleccin[0] do no-operar;
while nmero[0]==1 do no-operar;
Seccin Crtica
numero[1] := 0
Seccin Restante
7/8
Puede verse que el proceso 0 no tiene en cuenta al proceso 1 para entrar en seccin
crtica (slo se podra bloquear brevemente mientras eleccin[1] sea cierto, cosa que
slo ocurre fugazmente, mientras el proceso 1 est fijando el valor de nmero[1]). En
otras palabras, el proceso 0 entra en la seccin crtica cuando quiere, incluso si el
proceso 1 est dentro.
Progreso. Si la cumple ya que, por un lado, slo los que quieren entrar en la seccin
crtica influyen en la eleccin de quin entra (tendrn sus elementos de nmero
asociados a valores distinto de cero), y por otro lado, la eleccin siempre se realiza en
un tiempo finito (en caso de existir varios con un mismo valor de nmero, entonces
entra el que posea un menor identificador de proceso).
Espera limitada. No la cumple ya que existe la posibilidad de que varios procesos
posean un mismo valor de nmero debido a la frmula empleada para su obtencin
(que no tiene en cuenta el orden de peticin). De hecho, los nicos valores de nmero
son 0 1. Si esto ocurriese siempre entrara aqul con un identificador menor, por
tanto, se podran producir un castigo a aquellos procesos que posean identificadores
mayores.
* * * * *
8/8