Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas...

17
Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los sistemas operativos, y Procesos y hebras 1. Diga cuales de las siguientes operaciones pueden realizarse únicamente en modo supervisor, o modo kernel: a) Consultar la hora del sistema. b) Cambiar la fecha del sistema. c) Leer una pista/sector de un disco magnético. d) Generar una interrupción software. e) Generar una interrupción. f) Modificar la dirección de un vector de la tabla de vectores de interrupción. g) Deshabilitar las interrupciones. 2. En el caso de un ordenador que se vaya a usar únicamente para un único usuario, ¿qué interés puede tener la existencia de los modos de funcionamiento supervisor/usuario? 3. Cuestiones sobre procesos, y asignación de CPU: a) ¿Es necesario que lo último que haga todo proceso antes de finalizar sea una llamada al sistema para finalizar? ¿Sigue siendo esto cierto en sistemas monoprogramados? b) Cuando el controlador de un dispositivo produce una interrupción ¿se produce necesariamente un cambio de contexto?, ¿y cuando se produce una llamada al sistema? c) Cuando un proceso se bloquea, ¿deberá encargarse él directamente de cambiar el valor de su estado en el descriptor de proceso o PCB? d) Sea un proceso que cambia de Ejecutándose a Bloqueado, ¿puede este cambio provocar un cambio de estado en otros procesos? Si es así, ¿en qué casos? e) Idem para el cambio de estado Bloqueado a Ejecutable. 4. ¿Qué debería hacer el planificador a corto plazo cuando es invocado pero no hay ningún proceso en la cola de ejecutables? 5. ¿Qué algoritmos de planificación quedan descartados para ser utilizados en sistemas de tiempo compartido? 6. La representación gráfica del cociente [(tiempo_en_cola_ejecutables + tiempo_de_CPU) / tiempo_de_CPU ] frente a tiempo_de_CPU suele mostrar valores muy altos para ráfagas muy cortas en casi todos los algoritmos de asignación de CPU. ¿Por qué? 7. Para cada una de las llamadas al sistema siguientes, especificar y explicar si su procesamiento por el sistema operativo requiere la invocación del planificador a corto plazo: a) Crear un proceso. b) Abortar un proceso, es decir, terminarlo forzosamente. c) Suspender o bloquear un proceso. d) Reanudar un proceso (inversa al caso anterior). e) Modificar la prioridad de un proceso. 8. ¿Por qué no es el intérprete de ordenes (shell) parte del propio sistema operativo? 9. El modelo cliente-servidor es muy utilizado en sistemas distribuidos, ¿puede utilizarse este modelo en sistemas de un único computador? Pág. 1

Transcript of Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas...

Page 1: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Relación de problemas - Sistemas Operativos I

Temas 1 y 2: Introducción a los sistemas operativos, y Procesos y hebras

1. Diga cuales de las siguientes operaciones pueden realizarse únicamente en modo

supervisor, o modo kernel: a) Consultar la hora del sistema. b) Cambiar la fecha del sistema. c) Leer una pista/sector de un disco magnético. d) Generar una interrupción software. e) Generar una interrupción. f) Modificar la dirección de un vector de la tabla de vectores de interrupción. g) Deshabilitar las interrupciones.

2. En el caso de un ordenador que se vaya a usar únicamente para un único usuario, ¿qué interés puede tener la existencia de los modos de funcionamiento supervisor/usuario?

3. Cuestiones sobre procesos, y asignación de CPU:

a) ¿Es necesario que lo último que haga todo proceso antes de finalizar sea una llamada al sistema para finalizar? ¿Sigue siendo esto cierto en sistemas monoprogramados?

b) Cuando el controlador de un dispositivo produce una interrupción ¿se produce necesariamente un cambio de contexto?, ¿y cuando se produce una llamada al sistema?

c) Cuando un proceso se bloquea, ¿deberá encargarse él directamente de cambiar el valor de su estado en el descriptor de proceso o PCB?

d) Sea un proceso que cambia de Ejecutándose a Bloqueado, ¿puede este cambio provocar un cambio de estado en otros procesos? Si es así, ¿en qué casos?

e) Idem para el cambio de estado Bloqueado a Ejecutable.

4. ¿Qué debería hacer el planificador a corto plazo cuando es invocado pero no hay ningún proceso en la cola de ejecutables?

5. ¿Qué algoritmos de planificación quedan descartados para ser utilizados en sistemas

de tiempo compartido? 6. La representación gráfica del cociente [(tiempo_en_cola_ejecutables + tiempo_de_CPU)

/ tiempo_de_CPU ] frente a tiempo_de_CPU suele mostrar valores muy altos para ráfagas muy cortas en casi todos los algoritmos de asignación de CPU. ¿Por qué?

7. Para cada una de las llamadas al sistema siguientes, especificar y explicar si su

procesamiento por el sistema operativo requiere la invocación del planificador a corto plazo:

