Sie sind auf Seite 1von 172

Universidad de Deusto Facultad de Ingeniera

SISTEMAS OPERATIVOS
CUESTIONES Y EJERCICIOS

Mara Jos Gil Larrea


Enero 2015

SISTEMAS OPERATIVOS: Cuestiones y Ejercicios 9 Edicin


Gil Larrea, Mara Jos

Departamento de Ingeniera Informtica Sistemas Concurrentes. Bilbao, enero 2015

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

CUESTIONES: Definicin y conceptos

Definicin y conceptos
1.

Define los conceptos siguientes e incluye ejemplos de cada uno de ellos:


a)

Software de Aplicacin

b)

Software del Sistema

2.

El Sistema operativo es Software del Sistema, pero qu lo diferencia del resto?

3.

Qu indica el trmino mquina desnuda?

4.

Qu es una mquina extendida?

5.

Qu es una mquina abstracta?

C1

CUESTIONES: Definicin y Conceptos

6.

Hacer asequible el hardware implica que est disponible en la forma ms adecuada


y que el rendimiento total sea alto. A qu elementos hace referencia el trmino
rendimiento total?

7.

Actualmente el arranque de un ordenador implica bsicamente dos fases: el


arranque hardware y el arranque del Sistema Operativo. En qu consiste este
ltimo?

8.

Qu ventajas tiene codificar el sistema operativo en un lenguaje de alto nivel?

C2

CUESTIONES: Tipos de Sistemas Operativos

Tipos de Sistemas Operativos


1.

Qu clasificaciones existen para los Sistemas Operativos?

2.

Qu servicios exigen principalmente los usuarios en los sistemas monousuario?

3.

Qu caractersticas deben tener los sistemas monousuario?

4.

Qu es una transaccin? Nombra las cualidades requeridas en un Sistema


transaccional.

5.

Cules son las funciones de los Sistemas Operativos en tiempo real? Qu quiere
decir que la funcin de seguridad es prioritaria?

C3

CUESTIONES: Tipos de Sistemas Operativos

6.

Qu caractersticas tienen los Sistemas Operativos en tiempo real?

7.

Qu diferencias hay entre los Sistemas Transaccionales y los Sistemas


Multiprogramados?

8.

Qu funciones tiene el Sistema Operativo en los Sistemas de Tiempo


Compartido/Multiprogramados?

9.

Describe brevemente un sistema multiprocesador. Qu funciones tiene el Sistema


Operativo en estos sistemas?

10. Cul es la principal diferencia entre los Sistemas Operativos por niveles y los
monolticos?

C4

CUESTIONES: Tipos de Sistemas Operativos

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:

13. Qu pasa en un Sistema Operativo monoltico cuando se le solicita un servicio?

14. Nombra la divisin en niveles del Sistema Operativo MINIX y describe brevemente de
qu se encarga cada nivel.

C5

CUESTIONES: Tipos de Sistemas Operativos

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?

16. Con qu estructuras de datos trabajan los Sistemas Operativos? Propn un


Sistema Operativo por capas y clasifica dichas estructuras por los niveles en que se
utilizaran. Para cada una de ellas, especifica la informacin que contiene, e indica si
se encuentra en memoria principal o secundaria.

Representacin grfica:

C6

CUESTIONES: Tipos de Sistemas Operativos

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?

20. Qu funciones tiene el ncleo en los sistemas operativos basados en micro-kernel?

21. Qu es la mecnica y la poltica de un Sistema Operativo?


Mecnica:

Poltica:

C7

CUESTIONES: Tipos de Sistemas Operativos

22. Cmo se distribuyen las funciones de un Sistema Operativo basado en microkernel?

23. Define proceso cliente y proceso servidor.


Proceso cliente:

Proceso servidor

24. Por qu los Sistemas Operativos basados en microkernel son adecuados para los
sistemas distribuidos?

25. Enumera los tipos de Sistemas Operativos segn su arquitectura

C8

CUESTIONES: Tipos de Sistemas Operativos

26. Representa grficamente la estructura los diferentes tipos de Sistemas Operativos,


segn su arquitectura.

C9

CUESTIONES: Funciones y caractersticas

Funciones y caractersticas de los Sistema Operativos

1. Nombra las caractersticas de los Sistemas Operativos de propsito general y explica


tres de ellas.
Caractersticas:

1:

2:

3:

2. De qu se encarga el componente gestor de un Sistema Operativo? Cules son


sus partes principales? Cules son las funciones de cada una de ellas?

C10

CUESTIONES: Funciones y caractersticas

3. Cul es la misin del componente soporte de un Sistema Operativo?

4. Dibuja un esquema de los grupos de funciones o componentes que conforman todo


Sistema Operativo de propsito general.

5. Qu quiere decir que el Sistema Operativo provee al usuario una mquina virtual?

6. Por qu es necesaria la comparticin de recursos? Qu funciones debe realizar el


Sistema Operativo para darle soporte?

C11

CUESTIONES: Funciones y caractersticas

7. Qu es una llamada al sistema? Nombra un ejemplo de cada tipo de llamadas al


sistema.

8. Cmo se puede pasar parmetros a una llamada al sistema?

9. Cundo se produce una interrupcin de entrada/salida?

10. Indica las formas de acceder a los servicios de los Sistemas Operativos.

C12

CUESTIONES: Funciones y caractersticas

11. Seala las ventajas de un Sistema Operativo implementado con llamadas al sistema.
Razona convenientemente dichas ventajas.

12. En qu sistema resulta ms compleja la implementacin de un llamada al sistema,


en uno monoltico o en uno por capas?Y la modificacin?Por qu?.

13. Explica las diferencias entre llamadas al sistema y programas del sistema.

14. Explica la diferencia entre un extracdigo y llamada al sistema

C13

CUESTIONES: Funciones y caractersticas

15. Diferencias entre comando y llamada al sistema.

16. Define programa del sistema. Nombra tres.

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:

Forma 2, ventajas y desventajas:

C14

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

Evolucin y tendencias de los Sistemas Operativos


1.

En un primer momento, sin Sistema Operativo, el modo de trabajo era interactivo


por qu?

2.

Qu relacin hay entre la evolucin de los Sistemas operativos y la de los


ordenadores?

3.

En la primera fase del desarrollo de los Sistemas Operativos a qu se denomina


componente? Cules son los primeros componentes que aparecen? Cul era el
principal objetivo de los mismos?

4.

Qu significa modo operativo de puerta abierta?

5.

Qu significa Set-up time?

C15

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

6.

Con qu objeto se cre el Programa de Control en la FASE 2? Cmo se comunica


el usuario con l?

7.

Cmo se solventa la inactividad producida por el mtodo de reserva?

8.

Qu significa proceso por lotes?

9.

Qu nombre reciben los primeros Sistemas Operativos? Por qu reciben estos


nombres?

10. Cul es la principal limitacin de estos Sistemas Operativos?

C16

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

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?.

14. Un desarrollo hardware importante fue el de los canales o procesadores autnomos


especializados en la transferencia de informacin. Cmo incide en el rendimiento
del Sistema la utilizacin de canales?

C17

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

15. Gracias al 'buffering' se puede aumentar el rendimiento. Cmo? Con qu


limitaciones?

16. Explica brevemente en qu consiste la tcnica de Spooling.

17. En qu se diferencian las tcnicas de buffering y de spooling?

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

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

19. Gracias a qu, en la poca correspondiente a la FASE 3 segn la documentacin,


se van desarrollando las tcnicas estndar de organizacin de ficheros: secuencial,
secuencial indexada y directa?

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?

21. En qu consiste la multiprogramacin? Qu problema trata de solventar?

22. Explica las ventajas e inconvenientes de los sistemas multiprogramados.

23. Cmo incide el desarrollo de los sistemas de gestin de memoria en la


multiprogramacin? Qu diferencia hay entre la multiprogramacin pasiva y la
activa?

C19

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

24. Qu caracteriza a los sistemas batch? Qu dificultades presentan? Por qu?

25. Qu tipo de sistemas se desarrollan paralelamente a los multiprogramados? A qu


necesidades de los usuarios dan respuesta? Cmo?

26. Indica las acciones correspondientes numeradas en la figura adjunta.

IPL

6
Programa
Maestro
Fichero
de
transacciones

Transaccin i

1:
2:
3:
4:
5:
6:

C20

Fichero maestro
de plazas/vuelo

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

27. Cundo se empiezan a desarrollar los Sistemas de Gestin de Bases de Datos?

28. Suponiendo comportamientos medios idnticos y los programas cargados en


memoria, si el tiempo de reflexin es 9 veces el tiempo de espera, hay 100 usuarios,
cada slice es de 50 msg. y en 1 slice se ejecuta 1 orden Qu porcentaje del
tiempo total representa el tiempo de espera?Cul es el nmero medio de usuarios
activos?De qu orden ser el tiempo de respuesta?

29. Qu permite en un principio que los sistemas de tiempo compartido sean viables?

30. Qu significa que un sistema es "interactivo"?

31. Define los conceptos siguientes y establece la relacin entre ellos:


SLICE :

TIME SLICING:

SISTEMA DE TIME SHARING (TSS):

PERFIL DE USUARIO:

C21

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

32. Qu diferencia hay entre los objetivos: tiempo de respuesta y throughput?

33. Es conveniente que los sistemas de tiempo compartido tengan varios programas en
memoria simultneamente? Por qu?

34. Los sistemas operativos contemporneos como UNIX y Windows soportan el


procesamiento batch por ejemplo mediante la ejecucin de archivos de trabajo que
contienen corrientes de control (srcipts) que indican al sistema lo que tiene que ir
haciendo. Pon un ejemplo para cada sistema.
UNIX

C22

WINDOWS

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

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?

38. Ordena cronolgicamente, segn su aparicin, los conceptos siguientes:


N ORDEN

FASE

Canales
Rutinas de E/S
Operacin OFF-LINE
Tiempo Real
OSCL
Interaccin
Programa de control
Tcnicas de SPOOLING
Cargador
Tiempo compartido (TSS)

C23

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

39. Cita 3 nombres genricos de Sistema Operativo en orden cronolgico de aparicin, e


indica las aportaciones de cada uno de ellos sobre los anteriores.
1

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

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

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

Sistemas Operativos SUPERVISORES


Interaccin a coste
razonable

Control de sistemas
concretos

FASE 3c (I)

FASE 3c (II)

FASE 4
Redes y Multiprocesamiento

C25

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

43. De qu tipo de sistemas operativos tienen caractersticas los Sistemas Operativos


para Sistemas Empotrados? Por qu?

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?

46. Enumera las similitudes y diferencias entre Symbian OS y Java/J2ME

47. Qu relacin hay entre Proceso Distribuido y Proceso Paralelo?

C26

CUESTIONES: Evolucin y tendencias de los Sistemas Operativos

48. Nombra los cuatro conceptos que marcan las tendencias de desarrollo de los
Sistemas Operativos, y explica UNO de ellos.

49. Cundo se dice que un sistema es tolerante a fallos?

C27

CUESTIONES: Conceptos Hardware, Software y Firmware

Conceptos Hardware, Software y Firmware


1.

Define clara y brevemente 'hardware', 'software' y 'firmware'.


Hardware:

Software:

Firmware:

2.

Por qu existen dos modos de funcionamiento en los Sistemas Operativos? Qu


tipo de proteccin aporta este modo de trabajo?

3.

Define clara y brevemente el concepto de instruccin privilegiada. Cita un ejemplo.

C28

CUESTIONES: Conceptos Hardware, Software y Firmware

4.

Por qu es necesaria la proteccin de algunas zonas de memoria: Un sistema con


spool, Un sistema sin spool, un sistema de tiempo real o un sistema multiusuario?
Por qu?

5.

Qu se ajusta ms a los sistemas con varios terminales?

6.

Qu tcnicas se emplean para realizar esta proteccin?

7.

Qu es el registro de reubicacin?

8.

Por qu es necesario el control de tiempo por parte del Sistema Operativo?


Cmo se realiza esta funcin?

C29

CUESTIONES: Conceptos Hardware, Software y Firmware

9.

Define lenguaje mquina y lenguaje de alto nivel.

10. Explica las diferencias entre un compilador y un intrprete.

11. Qu funcin realiza el cargador?

12. Qu tipos de cargadores existen?

13. Qu es un montador de enlaces o Link-editor? Cul es su misin? En qu


momento es necesario su uso?

C30

CUESTIONES: Conceptos Hardware, Software y Firmware

14. Qu es la operacin 'Bind'

15. Por qu conviene retrasar esta operacin lo ms posible?

16. Explica qu relacin hay entre los sistemas de proteccin de memoria real y la
operacin bind.

17. Explica la relacin entre DMA y Robo de Ciclo.

18. Qu es la reubicacin? Explica las ventajas e inconvenientes de la dinmica frente


a al esttica.

C31

CUESTIONES: Conceptos Hardware, Software y Firmware

19. Por qu podemos utilizar el trmino memoria fija para describir el microcdigo
residente en la memoria de control?

20. Define clara y brevemente los siguientes conceptos:


Interleaving de memoria

Cargadores absolutos

Cargadores reubicantes

21. Cules son las diferencias entre microcdigo vertical y horizontal.

22. Por qu es importante la microprogramacin para construir emuladores?

C32

CUESTIONES: Conceptos Hardware, Software y Firmware

23. Qu es la microdiagnosis?

24. A qu se denomina microprogramacin dinmica?

25. Enumera los objetivos que se logran al usar la microprogramacin en la


implementacin de los Sistemas Operativos.

26. Qu partes de los Sistemas Operativos se suelen microprogramar?

27. Explica cmo


computadoras.

se

puede

utilizar

la

microprogramacin

para

personalizar

C33

CUESTIONES: Conceptos sobre procesos

Conceptos sobre procesos


1.

Diferencias entre proceso de usuario y proceso del sistema. Pon un ejemplo de cada
uno.
DIFERENCIAS:

EJEMPLOS:

2.

Con qu objeto se ejecutan las acciones que componen un proceso?

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.

Cuando se habla de Jerarqua de Procesos, de qu se est hablando? Quin la


forma? Cundo?

C34

