You are on page 1of 40

1. [endif]Qu es la multiprogramacin?

Se denomina multiprogramacin a una tcnica por la que dos


o ms procesos pueden alojarse en la memoria principal y ser
ejecutados concurrentemente por el procesador o CPU.

[if !supportLists]2. [endif]Qu es spooling? Cree usted que


las computadoras personales avanzadas tendrn spooling
como caracterstica estndar en el futuro?
Se refiere al proceso mediante el cual la computadora
introduce trabajos en un buffer (un rea especial
en memoria o en un disco), de manera que un dispositivo
pueda acceder a ellos cuando est listo.

[if !supportLists]3. [endif]En las primeras computadoras,


cada byte de datos ledos o escritos se manejaba mediante
la CPU (es decir, no haba DMA). Qu implicaciones tiene
esto para la multiprogramacin?
La CPU se someta a una carga masiva de interrupciones, se
sobrecarga al procesador y ste no era capaz de realizar
tareas adicionales o de tener un ptimo rendimiento.

[if !supportLists]4. [endif]Laidea de una familia de


computadoras fue introducida en la dcada de 1960 con
las mainframes IBM System/360. Est muerta ahora esta
idea o sigue en pie?
Se mantiene porque a partir de los aos 60
se produjo la invencin del circuito integrado o microchip,
por parte de Jack St.ClaireKilby y Robert Noyce. Despus llev
a Ted Hoff
a la invencin del microprocesador, en Intel. A final
es de 1960 investigadores como George Gamow not que
las secuencias de nucletidos en el ADN formaban un cdigo,
otra forma de codificar o programar. A partir de esta fecha,
empezaron a empaquetarse varios transistores diminutos y
otros componentes electrnicos en un solo chip o
encapsulado, que contena en su interior un circuito completo:
un amplificador, un oscilador, o una puerta lgica.
Naturalmente, con
estos chips (circuitos integrados) era mucho ms fcil montar
aparatos complicados: receptores de radio o televisin y
computadoras. En 1965y, IBM
anunci el primer grupo de mquinas construidas co
n circuitos integrados, que recibi el nombre de serie Edgar.
Estas computadoras de tercera
generacin sustituyeron totalmente a los de segunda,
introduciendo una forma de programar que an se mantiene en
las grandes computadoras actuales.

[if !supportLists]5. [endif]Una razn por la cual las GUI no se


adoptaron con rapidez en un principio fue el costo del
hardware necesario para darles soporte. Cunta RAM de
video se necesita para dar soporte a una pantalla de texto
monocromtico de 25 lneas x 80 caracteres?
4kb de RAM
Cunta se necesita para un mapa de bits de 1024 _ 768
pxeles y colores 24 bits?
25165824bits
Cul fue el costo de esta RAM con precios de 1980 (5
dlares/KB)?
122880 dolares
Cunto vale ahora?
467001 dolares

[if !supportLists]6. [endif]Hay varias metas de diseo a la


hora de crear un sistema operativo, por ejemplo: la
utilizacin de recursos, puntualidad, que sea robusto,
etctera. De un ejemplo de dos metas de diseo que
puedan contradecirse entre s.

Para poder disear un sistema operativo es necesario que el


diseador debe tener en cuenta que funciones quieres que
haga el sistema operativo.

[if !supportLists]7. [endif]Cul de las siguientes


instrucciones debe permitirse slo en modo kernel?
a) Deshabilitar todas las interrupciones.
b) Leer el reloj de la hora del da.
c) Establecer el reloj de la hora del da.
d) Cambiar el mapa de memoria.

[if !supportLists]8. [endif]Considere un sistema con dos


CPUs y que cada CPU tiene dos hilos (hiperhilamiento).
Suponga que se inician tres programas P0, P1 y P2 con
tiempos de ejecucin de 5, 10 y 20 mseg, respectivamente.
Cunto se tardar en completar la ejecucin de estos
programas? Suponga que los tres programas estn 100%
ligados a la CPU, que no se bloquean durante la ejecucin
y no cambian de CPU una vez que se les asigna.

el tiempo que tarda en completar la ejecucin de un programa


en un nanosegundo.

[if !supportLists]9. [endif]Una


computadora tiene una
canalizacin con cuatro etapas. Cada etapa requiere el
mismo tiempo para hacer su trabajo, a saber, 1 nseg.
Cuntas instrucciones por segundo puede ejecutar esta
mquina?

se pueden ejecutar dos o ms instrucciones se obtienen a la


vez, se decodifican y se vacan en un bfer de contencin
hasta que puedan ejecutarse.

[if !supportLists]10. [endif]Considere un sistema de cmputo


con memoria cach, memoria principal (RAM) y disco, y
que el sistema operativo utiliza memoria virtual. Se
requieren 2 nseg para acceder a una palabra desde la
cach, 10 nseg para acceder a una palabra desde la RAM
y 10 ms para acceder a una palabra desde el disco. Si la
proporcin de aciertos de cach es de 95% y la proporcin
de aciertos de memoria (despus de un fallo de cach) es
de 99%, cul es el tiempo promedio para acceder a una
palabra?

el tiempo promedio de retraso para acceder a una palabra


despues de un fallo de la cache es de uno o dos ciclos
de reloj.

[if !supportLists]11. [endif]Un revisor alerta observa un error


de ortografa consistente en el manuscrito del libro de
texto de sistemas operativos que est a punto de ser
impreso. El libro tiene cerca de 700 pginas, cada una con
50 lneas de 80 caracteres. Cunto tiempo se requerir
para digitalizar en forma electrnica el texto, para el caso
en que la copia maestra se encuentre en cada uno de los
niveles de memoria de la figura 1-9? Para los mtodos de
almacenamiento interno, considere que el tiempo de
acceso dado es por carcter, para los discos suponga que
el tiempo es por bloque de 1024 caracteres y para la cinta
suponga que el tiempo dado es para el inicio de los datos,
con un acceso posterior a la misma velocidad que el
acceso al disco.

el tiempo para acceder en forma aleatoria a los datos en ella


es de cerca de tres rdenes de magnitud ms lento.
[if !supportLists]12. [endif]Cuando un programa de usuario
realiza una llamada al sistema para leer o escribir en un
archivo en disco, proporciona una indicacin de qu
archivo desea, un apuntador al bfer de datos y la cuenta.
Despus, el control se transfiere al sistema operativo, el
cual llama al driver apropiado. Suponga que el driver inicia
el disco y termina hasta que ocurre una interrupcin. En el
caso de leer del disco, es obvio que el procedimiento que
hizo la llamada tiene que ser bloqueado (debido a que no
hay datos para leer). Qu hay sobre el caso de escribir en
el disco? Necesita ser bloqueado el procedimiento
llamador, para esperar a que se complete la transferencia
del disco?

En cierto sentido, realizar una llamada al sistema es como


realizar un tipo especial de llamada a un procedimiento, slo
que las llamadas al sistema entran al kernel y las llamadas a
procedimientos no.

[if !supportLists]13. [endif]Qu es una instruccin de trap?


Explique su uso en los sistemas operativos.
el trap se usa para transferir el control al sistema operativo

[if !supportLists]14. [endif]Cul es la diferencia clave entre


un trap y una interrupcin?
Cuando ocurre una interrupcin, el sistema operativo slo
puede tener unos cuantos microsegundos para realizar cierta
accin o de lo contrario, puede perder informacin crtica.

[if !supportLists]15. [endif]Por qu se necesita la tabla de


procesos en un sistema de tiempo compartido? Se
necesita tambin en los sistemas de computadora
personal en los que slo existe un proceso, y ese proceso
ocupa toda la mquina hasta que termina?
El sistema de tiempo compartido oficial de IBM, conocido como
TSS/360, se liber despus de tiempo y cuando por fin lleg
era tan grande y lento que pocos sitios cambiaron a este
sistema.

[if !supportLists]16. [endif]Existe alguna razn por la que


