• No se han encontrado resultados

Andrew S. Tanenbaum - Sistemas Operativos Modernos 2º Edición Solucionario

N/A
N/A
Protected

Academic year: 2021

Share "Andrew S. Tanenbaum - Sistemas Operativos Modernos 2º Edición Solucionario"

Copied!
65
0
0

Texto completo

(1)

MODERNO

SISTEMAS

OPERATIVO

S

SEGUNDA

EDICIÓN

SOLUCIONES DE PROBLEMA

ANDREW S. TANENBAUM

Vrije Universiteit Amsterdam, los Países Bajos

PRENTICE HALL RÍO DE SILLA SUPERIOR, NJ 07458

(2)

SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 1 1. Un sistema operativo debe proveer a los usuarios de un ampliado (es decir, virtual)

máquina, y esto debe manejar los dispositivos de entrada - salida y otros recursos de sistema.

2. La multiprogramación es la conmutación rápida de la CPU entre procesos

múltiples en la memoria. Esto comúnmente es usado para guardar la CPU ocupada mientras un

o más procesos hacen la entrada - salida.

3. La bobinación de entrada es la técnica de lectura en empleos, por ejemplo, de

naipes, en el disco, de modo que cuando los procesos que ejecutan actualmente son terminados, haya trabajo que espera la CPU. La bobinación de salida consiste en primeros archivos imprimibles que copian al disco antes de imprimirlos, más bien que imprimir directamente cuando la salida es generada. La bobinación de entrada en un ordenador personal no es muy probable, pero la bobinación de salida es.

4. La razón principal de la multiprogramación es dar la CPU algo para hacer

esperando entrada - salida a completar. Si no hay ningún DMA, la CPU es totalmente occu-de varios colores haciendo la entrada - salida, así no hay nada para ser ganado (al menos en términos de CPU utili-zation) multiprogramando. No importa cuanto entrada - salida un programa hace, la CPU estará el 100 por ciento ocupada. Este por supuesto asume que la tardanza principal es esperar mientras los datos son copiados. Una CPU podría hacer otro trabajo si la entrada - salida fuera lenta por otros motivos (llegando en una línea consecutiva, por ejemplo).

5. Los segundos ordenadores de generación no tenían el hardware necesario para

proteger el sistema operativo de programas de usuario malévolos.

6. Está todavía vivo. Por ejemplo , Intel hace el Pentium I, II, e III, y 4 CPUs

con una variedad de propiedades diferentes incluso consumo de poder y velocidad. Todas estas máquinas son arquitectónicamente compatibles. Ellos se diferencian sólo en precio e interpretación, que es la esencia de la idea de familia.

7. 25 ´80 carácter pantalla de texto monocroma requieren un parachoques de 2000 bytes. El

1024 ´768 mapa de bit de color de 24 trozos de pixel requieren 2,359,296 bytes. En 1980 estas dos opciones habrían costado 10 dólares y 11,520 dólares, respectivamente. Para precios corrientes, compruebe en cuanta RAM actualmente cuesta, probablemente menos que 1 $/MB.

8. Las opciones (a), (c), (y d) deberían ser restringidas al modo de grano.

9. Los sistemas de ordenador personal son siempre interactivos, a menudo con sólo

un usuario solo. Los sistemas de ordenador central casi siempre enfatizan la hornada o el tiempo compartido con muchos usuarios. La protección es mucho más de una cuestión en sistemas de ordenador central, como es el uso eficiente de todos los recursos.

10. Cada nanosegundo una instrucción surge de la tubería. Este significa que la

máquina ejecuta 1 mil millones de instrucciones por segundo. Esto no importa en

(3)

que importa es con que frecuencia unas instrucciones terminadas hacen reventar el final de la tubería.

11. El manuscrito contiene 80 ´50 ´700 = 2.8 millones de caracteres. Este es, por supuesto, imposible de caber en los registros de cualquier CPU actualmente disponible y

es demasiado grande para un escondite de 1 MB, pero si tal hardware estuviera disponible, el manuscrito podría ser explorado en 2.8 msec de los registros o 5.8 msec del escondite. Hay aproximadamente 2700 bloques de 1024 bytes de datos, entonces la exploración - ning del disco requeriría aproximadamente 27 segundos, y de la cinta 2 minutos 7 segundos. Por supuesto, estos tiempos deben leer sólo los datos. El procesamiento y volver a escribir los datos aumentaría el tiempo.

12. Lógicamente, esto no importa si el registro de límite usa una dirección virtual o

una dirección física. Sin embargo, la interpretación del antiguo es mejor. Si las direcciones virtuales son usadas, la adición de la dirección virtual y el registro bajo puede comenzar simultáneamente con la comparación y luego puede correr en la paralela. Si las direcciones físicas son usadas, la comparación no puede comenzar hasta que la adición sea completa, aumentando el tiempo de acceso.

13. Tal vez. Si el visitante recupera el control e inmediatamente superpone los

datos, cuando escribir finalmente ocurre, los datos incorrectos serán escritos. Sin embargo, si el conductor primeras copias los datos a un parachoques privado antes de devolver, entonces al visitante pueden permitirle seguir inmediatamente. Otra posibilidad es permitir que el visitante siga y le dé una señal cuando el parachoques puede ser reutilizado, pero este

es complicado y susceptible de errores.

14. Una trampa es causada por el programa y es sincrónica con ello. Si el programa

es dirigido una y otra vez, la trampa siempre ocurrirá en exactamente la misma posición en la corriente de instrucción. Interrumpir es causado por un acontecimiento externo y su cronometraje no es reproductivo.

15. Base = 40,000 y límite = 10,000. Una respuesta de límite = 50,000 es incorrecta

para el modo que el sistema fue descrito en este libro. Esto podría haber sido imple-mented aquel camino, pero haciendo tan habría requerido la espera hasta la dirección

+ el cálculo bajo fue completado antes de comenzar el control de límite, así reducir la marcha - ing abajo el ordenador.

16. La mesa de proceso es necesaria para almacenar el estado de un proceso que es

suspendido actualmente, listo o bloqueado. No es necesario en un proceso solo sys-tem porque el proceso solo nunca es suspendido.

17. El montaje de un sistema de archivo hace cualquier archivo ya en el directorio de

punto de montaje inaccesible, entonces los puntos de montaje son normalmente vacíos. Sin embargo, un administrador de sistema podría querer copiar algunos archivos más i mpor ta nt es normalmente localizados en el directorio montado al punto de montaje entonces ellos podrían ser encontrados en su camino normal en una emergencia cuando el dispositivo montado estaba siendo comprobado o reparado.

(4)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 3

3

18. El tenedor puede fallar si no hay ningunas ranuras libres dejadas en la mesa de

proceso (y posiblemente si no hay ningún espacio de cambio o memoria dejado). El Exec puede fallar si el nombre de archivo dado no existe o no es un archivo ejecutable válido. Desate puede fallar si el archivo para ser desatado no existe o el proceso de vocación no tiene las autoridades para desatarlo.

19. Si la llamada falla, por ej e mpl o porque fd es incorrecto, esto puede devolver

-1. Esto también puede fallar porque el disco es lleno y no es posible escribir el número de bytes solicitados. En una terminación correcta, esto siempre devuelve nbytes.

20. Esto contiene los bytes: 1, 5, 9, 2.

21. Obstrúyase los archivos especiales consisten en bloques numerados, cada uno de

los cuales puede ser leído o escrito independientemente de todos los otros. Es posible buscar a cualquier bloque y comenzar a leer o escribir. Este no es posible con el carácter archivos especiales.

22. Las llamadas de sistema realmente no tienen nombres, además de en un sentido de

documentación.

Cuando el procedimiento de biblioteca leyó trampas al grano, esto pone el número de la llamada de sistema en un registro o en la pila. Este número está acostumbrado al índice en una mesa. No hay realmente ningún nombre usado en ninguna parte. Por otra parte, el nombre

de la biblioteca el procedimiento es muy importante, ya que es lo que aparece en el programa.

23. Sí esto puede, sobre todo si el grano es un sistema que pasa mensaje.

24. Por lo que la lógica de programa está preocupada esto no importa si una llamada a

un procedimiento de biblioteca causa una llamada de sistema. Pero si la interpretación es una cuestión, si una tarea puede ser llevada a cabo sin una llamada de sistema el programa correrá más rápido. Cada llamada de sistema implica el tiempo elevado en la conmutación del contexto de usuario