a) Crear un proceso. b) Abortar un proceso, es decir, terminarlo forzosamente. c) Suspender o bloquear un proceso. d) Reanudar un proceso (inversa al caso anterior). e) Modificar la prioridad de un proceso.

8. ¿Por qué no es el intérprete de ordenes (shell) parte del propio sistema operativo? 9. El modelo cliente-servidor es muy utilizado en sistemas distribuidos, ¿puede utilizarse

este modelo en sistemas de un único computador?

Pág. 1

Page 2: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 10. En los primeros ordenadores, cada byte de datos leído o escrito, era manejado

directamente por la CPU (es decir, no existía DMA - Acceso Directo a Memoria). ¿Qué implicaciones tenía esta organización para la multiprogramación?

11. Sea un sistema multiprogramado que utiliza el algoritmo Por Turnos (Round-Robin).

Sea S el tiempo que tarda el despachador en cada cambio de contexto. ¿Cuál debe ser el valor de quantum Q para que el porcentaje de uso de la CPU por los procesos de usuario sea del 80%?

12. Sea un sistema multiprogramado que utiliza el algoritmo Por Turnos (Round-Robin).

Sea S el tiempo que tarda el despachador en cada cambio de contexto, y N el número de procesos existente. ¿Cuál debe ser el valor de quantum Q para que se asegure que cada proceso “ve” la CPU al menos cada T segundos?

13. ¿Tiene sentido mantener ordenada por prioridades la cola de procesos bloqueados? Si

lo tuviera, ¿en qué casos sería útil hacerlo? 14. ¿Puede el procesador manejar una interrupción mientras esta ejecutando un proceso si

la política de planificación que utilizamos es no apropiativa (sin desplazamiento)? 15. Suponga que es responsable de diseñar e implementar un sistema operativo que va a

utilizar una política de planificación apropiativa (con desplazamiento). Suponiendo que tenemos desarrollado el algoritmo de planificación a tal efecto, ¿qué otras partes del sistema operativo habría que modificar para implementar tal sistema? y ¿cuales serían tales modificaciones?

16. Suponga que es el propietario de un kiosco de helados denominado Bola de Nieve. El

kiosco es atendido por un solo dependiente. La persona que desea un helado se dirige al kiosco, solicita un único helado que cuesta 3 Ptas., espera que lo despache, paga y se marcha. Cuando hay más de un cliente, se forma una cola, que la experiencia nos dice que nunca esta compuesta por más de tres personas (cuando alguien se acerca y ve más de tres personas en la cola se marcha a un competidor próximo). Un estudio de mercado indica que en media se acercan al mostrador una persona por minuto. Supón que realizas una prueba para contratar un dependiente y se presentan dos candidatos, Pepe y Juan. Tras la prueba, descubres que Pepe atiende a un cliente en 20 segundos de media, mientras que Juan lo hace en 30 segundos, pero mientras que Pepe te pide un sueldo de 12 Ptas./hora Juan lo hará por 6 Ptas./hora. Teniendo todos estos factores en cuenta, ¿qué persona te trae más cuenta contratar si te interesa obtener los mejores beneficios?

17. En la tabla siguiente se describen cinco procesos:

Proceso Tiempo de creación Tiempo de CPU

A B C D E

4 0 1 8

12

1 5 4 3 2

Si suponemos que tenemos un algoritmo de planificación que utiliza una política FIFO (primero en llegar, primero en ser servido), calcula: a) Tiempo medio de respuesta b) Tiempo medio de espera c) La penalización, es decir, el cociente entre el tiempo de respuesta y el tiempo de

CPU.

Pág. 2

Page 3: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 18. Utilizando los valores de la tabla del problema anterior, calcula los tiempos medios de

espera y respuesta para los siguientes algoritmos:

a) Por Turnos con quantum q=1 b) Por Turnos con quantum q=4 c) El más corto primero (SJF). Suponga que se estima una ráfaga igual a la real.

19. Calcula el tiempo de espera medio para los procesos de la tabla utilizando el algoritmo:

el primero más corto apropiativo (o primero el de tiempo restante menor, SRTF).

Proceso Tiempo de creación

Tiempo de CPU

A B C D E

0 1 3 9

12

3 1

12 5 5

20. Utilizando la tabla del ejercicio anterior, dibuja el diagrama de ocupación de CPU para el

caso de un sistema que utiliza un algoritmo de colas múltiples con realimentación con las siguientes colas:

Cola Prioridad Quantum

1 2 3

1 2 3

1 2 4

y suponiendo que: (a) los procesos entran en la cola de mayor prioridad (menor valor numérico). Cada cola

se gestiona mediante la política Por Turnos. (b) la política de planificación entre colas es por prioridades no apropiativo. (c) un proceso en la cola i pasa a la cola i+1 si consume un quantum completo sin