sera conveniente montar un sistema de archivos en un
directorio no vaco? De ser as, cul es?
Despus de la llamada a mount, se puede tener acceso a un
archivo en la unidad 0 con slo utilizar su ruta del directorio
raz o del directorio de trabajo, sin importar en cul unidad se
encuentre.

[if !supportLists]17. [endif]Cul es el propsito de una


llamada al sistema en un sistema operativo?
el propsito principal de un sistema operativo es proveer
ciertas abstracciones clave, siendo las ms importantes los
procesos y hilos, los espacios de direcciones y los archivos.

[if !supportLists]18. [endif]Para cada una de las siguientes


llamadas al sistema, proporcione una condicin que haga
que falle: fork, exec y unlink.
En realidad, la llamada al sistema en s es exec, pero varios
procedimientos de biblioteca lo llaman con distintos
parmetros y nombres ligeramente diferentes.

[if !supportLists]19. [endif]Podra


la llamada cuenta =
write(fd, bufer, nbytes); devolver algn valor en cuenta
distinto de nbytes? Si es as, por qu? porque Crea
un duplicado exacto del proceso original, incluyendo todos los
descriptores de archivos.
[if !supportLists]20. [endif]Un archivo cuyo descriptor es
fdcontiene la siguiente secuencia de bytes: 3, 1, 4, 1, 5, 9,
2, 6, 5, 3, 5. Se realizan las siguientes llamadas al sistema:
lseek(fd, 3, SEEK_SET); read(fd, &bufer, 4); en donde la
llamada lseek realiza una bsqueda en el byte 3 del
archivo. Qu contiene buferdespus de completar la
operacin de lectura?
La llamada a fork devuelve un valor, que es cero en el hijo e
igual al identificador del proceso (PID) hijo en el padre.

[if !supportLists]21. [endif]Suponga que un archivo de 10 MB