al contexto de grano. Además, en un sistema multiusuario el funcionamiento sys-tem puede programar otro proceso para correr cuando una llamada de sistema completa, adelante reduciendo la marcha del progreso en tiempo real de un proceso de vocación.

25. Varias llamadas de UNIX no tienen a ningún homólogo en el Win32 API: Eslabón: un programa Win32 no puede referirse a un archivo por un nombre alterno o verlo en más de un directorio. También, el intento de crear un eslabón es un camino conveniente

probar para y crear una cerradura en un archivo.

Montaje y umount: un programa de Windows no puede hacer asunciones sobre nombres de camino estándares porque en sistemas c o n u ni d a de s d e di s c o múltiples la parte de nombre de paseo del camino puede ser diferente.

Chmod: los programadores de Windows tienen que asumir que cada usuario puede tener acceso a cada archivo.

Matanza: los programadores de Windows no pueden matar un programa de mal comportamiento que no coopera.

(5)

(a) Un año micro es 10-6 ´365 ´24 ´3600 31.536 segundos =. (b) 1000 metros o 1 kilómetro.

(c) Hay 240 bytes, que es 1,099,511,627,776 bytes. (d) Ello es 6 1024 kg ´.

SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 2 1. La transición de bloqueado al correr es concebible. Suponga que un proc-ess es

bloqueado en la entrada - salida y los fines de entrada - salida. Si la CPU es por otra parte ociosa, el proceso podría ir directamente de bloqueado al correr. La otra ausencia transi-tion, de listo a bloqueado, es imposible. Un proceso listo no puede hacer la entrada - salida o algo más que podría bloquearlo. Sólo un proceso de correr puede obstruirse.

2. Usted podría tener un registro que contiene una aguja de la entrada de mesa de

proceso corriente. Cuando la entrada - salida completó, la CPU almacenaría el estado de máquina corriente

en la entrada de mesa de proceso corriente. Entonces esto iría al vector interrumpir para el dispositivo que interrumpe y traería una aguja de otra entrada de mesa de proceso (el procedimiento de servicio). Este proceso sería arrancado entonces.

3. Generalmente, las lenguas de alto nivel no permiten a un la clase de acceso a la CPU

el hardware que es requerido. Por ejemplo, pueden requerir a un tratante interrumpir permitir e incapacitar la revisión interrumpiré de un dispositivo particular, o a manipu-datos tardíos dentro del área de pila de un proceso. También, interrumpa las rutinas de servicio deben ejecutar tan rápidamente como posible.

4. Hay varios motivos de usar una pila separada para el grano. Dos de ellos son

como sigue. Primero, usted no quiere que el sistema operativo se estrelle porque un programa de usuario mal escrito no tiene bastante espacio de pila en cuenta. Segundo, si los datos de pila de hojas de grano en el espacio de memoria del programa de usuario sobre la vuelta de una llamada de sistema, un usuario malévolo podría ser capaz de usar estos datos

averiguar información sobre otros procesos.

5. Sería difícil, si no imposible, guardar el sistema de archivo consecuente.

Suponga que un proceso de cliente envía una petición al proceso de servidor 1 para actualizar un archivo. Este proceso actualiza la entrada de escondite en su memoria. Dentro de poco a partir de entonces, otro proceso de cliente envía una petición al servidor 2 para leer aquel archivo. El Unfor-tunately, si el archivo está también cached allí, servidor 2, en su inocencia, devolverá datos obsoletos. Si el primer proceso escribe el archivo por al disco después cach-ing ello, y servidor 2 controles el disco en cada leído para ver si su copia de cached es

actualizado, el sistema puede ser hecho para trabajar, pero es exactamente todo éstos el disco tiene acceso a esto el sistema caching trata de evitar.

(6)

6. Cuando un hilo es parado, esto tiene valores en los registros. Ellos deben ser

salvados, como cuando el proceso es parado los registros deben ser salvados. Los hilos de tiempo compartido son no diferentes que procesos de tiempo compartido, entonces cada hilo necesita su propio registro salvar el área.

7. No Si un proceso del modo solo enhebrado es bloqueado en el teclado, esto no puede

bifurcarse.

8. Un hilo de trabajador se obstruirá cuando esto tiene que leer una Página Web

del disco. Si los hilos de nivel del usuario están siendo usados, esta acción bloqueará el proceso entero, destruyendo el valor de multiensartamiento. Así es esencial que los hilos de grano sean usados para permitir a algunos hilos obstruirse sin afectar los demás.

9. Los hilos en un proceso cooperan. Ellos no son hostiles el uno al otro. Si la

producción - ing es necesaria para la bien de la aplicación, entonces un hilo cederá. Después de todo, esto es por lo general el mismo programador que escribe el código para todos ellos.

10. Los hilos de nivel del usuario no pueden ser adelantados por el reloj uless el

quántum del proceso entero ha sido consumido. Los hilos de nivel del grano pueden ser adelantados aliado individu-. En el caso último, si un hilo corre demasiado mucho tiempo , el reloj interrumpirá el proceso corriente y así el hilo corriente. El grano es libre de escoger un dif-ferent hilo del mismo proceso para correr después si esto así desea.

11. En el caso del modo solo enhebrado, los golpes de escondite toman 15 msec y escondite

que señoritas toman

90 msec. El promedio ponderado es 2 / 3 ´15 +1 / 3 ´90. Así la petición media toma 40 msec y el servidor puede hacer 25 por segundo. Para un mul-tithreaded servidor, toda la espera del disco es traslapada, entonces cada petición toma 15 msec, y el servidor puede manejar 66 peticiones de 2/3 por segundo.

12. Sí. Si el servidor es completamente la CPU ligada, no hay ninguna necesidad

de tener hilos múltiples. Esto sólo añade la complejidad innecesaria. Como un ejemplo, considere un número de ayuda de directorio de teléfono de tele-(como 555-1212) para un área con las 1 millón de personas. Si cada uno (nombre, número de teléfono) el registro es, supongamos, 64 caracteres, la base de datos entera toma 64 megabytes, y puede ser fácilmente guardada en la memoria del servidor para proporcionar la consulta rápida.

13. Las agujas son realmente necesarias porque el tamaño de la variable global es

desconocido. Podría ser algo de un carácter a una serie de números de punto flotante. Si el valor fuera almacenado, uno tendría que dar el tamaño para crear 3 global, que está bien, pero que tipo debería el segundo parámetro

¿del juego 3 global ser, y qué el tipo debería el valor de 3 leídos globales ser?

14. Podría resultar que el sistema de tiempo de ejecución está exactamente en el

punto de bloqueo o desbloqueo de un hilo, y es la manipulación ocupada de las colas de programación. Este sería un momento muy inoportuno para el reloj interrumpen al tratante para comenzar a inspeccionar aquellas colas para ver si esto era el tiempo para hacer la conmutación de hilo, ya que ellos podrían estar en un estado inconsecuente. Una solución es poner una bandera cuando el tiempo de ejecución - el sistema es entrado. El tratante de reloj vería este y pondría su propia bandera,

(7)

comprobaría la bandera de reloj, ver que un reloj interrumpa ocurrió, y ahora dirigió al tratante de reloj.

15. Sí es posible, pero ineficaz. Un hilo que quiere hacer un sistema llama primeros

juegos un temporizador despertador, luego hace la llamada. Si la llamada se obstruye, el control de vueltas de temporizador al paquete de hilos. Por supuesto, la mayor parte del tiempo que la llamada no bloqueará, y el temporizador tiene que ser limpiado. Así cada llamada de sistema que podría obstruirse tiene que ser ejecutada como tres llamadas de sistema. Si los temporizadores se marchan prematuramente,

todas las clases de problemas pueden desarrollarse. Este no es un modo atractivo de construir un paquete de hilos.

16. El problema de inversión de prioridad ocurre cuando un proceso de prioridad

baja está en su región crítica y de repente un proceso prioritario se hace listo y es programado. Si esto usa la espera ocupada, esto correrá para siempre. Con hilos de nivel del usuario, no puede resultar que un hilo de prioridad baja sea de repente adelantado para permitir un hilo prioritario dirigido. No hay ninguna prioridad de compra. Con los hilos de nivel del grano este problema puede levantarse.

17. Cada hilo llama procedimientos solo, entonces esto debe tener su propia pila

para las variables locales, direcciones de vuelta, etcétera. Este es igualmente verdadero para hilos de nivel del usuario en cuanto a hilos de nivel del grano.

18. Una condición de raza es una situación en la cual dos (o más) los procesos

