Cuestionario 1
1. 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.
2. 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.
3. 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.
4. La idea 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 finales 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 con 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.
5. 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
6. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. 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.
12. 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.
13. Qu es una instruccin de trap? Explique su uso en los sistemas
operativos.
el trap se usa para transferir el control al sistema operativo
14. 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.
15. 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.
16. 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.
17. 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.
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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.
25. 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.
26. 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.
27. 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.
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.
29. 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?
30. 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 {
}
}
31. 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