se almacena en un disco, en la misma pista (pista #: 50) en
sectores consecutivos. El brazo del disco se encuentra
actualmente situado en la pista nmero 100. Cunto
tardar en recuperar este archivo del disco? Suponga que
para desplazar el brazo de un cilindro al siguiente se
requiere aproximadamente 1 ms y se requieren
aproximadamente 5 ms para que el sector en el que est
almacenado el inicio del archivo gire bajo la cabeza.
Suponga adems que la lectura ocurre a una velocidad de
100 MB/s.
Para desplazar el brazo a un cilindro aleatoriamente se
requieren por lo general de 5 a 10 milisegundos, dependiendo
de la unidad.

[if !supportLists]22. [endif]Cul es la diferencia esencial


entre un archivo especial de bloque y un archivo especial
de carcter?

Los archivos especiales de bloque se utilizan para modelar


dispositivos que consisten en una coleccin de bloques
direccionables al azar, tales como los discos.
Al abrir un archivo especial de bloque y leer, por decir, el
bloque 4, un programa puede acceder de manera directa al
cuarto bloque en el dispositivo sin importar la estructura del
sistema de archivos que contenga. De manera similar, los
archivos especiales de carcter se utilizan para modelar
impresoras, mdems y otros dispositivos que aceptan o
producen como salida un flujo de caracteres.

[if !supportLists]23. [endif]En el ejemplo que se da en la figura


1-17, el procedimiento de biblioteca se llama ready la
misma llamada al sistema se llama read. Es esencial que
ambos tengan el mismo nombre? Si no es as, cul es
ms importante?

En su preparacin para llamar al procedimiento de biblioteca


read, que es quien realmente hace la llamada al sistema read,
el programa llamador primero mete los parmetros en la pila,
como se muestra en los pasos 1 a 3 de la figura 1-17.

[if !supportLists]24. [endif]El modelo cliente-servidor es


popular en los sistemas distribuidos. Puede utilizarse
tambin en un sistema de una sola computadora?

Se puede utilizar para un solo equipo o para una red de


equipos.

[if !supportLists]25. [endif]Para un programador, una llamada


al sistema se ve igual que cualquier otra llamada a un
procedimiento de biblioteca. Es importante que un
programador sepa cules procedimientos de biblioteca
resultan en llamadas al sistema? Bajo qu circunstancias
y por qu?

Cuando un programa de CMS ejecutaba una llamada al


sistema, sta quedaba atrapada para el sistema operativo en
su propia mquina virtual, no para VM/370, de igual forma que
si se ejecutara en una mquina real, en vez de una virtual.
Despus, CMS emita las instrucciones normales de E/S de
hardware para leer su disco virtual o lo que fuera necesario
para llevar a cabo la llamada.

[if !supportLists]26. [endif]La figura 1-23 muestra que varias


llamadas al sistema de UNIX no tienen equivalentes en la
API Win32. Para cada una de las llamadas que se listan y
no tienen un equivalente en Win32, cules son las
consecuencias de que un programador convierta un
programa de UNIX para que se ejecute en Windows?

Tiene muchos parmetros que especifican las propiedades del


proceso recin creado. Windows no tiene una jerarqua de
procesos como UNIX, por lo que no hay un concepto de un
proceso padre y un proceso hijo. Una vez que se crea un
proceso, el creador y el creado son iguales.

[if !supportLists]27. [endif]Un sistema operativo porttil se


puede portar de la arquitectura de un sistema a otro, sin
ninguna modificacin. Explique por qu no es factible
construir un sistema operativo que sea completamente
porttil. Describa dos capas de alto nivel que tendr al
disear un sistema operativo que sea altamente porttil.
En el primer grupo de ordenadores porttiles tenemos los
menos potentes, los denominados netbooks. En este tipo de
equipos no deberamos plantearnos otra opcin que no fuera
Windows 7 Starter o bien Windows XP que, aun siendo un
sistema operativo antiguo, resulta ideal para este tipo de
equipos de bajo coste. Si nos decantamos por Linux, podemos
optar por alguna distribucin especfica para este tipo de
equipos como puede ser Kuki Linux, compilada especialmente
para los Aspire One de Acer, hasta otras ms generalistas
como Linpus Lite o Joli OS.
[if !supportLineBreakNewLine]
[endif]
Explique cmo la separacin de la directiva y el
mecanismo ayuda a construir sistemas operativos
basados en microkernel.
Con el diseo de capas, los diseadores podan elegir en
dnde dibujar el lmite entre kernel y usuario. Tradicionalmente
todos las capas iban al kernel, pero eso no es necesario. De
hecho, puede tener mucho sentido poner lo menos que sea
posible en modo kernel, debido a que los errores en el kernel
pueden paralizar el sistema de inmediato. En contraste, los
procesos de usuario se pueden configurar para que tengan
menos poder, por lo que un error en ellos tal vez no sera fatal.

[if !supportLists]29. [endif]He aqu algunas preguntas para


practicar las conversiones de unidades:
(a) A cuntos segundos equivale un microao?

1 micro ao = (1 x 10^-6) x (31,536,000) = 31.536 segundos

(b) A los micrmetros se les conoce comnmente como


micrones. Qu tan largo es un gigamicron?

(c) Cuntos bytes hay en una memoria de 1 TB?


1 TB ocupa 1012 bytes de almacenamiento
(d) La masa de la Tierra es de 6000 yottagramos. Cunto es
eso en kilogramos?

[if !supportLists]30. [endif]Escriba un shell que sea similar a


la figura 1-19, pero que contenga suficiente cdigo como
para que pueda funcionar y lo pueda probar. Tambin
podra agregar algunas caractersticas como la
redireccin de la entrada y la salida, los canales y los
trabajos en segundo plano.
#define TRUE 1
while (TRUE) { /* se repite en forma indefinida */
type_prompt(); /* muestra el indicador de comando en la
pantalla */
read_command(command, parameters); /* lee la entrada de la
terminal */
if (fork() !=0) { /* usa fork para el proceso hijo */
} else {
}
}

[if !supportLists]31. [endif]Si tiene un sistema personal


parecido a UNIX (Linux, MINIX, FreeBSD, etctera)
disponible que pueda hacer fallar con seguridad y
reiniciar, escriba una secuencia de comandos de shell que
intente crear un nmero ilimitado de procesos hijos y
observe lo que ocurre. Antes de ejecutar el experimento,
escriba sync en el shell para vaciar los bferes del sistema
de archivos al disco y evitar arruinar el sistema de
archivos.

Nota: No intente esto en un sistema compartido sin obtener


primero permiso del administrador del sistema. Las
consecuencias sern obvias de inmediato, por lo que es
probable que lo atrapen y sancionen.

Cuestionario 2

1. En la figura 2-2 se muestran los estados de tres


procesos. En teora, con tres estados podra haber
seis transiciones, dos fuera de cada estado. Sin embargo
slo se muestran cuatro transiciones. Existe
alguna circunstancia en la que una o ambas de las
transiciones faltantes pudiera ocurrir?
*No ya que si llegar a bloquearse el sistema se detendrian los
dems procesos.

2. Suponga que debe disear una arquitectura de


computadora avanzada que hiciera conmutacin de
procesos en el hardware, en vez de tener interrupciones.
Qu informacin necesitara la CPU? Describa
cmo podra trabajar la conmutacin de procesos por
hardware.
*Para obtener una precisin completa, debemos recalcar que
el modelo probabilstico que acabamos de describir es slo una
aproximacin. Supone en forma implcita que los n procesos
son independientes, lo cual significa que es bastante aceptable
para un sistema con cinco procesos en memoria.

3. En todas las computadoras actuales, al menos una parte


de los manejadores de interrupciones se escriben
en lenguaje ensamblador. Por qu?

4. Cuando una interrupcin o una llamada al sistema


transfiere el control al sistema operativo, por lo
general se utiliza un rea de la pila del kernel separada de
la pila del proceso interrumpido. Por
qu?
*Por que la pila del proceso se desactiva y la del kernel va
arreglando el problema.

5. Varios trabajos se pueden ejecutar en paralelo y


terminar con ms rapidez que si se hubieran ejecutado
en secuencia. Suponga que dos trabajos, cada uno de los
cuales necesita 10 minutos de tiempo
de la CPU, inician al mismo tiempo. Cunto tiempo
tardar el ltimo en completarse, si se ejecutan
en forma secuencial? Cunto tiempo si se ejecutan en
paralelo? Suponga que hay 50% de espera
de E/S.
*El ltimo tardar aproximadamente 12 minutos ya que el cpu
inici al mismo tiempo.

6. En el texto se estableci que el modelo de la figura 2-


11(a) no era adecuado para un servidor de archivos
que utiliza una memoria cach. Por qu no? Podra cada
proceso tener su propia cach?
*Por que Cuando se ejecuta un proceso con multihilamiento en
un sistema con una CPU, los hilos toman turnos para
ejecutarse.

7. Si un proceso con multihilamiento utiliza la operacin


fork, ocurre un problema si el hijo obtiene copias
de todos los hilos del padre. Suponga que uno de los hilos
originales estaba esperando la entrada
del teclado. Ahora hay dos hilos esperando la entrada del
teclado, uno en cada proceso. Acaso
ocurre este problema en procesos con un solo hilo?
*No, ya que si el proceso es con un slo hilo no habra
interferencia ni conflicto.

8. En la figura 2-8 se muestra un servidor Web con


multihilamiento. Si la nica forma de leer un archivo
es la llamada al sistema read normal con bloqueo, cree
usted que se estn usando hilos a nivel
usuario o hilos a nivel kernel para el servidor Web? Por
qu?
*Utiliza hilos nivel cliente ya que va y busca en los datos del
disco en procesos.
9. En el texto describimos un servidor Web con
multihilamiento, mostrando por qu es mejor que un
servidor con un solo hilo y que un servidor de mquina de
estados finitos. Hay alguna circunstancia
en la cual un servidor con un solo hilo podra ser mejor?
D un ejemplo.
*Sera mejor por que no habra choque en proceso. Ejemplo si
esta buscando un archivo y tiene un servidor de 1 slo hilo la
bsqueda sera ms rapida.

10. En la figura 2-12, el conjunto de registros se lista por


hilos, en vez de por procesos. Por qu? Despus
de todo, la mquina slo tiene un conjunto de registros.
*Porque un hilo puede estar en uno de varios estados: en
ejecucin, bloqueado, listo o terminado. Por eso presenta el
listado por hilos.

11. Por qu un hilo otorgara de manera voluntaria la CPU


al llamar a thread_yield? Despus de todo,
como no hay una interrupcin peridica de reloj, tal vez
nunca obtenga la CPU de vuelta.
* es importante que los hilos sean amables y entreguen de
manera voluntaria la CPU de vez en cuando, para dar a otros
hilos la oportunidad de ejecutarse.

12. Puede darse alguna vez el apropiamiento de un hilo


mediante una interrupcin de reloj? De ser as,
bajo qu circunstancias? Si no es as, por qu no?
*Si, por que en una de las interrupciones se puede apropiarse
un proceso ya que esta libre.

13. En este problema debe comparar la lectura de un


archivo, utilizando un servidor de archivos con un solo
hilo y un servidor multihilado. Se requieren 15 mseg para
obtener una peticin, despacharla y realizar el resto del
procesamiento necesario, suponiendo que los datos
necesarios estn en la cach del bloque. Si se necesita una
operacin de disco, como es el caso una tercera parte del
tiempo, se requieren 75 mseg adicionales, durante los
cuales el hilo duerme. Cuntas peticiones por segundo
puede manejar el servidor, si es de un solo hilo? Si es
multihilado?

14. Cul es la mayor ventaja de implementar hilos en


espacio de usuario? Cul es la mayor desventaja?
*Que permite que cada hilo tenga su propio algoritmo, tambin
se escalan mejor, ya que los hilos del kernel requieren sin duda
algo de espacio en la tabla y en la pila del kernel, lo cual puede
ser un problema si hay una gran cantidad de hilos.

15. En la figura 2-15, las creaciones de hilos y los mensajes


impresos por los mismos se intercalan al
azar. Hay alguna forma de forzar el orden para que sea
estrictamente: hilo 1 creado, hilo 1 imprime
mensaje, hilo 1 termina, hilo 2 creado, hilo 2 imprime
mensaje, hilo 2 termina, y as en lo sucesivo?
De ser as, cmo se puede hacer? Si no es as, por qu
no?

16. En el anlisis de las variables globales en hilos,


utilizamos un procedimiento llamado crear_global para
asignar espacio para un apuntador a la variable, en vez de
la misma variable. Es esto esencial
o podran trabajar los procedimientos con los valores en
s mismos de igual forma?

17. Considere un sistema en el cual los hilos se


implementan por completo en espacio de usuario, en
donde el sistema en tiempo de ejecucin obtiene una
interrupcin de reloj una vez por segundo. Suponga
que ocurre una interrupcin de reloj mientras un hilo se
ejecuta en el sistema en tiempo de ejecucin. Qu
problema podra ocurrir? Puede usted sugerir una forma
de resolverlo?
*Se perdera el proceso o presentara un error en el proceso al
volver el reloj.

18. Suponga que un sistema operativo no tiene algo


parecido a la llamada al sistema select para ver por
adelantado si es seguro leer de un archivo, canal o
dispositivo, pero que s permite establecer relojes de
alarma que interrumpen las llamadas bloqueadas al
sistema. Es posible implementar un paquete de hilos en
espacio de usuario bajo estas condiciones? Explique.
*Pienso que si se puede ya que se puede configurar un hilo
para que inicie las busquedas.

19. Puede el problema de inversin de prioridades que


vimos en la seccin 2.3.4 ocurrir con hilos a nivel usuario?
Por qu si o por qu no?
*No por que se perderan algunos de los procesos iniciados.

20. En la seccin 2.3.4 se describi una situacin con un


proceso de alta prioridad H y un proceso de baja
prioridadL, que ocasionaba que H iterara en forma
indefinida. Ocurre el mismo problema si se utiliza la
planificacin por turno circular en vez de la planificacin
por prioridad? Explique.

21. En un sistema con hilos, hay una pila por cada hilo o
una pila por cada proceso cuando se utilizan hilos a nivel
usuario? y cuando se utilizan hilos a nivel de kernel?
Explique.
*Hay una pila por cada hilo. En el kernel se utilizan los hilos
para iniciar provesos.

22. Cuando se est desarrollando una computadora, por lo


general primero se simula mediante un programa que
ejecuta una instruccin a la vez. Incluso hasta los
multiprocesadores se simulan estrictamente en forma
secuencial como sta. Es posible que ocurra una
condicin de carrera cuando no hay eventos simultneos
como ste?

23. Funciona la solucin de espera ocupada en la que se


utiliza la variable turno (figura 2-23) cuando los dos
procesos se ejecutan en un multiprocesador con memoria
compartida, es decir, dos CPU que
comparten una memoria comn?

24. La solucin de Peterson al problema de exclusin


mutua que se muestra en la figura 2-24, funciona cuando
la planificacin es apropiativa? Y qu pasa cuando es no
apropiativa?

25. D un bosquejo acerca de cmo un sistema operativo


que puede deshabilitar interrupciones podra
implementar semforos.

26. Muestre cmo pueden implementarse los semforos


contadores (es decir, semforos que pueden contener un
valor arbitrario) utilizando slo semforos binarios e
instrucciones de mquina ordinarias.
Si el programa opera en fases y ningn proceso puede entrar
en la siguiente
fase hasta que haya terminado con la fase actual, tiene todo el
sentido de
utilizar una barrera.
27. Si un sistema slo tiene dos procesos, tiene sentido
utilizar una barrera para sincronizarlos? Por qu s o por
qu no?
Con el formato round robin funciona. Tarde o temprano se
ejecutar, y, finalmente, dejar su regin crtica. El punto es,
con planificacin por prioridades, nunca llega a funcionar en
absoluto; con round robin, se pone una cantidad de tiempo
normal peridicamente, por lo que tiene la oportunidad de salir
de su regin crtica.

28. Pueden dos hilos en el mismo proceso sincronizarse


mediante un semforo de kernel, si los hilos son
implementados por el kernel? Qu pasa si se
implementan en espacio de usuario? Suponga que ningn
hilo de ningn otro proceso tiene acceso al semforo.
Analice sus respuestas.
Con los hilos del kernel, un hilo se puede bloquear en un
semforo y el kernel puede ejecutar algn otro hilo en el mismo
proceso. En consecuencia, no hay ningn problema utilizando
semforos. Con hilos a nivel de usuario, cuando un hilo se
bloquea en un semforo, el kernel piensa que todo el proceso
se bloquea y no lo ejecuta Nunca ms. En consecuencia, el
proceso falla.

29. La sincronizacin con monitores utiliza variables de


condicin y dos operaciones especiales: waity signal. Una
forma ms general de sincronizacin tendra que tener una
sola primitiva, waituntil, que
tuviera un predicado booleano arbitrario como parmetro.
As, podramos decir por ejemplo:
waituntilx< 0 o y _ z < n
La primitiva signalno sera ya necesaria. Es evidente que
este esquema es ms general que el de Hoare o Brinch
Hansen, pero no se utiliza. Por qu no? Sugerencia:
Considere la implementacin.
Es muy dificil de implementar. Cada vez que cualquier variable
aparece, sobre la que algn proceso est esperando cambios,
el sistema en ejecucin debe re-evaluar, para ver si el proceso
puede ser desbloqueado. Con el Hoare y monitores Brinch
Hansen, los procesos slo pueden ser despertados en una
seal primitiva.

30. Un restaurante de comida rpida tiene cuatro tipos de


empleados: (1) los que toman pedidos de los
clientes; (2) los cocineros, que preparan la comida; (3) los
especialistas de empaquetado, que meten
la comida en bolsas; y (4) los cajeros, que entregan las
bolsas a los clientes y reciben su dinero. Cada
empleado puede considerarse como un proceso
secuencial comunicativo. Qu forma de comunicacin
entre procesos utilizan? Relacione este modelo con los
procesos en UNIX.
Los empleados se comunican mediante el paso de mensajes.
En trminos UNIX, los cuatro procesos estn conectadas.

31. Suponga que tenemos un sistema de paso de mensajes


que utiliza buzones. Al enviar a un buzn lleno o al tratar
de recibir de uno vaco, un proceso no se bloquea. En vez
de ello, recibe de vuelta un cdigo de error. Para responder
al cdigo de error, el proceso slo vuelve a intentar, una y
otra vez, hasta tener xito. Produce este esquema
condiciones de carrera?
No conduce a condiciones de carrera (no se pierda nada), pero
es tiempo de espera.

32. Las computadoras CDC 6000 podan manejar hasta 10


procesos de E/S en forma simultnea, utilizando una forma
interesante de planificacin por turno circular conocida
como comparticin del procesador. Se llevaba a cabo una
conmutacin de procesos despus de cada instruccin,
por lo que
la instruccin 1 provena del proceso 1, la instruccin 2 del
proceso 2, etctera. La conmutacin de procesos se
realizaba mediante hardware especial y la sobrecarga era
de cero. Si un proceso necesitaba T segundos para
completarse en ausencia de competencia, cunto tiempo
necesitara si se utilizara la comparticin del procesador
con n procesos?
Se necesitar nTseg.

33. Puede una medida determinar, analizando el cdigo


fuente, si un proceso es ms probable que est limitado a
CPU o limitado a E/S? Cmo puede determinarse esto en
tiempo de ejecucin?
Si se produce un proceso varias veces en la lista, se obtendrn
mltiples ciclos. Este enfoque podra ser utilizado para dar a
los procesos ms importantes mas espacio en la CPU. Pero
cuando los procesos se bloquean, todas las entradas se
eliminaran de la lista de procesos ejecutables.

34. En la seccin Cundo se deben planificar se


mencion que algunas veces la planificacin se podra
mejorar si un proceso importante pudiera desempear un
papel al seleccionar el siguiente proceso a ejecutar al
bloquearse. Mencione una situacin en la que se podra
utilizar esto y explique cmo.
Para varios procesos en una seccion, el padre comn podra
pasar a la informacin del sistema operativo sobre el flujo de
datos. Con esta informacin
el OS podra, por ejemplo, determinar qu proceso podra
suministrar la salida a un proceso de bloqueo en una llamada
de entrada.
35. Las mediciones de cierto sistema han demostrado que
el proceso promedio se ejecuta durante un tiempoTantes
de bloquearse debido a una operacin de E/S. Una
conmutacin de procesos requiere de un tiempo S, es
efectivamente desperdiciado (sobrecarga). Para la
planificacin por turno circular con un quntum Q,
proporcione una frmula para la eficiencia de la CPU en
cada uno de los siguientes casos:
(a) Q _
(b) Q >T
(c) S <Q <T
(d) Q _ S
(e) Q cercano a 0
La eficiencia de la CPU es el tiempo de CPU til dividida por el
tiempo total de CPU. Cuando Q T, el ciclo bsico es que el
proceso se ejecute para T y someterse a un interruptor de
proceso para S. Por lo tanto (a) y (b) tienen una eficiencia de T
(S + T) /. Cuando la cuanta es inferior a T, cada serie T, se
requiere proceso de T / Q
interruptores, desperdiciando un tiempo de ST / Q. La eficacia
aqu es entonces
T + ST / Q 33333T3333 lo que reduce a Q / (Q + S), que es la
respuesta a (c). Para (d), slo sustituimos Q para S y se
encontr que la eficiencia es del 50 por ciento. Por ltimo, para
(e), como Q 0 la eficiencia va a 0.

36. Hay cinco trabajos en espera de ser ejecutados. Sus


tiempos de ejecucin esperados son 9, 6, 3, 5 y X. En qu
orden se deben ejecutar para minimizar el tiempo de
respuesta promedio? (Su respuesta depender de X).
Los procesos ms cortos primeros, es la forma de minimizar
el tiempo de respuesta promedio.
0 <X 3: X, 3, 5, 6, 9.
3 <X 5: 3, X, 5, 6, 9.
5 <X 6: 3, 5, X, 6, 9.
6 <X 9: 3, 5, 6, X, 9.
X> 9: 3, 5, 6, 9, X.

37. Cinco trabajos de procesamiento por lotes, A aE, llegan


a un centro de cmputo casi al mismo tiempo. Tienen
tiempos de ejecucin estimados de 10, 6, 2, 4 y 8 minutos.
Sus prioridades (determinadas en forma externa) son 3, 5,
2, 1 y 4, respectivamente, en donde 5 es la prioridad ms
alta. Para cada uno de los siguientes algoritmos de
planificacin, determine el tiempo de respuesta de
proceso promedio. Ignore la sobrecarga por conmutacin
de procesos.
a) Por turno circular.
b) Por prioridad.
c) Primero en entrar, primero en ser atendido (ejecutados
en el orden 10, 6, 2, 4, 8).
d) El trabajo ms corto primero.
Para (a), suponga que el sistema es multiprogramado y
que cada trabajo recibe su parte equitativa de la CPU. Para
los incisos del (b) al (d), suponga que slo se ejecuta un
trabajo a la vez hasta que termina. Todos los trabajos
estn completamente ligados a la CPU.
Por turno circular, durante los primeros 10 minutos de cada
trabajo se pone 1/5 de la CPU. A el final de los 10 minutos, C
termina. Durante los siguientes 8 minutos, cada trabajo se 1/4
de la CPU, tiempo despus del cual D termina. Entonces cada
uno de los tres restantes empleos consigue 1/3 de la CPU
durante 6 minutos, hasta que termina B, y as sucesivamente.
Los tiempos de acabado para los cinco puestos de trabajo son
de 10, 18, 24, 28 y 30, para un promedio de 22 minutos. Por
prioridad, B est dirigido en primer lugar. Despus de 6 minutos
es terminado. El resto de trabajos a los 14, 24, 26 y 30, para
un promedio de 18,8 minutos. Si los trabajos se ejecutan en el
orden de llegada, sera un promedio de 19,2 minutos. Por
ltimo, el trabajo mas corto, con un promedio de 14 minutos.
38. Un proceso que se ejecuta en un CTSS necesita 30
quntums para completarse. Cuntas veces se debe
intercambiar, incluyendo la primera vez (antes de que se
haya ejecutado siquiera)?
La primera vez que se pone 1 quntum. En carreras sucesivas
se pone 2, 4, 8, y 15, por lo que debe ser intercambiada en 5
veces.
39. Puede idear una forma de evitar que el sistema de
prioridades CTSS sea engaado por los retornos
de carro?
Se podra hacer una verificacin para ver si el programa del
que se esperaba entrada se ejecut o no se ejecut. Un
programa que no espera entrada no obtendra ninguna
prioridad especial.