están a punto de realizar un poco de acción. Según el cronometraje exacto, un o el otro va primero. Si uno de los procesos va primero, todo trabaja, pero si e l o t r o va primero, un error fatal ocurre.

19. Sí. El ordenador simulado podría ser multiprogramado. Por ejemplo, mientras

el proceso A corre, esto lee en voz alta alguna variable compartida. Entonces un simu-lated reloj hace tictac pasa y proceso B carreras. Esto también lee en voz alta el mismo vari-capaz. Entonces esto añade 1 a la variable. Cuando tratan unas carreras, si esto también añade el que

a la variable, tenemos una condición de raza.

20. Sí, esto todavía trabaja, pero esto todavía es la espera ocupada, por supuesto. 21. Esto seguramente trabaja con la programación de prioridad. De hecho, fue

diseñado para aquel caso. Cuando la programación es no prioridad, esto podría fallar. Considere el caso en el cual la vuelta es al principio 0, pero proceso 1 carreras primero. Esto va a sólo el lazo para siempre - y nunca liberar la CPU.

22. Sí esto puede. La palabra de memoria es usada como una bandera, con 0 sentido

que nadie usa las variables críticas y 1 sentido que alguien los usa. A puesto 1 en el registro, y cambia la palabra de memoria y el registro. Si el registro contiene 0 después de que el cambio, el acceso ha sido concedido. Si esto contiene 1, el acceso ha sido negado. Cuando un proceso es hecho, esto almacena a 0 en la bandera en memoria.

(8)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 7

3

23. Para hacer una operación de semáforo, el sistema operativo primero incapacita interrumpe.

Entonces esto lee el valor del semáforo. Si esto hace un abajo y el sema-el phore es igual al cero, esto pone el proceso de vocación a una lista de procesos bloqueados asociados con el semáforo. Si esto hace un, esto debe comprobar para ver si proceso es bloqueado en el semáforo. Si uno o varios procesos son bloqueados, uno de entonces es quitado de la lista de procesos bloqueados y hecho runnable. Cuando todas estas operaciones han sido completadas, interrumpe puede ser permitido otra vez.

24. Asociado con cada semáforo que cuenta son dos semáforos binarios, M, usado

para la exclusión mutua, y B, usado para el bloqueo. También asociado con cada semáforo que cuenta es un contador que sostiene el número de ups

menos el número de colinas, y una lista de procesos bloqueados en aquel semáforo. Poner en práctica abajo, un proceso primeras ganancias acceso exclusivo a los semáforos, contador, y lista por hacer un abajo en M. Ello entonces decrementos el contador. Si ello

es el cero o más, esto sólo hace un en M y salidas. Si el M es negativo, el proc-ess es puesto a la lista de procesos bloqueados. Entonces es hecho en el M y abajo es hecho en B para bloquear el proceso. Para poner en práctica, el primer

M es derribado

para conseguir la exclusión mutua, y luego el contador es incrementado. Si es más que el cero, n a di e fue bloqueado, entonces todo que tiene que ser hecho es a en lo alto del M. Si, sin embargo, el contador es negativo ahora o cero, un

poco de proceso debe ser quitado de la lista. Finalmente, es hecho en B y M en aquella orden.

25. Si el programa funciona en fases y ningún proceso puede entrar en la siguiente

fase hasta que ambos sean terminados con la fase corriente, hace el sentido perfecto de usar una barrera.

26. Con retorno al punto de origen que lo programa trabajos. Tarde o temprano el

L correrá, y aliado eventu-esto dejará su región crítica. El punto es, con la

programación de prioridad, L nunca consigue correr en absoluto; con el retorno al punto de origen, esto consigue una rebanada de tiempo normal periodi-cally, entonces esto tiene la posibilidad para dejar su región crítica.

27. Con hilos de grano, un hilo puede obstruirse en un semáforo y el grano puede

dirigir algún otro hilo en el mismo proceso. Por consiguiente, no hay ningún problema usando semáforos. Con hilos de nivel del usuario, cuando bloques de hilo en un semáforo, el grano piensa el proceso entero es bloqueado y no lo dirige alguna vez otra vez. Por consiguiente, el proceso falla.

28. Es mu y c ar o poner en práctica. Cada vez cualquier variable que aparece en un

predicado en el cual un poco de proceso espera cambios, el sistema de tiempo de ejecución debe

revalue el predicado para ver si el proceso puede ser desbloqueado. Con el Hoare y monitores de Brinch Hansen, los procesos sólo pueden ser despertados en un sig-nal primitivo.

(9)

8

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 2 29. Los empleados se comunican pasando mensajes: órdenes, comida, y bolsos en

este caso. En términos de UNIX, los cuatro procesos están relacionados por tubos.

30. Esto no conduce a competir con condiciones (nada es perdido alguna vez), pero

esto es la espera con eficacia ocupada.

31. Si un filósofo se obstruye, los vecinos pueden ver más tarde que él tiene hambre

comprobando su estado, en la prueba, entonces él puede ser despertado cuando los tenedores están disponibles.

32. El cambio significaría que después de que un filósofo dejó de comer, ninguno

de sus vecinos podría ser elegido después. De hecho, ellos nunca serían elegidos. El sorbo - postura que el filósofo 2 terminó de comer. Él dirigiría la

prueba para filósofos 1 y 3, y ninguno sería comenzado, aunque tanto

tuvieran hambre como ambos tenedores estaban disponibles. El Similary, si el filósofo 4 terminara de comer, filósofo 3 no sería comenzado. Nada le comenzaría.

33. Variación 1: los lectores tienen la prioridad. Ningún escritor puede comenzar

cuando un lector es activo. Cuando un nuevo lector aparece, esto puede comenzar inmediatamente a menos que un escritor sea activo actualmente. Cuando un escritor termina, si los lectores esperan, ellos son todos comenzados, sin tener en cuenta la presencia de escritores que esperan. Variación 2: los Escritores tienen la prioridad. Ningún lector puede comenzar cuando un escritor espera. Cuando el último proceso activo termina, un escritor es comenzado, si hay el que; por otra parte, todos los lectores (si alguno) son comenzados. Variación 3: versión simétrica. Cuando un lector es activo, los nuevos lectores pueden comenzar inmediatamente. Cuando un escritor termina, un nuevo escritor tiene la prioridad, si uno espera. En otras palabras, una vez que hemos comenzado a leer, seguimos leyendo hasta que no haya ningunos lectores abandonados. Del mismo modo, una vez que hemos comenzado a escribir, a todos los escritores pendientes les permiten correr.

34. Esto necesitará el segundo nT.

35. Si un proceso ocurre tiempos múltiples en la lista, esto conseguirá quántums

múltiples por ciclo. Este acercamiento podría ser usado para dar a procesos más importantes una parte más grande de la CPU. Pero cuando el proceso se obstruye, todas las entradas deberían ser quitadas de la lista de procesos de runnable.

36. En casos simples puede ser posible determinar si la entrada - salida será restrictiva

mirando código fuente. Por ejemplo un programa que lee todos sus archivos de entrada en parachoques en el principio no será probablemente la entrada - salida ligada, pero un problema que lee y escribe incrementalmente a varios archivos diferentes (como un com-piler) probablemente será la entrada - salida ligada. Si el sistema operativo proporciona una instalación como el UNIX

ps orden que puede decirle la cantidad del tiempo de CPU usado

por un programa, usted puede comparar este con el tiempo total para completar la ejecución de

el programa. Este es, por supuesto, el más significativo en un sistema donde usted es el único usuario.

37. Para procesos múltiples en una tubería, el padre común podría pasar a la

(10)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 9

3

el OS podría determinar, por ejemplo, qué proceso podría suministrar la salida a un proceso que se obstruye en una llamada a la entrada.

38. La eficacia de CPU es el tiempo de CPU útil dividido en el tiempo de CPU total.

Cuando Q ³T, el ciclo básico es para el proceso para correr a T y someterse a

un interruptor de proceso para S. Así (a) (y b) tienen una eficacia d e T / (S +T). Cuando el quántum es más corto que T, cada dirigido de T requerirá T / Q interruptores de proceso, gastando un tiempo SAN / Q. La eficacia aquí es

entonces

33333T3333 T +SAN /

Q

que reduce a Q / (Q +S), que es la respuesta (a c). Para (d), nosotros sólo sub -

stitute Q para S y hallazgo que la eficacia es el 50 por ci ent o . Finalmente, para (e), como

Q ®0 la eficacia va a 0.

