Вы находитесь на странице: 1из 8

Calificacin:

Universidad de Las Palmas de Gran Canaria


Escuela Universitaria de Informtica
Facultad de Informtica
Sistemas Operativos
Examen Parcial, 29 de abril de 2006

1
2
3
4
5

Nombre

Titulacin
SOLUCIONES

Dispone de tres horas para realizar el examen

1 (2 puntos) [Conceptos Generales]Test.

En cada uno de los siguientes apartados,


seale cul opcin es correcta. En caso de que existan varias opciones ciertas, se considerar como
correcta la ms completa o precisa. Las preguntas no contestadas no puntan; las contestadas
errneamente penalizan un tercio de su valor. Seale sus respuestas rodeando con un crculo la
opcin correcta. Si se equivoca, tache la respuesta incorrecta y rodee la opcin que considere
correcta. Escriba con tinta. Las preguntas respondidas con lpiz o con varios crculos no tachados
se considerarn no contestadas.
1.El modo dual de operacin consigue que el sistema informtico sea:
a)
b)
c)
d)

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

3.El ncleo del sistema operativo...


a)
b)
c)
d)

es un proceso que se ejecuta en modo supervisor


contiene el cdigo del programa de usuario, pero no sus datos
contiene el cdigo de los programas del sistema
reside permanentemente en memoria principal

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)

acceso directo a memoria (DMA)


modo dual de operacin
procesamiento fuera de lnea ( off-line)
spooling

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

7.Un sistema operativo distribuido


a) permite gestionar recursos dispersos por medio de una mquina central que controle
al resto
b) slo tiene sentido si el sistema consta de mquinas heterogneas
c) permite la ejecucin de un servicio en una mquina diferente a aqulla donde fue
solicitado
d) todas las anteriores son ciertas
8. Cul de estos sistemas informticos no se puede dar ?
a)
b)
c)
d)

un sistema monoprogramado por lotes multiusuario.


un sistema multiprogramado por lotes monousuario.
un sistema monoprogramado de tiempo compartido multiusuario.
un sistema multiprogramado de tiempo compartido monousuario.

9.Para garantizar la integridad y la proteccin de un sistema informtico, estas funciones han


de estar necesariamente implementadas en circuitera:
a)
b)
c)
d)

temporizador (timer) del sistema


guardar en la pila el estado del procesador
sistema de ficheros
acceso directo a memoria

10.Un sistema operativo nunca...


a)
b)
c)
d)

pretende simplificar las tareas del usuario


ha de disminuir la capacidad ofrecida por los recursos del hardware
permite utilizar directamente los perifricos
realiza trabajo productivo para el usuario

11.El modo dual de operacin significa o implica que


a)
b)
c)
d)

no se puede acceder a la memoria del sistema operativo


el sistema protege los ficheros de distintos usuarios
determinadas operaciones han de ser privilegiadas
se genera una excepcin siempre que se pretende acceder a los datos de otro usuario

12. La tcnica de buffering permite que:


a) Un proceso no espere debido a que un recurso no compartido est asignado a otro
proceso.
b) Un proceso nunca espere debido a al lentitud de los dispositivos de E/S.
c) Se solapen operaciones de CPU de un proceso con operaciones de E/S de otro
proceso.
d) Todas las afirmaciones anteriores son falsas.
13. La independencia del dispositivo significa o implica que...
a)
b)
c)
d)

el usuario no debe conocer caractersticas propias de cada clase de dispositivo.


el juego de caracteres empleados por una terminal de caracteres ha de ser ASCII.
los dispositivos deberan tener independencia de los procesos de usuario.
los procesos de usuario deberan trabajar indirectamente con los dispositivos.

14.Con cul de las siguientes afirmaciones te quedaras?