40. El algoritmo de envejecimiento con a _ 1/2 se utiliza


para predecir los tiempos de ejecucin. Las cuatro
ejecuciones anteriores, de la ms antigua a la ms
reciente, son de 40, 20, 40 y 15 mseg. Cul es la
prediccin del siguiente tiempo?
La secuencia de las predicciones es 40, 30, 35, y ahora 25.

41. Un sistema de tiempo real suave tiene cuatro eventos


peridicos con periodos de 50, 100, 200 y 250 mseg cada
uno. Suponga que los cuatro eventos requieren 35, 20, 10
y x mseg de tiempo de la CPU, respectivamente. Cul es
el mayor valor de x para que el sistema sea planificable?
La fraccin de la CPU utilizado es 35/50 + 20/100 + 10/200 + x
/ 250. Para ser
planificable, este debe ser menor que 1. Por lo tanto x debe ser
inferior a 12,5 m seg.

42. Explique por qu se utiliza comnmente la


planificacin de dos niveles.
Se necesita programacin de dos niveles cuando la memoria
es demasiada pequea para contener todos los procesos
listos. Un conjunto de ellos se pone en la memoria, y una
eleccin se hace de ese conjunto. De vez en cuando, se ajusta
el conjunto de procesos en el ncleo. Este algoritmo es fcil de
implementar y razonablemente eficiente, sin duda mucho
mejor que digamos, todos contra todos, sin tener en cuenta si
un proceso se encontraba en memoria o no.