bloquearse. 21. Consideremos los procesos cuyo comportamiento se recoge en la tabla siguiente

Proceso Tiempo creación

Comportamiento CPU Bloqueo CPU Bloqueo CPU Bloqueo CPU

A B C D

0 1 2 4

1 1 2 4

2 1 1 -

1 1 2 -

2 2 1 -

1 1 1 -

- - 1 -

- - 1 -

Dibuja el diagrama de ocupación de la CPU para los siguientes algoritmos:

a) FIFO b) Por Turnos (Round-Robin), con q=1 c) Prioridades, suponiendo que las prioridades son 3 para A y B, 2 para C, y 1 para D

(mayor número = menor prioridad). d) Primero el más corto, suponiendo que la estimación de cada ráfaga coincide con la

duración de la ráfaga anterior. La estimación para la primera ráfaga es su valor real.

Pág. 3

Page 4: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 22. Suponga que debe maximizar la eficiencia de un sistema multiusuario y que está

recibiendo quejas de muchos usuarios sobre los pobres tiempos de respuesta (o tiempos de vuelta) de sus procesos. Los resultados obtenidos con una herramienta de monitorización del sistema nos muestran que la CPU se utiliza al 99'9% de su tiempo y que los procesadores de E/S están activos solo un 10% de su tiempo. ¿Cuales pueden ser las razones de estos tiempos de respuesta pobres y por qué?

a) El quantum en la planificación Round-Robin es muy pequeño. b) La memoria principal es insuficiente. c) El sistema operativo tiene que manejar mucha memoria principal por lo que las rutinas de gestión de memoria están consumiendo todos los ciclos de CPU. d) La CPU es muy lenta. e) El quantum en la planificación Round-Robin es muy grande.

23. Cinco trabajos esperan para ejecutarse en un sistema de computación. Sus tiempos de

ejecución estimados son 9, 6, 3, 5 y X, ¿en qué orden deberán ejecutarse si se desea minimizar el tiempo medio de espera? (su respuesta dependerá de X).

Pág. 4

Page 5: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Tema 3: Sincronización y comunicación entre procesos

1. Cuando ocurre el evento por el cual un proceso está bloqueado, se invoca a un

procedimiento, que denominaremos Desbloquear, para colocar el proceso en la cola de planificación correcta. Antes de realizar ninguna otra acción este procedimiento deshabilita (desactiva) las interrupciones. Explique por qué.

2. Para calcular el número combinatorio (n k) = n(n-1)(n-2)...(n-k+1)/k!, creamos un programa con dos procesos. El proceso P1 calcula el numerador y deposita el resultado en una variable compartida, denominada x, mientras que P2 calcula el factorial y deposita el valor en la variable y. Sincroniza los procesos P1 y P2, utilizando semáforos, para que el proceso P2 realice correctamente la división x/y.

Declaración-inicialización de variables globales y semáforos n, k, x=1, i=1: enteros : semáforos

P1 P2 for i = n-k+1 to n do begin x:=x * i; end

y:=1 for j=2 to k do begin y:=y * j; end escribir (x/y);

Nota: En los primeros problemas propuestos, vamos a dibujar una caja en la que aparece: (a) el recuadro superior contiene la declaración-inicialización de variables globales y semáforos necesarias para el ejercicio, (b) dos o más recuadros verticales que contienen fragmentos del código de los procesos. Se deja al lector la tarea de completar tanto las declaraciones-inicializaciones necesarias como el código necesario para resolver el ejercicio.

3. Sean los procesos P1, P2 y P3, cuyas secuencias de instrucciones son las que se muestran en el cuadro. Resuelva los siguientes problemas de sincronización (son independientes unos de otros):

a) P2 podrá pasar a ejecutar e solo si P1 ha ejecutado a o P3 ha ejecutado g.

b) P2 podrá pasar a ejecutar e solo si P1 ha ejecutado a y P3 ha ejecutado g.

c) Solo cuando P1 haya ejecutado b, podrá pasar P2 a ejecutar e y P3 a ejecutar h.

d) Sincroniza los procesos de forma que las secuencias b en P1, f en P2, y h en P3, sean ejecutadas como mucho por dos procesos simultáneamente.

Pág. 5

Page 6: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Declaración-inicialización de variables y semáforos

P1 P2 P3 while true do begin a b c end

while true do begin d e f end

while true do begin g h i end

4. Dos procesos P1 y P2 se pasan información a través de una estructura de datos, ED. Sea un entero, n, que indica en todo momento el número de elementos útiles en ED y cuyo valor inicial es 0. El proceso P2 retira de ED en cada ejecución el último elemento depositado por P1, y espera si no hay elementos a que P2 ponga más. Supón que ED tiene un tamaño ilimitado, es decir, es lo suficientemente grande para que nunca se llene.

Declaración-inicialización de variables y semáforos