a) El diseo de un S.O. siguiendo una estructura monoltica permite que se pueda
realizar un mantenimiento y depuracin sencillos del mismo.
b) En general, el diseo por capas tiende a ser menos eficiente que el monoltico.
c) El modelo cliente-servidor es equivalente a un sistema que sigue el enfoque
jerrquico donde las capas pueden cambiar su nivel en la jerarqua.
d) El enfoque microncleo tiene como dos de sus mejores virtudes la portabilidad y el
menor tamao del sistema operativo.
15.El intrprete de rdenes:
a) Es un programa del sistema y constituye la nica forma de solicitar servicios al SO
b) Ejecuta las rdenes indicadas por el usuario y para ello hace uso a su vez de las
llamadas al sistema
c) Al ser un programa del sistema, no necesita realizar llamadas al sistema
d) Siempre forma parte del ncleo del sistema operativo

2/8

Nombre

2 (2,5 puntos)

A continuacin se muestran las demandas de CPU de un


conjunto de procesos que llegan a un sistema de cmputo. En cada casilla se muestra el
tiempo requerido para completar una peticin de CPU, el tiempo de llegada de cada
proceso al sistema, as como la prioridad de cada uno de ellos (a menor nmero, mayor
prioridad).
El planificador a corto plazo utiliza la siguiente poltica de planificacin: se dispone de un
temporizador programado para interrumpir cada 3 unidades de tiempo. Cuando el
temporizador interrumpe al sistema, el planificador elige el proceso que mayor prioridad
tiene en ese momento (de forma expulsiva). El planificador NO ACTA EN NINGN
OTRO MOMENTO. En caso de que dos procesos tengan la misma prioridad, el
planificador escoger al que lleve ms tiempo sin usar CPU.
Adems, el sistema evita la inanicin de procesos de la siguiente forma: cada vez que el
planificador acta, se disminuye en una unidad la prioridad de los procesos de la cola de
preparados, justo antes de hacer la eleccin del proceso que entra en CPU.
NOTA: supondremos que el temporizador inicia su actividad en el instante cero. Adems,
en caso de que el planificador deba decidir en el momento de la llegada del proceso, se
tomar que primero llega el proceso antes de la toma de decisin.
[Procesos]

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

Para el problema planteado, existen dos alternativas ms, tambin vlidas.


Alternativa2: (Primero se reevalan las prioridades y luego entra el proceso en la cola
de preparados). En este caso hay dos variantes: en el instante 15, existen
dos procesos con la misma prioridad y el mismo tiempo de espera en
CPU, as que tenemos dos alternativas.
Altenativa2-a: Elegimos primero el proceso P3.
tret

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

Altenativa2-b: Elegimos primero el proceso P4.


tret

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)

Puede darse el efecto convoy en un sistema que planifica el


procesador con una poltica de primero el ms corto no expulsivo?
[Procesos]

En un sistema con planificacin de Primero el ms corto no expulsivo


sera poco probable que se produjera el efecto convoy debido a que el
origen de este fenmeno es permitir el acaparamiento del procesador
por un proceso limitado en CPU. En esta poltica se penaliza a este tipo
de procesos. Se podra producir en el caso en que la entrada del
proceso intensivo en CPU se realizara cuando la cola de preparados
estuviese vaca.

b)

Supongamos que nos dicen que debemos disear una poltica de


planificacin del procesador para un sistema que utiliza tiempo compartido.
Adems nos especifican que dicha poltica debe favorecer a los procesos que
[Procesos]

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)

Menciona cinco ejemplos de recursos lgicos o virtuales que


ofrece el SO y que no existen fsicamente en el hardware.
[Conceptos Generales]

Archivos, carpetas o directorios, memoria virtual, procesadores