44. Considere un sistema en el que se desean separar la


poltica y el mecanismo para la planificacin de hilos de
kernel. Proponga una manera de lograr este objetivo.
El kernel podra programar procesos por cualquier medio que
desee, pero dentro de cada proceso se ejecutan hilos
estrictamente en orden de prioridad. Al permitir al conjunto de
procesos de usuario la prioridad de sus propios hilos, el usuario
controla la poltica pero el kernel el mecanismo.

Cuestionario #3
1. En la figura 3-3 los registros base y lmite contienen el
mismo valor, 16,384. Es esto un accidente,
o siempre son iguales? Si esto es slo un accidente, por
qu son iguales en este ejemplo?
Si cada trabajo tiene un 50% de E / S espera, entonces tomar
20 minutos para completar en el ausencia de competencia. Si
se ejecuta de forma secuencial, la segunda terminar 40
minutos despus de la primera aperturas. Con dos puestos de
trabajo, la utilizacin de la CPU aproximada es 1-0,52. As,
cada uno recibe 0.375 CPU minuto por minuto de bienes hora.
Para acumular 10 minutos de tiempo de CPU, un trabajo debe
funcionar durante 10 / 0.375 minutos o aproximadamente
26,67 minutos. De este modo se ejecuta secuencialmente los
trabajos terminen despus de 40 minutos, pero el
funcionamiento en paralelo que terminen despus de 26,67
minutos
2. Un sistema de intercambio elimina huecos mediante la
compactacin. Suponiendo una distribucin aleatoria de
muchos huecos y muchos segmentos de datos y un
tiempo de lectura o escritura en una palabra de memoria
de 32 bits de 10 nseg, aproximadamente cunto tiempo
se requiere para compactar 128 MB? Para simplificar,
suponga que la palabra 0 es parte de un hueco y que la
palabra ms alta en la memoria contiene datos vlidos.
Casi toda la memoria tiene que ser copiado, lo que requiere
que cada palabra que ser leer y luego reescrito en una
ubicacin diferente. La lectura de 4 bytes tarda 10 nseg.

3. En este problema tiene que comparar el


almacenamiento necesario para llevar la cuenta de la
memoria libre, utilizando un mapa de bits contra el uso de
una lista ligada. La memoria de 128 MB se asigna en
unidades de n bytes. Para la lista enlazada, suponga que
la memoria consiste en una secuencia
alternante de segmentos y huecos, cada uno de 64 KB.
Suponga tambin que cada nodo en la lista enlazada
necesita una direccin de memoria de 32 bits, una longitud
de 16 bits y un campo para el siguiente nodo de 16 bits.
Cunto bytes de almacenamiento se requieren para cada
mtodo? Cul
es mejor?
Casi toda la memoria tiene que ser copiado, lo que requiere
que cada palabra que ser leer y luego reescrito en una
ubicacin diferente. La lectura de 4 bytes tarda 10 nseg,15 por
lo que la lectura de 1 byte tarda 2,5 ns y la escritura se toma
otro 2,5 nseg, para una total de 5 ns por byte compactado. Esta
es una tasa de 200.000.000 bytes / seg. Para copiar 128 MB
(227 bytes, que es alrededor de 1,34 108 bytes), el ordenador
necesita 227 / 200.000.000 segundos, que es de unos 671 ms.
Este nmero es ligeramente pesimista porque si el orificio
inicial en la parte inferior de la memoria es K bytes, esos bytes
k no necesitan ser copiados. Sin embargo, si hay muchos
agujeros y muchos segmentos de datos, los agujeros sern
pequeos por lo k ser pequeo y el error en el clculo tambin
ser pequea.

4. Considere un sistema de intercambio en el que la


