Beruflich Dokumente
Kultur Dokumente
SISTEMAS OPERATIVOS
CUESTIONES Y EJERCICIOS
ii
ndice
Cuestiones
DEFINICIN Y CONCEPTOS ........................................................................................................................... 1
TIPOS DE SISTEMAS OPERATIVOS ................................................................................................................ 3
FUNCIONES Y CARACTERSTICAS DE LOS SISTEMA OPERATIVOS ................................................................ 10
EVOLUCIN Y TENDENCIAS DE LOS SISTEMAS OPERATIVOS ...................................................................... 15
CONCEPTOS HARDWARE, SOFTWARE Y FIRMWARE ................................................................................... 28
CONCEPTOS SOBRE PROCESOS ................................................................................................................... 34
CONCURRENCIA E INTERACCIN ENTRE PROCESOS .................................................................................... 41
EL NCLEO DEL SISTEMA OPERATIVO....................................................................................................... 47
ASIGNACIN Y PLANIFICACIN ................................................................................................................. 54
INTERBLOQUEO ......................................................................................................................................... 58
GESTIN DE MEMORIA ............................................................................................................................... 61
GESTIN DE DATOS .................................................................................................................................... 69
SEGURIDAD ............................................................................................................................................... 73
Ejercicios
FIRMWARE ................................................................................................................................................... 1
CONDICIONES DE BERNSTEIN ...................................................................................................................... 3
ESPECIFICACIN DE CONCURRENCIA ........................................................................................................... 5
PROGRAMACIN CONCURRENTE ................................................................................................................ 27
PLANIFICACIN DE UCP ............................................................................................................................ 48
INTERBLOQUEO ......................................................................................................................................... 52
SISTEMAS MFT Y MVT ............................................................................................................................. 59
MEMORIA VIRTUAL TIEMPOS DE TRADUCCIN ....................................................................................... 64
SISTEMAS SEGMENTADOS .......................................................................................................................... 66
SISTEMAS PAGINADOS ............................................................................................................................... 67
ESTRATEGIAS DE REEMPLAZAMIENTO ....................................................................................................... 70
SISTEMA CASO DE ESTUDIO ....................................................................................................................... 80
ASIGNACIN Y PLANIFICACIN DE DISCO .................................................................................................. 85
iii
iv
Cuestiones
vi
Definicin y conceptos
1.
Software de Aplicacin
b)
2.
3.
4.
5.
C1
6.
7.
8.
C2
2.
3.
4.
5.
Cules son las funciones de los Sistemas Operativos en tiempo real? Qu quiere
decir que la funcin de seguridad es prioritaria?
C3
6.
7.
8.
9.
10. Cul es la principal diferencia entre los Sistemas Operativos por niveles y los
monolticos?
C4
11. Qu ventajas tiene un Sistema Operativo por niveles sobre uno monoltico?
12. Define los conceptos de rutinas de servicio y rutinas de utilidad en los Sistemas
Monolticos.
Rutinas de servicio:
Rutinas de utilidad:
14. Nombra la divisin en niveles del Sistema Operativo MINIX y describe brevemente de
qu se encarga cada nivel.
C5
15. Cmo se denomina la parte de un sistema operativo de mquina virtual que est en
contacto directo con el 'hardware'? qu proporciona al siguiente nivel?
Representacin grfica:
C6
17. Qu tipo de Sistema Operativo 'se ejecuta' sobre cada una de las mquinas
virtuales en un sistema de mquina virtual?
18. Qu dos grupos de funciones de todo Sistema Operativo son separadas al construir
un sistema de mquina virtual?
19. Cmo atiende el 'hardware' real a un problema producido en una de las mquinas
virtuales?
Poltica:
C7
Proceso servidor
24. Por qu los Sistemas Operativos basados en microkernel son adecuados para los
sistemas distribuidos?
C8
C9
1:
2:
3:
C10
5. Qu quiere decir que el Sistema Operativo provee al usuario una mquina virtual?
C11
10. Indica las formas de acceder a los servicios de los Sistemas Operativos.
C12
11. Seala las ventajas de un Sistema Operativo implementado con llamadas al sistema.
Razona convenientemente dichas ventajas.
13. Explica las diferencias entre llamadas al sistema y programas del sistema.
C13
17. Indica dos posibles formas de implementar el intrprete de comandos. Explica las
ventajas y desventajas de cada una de ellas.
Forma 1, ventajas y desventajas:
C14
2.
3.
4.
5.
C15
6.
7.
8.
9.
C16
11. Nombra los elementos que incluan los Monitores de Encadenamiento y explica UNO
de ellos.
12. Con el objeto de reducir el tiempo de UCP empleado en operaciones de E/S cul es
la primera solucin que se plantea? En qu consiste?
13. Qu diferencia hay entre dispositivo lgico y dispositivo fsico? Cmo se establece
la relacin entre ellos?.
C17
18. Cmo se denominan los primeros Sistemas Operativos que incorporan el uso
eficiente de: canales, buffers, spool, gestin de memoria a dos niveles, y
mecanismos de sincronizacin?
C18
20. Suponiendo que se desea ejecutar un trabajo de 1200 tarjetas en un sistema con una
lectora de tarjetas rpida, capaz de leer 1200 tarjetas por minuto y un procesador
que trata 300 tarjetas por segundo. Qu porcentaje de tiempo est trabajando la
UCP? Por cada minuto, cuntos segundos permanece inactiva la UCP?
C19
IPL
6
Programa
Maestro
Fichero
de
transacciones
Transaccin i
1:
2:
3:
4:
5:
6:
C20
Fichero maestro
de plazas/vuelo
29. Qu permite en un principio que los sistemas de tiempo compartido sean viables?
TIME SLICING:
PERFIL DE USUARIO:
C21
33. Es conveniente que los sistemas de tiempo compartido tengan varios programas en
memoria simultneamente? Por qu?
C22
WINDOWS
35. Qu aportan los Sistemas Operativos llamados supervisores con respecto a los
ejecutivos?
36. Qu nombre recibieron los Sistemas Operativos que lograron integrar tanto el
procesamiento on-line como batch? Y los que empezaron a proporcionar un flujo
continuado de trabajo?
37. Por qu se dice que las redes de rea local sustituyen a los sistemas de tiempo
compartido? Qu problemas principales se dan en la distribucin y comunicacin de
informacin en una red?
FASE
Canales
Rutinas de E/S
Operacin OFF-LINE
Tiempo Real
OSCL
Interaccin
Programa de control
Tcnicas de SPOOLING
Cargador
Tiempo compartido (TSS)
C23
40. Qu dos fenmenos marcan la dcada de los aos 80 en lo que al desarrollo de los
Sistemas Operativos se refiere?
41. Al mirar la evolucin de los sistemas operativos ciertos avances marcaron el inicio de
otros que se han desarrollado posteriormente. Indica para cada uno de los siguientes
cundo surge por primer vez la idea aunque sea de una forma muy bsica.
Multiprocesamiento
Multiprogramacin
Planificacin de trabajos
TSS/Multiprogramados
C24
42. Termina de rellenar el cuadro siguiente, con los objetivos y logros de cada fase de
desarrollo.
OBJETIVO
FASE
SOLUCIN/RESULTADOS
No hay Sistema Operativo
FASE 0
Diferencias entre Lenguaje humano y
mquina
FASE 1
Set-up Time
FASE 2
Operacin OFF-LINE
Mantener ocupados UCP y dispositivos
FASE 3a
FASE 3b (I)
EJECUTORES
Multiprogramacin
FASE 3b (II)
Sistemas
Transaccionales
Control de sistemas
concretos
FASE 3c (I)
FASE 3c (II)
FASE 4
Redes y Multiprocesamiento
C25
44. Cul ha sido el factor del diseo de Palm OS que hizo que perdiera su liderazgo de
uso en dispositivos mviles?
45. Cules son las caractersticas ms avanzadas del sistema operativo Symbian?
C26
48. Nombra los cuatro conceptos que marcan las tendencias de desarrollo de los
Sistemas Operativos, y explica UNO de ellos.
C27
Software:
Firmware:
2.
3.
C28
4.
5.
6.
7.
Qu es el registro de reubicacin?
8.
C29
9.
C30
16. Explica qu relacin hay entre los sistemas de proteccin de memoria real y la
operacin bind.
C31
19. Por qu podemos utilizar el trmino memoria fija para describir el microcdigo
residente en la memoria de control?
Cargadores absolutos
Cargadores reubicantes
C32
23. Qu es la microdiagnosis?
se
puede
utilizar
la
microprogramacin
para
personalizar
C33
Diferencias entre proceso de usuario y proceso del sistema. Pon un ejemplo de cada
uno.
DIFERENCIAS:
EJEMPLOS:
2.
3.
Enumera tres elementos que forman parte del entorno de un proceso que a partir de
un fichero F1, crea otro F2, con sus datos.
4.
C34
5.
Cita tres programas que se comparten en el sistema por los distintos procesos.
6.
7.
8.
PROCESO:
RELACIN:
C35
9.
Procesador adecuado
Un programa en C
Una imagen ejecutable
Un programa en lenguaje mquina
Un microprograma
11. Cita dos posibles implementaciones del descriptor de proceso.
13. Cul es la principal diferencia entre los procesos en estado activo y los dems?
C36
18. Representa grficamente los estados por los que puede pasar un proceso y las
transacciones entre ellos, si tomamos un modelo de procesos de 7 estados.
C37
19. Explica qu operaciones debe realizar el sistema para que un proceso en estado
suspend-blocked llegue a estado running.
a peticin de
o del
para:
a)
b)
c)
C38
C39
32. Qu ventajas tiene realizar una tarea en un sistema multithread frente a realizarla
en un sistema de procesos pesados.
C40
CONDICIN 2:
CONDICIN 3:
2.
Explica las condiciones de Dijkstra para que un programa concurrente sea correcto.
3.
C41
4.
5.
6.
C42
7.
Indica las 4 restricciones dadas por Dijkstra a la solucin del problema de exclusin
mutua sobre una seccin crtica. Razona cmo la solucin mediante un semforo
binario inicializado a uno y una wait y signal sobre dicho semforo como protocolo de
entrada y salida respectivamente, cumple las 4 restricciones anteriores.
8.
9.
C43
10. Explica claramente las diferencias entre Nominacin Directa y Nominacin Indirecta.
C44
15. Explica los problemas de implementacin de los pipes. Cmo los soluciona el
mecanismo port?
C45
17. Enumera y define brevemente las tres partes bsicas de un ncleo socket por
separado y en relacin con el conjunto.
18. Explica para qu sirven, cmo funcionan, qu ventajas y desventajas tienen los
'ports'.
C46
2.
Define el ncleo del Sistema Operativo e indica las partes que debe contener
como mnimo.
3.
4.
C47
5.
6.
MECANISMO 2:
MECANISMO 3:
7.
C48
Slo uno
b)
c)
d)
e)
8.
9.
C49
15. Qu hace el mdulo de E/S de un dispositivo cuando ste pasa a estar listo
para atender otra peticin?
19. Dnde est la informacin que debe salvarse como mnimo al producirse una
interrupcin?
C50
22. Qu dos cosas se puede hacer para trabajar con mltiples interrupciones?
27. Por qu las rutinas que implementan las primitivas de comunicacin suelen
invocar al 'dispatcher' cuando finalizan?
C51
Protocolos de acceso a
Primitivas
Propsito
Nivel de Implementacin
Mecanismo de Retardo
Tiempo de retardo
30. Cita los componentes hard del ordenador que necesita el ncleo del sistema
operativo como soporte mnimo para su funcionamiento.
31. Enumera todos los pasos que da el sistema desde que su quantum se agota y
se produce una interrupcin hard por reloj, hasta que otro proceso de usuario
toma el control.
C52
C53
Asignacin y Planificacin
1.
2.
3.
C54
4.
5.
6.
C55
7.
A corto plazo
A largo plazo
FCFS
Round-Robin
SJF
Primero el de mayor prioridad
HRN
ltimo en llegar, primero en ser servido
8.
9.
C56
C57
CUESTIONES: Interbloqueo
Interbloqueo
1.
2.
3.
4.
5.
C58
CUESTIONES: Interbloqueo
6.
7.
8.
9.
C59
CUESTIONES: Interbloqueo
11. Indica dos mtodos para que no se d la tercera condicin necesaria para
interbloqueos (condiciones de Coffman)
___________________________________________________________________________
___________________________________________________________________________
15. Indica tres factores a tener en cuenta para determinar el coste de recuperacin
de interbloqueo.
___________________________________________________________________________
___________________________________________________________________________
C60
Gestin de memoria
1.
2.
3.
C61
4.
5.
6.
7.
C62
8.
9.
C63
C64
C65
23. Enumera de forma clara y breve las acciones que debe realizar el sistema
desde que se produce un fallo de pgina que debe resolverse con
reemplazamiento, hasta que se termina la traduccin de la direccin virtual que
lo ha causado.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
25. Dados los siguientes algoritmos de gestin de memoria: FIRST-FIT, LRU con
colas y 2 oportunidad, LFU, FIFO, LRU con contadores, MFU, clasificarlos
segn la informacin necesaria para su implementacin, en dos grupos:
a) El instante de carga o referencia
___________________________________________________________________________
___________________________________________________________________________
b) La frecuencia de uso
___________________________________________________________________________
___________________________________________________________________________
c) ____________________________
___________________________________________________________________________
___________________________________________________________________________
C66
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
C67
C68
Gestin de datos
1.
Qu es un controlador? Qu hace?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
2.
3.
C69
4.
5.
6.
Qu es un vector de interrupcin?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
7.
8.
C70
9.
C71
14. Relaciona cada trmino de la primera columna con todos los posibles de la
segunda.
F.A.T.
Vector de bits
F.C.F.S.
Bloque de ndices
Lista enlazada
Best-fit
Agrupamiento
C72
CUESTIONES: Seguridad
Seguridad
1.
2.
3.
4.
En qu consiste el cifrado?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
5.
C73
CUESTIONES: Seguridad
6.
7.
8.
Indica los elementos necesarios y su naturaleza (hard, datos, etc.) necesarios para
trabajar con capacidades.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
9.
C74
CUESTIONES: Seguridad
C75
CUESTIONES: Seguridad
C76
Ejercicios
EJERCICIOS: Firmware
Firmware
1.
RAA RDIMP
READ
RAMI RDA decodif.
2.
a)
ADDI A
ACC ACC + A
b)
SUBI A
ACC ACC - A
c)
LOADI A
ACC A
d)
STOREIND A
(A) ACC
e)
BRANCHIND A
Salto a (A)
f)
CONDBRANCHIND A
Con los mismos supuestos del ejercicio anterior codifica el microprograma que
implementa las operaciones siguientes:
a)
SORIND A
b)
SORINM A
E-1
EJERCICIOS: Firmware
3.
c)
SOR
d)
LOADM
ACC ( (ACC) )
e)
LOADMADD A
ACC ( (ACC) ) + A
4.
E2
Escribe un programa en lenguaje de alto nivel que simule la operacin del ITSIAC
(sistema de la figura 1), Utilizar un array de 256 elementos para simular la memoria
principal con palabras de 16 bits, variables para representar los diferentes registros
mquina: ACC, RTM, RDIMP, RAMI, etc. y las sentencias de dicho lenguaje para
simular las microinstrucciones.
Condiciones de Bernstein
1.
2.
3.
4.
a := 2x;
S2:
b := y - z;
S3:
c := b / 3;
S4:
d := a + c;
a := x + y ;
S2:
b := z + 1 ;
S3:
c := a - b ;
S4:
READ (p);
S5:
WRITE (p);
S6:
k := k + 1;
x := x * 166,386;
S2:
READ (a);
S3:
b := x - a;
S4:
c := b / 166,386;
S5:
WRITE (c);
Dada la ecuacin que calcula la raz positiva de una ecuacin de 2 grado, es decir:
b2 4ac
2a
5.
Dada la ecuacin que calcula la raz negativa de una ecuacin de 2 grado, es decir:
b2 4ac
2a
E-3
6.
( b2 8 * a * c)0,5
d * c * ( b + 2)
7.
E4
Especificacin de concurrencia
1.
BUF_ENT
TARJETAS
0
P_LECTOR
BUF_SAL
N-1
N-1
P_EJECUTOR
2.
3.
a := 2x;
b := y - z;
c := b / 3;
d := a + c;
E-5
4.
5.
Dada la ecuacin
b2 4 a c a b se pide:
6.
7.
E6
A)
B)
E-7
8.
A)
B)
E8
C)
D)
E-9
E)
F)
E10
G)
H)
E-11
I)
J)
K)
E12
L)
S1
S4
S3
S2
S5
S7
S6
M)
P2
P1
P4
P3
P6
P5
P8
P7
N)
S1
S3
S2
S7
S4
S5
S6
S8
S10
S9
S12
S11
S13
S14
E-13
O)
S1
S2
S3
S5
S4
S6
S7
S8
P)
S1
S2
S3
S4
S5
S6
S7
E14
S8
Q)
B
R)
S1
S3
S2
S4
S5
S6
S7
S8
S)
S2
S1
S5
S4
S3
S6
S7
S8
E-15
T)
S2
S1
S3
S5
S4
S7
S6
S9
S8
U)
A
J
K
L
M
V)
S1
S2
S3
S4
S5
S6
E16
S7
W)
S1
S2
S3
S4
S5
S7
S6
S8
X)
P2
P1
P3
P4
P5
P6
P7
P8
Y)
A
E-17
Z)
S1
S2
S3
S5
S4
S6
S7
9.
Para cada uno de los grafos siguientes, escribe un programa que especifique la
ejecucin concurrente de TODAS las sentencias utilizando barreras para respetar las
condiciones del grafo.
A)
S2
S1
S3
S4
S5
S7
S6
S8
B)
S2
S1
S4
S3
S5
S6
S7
E18
S8
C)
S1
S2
S4
S5
S6
S8
L1:
J1:
L2:
J3:
Program A;
var C1, C2: 0..2;
C3: 0..3;
begin
C1:=2; C2:=2; C3:=3;
S1;
FORK L1;
S2;
S5;
FORK J1;
S6;
goto J3;
FORK L2;
S3;
FORK L2;
JOIN C1;
S7;
goto J3;
JOIN C2;
S4;
JOIN C3;
end.
E-19
B)
L3:
L2:
J1:
L1:
J2:
Program B;
var C1, C2 :0..3;
begin
C1:=3; C2:=3;
FORK L1;
A;
FORK L2;
FORK L3;
C;
goto J1;
D;
goto J1;
E;
FORK J2;
JOIN C1;
G;
goto J2;
B;
F;
JOIN C2;
H
end.
C)
L1:
J1:
L2:
J2:
J3:
L4:
L3:
J4:
E20
Programa C;
var C1, C3 :0..2;
C2, C4 :0..3;
begin
C1:=2; C2:=3;
C3:=2; C4:=3;
FORK L1;
A;
FORK J1;
C;
goto J2;
B;
FORK L2;
JOIN C1;
D;
goto J2;
E;
FORK J3;
JOIN C2;
F;
FORK L4;
JOIN C3;
I;
goto J4;
FORK L3;
G;
goto J4;
H;
JOIN C4
end.
D)
L1:
L2:
J1:
J2:
Program D;
var C1: 0..3;
C2: 0..2;
begin
C1:=3; C2:=2;
S1;
FORK L1;
S2;
goto J1;
FORK L2;
S3;
goto J1;
S4;
FORK J2;
JOIN C1;
S5;
JOIN C2;
S6
end.
E)
L1:
L2
J1:
L3:
J2:
J4:
J3:
J5:
J6:
Program E;
var C1, C2, C3, C4, C5, C6 :0..2;
begin
C1:=2; C2:=2; C3:=2;
C4:=2; C5:=2; C6:=2;
FORK L1;
S1;
goto J4;
FORK L2;
S2;
goto J1;
S3;
FORK L3;
JOIN C1;
S4;
goto J2;
FORK J3;
S5;
FORK J3;
JOIN C2;
S7;
FORK J5;
JOIN C4;
S9;
goto J6;
JOIN C3;
S6;
JOIN C5;
S8;
JOIN C6
end.
E-21
F)
L1:
J1:
J2:
L2:
J3:
Program F;
var C1 :0..3;
C2, C3 :0..2;
begin
C1:=3; C2:=2; C3:=2;
FORK L1;
S1;
S3;
FORK J1;
goto J2;
S2;
FORK J1;
S5;
FORK L2;
JOIN C1;
S4;
S6;
JOIN C2;
S7;
goto J3;
S8;
JOIN C3;
end.
11. Razona cul/es de las divisiones en bloques concurrentes, siguientes (A), (B), (C) y
(D) es/son correcta/s si se trata de especificar, utilizando construcciones
parbegin/parend y el mnimo nmero de semforos, las ejecuciones secuenciales y
concurrentes especificadas en el grafo.
S1
S2
S3
S4
S6
S5
S7
S8
E22
S1
S2
S3
S4
S6
S5
S7
S8
S1
(C) 1 semforo general
S2
S3
S4
S6
S5
S7
S8
S1
S2
S3
S4
S5
S6
S7
S8
E-23
12. Razona en los casos siguientes, si las divisiones en bloques concurrentes indicadas
son o no correctas si se trata de especificar, utilizando construcciones
parbegin/parend y el mnimo nmero de semforos, las ejecuciones secuenciales y
concurrentes especificadas en el grafo.
A)
S2
S1
S5
S4
S3
S6
S7
S9
SA
S8
SB
SC
1 semforo binario
SD
B)
S1
S2
S3
S4
S6
S5
S7
S8
S9
1 semforo general
SA
13. Razona cul/es de las divisiones en bloques concurrentes, siguientes (A), (B) y (C)
es/son correcta/s si se trata de especificar, utilizando construcciones
E24
S2
S1
S3
S5
S4
S6
S7
S1
S5
S3
S4
S6
S7
S2
S3
S5
S4
S6
S7
E-25
Program EJ14A;
Var B1, B2, B3:BARRIER;
begin
INIT_BARRIER(B1,2); INIT_BARRIER(B2,3); INIT_BARRIER(B3,3);
parbegin
begin
P0;
parbegin
barrier (B1); barrier (B2); barrier (B3);
parend
end;
begin
barrier (B1); P1; barrier (B3)
end;
begin
barrier (B3); P2; barrier (B2)
end;
begin
barrier (B2); P3
end;
parend
end.
B) Program EJ14B;
var B14, B34, B235: BARRIER;
Begin
INIT_BARRIER( B13, 2 ); INIT_BARRIER( B34, 2 ); INIT_BARRIER( B235, 3 );
Parbegin
begin
S1; barrier(B13)
end;
begin
S2; barrier(B235)
end;
begin
barrier(B13); S3
parbegin
barrier(B34); barrier(B235);
parend
end;
begin
barrier(B34); S4
end;
begin
barrier(B235); S5
end;
Parend
end.
E26
Programacin concurrente
1.
2.
end.
E-27
3.
procedure P1;
Begin
repeat
res11;
v1:=0;
v3:=2;
while v2=0 and v3=2 do {no_op};
SC1;
v1:=1;
RES12;
forever
end;
procedure P2;
begin
repeat
Res21;
v2:=0;
v3:=1;
while v1=0 and v3=1 do {no_op};
SC2;
v2:=1;
RES22;
forever
end;
begin (* Programa principal *)
parbegin
P1; P2
parend
end.
E28
4.
procedure P1;
begin
repeat
RES11;
v1:=0;
v3:=2;
if v2=0 and v3=2 then
begin
v1:=1;
while v2=0 do {no-op}
end;
SC1;
v1:=1;
RES12;
forever
end;
procedure P2;
begin
repeat
RES21;
v2:=0;
v3:=1;
if v1=0 and v3=1 then
begin
v2:=1;
while v1=0 do {no-op}
end;
SC2;
v2:=1;
RES22;
forever
end;
begin (* Programa principal *)
parbegin
P1; P2
parend
end.
E-29
5.
6.
Si a = 0 a := 1 y devuelve True
Si a = 1 devuelve False
program InsH;
const N= ______ ;;
var
key: 0..1;
procedure P (I : 0..N-1);
begin
repeat
RES1(I);
repeat {no-op} until testset(key);
SC(I);
key:=0;
RES12;
forever
end;
begin
key := 0;
Parbegin
P(0); P(1); P(2); P(N-1)
Parend
end.
7.
E30
8.
9.
E-31
11. Una barbera tiene una nica puerta por la que entran y salen los clientes y una
sala de espera con capacidad para N clientes y otra sala, la del barbero, con una
nica silla:
Su funcionamiento es el siguiente:
- Si la barbera est llena, el cliente que llega espera fuera de la barbera
haciendo cola.
- Si la barbera no est llena, pero el barbero est ocupado, el cliente que ha
entrado a la barbera se sienta en la sala de espera.
- Si el barbero no est ocupado, entra a que le d servicio, de forma que si el
barbero estaba dormido, le despierta.
- Cuando el barbero termina de dar servicio a su cliente, si no hay ms clientes
se duerme.
Se pide:
a) Nombra y explicar los problemas de concurrencia que se dan.
b) Escribe un programa que lo resuelva mediante semforos sin tener en
cuenta que el barbero est dormido o despierto y luego resolverlo
controlando dichas condiciones.
c) Escribe un programa que lo resuelva con semforos de forma que si no
hay sitio en la sala de espera, los clientes que llegan se van sin esperar en
una cola fuera de la barbera.
d) Escribe un programa que lo resuelva bajo los mismos supuestos utilizando
como herramienta de concurrencia monitores.
TARJETAS
0
P_LECTOR
E32
BUF_SAL
N-1
P_EJECUTOR
N-1
13. En un sistema hay 3 procesos tipo 'fumador' y un proceso tipo 'agente'. Cada
fumador confecciona cigarrillos y los fuma de forma continua. Para hacer un
cigarrillo necesita 3 ingredientes: tabaco, papel y fuego. Cada fumador dispone
slo de uno de estos ingredientes en cantidad infinita. El agente, que posee
cantidades infinitas de todos los ingredientes, sita sobre la mesa 2 de estos
ingredientes siempre diferentes entre s, de forma que el fumador que tiene el otro
ingrediente necesario para confeccionar el cigarrillo, los toma, hace el cigarrillo, se
lo fuma, e indica al agente que ha terminado para que ste vuelva a situar otros 2
ingredientes sobre la mesa, repitindose el ciclo.
a) Escribe un programa completo que sincronice fumadores y agente utilizando
primero Semforos y luego Monitores. Explica el significado de las variables y
procedimientos utilizados en cada caso.
b) Resuelve el problema si cuando el agente no puede poner ingredientes, en
lugar de quedar inactivo, pone una pieza de rompecabezas y cuando el
fumador intenta fumar y no puede, espera bloqueado.
c) Resuelve el problema si cuando el fumador intenta fumar y no puede, en lugar
de quedar inactivo, pone una pieza de rompecabezas y cuando el agente no
puede poner ingredientes, espera bloqueado.
14. El modelo de los lectores y escritores esquematiza los problemas que se dan en el
manejo de ficheros compartibles. En este modelo se consideran dos tipos de
procesos paralelos: los procesos lectores y los procesos escritores. Estos
procesos comparten un recurso nico que es el fichero, que puede ser accedido
simultneamente por varios procesos tipo lector, mientras que los escritores
deben hacerlo de forma exclusiva: mientras est escribiendo uno no puede
acceder ningn otro lector o escritor.
El cdigo de un proceso lector y de un proceso escritor tiene, respectivamente, la
siguiente forma, siendo Prot. entrada y Prot. salida los conjuntos de sentencias
que aseguran las reglas de cooperacin entre los procesos.:
E-33
P. LECTOR:
Prot. entrada {peticin de entrada}
Lectura
Prot. salida {fin de lectura}
P. ESCRITOR:
Prot. entrada {peticin de entrada}
Escritura
Prot. salida {fin de escritura}
E34
15. Para el problema anterior caso A)-, razona si los procedimientos dados a
continuacin son correctos o no y construye el programa principal, inicializando
todas las variables utilizadas.
Procedure Lector (i:0..k-1)
BEGIN
wait (S1);
wait (S2);
cont:=cont-1;
signal (S2);
if cont=k-1 then wait (SE_B);
signal (S1);
"Leer";
wait (S1);
cont:=cont+1;
if cont=k then signal (SE_B);
signal (S1);
END;
16. Para cruzar un ro hay un puente de un solo carril, que resiste el peso de un nico
vehculo. Este puente lo tienen que cruzar los vehculos que circulan por la LR198 en ambos sentidos: unos pasarn al norte y otros al sur.
E-35
17. Se desea lanzar todos los procesos -P(i)- a la vez pero a pesar de ello se deben
cumplir las condiciones del grafo de precedencia de la figura. Aade al programa
concurrente correspondiente el cdigo necesario y codificar el Monitor o monitores
necesarios.
a)
Program EJ17a;
P(0)
P(1)
procedure P(I:0..4);
begin
P(2)
SC(I);
end;
begin (* Programa principal *)
P(3)
P(4)
parbegin
P(0); P(1); P(2); P(3); P(4)
parend
end.
b)
P(0)
Program EJ17b;
procedure P(I:0..4);
begin
sc(I)
P(1)
P(2)
end;
begin
parbegin
P(0); P(1); P(2); P(3);P(4);
parend
end.
E36
P(3)
P(4)
S1
S3
S2
S4
S5
procedure P(I:0..5);
begin
sc(I);
P2
P1
P3
end;
begin
P4
P5
parbegin
P(0); P(1); P(2); P(3); P(4); P(5)
parend
end.
20. Para ver las cuevas de Altamira, se ha fijado un nmero mximo de visitantes por
da. En cada instante tan slo podr haber 10 personas en la cueva, y de stas, 1
observando la galera C. En el momento en que una persona, tras haber visitado
toda la cueva, ha visto dicha galera, sale de la cueva y va al zoo, pudiendo otra
persona pasar a la galera C y otra a la cueva si no se ha superado el tope diario.
Quienes no pueden entrar en la cueva por haberse superado dicho tope, se van al
zoo.
a) Qu problemas de concurrencia se dan?
b) Codifica un programa concurrente que los solucione utilizando semforos.
c) Codifica una solucin correcta a los problemas planteados utilizando como
herramienta de concurrencia monitores.
d) Reescribe las soluciones anteriores de forma que el acceso a la cueva sea
no bloqueante; es decir, que mientras un visitante no pueda entrar en la
cueva a pesar de no haberse superado el tope diario, est en otra sala
mirando fotografas de las cuevas.
E-37
22. Un recurso es tal que puede ser compartido por K procesos simultneamente. Es
decir, si en un momento dicho recurso est siendo compartido por K procesos no
se permitir el acceso a ningn otro que lo intente.
Se pide:
a) Razona si es o no correcta la solucin siguiente.
b) Suponiendo que se dispone de semforos generales, escribe una solucin
que utilice el mnimo nmero de semforos posible y explica el significado
de cada variable y su funcionamiento.
c) Suponiendo que se dispone de monitores, codifica una solucin correcta
para este problema y explica el significado de cada variable y su
funcionamiento.
Program exc_mutua;
const n=3; (* nmero de procesos concurrentes *)
k=2;
var cont: integer;
s, ret: semaforo_b;
procedure p (i: integer);
var m: integer;
begin
repeat
wait (s);
cont := cont - 1;
m := cont;
signal (s);
if m <= -1 then wait (ret);
SC (i);
wait (s);
cont := cont + 1;
if cont <= 0 then signal (ret);
signal (s)
forever
end;
begin
cont := k;
init_sem (s,1);
init_sem (ret,0);
parbegin
p(1); p(2); p(3)
parend
end.
E38
23. Hay 5 filsofos que se pasan todo el da comiendo y pensando. Estos filsofos
comparten una mesa redonda con cinco platos y cinco cubiertos como se muestra
en la figura. Cuando un filsofo est pensando no influye en la actitud de sus
colegas. Cada vez que un filsofo tiene hambre intenta coger sus dos cubiertos
para comer. Dado que en la mesa slo hay 5 cubiertos y que los nicos que
puede coger cada filsofo son los adyacentes a su plato, surgen problemas de
concurrencia.
E-39
Los nicos cubiertos que un alumno puede coger son los que estn junto a su
plato. Por lo tanto, si uno est comiendo sus dos vecinos adyacentes no pueden
hacerlo, es decir, dos alumnos adyacentes nunca podrn estar comiendo a la vez.
Escribe un programa que solucione el problema y permita el mximo paralelismo
(con 5 cubiertos, como mximo podrn estar comiendo a la vez 2 alumnos):
a) Utilizando semforos
b) Utilizando monitores
25. Hay N procesos: NP son de tipo P y NC son de tipo C. Los procesos de tipo P se
encargan de sacar por pantalla lneas, y los procesos de tipo C se encargan de
leer las lneas que se introducen por teclado. Sabiendo que slo se dispone de un
canal para realizar estas operaciones de E/S, escribe un programa concurrente
para resolver los problemas de concurrencia que surgen utilizando:
a) semforos
b) monitores.
26. En un centro de estudios existe una sala con 2 fotocopiadoras, cada una con un
encargado. Los estudiantes de 5 de informtica estn continuamente resolviendo
problemas y fotocopindolos. Cada encargado slo puede atender a un estudiante
en cada momento y en la sala de fotocopias slo puede haber dos estudiantes
simultneamente. stos solicitan la fotocopia de los problemas que acaban de
resolver y el encargado la realiza y se la entrega. Cada estudiante cuando acaba
un problema intenta fotocopiarlo, si la sala est ocupada o hay gente esperando
vuelve a su sitio para resolver el siguiente problema a no ser que tenga ya
resueltos cinco problemas sin fotocopiar, en cuyo caso el estudiante se queda
esperando en la cola para fotocopiarlos.
Qu problemas de concurrencia se dan?
Escribe un programa concurrente completo que simule el comportamiento de los
estudiantes utilizando como herramienta de concurrencia:
a) Semforos
b) Monitores
E40
else
if (encar[1]='d')
x=1;
encar[x]='t';
(*Sacar fotocopia*)
wait(s);
if (cont=0)
encar[x]='d';
else
encar[x]='e';
signal(s);
signal (sala);
forever
End
BEGIN
cont=0;
encar[0]='d';
encar[1]='d';
init_sem(sala,2);
init_sem(s,1);
Parbegin
estudiante(0);...estudiante(5);
Parend
END.
28. Varios estudiantes van a ir al cine, pero la mitad de ellos no tiene nada que hacer
esa tarde y deciden reunirse antes de la hora en que comienza la pelcula para
tomar un caf. Los dems estn estudiando hasta que se renen con los otros en
E-41
29. Un cine dispone de tres salas: S1 con capacidad para 100 personas, S2 tambin
con 100 asientos, y S3 con 200. Para el acceso y salida de recinto se utiliza una
nica puerta, en la que lgicamente se realiza el control de las entradas. Por otro
lado, para la venta de entradas se dispone slo de una ventanilla.
Qu problemas de concurrencia se dan?
Simula el funcionamiento de este sistema
a) utilizando semforos.
b) utilizando monitores.
30. Se desea imprimir un fichero pero en vez de hacerlo mediante un slo proceso,
ste se divide en dos a ejecutarse concurrentemente: un proceso lector y un
proceso escritor, que utilizan un buffer comn con capacidad de 80 caracteres. El
proceso lector lee del fichero carcter a carcter y lo va escribiendo en el buffer.
Cuando se ha llenado el buffer, el lector espera a que el proceso escritor, en una
sola operacin, lo vace. A continuacin, el proceso escritor queda en espera
hasta que el lector vuelva llenar el buffer, y se repita el ciclo.
Qu problemas de concurrencia aparecen?
Construye un programa concurrente completo que los solucione utilizando una
herramienta de programacin concurrente, y explica cada variable y construccin
utilizada en la codificacin, as como su funcionamiento.
31. Los siete enanitos viven en una casa del bosque donde slo hay una habitacin
con siete camas, una sala con cuatro sillas y una ducha. Cuando los enanitos
vuelven de trabajar en la mina, entran a la casa y van a la habitacin para coger la
ropa de dormir. A continuacin se duchan de uno en uno y segn terminan
esperan a que quede libre una silla para sentarse a cenar. Mientras esperan se
preparan el almuerzo del da siguiente. Si no tienen que esperar, se lo preparan
despus de cenar. Una vez que han cenado y tienen preparado el almuerzo del
da siguiente se van a la cama. Al da siguiente cogen su almuerzo y se van a
trabajar.
a) Qu problemas de concurrencia se desprenden de este enunciado?
b) Simula mediante un programa completo que utilice una de las
herramientas de concurrencia vistas en clase.
c) Explica concisamente la funcin de cada variable, construccin y proceso
utilizado.
32. Para visitar el museo de Bellas Artes de Bilbao han contratado a varios guas que
slo acompaan a grupos de 10 personas. Los guas estn esperando en la
E42
33. Una lnea de ferrocarril enlaza dos ciudades con doble va, excepto en una zona
montaosa donde fue imposible construir el doble trazado, por lo que los trenes de
ambos sentidos debern compartirla. Dado que los extremos de este tramo simple
no son visibles entre s, la compaa explotadora del servicio ha decidido regular
el trfico por medio de un semforo luminoso en cada extremo, controlados por un
ordenador con los siguientes programas:
EXTREMO A
begin
semaf_b := rojo;
while (semaf_a = rojo) do {no-op};
op};
pasa_por_via;
semaf_b := verde;
end.
EXTREMO B
begin
semaf_a := rojo;
while (semaf_b = rojo) do {nopasa_por_via;
semaf_a := verde;
end.
a) Cmo circularan los trenes en el tramo A-B si llegan los trenes al mismo
tiempo a cada extremo? y si no llegan al mismo tiempo?
b) Se asegura la exclusin mutua? Se pueden producir interbloqueos?
c) Es un mtodo de espera activa? Por qu?
d) Se podra regular el paso por medio de un monitor? Raznalo.
34. En la facultad hay una sala llamada Alta-Tecnologa que tiene una sola puerta y
en su interior una mquina de fotocopias y una encuadernadora automtica. La
fotocopiadora tiene un depsito de folios A4 y A3 suficiente para todo el da, y la
encuadernadora uno con los materiales necesarios en cantidades suficientes para
toda la semana.
Una vez al da, cuando tienen tiempo, cada profesor saca fotocopia de los
informes recibidos y/o redactados, y los encuaderna. Si la fotocopiadora est
ocupada cualquier otro profesor que la necesite har cola fuera de la sala; as, en
la sala podr haber dos personas: una sacando fotocopias y otra esperando para
hacer las suyas, o bien una sacando fotocopias y otra encuadernando las suyas,
ya que la encuadernadora es tan rpida que nunca se har cola por la
encuadernadora.
a) Qu problemas de concurrencia se dan? Nmbralos y explcalos
b) Escribe el programa concurrente completo que simule el correcto
funcionamiento del sistema utilizando una de las herramientas de
E-43
E44
Monitor M2;
Var
CC: 0..1;
CCC: Condition;
Procedure ENT;
begin
If CC=0 then cwait(CCC);
CC := CC-1
end;
Procedure SAL;
begin
CC := CC+1;
csignal(CCC)
end;
begin
CC:=1
end.
E-45
1 Solucin:
WAIT-GENERAL(S):
wait(S-S2);
wait(S-S1);
S-CONT := S-CONT - 1;
IF S-CONT > 0
THEN signal (S-S2);
signal(S-S1);
wait(S-S1);
S-CONT := S-CONT + 1;
IF S-CONT NOT < 1
THEN signal(S-S2);
signal(S-S1);
2 Solucin:
WAIT-GENERAL(S):
wait(S-S1);
wait(S-S2);
S-CONT := S-CONT - 1;
IF S-CONT > 0
THEN signal (S-S2);
signal(S-S1);
SIGNAL-GENERAL(S):
SIGNAL-GENERAL(S):
wait(S-S1);
S-CONT := S-CONT + 1;
IF S-CONT NOT = 1
THEN signal(S-S2);
signal(S-S1);
3 Solucin:
WAIT-GENERAL(S):
wait(S-S2);
wait(S-S1);
S-CONT := S-CONT - 1;
IF S-CONT > 0
THEN signal (S-S2);
signal(S-S1);
SIGNAL-GENERAL(S):
wait(S-S1);
S-CONT := S-CONT + 1;
IF S-CONT NOT > 1
THEN signal(S-S2);
signal(S-S1);
42. Dado el problema de las tarjetas a imprimir (ejercicio 12), escribe un programa
concurrente que lo solucione utilizando nominacin directa.
E46
43. Implementa un monitor con semforos binarios teniendo en cuenta que para poder
utilizar la operacin csignal(x) en cualquier parte de la rutina del monitor
a) el proceso desbloqueado quedar momentneamente retenido hasta que
no haya problemas de exclusin mutua.
b) el proceso desbloqueante quedar momentneamente retenido hasta que
no haya problemas de exclusin mutua.
Explica concisa y detalladamente el significado de cada variable, indicando su
valor inicial, as como el funcionamiento de los procedimientos.
44. Dado el problema de los fumadores (ejercicio 13), escribe un programa que lo
solucione utilizando nominacin directa.
E-47
Planificacin de UCP
1.
2.
3.
4.
E48
Instante llegada
Tiempo de UCP
1
2
3
4
0
0
0,5
0,6
0,5
0,6
0,8
0,1
Para los procesos siguientes, compara los tiempos medios de servicio y espera con
los algoritmos SJF y SRT:
Id. Proceso
Instante llegada
Tiempo de UCP
1
2
3
4
0,2
0,4
0,5
0,7
0,6
0,3
0,8
0,1
Instante llegada
Tiempo de UCP
1
2
3
4
5
0
1
3
9
10
4
6
3
2
7
Disea un algoritmo Round-Robin que para cada proceso tenga quantums de tiempo
diferentes, en proporcin inversa a su tiempo de ejecucin estimable, y calcula con l
el tiempo medio de espera de los procesos siguientes:
Id. Proceso
Instante llegada
Tiempo de UCP
1
2
3
4
5
0
1
3
5
6
5
4
3
6
7
5.
ti
Prioridad
P1
P2
P3
P4
P5
P6
0
3
6
10
15
27
8
4
2
3
6
4
5
7
9
8
1
5
y suponiendo que las prioridades son crecientes con su valor, obtn el diagrama de
ocupacin del procesador, el tiempo medio de servicio de los procesos, el tiempo
medio de espera de los procesos y el ndice medio de servicio aplicando los
siguientes algoritmos de planificacin:
6.
7.
a)
SJF
b)
Prioridad apropiativa
c)
d)
FCFS
HRN
b)
SJN
Id. Proceso
Instante llegada
Tiempo de UCP
A
B
C
D
0
1
2
6
7
4
3
2
Instante llegada
Tiempo de UCP
A
B
C
D
E
F
0
1
2
6
8
9
7
4
5
2
1
4
E49
8.
Instante llegada
Tiempo de UCP
A
B
C
D
E
0
1
3
9
12
3
5
2
5
6
9.
a)
b)
E50
Id. Proceso
Instante llegada
Tiempo de UCP
Prioridad
A
B
C
D
E
0
1
2
6
7
7
4
5
2
2
5
1
4
3
2
b)
Instante llegada
Tiempo de UCP
Prioridad
1
2
3
4
5
0
1
1
2
2
10
1
2
1
5
3
1
3
4
2
12. Dados los siguientes datos, hallar el diagrama de Gantt correspondiente, calcula el
ndice medio de servicio y el tiempo medio de espera, si la planificacin de UCP
sigue una estrategia HRN
Id. Proceso
A
B
C
D
E
F
5
5
2
2
4
3
13. Dados los siguientes datos, hallar el diagrama de Gantt correspondiente, calcula el
ndice medio de servicio y el tiempo medio de servicio, si la planificacin de UCP
sigue una estrategia
a)
SRT
b)
HRN
Id. Proceso
Instante llegada
Tiempo de UCP
A
B
E
F
0
1
8
9
7
4
1
4
E51
EJERCICIOS: Interbloqueo
Interbloqueo
1.
Uso de R1
Uso de R2
Uso de R1
Avance
de P1
Uso de R2
Avance de P2
Uso de R1
Uso de R2
Avance de P1
Uso de R1
Uso de R2
2.
P1
R2
E52
P2
EJERCICIOS: Interbloqueo
3.
P2
...
Solicita R2
...
Solicita R3
...
Libera R2
...
Libera R3
...
P3
...
Solicita R3
...
Solicita R1
...
Libera R3
...
Libera R1
...
a)
b)
4.
5.
Deducir que con el mtodo de pedir los recursos segn la ordenacin de recursos
propuesta por Havender se previene la aparicin de interbloqueo.
6.
7.
Demanda mxima
A
B
C
P0
P1
P2
P3
A
6
Recursos
B
C
3
E53
EJERCICIOS: Interbloqueo
8.
Son seguros los estados siguientes? Si alguno lo es, indicar una secuencia segura.
a)
Procesos
P1
P2
P3
P4
Ejemplares asignados
2
4
5
0
Necesidad mxima
5
6
7
3
Ejemplares asignados
4
3
3
Necesidad mxima
5
7
9
Disponibles = 2
b)
Procesos
P1
P2
P3
Disponibles = 2
9.
P3 ha solicitado R4.
P5 tiene asignado R4
10. Dado el siguiente estado del sistema y sabiendo que no hay peticiones pendientes,
se pide:
Asignacin actual
R1
R2
R3
R4
R1
R2
R3
R4
P1
P2
P3
P4
P5
D = ( 2, 1, 0, 0 )
E54
Demanda mxima
R = (6,7,12,12)
a)
b)
c)
d)
e)
EJERCICIOS: Interbloqueo
b)
c)
d)
e)
f)
12. Hacer una tabla con las diferencias entre el algoritmo del banquero y el mtodo de
reduccin de grafo. Qu similitudes hay entre ambos mtodos?
14. Tres procesos comparten 4 unidades de un recurso que se pueden reservar y liberar
slo una cada vez. Cada proceso necesita un mximo de 2 unidades. Demostrar que
no puede haber interbloqueo.
E55
EJERCICIOS: Interbloqueo
15. Rellenar la siguiente tabla-resumen de los diferentes mtodos de tratamiento del interbloqueo.
PRINCIPIO
POLTICA DE REPARTO DE
RECURSOS
ESQUEMAS
No es necesaria la apropiacin
Ordenacin de recursos
Deteccin
Manipulacin para encontrar al
menos un camino seguro.
DESVENTAJAS PRINCIPALES
VENTAJAS PRINCIPALES
Ineficiencia
Retrasos en el inicio de los
procesos
Prdidas inherentes a la
apropiacin y reiniciacin
E56
EJERCICIOS: Interbloqueo
P0
P1
P2
P3
P4
D = ( 1, 5, 2, 0 )
b)
c)
b)
19. En un sistema, los procesos solicitan recursos a un ratio r, y para el 70% de las
solicitudes todos los recursos requeridos estn disponibles. Si el coste de cada
ejecucin del algoritmo de prediccin de interbloqueo incluida la comprobacin de
E57
EJERCICIOS: Interbloqueo
20. Sea un sistema que ejecuta 5000 trabajos al mes sin ningn esquema de prevencin
o prediccin de interbloqueo. stos se dan aproximadamente dos veces al mes y el
operador debe abortar y volver a ejecutar cerca de diez trabajos por interbloqueo.
Cada uno de los trabajos vale unos dos dlares (en tiempo de UCP) y cuando se
abortan suelen estar ms o menos a la mitad de su ejecucin. Un programador de
sistemas ha estimado que en el sistema podra instalarse un algoritmo de prediccin
de interbloqueos como el del banquero, con un incremento medio del 10% en el
tiempo de ejecucin de cada trabajo. Como la mquina actualmente tiene un tiempo
de inactividad del 30%, podra continuar con la ejecucin de los 5000 trabajos por
mes, aunque el tiempo total de retorno medio aumentara en un 20%.
E58
a)
b)
1.
Suponiendo que se tiene una memoria instalada de 256 K, que el Sistema Operativo
ocupa 40 K, que la cola de trabajos se recorre segn la estrategia FCFS (el 1 que
llega es el 1 que sale), que el planificador de UCP usa un algoritmo Round-Robin (el
planificador de trabajos concede un quantum a cada proceso que se encuentre en la
lista ready), que el quantum es de una unidad de tiempo, y que el algoritmo de
ubicacin es First-Fit, representa la situacin de memoria (dibujo de la distribucin de
memoria y tabla de situacin de memoria) en cada instante, si llegan a la cola de
trabajos J1, J2, ..., J5, y el tiempo de UCP necesario para cada uno de ellos viene
dado por t:
COLA DE TRABAJOS
ID
J1
J2
J3
J4
J5
Memoria
60 K
100 K
30 K
70 K
50 K
t
10 u.t.
5 u.t.
20 u.t.
8 u.t.
15 u.t.
2.
3.
Siendo:
f = fraccin de memoria ocupada por los huecos
s = el tamao medio de los procesos
n = el nmero de procesos en el sistema
K's = el tamao medio de un hueco para un k>0
m = el tamao total de la memoria
halla:
a ) Una expresin para m en funcin del resto de los parmetros.
b ) Una expresin para f en funcin del resto de los parmetros.
E59
4.
Demuestra que en una memoria gestionada por zonas de tamao variable, cuando la
cantidad de zonas asignadas N es grande y el sistema est en equilibrio, es decir,
que la cantidad media de zonas libres es constante, entonces la cantidad de zonas
libres M ser aproximadamente N/2:
N >> 0
N
M M M
2
N
N
5.
Completa el siguiente programa para que implemente los algoritmos best-fit, worst-fit,
y first-fit. Se deber conocer el nmero mximo de entradas de la tabla, y la cantidad
de memoria necesaria para los trabajos que se deseen ubicar en memoria. En caso
de que se encuentre hueco, el programa devolver una direccin de carga, la de
comienzo del bloque de memoria asignado; en caso contrario, se devolver una
direccin no vlida (por ejemplo, todo unos). Lgicamente, habr que actualizar la
tabla de situacin de memoria, no pudiendo quedar huecos de tamao 0 bytes.
Adems, se sabe que el tamao mnimo de hueco es de 1 K, y que las direcciones
son de 24 bits.
Program EJERC;
(* Una direccin viene dada por 3 octetos=24 bits o dgitos *)
type BINARIO=0..1;
PUNTERO: Array[0..23] of BINARIO;
Var DIR: Array[1..N] of PUNTERO;
TAM: Array[1..N] of integer;
*);
E60
*);
*);
6.
Tamao
A000(16
600 K
COLA DE TRABAJOS
Trabajo
Tamao
Tiempo
T1
T2
T3
T4
T5
300 K
250 K
250 K
40 K
55 K
2
5
4
6
3
7.
E61
8.
E62
9.
Suponiendo que se tiene una memoria instalada de 256 K, que el Sistema Operativo
ocupa 40 K, que la cola de trabajos se recorre segn la estrategia FCFS (el 1 que
llega es el 1 que sale), que el planificador de UCP usa un algoritmo Round-Robin (el
planificador de trabajos concede un quantum a cada proceso que se encuentre en la
lista ready), que el quantum es de una unidad de tiempo, y que el algoritmo de
ubicacin es First-Fit, representa la situacin de memoria (dibujo de la distribucin de
memoria y tabla de situacin de memoria) en cada instante si llegan a la cola de
trabajos J1, J2, ..., J5, y supn que el tiempo de UCP necesario para cada uno de
ellos viene dado por t:
COLA DE TRABAJOS
Trabajo
Tamao
Tiempo
J1
J2
J3
J4
J5
60 K
100 K
30 K
70 K
50 K
10 u.t.
5 u.t.
20 u.t.
8 u.t.
15 u.t.
10. Repite el ejercicio anterior, suponiendo que se lleva a cabo una compactacin cada
10 unidades de tiempo. Calcula la fragmentacin media del sistema a lo largo de las
58 u.t. de ejecucin de procesos de usuario y comprala con la resultante en el
ejercicio anterior.
E63
1.
2.
3.
4.
5.
6.
7.
E64
8.
9.
Un sistema paginado tiene la tabla de pginas con 1024 entradas, en memoria real.
La sobrecarga requerida para leer una palabra de este mapa es de 500 ns. Para
reducirlo, el sistema posee una memoria asociativa que almacena 32 pares de
informacin (p, informacin de correspondencia) y puede hacer una bsqueda en
100 ns., qu frecuencia de xito en la bsqueda se necesita para reducir la
sobrecarga a 200 ns.?
E65
Sistemas Segmentados
1.
100K
20K
50K
75K
30K
Direccin
Tamao
N de Segmento
00AAAA
200K
---
2.
B. Resid.
B. Prot.
B. Libre
D.Com.
Tam.
N. Segm.
64
a1
p1
AAAA
AAAA
64
20
a2
p2
AAAA
AB0E
14
32
a3
p3
AB22
AB22
32
1E
a4
p4
AB54
AB54
1E
E66
Sistemas Paginados
1.
Dir. Disco
N Celda
0
1
0
1
1
0
1
0
111011
111001
101011
111100
011011
011010
011001
011110
11
11
01
01
10
11
00
01
2.
Un programa de usuario genera la direccin ' 00 0010 1000 0011 1000'(2. Para su
traduccin, se utiliza la informacin de correspondencia que est en una tabla de 256
entradas, con el formato siguiente: Dos bits a 0; El bit de residencia; 24 bits para la
direccin de disco y 5 bits para el nmero de celdas; es decir, el TETP = 1 palabra.
Cuntas pginas hay?
Cuntas celdas?
Cada pgina tiene _______ K's.;
por tanto, el tamao de la memoria virtual es de ________K's, y
el de la memoria instalada, de ___________ K's como mximo.
Cul es la direccin fsica correspondiente a la direccin virtual dada, si en la
entrada 11 de la tabla de pginas el bit 2 est a 1 y los 5 bits ms bajos contienen
'10001'(2.?
En este sistema, cundo y qu estrategias de gestin de memoria son necesarias?
E67
3.
4.
5.
E68
6.
Tenemos un sistema con una memoria virtual de 224 pginas y una memoria
instalada real de 2048 palabras. La memoria virtual est implementada mediante un
sistema paginado, con pginas de 256 palabras. Un programa de usuario genera la
direccin 11123456(8. Explica cmo establece el sistema la correspondencia con la
posicin fsica. Distingue claramente para cada una de las operaciones si es Soft o
Hard. Tamao en pginas de la M.V. y de la MR.
E69
Estrategias de Reemplazamiento
1.
0432,
0104,
0609,
0101,
0101,
0102,
0612,
0103,
0105.
0103,
0104,
0103,
0101,
0104,
0610,
0101,
0102,
0611,
0103,
0102,
0104,
Sabiendo que el sistema es paginado, que hay 100 pginas, y que se est
trabajando en decimal, halla la cadena de referencias correspondiente y calcula el
nmero de faltas de pgina si se dispone de una celda y se dispone de tres.
2.
3.
a)
b)
4.
a)
E70
5.
T. carga
ltima ref.
Bit Ref.
Bit Cambio
0
1
2
3
126
230
120
160
279
260
272
280
0
1
1
1
0
0
1
1
6.
7.
donde A[1,1] est en la posicin 200 en un sistema paginado con pginas de tamao
200 posiciones. En la pgina 0 (posiciones 0-199) hay un pequeo programa para
manipular la matriz. Suponiendo que hay tres celdas, calcular el nmero de 'pagefault' que produce la ejecucin del bucle de inicializacin (segn sea caso a o caso b)
si el algoritmo de reemplazamiento es LRU. (Trabaja en decimal).
Caso a:
FOR J=1 TO 100 DO
FOR I=1 TO 100 DO
A[I,J] := 0;
Caso b:
FOR I=1 TO 100 DO
FOR J=1 TO 100 DO
A[I,J] := 0;
E71
8.
9.
TABLA DE CELDAS
Bit Res.
N de celda
N de pg. Contador
1
0
1
0
0
0
0
1
01
00
10
00
00
00
00
00
7
0
2
5
7
3
TABLA DE CELDAS
Bit Res.
N de celda
I. Carga*
N Pag.
0
0
0
1
1
0
1
0
00
01
01
01
10
10
00
01
8
4
9
6
3
4
* Instante de carga
Se pide:
E72
a)
b)
N de celda
0
0
1
0
1
1
11
00
00
01
01
10
a)
b)
Dada la direccin virtual siguiente: '01 1000 0000 0001'(2 tradcela a real,
teniendo en cuenta que el sistema utiliza el algoritmo LRU implementado con
contadores, y que los valores en binario asociados a cada pgina del programa
en memoria son los siguientes:
TABLA DE CELDAS
N Pgina
2
4
5
Reg. t. uso
0010
0001
1100
Bit Cambio
0
1
0
TABLA DE CELDAS
Bit Res.
N de celda
N Celda
0
1
1
0
1
111
101
111
110
110
N de pg.
Contador
5
6
7
001
100
010
010101010
101101010
110011001
E73
El algoritmo FIFO
b)
El algoritmo LRU
c)
El algoritmo LFU
a)
b)
TABLA DE CELDAS
Bit Res.
N de celda
N de Pg.
1
0
0
0
0
0
0
1
01
00
00
00
00
00
00
00
7
0
F
F vaca
c)
d)
E74
16. Si se usa una poltica de reemplazamiento FIFO con cuatro marcos de pgina y 8
pginas, cuntos fallos de pgina se producirn con el orden de referencia de
pginas 0, 1, 7, 2, 3, 2, 7, 1, 0, 3 si las cuatro entradas estn vacas inicialmente?
Repetir el problema para LRU.
b)
c)
1
1
0
1
0
1
0800
0000
0B00
0400
FFFF
1000
b)
Sabiendo que el sistema utiliza el algoritmo de reemplazo MFU, que a este proceso
se le han asignado 4 celdas, y que los contadores asociados a las pginas cargadas
tienen los valores siguientes:
Pgina
Contador
0001(2
0011(2
0000(2
0101(2
1000100010101(2
0111111111111(2
1100100010101(2
1001100101010(2
E75
a)
b)
TABLA DE CELDAS
Bit Res.
N de celda
N de pg.
Contador
0
0
0
0
0
0
0
0
00
00
00
00
00
00
00
00
F
F
F
F
0
0
0
0
F Vaco
E76
N de celda
0
0
1
0
1
1
0
0
11
01
01
10
10
00
00
00
0
0
1
00 3E 88,
00 07 10,
00 0A 08,
00 12 00,
00 3E 90,
00 18 38,
00 39 D0,
00 04 10,
00 08 00,
00 19 38,
00 3E 90,
00 07 18,
00 0A 10,
00 12 C8,
00 07 00,
00 18 40,
00 39 D8,
00 04 18,
00 0A F0,
00 19 40,
00 3E 98,
00 07 F8,
00 0A F0,
00 13 90,
00 07 08,
00 18 48,
00 39 E0,
00 04 20,
00 14 C0,
00 19 48,
00 3F 00,
00 08 00,
00 12 00,
00 39 D0,
00 07 10,
00 18 50,
00 39 E8,
00 0B 10,
00 14 C8,
00 19 50.
00 07 00,
00 08 08,
00 12 C8,
00 3E 80,
00 07 20,
00 18 58,
00 04 00,
00 0B 18,
00 14 D0,
a)
b)
c)
E77
a)
b)
c)
0713
0371
0373
0222
0151
0372
0873
0333
0452
0373
0972
0999
0453
0502
0273
0000
a)
b)
c)
d)
E78
N de pg.
Contador
0000
0011
1100
0010
0111
000001
001111
110101
010000
101010
a)
b)
c)
d)
Contador
000
001
010
----
0001
0011
1000
0000
a)
b)
c)
Tabla de celdas
0
a)
b)
c)
d)
e)
f)
g)
h)
4
5
E79
1.
En el sistema IBM caso de estudio con disco modelo 3340 (12 pistas/cil. y 3
slots/pista) y una memoria instalada de 50 K's, al ejecutarse un proceso de
usuario genera la direccin 05EEB2(16
____________ averigua que esa pgina (la _____ ) de ese segmento (el _____ )
no est cargada en memoria real producindose, en consecuencia, un 'page-fault'.
Para servir esta interrupcin tomar el control el sistema operativo y ms en
concreto la rutina _____________________________________________.
Esta rutina llamar a su vez a la rutina ______________________________ ; la
cual, utilizando la estrategia de reemplazamiento _________________ designa
una celda: la 17 cuya PFTE al final quedar en la cola _______________.
En los octetos 4 y 5 de esa PFTE viene 05A2(16 que es ____________________.
Desde qu direccin de memoria auxiliar se realizar la operacin de carga de
pgina? ___________; operacin que realizar _____________.
Calcula a partir de aqu la direccin real correspondiente a la direccin virtual
dada. Si la entrada de la tabla de pginas correspondiente a la direccin virtual
contiene 104(16 Qu pasos se daran? Qu direccin real se obtiene? Razona
este resultado.
2.
E80
Q01
23 11
09 11
03 11
18 11
Q10
22 10
10 11
07 11
Q11
19 11
12 11
HQ
02 00
Resultando que dicha direccin es: (cilindro _____, pista ______, registro _____).
Despus, calcula la direccin de memoria real donde va a cargarla de la forma
siguiente:
Realiza una representacin grfica de la realizacin de dichos procesos, en el espacio dejado a tal
efecto
E81
3.
Tenemos el sistema IBM caso de estudio con discos modelo 3330 (19 pistas/cil.
y 6 slots/pista). '03 FF A3'(16 es la direccin virtual de la siguiente instruccin a
ejecutar. En la posicin de memoria cuya direccin es '00 03 1E'(16 est la entrada
de la tabla de pginas correspondiente a la de dicha direccin.
Explica todas las operaciones que se tendrn que realizar para poder ejecutar
dicha instruccin, indicando adems el encargado de ejecutarlas si:
a)
b)
Q01
31 11
48 11
33 11
29 11
Q10
35 10
22 11
Q11
20 01
37 11
34 11
HQ
32 10
36 11
28 10
(los dos primeros dgitos representan el nmero de la celda y los otros dos el bit
de referencia y el de cambio, respectivamente).
El contenido de los octetos 4 y 5 de la entrada de la tabla de celdas
correspondiente a la celda seleccionada es '05 A2'(16.
4.
E82
Tenemos el sistema IBM caso de estudio con discos modelo 3350 (30 pistas/cil.
y 8 slots/pista). 03 F7 A3(16 es la direccin virtual de la siguiente instruccin a
ejecutar. En la posicin de memoria '00 02 1C'(16 est la entrada de la tabla de
pginas correspondiente a la de dicha direccin.
Explica todas las operaciones que se tendrn que realizar para poder ejecutar
dicha instruccin, indicando adems el encargado de ejecutarlas si:
a)
b)
Q01
31 11
48 11
23 01
29 11
Q10
35 10
22 11
Q11
20 01
37 11
34 11
HQ
32 10
36 11
28 10
(los dos primeros dgitos representan el nmero de la celda y los otros dos el bit
de referencia y el de cambio, respectivamente).
El contenido de los octetos 4 y 5 de la entrada de la tabla de celdas
correspondiente a la celda seleccionada es '05 A2'(16.
5.
El sistema IBM caso de estudio trabaja con un disco modelo 3350 (30 pistas/cil.
y 8 slots/pista). La direccin virtual de la siguiente instruccin a ejecutar es '05 F7
FF'(16. En la posicin de memoria '00 02 1C'(16 est la entrada de la tabla de
pginas correspondiente a la de dicha direccin.
Explica todas las operaciones que se tendrn que realizar para poder ejecutar
dicha instruccin, indicando adems el encargado de ejecutarlas si:
a)
b)
E83
Q00
13 10
24 11
17 10
Q01
29 11
22 11
23 01
21 11
Q10
35 10
22 11
Q11
20 01
37 11
34 11
HQ
32 10
36 11
28 10
(los dos primeros dgitos representan el nmero de la celda y los otros dos el bit
de referencia y el de cambio, respectivamente).
El contenido de los octetos 4 y 5 de la entrada de la tabla de celdas
correspondiente es '05 45'(16.
6.
7.
E84
1.
Un disco duro tiene 6 platos, 360 pistas por plato y 9 sectores por pista. Cada
plato consta de 2 caras tiles. Si cada sector puede contener 256 bytes de
informacin, cul es la capacidad total del disco?
2.
b)
c)
Asignacin indizada, lista de espacio libre enlazada y el fichero 'A' ocupa los
bloques 7, 3, y 1, y el bloque de ndices est en el bloque 5 y la estructura
de ndices es combinada de 3+1.
3.
Sea un disco de 12 bloques. En l existe un fichero 'A' que ocupa los bloque 3, 6,
2 y 10, y un fichero B que ocupa los bloques 9, 4, 5, 7 y 8, y en ese orden. Si la
asignacin es enlazada, la lista de espacio libre es por agrupamiento y en cada
bloque caben 4 apuntadores, representa el contenido de la lista de espacio libre,
el directorio, el cual ocupa el bloque 11, y los bloques del disco.
4.
10,6
6,-
5,9
7,4
2,3
8,5
-,7
4,-
-,2
A:3,10
B: 9,8
A
0
Se pide:
E85
a)
b)
c)
Asignacin empleada
d)
10
11
5.
Sea un disco de 12 bloques. En l existe un fichero 'A' que ocupa los bloques 3, 6,
2 y 11, y un fichero B que ocupa los bloque 1, 4, 5, 7 y 8. Si la asignacin es
enlazada, la lista de espacio libre es por recuento y en cada bloque caben 4
apuntadores, representa el contenido de la lista de espacio libre, el directorio, el
cual ocupa el bloque 0, y los bloques del disco.
6.
Sea un disco de 12 bloques. En l existe un fichero 'A' que ocupa los bloque 3, 6,
y 11, y un fichero B que ocupa los bloques 1, 4, 5, 7 y 8. Si la asignacin es
doblemente enlazada, la lista de espacio libre es enlazada y en cada bloque
caben 4 apuntadores, representa el contenido de la lista de espacio libre, el
directorio, el cual ocupa el bloque 0, y los bloques del disco.
7.
8.
9.
A:7,5
10,6
-,7
2,-
5,-
-,10
11
8,2
B: 6,8
B
1
0
B
9
10
11
Se pide:
a) Ficheros que hay en l, bloques que ocupan y en qu orden.
b) Asignacin empleada e implementacin de la lista de espacio libre.
c) Representar, sin mover los bloques de datos ni el directorio, cmo quedara
este mismo disco con asignacin indexada con esquema combinado 3+1
estando la lista de espacio libre implementada por agrupamiento.
Suponemos que en un bloque entran cuatro apuntadores.
E86
10. Una unidad de disco tiene 300 cilindros y 20 sectores de 512 Kbytes cada uno por
pista. El disco gira a 3.000 r.p.m. y el tiempo de posicionamiento de la cabeza es
de 25 milisegundos. Sabiendo que la velocidad de transferencia es de 5 Mb/seg.,
calcula el tiempo total de transferencia de:
a)
15 sectores consecutivos
b)
c)
d)
11. Dado un disco duro que contiene 20 platos de 2 caras cada uno, con 50 cilindros y
10 sectores de 250 bytes cada uno por pista, calcula:
a)
b)
13. Supongamos que un disco tiene 200 pistas numeradas de 0 a 199, y la cabeza de
lectura/escritura est sirviendo una peticin en la pista 143 despus de haber
servido otra peticin en la 125. Si la cola de peticiones existente hace referencia a
las siguientes pistas:
86, 147, 91, 177, 94, 150, 102, 175, 130
E87
a)
FCFS
b)
SSTF
c)
SCAN
d)
C-SCAN
e)
LOOK
f)
C-LOOK
14. Elige entre planificacin de disco SSTF o LOOK y razona dicha eleccin, dada la
siguiente situacin en los accesos a un disco de 200 pistas
las peticiones pendientes son: 120, 35, 69, 28, 99, 184, 173
FCFS
b)
SSTF
c)
SCAN
d)
C-LOOK
16. Elige entre planificacin de disco SSTF o C-SCAN y razona dicha eleccin, dada
la siguiente situacin en los accesos a un disco de 400 pistas:
17. Para la siguiente secuencia de peticiones de pistas: 27, 129, 110, 28, 186, 147,
41, 10, 64, 20, y suponiendo que la cabeza del disco est ubicada inicialmente en
la pista 100, movindose en direcciones decrecientes de nmeros de pista,
calcula y dibuja el movimiento total de cabeza, para un disco de 200 pistas, si se
utiliza:
E88
a)
b)
c)
d)
e)
f)