CUESTIONES: Conceptos sobre procesos

5.

Cita tres programas que se comparten en el sistema por los distintos procesos.

6.

Qu relacin hay entre los procesos y el indeterminismo?

7.

De qu depende la duracin de un proceso?

8.

Explica brevemente los conceptos de Proceso y Programa, y la relacin entre ellos.


PROGRAMA:

PROCESO:

RELACIN:

C35

CUESTIONES: Conceptos sobre procesos

9.

Explica la relacin entre el PCB de un proceso y su entorno.

10. Para los tipos de cdigo siguientes indica el procesador adecuado.


Tipo de cdigo

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.

12. Cul es la funcin de la Tabla Central?

13. Cul es la principal diferencia entre los procesos en estado activo y los dems?

14. Pon un ejemplo de un estado activo.

C36

CUESTIONES: Conceptos sobre procesos

15. Si en un sistema, los descriptores de procesos se almacenan dentro de una tabla de


descriptores, cmo se podra implementar la Lista -ready?

16. En qu consiste la operacin de Conmutacin de contexto?

17. Qu repercusin tiene la operacin de Conmutacin de contexto sobre los procesos


involucrados?

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

CUESTIONES: Conceptos sobre procesos

19. Explica qu operaciones debe realizar el sistema para que un proceso en estado
suspend-blocked llegue a estado running.

20. Rellena los huecos del texto siguiente:


La operacin de suspensin dura
y la realiza

a peticin de
o del

para:
a)

b)

c)

Esta operacin puede producir tres transiciones de estado que son:

21. Cul es la caracterstica ms importante de la operacin de suspensin?

22. Para qu se lleva a cabo la operacin de suspensin?

C38

CUESTIONES: Conceptos sobre procesos

23. Cundo entra un proceso en estado zombie?

24. Cundo desaparece del sistema un proceso en estado zombie?

25. Un proceso P crea un hijo Q qu informaciones comparten?

26. Qu relacin hay entre proceso e hilo?

27. Qu no comparten los hilos de un proceso?

28. Cmo pueden implementarse los hilos?

29. A qu se denomina fibras (fibers)?

C39

CUESTIONES: Conceptos sobre procesos

30. Qu relacin hay entre thread y fiber?

31. Indica qu tipo de planificacin se aplica a: las fibers y los threads

32. Qu ventajas tiene realizar una tarea en un sistema multithread frente a realizarla
en un sistema de procesos pesados.

C40

CUESTIONES: Concurrencia e interaccin entre procesos

Concurrencia e interaccin entre procesos


1.

Qu significado tiene cada una de las condiciones de Bernstein?


CONDICIN 1:

CONDICIN 2:

CONDICIN 3:

2.

Explica las condiciones de Dijkstra para que un programa concurrente sea correcto.

3.

Qu problemas presentan las aproximaciones con espera activa por indicadores de


ocupacin?

C41

CUESTIONES: Concurrencia e interaccin entre procesos

4.

Enumera las desventajas de las soluciones software de espera activa.

5.

Explica la relacin entre el valor de un semforo, la inicializacin del mismo y el


nmero de operaciones WAIT y SIGNAL realizadas sobre l.

6.

Representa grficamente la estructura de un semforo general e indica y explica las


operaciones primitivas definidas sobre l.

C42

CUESTIONES: Concurrencia e interaccin entre procesos

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.

Compara el funcionamiento de las primitivas wait y signal sobre semforos y cwait y


csignal sobre conditions.

9.

En qu se diferencian las barreras de los semforos?

C43

CUESTIONES: Concurrencia e interaccin entre procesos

10. Explica claramente las diferencias entre Nominacin Directa y Nominacin Indirecta.

11. Explica los problemas de la Nominacin Directa as como su solucin.

12. Hablando de Buzones, razona si es o no FALSO decir que


a. entre cada par de procesos puede haber ms de un buzn.
b. a un buzn se le pueden asociar ms de dos procesos.
c. sirven para comunicacin directa.
d. son de capacidad limitada.

13. Uno de los problemas de la implementacin de los pipes en UNIX es la imposibilidad


de que un mismo proceso quede a la espera de mensajes de mltiples fuentes. Por
qu se da este problema? Cmo se puede solucionar?

C44

CUESTIONES: Concurrencia e interaccin entre procesos

14. Hablando de sistemas de comunicacin entre procesos, razona si es o no FALSO


decir que
a. la memoria compartida exige que sea el programador quien determine la
gestin del acceso compartido.
b. los sistemas de mensajes exigen un enlace fsico entre los procesos que no
sea de memoria compartida.
c. los sistemas de mensajes y de memoria compartida no se excluyen
mutuamente.

15. Explica los problemas de implementacin de los pipes. Cmo los soluciona el
mecanismo port?

16. Qu relacin hay entre socket y pipe.

33. Por qu y cundo es necesario utilizar la implementacin de las sentencias SEND y


RECEIVE como bloqueantes?

C45

CUESTIONES: Concurrencia e interaccin entre procesos

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

CUESTIONES: El ncleo del Sistema Operativo

El Ncleo del Sistema Operativo


1.

Qu son las primitivas del Sistema Operativo? Pon un ejemplo.

2.

Define el ncleo del Sistema Operativo e indica las partes que debe contener
como mnimo.

3.

Cmo mantiene el sistema informacin relativa a los procesos existentes en


el mismo? Qu es la estructura de procesos?

4.

Qu es el FLIH? Cules son sus funciones?

C47

CUESTIONES: El ncleo del Sistema Operativo

5.

Qu soporte 'hardware' necesita el FLIH? Cul es su cometido?

6.

Explica brevemente los mecanismos que se pueden utilizar para determinar el


origen de una interrupcin.
MECANISMO 1:

MECANISMO 2:

MECANISMO 3:

7.

C48

Cuntos puntos de entrada tiene la rutina FLIH? Seala la respuesta correcta


y explica por qu.
a)

Slo uno

b)

Uno por interrupcin

c)

Uno por tipo de interrupcin

d)

Depende del sistema

e)

A veces uno y otras uno por interrupcin

CUESTIONES: El ncleo del Sistema Operativo

8.

Cul es la ltima operacin que suele realizar el FLIH? Por qu?

9.

Cul es la secuencia de operaciones que se produce en el sistema cuando el


proceso en ejecucin genera una seal de interrupcin?

10. Identifica qu clase de interrupcin (de Hardware, de Programa, de E/S, por


extracdigo, ...) en cada caso:
La generada por un fallo, como por ejemplo una cada de tensin o un error
de paridad

La generada por alguna condicin que se da como resultado de la ejecucin


de un proceso

La generada por un controlador de E/S

La generada para permitir al SO ejecutar ciertas funciones regularmente

11. Verdadero o Falso: Con interrupciones, el procesador puede estar ejecutando


otras instrucciones mientras se est realizando la operacin de E/S.

12. Verdadero o Falso: Con el uso de interrupciones para el manejo de perifricos


aparece sobrecarga.

C49

CUESTIONES: El ncleo del Sistema Operativo

13. Verdadero o Falso: Cuando se produce una interrupcin el valor del PC se


salva para poder as continuar donde estaba.

14. Verdadero o Falso: Las interrupciones se utilizan principalmente para mejorar


la eficiencia, ya que muchos perifricos son muchos ms rpidos que la UCP.

15. Qu hace el mdulo de E/S de un dispositivo cuando ste pasa a estar listo
para atender otra peticin?

16. Qu programa del Sistema Operativo determina la naturaleza de la


interrupcin y realiza las acciones necesarias para que se responda
adecuadamente?

17. Para qu debe salvarse la informacin necesaria antes de que el control se


transfiera al FLIH?

18. Cmo se pasa el control al FLIH?

19. Dnde est la informacin que debe salvarse como mnimo al producirse una
interrupcin?

20. Cul es la desventaja de deshabilitar/inhibir interrupciones?

21. A veces se inhiben las interrupciones Para qu? Qu cdigo se ejecuta en


estas circunstancias?

C50

CUESTIONES: El ncleo del Sistema Operativo

22. Qu dos cosas se puede hacer para trabajar con mltiples interrupciones?

23. Qu contiene cada entrada de la tabla de vectores de interrupcin?

24. Cul es la funcin del 'dispatcher' o planificador de bajo nivel?

25. Qu ocurre en el sistema si el 'dispatcher' no encuentra ningn proceso al que


asignar el procesador? Cmo se puede evitar esta situacin?

26. Por qu las primitivas de sincronizacin deben estar implementadas en el


ncleo del Sistema Operativo?

27. Por qu las rutinas que implementan las primitivas de comunicacin suelen
invocar al 'dispatcher' cuando finalizan?

28. Por qu es necesario crear un mecanismo de bloqueo y otro de desbloqueo


que parenticen las rutinas que implementan las primitivas de sincronizacin?

C51

CUESTIONES: El ncleo del Sistema Operativo

29. El mecanismo de bloqueo para hacer excluyentes las primitivas de


sincronizacin es diferente en varios aspectos al empleado para sincronizar
procesos. Indica dichas diferencia rellenando la tabla siguiente:
Primitivas de
Sincronizacin

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.

32. Cmo se puede implementar el mecanismo de bloqueo de los procesos que


simultneamente quieren acceder a las primitivas de sincronizacin? Razona si
puede aplicarse o no la misma solucin en los sistemas monoprocesador y
multiprocesador.

C52

CUESTIONES: El ncleo del Sistema Operativo

C53

CUESTIONES: Asignacin y Planificacin

Asignacin y Planificacin

1.

Qu niveles de planificacin existen? Explica el cometido de cada uno y


dibuja un esquema que muestre la relacin entre ellos.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

2.

Qu relacin hay entre el planificador de bajo nivel y el dispatcher


propiamente dicho?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

3.

Qu significa que una poltica es apropiativa?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C54

CUESTIONES: Asignacin y Planificacin

4.

Qu criterios se deben tener en cuenta a la hora de elegir o disear un


algoritmo de planificacin del procesador?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

5.

Qu parmetros se utilizan como medida del comportamiento de las polticas


de planificacin del procesador?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

6.

Enumera las polticas de planificacin de UCP ms habituales y explica el


funcionamiento, ventajas y desventajas de tres de ellas.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C55

CUESTIONES: Asignacin y Planificacin

7.

Cules de los siguientes algoritmos de planificacin se pueden considerar


aceptables a largo plazo, y cules a corto plazo? (Marca la casilla
correspondiente)
Algoritmo

A corto plazo

A largo plazo

FCFS
Round-Robin
SJF
Primero el de mayor prioridad
HRN
ltimo en llegar, primero en ser servido

8.

Adems de cuando se ejecuta una operacin de bloqueo o de terminacin,


puede producirse un cambio de contexto si la poltica de planificacin de UCP
es SJF? Y un cambio de proceso?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

9.

Nombra los diferentes tipos de asignacin de recursos y explica las diferencias


que hay entre ellas.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

10. Explica los problemas que surgen en la asignacin esttica y en la asignacin


dinmica.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C56

CUESTIONES: Asignacin y Planificacin

11. Realiza un cuadro comparativo de las polticas de planificacin de UCP


existentes.

12. Qu polticas de planificacin de UCP son apropiadas para un sistema de


tiempo compartido?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

13. En un sistema con un modelo de procesos de 7 estados qu transiciones de


estado se pueden dar si la poltica de planificacin de UCP no es apropiativa?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C57

CUESTIONES: Interbloqueo

Interbloqueo

1.

Cita al menos seis recursos diferentes que deben considerarse en el problema


del interbloqueo.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

2.

Explica de forma comparativa las problemticas conocidas como starvation y


livelock.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

3.

Define clara y concisamente deadlock.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

4.

Cules son las condiciones necesarias para que se d el interbloqueo?.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

5.

Qu es un grafo de asignacin de recursos?.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C58

CUESTIONES: Interbloqueo

6.

En un grafo de asignacin cmo se indica una asignacin? y una solicitud?.


___________________________________________________________________________
___________________________________________________________________________

7.

Razona si son correctas o no cada una de las afirmaciones siguientes.


a) Un arco de reserva indica lo mismo que uno produccin pero para
recursos reutilizables
___________________________________________________________________________
___________________________________________________________________________

b) En un grafo de asignacin de recursos la no existencia de ciclos indica


que no hay interbloqueo
___________________________________________________________________________
___________________________________________________________________________

c) En un grafo de asignacin de recursos la existencia de ciclos indica que


no hay interbloqueo
___________________________________________________________________________
___________________________________________________________________________

d) Un estado seguro indica que no hay interbloqueo


___________________________________________________________________________
___________________________________________________________________________

e) Un estado inseguro es sinnimo de interbloqueo futuro


___________________________________________________________________________
___________________________________________________________________________

8.

Cita cuatro mtodos generales de tratamiento de interbloqueo.


___________________________________________________________________________
___________________________________________________________________________

9.

Se puede prevenir el interbloqueo evitando la primera condicin necesaria


para ellos (condiciones de Coffman)?
___________________________________________________________________________
___________________________________________________________________________

C59

CUESTIONES: Interbloqueo

10. De qu forma se puede romper la segunda condicin necesaria para ellos


(condiciones de Coffman)?
___________________________________________________________________________
___________________________________________________________________________

11. Indica dos mtodos para que no se d la tercera condicin necesaria para
interbloqueos (condiciones de Coffman)
___________________________________________________________________________
___________________________________________________________________________

12. Qu informacin es necesaria para poder evitar el interbloqueo?


___________________________________________________________________________
___________________________________________________________________________

13. Qu es un estado inseguro?


___________________________________________________________________________
___________________________________________________________________________

14. Cuando los recursos son monoinstancia, cmo se puede detectar


eficientemente la existencia de interbloqueo?
___________________________________________________________________________
___________________________________________________________________________

15. Indica tres factores a tener en cuenta para determinar el coste de recuperacin
de interbloqueo.
___________________________________________________________________________
___________________________________________________________________________

16. En qu consiste el algoritmo de comprobacin de estado seguro? Dibuja un


organigrama explicativo.
___________________________________________________________________________
___________________________________________________________________________

17. Puede un sistema detectar el bloqueo indefinido de alguno de sus procesos?