memoria consiste en los siguientes tamaos de hueco, por
orden de memoria: 10 KB, 4 KB, 20 KB, 18 KB, 7 KB, 9 KB,
12 KB y 15 KB. Cul hueco se toma para las siguientes
solicitudes de segmento sucesivas:
a) 12 KB
b) 10 KB
c) 9 KB

5.para el algoritmo del primer ajuste? Ahora repita la


pregunta para el mejor ajuste, peor ajuste y siguiente
ajuste.
En primer ajuste tarda de 20 KB, 10 KB, 18 KB. Mejor ajuste
tarda de 12 KB, 10 KB y 9 KB. Peor ajuste tarda de 20 KB, 18
KB y 15 KB. A continuacin ajuste tarda de 20 KB, 18 KB, y 9
KB.

5. Para cada una de las siguientes direcciones virtuales


decimales, calcule el nmero de pgina virtual y
desplazamiento para una pgina de 4 KB y para una pgina
de 8 KB: 20000, 32768, 60000.
Para un tamao de pgina de 4 KB la (pgina, offset) son pares
(4, 3616), (8, 0) y (14, 2656). Para un tamao de 8 KB pgina
son (2, 3616), (4, 0), (7, 2656).

6. El procesador Intel 8086 no admite memoria virtual. Sin


embargo, algunas compaas vendan anteriormente
sistemas que contenan una CPU 8086 sin modificaciones
y realizaba la paginacin. Trate de llegar a una conclusin
lgica acerca de cmo lo hicieron. Sugerencia: piense
acerca de la ubicacin lgica de la MMU.
Ellos construyeron una MMU y lo insertaron entre el 8086 y el
autobs. Por lo tanto todo 8086 direcciones fsicas entraron en
la MMU como direcciones virtuales. la MMU luego los
mapeadas a direcciones fsicas, que entraron al bus.

7. Considere el siguiente programa en C:


int X[N];
int paso = M; // M es una constante predefinida
for (int i = 0; i < N; i += paso) X[i] = X[i] + 1;
a) Si este programa se ejecuta en una mquina con un
tamao de pgina de 4 KB y un TLB con 64
entradas, qu valores de M y N harn que un TLB falle
para cada ejecucin del ciclo interno?
b) Sera distinta su respuesta al inciso a) si el ciclo se
repitiera muchas veces? Explique.
(a) 8212 (b) 4100 (c) 24 684

8. La cantidad de espacio en disco que debe estar


disponible para el almacenamiento de pginas est
relacionada con el nmero mximo de procesos n,, el
nmero de bytes en el espacio de direcciones virtualv, as
como con el nmero de bytes de RAM r. Proporcione una
expresin para los requerimientos de espacio en disco en
el peor de los casos. Qu tan realista es esa cantidad?
El espacio de direcciones virtuales total para todos los
procesos combinados es por lo que este nv Se necesita tanto
espacio para las pginas. Sin embargo una cantidad r puede
estar en memoria RAM, por lo la cantidad de almacenamiento
en disco necesario es solamente nv - r. Esta cantidad es mucho
ms que alguna vez se necesita en la prctica porque rara vez
se habr n procesos realidad correr y todos ellos an ms
raramente necesitar el mximo permitido memoria virtual.
9. Una mquina tiene un espacio de direcciones de 32 bits
y una pgina de 8 KB. La tabla de pginas est
completamente en el hardware, con una palabra de 32 bits
por cada entrada. Cuando se inicia un proceso, la tabla de
pginas se copia al hardware desde la memoria, una
palabra por cada 100 nseg. Si cada proceso se ejecuta
durante 100 mseg (incluyendo el tiempo para cargar la
tabla de pginas), qu fraccin del tiempo de la CPU se
dedica a cargar las tablas de pginas?
Un error de pgina cada k instrucciones aade una sobrecarga
adicional de n / k microsegundos a la promedio, por lo que la
instruccin tiene en promedio 10 + n / k ns.

10. Suponga que una mquina tiene direcciones virtuales


de 48 bits y direcciones fsicas de 32 bits.
a) Si las pginas son de 4 KB, Cuntas entradas hay en la
tabla de pginas si slo hay un nivel?
Explique.
b) Suponga que el mismo sistema tiene un TLB (Bfer de
traduccin adelantada) con 32 entradas.
Adems, suponga que un programa contiene
instrucciones que caben en una pgina y lee
secuencialmente
elementos enteros largos de un arreglo que abarca miles
de pginas. Qu tan efectivo ser el TLB para este caso?
La tabla de la pgina contiene 232/213 entradas, lo cual es
524.288. Cargando la pgina mesa de toma 52 ms. Si un
proceso obtiene 100 mseg, este consta de 52 mseg para la
carga de la tabla de pginas y 48 ms para correr. Por lo tanto
52 por ciento del tiempo se gasta tablas de pginas de carga.

11. Suponga que una mquina tiene direcciones virtuales


de 38 bits y direcciones fsicas de 32 bits.
a) Cul es la principal ventaja de una tabla de pginas de
multinivel sobre una tabla de pginas de
un solo nivel?
b) Con una tabla de pginas de dos niveles, pginas de 16
KB y entradas de 4 bytes, cuntos bits
se deben asignar para el campo de la tabla de pginas de
nivel superior y cuntos para el campo de
la tabla de pginas del siguiente nivel? Explique.
Veinte bits se utilizan para los nmeros de pgina virtual,
dejando 12 encima para la compensar. Esto produce una
pgina de 4 KB. Veinte bits para la pgina virtual implica 220
pginas

12. Una computadora con una direccin de 32 bits utiliza


una tabla de pginas de dos niveles. Las direcciones
virtuales se dividen en un campo de la tabla de pginas de
nivel superior de 9 bits, un campo de la tabla de pginas
de segundo nivel de 11 bits y un desplazamiento. Qu tan
grandes son las pginas y cuntas hay en el espacio de
direcciones?

13. Suponga que una direccin virtual de 32 bits se divide


en cuatro campos: a, b, c y d. Los primeros tres se utilizan
para un sistema de tablas de pginas de tres niveles. El
cuarto campo (d) es el desplazamiento.
Depende el nmero de pginas de los tamaos de los
cuatro campos? Si no es as, cules importan y cules
no?
El nmero de pginas depende del nmero total de bits en a,
b, y C combinadas. La forma en que se dividen entre los
campos, no importa.

14. Una computadora tiene direcciones virtuales de 32 bits


y pginas de 4 KB. El programa y los datos caben juntos
en la pgina ms baja (0 a 4095). La pila cabe en la pgina
ms alta. Cuntas entradas se necesitan en la tabla de
pginas si se utiliza la paginacin tradicional (un nivel)?
Cuntas entradas en la tabla de pginas se necesitan
para la paginacin de dos niveles, con 10 bits en cada
parte?
Para una tabla de pginas de un solo nivel, hay 232/212 o
pginas 1M necesario. Por lo tanto, la tabla de pginas debe
tener entradas 1M. Para paginacin de dos niveles, la tabla
principal de la pgina tiene 1K entradas, cada una de las cuales
apunta a una segunda tabla de pginas. Slo dos de estos se
utilizan. Por lo tanto en total slo se necesitan tres entradas de
la tabla de pginas, una en la tabla de nivel superior y uno en
cada una de las tablas de nivel inferior.

15. Una computadora cuyos procesos tienen 1024 pginas


en sus espacios de direcciones mantiene sus tablas de
pginas en memoria. La sobrecarga requerida para leer
una palabra de la tabla de pginas es 5 nseg. Para reducir
esta sobrecarga, la computadora tiene un TLB que
contiene 32 pares (pgina
virtual, marco de pgina fsica) y puede realizar una
bsqueda en 1 nseg. Qu proporcin de aciertos necesita
para reducir la sobrecarga promedio a 2 nseg?
El tiempo de instruccin efectiva es 1h + 5 (1 - h), donde h es
la tasa de xito. Si nosotros equiparar esta frmula con 2 y
resolver para h, nos encontramos con que h debe ser al menos
0.75.