P1 P2 while true do dato_calculado:= calcular_dato(); n:=n+1; ED[n]:=dato_calculado; end

while true do dato:=ED[n]; n:=n-1 operar_dato(dato); end

5. El cuadro que sigue nos muestra dos procesos concurrentes, P1 y P2, que comparten una variable global x (las restantes variables son locales a los procesos).

a) Sincronizar los procesos para que P1 use todos los valores x suministrados por P2.

b) Sincronizar los procesos para que P1 utilice un valor sí y otro no de la variable x, es decir, utilice los valores primero, tercero, quinto, etc.

Pág. 6

Page 7: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Declaración-inicialización de variables y semáforos var x: entero

P1 P2 while true do begin m:=2*x-n; imprimir (m); end

while true do begin leer_teclado (d); x:=d-c*5 end

6. En la fábrica de bicicletas MountanenBike, tenemos tres operarios que denominaremos OP1, OP2 y OP3. OP1 construye ruedas, OP2 construye cuadros de bicicletas, y OP3, manillares. Un cuarto operario, el Montador, se encarga de tomar dos ruedas, un cuadro y un manillar, y de montar la bicicleta. Sincroniza las acciones de los tres operarios y el Montador en los siguientes casos:

a) Los operarios no tienen ningún espacio para almacenar los componentes

producidos, y el Montador no podrá coger ninguna pieza si ésta no ha sido fabricada previamente por el correspondiente operario.

b) Los operarios OP2 y OP3 tienen espacio para almacenar 10 piezas de las que producen, por tanto, deben esperar si habiendo producido 10 piezas no es retirada ninguna por el Montador. El operador OP1 tiene espacio para 20 piezas.

Declaración-inicialización de variables y semáforos

OP1 OP2 OP3 Montador while true do begin Hacer_rueda(); end

While true do begin Hacer_cuadro(); end

while true do begin Hacer_manillar(); end

While true do Begin Coge_rueda(); Coge_rueda(); Coge_cuadro(); Coge_manillar(); Montar_bici(); end

Pág. 7

Page 8: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 7. Sentados en una mesa del Restaurante Atreveteacomer, están dos personas, cada una

de las cuales esta tomando un plato de sopa, y entre las dos comparten una fuente de ensalada. Estas dos personas no tienen mucha confianza y no pueden comer las dos simultáneamente del plato de ensalada. Se pide:

a) Diseñar un programa que resuelva el problema. b) Ahora, supón que existe un camarero encargado de retirar los platos de sopa

cuando éstos están vacíos, es decir, cuando cada una de las personas ha tomado diez cucharadas. Soluciona esta variante teniendo en cuenta que el camarero debe cambiar los platos a las dos personas a la vez.

Declaración-inicialización de variables y semáforos

Comensal-1 Comensal-2 Camarero (Apartado b) while true { tomar_una_cucharada; comer_ensalada(); }

while true { tomar_una_cucharada; comer_ensalada(); }

while true { quitar_sopa(); poner_sopa(); }

8. Resuelva el problema del Productor-Consumidor con y sin buffer limitado utilizando semáforos binarios.

9. Esboce una solución de cómo un sistema operativo puede implementar las operaciones de semáforos con el mecanismo de habilitar/deshabilitar (activar/desactivar) interrupciones.

10. No es infrecuente encontrar un computador que utiliza tanto la instrucción TestAndSet como otra primitiva de sincronización, como los semáforos. Los dos tipos juegan dos papeles diferentes que no compiten entre sí. Explica por qué.

11. Problema de los filósofos-comensales. Sentados a una mesa están cinco filósofos. La

actividad de cada filósofo es un ciclo sin fin de las operaciones de pensar y comer. Entre cada dos filósofos hay un tenedor. Para comer, un filósofo necesita obligatoriamente dos tenedores: el de su derecha y el de su izquierda. Necesitamos cinco procesos concurrentes, cada uno de ellos describe la actividad de un filósofo. Incluye las operaciones sobre semáforos necesarias para implementar el hecho de que antes de comer hay que disponer del tenedor de la derecha y el de la izquierda, y que cuando se termine la actividad de comer, hay que liberar ambos tenedores. El filósofo i alude al tenedor de su derecha como el número i, y al de su izquierda como el número (i+1) mod 5. Diseña una solución a este problema.

Pág. 8

Page 9: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Declaración-inicialización de variables y semáforos tenedori : semaforo (para acceder al tenedor i) := 1 i=(1..5)

Filosofoi While (true) { comer (); pensar (); }

12. Resuelva el problema de los Lectores-Escritores que se detalla a continuación utilizando semáforos. Suponemos un sistema de base de datos que es compartido por varios procesos. Estos procesos se dividen en dos clases distintas según el tipo de acceso a la base de datos: Procesos Lectores que leen información y Procesos Escritores que leen y modifican información de la base de datos común. Los objetivos propuestos son:

1) Asegurar la consistencia de la base de datos y

2) Procurar la máxima concurrencia en el acceso a la base de datos.

Y tenemos las siguientes situaciones:

1) Varios Lectores pueden acceder simultáneamente a la base de datos.

2) Cuando un Escritor está accediendo a la base de datos, ningún otro proceso puede acceder a la base de datos, ni Lector ni Escritor. En teoría se ha resuelto dando más prioridad a los lectores, resolverlo dando más prioridad a los escritores.

13. La vida real esta llena de problemas de sincronización. Uno de estos casos se da en las barberías. Suponga una barbería con un barbero, una silla para cortar el pelo y N sillas para que los clientes esperen sentados a que les toque su turno. Si no hay clientes, el barbero, que es bastante vago, duerme en su silla. Cuando llega un cliente debe despertar al barbero. Si llegan más clientes mientras que el barbero esta pelando y hay sillas libres, se sientan y esperan su turno. Si no hay sillas libres se van. Programa una solución para el Barbero y los Clientes.

14. A partir de un mecanismo de semáforos deseamos construir las rutinas enviar(buzon, mensaje) y recibir(buzon, mensaje) para implementar un mecanismo de paso de mensajes con buzones. Para ello, disponemos de una matriz BUZON de 10 elementos, cada elemento es una cadena de m caracteres, donde se almacenan los mensajes. Tenemos una variable compartida, n, que indica el número de mensajes que hay en cada momento en el buzón. Implementa:

a) Un mecanismo de designación indirecta asíncrono. b) Un mecanismo de designación indirecta síncrono.

Pág. 9

Page 10: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Declaraciones-inicializaciones Funcion enviar(buzon, mensaje) { n:=n+1; buzon(n):= mensaje; }

funcion recibir(buzon, mensaje) { mensaje:= buzon(n); n:=n-1; }

15. Discute la viabilidad de utilizar la instrucción TestAndSet suministrada por el repertorio

de instrucciones de un procesador para obtener exclusión mutua en los siguientes casos:

a) Como mecanismo para ser utilizado en programas de usuario. b) En las rutinas de tratamiento de interrupción como método alternativo a

deshabilitar/habilitar las interrupciones total o parcialmente. c) Para implementar las operaciones wait() y signal() de los semáforos.

16. Considere un ordenador que no posee la instrucción Test-and-Set, pero sí tiene una instrucción Swap(a,b) que intercambia el contenido de dos palabras de memoria (a y b) en una sola acción individual. Muestre cómo se puede utilizar esta instrucción para resolver el problema de la exclusión mutua, es decir, diseñar el protocolo de entrada y el protocolo de salida a la sección crítica.

procedure Swap (var a,b: boolean) var temp: boolean begin

temp := a; a := b; b := temp

end 17. Utilizando la instrucción Test_and_Set, hemos desarrollado el siguiente fragmento de

código para resolver el problema de la exclusión mutua: (inicialmente la variable cerrojo = false)

repeat while TestAndSet(cerrojo) do no-op; SecciónCrítica; cerrojo:= false; RestoSección; until false;

¿Cuál(es) de la(s) propiedad(es) que debe satisfacer una solución del problema de exclusión mutua no se satisface(n) con el código anterior? Justifique la respuesta.

Pág. 10

Page 11: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 18. La exclusión mutua utilizando semáforos se logra inicializando un semáforo a 1

(llamémoslo mutex), comenzando todas las secciones críticas con una operación wait(mutex) y finalizando todas las secciones críticas con una operación signal(mutex) ¿Qué ocurre si un proceso que está dentro de una sección crítica realiza una operación wait(mutex)?

19. Supongamos uno de los puntos de la vía ferroviaria donde dos vías (vía_1, vía_2) se

unen en una sola (vía_3). El problema que se plantea es controlar dicho punto para que cuando lleguen los trenes no se produzcan problemas. Para modelar dicho problema suponemos que tenemos los siguientes procesos: Tren_vía_1(i), Tren_vía_2(j) y Controlador

Considera la siguiente situación : Tren_vía_1(i), Tren_vía_2(j): representan a los trenes que llega por la vía_1, y a los que llegan por la vía_2 respectivamente. Si llegan dos trenes a la vez (uno por la vía_1 y otro por la vía_2) pasará a la vía_3 el primero que llegue, pero antes de pasar debe recibir el permiso del controlador. Controlador: está en un ciclo infinito esperando que llegue un tren, cuando llega un tren realiza las acciones adecuadas y le da paso.

Declaración e inicialización de variables globales y semáforos Tren_via_1(i) Tren_via_2(j) Controlador pasar sigue su viaje

pasar sigue su viaje

While(true) { acciones_adecuadas(); }

A continuación se presentan tres soluciones no validas, descubra el por qué Solución 1