___________________________________________________________________________

C60

CUESTIONES: Gestin de memoria

Gestin de memoria

1.

Enumera los tipos de estrategias de ubicacin y los algoritmos que incluyen.


Para qu se utilizan dichas estrategias?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

2.

Dibuja un organigrama explicativo completo, o en su defecto elaborar una lista


completa, con todos los pasos que se realizan con la estrategia de ubicacin
FIRST-FIT, explicando las estructuras de datos que usa (contenido, orden, ...).

3.

Define clara y brevemente los mecanismos DAT, su funcin y la propiedad


comn a todos ellos. Describe la actividad general que realizan.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C61

CUESTIONES: Gestin de memoria

4.

Con el desarrollo de la multiprogramacin se consigui un rendimiento mayor.


Sin embargo, esta relacin entre el grado de multiprogramacin y rendimiento
no siempre resulta cierta. Cundo? Por qu? Cmo se puede solucionar?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

5.

Cita los algoritmos o estrategias de ubicacin ms habituales en MVT. Qu


sentido tienen en MFT?.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

6.

En qu consiste la fragmentacin? Explica las formas de evitarla.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

7.

Explica un algoritmo de ubicacin utilizado en MVT y aplcalo a un ejemplo


concreto.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C62

CUESTIONES: Gestin de memoria

8.

Un sistema de gestin de memoria virtual implica la existencia de una serie de


componentes Hard y Soft; cules son y qu funcin u objeto tiene cada uno
de ellos?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

9.

Qu es una EPA? Bsicamente, en qu dos momentos se tiene que


calcular?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

10. Calcula la EPA correspondiente a la pgina 29 del segmento 5 si en nuestro


sistema caso de estudio tenemos una memoria instalada de 50 Ks y el disco
en el que reside el EPS tiene 30 pistas/cilindro y 8 slots/pista.

11. Dibuja un organigrama explicativo del Dispatcher, para un sistema con


memoria virtual paginada que almacena la informacin de correspondencia
para cada proceso.

C63

CUESTIONES: Gestin de memoria

12. Enumera los tipos de algoritmos o estrategias de gestin de memoria. A cul


pertenece el LRU? Explica qu soluciona dicho grupo de algoritmos.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

13. Realiza un diagrama explicativo del sistema de proteccin hardware de


memoria en los sistemas monousuario. Incluye en tu explicacin referencias
tanto al rango posible de direcciones generadas como a la operacin BIND.

14. Detalla la relacin entre las diferentes implementaciones de la tabla de pginas


y el tiempo efectivo de acceso.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

15. En qu componentes o elementos se divide una direccin virtual en los


sistemas paginados segmentados?
___________________________________________________________________________
___________________________________________________________________________

C64

CUESTIONES: Gestin de memoria

16. Para qu se utiliza la operacin de compactacin?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

17. Sea un sistema paginado con 4 celdas de K. Si la posicin referenciada es la


de la pgina que est en la celda 1 (decimal). Cul es la direccin real
correspondiente?

18. Qu algoritmo/s de reemplazamiento se pueden utilizar si cada pgina tiene


asociado el instante de su ltima utilizacin?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

19. Para qu utiliza el D.A.T. el tamao de la entrada de la tabla de segmentos en


un sistema segmentado con traduccin directa?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

20. Qu operaciones se solapan en la traduccin combinada simultnea?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

21. En qu consiste la hiperpaginacin? Cmo se puede evitar?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C65

CUESTIONES: Gestin de memoria

22. Explica para qu sirven las estrategias o algoritmos de reemplazamiento. Cita


alguno de ellos.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

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.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

24. Quin modifica el contenido del ROTP si el sistema de gestin de memoria es


paginado y la tabla con la informacin de correspondencia no es nica, sino
que hay una por proceso?
___________________________________________________________________________

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

CUESTIONES: Gestin de memoria

26. Qu datos se deben incluir como mnimo entre la informacin de


correspondencia?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

27. Nombra los algoritmos de reemplazamiento e indica qu informacin debe


existir en el sistema como mnimo para que puedan operar.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

28. Qu son los algoritmos ad-hoc de reemplazamiento? Nombra los ms


representativos y explica el funcionamiento de uno de ellos.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C67

CUESTIONES: Gestin de memoria

29. Explicar clara y concisamente la relacin entre 'working-set' y, 'thrasing' y


cadena de referencias.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C68

CUESTIONES: Gestin de datos

Gestin de datos

1.

Qu es un controlador? Qu hace?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

2.

Cul es el propsito de los canales o procesadores de E/S?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

3.

Define y explica las funciones de los drivers


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C69

CUESTIONES: Gestin de datos

4.

Enumera las rutinas bsicas de un driver


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

5.

Explica el proceso de gestin de una operacin de entrada/salida realizando


un esquema del mismo.

6.

Qu es un vector de interrupcin?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

7.

Explica la diferencia entre registro lgico y registro fsico.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

8.

Qu es el subsistema de archivos? Cules son sus funciones?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C70

CUESTIONES: Gestin de datos

9.

Qu es un directorio de dispositivo? Qu informacin se encuentra


habitualmente en el directorio sobre un archivo perteneciente al mismo?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

10. Enumera los distintos tipos de directorios de archivos y dibuja el esquema


grfico representativo de cada uno de ellos.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

11. Enumera los modos de acceso usados con discos.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

12. Nombra los mtodos de asignacin de espacio en disco indicando su relacin


con el modo de acceso requerido.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

13. Nombra las diferentes estrategias de planificacin de accesos en disco y


explica una de ellas, indicando sus ventajas e inconvenientes.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C71

CUESTIONES: Gestin de datos

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

Asignacin Contigua de espacio


Asignacin No Contigua de espacio
Planificacin de discos

Gestin de espacio libre

15. Es lo mismo Directorio que inodo?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

16. Qu contiene un inodo?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C72

CUESTIONES: Seguridad

Seguridad

1.

Explica la diferencia entre Seguridad y Proteccin.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

2.

Indica los principios de diseo de sistemas seguros.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

3.

Enumera las categoras de amenazas y explcalas.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

4.

En qu consiste el cifrado?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

5.

Qu caractersticas debe tener el algoritmo de cifrado ptimo?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C73

CUESTIONES: Seguridad

6.

Explica las diferencias entre listas de acceso y listas de capacidades.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

7.

Qu diferencias hay entre gusanos y virus?.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

8.

Indica los elementos necesarios y su naturaleza (hard, datos, etc.) necesarios para
trabajar con capacidades.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

9.

Cmo se puede detectar la existencia de intrusos en el sistema?.


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

10. Busca informacin sobre el sistema Kerberos y explica en qu consiste su servicio de


seguridad.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C74

CUESTIONES: Seguridad

11. En qu se basa el sistema de seguridad de Windows NT?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

12. Explica los mecanismos de seguridad implementados por Windows 2000


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

13. Qu nuevos mecanismos de seguridad se implementan en Windows 2010?


___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

C75

CUESTIONES: Seguridad

C76

Ejercicios

EJERCICIOS: Firmware

Firmware
1.

Suponiendo la arquitectura de la ilustracin y el microprograma siguiente:


(00)
(01)
(02)

RAA RDIMP
READ
RAMI RDA decodif.

Escribe los microprogramas correspondientes a las siguientes instrucciones mquina:

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

Salto a (A) si ACC = 0

Con los mismos supuestos del ejercicio anterior codifica el microprograma que
implementa las operaciones siguientes:
a)

SORIND A

si ACC = 0 entonces ACC ACC + ( ( A ) ) y


si ACC 0 entonces ACC ACC ( ( A ) )

b)

SORINM A

si ACC = 0 entonces ACC ACC + A y


si ACC 0 entonces ACC ACC A

E-1

EJERCICIOS: Firmware

3.

si ACC = 0 entonces ACC ACC + ( A ) y


si ACC 0 entonces ACC ACC ( A )

c)

SOR

d)

LOADM

ACC ( (ACC) )

e)

LOADMADD A

ACC ( (ACC) ) + A

Con los mismos supuestos de los ejercicios anteriores indica qu operacin


implementa el microprograma siguiente:
(50) RTMX ACC
(51) ACC RDIMP +1
(52) RDIMP ACC
(53) ACC RTMX
(54) SKIP
(55) RAMI (04)
(56) RTM RDA
(57) RAA RTM
(58) RDA ACC
(59) WRITE
(60) RAMI (04)

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.

EJERCICIOS: Condiciones de Bernstein

Condiciones de Bernstein
1.

2.

3.

4.

Dada la siguiente secuencia de sentencias, plasma en un grafo las restricciones de


precedencia existentes entre ellas:
S1:

a := 2x;

S2:

b := y - z;

S3:

c := b / 3;

S4:

d := a + c;

Halla los conjuntos R(Si) y W(Si) de las siguientes sentencias:


S1:

a := x + y ;

S2:

b := z + 1 ;

S3:

c := a - b ;

S4:

READ (p);

S5:

WRITE (p);

S6:

k := k + 1;

De la secuencia de sentencias siguiente, indica cules se pueden ejecutar


concurrentemente aplicando las condiciones de Bernstein para obtener el mismo
resultado que si se ejecutasen en dicha secuencia, y plasma el resultado en un grafo
de precedencia.
S1:

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

descomponla en operaciones elementales y aplicando las condiciones de Bernstein


averigua cules se pueden ejecutar concurrentemente. Dibuja el grafo de
precedencia resultante.

5.

Dada la ecuacin que calcula la raz negativa de una ecuacin de 2 grado, es decir:

b2 4ac
2a

E-3

EJERCICIOS: Condiciones de Bernstein

descomponla en operaciones elementales y aplicando las condiciones de Bernstein


averigua cules se pueden ejecutar concurrentemente y dibuja el grafo de
precedencia resultante.

6.

Dada la siguiente ecuacin:

( b2 8 * a * c)0,5
d * c * ( b + 2)

descomponla en operaciones elementales y aplicando las condiciones de Bernstein


averigua cules se pueden ejecutar concurrentemente y dibuja el grafo de
precedencia resultante.

7.

De la secuencia de sentencias siguiente, indica cules se pueden ejecutar


concurrentemente aplicando las condiciones de Bernstein para obtener el mismo
resultado que si se ejecutasen en el orden dado en dicha secuencia, y plasma el
resultado en un grafo de precedencia.
S1: a = x - y
S2: b = z * y
S3: c = a + z
S4: d = b / (c * 4)
S5: a = d / b
S6: e = d * (c / 2)

E4

EJERCICIOS: Especificacin de concurrencia

Especificacin de concurrencia
1.

Se desea imprimir un conjunto de tarjetas utilizando tres procesos (ver figura).


P_ESCRITOR

BUF_ENT

TARJETAS
0
P_LECTOR

BUF_SAL
N-1

N-1

P_EJECUTOR

El proceso P_LECTOR se encarga de leer las tarjetas, cogerlas, y depositarlas en


el 'buffer' de entrada.
El proceso P_EJECUTOR se encarga de tomar una tarjeta de dicho 'buffer',
procesarla y crear una lnea con los resultados depositndola en el 'buffer' de
salida.
El proceso P_ESCRITOR coge las lneas del buffer de salida y las manda a la
impresora para su impresin.
Sabiendo que los 'buffers' tienen capacidad para N tarjetas/lneas, esboza un
programa concurrente para imprimir las tarjetas utilizando declaracin de procesos.

2.

Dibuja el grafo de precedencia correspondiente a la secuencia de instrucciones


siguiente:
S0;
PARBEGIN
S1; S2; . . . ; SN;
PAREND;
SN+1;

3.

Dadas la siguiente secuencia de sentencias


S1:
S2:
S3:
S4:

a := 2x;
b := y - z;
c := b / 3;
d := a + c;

a) escribe un programa completo con sentencias PARBEGIN / PAREND para


especificar las posibles ejecuciones concurrentes.
b) escribe un programa completo utilizando construcciones FORK / JOIN para
especificar las posibles ejecuciones concurrentes.

E-5

EJERCICIOS: Especificacin de concurrencia

4.

Especifica mediante construcciones FORK/JOIN la siguiente secuencia de


instrucciones:
S0;
PARBEGIN
S1; S2; . . . ; SN;
PAREND
SN+1;

5.

Dada la ecuacin

b2 4 a c a b se pide:

a) Descomponla en operaciones elementales y aplicando las condiciones de


Bernstein, averigua cules se pueden ejecutar concurrentemente. Dibuja el
grafo de precedencia resultante.
b) Escribe un programa completo que especifique las ejecuciones concurrentes y
secuenciales plasmadas en el grafo anterior, utilizando sentencias
PARBEGIN/PAREND para las primeras.
c) Escribe un programa completo que especifique las ejecuciones concurrentes y
secuenciales plasmadas en el grafo anterior, utilizando construcciones
FORK/JOIN para las primeras.
d) Escribe un programa completo que especifique como concurrentes todas las
sentencias del grafo anterior, resolviendo los problemas de concurrencia que
se presenten mediante BARRERAS.

6.

Se desea copiar un fichero F a otro fichero G utilizando 2 buffers: r y s. Escribe un


programa completo, y si hay alguna actividad concurrente, especifcala:
a) con sentencias PARBEGIN / PAREND.
b) con construcciones FORK / JOIN

7.

Dados los grafos de precedencia siguientes, escribe un programa completo que


especifique las ejecuciones secuenciales y concurrentes dadas en ellos, utilizando
para las concurrentes:
a) sentencias PARBEGIN / PAREND.
b) construcciones FORK / JOIN.

E6

EJERCICIOS: Especificacin de concurrencia

A)

B)

E-7

EJERCICIOS: Especificacin de concurrencia

8.

Dados los siguientes grafos, se pide:


a) Escribe un programa que plasme las ejecuciones secuenciales y concurrentes
dadas en el grafo, utilizando cuando sea necesario sentencias FORK/JOIN.
b) Escribe un programa que plasme las ejecuciones secuenciales y concurrentes
dadas en el grafo, utilizando cuando sea necesario sentencias PARBEGIN /
PAREND y semforos (el mnimo nmero).
c) Escribe un programa que especifique mediante sentencias PARBEGIN / PAREND
y el mnimo nmero de semforos la ejecucin concurrente de TODAS las
sentencias S1, S2, S3, ..., segn el grafo de precedencia de la figura.