16. El TLB en la VAX no contiene un bit R. Por qu?


El R bits no es necesario en la TLB. La mera presencia de una
pgina que hay significa que la pgina se ha hecho referencia;
de lo contrario, no estara all. As el bit es completamente
redundante. Cuando la entrada se vuelve a escribir en la
memoria, Sin embargo, el bit R en la tabla de pginas de
memoria est colocada.

17. Cmo puede implementarse en hardware el


dispositivo de memoria asociativa necesario para
implementar una TLB y cules son las implicaciones de
dicho diseo para que sea expandible?
Una memoria asociativa compara esencialmente una clave
para el contenido de varios registra simultneamente. Para
cada registro tiene que haber un conjunto de comparadores se
compara cada bit en el contenido del registro a la clave que se
busca. El nmero de puertas (o transistores) necesarios para
poner en prctica un dispositivo de este tipo es una funcin
lineal del nmero de registros, por lo que la expansin de la
diseo consigue caro linealmente.

18. Una mquina tiene direcciones virtuales de 48 bits y


direcciones fsicas de 32 bits. Las pginas son de 8 KB.
Cuntas entradas se necesitan para la tabla de pginas?
Con pginas de 8 KB y un espacio virtual de direcciones de 48
bits, el nmero de virtuales pginas es 248/213, que es de 235
(aproximadamente 34 millones de dlares).

19. Una computadora con una pgina de 8 KB, una


memoria principal de 256 KB y un espacio de direcciones
virtuales de 64 GB utiliza una tabla de pginas invertida
para implementar su memoria virtual. Qu tan grande
debe ser la tabla de hash para asegurar una cadena de
hash de una longitud
promedio menor a 1? Suponga que el tamao de la tabla
de hash es una potencia de dos.
La memoria principal tiene 228/213 = 32.768 pginas. Una
tabla hash 32K tendr una la longitud media de la cadena de
1. Para empezar 1, tenemos que ir al siguiente tamao, 65.536
entradas. La difusin de 32.768 entradas ms de 65.536
ranuras de mesa dar una longitud de cadena de 0,5, lo que
garantiza las operaciones de bsqueda rpida significar

20. Un estudiante en un curso de diseo de compiladores


propone al profesor un proyecto de escribir un compilador
que produzca una lista de referencias a pginas que se
puedan utilizar para implementar el algoritmo de
reemplazo de pginas ptimo. Es esto posible? Por qu
s o por qu no? Hay algo que pudiera hacerse para
mejorar la eficiencia de la paginacin en tiempo de
ejecucin?
Esta es, probablemente, no sea posible, excepto para el caso
poco comn y no muy til de un programa cuyo curso de
ejecucin es completamente predecible durante la compilacin
hora. Si un compilador recoge informacin acerca de las
ubicaciones en el cdigo de Las llamadas a procedimientos,
esta informacin podra ser utilizada en tiempo de enlace para
reordenar el cdigo objeto para los procedimientos se
encuentran cerca del cdigo que los llama. Esto hara ms
probable que un procedimiento sera en la misma pgina como
el cdigo de llamada. Por supuesto, esto no ayudara mucho
para los procedimientos de llamadas desde muchos lugares en
el programa.

21. Suponga que el flujo de referencia de pginas virtuales


contiene repeticiones de largas secuencias de referencias
a pginas, seguidas ocasionalmente por una referencia a
una pgina aleatoria. Por ejemplo,
la secuencia 0, 1, , 511, 431, 0, 1, , 511, 332, 0, 1,
consiste en repeticiones de la secuencia 0, 1, , 511
seguida de una referencia aleatoria a las pginas 431 y 332.
a) Por qu no seran efectivos los algoritmos de
sustitucin estndar (LRU, FIFO, Reloj) al manejar esta
carga de trabajo para una asignacin de pgina que sea
menor que la longitud de la secuencia?
b) Si a este programa se le asignaran 500 marcos de
pgina, describa un mtodo de sustitucin de pgina que
tenga un rendimiento mucho mejor que los algoritmos
LRU, FIFO o Reloj.
. La memoria verdadera utiliza direcciones fsicas. Estos son
los nmeros que las chips de memoria reaccionan a en el
autobs. direcciones virtuales son las direcciones lgicas que
se refieren a un espacio de direcciones del proceso '. As, una
mquina con una palabra de 16 bits puede generar direcciones
virtuales hasta 64 KB, independientemente de si la mquina
tiene ms o menos memoria de 64 KB.

22. Si se utiliza el algoritmo FIFO de reemplazo de pginas


con cuatro marcos de pgina y ocho pginas, cuntos
fallos de pgina ocurrirn con la cadena de referencia
0172327103 si los cuatro marcos estn vacos al principio?
Ahora repita este problema para el algoritmo LRU.
Los marcos de pgina para FIFO son los siguientes:
x0172333300 xx017222233 xxx01777722 xxxx0111177 Los
marcos de pgina de LRU son los siguientes: x0172327103
xx017232710 xxx01773271 xxxx0111327 FIFO produce fallos
de pgina 6; LRU produce 7.

23. Considere la secuencia de pginas de la figura 3-15(b).


Suponga que los bits R para las pginas de laB a la A son
11011011, respectivamente, Cul pgina eliminar el
algoritmo de segunda oportunidad?
La primera pgina con un 0 bit ser elegido, en este caso D.

24. Una pequea computadora tiene cuatro marcos de


pgina. En el primer pulso de reloj, los bits R son
0111 (la pgina 0 es 0, el resto son 1). En los siguientes
pulsos de reloj, los valores son 1011, 1010, 1101, 0010,
1010, 1100 y 0001. Si se utiliza el algoritmo de
envejecimiento con un contador de 8 bits, proporcione los
valores de los cuatro contadores despus del ltimo
pulso.
Los contadores se
Pgina 0: 0110110
Pgina 1: 01001001
Pgina 2: 00110111
Pgina 3: 10001011

25. D un ejemplo simple de una secuencia de referencias


a pginas en donde la primera pgina seleccionada para la
sustitucin sea diferente para los algoritmos de reemplazo
de pginas de reloj y LRU. Suponga que a un proceso se
le asignan 3 marcos y que la cadena de referencia contiene
nmeros de pgina del conjunto 0, 1, 2, 3.
La primera pgina con R = 0 y la edad> ser elegido. Dado
que la exploracin se inicia en la parte inferior, la primera
pgina (1620) es desalojado.

26. En el algoritmo WSClock de la figura 3-21(c), la


manecilla apunta a una pgina con R _ 0. Si _ 400, se
eliminar esta pgina? Qu pasa si _ 1000?
La edad de la pgina es 2204-1213 = 991. Si = 400, que es
definitivamente fuera del conjunto de trabajo y no se hace
referencia recientemente por lo que ser desalojado. Los =
1000 la situacin es diferente. Ahora, la pgina se inscribe en
el conjunto de trabajo (Apenas), por lo que no se quita.

27. Cunto tiempo se requiere para cargar un programa


de 64 KB de un disco cuyo tiempo de bsqueda promedio
es de 10 mseg, cuyo tiempo de rotacin es de 10 mseg y
cuyas pistas contienen 32 KB
a) para un tamao de pgina de 2 KB?
b) para un tamao de pgina de 4 KB?
Las pginas estn esparcidas de manera aleatoria
alrededor del disco y el nmero de cilindros es tan grande
que la probabilidad de que dos pginas se encuentren en
el mismo cilindro es insignificante.
El buscan ms la latencia de rotacin es de 20 ms. Para las
pginas de 2 KB, la transferencia tiempo es de 1,25 ms, para
un total de 21,25 mseg. Cargando 32 de estas pginas tomar
680 ms. Para las pginas de 4 KB, el tiempo de transferencia
se duplica a 2,5 ms, por lo el tiempo total por pgina es de
22,50 ms. Cargando 16 de estas pginas lleva 360 mseg.