39. El trabajo más corto primero es el modo de minimizar el tiempo de respuesta medio.

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.

40. Para el retorno al punto de origen, durante los 10 primeros minutos cada trabajo

consigue 1/5 de la CPU. Al final de 10 minutos, C fines. Durante los 8 minutos siguientes, cada trabajo se pone

1/4 de la CPU, después que tiempo D fines. Entonces cada uno de los tres permanece - ing empleos consigue 1/3 de la CPU durante 6 minutos, hasta B fines, etcétera. Los tiempos concluyentes para los cinco empleos son 10, 18, 24, 28, y 30, para un promedio de

22 minutos. Para la programación de prioridad, el B es dirigido primero. Después de 6 minutos es terminado. Los otros empleos terminan en 14, 24, 26, y 30, para un promedio de 18.8 minutos. Si los empleos corren en la orden un por E, ellos terminan en 10, 16, 18, 22, y 30, para un promedio de 19.2 minutos. Finalmente, el trabajo más corto primero cede tiempos concluyentes de 2, 6, 12, 20, y 30, para un promedio de 14 minutos.

41. La primera vez esto consigue 1 quántum. Logrando carreras se pone 2, 4, 8, y 15,

entonces

debe ser cambiado en 5 veces.

42. Un control podría ser hecho para ver si el programa esperaba la entrada e hizo

algo con ello. Un programa que no esperaba la entrada y no trató esto no conseguiría ningún aumento de prioridad especial.

43. La secuencia de predicciones es 40, 30, 35, y ahora 25.

44. La fracción de la CPU usada es 35/50 + 20/100 + 10/200 + x/250. Para ser

schedulable, este debe ser menos de 1. Así el x debe ser menos de 12.5 msec.

45. La programación de dos niveles es necesaria cuando la memoria es demasiado

pequeña para sostener todos los procesos listos. Algún juego de ellos es puesto en la memoria, y una opción es hecha

(11)

10

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 2

de aquel juego. De vez en cuando, el juego de procesos en corazón es ajustado. Este algoritmo es fácil para poner en práctica y razonablemente eficiente, seguramente muc ho me jor que dicen, retorno al punto de origen sin hacer caso de si un proceso estaba en la memoria o no.

46. El grano podría programar procesos por cualquier medio que esto desea, pero

dentro de cada proceso esto dirige hilos estrictamente en la orden de prioridad. Dejando al proceso de usuario ponen la prioridad de sus propios hilos, el usuario controla la política, pero el grano han-dles el mecanismo.