A)

B)

E8

EJERCICIOS: Especificacin de concurrencia

C)

D)

E-9

EJERCICIOS: Especificacin de concurrencia

E)

F)

E10

EJERCICIOS: Especificacin de concurrencia

G)

H)

E-11

EJERCICIOS: Especificacin de concurrencia

I)

J)

K)

E12

EJERCICIOS: Especificacin de concurrencia

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

EJERCICIOS: Especificacin de concurrencia

O)
S1

S2
S3

S5
S4

S6

S7
S8

P)
S1

S2

S3
S4
S5

S6

S7

E14

S8

EJERCICIOS: Especificacin de concurrencia

Q)
B

R)
S1

S3

S2

S4

S5

S6

S7

S8
S)
S2

S1

S5
S4

S3

S6
S7

S8

E-15

EJERCICIOS: Especificacin de concurrencia

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

EJERCICIOS: Especificacin de concurrencia

W)
S1

S2

S3

S4

S5

S7

S6

S8

X)
P2

P1

P3

P4

P5

P6

P7

P8

Y)
A

E-17

EJERCICIOS: Especificacin de concurrencia

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

EJERCICIOS: Especificacin de concurrencia

C)
S1

S2

S4

S5

S6

S8

10. Dadas las siguientes especificaciones de ejecuciones secuenciales y concurrentes


mediante construcciones FORK / JOIN,
a) obtn el grafo correspondiente.
b) escribe un programa concurrente completo que especifique todas las
actividades dadas como concurrentes, utilizando BARRERAS.
c) escribe un programa concurrente completo que especifique las ejecuciones
secuenciales y concurrentes dadas en l, utilizando sentencias PARBEGIN /
PAREND y el mnimo nmero de semforos.
A)

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

EJERCICIOS: Especificacin de concurrencia

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.

EJERCICIOS: Especificacin de concurrencia

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

EJERCICIOS: Especificacin de concurrencia

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.

(A) 2 semforos binarios

S1

S2

S3

S4
S6
S5
S7

S8

E22

EJERCICIOS: Especificacin de concurrencia

(B) 2 semforos binarios

S1

S2

S3

S4
S6

S5

S7

S8

S1
(C) 1 semforo general
S2

S3

S4
S6
S5
S7

S8

(D) 1 semforo binario

S1

S2

S3

S4
S5

S6
S7

S8

E-23

EJERCICIOS: Especificacin de concurrencia

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

EJERCICIOS: Especificacin de concurrencia

parbegin/parend y el mnimo nmero de semforos, las ejecuciones secuenciales y


concurrentes plasmadas en el grafo de base.
(A) 1 Semforo general inicializado a 2

S2

S1
S3

S5

S4
S6
S7

(B) 2 Semforos binarios inicializados a 0


S2

S1

S5

S3

S4
S6
S7

(C) 1 Semforo general inicializado a 0


S1

S2
S3

S5

S4
S6
S7

E-25

EJERCICIOS: Especificacin de concurrencia

14. Dadas las siguientes especificaciones de ejecuciones secuenciales y concurrentes


mediante BARRERAS.
a) obtn el grafo correspondiente,
b) escribe un programa concurrente completo que especifique las actividades
concurrentes y secuenciales dadas en l, utilizando sentencias
PARBEGIN/PAREND y el mnimo nmero de semforos.
A)

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

EJERCICIOS: Programacin concurrente

Programacin concurrente
1.

Dado el algoritmo de Dekker solucin para dos procesos concurrentes con


secciones crticas excluyentes, demuestra su validez.

2.

Dada la solucin de Eisemberg y McGuire para N procesos, razona si es o no


correcta, y escribe el programa principal.
Program EMcGN;
const N = ______ ;
var
CI : array[0..N-1] of 0..2;
VAB : 0..N-1;
Procedure P (I : 0..N-1);
var J : 0..N;
Begin
repeat
RES1(I);
repeat
CI[I] := 1;
J := VAB;
while J NOT= I do
if CI[J] NOT= 0
then J := VAB;
else J := J+1 MOD N;
CI[I] := 2;
J := 0;
while (J < N) and (J=I or CI[J] NOT= 2) do J := J+1;
until (J NOT< N) and (VAB = I or CI[VAB] = 0);
VAB := I;
CRIT(I);
J := VAB+1 MOD N;
while CI[J] = 0 do J := J+1 MOD N;
VAB := J;
CI[I] := 0;
RES2(I);
forever
end;
begin (* Programa principal *)

end.

E-27

EJERCICIOS: Programacin concurrente

3.

Dado el programa concurrente siguiente,


a) explica para qu sirve cada variable, e inicializarlas, caso de que sea
necesario en el programa principal,
b) razona si es o no correcto.
program ejer3;
var

v1, v2, v3: integer;

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

EJERCICIOS: Programacin concurrente

4.

Dado el programa concurrente siguiente,


a ) explica para qu sirve cada variable, e inicializarlas, caso de que sea
necesario en el programa principal,
b ) razona si es o no correcto.
program EJ4;
var

v1, v2, v3: integer;;

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

EJERCICIOS: Programacin concurrente

5.

Dada la instruccin 'hard' siguiente:


EXCHANGE (a,b) intercambia el valor de las variables a y b; equivale a la
siguiente secuencia de instrucciones ejecutada de
manera indivisible: temp=a;
a=b;
b=temp;
a) Codifica los protocolos de entrada y salida necesarios para que 'n' procesos se
puedan ejecutar concurrentemente (programa completo), explicando el
significado de cada variable y sentencia utilizada.
b) Razona que es correcta

6.

Razona si es correcta o no la solucin dada a continuacin que utiliza la


instruccin 'hard' siguiente:
TESTSET (a)

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.

Dada la instruccin 'hard' siguiente,


TESTRESET (a) Si a = false a := false y devuelve false
Si a = true a := false y devuelve true
a) Codifica un programa completo, con los protocolos de entrada y salida
necesarios; para que 'N' procesos se puedan ejecutar concurrentemente,
explicando el significado de cada variable y sentencia utilizada.
b) Razona que es correcta

E30

EJERCICIOS: Programacin concurrente

8.

Para solucionar el problema de exclusin mutua simple, se ha construido el


siguiente protocolo de entrada a la seccin crtica:
Protocolo de entrada:
CI[i]:=1;
Num[i]:=MAX(Num[0]..........Num[N-1])+1;
CI[i]:=0;
for j=0 to N-1 do
begin
while (CI[j]=1) do {no_op};
while (Num[j]<>0) and ((Num[j],j) < (Num[i],i)) do no_op;
end;
donde:
MAX (a1,a2,......aN) devuelve el mximo valor encontrado entre los ai
(a,b)<(c,d) es cierto si a<c o si a=c y b<d.
Se pide:
a) Explica para qu sirve cada variable, e indicar su inicializacin en el
programa principal.
b) Construye el protocolo de salida correspondiente.

9.

Las peticiones de entrada/salida de N procesos implican el uso de un mismo


recurso. Este recurso va sirviendo a los procesos de uno en uno por lo que las
peticiones que no pueden ser atendidas en el momento, quedan en espera.
a) Qu problemas de concurrencia surgen?
b) Codifica un programa concurrente completo que los resuelva mediante
semforos.
c) Codifica un programa concurrente completo que los resuelva mediante
monitores.

10. N procesos simultneos comparten 2 recursos no compartibles, no excluyentes A


y B; es decir, mientras un proceso est accediendo a A ("usar A"), otro puede
estar usando a B ("usar B"), pero no a A, y viceversa.
a) Implementa mediante semforos una solucin a este problema.
b) Implementa mediante monitores una solucin a este problema.

E-31

EJERCICIOS: Programacin concurrente

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.

12. Se desea imprimir un conjunto de tarjetas utilizando 3 procesos. (Ver figura).


P_ESCRITOR
BUF_ENT

TARJETAS
0
P_LECTOR

E32

BUF_SAL
N-1

P_EJECUTOR

N-1

EJERCICIOS: Programacin concurrente

El proceso P_LECTOR se encarga de leer las tarjetas, cogerlas, y depositarlas en


el buffer de entrada.
El P_EJECUTOR se encarga de coger tarjetas de ese buffer, procesarlas y crear
lneas de resultado que deposita en el buffer de salida.
El P_ESCRITOR coger esas lneas del buffer de salida y las mandar a la
impresora para su impresin.
Se pide:
a) Nombra y explica los problemas de concurrencia que se dan.
b) Escribe un programa completo que solucione dichos problemas mediante
semforos y razona su validez.
c) Escribe un programa completo que solucione dichos problemas mediante
monitores y razona su validez.

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

EJERCICIOS: Programacin concurrente

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}

Programa dichos protocolos, utilizando semforos, para que se ajusten a los


siguientes casos:
A ) Prioridad de los lectores con respecto a los escritores con requisamiento. Es
decir, el nico caso en el que un lector debe esperar es aquel en que el
escritor est utilizando el fichero. Por tanto, un escritor no podr acceder al
fichero ms que en el caso de que no haya ningn lector en espera o,
leyendo, y ningn escritor escribiendo. En este caso, se puede dar una
espera indefinida en los procesos tipo escritor.

B ) Prioridad de los lectores sobre los escritores, si y slo si un lector ocupa ya


el fichero. Es decir, cuando ningn lector est accediendo al fichero, lectores
y escritores tiene la misma prioridad. En cambio, cuando un lector est
accediendo al fichero, todos los dems lectores podrn acceder aunque
haya escritores esperando.

C ) Igual prioridad de lectores y escritores. Si un lector est utilizando el fichero,


todos los lectores nuevos que lleguen accedern hasta que llegue un
escritor, a partir de ese momento, todos los que lleguen esperarn sin
distincin. Si un escritor est utilizando el fichero, todos los que vengan
esperarn igualmente. Cuando termina el escritor, se libera el siguiente
proceso en espera segn el orden de la cola, de forma que si varios
procesos lector se suceden en la cola, podrn acceder juntos. En este caso,
no habr espera indefinida de ninguno de los procesos.

E34

EJERCICIOS: Programacin concurrente

D ) Prioridad de los escritores sobre los lectores, de forma que cuando un


escritor reclama el acceso al fichero, debe obtenerlo lo antes posible, es
decir, al final de la ejecucin de los procesos que ocupaban el fichero en el
momento de la peticin. Por esto, todo lector que llegue despus de que el
acceso al fichero haya sido cedido por un escritor, deber esperar, incluso si
son lectores los que estn utilizando el fichero en ese momento. por tanto,
se puede dar espera indefinida de los procesos tipo lector.

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;

Procedure Escritor (j:integer)


BEGIN
wait (SE_B);
wait (S2);
while (cont=k-1) do begin
signal (S2);
signal (SE_B);
wait (SE_B);
wait (S2);
end;
signal (S2);
"Escribir";
signal (SE_B);
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

EJERCICIOS: Programacin concurrente

Programa la ordenacin del trfico en el puente, mediante semforos, en los


siguientes casos:
a) Sin prioridades: el primero que llega y puede, cruza. Se puede simular que
los coches que tienen que esperar, sean del lado que sean, lo hagan en
una cola.
b) Si hay coches en ambos sentidos esperando cruzar, se permitir el paso
de 10 en 10. Si en uno de los lados no han cruzado 10 vehculos pero no
hay ninguno ms esperando, y en el otro lado s, se dar paso a 10 del
otro lado. Si no hay ninguno esperando en ninguno de los dos lados, el
paso quedar abierto a los dos.

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)

EJERCICIOS: Programacin concurrente

18. Escribe un programa concurrente con el cdigo


necesario para la ejecucin de cada P(i) segn las
condiciones del grafo de precedencia de la figura,
aunque se lancen todos a la vez. Escribe adems del
programa y el/los monitores necesario/s

S1

S3

S2

S4

S5

19. Completa el programa concurrente siguiente y escribe el monitor o monitores


necesarios para que su ejecucin cumpla las condiciones del grafo de
precedencia de la figura.
Program Ej19;
P0

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

EJERCICIOS: Programacin concurrente

21. En una biblioteca existe un encargado, el bibliotecario, que atiende a los


estudiantes de uno en uno. Slo se pueden hacer consultas y de manera
individual. Codifica el programa concurrente que lo solucione
a) Con semforos.
b) Con monitores.

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

EJERCICIOS: Programacin concurrente

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.

Razona si la solucin dada a continuacin es o no correcta.


Program FILOSOFOS;
var s: array [0..4] of SEMAFORO_B; s1: SEMAFORO_B;
v: array [0..4] of 0..1; i: INTEGER;
Procedure P( i: INTEGER);
begin
repeat
if ( v [ (i+4) MOD 5 ] = 1 and v [ (i+1) MOD 5 ] = 1 )
then begin
wait (s1);
wait ( s[ i MOD 5 ] );
wait ( s[ (i+1) MOD 5 ] );
v [i MOD 5] := 0;
signal (s1);
"COMER";
v [i] := 1;
signal ( s[i] );
signal ( s[ (i+1) MOD 5 ] );
end
forever
end;
Begin
init_sem(s1,1);
for i=0 to 4
begin
init_sem (s[i],1);
v[i] := 1
end;
parbegin
P(0); P(1); P(2); P(3); P(4)
parend
end.

E-39

EJERCICIOS: Programacin concurrente

24. Hay 5 alumnos de Informtica que se pasan todo el da comiendo spaghettis y


pensando en Sistemas Operativos. Cada alumno tiene su propio sitio en una
mesa circular, en cuyo centro hay una fuente con cantidad infinita de spaghetti.
Para comer se requieren 2 cubiertos, pero en la mesa slo hay 5 cubiertos: uno
entre cada par de alumnos.

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

EJERCICIOS: Programacin concurrente

27. Existen 2 fotocopiadoras, cada una con su correspondiente encargado, y 5