Inicialización de variables globales y semáforos Semáforos: paso=0, S=1, Tren_via_1(i) Tren_via_2(j) Controlador wait(paso) pasar signal(S) sigue su viaje

wait(paso) pasar signal(S) sigue su viaje

While(true) { wait(S) acciones adecuadas signal (paso) }

Pág. 11

Page 12: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas En las siguientes soluciones, al lado de cada sentencia se tiene un número entre paréntesis que se puede utilizar para encontrar una o más secuencias de ejecución que no respondan a la solución pedida. Solución 2 Inicialización de variables globales y semáforos Semáforos: tren=0, paso=0 Tren_via_1(i) Tren_via_2(j) Controlador (11) signal(tren) (12) wait(paso) (13) pasar sigue su viaje

(21)signal(tren) (22) wait(paso) (23) pasar sigue su viaje

While(true) { (31) wait(tren) (32) acciones adecuadas (33) signal (paso) }

Solución 3 Inicialización de variables globales y semáforos Semáforos: contolador=1, pasado2=0, pasado1=0 Tren_via_1(i) Tren_via_2(j) Controlador (11)wait(controlador) (12) pasar (13) signal(pasado1) sigue su viaje

(21) wait(controlador) (22) pasar (23) signal(pasado2) sigue su viaje

While(true) { (31)signal(controlador) (32) acciones adecuadas (33) wait (pasado1) (34) wait(pasado2) }

20. En un sistema electrónico de transferencia de fondos, existen miles de procesos idénticos que funcionan como sigue. Cada proceso lee en una línea la cantidad de dinero a transferir, el número de cuenta destinataria y el número de cuenta de origen de la transferencia. Entonces, bloquea las dos cuentas, transfiere el dinero, y libera las cuentas. Con muchos procesos así, existe un peligro real de interbloqueo (un proceso puede bloquear la cuenta x pero no puede bloquear la cuenta y porque otro proceso la tiene bloqueada y ese proceso esta directa o indirectamente esperando la cuenta x). Describa un esquema que evite el peligro de interbloqueo. No esta permitido desbloquear una cuenta una vez que se ha bloqueado hasta que la transacción se complete.

Pág. 12

Page 13: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Tema 4: Organización y gestión de memoria 1. Supongamos un gestor de memoria que utiliza una estrategia de particiones de tamaño

variable y que tenemos los siguientes bloques de espacio libre (huecos): 600 bytes, 400 bytes, 1600 bytes, 2200 bytes, 1000 bytes, y 1050 bytes. a) ¿Qué bloque se seleccionará para satisfacer una solicitud de 1003 bytes utilizando

una política de el mejor ajuste? b) Idem utilizando el peor ajuste. c) Suponiendo que la lista esta ordenada como aparece en el enunciado del problema,

¿qué bloque se seleccionará para satisfacer una solicitud de 1003 bytes utilizando la política de el primer ajuste?

2. Considere que se tiene una gestión de la memoria de un S.O. basada en particiones

variables (en un entorno de multiprogramación). En un determinado instante de la ejecución, la lista de bloques libres (huecos) disponible contiene tres bloques (no contiguos) con un tamaño de 200, 400 y 2000 KB respectivamente y han de atenderse las siguientes peticiones de memoria para los siguientes procesos: P1 necesita 200KB, P2 necesita 300KB, P3 necesita 200KB, P4 necesita 1300KB, P5 necesita 400KB y P6 necesita 150KB. Complete la siguiente figura, indicando en cada casilla el contenido de la lista de bloques libres disponibles después de atender la petición de cada proceso y para cada algoritmo de asignación de memoria (si alguna petición no se puede atender, indíquelo en la casilla correspondiente) ¿A que conclusión llega?

Algoritmo del peor ajuste Algoritmo del mejor ajuste

Petición Bloques-libres Petición Bloq-libres Petición Bloques-libres Petición Bloq-libres

P1-200 P4-1300 P1-200 P4-1300

P2-300 P5-400 P2-300 P5-400

P3-200 P6-150 P3-200 P6-150

3. Si un computador no posee hardware de reubicación, e implementa intercambio

(swapping), entonces el gestor de memoria necesita utilizar un cargador para recalcular las imágenes ejecutables a partir de las imágenes absolutas. ¿Sería posible para el sistema de intercambio reubicar los segmentos de datos y pila? Explica cómo funcionaría este sistema, o si es imposible que funcione.

4. ¿Por qué se utilizan potencias de dos para los tamaños de página, número de páginas en el espacio virtual de un proceso, y números de marcos de página?

5. Sitúese en un sistema paginado con memoria virtual, en donde: - la memoria real tiene un tamaño de 16 Mbytes - una dirección virtual ocupa 32 bits, de los cuales los 22 de la izquierda constituyen el número de página, y los 10 de la derecha el desplazamiento dentro de la página. Según lo anterior,