virtuales (lo que se consigue con la multiprogramacin),
volmenes lgicos, cuentas de usuario, semforos... casi
cualquier recurso que ofrece el s.o. es un recurso virtual.
d) [Conceptos Generales] En qu consiste la estructura de los sistemas operativos
por capas? Qu ventajas y desventajas tienen? Pon un ejemplo de algn
sistema que utilice esta estructura, sealando las distintas capas que lo
componen.
La estructura por capas de un sistema operativo consiste en la
descomposicin en varios estratos (niveles), cada uno de ellos
construidos sobre capas inferiores. La capa inferior (capa 0) es el
hardware; la ms alta (capa N) es la interfaz con el usuario.
La principal ventaja es la modularidad. Las capas se seleccionan de tal
manera que cada una utilice funciones (operaciones) y servicios
exclusivamente de capas de niveles inferiores. Este enfoque simplifica
la depuracin y la verificacin del sistema.
La principal desventaja radica en la definicin apropiada de las
diferentes capas. Dado que cada nivel slo puede usar los servicios de
los niveles inferiores, es necesario realizar una planificacin cuidadosa.
Adems, las implementaciones por niveles tienden a ser menos
eficientes que otros tipos de implementacin. Esto es debido a que el
sistema pierde tiempo en la comunicacin entre las capas pertinentes.
Ejemplo: Sistema THE con seis niveles: L5: programas, L4: buffering,
L3: consola del operador, L2: gestin de memoria paginada, L1:
planificacin de procesos, L0: hardware.

e)

Definir e indicar las diferencias entre los sistemas


fuertemente acoplados y los sistemas dbilmente acoplados.
[Conceptos Generales]

Los sistemas dbilmente acoplados son sistemas de procesadores que


no comparten memoria o reloj. En su lugar, cada procesador tiene su
propia memoria local. Los procesadores se comunican entre ellos
mediante varias lneas de comunicacin, como buses de alta velocidad
o lneas Telefnicas. Se les llaman tambin sistemas distribuidos.
Los sistemas fuertemente acoplados son sistemas multiprocesadores
que tienen ms de un procesador, compartiendo el bus, el reloj y en
ocasiones la memoria y perifricos.

5/8

4 (1,5 puntos)

En una fbrica se tienen dos procesos que modelan una


planta embotelladora de bebidas, y que trabajan en paralelo:
[Concurrencia]

Un proceso "Embotellador" se encarga de preparar botellas de un litro.


Otro proceso "Empaquetador" se encarga de empaquetar y reponer las cajas donde se van
colocando las botellas.
Cada vez que el embotellador prepara una botella, sta se coloca en una caja, que tiene una
capacidad de 10 litros. Si al colocar la botella, la caja queda llena, se enva una seal al
empaquetador, que toma la caja, la sella y la guarda en un almacn. El empaquetador deposita una
nueva caja de 10 litros, totalmente vaca. Mientras el empaquetador est haciendo su labor, el
embotellador no puede colocar sus botellas, ya que en esos momentos no hay una caja disponible.
Encontrar una solucin basada en semforos que sincronice el problema de concurrencia citado.

Semforo empaqueta(0);
Semforo embotella(0);
int litros = 10;
Embotellador ()
{
loop {
... prepara una botella

Empaquetador ()
{
loop {
empaqueta.P();

... coloca la botella en la caja

... empaqueta la caja actual


... pone una caja nueva vaca

litros = litros-1;
if ( litros == 0 ) {
empaqueta.V();
embotella.P();
}
}

litros = 10;
embotella.V();
}
}

5 (1,5 puntos)

[Concurrencia] Seguidamente se muestra una propuesta de solucin al


problema de la seccin crtica. Crees que es una propuesta vlida? Justifica tu respuesta.
var
eleccin: array [0..n-1] of boolean;
numero: array[0 .. n-1] of integer;
j: 0..n
repeat
eleccin[i] = true;
nmero[i] = mn(nmero[0],nmero[1],, nmero[n-1])+1;
eleccin[i] = false;
for j:=0 to n-1 do
begin
while eleccin[j] do no-operar;
while nmero[j] != 0 and (nmero([j],j) < (nmero[i],i) do no-operar
end;
Seccin crtica
nmero[i] := 0;
Seccin restante
Until false

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