estudiantes que resuelven problemas. Los encargados fotocopian los problemas
de los estudiantes, si no tienen trabajo se van a dormir hasta que sean
despertados por los estudiantes. Se puede dar el caso de que uno est durmiendo
y el otro no.
Los estudiantes estn continuamente resolviendo problemas y fotocopindolos; es
decir, resuelven un problema, van a que se lo fotocopien, pasan a resolver el
siguiente problema y as sucesivamente. Deben ser los estudiantes los que
despierten a los encargados de la fotocopiadora, de forma que ninguno de ellos
est dormido si algn estudiante est esperando. Se puede considerar que los
estudiantes forman una cola nica.
Simula la solucin al problema, indicando el proceso a realizar por cada
estudiante y encargado, y explica la funcin de cada variable y construccin
utilizada mediante:
a) semforos
b) monitores
Dada la siguiente solucin, implementada utilizando semforos; explica el
significado de cada variable y procedimiento utilizado, y razona si la solucin es
correcta o no.
Program fotocopia;
var sala: semaforo;
s: semaforo_b;
encar: array[0..1]of ('t','d','e');
cont: 0..5;
Procedure estudiante (I:0..4)
var x:0..2;
j:0..1;
Begin
repeat
(*Resolver problema*)
wait (s);
cont=cont+1;
signal (s);
wait (sala);
wait(s);
cont=cont-1;
signal(s); if (encar[0] ='e')
x=0;
else
if (encar[1]='e')
x=1;
else
if (encar[0] ='d')
x=0;

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

EJERCICIOS: Programacin concurrente

la puerta del cine. Resuelve el problema utilizando barreras y suponiendo que


todos ellos estn libres desde las 4:00, hora a la que acaban de comer.

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

EJERCICIOS: Programacin concurrente

puerta de la 1 sala del museo. Segn va llegando la gente al museo, compra un


ticket y espera en el hall hasta que se forme el grupo; en ese momento, pueden
acercarse hasta la puerta donde est el gua y darle el ticket. Cuando todos los
componentes del grupo le hayan dado el ticket al gua, comienza la visita.
Soluciona el problema mediante barreras, suponiendo que el nmero de visitantes
es mltiplo de 10.

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

EJERCICIOS: Programacin concurrente

programacin concurrente vistas en clase, y explica el significado de las


variables y procedimientos utilizados.

35. La solucin a un problema viene dada por el programa concurrente y monitores


siguientes.
a) Qu significa cada variable?
b) Qu problemas de concurrencia resuelve?
c) Cmo se solucionaran con semforos? Escribe el programa concurrente
correspondiente.
Program EJ44-mon;
Var M1, M2: Monitor;
Procedure C(I:0..Maxinteger);
Begin
CALL M1.ENT;
CALL M2.ENT;
CALL M1.ENCS;
Utilizar el sistema;
CALL M1.APAS;
CALL M2.SAL;
end;
begin
parbegin
C(0); C(1); C(2);
parend
end.
Monitor M1;
Var
CE: 0..15; S: (ON,OFF)
CCE: Condition;
Procedure ENT;
begin
If CE=0 then cwait(CCE);
CE := CE-1
end;
Procedure ENCS;
begin
If S = OFF then S:=ON
end;
Procedure APAS;
begin
If CE = 14 then S:=OFF;
CE := CE+1;
csignal(CCE)
end;
begin
CE:=15
end.

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.

EJERCICIOS: Programacin concurrente

36. En un hotel hay 10 carritos de servicio, 5 pequeos y 5 grandes. Estos carritos


estn continuamente recorriendo el edificio, utilizando para subir un montacargas
y para bajar las rampas existentes. En dicho montacargas slo caben como
mximo 2 grandes o 4 pequeos o 2 pequeos y 1 grande. Teniendo en cuenta
que el montacargas tiene que llevar el mximo posible de carritos, pero no importa
que no se llene para subir, y que se da preferencia a los grandes, se pide:
a) Qu problemas de concurrencia surgen?
b) Escribe un programa concurrente utilizando semforos, que solucione
dichos problemas.

37. En el museo del Prado se ha detectado un progresivo deterioro en numerosas


obras. Para reducirlo, se ha establecido que por da slo podrn visitarlo 500
personas, y por seguridad, en turnos de 50. Dado que los problemas anteriores se
agudizan en la galera del Guernica, slo podr estar en ella una persona en ella
en cada momento. En el momento en que una persona, tras haber visitado el
resto del museo, ha visto dicha galera, sale del museo y va al bar, pudiendo as
pasar a ver el Guernica otra persona que est en el museo y otra al museo, si no
se ha superado el tope diario. Quienes no pueden entrar en el museo por haberse
superado dicho tope, se van al bar directamente.
Qu problemas de concurrencia se dan?
Codifica un programa concurrente completo que utilice monitores para solucionar
dichos problemas.

38. 1 Concurso de marmitako: se admiten slo a los 50 primeros que se inscriban.


Los que deseen participar deben dar los pasos siguientes: Inscribirse en el
concurso (de uno en uno). Coger patatas: para ello entrarn al cuarto de las
patatas donde hay 2 sacos: uno con patatas amarillas y otro con patatas blancas.
Dado que es mejor la patata amarilla se intentar coger de ese saco, y slo
cuando ste est ocupado se coger de la blanca. Una vez cogidas las patatas se
proceder a la preparacin del marmitako. Para ello se dispone de 10 cocinas (si
estn ocupadas habr que esperar). Por ltimo se entrega el marmitako y se
recoge el premio si procede: cuchara de oro al primero.
a) Cules son los procesos?Cules son los recursos?Qu problemas de
concurrencia surgen?
b) Escribe un programa concurrente utilizando semforos, que solucione
dichos problemas.
c) Escribe un programa concurrente y los monitores necesarios para solucionar
dichos problemas.

39. A continuacin se dan tres soluciones a la implementacin de un semforo


general con semforos binarios.

E-45

EJERCICIOS: Programacin concurrente

a) Para cada una de ellas, razona por qu es o no correcta. Qu funciones


realizan los semforos S-S1 y S-S2?Cmo se deben inicializar S-CONT, SS1 y S-S2?
b) Escribe el cdigo correspondiente a la primitiva INIT-GENRAL(S,Val).

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);

40. Implementa mediante un monitor el mecanismo de exclusin mutua generalizada.

41. Implementa un semforo binario con monitores y explica el significado de cada


variable utilizada en la codificacin as como su funcionamiento. En qu variara
si se quiere implementar uno general en vez del binario?

42. Dado el problema de las tarjetas a imprimir (ejercicio 12), escribe un programa
concurrente que lo solucione utilizando nominacin directa.

E46

EJERCICIOS: Programacin concurrente

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

EJERCICIOS: Planificacin de UCP

Planificacin de UCP

1.

2.

3.

4.

E48

Dados los trabajos siguientes, indica qu algoritmo no apropiativo produce los


tiempos de espera y servicio menores:
Id. Proceso

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

Para los procesos indicados se utiliza un algoritmo Round-Robin con un quantum de


tiempo de 2 unidades. Calcula el tiempo de servicio medio e indica cmo puede
mejorarse:
Id. Proceso

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

EJERCICIOS: Planificacin de UCP

5.

Dada la siguiente situacin en un sistema,


ID-Proc.

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)

Round-Robin con quantum = 2

d)

FCFS

Dados los siguientes datos, hallar el diagrama de Gantt correspondiente, calcula el


ndice medio de servicio y el tiempo medio de servicio, si la estrategia de
planificacin de UCP es:
a)

HRN

b)

SJN
Id. Proceso

Instante llegada

Tiempo de UCP

A
B
C
D

0
1
2
6

7
4
3
2

Dados los siguientes datos, halla el diagrama de Gantt correspondiente si la


estrategia de planificacin de UCP es HRN. Calcula adems el ndice medio de
servicio y el tiempo medio de servicio.
Id. Proceso

Instante llegada

Tiempo de UCP

A
B
C
D
E
F

0
1
2
6
8
9

7
4
5
2
1
4

E49

EJERCICIOS: Planificacin de UCP

8.

Un mtodo modificado del Round-Robin consiste en dividir la cola de procesos ready


en dos: la de nuevos y la de aceptados; de manera que los primeros esperan y los de
la segunda cola siguen una poltica Round-Robin. La prioridad de los procesos
nuevos aumenta con una frecuencia , mientras que la de los aceptados lo hace a un
ritmo . Cuando la prioridad de un proceso nuevo alcanza la de un proceso
aceptado, el nuevo pasa a ser aceptado. Si todos los procesos aceptados terminan
su ejecucin, el nuevo de ms alta prioridad pasa a ser aceptado.
La prioridad asignada a los procesos al llegar a la cola de nuevos es igual a 0. Si un
proceso nuevo alcanza la prioridad de los aceptados al final de un quantum, lo
colocar al principio de la cola de aceptados.
Para =1 y =2 (considerados como unidades de tiempo), q=1 y la siguiente
secuencia de llegada de procesos:
Id. Proceso

Instante llegada

Tiempo de UCP

A
B
C
D
E

0
1
3
9
12

3
5
2
5
6

dibuja el diagrama de ejecucin de cada proceso y calcula:

9.

a)

Tiempo medio de ejecucin de los procesos

b)

Tiempo medio de espera

Tenemos 5 procesos en espera de ser ejecutados. Sus tiempos de ejecucin


esperados son 9, 6, 3, 5, y 7. Hallar el orden de ejecucin de los procesos para hacer
mnimo el tiempo medio de respuesta en las polticas de planificacin FIFO, SJF y
Round-Robin (q=1). Calcula los tiempos medios de respuesta que se obtienen con
cada poltica.

10. Dados los siguientes datos, hallar el diagrama de Gantt coprrespondiente si la


estrategia de planificacin de UCP es de prioridad apropiativa. Calcula el ndice
medio de servicio y el tiempo medio de servicio, suponiendo que la prioridad es tanto
mayor cuanto menor sea el nmero que la representa (prioridad 1 prioridad
mxima).

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

EJERCICIOS: Planificacin de UCP

11. Suponiendo los procesos de la tabla, se pide:


a)

Dibuja un diagrama de tiempos para cada uno de los siguientes algoritmos:


- FCFS
- SJF con requisamiento -SRT- (tener en cuenta el tiempo que queda de
CPU para calcular el ms corto)
- Prioridad sin requisamiento
- Prioridad con requisamiento (Se supone mayor prioridad a de valor ms
bajo.)
- Round-Robin (quantum = 2)

b)

Cul es el tiempo de estancia de los trabajos en Round-Robin ?


Id. Proceso

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

Instante de llegada Tiempo de UCP


0
3
4
5
9
10

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.

Para los procesos de la primera figura, dibujar:


a) grficas de trayectoria que no conduzcan a interbloqueo
b) una grfica de trayectoria que conduzca a una situacin de interbloqueo
y para los de la segunda figura, indicar las zonas seguras, inseguras e inalcanzables
Avance de P2

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.

Explicar el grafo de la figura siguiente, y modificarlo segn las operaciones


siguientes:
R2

a) P1 pide una unidad de R1 y R2

P1

R2

b) Se asigna a P1 lo que ha pedido


c) P1 libera una unidad de R1
R1

E52

P2

EJERCICIOS: Interbloqueo

3.

Sean R1, R2 y R3 tres recursos monoinstancia reutilizables, y P1, P2 y P3 tres


procesos que realizan las siguientes operaciones:
P1
...
Solicita R1
...
Solicita R2
...
Libera R1
...
Libera R2
...

P2
...
Solicita R2
...
Solicita R3
...
Libera R2
...
Libera R3
...

P3
...
Solicita R3
...
Solicita R1
...
Libera R3
...
Libera R1
...

a)

Encontrar un orden de ejecucin que conduzca al interbloqueo y dibujar el grafo


de asignacin de recursos correspondiente.

b)

Encontrar un orden de ejecucin que no conduzca al interbloqueo y dibujar el


grafo de asignacin de recursos correspondiente

4.

Dibujar un grafo de asignacin de recursos en el que exista un ciclo pero no haya


interbloqueo.

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.

Dado un sistema en el estado siguiente y sabiendo que no hay peticiones


pendientes,
a) se puede satisfacer la solicitud de P1 de (1,0,1) y seguir en estado seguro?
b) se puede satisfacer la solicitud de P0 de (1,0,1) y seguir en estado seguro?
Asignacin actual
A
B
C

7.

Demanda mxima
A
B
C

P0

P1

P2

P3

A
6

Recursos
B
C
3

Construir un grafo de asignacin de recursos para el siguiente escenario, y


determinar si el grafo es completamente reducible
R1, R2 y R3 son recursos reutilizables con un total de 1, 2 y 1 ejemplares
respectivamente.
El proceso P1 tiene asignado un ejemplar de R1 y ha solicitado otro de R2.
El proceso P2 tiene asignados dos ejemplares de R2, y ha solicitado uno de R1
y otro de R3.
El proceso P3 tiene asignado un ejemplar de R3.

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.

En un sistema hay cinco procesos y 4 recursos monoinstancia en la situacin


siguiente:
-

P1 ha solicitado R1 y R3, y tiene asignado R2.

P2 ha solicitado R1 y R2, y tiene asignado R3.

P3 ha solicitado R4.

P4 ha solicitado R3, y tiene asignado R1.

P5 tiene asignado R4

Dibujar el grafo correspondiente y decidir si es un estado seguro o no.

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)

Calcular qu podra solicitar an cada uno de los procesos y rellenar la


columna demanda restante.

b)

Est el sistema en un estado seguro o inseguro? Por qu?

c)

Est el sistema actualmente bloqueado? Por qu?

d)

Qu procesos, si los hay, estn o pueden llegar a estar interbloqueados?

e)

Si llega de P3 una solicitud de (0,1,0,0), podr concederse inmediatamente


esta solicitud con seguridad? En qu estado (interbloqueado, seguro o

EJERCICIOS: Interbloqueo

inseguro) dejara el sistema la concesin inmediata de la solicitud completa?


Qu procesos, si los hay, estn o pueden llegar a estar interbloqueados si se
concede inmediatamente la solicitud completa?

11. En un sistema de computacin real, ni los recursos disponibles ni las demandas de