a) ¿Qué tamaño tiene cada página? b) ¿Cuál es el tamaño del espacio de direccionamiento virtual? c) ¿En cuántos marcos de página se divide la memoria física?

Pág. 13

Page 14: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

d) ¿Qué tamaño deberá tener el campo Número de Marco de la Tabla de Páginas? e) Además de dicho campo, suponga que la Tabla de Páginas tiene los siguientes

campos con los siguientes valores: * Presencia: 1 bit (1= Presente en memoria fisica, 0= ausente) * Modificación: 1 bit (1= Ha sufrido modificación desde que se cargó en memoria) * Protección: 1 bit (1= Sólo se permite leer; 0= Cualquier tipo de acceso).

¿Cuál es el tamaño de la Tabla de Páginas para un proceso cuyo espacio de memoria virtual es de 103K bytes?

6. Un ordenador tiene 4 marcos de página. En la siguiente tabla se muestran: el tiempo de

carga, el tiempo del último acceso y los bits R y M para cada página (los tiempos están en tics de reloj). Responda a las siguientes cuestiones justificando su respuesta.

Página Tiempo de carga

Tiempo ultimaReferencia

Bit de Referencia

Bit de Modificación

0 1 2 3

126 230 120 160

279 235 272 200

1 1 1 1

0 0 1 1

a) ¿ Qué página se sustituye si se usa el algoritmo FIFO? b) ¿ Qué página se sustituye si se usa el algoritmo LRU?

7. ¿Depende el tamaño del conjunto de trabajo de un proceso directamente del tamaño del programa ejecutable asociado a él? Justifique su respuesta.

8. Un ordenador proporciona un espacio de direccionamiento lógico (virtual) a cada

proceso de 65.536 bytes de espacio dividido en páginas de 4096 bytes. Cierto programa tiene un tamaño de región de texto de 32768 bytes, un tamaño de región de datos de 16386 bytes y tamaño de región de pila de 15878. ¿Cabría este programa en el espacio de direcciones? (Una página no puede ser utilizada por regiones distintas). Si no es así, ¿cómo podríamos conseguirlo, dentro del esquema de paginación?

9. Suponga que la tabla de páginas para el proceso actual se parece a la de la figura. Todos

los números son decimales, la numeración comienza en todos los casos desde cero, y todas las direcciones de memoria son direcciones en bytes. El tamaño de página es de 1024 bytes.

Número de

página virtual Bit de validez o presencia

Bit de referencia

Bit de modificación

Número de marco de página

0 1 2 3 4 5

0 1 1 1 0 1

1 1 0 0 0 0

0 1 0 0 0 1

4 7 1 2 - 0

¿Qué direcciones físicas, si existen, corresponderán con cada una de las siguientes direcciones virtuales? (no intente manejar ninguna falta de página, si las hubiese)

a) 999 b) 2121 c) 5400

Pág. 14

Page 15: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 10. Sea la siguiente secuencia de números de página referenciados: 1,2,3,4,1,2,5,1,2,3,4,5

Calcula el número de faltas de página que se producen utilizando el algoritmo FIFO y considerando que el número de marcos de página de que disfruta nuestro proceso es de a) 3 marcos b) 4 marcos ¿Se corresponde esto con el comportamiento intuitivo de que disminuirá el número de faltas de página al aumentar el tamaño de memoria de que disfruta el proceso?

11. ¿Qué tipo de fragmentación se produce en un sistema de gestión de memoria virtual

paginado? ¿Qué decisiones de diseño se pueden tomar para minimizar dicho problema, y cómo afectan estas decisiones al comportamiento del sistema?

12. El tiempo medio de ejecución de una instrucción en un procesador es de 30 nsg. Tras

diversas medidas se ha comprobado que: a) El 0.001% de las instrucciones producen falta de página. b) El 30% de las ocasiones en que se produce la falta de página, la página que hay

que sustituir está “sucia”. c) La velocidad de transferencia al dispositivo de disco es de 2MB/sg. El tamaño de

cada página es de 4 KB. Calcule el tiempo efectivo de una instrucción (el tº que tarda en ejecutarse).

13. En general, cuando se utiliza un algoritmo de sustitución de páginas LRU se producen menos faltas de página que cuando usamos un FIFO, para la misma cadena de referencia. Sin embargo, existen cadenas para las que FIFO produce menos faltas de página. Da un ejemplo de una de estas cadenas. Consejo: la cadena de referencia no debe ser larga; una solución a este problema puede ser una cadena de longitud seis.

14. ¿Por qué la localidad no es un factor que se tiene en cuenta en los sistemas con

segmentación? 15. En la gestión de memoria en un sistema paginado, ¿qué estructura/s de datos necesitará

mantener el Sistema Operativo para administrar el espacio libre? 16. Situándonos en un sistema paginado, donde cada proceso tiene asignado un número fijo