47. Una escritura de cáscara posible podría ser ¡si [! cuenta de números de-f; entonces resuene 0> números; fi count=0

¡mientras (prueban $count! = 200) hacer

la cuenta ='expr $count + 1 ‘ n = ‘tail los-1 números expr $n + 1>> números hechos

Dirija la escritura dos veces simultáneamente, comenzándolo una vez en el fondo (utilización y) y otra vez en el primer plano. Entonces examine los

números de archivo. Esto comenzará probablemente el pareciendo a una lista

ordenada de números, pero en algún punto esto perderá su orden, debido a la condición de raza creada dirigiendo dos copias de la escritura. La raza puede ser evitada teniendo cada copia de la prueba de escritura para y puso una cerradura en el archivo antes de entrar en el área crítica, y abrirlo para dejar el área crítica. Este puede ser hecho como este:

si números ln numbers.lock entonces

n = ‘tail los-1 números expr $n + 1>> números rm numbers.lock fi

Esta versión saltará sólo una vuelta cuando el archivo es inaccesible, la variante solu-tions podría poner el proceso para dormir, hacer la espera ocupada, o contar sólo lazos en los cuales la operación es acertada.

SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 3 1. En los Estados Unidos, considere una elección presidencial en la cual tres o más

candidatos a sp i r a n al nombramiento de algún partido. Después de todas las elecciones primarias

(12)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 3

11

son terminados, cuando los delegados l l e g a n a la convención de partido, esto podría la pluma hap-que ningún candidato tiene una mayoría y que ningún delegado quiere cambiar su voto. Este es un punto muerto. Cada candidato tiene algunos recursos (votos), pero tiene que más hacer el trabajo. En países con partidos de cal politi-múltiples en el parlamento, podría resultar que cada partido apoya un dif-ferent la versión del presupuesto anual y que es imposible reunir una mayoría para pasar el presupuesto. Este es también un punto muerto.

2. Si la impresora comienza a imprimir un archivo antes de que el archivo entero haya sido

recibido (este

a menudo es permitido a la respuesta de velocidad), el disco puede llenarse de otras peticiones que no pueden ser imprimidas hasta que el primer archivo sea hecho, pero que consumen el espacio de disco necesario

recibir el archivo actualmente imprimido. Si el programa de impresión no comienza a imprimir

un archivo hasta el archivo entero ha sido spooled esto puede rechazar una petición que es demasiado grande. El comienzo a imprimir un archivo es equivalente a reservar la impresora; si el reserva-tion es aplazado hasta que se conozca que el archivo entero puede ser recibido, un punto muerto del sistema entero puede ser evitado. El usuario con el archivo que no cabrá todavía es estancado por supuesto, y debe ir a otra instalación que por - mits imprenta de archivos más grandes.

3. La impresora es nonpreemptable; el sistema no puede comenzar a imprimir otro

trabajo hasta que el anterior sea completo. El disco de carrete es preemptable; usted puede suprimir un archivo incompleto que se pone de ma si a do gr a nde y hacer que el usuario lo envíe más tarde, asumiendo que el protocolo permite esto

4. Sí. No hace ninguna diferencia en absoluto.

5. Sí, los gráficos ilegales existen. Declaramos que un recurso sólo puede ser

sostenido por un proceso solo. Un arco de un cuadrado de recurso a un círculo de proceso indica que el proceso posee el recurso. Así un cuadrado con arcos que van de ello a dos o más procesos significa que todos aquellos procesos sostienen el recurso, que viola las reglas. Por consiguiente, cualquier gráfico en el cual arcos múltiples dejan un cuadrado y final en círculos diferentes viola las reglas. Los arcos de cuadrados a cuadrados o de círculos a círculos también violan las reglas.

6. Una parte de todos tales recursos podría ser reservada para el uso sólo por

procesos poseídos por el administrador, entonces él o ella siempre podrían dirigir una cáscara y pro - los gramos tenían que evaluar un punto muerto y tomar decisiones sobre cual procesos matar para hacer el sistema utilizable otra vez.

7. Ningún cambio conduce a llegar a un punto muerto. No hay ninguna circular esperan en

el uno o el otro caso.

8. El abandono voluntario de un recurso es el más similar a la recuperación por la

prioridad de compra. La diferencia esencial es que no se espera que procesos de ordenador solucionen tales problemas solos. La prioridad de compra es análoga al operador o el sistema operativo que interpreta cuando un policía, anulando los procesos de individuo de reglas normales obedece.

(13)

concebible que esto puede conseguir estos recursos, entonces esto nunca puede terminar, aun si ningunos otros procesos quieren algún recurso en absoluto.

10. Si el sistema tuviera dos o más CPUs, dos o más procesos podrían correr en la

paralela, conduciendo a trayectorias diagonales.

11. Sí. Haga todo el asunto en tres dimensiones. El z-eje mide el número de

instrucciones ejecutadas por el tercer proceso.

12. El método sólo puede s e r u s a d o para dirigir la programación si el instante

exacto en el cual un recurso va a ser reclamado es conocido de antemano. En la práctica, este

es raramente el caso.

13. Una petición de D es insegura, pero un de C es seguro.

14. Hay estados que no son, ni caja fuerte, ni estancado, pero que conducen a

estados estancados. Como un ejemplo, suponga que tenemos cuatro recursos: cintas, trazadores, exploradores, y CD-ROM, como en el texto, y tres procesos compet-ing para ellos. Podríamos tener la situación siguiente:

Tiene Necesidades Disponibl

e

A: 2 0 0 0 1 0 2 0 0 1 2 1

B: 1 0 0 0 0 1 3 1

C: 0 1 2 1 1 0 1 0

Este estado no es estancado porque muchas acciones todavía pueden ocurrir, para el

examen-ple, Una lata todavía consigue dos impresoras. Sin embargo, si cada proceso pide para su permanecer - ing exigencias, tenemos un punto muerto.

15. El sistema es el punto muerto libre. Suponga que cada proceso tiene un recurso.

Hay un recurso libre. El uno o el otro proceso puede pedirlo y conseguirlo, en cuyo caso esto puede terminar y liberar ambos recursos. Por consiguiente el punto muerto es imposible.

16. Si un proceso tiene el m recursos esto puede terminar y no puede estar

implicado en un punto muerto. Por lo tanto, el caso peor es donde cada proceso tiene el m -1 recursos y necesita el otro. Si hay un recurso dejado terminado, un proc-ess puede terminar y liberar todos sus recursos, dejando al fin de resto también. Allí - delantero la condición para evitar punto muerto es r ³p (m -1) +1.

17. El no D todavía puede terminar. Cuando esto termina, esto devuelve bastantes recursos

de permitir

E (o A) para terminar, etcétera.

18. Con tres procesos, cada uno puede tener dos paseos. Con cuatro procesos, la

distribución de paseos será (2, 2, 1, 1), permitiendo a los dos primeros procesos terminar. Con cinco procesos, la distribución será (2, 1, 1, 1, 1), que todavía permite que el primer termine. Con seis, cada posesión de una cinta conduce y quiere - ing el otro, tenemos un punto muerto. Así para n <6 el sistema es sin punto muerto.

(14)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 13

11

19. La comparación de una fila en la matriz al vector de recursos disponibles toma

el m operaciones. Este paso debe ser repetido en la orden de tiempos n de

encontrar un proc-ess que puede terminar y ser marcar como hecho. Así la marca de un proceso como hecho toma pasos de mn o la orden. La repetición del algoritmo para todos los procesos de n significa que el número de pasos es entonces mn 2.

20. Las necesidades matix son como sigue:

0 1 0 0 2 0 2 1 0 0 1 0 3 0 0 0 0 1 1 1

Si x es 0, tenemos un punto muerto inmediatamente. Si x es 1, el proceso D puede correr a la finalización. Cuando es terminado, el vector disponible es 1 1 2 2 1. Unfor-tunately somos estancados ahora. Si x es 2, después de que D carreras, el vector disponible es

1 1 3 2 1 y C puede correr. Después de que esto termina y devuelve sus recursos el provecho - el vector capaz es 2 2 3 3 1, que permitirá que B dirija y complete, y luego un para dirigir y complete. Por lo tanto, el valor más pequeño de x que evita un punto muerto es

2.

21. Sí. Suponga que todas las cajas son vacías. Ahora A envía a B y espera una

respuesta, el B envía a C y espera una respuesta, y C envía a A y espera una respuesta. Todas las condiciones para el punto muerto son realizadas ahora.

22. Suponga que tratan unas peticiones los archivos en la orden a, b, c. Si el

proceso B también pide un primer, uno de ellos se pondrá esto y el otro se obstruirán. Esta situación es siempre el punto muerto libre ya que el ganador puede correr ahora a la finalización sin la interferencia. De las otras cuatro combinaciones, unos pueden conducir a llegar a un punto muerto y unos son el punto muerto libre. Los seis casos son como sigue:

un b c llegue a un punto muerto liberan un c b punto muerto libre

b un c punto muerto posible b c un punto muerto posible c un b punto muerto posible c b un

punto muerto posible

Ya que cuatro de los seis pueden conducir a llegar a un punto muerto, hay una posibilidad de 1/3 de evitar un punto muerto y una posibilidad de 2/3 de conseguir el que.

23. El cierre de dos fases elimina puntos muertos, pero introduce el hambre potencial.

Un proceso tiene que seguir intentando y dejar de adquirir todos sus archivos. No hay superior ligado en cuanto esto puede tomar.

24. Evitar circular esperan, numeran los recursos (las cuentas) con sus números de

cuenta. Después de leer una línea de entrada, un proceso cierra con llave el inferior y numerado

(15)

14

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 3

considere primero, luego cuando esto consigue la cerradura (que puede implicar la espera), esto cierra con llave el otro. Ya que ningún proceso alguna vez espera una cuenta más abajo que lo que esto ya tiene, hay nunca una circular no esperan, de ahí nunca un punto muerto.

25. Cambie la semántica de solicitar un nuevo recurso c o mo si g u e . Si un proceso

pide un nuevo recurso y está disponible, esto consigue el recurso y se conserva que

esto ya tiene. Si el nuevo recurso no está disponible, todos los recursos existentes son liberados. Con este guión, el punto muerto es imposible y no hay ningún peligro que el nuevo recurso es adquirido pero los existentes perdidos. Por supuesto, el proc-ess sólo trabaja liberando un recurso es posible (usted puede liberar un explorador entre páginas o un registrador de CD entre CDs).

26. Yo le daría un F grado (que falla). ¿Qué hace el proceso? Ya que esto

claramente necesita el recurso, esto sólo pregunta otra vez y se obstruye otra vez. Este no es mejor que la permanencia bloqueado. De hecho, puede ser peor ya que el sistema puede guardar la pista de cuanto los procesos competidores han estado esperando y adjudican un recurso recién liberado al proceso que ha estado esperando el más largo. Por periódicamente finalizando e intentando otra vez, un proceso pierde su precedencia.

27. Si ambos programas piden el Altavoz para sonidos bajos primero, los

ordenadores pasarán hambre con el final - menos secuencia: solicite el Altavoz para sonidos bajos, anule la petición, solicite el Altavoz para sonidos bajos, anule la petición, etc. Si uno de ellos pide la perrera y el otro pide el perro, tenemos un punto muerto, que es descubierto por ambos partidos y luego roto, pero es repetido sólo en el siguiente ciclo. El camino, si ambos ordenadores han sido programados para ir después del perro o la perrera primero, hambre o punto muerto sigue. No hay realmente mucha diferencia entre los dos aquí. En la mayor parte de problemas de punto muerto, el hambre no parece seria porque intro-ducing tardanzas arbitrarias lo hará por lo general muy con poca probabilidad. Aquel acercamiento no trabaja aquí.

SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 4 1. La posibilidad que cuatro procesos sean ociosos es 1/16, entonces la CPU tiempo

ocioso es 1/16.

2. Si cada trabajo hace que la entrada - salida del 50 % espere, entonces esto

tomará 20 minutos para completar en ausencia del concurso. De ser dirigido secuencialmente, el segundo terminará 40 minutos después de las primeras ventajas de. Con dos empleos, la CPU aproximada utiliza-tion es 1 -0.52. Así cada uno consigue 0.375 minuto de CPU por minuto de tiempo real. Para acumular 10 minutos del tiempo de CPU, un trabajo debe correr a 10/0.375 minutos o aproximadamente 26.67 minutos. Así dirigiendo secuencialmente el fin de empleos después de 40 minutos, pero dirigiendo en la paralela ellos terminan después de 26.67 minutos.

3. Casi la memoria entera tiene que ser copiada, que requiere que cada palabra sea

leída y luego vuelto a escribir en una posición diferente. La lectura de 4 bytes toma 10 nsec,

(16)

la tan lectura de 1 byt e toma 2.5 nsec y escritura que esto toma otros 2.5 nsec, para un total de 5 nsec por byte comprimido. Este es un precio de

200,000,000 de bytes/segundos .

Para copiar 128 MB (227 bytes, que es aproximadamente 1.34 108 bytes ´), el ordenador necesita 227 / 200, 000, 000 segundos, que es aproximadamente

671 msec. Este número es ligeramente pesimista porque si el agujero inicial en el fondo de la memoria es bytes k, aquellos bytes k no tienen que ser copiados. Sin embargo, si hay muchos agujeros y muchos segmentos de datos, los agujeros serán pequeños entonces el k será pequeño y el error en el cálculo también será pequeño.

4. El mapa de bit necesita 1 trozo por unidad de asignación. Con 227 unidades de

asignación/n, este es

2 2 4 /n bytes. La lista unida tiene 227 / 216 o 211 nodos, cada uno de 8 bytes para

un total de 214 bytes. Para pequeño n, la lista unida es mejor. Para n grande, el trozo - el mapa es mejor. El punto de transición puede ser calculado comparando estas dos fórmulas y solucionando para n. El resultado es 1 KILOBYTE. Para n más pequeño que 1 KILOBYTE, una lista unida es mejor. Para n más grande que 1 KILOBYTE, un mapa de bit es mejor. Por supuesto, la asunción de segmentos y agujeros que alternan cada 64 KILOBYTES es muy poco realista. También, necesitamos n <= 64 KILOBYTES si los segmentos y los agujeros son 64 KILOBYTES.

5. Primero adecuado toma 20 KILOBYTES, 10 KILOBYTES, 18 KILOBYTES. Mejor

adecuado toma 12 KILOBYTES, 10 KILOBYTES, Y 9 KILOBYTES.

Peor adecuado toma 20 KILOBYTES, 18 KILOBYTES, Y 15 KILOBYTES. Después adecuado toma 20 KILOBYTES, 18 KILOBYTES, y 9

KILOBYTE.

6. La verdadera memoria usa direcciones físicas. Éstos son los números que los

chips de memoria reaccionan a en el autobús. Las direcciones virtuales son las direcciones lógicas que se refieren al espacio de dirección de un proceso. Así una máquina con una palabra 16 bites puede generar direcciones virtuales hasta 64 kilobyte , sin tener en cuenta si la máquina tiene más o menos la memoria que 64 KILOBYTES.

7. Ya que una página de 4 KILOBYTES ponen la talla el (página, compensan) los pares

son (4, 3616), (8, 0), (y 14,

2656). Ya que una página de 8 KILOBYTES ponen la talla ellos son (2, 3616), (4, 0), (7, 2656).

8. (a) 8212 (b) 4100 (c) 24684

9. Ellos construyeron un MMU y lo insertaron entre los 8086 y el autobús. Así todos

8086 direcciones físicas entraron en el MMU como direcciones virtuales. El MMU entonces trazado un mapa ellos en direcciones físicas, que fueron al autobús.

10. El espacio de dirección virtual total para todos los procesos combinados es nv

entonces este mucho almacenaje es necesario para páginas. Sin embargo una cantidad r puede estar en la RAM, entonces la cantidad del almacenaje de disco requerido es sólo nv -r. Esta cantidad es mu c ho má s que es

necesario alguna vez en la práctica porque raramente estará allí procesos de

n actu-correr de aliado y aún más raramente van a todos ellos necesitar que el

(17)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 5

11

11. Una falta de página cada instrucciones k añaden un suplementario arriba d e n / k

(18)

12. La mesa de página contiene 232 / 213 entradas, que es 524,288. La carga de la mesa de página toma 52 msec. Si un proceso consigue 100 msec, este consiste en 52 msec para cargar la mesa de página y 48 msec para el correr. Así el 52 por ciento del tiempo

es gastado cargando mesas de página.

13. Veinte trozos son usados para los números de página virtuales, dejando 12 para la

compensación. Este cede una página de 4 KILOBYTES. Veinte trozos para la página virtual implican 220 páginas.

14. El número de páginas depende del número total de trozos en a, b, y c com-bined.

Como ellos son partidos entre los campos no importa.

15. Para una mesa de página en un nivel, hay 232 / 212 o 1M páginas necesarias.

Así la mesa de página debe tener 1M entradas. Para la paginación de dos niveles, la mesa de página principal tiene entradas de 1 kilobyte, cada uno de las cuales señala a una segunda mesa de página. Sólo dos de éstos son usados. Así en total las entradas de mesa sólo de tres páginas son necesarias, un en la mesa de alto nivel y un en cada una de las mesas de nivel inferior.

16. La cuerda de referencia y código es como sigue

CARGUE 6144, R0 1 (I), 12 (D) EMPUJAN R0 2 (I), 15 (D) LLAMAN 5120 2 (I), 15

(D) JEQ 5152 10 (I)

El código (I) indica una referencia de instrucción, mientras que (D) indica una referencia de datos.

17. El tiempo de instrucción eficaz es 1r +5 (1 -h), donde h es el precio de golpe. Si

comparamos esta fórmula con 2 y solucionamos para h, encontramos que h debe ser al menos

0.75.

18. El trozo de R nunca no es necesario en el TLB. La mera presencia de una

página allí significa que la página ha sido referida; por otra parte no estaría allí. Así el trozo es completamente redundante. Cuando la entrada es contestada a la memoria, sin embargo, el trozo de R en la mesa de página de memoria es puesto.

19. Una memoria asociativa esencialmente compara una llave a los contenido de

registros múltiples simultáneamente. Para cada registro debe haber un juego de comparators que comparan cada trozo en los contenido de registro a la llave b u s c a d a para. El número de puertas (o transistores) tenía que poner en práctica tal dispositivo es una función lineal del número de registros, la tan ampliación del diseño se hace cara en línea recta.

20. Con páginas de 8 KILOBYTES y un espacio de dirección virtual de 48 trozos, el

número de páginas virtuales es 248 / 213, que es 235 (aproximadamente 34 mil millones).

21. La memoria principal tiene 228 / 213 = 32,768 páginas. Una mesa de picadillo

de 32 kilobyte tendrá una longitud de cadena media de 1. Para ponernos bajo 1, tenemos que ir al siguiente tamaño,

(19)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 17

11

65,536 entradas. La extensión de 32,768 entradas sobre unas 65,536 ranuras de mesa dará una longitud de cadena media de 0.5, que asegura la consulta rápida.

22. Este no es probablemente posible excepto el extraño y no caso muy útil

de un programa cuyo curso de la ejecución es completamente previsible en compila-tion el tiempo. Si un compilador colecciona la información sobre las posiciones en el código de llamadas a procedimientos, esta información podría ser usada en el tiempo de eslabón para reajustar el código de objeto entonces los procedimientos estuvieron localizados cerca del código que los llama. Este lo haría más probablemente que un procedimiento sería en la misma página

como el código que llama. Por supuesto este no ayudaría mucho para procedimientos llamados de muchos sitios en el programa.

23. Los marcos de página para el FIFO son como sigue:

x017 2333300 xx01 7222233 x x x 0 1777722 xxxx 0111177 Los marcos de página para LRU son como sigue:

x017 2327103 xx01 7232710 x x x 0 1773271 xxxx 0111327 El FIFO cede faltas de 6 páginas; el LRU cede 7.

24. La primera página con 0 trozos será elegida, en este caso D. 25. Los mostradores son

La página 0: 0110110 La página 1: 01001001 La página 2: 00110111 La página 3: 10001011

26. La primera página con R = 0 y edad> tserá elegida. Desde las ventajas de exploración en el fondo, la primera página (1620) es desalojada.

27. La edad de la página es 2204 -1213 = 991. Si t =400, es definitivamente fuera del juego de funcionamiento y no fue referido recientemente así será desalojado. El

t =1000 la situación es diferente. Ahora las caídas de página dentro del funcionamiento se ponen

(apenas), entonces no es quitado.

28. Buscar más la latencia rotatoria es 20 msec. Para páginas de 2 KILOBYTES, el

tiempo de transferencia es 1.25 msec, para un total de 21.25 msec. La carga de 32 de estas páginas tomará 680 msec. Para páginas de 4 KILOBYTES, el tiempo de transferencia es doblado a 2.5 msec, entonces el tiempo total por página es 22.50 msec. La carga de 16 de estas páginas toma 360 msec.

29. El NRU quita la página 2. El FIFO quita la página 3. El LRU quita la página 1. La

segunda posibilidad quita la página 2.

30. El PDP-1 paginación del tambor tenía la ventaja de ninguna latencia rotatoria.

(20)

18

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 4

31. El texto es o c h o p á g i n a s , los datos son c i n c o p á g i n as , y la pila es c ua t r o

p á gi n a s .

El programa no cabe porque esto necesita 17 páginas de 4096 bytes. Con una página de 512-bytes, la situación es diferente. Aquí el texto es 64 páginas, los datos son 33 páginas, y la pila es 31 páginas, para un total de 128 páginas de 512 bytes, que cabe. Con el pequeño tamaño de página está bien, pero no con el grande.

32. Si las páginas pueden ser compartidas, sí. Por ejemplo , si dos usuarios de un

tiempo compartido sys-tem dirigen al mismo redactor al mismo tiempo y el texto de programa es compartido más bien que copiado, algunas de aquellas páginas pueden estar en el juego trabajador de cada usuario al mismo tiempo.

33. Es posible. Asumiendo que la segmentación no está presente, la protección

infor-mation debe estar en la mesa de página. Si cada proceso tiene su propia mesa de página, cada uno también tiene sus propios trozos de protección. Ellos podrían ser diferentes.

34. El programa consigue faltas de 15,000 páginas, cada uno de las cuales usa 2

msec del tiempo de procesamiento suplementario. Juntos, la falta de página arriba es 30 segundos. Este significa aquel d e 6 0 s e g u n d o s usados, la mitad fue gastada en la falta de página arriba, y mitad en el correr del programa. Si dirigimos el programa con dos veces más la memoria, conseguimos la mitad como faltas de página de memoria, y sólo 15 segundos de la página critican arriba, entonces el tiempo de ejecución total será 45 segundos.

35. Esto trabaja para el programa si el programa no puede ser modificado. Esto

trabaja para los datos si los datos no pueden ser modificados. Sin embargo, es común que el programa no puede ser modificado y muy raro que los datos no pueden ser modificados. Si el área de datos en el archivo binario fuera superpuesta con páginas actualizadas, la próxima vez que el programa fue comenzado, esto no tendría los datos originales.

36. La instrucción podría estar a horcajadas sobre un límite de página, causando faltas de

dos páginas sólo

traer la instrucción. La palabra traída también podría atravesar un límite de página, generando más dos faltas, para un total de cuatro. Si las palabras deben ser alineadas en la memoria, la palabra de datos puede causar sólo una falta, pero una instrucción para cargar a

La palabra 32 bites en la dirección 4094 en una máquina con una página de 4 KILOBYTES es legal en algunas máquinas (incluso el Pentium).

37. La fragmentación interna ocurre cuando la última unidad de asignación no es

llena. El Exter-nal fragmentación ocurre cuando el espacio es gastado entre dos unidades de asignación.

En un sistema de paginación, el espacio gastado en la última página es perdido a frag-interno mentation. En un sistema de segmentación puro, algún espacio es invariablemente perdido entre los segmentos. Este es debido a la fragmentación externa.

38. El no de la llave de búsqueda usa tanto número de segmento como el número de

(21)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 5

19

SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 5 1. En la figura, vemos a un regulador con dos dispositivos. La razón que se espera

que un regulador solo maneje dispositivos múltiples es eliminar la necesidad de tener un regulador por dispositivo. Si los reguladores se hacen casi libres, entonces esto va a

esté más simple sólo de incorporar al regulador en el dispositivo sí mismo. Este diseño también permitirá transferencias múltiples en la paralela y así dará la mejor interpretación.

2. Fácil. El explorador saca el máximo de 400 KILOBYTES/SEGUNDOS. El autobús y

disco ambos dirigido

en 16.7 MB/segundos, entonces ni el disco ni el autobús vienen en todas partes cerca de satura-tion.

3. Esto no es una idea buena. ¿El autobús de memoria es seguramente más rápido

que el autobús de entrada - salida, otro - sabio por qué molestia con ello? Considere lo que pasa con una petición de memoria normal. El autobús de memoria termina primero, pero el autobús de entrada - salida está todavía ocupado. Si la CPU espera hasta los fines de autobús de entrada - salida, esto ha reducido la interpretación de memoria a aquel del autobús de entrada - salida. Si esto sólo intenta el autobús de memoria para la segunda referencia, esto fallará si éste es una referencia de dispositivo de entrada - salida. Si hubiera algún camino de abortar al instante la referencia de autobús de entrada - salida anterior para intentar el segundo, la mejora podría trabajar, pero hay nunca tal opción. En conjunto, esto es una idea mala.

4. Cada transacción de autobús tiene una petición y una respuesta, cada toma de 100 nsec,

o

200 nsec por transacción de autobús. Este da 5 millones de transacciones/segundos de autobús. Si cada uno está bien para 4 bytes, el autobús tiene que manejar 20 MB/segundos. El hecho que estas transacciones pueden ser rociadas más de cuatro dispositivos de entrada -salida en la manera de retorno al punto de origen es irrelevante. Una transacción de autobús toma 200 nsec, sin tener en cuenta si las peticiones consecutivas son al mismo dispositivo o dispositivos diferentes, entonces el número de canales que el regulador DMA tiene no importa. El autobús no sabe o se preocupa.

5. Interrumpir requiere empujando de 34 palabras en la pila. Devolver de interrumpir

requiere la atracción de 34 palabras de la pila. Este arriba solo es

680 nsec. Así el número máximo de interrumpe por segundo es no más que aproximadamente 1.47 millones, asumiendo que ningún trabajo para cada uno interrumpe.

6. Podría haber sido hecho en el principio. Una razón de hacerlo al final es que el

código del procedimiento de servicio interrumpir es mu y c or t o . Por primer outputting otro carácter y luego el reconocimiento de interrumpir, si el otro interrumpe pasa inmediatamente, la impresora trabajará durante interrumpir, haciendo

esto imprime ligeramente más rápido. Una desventaja de este acercamiento es el tiempo improductivo ligeramente más largo cuando otro interrumpe puede ser minusválido.

7. Sí. El ordenador personal apilado señala a la primera instrucción no traída. Todo

(22)

6

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 4

(23)

con una tubería sola. El problema e n t r a cuando las instrucciones son ejecutadas e st r op e a d a s , que no está el caso aquí.

8. La impresora imprime 50 ´80 ´6 =24, 000 caracteres/minuto, que es 400 caracteres/segundo. Cada carácter usa 50 msec del tiempo de CPU para interrumpir, tan colectivamente en cada segundo interrumpir arriba es 20 msec. La utilización interrumpe - entrada - salida conducida, el restante 980 msec del tiempo está disponible para otro trabajo. En otras palabras, los costos generales interrumpirás sólo el 2 % de la CPU, que afectará apenas el programa de correr en absoluto.

9. La independencia de dispositivo significa que tienen acceso a archivos y los

dispositivos el mismo camino, independiente de su naturaleza física. Los sistemas que tienen el juego del que de llamadas a la escritura en un archivo, pero un juego diferente de llamadas a la escritura en la consola (termi-nal) no exponen la independencia de dispositivo.

10. (a) Controlador

de dispositivos. (b) Controlador de dispositivos.

(c) Software independiente por el dispositivo. (d) software de Nivel del usuario.

11. Basado en los datos en el Higo 5-17, para el ejemplo de disco flexible, hay

9 ´512 ´8 36864 trozos =por pista. En 200 msec por rotación la velocidad binaria es 184, 320 t r oz os/ se gundos . El disco duro tiene un promedio de 281 sectores por pista, así hay 281 ´512 ´8 =1, 150, 976 trozos/pistas en el promedio. Un tiempo de rotación de 8.33 msec corresponde a 120 rotación/segundo (7200 revoluciones por minuto), entonces en un segundo el disco puede transferir 120 ´1, 150, 976 trozos. Este es aproximadamente 138 millones de trozos/segundos. La velocidad de transferencia de datos del disco flexible es aproximadamente tres veces que de un 56-módem Kbps. La velocidad de transferencia de datos del disco duro es aproximadamente el 38 % más rápida que Ethernet Rápida. Sin embargo, estos cálculos subestiman las velocidades de transferencia de datos máximas actuales, porque para cada 512 bytes de datos en un disco hay también varios bytes de formatear la información, identificar la pista y sector, así como un hueco entre sectores, necesarios de impedir a sectores superponerse

si hay variaciones de velocidad leves.

12. Un paquete debe ser copiado cuatro veces durante este proceso, que toma 4.1

msec. Hay también dos interrumpe, que explican 2 msec. Finalmente, el tiempo de transmisión es 0.83 msec, para un total de 6.93 msec por 1024 bytes. La velocidad de transferencia de datos máxima es así 147,763 bytes/segundos, o aproximadamente el 12 por ciento del nom-inal capacidad de red de 10 megabites/segundos. (Si incluimos el protocolo arriba, las figuras hasta empeoran.)

13. Si la impresora fuera adjudicada tan pronto como la salida apareció, un proceso

(24)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 21

19

amarre la impresora imprimiendo u n o s caracteres y luego yendo a dormir durante una semana.

(25)

22

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 5

14. El disco gira en 120 revoluciones por minuto, entonces 1 rotación toma 1000/120

msec. Con 200 sectores por rotación, el tiempo de sector es 1/200 de este número o 5/120 = 1/24 msec. Durante el 1-msec buscan, 24 pase de sectores bajo la cabeza. Así el cilindro sesga debería ser 24.

15. Cuando vimos en el problema anterior, el tiempo de sector es 1/24 msec. Este

significa que el disco puede leer 24,000 sectores/segundo. Ya que cada sector contiene 512 bytes, la velocidad de transferencia de datos es 12,288,000 bytes/segundos. Este precio es 11.7 MB/segundos.

16. El nivel de INCURSIÓN 2 sólo no puede reponerse se estrelló paseos, sino

también de errores pasajeros pasados por alto. Si un paseo entrega un trozo malo solo, nivel de INCURSIÓN

2 corregirá este, pero ASALTARÁ el nivel 3 no van a.

17. La probabilidad de 0 fracasos, P 0, es (1 -p) k. La probabilidad de 1 fracaso, P 1, es kp (1 -p) k -1. La probabilidad de un fracaso de INCURSIÓN es entonces 1 -P 0 -P 1. Este

es 1 -(1 -p) k -kp (1 -p) k -1.

18. Un campo magnético es generado entre dos postes. No sólo es difícil hacer la fuente

d e u n c a m p o m a gn é t i c o pequeña, sino también las extensiones de campaña rápidamente, que conduce a problemas mecánicos que tratan de guardar la superficie de un medio magnético cerca de una fuente magnética o sensor. Un Gen de láser de semiconductor - el erates luz en un muy pequeño lugar, y la luz puede ser ópticamente manipulado para iluminar un muy pequeño punto a una relativamente gran distancia de la fuente.

19. Posiblemente. Si la mayor parte de archivos son almacenados en sectores

lógicamente consecutivos, esto podría ser intercalar que vale la pena los sectores para dar el tiempo de programas para tratar los datos sólo recibidos, de modo que cuando la siguiente petición es publicada, el disco estuviera en el lugar derecho. Si este merece el problema depende fuertemente de la clase de programas dirigidos y como el uniforme su comportamiento es.

20. El tiempo de rotación es 200 msec. Leyendo todos los sectores a fin de

requiere que la rotación 1/2 consiga rotaciones del sector 0 y 2.75 para conseguir los datos (después de que el sector 7 es leído, la transferencia es terminada). Así 3.25 rotaciones son necesarias para 650 msec. Lea - ing 4 kilobyte en 650 msec es 6302 bytes/segundos. Para un disco no intercalado, esto toma 300 msec para leer 4 kilobyte, que es 13,653 bytes/segundos. Intercalar reduce la capacidad

a 6302/13653 o 0.46 de su antigua capacidad.

21. Tal vez sí y tal vez no. Doble intercalar es con eficacia un cilindro sesgan

de dos sectores. Si la cabeza puede hacer una pista a pista buscar en menos de dos veces de sector, que ningún cilindro adicional sesga es necesario. Si esto no puede, entonces el cilindro adicional sesga es necesario para evitar perder un sector después de buscar.

22. La capacidad de paseo y los precios de transferencia son doblados. El tiempo

(26)

SOLUCIONES DE PROBLEMA PARA CAPÍTULO 23

19

23. Una consecuencia bastante obvia es que ningún sistema operativo existente

trabajará porque todos ellos mira allí para ver donde las particiones de disco son. El Chang-ing el formato de la mesa de partición hará que todos los sistemas operativos fallen. El único modo de cambiar la mesa de partición es cambiarse simultáneamente

todos los sistemas operativos para usar el nuevo formato.

24. (a) 10 + 12 + 2 + 18 + 38 + 34 + 32 = 146 cilindros = 876 msec.

(b) 0 + 2 + 12 + 4 + 4 + 36 +2 = 60 cilindros = 360 msec. © 0 + 2 + 16 + 2 + 30 + 4 + 4 = 58 cilindros = 348 msec.

25. No necesariamente. Un programa UNIX que lee 10,000 cuestiones de bloques el las peticiones uno por uno, obstruyéndose después de que cada uno es publicado hasta que esto sea com-pleted. Así el controlador del disco ve sólo una petición a la vez; esto no tiene ningún oppor-tunity para hacer t o d o me n o s los tratan en la orden de llegada. Harry debería haber a r r a n c a d o muchos procesos al mismo tiempo para ver si el montacargas algo-rithm trabajó.

26. Hay una raza pero esto no importa. Ya que los estables se escriben ha

completado ya, el hecho que la RAM permanente no ha sido actualizada sólo medios que el programa de recuperación sabrá qué bloque estaba siendo escrito.

Esto leerá ambas copias. Encontrándolos idéntico, esto no cambiará a ninguno, que es la acción correcta. El efecto del accidente justo antes de la RAM permanente fue actualizado sólo medios que el programa de recuperación tendrá que hacer dos disco lee más que esto debería.

27. Dos msec 60 veces por segundo son 120 msec/sec, o el 12 por ciento de la CPU 28. El número de segundos en un año medio es 365.25 ´24 ´3600. Este número es

31,557,600. El contador se abriga alrededor después de 232 segundos a partir del 1 de enero

1970. El valor de 232/31,557,600 es 136.1 años, así abrigándose pasará en 2106.1, que es a principios de febrero 2106. Por supuesto, para entonces, todos los ordenadores serán al menos 64 trozos, entonces no pasará en absoluto.

29. Cada línea requiere 3200 ´8 =25, 600 muestras/segundo. En 1 msec por muestra, cada línea toma 25.6 msec del tiempo del procesador cada segundo. Con 39 líneas, el procesador está ocupado para 39 ´ 25.6 = 998.4 msec cada segundo, que da la capacidad de la tarjeta como 39 líneas.

30. Después de que un carácter es escrito a un terminal RS232, esto toma

relativamente mucho tiempo antes de que sea imprimido. La espera sería pródiga, tan interrumpe son usados. Con terminales trazados un mapa por la memoria, el carácter es aceptado al instante, tan inter - los rupts no tienen sentido.

31. En 56 Kbps, tenemos 5600 interrumpe/segundo, que es 560 msec. Este es el 56 %

(27)

24

SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 5

32. El desplazamiento de la ventana requiere la copia de 59 líneas de 80 caracteres

o 4720 trabajo por horas - acters. La copia de 1 carácter (16 bytes) toma 800 nsec, entonces la ventana entera toma 3.776 msec. La escritura de 80 caracteres a la pantalla toma 400 nsec, así enrollando y mostrando una nueva línea toma 4.176 msec. Este da aproximadamente 239.5 líneas/segundo.

33. Suponga que el usuario por descuido pidió al redactor imprimir miles de líneas.

Entonces él golpea DEL para pararlo. Si el conductor no desechara la salida, la salida podría seguir durante varios segundos después del DEL, que haría el usuario golpear DEL una y otra vez y ser frustrados cuando nada pasó.

34. Esto debería mover el cursor para rayar 5 posición 7 y luego suprimir 6 caracteres.

La secuencia es ESC [5; 7 H ESC [6 P

35. El procesador empotrado dentro del terminal tiene que mover todos los

caracteres una línea por sólo copiándolos. Visto del interior, el terminal es la memoria trazada un mapa. No hay ningún modo fácil de evitar esta organización a menos que spe-cial hardware esté disponible.

36. Las 25 líneas de caracteres, cada uno 8 pixeles altos, requieren que 200 exploraciones

dibujen.

Hay 60 pantallas por segundo, o 12,000 exploraciones/segundo. En 63.6 msec/scan, la viga mueve horizontalmente 763 msec por segundo, yéndose de 237 msec del mandato judicial - ing en la RAM de vídeo. Así la RAM de vídeo es el 23.7 % disponible del tiempo.

37. El precio máximo que el ratón puede mover es 200 mm/segundos, que es 2000

mickey/segundo. Si cada informe es 3 bytes, el precio de salida es 6000 bytes/segundos.

38. Con un sistema en color de 24 trozos, sólo 224 colores pueden ser representados. Este no es todo

de ellos. Por ejemplo, suponga que un fotógrafo toma cuadros de 300 latas de pintura azul pura, cada uno con una cantidad ligeramente diferente de

pigmento. El primer puede podría ser representado por el (R, G, B) valor (0, 0, 1). El próximo podría

sea representado por (0, 0, 2), etc. Ya que la coordenada de B es sólo 8 trozos, hay ningún modo de representar 300 valores diferentes de los puros azul. Algunos de foto - gráficos tendrán que ser dados como el color incorrecto. Otro ejemplo es el color (120.24, 150.47, 135.89). No puede ser representado, sólo se acercó por (120, 150, 136).

39. (a) Cada pixel toma 3 bytes en RGB, entonces el espacio de mesa es 16 ´24 3 bytes ´, que es 1152 bytes.

(b) En 100 nsec por byte, cada carácter toma 115.2 msec. Este da un - el precio puesto de aproximadamente 8681 trabajos por horas/segundo.

40. Volver a escribir la pantalla de texto requiere 2000 bytes que copian, que pueden ser

hechos en

20 mseconds. Volver a escribir la pantalla de gráficos requiere la copia de 1024 ´768 ´3

Referencias

Documento similar