los recursos de los procesos permanecen constantes durante largos periodos de
tiempo (meses). Los recursos se averan o se sustituyen, nuevos procesos vienen y
van, se adquieren e incorporan al sistema nuevos recursos. Si los bloqueos mutuos
se controlan usando el algoritmo del banquero, cul de los cambios siguientes
puede efectuarse con seguridad (sin introducir la posibilidad de bloqueos mutuos) y
en qu circunstancias?
a)

Incrementar Disponible (aadir nuevos recursos).

b)

Reducir Disponible (recurso eliminado permanentemente del sistema).

c)

Incrementar Necesidades Mximas para un proceso (el proceso necesita ms


recursos que los permitidos, puede requerir ms).

d)

Reducir Necesidades Mximas para un proceso (el proceso decide que no


necesita tantos recursos).

e)

Incrementar el nmero de procesos.

f)

Reducir el nmero de procesos.

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?

13. Construir un grafo de asignacin de recursos para el siguiente escenario:


R1, R2 y R3 son recursos reutilizables con un total de 2, 2 y 3 ejemplares
respectivamente.
El proceso P1 tiene asignado un ejemplar de R2 y otro de R3, y ha solicitado
otro de R1.
El proceso P2 tiene asignado un ejemplar de R1, y ha solicitado 2 del R3.
El proceso P3 tiene asignado un ejemplar de R1 y otro del R2, y ha solicitado 1
del R3.
y determinar si el grafo es completamente reducible.

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

Conservadora; los recursos estn


poco ocupados

Ordenacin de recursos

Deteccin
Manipulacin para encontrar al
menos un camino seguro.

DESVENTAJAS PRINCIPALES

VENTAJAS PRINCIPALES

Ineficiencia
Retrasos en el inicio de los
procesos

Sujeto a reinicios cclicos

Prdidas inherentes a la
apropiacin y reiniciacin

E56

EJERCICIOS: Interbloqueo

16. P procesos comparten R unidades de un recurso que se pueden reservar y liberar


slo una de cada vez. La demanda mxima de cada proceso no excede de R y la
suma de todas las demandas mximas es menor que R+P. Demostrar que no puede
haber interbloqueo.

17. Sea un sistema en la situacin siguiente:


Asignacin actual

Demanda mxima posible

P0

P1

P2

P3

P4

D = ( 1, 5, 2, 0 )

Si se utiliza el algoritmo del banquero,


a)

Cul es el contenido de la matriz Necesidad?

b)

Demuestra si el sistema est o no en un estado seguro

c)

Si llega una solicitud del proceso P1 de (0,4,2,0), puede atenderse de


inmediato?

18. Sea la poltica de asignacin de recursos siguiente. En cualquier momento se


permite la solicitud y liberacin de recursos. Si una solicitud de recursos no puede
atenderse porque stos no estn disponibles, entonces se examinan los procesos
bloqueados en espera de recursos. Si stos tienen los recursos deseados, se les
expropia y se asignan al proceso solicitante. El vector de recursos para el proceso en
espera se modifica para incluir los recursos que se han quitado.
Por ejemplo, sea un sistema con tres tipos de recursos y el vector Disponible con
valor inicial (4,2,2). Si el proceso A pide (2,2,1), lo obtiene y si el proceso B pide
(1,0,1), tambin lo obtiene. Pero si ahora A pide (0,0,1), se bloquea porque el recurso
no est disponible. Si seguidamente, C solicita (2,0,0), consigue el disponible (1,0,0)
y el que se le asign a A, ya que ste est bloqueado. El vector de asignacin de A
baja a (1,2,1) y su vector de necesidad sube a (1,0,1).
a)

Puede surgir un bloqueo mutuo? Por qu?

b)

Puede surgir un bloqueo indefinido (livelock)?

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

estado seguro es Cpi, cul es el coste de evitar la condicin de interbloqueo en el


sistema?
Suponiendo que en el sistema se utiliza un mtodo de deteccin/recuperacin, y que
slo se aplica el algoritmo de deteccin cada vez que una solicitud no puede
atenderse porque los recursos correspondientes no estn disponibles, cul es el
coste del mtodo de deteccin/recuperacin si: solamente el 10% de las veces
detecta interbloqueo, el coste de cada aplicacin del algoritmo de deteccin es Cdi, y
el coste de cada recuperacin Cri?

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)

Cules son los argumentos a favor de la instalacin del algoritmo de


prediccin de interbloqueos?

b)

Cules son los argumentos en contra de la instalacin del algoritmo de


prediccin de interbloqueos?

EJERCICIOS: Gestin de memoria - MFT y MVT

Sistemas MFT y MVT

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.

Un sistema operativo trata de eliminar la fragmentacin (huecos) por medio de


tcnicas de compactacin. Supongamos que la memoria reservada para la zona de
usuario, 1 MB, se compacta una vez por segundo. Si la copia de 1 byte consume 0,5
segs. y el hueco medio es 0,3 veces el tamao del bloque medio, qu fraccin de
tiempo total de UCP se usa para la compactacin?. Supn que se mueven todos los
bloques aunque el primer programa comience en la direccin de comienzo de la zona
de usuario.

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

EJERCICIOS: Gestin de memoria - MFT y MVT

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;

Procedure BEST-FIT (N:integer; TPRG:integer; Var D:PUNTERO;


Var LTAB:integer);
(* D: parmetro de salida
*);
(* LTAB: parmetro de entrada/salida
*);
(* LTAB: Nmero de entradas activas de la T.S.M.
Var DESPLAZ: Array[1..N] of PUNTERO;

*);

Procedure WORST-FIT (N:integer; TPRG:integer; Var D:PUNTERO;


Var LTAB:integer);
(* D: parmetro de salida
*);
(* LTAB: parmetro de entrada/salida
*);
(* LTAB: Nmero de entradas activas de la T.S.M.

Var DESPLAZ: Array[1..N] of PUNTERO;


E60

*);

EJERCICIOS: Gestin de memoria - MFT y MVT

Procedure FIRST-FIT (N:integer; TPRG:integer; Var D:PUNTERO; Var


LTAB:integer);
(* D: parmetro de salida
*);
(* LTAB: parmetro de entrada/salida
*);
(* LTAB: Nmero de entradas activas de la T.S.M.

*);

Var DESPLAZ: Array[1..N] of PUNTERO;


6.

Dado el siguiente esquema de la situacin de memoria y de la cola de trabajos;


supuestos conocidos los tiempos de UCP necesarios para la ejecucin de cada uno
de ellos:
TABLA DE HUECOS
Direccin

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

Teniendo en cuenta que la gestin de la cola de trabajos es de tipo FIFO, que se


utiliza planificacin por robo de ciclo (Round-Robin), y que todos los trabajos se
realizan sin interrupcin alguna, representa la situacin de memoria (dibujo de la
distribucin de memoria y tabla de huecos o de situacin de memoria) en cada
instante, si aplicamos el algoritmo First-Fit para colocar los programas en memoria
y se realiza una compactacin cada 10 unidades de tiempo cuando sea necesario.

7.

Considrese un sistema MVT en el cual existen actualmente los siguientes huecos


de memoria, ordenados en orden de direccin de comienzo: 10 K, 4 K, 20 K, 18 K, 7
K, 9 K, 12 K y 15 K. Indica, para cada una de las estrategias de asignacin de zonas
libres encadenadas (First-Fit, Best-Fit y Worst-Fit) cul sera el hueco seleccionado
para las siguientes demandas sucesivas:
a)
b)
c)

Demanda de un hueco de 12 Ks.


Demanda de un hueco de 10 Ks.
Demanda de un hueco de 9 Ks

E61

EJERCICIOS: Gestin de memoria - MFT y MVT

8.

Dado el siguiente fragmento de cdigo, correspondiente a la implementacin de una


lista de huecos en un sistema MVT, en el cual las direcciones de memoria se
consideran mltiplos de una unidad denominada click (phys_click):
PRIVATE struct hole {
phys_clicks h_base;
/* direccin de comienzo del hueco */
phys_clicks h_len;
/* tamao del hueco */
struct hole h_next;/* puntero al siguiente elemento de la lista */
} hole [NR_HOLES];

a) Programa una funcin en lenguaje C para cada una de las estrategias de


asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit),, denominada
max_hueco, que devuelva el tamao del mayor hueco libre de memoria.
b) Programa una funcin en lenguaje C para cada una de las estrategias de
asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit),, denominada
min_hueco, que devuelva el tamao del menor hueco libre de memoria.
c) Programa una funcin en lenguaje C para cada una de las estrategias de
asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit), denominada
tam_med_hueco, que devuelva el tamao medio de los huecos libres de memoria.
d) Programa una funcin en lenguaje C para cada una de las estrategias de
asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit), denominada
tam_hole, que reciba como parmetro un nmero entero positivo i, que har
referencia a un hueco (hueco 1, hueco 2,...). La citada funcin devolver el
tamao del hueco al cual corresponde la i-sima entrada en la tabla de huecos.
e) Programa una funcin en lenguaje C para cada una de las estrategias de
asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit), denominada
tam_hole2, que reciba como parmetro un nmero entero positivo i, que har
referencia a un hueco (hueco 1, hueco 2,...). La citada funcin devolver el
tamao del hueco i-simo en orden decreciente de tamao.
f)

Programa una funcin en lenguaje C para cada una de las estrategias de


asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit), denominada
tam_hole3, que reciba como parmetro un nmero entero positivo i, que har
referencia a un hueco (hueco 1, hueco 2,...). La citada funcin devolver el
tamao del hueco i-simo en orden creciente de tamao.

g) Programa una funcin en lenguaje C para cada una de las estrategias de


asignacin de zonas libres encadenadas (first-fit, worst-fit y best-fit), denominada
tam_hole4, que reciba como parmetro un nmero entero positivo i, que har
referencia a un hueco (hueco 1, hueco 2,...). La citada funcin devolver el
tamao del hueco i-simo en orden creciente de direccin de comienzo.

E62

EJERCICIOS: Gestin de memoria - MFT y MVT

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.

Indica, para cada Quantum, el valor de la fragmentacin interna, externa y total.

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

EJERCICIOS: Memoria virtual - Tiempos de traduccin

Memoria virtual Tiempos de traduccin

1.

Suponiendo que el tiempo de acceso a una memoria asociativa es de 50 ns, el


acceso a una posicin de memoria real 750 ns y que con 16 registros asociativos, el
porcentaje de xito es del 80%. Calcular el tiempo de sobrecarga en los tres casos
posibles.

2.

Si en un sistema paginado con traduccin combinada y simultnea, se necesitan 500


ns. para acceder a memoria real y 100 ns. para acceder a los registros asociativos,
qu frecuencia de xito en la bsqueda se debe dar para que la sobrecarga sea de
170 ns. (suponiendo el mejor de los casos)?

3.

Si en un sistema paginado con traduccin combinada y simultnea, se necesitan 700


ns. para acceder a memoria real y 100 ns. para acceder a los registros asociativos,
calcular la frecuencia de xito en la bsqueda que se debe dar para que la
sobrecarga sea de 170 ns. (suponiendo el mejor de los casos).

4.

Calcular el tiempo efectivo de acceso a memoria en un sistema que utiliza traduccin


combinada y simultnea para una memoria principal con un tiempo de acceso de 200
nseg., utilizando unos registros asociativos que permiten un acceso de 50 nseg,
sabiendo que la traduccin es directa el 20% de las veces.

5.

Sea un sistema con traduccin combinada simultnea (total). Si el tiempo efectivo de


acceso es de 320 ns. para una frecuencia de xito del 90% y el tiempo de
sobrecarga en el caso de una traduccin directa es de 250 ns. cul sera el tiempo
efectivo de acceso si el sistema implementara una traduccin asociativa?

6.

Suponiendo que el tiempo de acceso a una memoria asociativa es de 50 ns., el


acceso a una posicin de memoria real 750 ns. y que contamos con 16 registros
asociativos, para realizar una traduccin combinada, calcular la frecuencia de xito
con este sistema de traduccin para que el tiempo de sobrecarga sea 210 ns.

7.

Si en un sistema paginado con traduccin combinada y simultnea total, son


necesarios 700 ns. para acceder a la tabla de pginas y 100 ns. para acceder a los
registros asociativos, calcular la frecuencia de xtio en la bsqueda que debe darse
para que la sobrecarga sea, en el mejor de los casos, de 160 ns.

E64

EJERCICIOS: Tiempos de traduccin

8.

Sea un sistema paginado con traduccin directa en el que el tiempo efectivo de


acceso a las posiciones referenciadas es de 800 ns. en el mejor de los casos (es
decir la pgina est cargada en memoria). Calcular cul sera el tiempo efectivo de
acceso si se implanta un mecanismo de traduccin combinada simultnea con unos
registros asociativos con un tiempo de acceso de 50 ns. y la frecuencia de xito es
de 82%.

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.?

10. Se quiere sustituir un sistema de traduccin directa para un sistema paginado en el


que el tiempo efectivo de acceso es de 1000 nseg., por un nuevo sistema de
traduccin que implique una sobrecarga menor. Para ello, se debe calcular el tiempo
de sobrecarga y el tiempo efectivo de acceso que implicara una traduccin
combinada y simultnea, as como una traduccin totalmente asociativa, teniendo en
cuenta que se dispondr de una cach con un tiempo de acceso de 200 nseg. y en
caso de utilizar la traduccin combinada, la tasa de fallos ser del 20%.

E65

EJERCICIOS: Memoria virtual - Sistemas Segmentados

Sistemas Segmentados

1.

Tenemos un sistema segmentado y un proceso de usuario que tiene 5 segmentos:


Segmento 0 de cdigo:
Segmento 1 de pila:
Segmento 2 de datos:
Segmento 3 de datos extra:
Segmento 4 rutina X:

100K
20K
50K
75K
30K

Que son referenciados segn la siguiente secuencia (en decimal y desplazamiento en


Ks): (0,10) (0,15) (0,16) (1,18) (0,24) (2,1) (0,23) (2,30) (0,25) (4,3) (4,8) (2,60) (4,10)
(0,90)
Si en un momento dado la situacin de la memoria (zona de usuario) es la siguiente:
Libre

Direccin

Tamao

N de Segmento

00AAAA

200K

---

Representa la tabla de segmentos y la situacin de memoria en cada paso, as como la