de marcos de páginas. Supongamos la siguiente situación: existe un proceso con 7 páginas y tiene asignados 5 marcos de página. Indica el contenido de la memoria después de cada referencia a una página si como algoritmo de sustitución de página utilizamos el LRU (la página no referenciada hace más tiempo). La secuencia de referencias es la indicada en la figura.

Referencias 2 1 3 4 1 5 6 4 5 7 4 2

Marcos de página

¿Cuantas faltas de página se producen? _______

Pág. 15

Page 16: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas 17. ¿Cuál es la ventaja del algoritmo de faltas de página sobre el algoritmo basado en el

modelo del conjunto de trabajo utilizando el tamaño de ventana w? ¿Cuál es la desventaja?

18. Supongamos que tenemos un proceso ejecutándose en un sistema paginado, con

gestión de memoria basada en el algoritmo de sustitución frecuencia de faltas de página. El proceso tiene 5 páginas ( 0, 1, 2, 3, 4 ). Represente el contenido de la memoria real para ese proceso (es decir, indique que páginas tiene cargadas en cada momento) y cuándo se produce una falta de página. Suponga que, inicialmente, está cargada la página 2, el resto de páginas están en memoria secundaria y que no hay restricciones en cuanto al número de marcos de página disponibles. La cadena de referencias a página es: 0 3 1 1 1 3 4 4 2 2 4 0 0 0 0 3 y el parámetro es τ=3.

19. Describa el funcionamiento del algoritmo de sustitución basado en la frecuencia de

faltas de página, con los siguientes datos: 4 marcos de página, en t = 0 la memoria contiene a la página B. El tamaño de la ventana es τ= 3 y se produce la secuencia de referencias de páginas, A D B B B D E E C C E A A A A D

B

20. Describa el funcionamiento del algoritmo de sustitución global basado en el algoritmo

basado en el modelo del conjunto de trabajo, con los siguientes datos: 4 marcos de página, en t= 0 la memoria contiene a la página B que se referenció en dicho instante de tiempo. El tamaño de la ventana es τ= 3 y se produce la secuencia de referencias de páginas, A D D D B D A A C C E E E E A D

B

21. Una computadora con memoria virtual paginada tiene un bit U por página virtual, que se

pone automáticamente a 1 cuando se realiza un acceso a la página. Existe una instrucción limpiar_U (dir_base_tabla) que permite poner a 0 el conjunto de los bits U de todas las páginas de la tabla de páginas cuya dirección de comienzo pasamos como argumento. Explica cómo puede utilizarse este mecanismo para la implementación de un algoritmo de sustitución basado en el modelo del conjunto de trabajo.

22. Un Sistema Operativo con memoria virtual paginada tiene el mecanismo fijar_página(np)

cuyo efecto es proteger contra la sustitución al marco de página en que se ubica la página virtual np. El mecanismo des_fijar (np) suprime esta protección.

a) ¿Qué estructura/s de datos son necesarias para la realización de estos mecanismos? b) ¿En qué caso puede ser de utilidad estas primitivas? c) ¿Qué riesgos presentan y qué restricciones deben aportarse a su empleo?

Pág. 16

Page 17: Sistemas Operativos Ijlgarrid/so1/Problemas0506.pdf · Sistemas Operativos I Relación de problemas Relación de problemas - Sistemas Operativos I Temas 1 y 2: Introducción a los

Sistemas Operativos I Relación de problemas

Pág. 17

23. Implemente la política de sustitución global basada en la medida de la tasa de faltas de página de un proceso; es decir, dé respuestas a las siguientes cuestiones:

a) ¿Qué parte del Sistema Operativo deberá tomar parte? b) ¿Cuándo entra en ejecución dicho módulo del S.O.? c) ¿Qué estructuras de datos será necesario mantener? d) ¿Qué decisiones podría adoptar? 24. Disponemos de un ordenador que cuenta con las siguientes características: tiene una

memoria RAM de 4KBytes, permite usar memoria virtual paginada, las páginas son de 1KBytes de tamaño y las direcciones virtuales son de 16 bits. El primer marco de página (marco 0) se usa únicamente por el Kernel y los demás marcos están disponibles para su uso por los procesos que se ejecutan en el sistema. Supongamos que tenemos sólo dos procesos, P1 y P2, y que utilizan las siguientes direcciones de memoria virtual y en el siguiente orden:

Proceso Direcciones virtuales

P1 0-99 P2 0-500 P1 100-500 P2 501-1500 P1 3500-3700 P2 1501-2100 P1 501-600

a) ¿Cuántos marcos de página tiene la memoria RAM de este ordenador? b) ¿Cuántos bits necesitamos para identificar los marcos de página? c) Describe los fallos de página que tendrán lugar para cada intervalo de ejecución de los

procesos, si la política de sustitución de páginas utilizada es LRU. Suponga que se dicho algoritmo es de asignación variable y sustitución global.