28. Una computadora tiene cuatro marcos de pgina. El


tiempo de carga, tiempo del ltimo acceso y los
bitsR y M para cada pgina se muestran a continuacin
(los tiempos estn en pulsos de reloj):
Pgina Cargada ltima referencia R M
0 126 280 1 0
1 230 265 0 1
2 140 270 0 0
3 110 285 1 1
a) Cul pgina reemplazar el algoritmo NRU?
b) Cul pgina reemplazar el algoritmo FIFO?
c) Cul pgina reemplazar el algoritmo LRU?
d) Cul pgina reemplazar el algoritmo de segunda
oportunidad?
NRU elimina la pgina 2. FIFO elimina la pgina 3. LRU quita
pgina 1. Segundo oportunidad elimina la pgina 2.

29. Considere el siguiente arreglo bidimensional:


int X[64][64]; Suponga que un sistema tiene cuatro marcos
de pgina y que cada marco es de 128 palabras (un entero
ocupa una palabra). Los programas que manipulan el
arreglo X caben exactamente en una pgina y siempre
ocupan la pgina 0. Los datos se intercambian hacia
dentro y hacia fuera de los otros tres marcos. El arreglo X
se almacena en orden de importancia por filas (es decir,
X[0][1] va despus deX[0][0] en la memoria). Cul de los
dos fragmentos de cdigo que se muestran a continuacin
generarn el menor nmero de fallos de pgina? Explique
y calcule el nmero total de fallos
de pgina.
Fragmento A
for (int j _ 0; j < 64; j__)
for (int i _ 0; i < 64; i__) X[i][j] _ 0;
Fragmento B
for (int i _ 0; i < 64; i__)
for (int j _ 0; j < 64; j__) X[i][j] _ 0;
El programa est recibiendo 15.000 fallos de pgina, cada una
de las cuales utiliza 2 ms de supletoria Tiempo de
procesamiento. En conjunto, la sobrecarga error de pgina es
de 30 seg. Esto significa la del 60 seg utilizado, la mitad se
destin a la sobrecarga de error de pgina, y la mitad de
ejecutar el programa. Si ejecutamos el programa con el doble
de memoria, nos obtener la mitad de los errores de pgina de
memoria, y slo 15 segundos de la cabeza fallo de pgina, por
lo que la tiempo total de ejecucin ser de 45 seg. 35. Funciona
para el programa si el programa no puede ser modificado.
Funciona para el datos si los datos no se pueden modificar. Sin
embargo, es comn que el programa no se puede modificar y
extremadamente raro que los datos no se pueden modificar. Si
el rea de datos en el archivo binario se sobrescribe con
pginas actualizadas, el siguiente vez que se inici el
programa, que no tendra los datos originales.

30. Una de las primeras mquinas de tiempo compartido


(la PDP-1) tena una memoria de 4K palabras de 18 bits.
Contena un proceso a la vez en la memoria. Cuando el
planificador de proceso decida ejecutar otro proceso, el
proceso en memoria se escriba en un tambor de
paginacin, con 4K palabras de 18 bits alrededor de la
circunferencia del tambor, el cual poda empezar a escribir
(o leer) en cualquier palabra, en vez de hacerlo slo en la
palabra 0. Supone usted que este tambor fue
seleccionado?
. El PDP-1 tambor paginacin tena la ventaja de no latencia
rotacional. Esta guardado medio de una rotacin cada vez que
la memoria se escribe en el tambor.

31. Una computadora proporciona a cada proceso 65,536


bytes de espacio de direcciones, dividido en pginas de
4096 bytes. Un programa especfico tiene un tamao de
texto de 32,768 bytes, un tamao de datos de 16,386 bytes
y un tamao de pila de 15,870 bytes. Cabr este programa
en el espacio de direcciones? Si el tamao de pgina fuera
de 512 bytes, cabra? Recuerde que una pgina no puede
contener partes de dos segmentos distintos.
El texto es de ocho pginas, los datos son cinco pginas, y la
pila es de cuatro pginas. El programa no encaja porque
necesita 17 pginas de 4096 bytes. Con un 512- pgina byte,
la situacin es diferente. Aqu el texto es de 64 pginas, los
datos son 33 pginas, y la pila es de 31 pginas, para un total
de 128 pginas de 512 bytes, que se ajusta. Con el tamao de
la pgina pequea, est bien, pero no con la grande.
32. Puede una pgina estar en dos conjuntos de trabajo
al mismo tiempo? Explique.
Es posible. Suponiendo que la segmentacin no est presente,
la informacin de proteccin debe estar en la tabla de pginas.
Si cada proceso tiene su propia tabla de pginas, cada una uno
tambin tiene sus propios bits de proteccin. Ellos podran ser
diferentes.

33. Se ha observado que el nmero de instrucciones


ejecutadas entre fallos de pgina es directamente
proporcional al nmero de marcos de pgina asignados a
un programa. Si la memoria disponible se duplica, el
intervalo promedio entre los fallos de pgina tambin se
duplica. Suponga que una instruccin normal requiere 1
microsegundo, pero si ocurre un fallo de pgina, requiere
2001 seg (es decir, 2 mseg para hacerse cargo del fallo).
Si un programa requiere 60 segundos para ejecutarse,
tiempo durante el cual obtiene 15,000 fallos de pgina,
cunto tiempo requerira para ejecutarse si
hubiera disponible el doble de memoria?
Si las pginas se pueden compartir, s. Por ejemplo, si dos
usuarios de un sistema de tiempo compartido ejecutan el
mismo editor, al mismo tiempo y el texto del programa es
compartida en lugar de copiar, algunas de esas pginas
pueden estar en trabajo de cada usuario establecer al mismo
tiempo.
34. Un grupo de diseadores de sistemas operativos para
la Compaa de Computadoras Frugal estn ideando
maneras de reducir la cantidad de almacenamiento de
respaldo necesario en su nuevo sistema operativo. El jefe
de ellos ha sugerido que no se deben preocupar por
guardar el texto del programa en el rea de intercambio,
sino slo paginarla directamente desde el archivo binario
cada vez que se necesite. Bajo qu condiciones, si las
hay, funciona esta idea para el texto del programa? Bajo
qu condiciones, si las hay, funciona para los datos?
Funciona para el programa si el programa no puede ser
modificado. Funciona para el datos si los datos no se pueden
modificar. Sin embargo, es comn que el programa no se
puede modificar y extremadamente raro que los datos no se
pueden modificar. Si el rea de datos en el archivo binario se
sobrescribe con pginas actualizadas, el siguiente vez que se
inici el programa, que no tendra los datos originales.

35. Una instruccin en lenguaje mquina para cargar una


palabra de 32 bits en un registro contiene la direccin de
32 bits de la palabra que se va a cargar. Cul es el nmero
mximo de fallos de pgina que puede provocar esta
instruccin?
La instruccin podra estar montado en un lmite de pgina,
causando dos fallos de pgina justo se ha podido recuperar la
instruccin. La palabra descabellada tambin podra abarcar
un lmite de pgina, la generacin de dos faltas ms, para un
total de cuatro. Si las palabras deben estar alineados en la
memoria, la palabra de datos puede causar slo una falta, sino
una instruccin para cargar una palabra de 32 bits en la
direccin 4094 en una mquina con una pgina de 4 KB es
legal en algunas mquinas (incluyendo el Pentium).

36. Cuando se utilizan la segmentacin y la paginacin,


como en MULTICS, primero se debe buscar el descriptor
del segmento y despus el descriptor de pgina.
Funciona el TLB tambin de esta manera, con dos niveles
de bsqueda?
fragmentacin interna se produce cuando la ltima unidad de
asignacin no es completa. Externo la fragmentacin se
produce cuando se desperdicia espacio entre dos unidades
de asignacin. En un sistema de paginacin, el espacio
perdido en la ltima pgina se pierde a la fragmentacin
interna. En un sistema de segmentacin pura, algo de
espacio se pierde invariablemente entre los segmentos. Esto
es debido a la fragmentacin externa