secuencia de direcciones reales referenciadas.

2.

En un momento dado la tabla de segmentos del proceso P1 y la tabla de situacin de la


memoria asignada al mismo, contienen la informacin siguiente:
TABLA DE SEGMENTOS PROCESO P1

TABLA SITUACIN MEMORIA P1

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

El DAT descompone la direccin en sus componentes segmento 3 y desplazamiento


64 y se sita en la tabla de segmentos, en la entrada donde viene la informacin de
correspondencia necesaria para calcular la direccin real correspondiente.
Indica todos los operaciones que realiza el DAT para obtener dicha direccin.

E66

EJERCICIOS: Memoria virtual - Sistemas Paginados

Sistemas Paginados

1.

En un sistema de gestin de memoria paginado tenemos la direccin virtual


11010101010(2. En un momento dado la tabla de pginas contiene la informacin
siguiente:
TABLA DE PGINAS
B. Resid.

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

a) Cuntas pginas hay? Cuntas celdas hay? Tamao en K's de pgina.


Tamao en K's de memoria Virtual. Tamao en K's de la Memoria Principal.
b) Halla la direccin fsica correspondiente a la direccin virtual dada.
c) Indica las operaciones y los responsables de ellas, que se realizan para ejecutar
la instruccin correspondiente a la direccin virtual siguiente: 000 0000 1000(2.

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

EJERCICIOS: Sistemas Paginados

3.

Un sistema de ordenador proporciona a sus usuarios un espacio de memoria virtual


de 1 Mb. El ordenador tiene 4 Kb de memoria real. La memoria virtual est
implementada con paginacin, siendo el tamao de la pgina de 512 bytes.
a) Cul ser la longitud de una direccin virtual? Y de una real?
b) Cuntas pginas habr en memoria virtual? Y en la real?
c) Plantea una direccin virtual y explicar cmo establece el sistema la
localizacin fsica correspondiente.

4.

Dada la direccin virtual 15AC13B8(hex, teniendo un sistema paginado con pginas


de 2 Kbytes y siendo la unidad de asignacin el byte.
Cul es el tamao de la memoria virtual?
Cuntas entradas tiene la tabla de pginas?
Si la mquina trabaja con un registro origen de tabla de pginas (ROTP) de 24 bits
y existen 6 bits de proteccin y uno de validez:
Cunto mide cada entrada de la tabla de pginas?
Cul es el tamao de la tabla de pginas, medido en pginas?
Cul es la entrada de la tabla de pginas direccionada?
Cul es la direccin de la entrada direccionada si el contenido del registro ROTP
es 00AAAA(hex?
Si en esta direccin se encuentra la siguiente informacin: 00FFFFFF(hex y slo
est libre la celda 18 de memoria real, qu ocurre? cmo se completa la
traduccin?y si contiene 00 FF FF(hex?

5.

A continuacin se da el listado de un corto programa en ensamblador para un


ordenador de marco de pgina de 512 bytes. El programa comienza en la direccin
1020, y su stack en la 8192. Indica el orden de referencia de pginas generado por
este programa. Cada instruccin ocupa 4 bytes (1 palabra), y las referencias a los
datos e instrucciones cuentan para hallar dicho orden.
1
2
3
4
5
6

E68

Carga palabra 6144 en registro 0


Poner registro 0 en el stack
Llama a rutina en 5120, guardando en stack la direccin de vuelta
Restar 16 al puntero del stack
Comparar el contenido del stack con 4
Si son iguales, saltar a la direccin 5152.

EJERCICIOS: Memoria virtual - Sistemas Paginados

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

EJERCICIOS: Estrategias de Reemplazamiento

Estrategias de Reemplazamiento

1.

Dada la siguiente traza de un programa (leer por lneas):


0100,
0103,
0101,

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.

Dada la siguiente cadena de referencias y suponiendo que hay 3 celdas disponibles,


evaluar el algoritmo FIFO (obtener el nmero de faltas de pgina que se producen).
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

3.

a)

Calcula el nmero de faltas de pgina que se producen cuando tenemos


disponible: 1 celda, 2 celdas, ..., hasta 5 celdas; y hacer una grfica de nmero
de celdas por faltas de pgina.

b)

Hallar el Working-set del programa al que corresponde dicha cadena de


referencias.

Dada la siguiente cadena de referencias:


7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

Calcula el nmero de faltas de pgina que se producen si se aplica el algoritmo OPT


teniendo 3 celdas disponibles.

4.

Sea la siguiente secuencia de referencias a memoria, realizadas por un programa


cuya longitud es de 460 palabras:
010, 011, 104, 170, 073, 309, 185, 245, 246, 434, 458, 364, 199, 305, 270, 450

a)

Obtn la cadena de referencias si el tamao de las pginas es de 100 palabras


(numeradas de 0 a 99), y slo est en ejecucin ese proceso.

b) Calcula el nmero y el porcentaje de faltas de pgina para dicha cadena de


referencias, si la memoria disponible es de 300 palabras y la paginacin se
gestiona con el algoritmo:
- FIFO
- LRU
- MFU
c) Explica brevemente cmo se ha hecho ese clculo para cada caso.

E70

EJERCICIOS: Estrategias de Reemplazamiento

5.

En un sistema paginado tenemos 4 celdas disponibles para un proceso. El instante


de carga, el instante en que ha sido accedida, y los bits R y C para cada pgina se
dan a continuacin, para un momento dado (el tiempo se da en unidades de tiempo o
tics de reloj)
Pgina

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

Qu pgina se reemplaza en primer lugar con el algoritmo:


a) LFU?
b) FIFO?
c) LRU?
Y en segundo lugar?

6.

Se ha observado que el nmero de instrucciones ejecutadas entre faltas de pginas


es directamente proporcional al nmero de celdas asignadas a un programa. Si
multiplicamos por 2 la memoria disponible, el intervalo medio entre faltas tambin
aumenta el doble. Supongamos que una instruccin normal necesita 1 seg. para
ejecutarse; pero si se produce falta de pgina necesita 2001 seg. Si un programa
necesita 60 mseg. para ejecutarse, tiempo durante el cual se producen 15000 faltas
de pgina, cunto tiempo necesitar para ejecutarse si la memoria disponible se
duplica?

7.

Sea una matriz A de dos dimensiones:


var A: array[1..100] of array[1..100] of integer;

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

EJERCICIOS: Estrategias de Reemplazamiento

8.

Dada la siguiente cadena de referencias, si la estrategia de reemplazamiento es


LRU:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 0

Cuntos fallos de pgina se producen si le asignamos 3 celdas?


Cunto tiempo tarda en ejecutarse si cuando todas sus pginas estn cargadas en
memoria tarda 2 seg. y cada fallo de pgina de carga o de reemplazamiento tarda en
resolverse 1/5 de segundo?
Dibuja la grfica del 'working-set' (al menos 4 puntos).

9.

La situacin de un sistema paginado, en cuanto a la utilizacin de memoria, viene


reflejada por las informaciones contenidas en las tablas siguientes:
TABLA DE PGINAS

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

Dada la siguiente direccin virtual '2FFF'(16 calcula el tamao de la memoria virtual y


de la memoria real y la direccin real correspondiente a la virtual dada explicando
cmo se ha hecho. Utilizar el algoritmo LRU, LFU o MFU

10. En un sistema de gestin de memoria paginado tenemos la direccin virtual


10110101010(2. En un momento dado la tabla de pginas contiene la informacin
siguiente:
TABLA DE PGINAS

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

(La informacin de la tabla de celdas est en decimal.).

Se pide:
E72

EJERCICIOS: Estrategias de Reemplazamiento

a)

Tamao en K's de la memoria Virtual. Tamao en K's de la Memoria


Principal.

b)

La direccin fsica correspondiente a la direccin virtual dada, indicando


todos los pasos y las actualizaciones correspondientes.

11. Sea un sistema paginado, con pginas de 2 K palabras. Si la tabla de pginas


contiene los datos siguientes en binario:
TABLA DE PGINAS
Bit Res.

N de celda

0
0
1
0
1
1

11
00
00
01
01
10

a)

Calcula el tamao de la memoria virtual en palabras y el de la memoria real.

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

Explica detalladamente TODOS los pasos realizados, especificando el contenido


de todas las entradas afectadas de la tabla de pginas.

12. Traduce la direccin virtual 011010101010(2 e indicar el tamao de las pginas, si


se utiliza el algoritmo de reemplazo MFU, dicho proceso slo tiene asignadas 3
celdas y las tablas del sistema tienen el siguiente formato e informacin:
TABLA DE PGINAS
DE UN PROCESO

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

EJERCICIOS: Estrategias de Reemplazamiento

13. Dada la siguiente cadena de referencias: 0 1 2 0 2 3 4 0 3 4 5 0, calcula el


nmero de faltas de pgina que se producen si se disponen de 3 celdas para la
evaluacin de:
a)

El algoritmo FIFO

b)

El algoritmo LRU

c)

El algoritmo LFU

14. En un sistema paginado, con pginas de 2 K, se ha obtenido a partir de la traza de


un programa la siguiente cadena de referencias:
7, 0, 7, 5, 0, 2, 7, 5, 3, 7, 5, 0, 2, 3

a)

Evaluar con ella el algoritmo FIFO, comprobando si adolece o no de la anomala


de Belady.

b)

Si en dicho sistema la tabla de pginas y celdas tienen el formato y contenido


siguientes:
TABLA DE PGINAS
DE UN PROCESO

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

Representa la memoria principal, zona de usuario, indicando la pginas


cargadas en ella y las tablas del sistema afectadas (tabla de pginas y tabla de
celdas) despus de acceder a cada una de las posiciones correspondientes a las
direcciones virtuales siguientes, e indicar para cada una de ellas la direccin real
correspondiente:
a) 11 1000 0000 0001(2

c)

00 0000 0000 1001(2

b) 10 1111 1111 1111(2

d)

01 0001 0000 1111(2

15. Dada la siguiente cadena de referencias:


1, 5, 1, 6, 2, 5, 3, 6, 4, 5, 3, 6

Representa su comportamiento con tres celdas de memoria disponibles utilizando


como algoritmo de reemplazo MFU. Explicar cmo se aplica dicho algoritmo a este
caso.

E74

EJERCICIOS: Estrategias de Reemplazamiento

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.

17. Dada la siguiente cadena de referencias


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

calcular para un algoritmo de reemplazamiento que selecciona la pgina ms


recientemente usada (MRU):
a)

El nmero mximo de faltas de pgina

b)

El nmero mnimo de faltas de pgina

c)

El nmero de faltas de pgina con una memoria disponible de 3 marcos

18. En un sistema paginado, en un instante dado la tabla de pginas de un proceso de


seis entradas contiene la siguiente informacin:
TABLA DE PGINAS
Bit Res.

Dir. Base celda

1
1
0
1
0
1

0800
0000
0B00
0400
FFFF
1000

Si la posicin ms alta de memoria real es 17FF(hex y todas las celdas estn


ocupadas, Cuntas pginas hay? Cuntas celdas hay en MR? Cul es el tamao
de una pgina en Ks? Cul es el tamao de la memoria virtual en Ks? Cul es el
tamao de la memoria real en Ks?
Traduce las siguientes direcciones virtuales, indicando los accesos y modificaciones
que se realizan sobre la informacin de correspondencia
a)

direccin virtual 1010011110001(2

b)

direccin virtual 0100100001111(2

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

EJERCICIOS: Estrategias de Reemplazamiento

19. En un sistema paginado con pginas de 2 Kbytes, se genera la siguiente direccin


virtual '01 0010 1010 1010'(2. Dada la tabla de situacin de memoria siguiente:
TABLA DE CELDAS
N Pgina
5
4
0

a)

Tamao mximo de la memoria virtual y de la real.

b)

Calcula la direccin real correspondiente a la virtual dada indicando todos los


pasos y actualizaciones de la informacin del sistema que se realizan sabiendo
que:

en la entrada de la tabla de pginas correspondiente a la pgina


referenciada, el bit de residencia est a 0

esta direccin virtual se ha generado tras las correspondientes a las


utilizadas para la generacin de la siguiente cadena de referencias: 1 3 4
3 5 0 4 5

y el algoritmo de reemplazamiento de este sistema es el LRU

20. En un sistema paginado la tabla de pginas y la tabla de celdas tienen el siguiente


formato e informacin:
TABLA DE PGINAS

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

Representa la memoria principal, zona de usuario, indicando las pginas cargadas y


las tablas del sistema afectadas (tabla de pginas y tabla de celdas) despus de
acceder a cada una de las posiciones correspondientes a las direcciones virtuales
siguientes:
0 1000 0000 0001(2
1 0111 1111 1111(2
0 1000 0000 1001(2
0 0000 0000 1111(2
1 1101 1001 1000(2
1 1000 0000 0001(2
Indica para cada una de ellas la direccin real correspondiente teniendo en cuenta
que el algoritmo de reemplazo es MFU.

E76

EJERCICIOS: Estrategias de Reemplazamiento

21. Sea un sistema paginado, con pginas de 2K palabras. En un momento dado la


Tabla de Pginas contiene los siguientes valores:
Bit Res.

N de celda

0
0
1
0
1
1
0
0

11
01
01
10
10
00
00
00

Calcula el tamao de la memoria virtual en palabras. Calcular el tamao de la


memoria real en palabras. Dada la direccin virtual '11 0000 0001 1010(2 , realizar la
traduccin teniendo en cuenta que el sistema utiliza un algoritmo LRU implementado
mediante contadores, y que los valores asociados a cada pgina del programa son
los siguientes:
Pgina
5
2
4

Reg. tiempo uso Bit Cambio


1100
0010
0001

0
0
1

Explica detalladamente todos los pasos realizados, especificando el contenido de


todas las entradas afectadas de la tabla de pginas.

22. La traza de un programa es la siguiente (por lneas):


00 3E 80,
00 07 08,
00 0A 00,
00 13 88,
00 3E 88,
00 07 28,
00 18 60,
00 04 08,
00 0B 20,
00 14 D8,

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)

Halla a partir de ella la cadena de referencias sabiendo que se dispone de un


sistema paginado y que las pginas son de 2K.

b)

Si cuando todas sus pginas estn cargadas en memoria tarda 2 segundos, y


sabiendo que cada fallo de pgina de carga o de reemplazamiento tarda en
resolverse 1/5 segundo, dibuja la grfica necesaria para el clculo del
working-set.

c)

Relacin entre localidad y thrasing.

E77

EJERCICIOS: Estrategias de Reemplazamiento

23. Dada la siguiente cadena de referencias, para un ordenador en que la instruccin


mquina mayor referencia 2 pginas.
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

a)

Calcula el nmero de faltas de pgina que se producen si se aplica el algoritmo


LRU teniendo 3 celdas disponibles.

b)

Calcula el nmero mximo de faltas de pgina

c)

Calcula el nmero mnimo de faltas de pgina

24. Dada la siguiente traza, expresada en decimal, para un ordenador en el que la


instruccin mquina mayor referencia dos pginas, y en el cual cada pgina consta
de 100 posiciones:
0372
0451
0472
0111

0713
0371
0373
0222

0151
0372
0873
0333

0452
0373
0972
0999

0453
0502
0273
0000

a)

Halla la cadena de referencias correspondiente a esta traza leda


horizontalmente.

b)

Calcula el nmero de faltas de pgina que se produce si se aplica el algoritmo


FIFO teniendo 3, 4 y 5 celdas disponibles. Explica si se da la anomala de
Belady.

c)

Calcula el nmero mximo de faltas de pgina.

d)

Calcula el nmero mnimo de faltas de pgina.

25. En un sistema paginado se genera la direccin virtual ACDC(16. Teniendo en cuenta


que hay 16 pginas y que la situacin de la memoria real se refleja en la siguiente
tabla (con toda su informacin en binario):
TABLA DE CELDAS

E78

N de pg.

Contador

0000
0011
1100
0010
0111

000001
001111
110101
010000
101010

a)

Cul es el tamao de la memoria real asignada al proceso?

b)

Cul es el tamao mximo de la memoria virtual?

c)

Cul es la direccin real correspondiente a la direccin virtual dada si se


utiliza como algoritmo de reemplazamiento el LRU? Representa el contenido
de las entradas afectadas en las distintas tablas antes y despus de la
traduccin.

d)

En qu variara el proceso de traduccin, respecto del paso anterior, si el


algoritmo de reemplazamiento utilizado fuera el LFU?

EJERCICIOS: Estrategias de Reemplazamiento

26. En un sistema paginado se genera la direccin virtual A000(16. Teniendo en cuenta


que hay 8 pginas y que la situacin de memoria se refleja en la siguiente tabla de
celdas:
N de pg.

Contador

000
001
010
----

0001
0011
1000
0000

a)

Cul es el tamao mximo de la memoria real?

b)

Cul es el tamao mximo de la memoria virtual?

c)

Calcula la direccin real correspondiente a la direccin virtual dada si se


utiliza como algoritmo de reemplazo el MFU. Indicar y explicar todos los
pasos, representando las tablas de celdas y pginas antes y despus de la
resolucin.

27. En un sistema paginado con pginas de 2K durante la ejecucin del proceso P1 se


genera la siguiente direccin virtual: '01 1010 1010 1010'(2. Dada la tabla de situacin
de memoria siguiente:
Calcula:

Tabla de celdas
0

a)

Nmero de pginas mximo

b)

Nmero de celdas mximo

c)

Tamao mximo de la memoria virtual

d)

Tamao mximo de la memoria real

e)

La direccin real correspondiente, en binario, si en la entrada de la tabla de


pginas de la pgina referenciada el bit de residencia est a 0, el algoritmo de
reemplazamiento es LRU (Least Recently Used) y la direccin virtual dada se
produce despus de las reflejadas en la siguiente cadena de referencias: 1 3
0 6 0 2 7 1 3 4 3 5 0 4 5.

f)

Cuntas celdas deberamos tener asignadas al proceso P1 para obtener un


nmero mnimo de faltas de pgina? Cuntas habra?

g)

Cul es el nmero mximo de faltas de pgina si se permite un nivel de


indireccin? Con cuntas celdas?.

h)

Dibuja las tablas de pginas y de celdas e indicar el contenido de todas sus


entradas tras la traduccin anterior.

4
5

E79

EJERCICIOS: Caso de Estudio

Sistema Caso de estudio

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.

En el sistema IBM caso de estudio con un disco 3340 (12 pistas/cilindro y 3


slots/pista) y una memoria instalada de 50 K's, al ejecutarse un proceso de
usuario se genera la direccin virtual 05 EB BB(16 .
Para poder acceder al contenido de la posicin referenciada el sistema tiene que
averiguar la _____________________________________________________ .
Para ello, el ______ descompone la direccin generada en sus componentes
que en este caso toman los valores: nmero de segmento ________ , nmero de
__________________________ y desplazamiento _________.
Con el contenido de la entrada correspondiente al segmento referenciado, en la
tabla de _______________ , y el nmero de la ________ referenciada, accede a
la tabla de _____________ _______________________ y ms concretamente a
la entrada correspondiente, encontrando que su contenido es A3 7F(16. Dado que
el bit de _______________ est a 1 se produce una interrupcin por __________

E80

EJERCICIOS: Caso de Estudio

La rutina de _________________________ invocar a la rutina de ____________


________________ que se encargar de localizar mediante el algoritmo _______,
una _______________ donde cargar la ____________ en ________________
La situacin de las colas del sistema que utiliza este algoritmo para lograr su
cometido es la siguiente:
Q00
05 10
14 11
17 11

Q01
23 11
09 11
03 11
18 11

Q10
22 10
10 11
07 11

Q11
19 11
12 11

HQ
02 00

el n de celda se indica en decimal


seguido del bit de referencia y el
bit de modificacin o cambio

Realizando los procesos involucrados1, dicha rutina determina la celda nmero __


Puesto que el bit de ___________ asociado est a 0, no ser necesario realizar
un _________________ ya que su contenido es copia exacta de la del ______.
En Cualquier caso, se modificar la entrada de la tabla de ___________________
indicando con el bit de _____________ a _____ que no est cargada en
memoria real.
A continuacin, se invocar a la rutina de ________________________ para que
prepare la carga de la pgina referenciada, es decir se realice un ____________.
Para preparar dicha operacin de E/S, tendr que averiguar las direcciones
correspondientes. En primer lugar calcular la direccin de disco o _______ de la
siguiente forma:

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

EJERCICIOS: Caso de Estudio

Resultando la direccin ____________. Tras realizar dicha operacin de E/S,


proceder a actualizar:
La entrada correspondiente de la tabla de _________ con el nmero absoluto
de la _______________ referenciada; es decir, pondr en los octetos ______
el dato '________'.
La _________ entrada de la tabla de _____________ con los 13 bits ms
significativos de la ___________________________________ y con el bit de
_____________ a ______.
Una vez realizadas estas actualizaciones, se retorna el control al ________ el cual
calcula la direccin real '______________' donde estn los datos referenciados.

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)

el contenido de dicha posicin es '05 E8'(16

b)

el contenido de dicha posicin es '10 3C'(16

Especifica en ambos casos el contenido de las tablas de gestin de memoria en


TODAS las entradas afectadas (situacin de partida y situacin final), y el de las
colas. Caso de tener que realizarse un 'page-out' un 'page-in', indica la direccin
de disco sobre la que se realiza.
Otros datos:
RSIZE = 100 K.
La situacin de las colas que utiliza el algoritmo LRU de 2 oportunidad es la
siguiente:
Q00
17 10
25 11
14 10

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.

EJERCICIOS: Caso de Estudio

Explica todas las operaciones que se tendrn que realizar para poder ejecutar
dicha instruccin, indicando adems el encargado de ejecutarlas si:
a)

el contenido de dicha posicin es '01 34'(16

b)

el contenido de dicha posicin es '10 33'(16

Especifica en ambos casos el contenido de las tablas de gestin de memoria en


TODAS las entradas afectadas (situacin de partida y situacin final), y el de las
colas. Caso de tener que realizarse un 'page-out' un 'page-in', indica la direccin
de disco sobre la que se realiza.
Otros datos:
RSIZE = 100 K.
La situacin de las colas que utiliza el algoritmo LRU de 2 oportunidad es la
siguiente:
Q00
17 10
25 11
14 10

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)

el contenido de dicha posicin es '00 04'(16

b)

el contenido de dicha posicin es '01 33'(16

Especifica en ambos casos el contenido de las tablas de gestin de memoria en


TODAS las entradas afectadas (situacin de partida y situacin final), y el de las
colas. Caso de tener que realizarse un 'page-out' un 'page-in', indica la direccin
de disco sobre la que se realiza.
Otros datos:
RSIZE = 100 K.
La situacin de las colas que utiliza el algoritmo LRU de 2 oportunidad es la
siguiente:

E83

EJERCICIOS: Caso de Estudio

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.

Tenemos el sistema IBM caso de estudio. La memoria virtual se encuentra


soportada en un disco modelo 3350 (30 pistas / cilindro y 8 slots /pista) y el
tamao de la memoria real instalada es de 100 K. En un momento determinado
del tratamiento de un fallo de pgina, es necesario hacer un page-out de la pgina
cuyo nmero absoluto es 1442(10, contenida en la celda nmero 23. Calcula las
informaciones que la rutina de E/S de pginas debe suministrar para proceder al
page-out.

7.

En el sistema IBM caso de estudio con el EPS en un disco 3350 (30


pistas/cilindro y 8 slots/pista), y una memoria instalada de 50K, al ejecutarse un
proceso de usuario se genera la direccin siguiente: 03F833(16 y al ir a traducirla
se produce un page-fault. En el servicio de dicha interrupcin, la rutina de
seleccin de celdas elige la celda 20 que tiene los bits de referencia y cambio a 0
y 1 respectivamente.
Suponiendo que los octetos 4 y 5 de la entrada 21 de la tabla de celdas contienen
0552(16, se pide:
a) Especificar todas las operaciones que realiza la rutina de manejo de
pginas hasta que el DAT vuelve a tener el control, calculando todas las
direcciones necesarias.
b) Representar las tablas de gestin de memoria indicando el contenido de
todas las entradas afectadas cuando el DAT toma el control y cuando lo
deja tras haber calculado la direccin real correspondiente a la virtual
dada.

E84

EJERCICIOS: Asignacin y planificacin de disco

Asignacin y planificacin de disco

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.

Representa el contenido de la lista de espacio libre, el directorio y los bloques de


disco antes y despus de guardar un fichero 'B' de 5 bloques en un disco de 12
bloques donde existe un fichero 'A' de 3 bloques, para los siguientes casos y
suponiendo que el directorio est en el bloque 0 y en un bloque caben 4
apuntadores:
a)

Asignacin contigua, lista de espacio libre por agrupamiento, el fichero 'A'


comienza en el bloque 2.

b)

Asignacin enlazada, lista de espacio libre por recuento y el fichero 'A'


ocupa los bloque 3, 6 y 2.

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.

Dado figura siguiente en la que aparece la representacin de un disco,

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)

Nmero de bloques del disco

b)

Fichero que hay en l, bloques que ocupan y en qu orden

c)

Asignacin empleada

d)

Implementacin de la lista de espacio libre

10

11

EJERCICIOS: Asignacin y planificacin de disco

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.

Sea un disco de 12 bloques. En l existe un fichero 'Clientes' que ocupa los


bloque 3, 6, 2 y 10, y un fichero Ventas 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.

8.

Representar el contenido de la lista de espacio libre, el directorio y los bloques de


disco, antes y despus de almacenar un fichero F2 de 4 bloques en un disco de
14 bloques donde hay un fichero F1 de 5 bloques 7, 4, 5, 2, y 11, si la
asignacin es indexada con un esquema combinado de 3+2, la lista de espacio
libre es por agrupamiento, el directorio est en el bloque 0, y en un bloques caben
5 apuntadores.

9.

Dada la figura siguiente en la que aparece la representacin de un disco,

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

EJERCICIOS: Asignacin y planificacin de disco

d) Representar, sin mover los bloques de datos ni el directorio, cmo quedara


este mismo disco con asignacin contigua siendo la implementacin de la
lista de espacio libre enlazada

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)

15 sectores grabados al azar

c)

1 fichero de 32 Mb. completo grabado al azar

d)

1 fichero secuencial de 20 Mb.

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)

El bloque correspondiente al cilindro 4 de la cara 16 del sector 8

b)

La capacidad total del disco

12. Se dispone de un disco de 200 cilindros. En l se quieren grabar 12.230 registros


lgicos de 120 bytes cada uno. Si cada cilindro tiene 16 pistas de 10 bloques cada
una y en un bloque pueden entrar 5 registros, cul ser la ocupacin del disco
en cilindros? cul es la capacidad total del disco?

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

Representa el recorrido de la cabeza lectora para las siguientes estrategias de


gestin de los dispositivos de almacenamiento:

E87

a)

FCFS

b)

SSTF

c)

SCAN

d)

C-SCAN

e)

LOOK

f)

C-LOOK

EJERCICIOS: Asignacin y planificacin de disco

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 ltimas pistas accedidas son: 100, 74, 48 y en ese orden

las peticiones pendientes son: 120, 35, 69, 28, 99, 184, 173

15. En la cola de requerimientos de un sistema de discos estn sealadas las pistas


80, 42, 97, 35, 118, 94, 82. Si el disco tiene 160 pistas numeradas de 0 a 159 y la
cabeza de lectura/escritura despus de servir la 38, est en la pista 43, dibuja y
calcula el movimiento total de la cabeza para satisfacer la cola de requerimientos
segn los algoritmos:
a)

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:

las ltimas pistas accedidas son: 48,120,130 y en ese orden

las peticiones pendientes son: 156,186,40,130,145,150,336

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)

la estrategia de planificacin de discos SCAN.

b)

la estrategia de planificacin de discos C-LOOK.

c)

la estrategia de planificacin de discos es FCFS

d)

la estrategia de planificacin de discos es SSTF

e)

la estrategia de planificacin de discos es LOOK

f)

la estrategia de planificacin de discos es c-SCAN

Das könnte Ihnen auch gefallen