Subido por Erick Elizondo

ilide.info-andrew-s-tanenbaum-sistemas-operativos-modernos-2-edicion-solucionario-pr 9f96f5658de16e0708019c0305edcc9a

Anuncio
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
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 eje mplo , 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
todos cuántos las etapas la tubería tienen. Una tubería de 10 etapas con 1 nsec por
la etapa también ejecutaría 1 mil millones de instrucciones por segundo. Todo
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 mp or t a nt e s 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.
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, p or e j 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, ade má 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 muyimportante, 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 n i d a d e s d e d i 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.
26. Las conversiones son francas:
(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. 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 multithreaded 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 es tá bi en , 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,
entonces vuelta. Cuando el sistema de tiempo de ejecución terminó, esto
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.
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 process 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 d i 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 a r 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.
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 he c ho , 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, a unque 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
información de sistema operativo sobre el flujo de datos. Con esta información
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 e l 5 0 p or c i e nt 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 f i na l 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
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
mu c ho me j o r 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 s p i r a n al nombramiento de algún partido. Después de todas las
elecciones primarias
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 d e ma s i a d o g r a n d e
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.
9. El proceso pide más recursos que el sistema tiene. No hay ningún camino
concebible que esto puede conseguir estos recursos, entonces esto nunca puede
terminar, a un 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
A: 2 0 0 0
1020
0e 1 2 1
B: 1 0 0 0
0131
C: 0 1 2 1
1010
Este estado no es estancado porque muchas acciones todavía pueden ocurrir, para el
examenple, 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.
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:
01002
02100
10300
00111
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
cb
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
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 m o s i 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,
la tan lectura d e 1 b yt 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 b yt e s / s e gundos .
Para copiar 128 MB (227 bytes , que es aproximada me nte 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
224/
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 kilobyt e , 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 h o má s q u e 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
máximo permitiera la memoria virtual.
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
msec al promedio, entonces la instrucción media toma 10 + n / k nsec.
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
(D) EMPUJAN R0
(D) LLAMAN 5120
(D) JEQ 5152
1 (I), 12
2 (I), 15
2 (I), 15
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 c ont es t a da 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,
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 e xce pto 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 ce rca 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 fue ra
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.
Esta media rotación salvada cada vez memoria fue escrito al tambor.
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 a s , y la pila es c u a t r o
páginas.
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 eje mplo , 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
página virtual, entonces la página exacta puede ser encontrada en un partido solo.
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 o r 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
instruc-tions antes de que esto haya sido ejecutado y la instrucción señalado a
6
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 4
y sus sucesores no han sido ejecutados.
Este es la condición para preciso
interrumpe. Preciso interrumpe no son difíciles de conseguir en la máquina
con una tubería sola. El problema e n t r a cuando las instrucciones son
ejecutadas e s t r o p 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 36864trozos =por pista. En 200 msec por rotación la velocidad binaria es
1 8 4 , 3 2 0 t r oz o s / s e g u n d o s . 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 t a n pr o nt o c o mo la salida apareció, un proceso
podría
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 21
amarre la impresora imprimiendo u n o s caracteres y luego yendo a dormir
durante una semana.
19
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 g n é 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 f in 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
buscar y hace un promedio de la tardanza rotatoria son el mismo.
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
m e 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 almismotiempo 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 %
de la CPU.
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
= 2,359,296 bytes, o aproximadamente 23.6 msec.
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 25
19
41. En el Windows, el OS llama los procedimientos de tratante sí mismo. En el
Windows X, noth-ing como este pasa. X sólo consigue un mensaje y lo trata
internamente.
42. El primer parámetro es esencial. En primer lugar, las coordenadas son con relación a
alguna ventana, entonces hdc es necesario para especificar la ventana y así el
origen. Segundo, el rectángulo será prendido si esto se cae fuera de la ventana,
entonces las coordenadas de ventana son necesarias. El tercero, el color y otras
propiedades del rectángulo son tomados del contexto especificado por hdc. Es
completamente esencial.
43. El tamaño de demostración es 400 ´160 3 bytes ´, que es 192,000 bytes. En 10 fps
este es 1,920,000 bytes/segundos o 15,360,000 trozos/segundos. Este
consume el 15 % de Ethernet Rápida.
44. La amplitud de banda en un segmento de red es compartida, entonces 100
usuarios que solicitan dif-ferent datos simultáneamente en una red 1-Mbps
verán cada uno una velocidad eficaz 10-Kbps. Con una red compartida, un
programa de TV puede ser multiechado, entonces los paquetes de vídeo sólo
son transmitidos una vez, n o i mp o r t a c u a n t o s usuarios allí son y esto
debería trabajar bien. Con 100 usuarios que hojean la Web, cada usuario
conseguirá 1/100 de la amplitud de banda, entonces la interpretación puede
degradar muy rápidamente.
45. Si n =10, la CPU todavía puede hacer su trabajo a t i e m p o , pero la energía
usó gotas sensiblemente. Si la energía consumida en 1 s e g u n d o en la
velocidad llena es E, entonces el correr en la velocidad llena para 100 msec
que entonces van ocioso para 900 msec usa E/10. El correr en la velocidad
1/10 durante un segundo entero usa E/ 100, a ahorro de 9e/100. Los ahorros
de por ciento cortando el voltaje son el 90 %.
46. El sistema windowing usa mucho más memoria para su demostración y usa virtual memoria más que el modo de texto. Este lo hace menos probablemente
que el disco duro será inactivo para un bastante mucho tiempo de período
para hacer que ello fuera automáticamente impulsado abajo.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 6
1. Usted puede ir de arriba abajo el árbol tan a menudo como usted quiere usar
"..". Algunos muchos caminos son
/etc/passwd
/./etc/passwd
/././etc/passwd
/./././etc/passwd
/etc/. ./etc/passwd
/etc/. ./etc/../etc/passwd
/etc/. ./etc/../etc/../etc/passwd
/etc/. ./etc/../etc/../etc/../etc/passwd
2. El Windows camino debe usar la extensión de archivo. Cada extensión corresponde a
un tipo de archivo y a algún programa que maneja aquel tipo. Otro camino es
recordar qué programa creó el archivo y dirigió aquel programa. La tontería
Macin-trabaja este camino.
3. Estos sistemas cargaron el programa directamente en la memoria y comenzaron a
ejecutar en la palabra 0, que era el número mágico. Evitar tratar de ejecutar el
jefe
como el código, el número mágico era una instrucción de RAMA con una
dirección objetivo sólo encima del jefe. De esta manera era posible leer el
archivo binario directamente en el espacio de dirección del nuevo proceso y
dirigirlo en 0, sin saber hasta de que tamaño el jefe era.
4. E l s i s t e ma o p e r a t i v o se preocupa por la longitud de registro cuando los archivos
pueden ser estructurados
como registra con llaves en una posición específica dentro de cada registro y es posible
pedir un registro con una llave dada. En este caso, el sistema tiene que saber de
que tamaño los archivos son así esto puede buscar cada uno para la llave.
5. Para comenzar con, si allí no estaban abiertos, en cada leído sería necesario
especificar el nombre del archivo para ser abierto. El sistema tendría que traer
entonces el i-nodo para ello, aunque pudiera ser cached. Una cuestión que
rápidamente se levanta es cuando limpiar con agua el i-nodo atrás al disco. Esto
podría el intervalo de espera, sin embargo. Sería un poco torpe, pero esto
podría trabajar.
6. El no Si usted quiere leer el archivo otra vez, sólo al azar tiene acceso al byte 0.
7. Sí. La llamada renombraré no cambia el tiempo de creación o el tiempo de la
última modificación, pero la creación de un nuevo archivo hace que ello consiga
el tiempo corriente tanto como tiempo de creación como el tiempo de la última
modificación. También, si el disco es lleno, la copia podría fallar.
8. La parte trazada un mapa del archivo debe comenzar en un límite de página y ser
un número integral de páginas en la longitud. Cada página trazada un mapa usa
el archivo sí mismo como el al macenamiento de respaldo . La memoria
no trazada un mapa usa u n a r c h i v o r e u t i l i z a b l e o partición como el
almacenamiento de respaldo.
9. Nombres de archivo de uso como/usr/ast/file. Mientras esto parece a un nombre de
camino jerárquico, esto es realmente sólo un nombre solo cuchilladas empotradas
que contienen.
10. Un camino es añadir un parámetro suplementario a la llamada de sistema leída
que cuenta que dirección leer de. E n e f e c t o , cada leído entonces tiene un
potencial para hacer buscar dentro del archivo. Las desventajas de este esquema
son (1) param-suplementario eter en cada llamada leída, (y 2) requerimiento
del usuario guardar la pista de donde la aguja de archivo es.
11. El componente dotdot mueve la búsqueda a/usr, tan ../ast lo pone en/usr/ast.
Así ../ast/x es el mismo como/usr/ast/x.
12. Ya que el almacenaje gastado está entre las unidades de asignación (archivos),
no dentro de ellos, este es la fragmentación externa. Es e x a c t a me n t e
a n á l o g o a la fragmentación externa de la memoria principal que ocurre con
un sistema de cambio o un sys-tem la utilización de la segmentación pura.
13. Esto toma 9 msec para comenzar la transferencia. Leer 213 bytes en un precio
de transferencia de 223 bytes/segundos requiere 2-10 segundo (977 msec),
para un total de 9.977 msec. La escritura de ello atrás toma otros 9.977 msec.
Así la copia de un archivo toma 19.954 msec. Comprimir la mitad de un disco
de 16 GRAN BRETAÑA implicaría copiar 8 GRAN BRETAÑA del
almacenaje, que
es 220 archivos. En 19.954 msec por archivo, este toma 20,923 segundos, que es
5.8 horas. Claramente, comprimiendo el disco después de que cada retiro de
archivo no es una gran idea.
14. Si derecho hecho, sí. Comprimiendo, cada archivo debería ser organizado de modo que
todos
de sus bloques son consecutivos, para el acceso rápido. El Windows tiene un
programa que defragments y reorganiza el disco. Los usuarios son animados a
dirigirlo periodi-cally para mejorar la interpretación de sistema. Pero
considerando c u a n t o esto toma, corriendo una vez al mes podría ser una
frecuencia buena.
15. Un digital todavía cámara registra algún número de fotografías en la secuencia
en un medio de almacenaje permanente (p.ej, memoria de destello). Cuando la
cámara es reinicializada, el medio es vaciado. A partir de entonces, los cuadros
son registrados uno por uno en la secuencia hasta que el medio sea lleno, en cual
tiempo ellos son cargados a un disco duro. Para esta aplicación, un sistema de
archivo contiguo dentro de la cámara (p.ej, en el medio de almacenaje de
cuadros) es ideal.
16. Esto encuentra la dirección del primer bloque en la entrada de directorio. Esto
entonces sigue la cadena de agujas de bloque en la GRASA hasta que esto
haya localizado el bloque que esto necesita. Esto entonces recuerda este
número de bloque para la siguiente llamada de sistema leída.
17. El bloque indirecto puede sostener 256 direcciones de disco. Juntos con las 10
direcciones de disco directas, el archivo máximo tiene 266 bloques. Ya que cada
bloque es 1 KILOBYTE, el archivo más grande es 266 KILOBYTES.
18. Debe haber un modo de señalar que las agujas de bloque de dirección sostienen
datos, más bien que agujas. Si allí queda poco en algún sitio entre los atributos,
puede ser usado. Este deja nueve agujas para datos. Si las agujas son bytes k
cada uno, el archivo almacenado podría estar a la altura de bytes de 9 kilobyte
mucho tiempo. Si ningún trozo queda entre los atributos, la primera dirección
de disco puede sostener una dirección inválida para marcar los bytes siguientes
como datos más bien que agujas. En este caso, el archivo máximo es
Bytes de 8 kilobyte.
19. Elinor tiene razón. Teniendo dos copias del i-nodo en la mesa al mismo tiempo
es un desastre, a menos que ambos sean leídos sólo. El caso peor es cuando
ambos están siendo actualizados simultáneamente. Cuando los i-nodos son
contestados al disco, cualquiera uno es escrito último borrará los cambios
hechos por el otro, y los bloques de disco serán perdidos.
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 27
19
20. Los eslabones difíciles no requieren que ningún espacio de disco
suplementario, sólo un contador en el i-nodo guarde la pista de cuantos hay. Los
eslabones simbólicos necesitan el espacio para almacenar el nombre del archivo
señalado a. Los eslabones simbólicos pueden señalar a archivos sobre otras
máquinas, hasta sobre el Internet. Los eslabones difíciles son restringidos a
señalar a archivos dentro de su propia partición.
21. El mapa de bit requiere trozos B. La lista libre requiere trozos DF. La lista libre
requiere menos trozos si DF <B. O bien, la lista libre es más corta si
El F/B <1/D, donde F/B es la fracción de bloques libres. Para direcciones de
disco 16 bites, la lista libre es más corta si el 6 por ciento o menos del disco son
libres.
22. El principio del mapa de bit parece:
(a) Después de escribir archivo B: 1111 1111
1111 0000 (b) Después de suprimir archivo A:
1000 0001 1111 0000 (c) Después de escribir
archivo C: 1111 1111 1111 1100 (d) Después de
suprimir archivo B: 1111 1110 0000 1100
23. Esto no es un problema serio en absoluto. La reparación es franca; esto sólo lleva
tiempo.
El algoritmo de recuperación debe hacer una lista de todos los bloques en
todos los archivos y tomar el complemento como la nueva lista libre. En UNIX
este puede ser hecho por la exploración - ning todos los i-nodos. En el sistema
de archivo GORDO, el problema no puede ocurrir porque no hay ninguna lista
libre. Pero aun si había, todo que tendría que ser hecho para recuperarse debe
explorar la GRASA que busca entradas libres.
24. La tesis de Ollie no puede ser sostenida tan de fuentes fidedignas como él podría
desear. Un programa de reserva puede pasar sobre un archivo que está abierto
actualmente para la escritura, cuando el estado de los datos en tal archivo puede
ser indeterminado.
25. Ellos deben guardar la pista del tiempo del último vertedero en un archivo sobre
el disco. En cada vertedero, una entrada es añadida a este archivo. En el tiempo
vaciado, el archivo es leído y el tiempo de la última entrada notado. Cualquier
archivo cambiado desde aquel tiempo es vertido.
26. En (a) (y b), 21 no sería marcado. En (c), no habría ningún cambio. En
(d), 21 no sería marcado.
27. Muchos archivos UNIX son cortos. Si el archivo entero cabe en el mismo bloque que
el nodo "yo", sólo un acceso de disco sería necesario para leer el archivo, en vez
de dos, como
es actualmente el caso. Incluso para archivos más largos habría una ganancia,
desde un menos disco tiene acceso sería necesario.
28. No debería pasar, pero debido a un bicho en algún sitio podría pasar. Esto
significa que algún bloque ocurre en dos archivos y también dos veces en la
lista libre. Los primeros intervienen la reparación del error debe quitar ambas
copias de la lista libre. Después un bloque libre tiene que ser adquirido y los
contenido del bloque enfermo copiados allí. Finalmente, el acontecimiento del
bloque en uno de los archivos debería ser cambiado para referirse a la copia
recién adquirida del bloque. En este punto el sistema es otra vez consecuente.
28
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 6
29. El tiempo necesario es h +40 ´(1 -h). El complot es sólo una línea recta.
30. El tiempo por bloque es aumentado de tres componentes: busque el tiempo, la
latencia rotatoria, y el tiempo de transferencia. En todos los casos la latencia
rotatoria más el tiempo de transferencia es el mismo, 125 msec. Sólo el tiempo
buscar se diferencia. Para 13 cilindros es
78 msec; para 2 cilindros esto es 12 msec. Así para archivos al azar colocados el
total es 203 msec, y para archivos arracimados esto es 137 msec.
31. En 15,000 revoluciones por minuto, el disco toma 4 msec para andar una vez.
El tie mpo de a cce so prome di o (en msec) para leer bytes k es entonces 8
+2 +(k / 262144) ´4. Para bloques de 1
KILOBYTE, 2 KILOBYTES, Y 4 KILOBYTES , los tiempos de acceso
son 10.015625 msec, 10.03125 msec, y 10.0625 msec, respectivamente
(apenas algo diferente). Éstos dan precios de APROXIMADAMENTE
102,240 KILOBYTES/SEGUNDOS, 204,162 KILOBYTES/SEGUNDOS, Y
407,056 KILOBYTES/SEGUNDOS, respectivamente.
32. Si todos los archivos fueran 1 KILOBYTE, entonces cada bloque de 2 KILOBYTES
contendría un archivo y 1 KILOBYTE
de espacio gastado. La tentativa de poner dos archivos en un bloque no es
permitida porque la unidad solía conservarse la pista de datos es el bloque, no el
semibloque. Este conduce a
El 50 por ciento espacio gastado. En la práctica, cada sistema de archivo tiene
archivos grandes también
tan muchos pequeños, y estos archivos usan el disco m u c h o m á s
e f i c a z m e n t e . Por ejemplo, un archivo de 32,769 bytes usaría 17 bloques de
disco para el almacenaje, considerando una eficacia espacial de 32768/34816,
que es aproximadamente el 94 por ciento.
33. El formato de directorio tiene hasta 255 bloques en cuenta en el disco (debido
al número de 8 trozos en la entrada de directorio). Este no es claramente
bastante entonces el primer cambio tiene que deber ir a más bloques de disco.
En vez de 16 direcciones de 8 trozos, deberíamos usar 8 direcciones 16 bites.
Este permite 65,536 bloques de disco por disco. Si hacemos bloques 32,768
bytes, los mismos usos de MS-DOS de tamaño en discos grandes, el tamaño de
disco máximo (realmente, el tamaño de partición máximo) son ahora 2 GRAN
BRETAÑA. Sin embargo, indi-vidual archivos son limitados con ocho bloques
de disco por grado y 255 grados para un máximo de 2040 bloques o 63.75
MB. Un diseño con un disco máximo de 2
GRAN BRETAÑA y un archivo máximo de 63.75 MB son plausibles. Si este
no es bastante, uno podría usar uno de los bytes no usados en la entrada de
directorio para levantar el campo de grado a 16 trozos. Este levanta el número
de bloques por archivo a 524,280 y el tamaño de archivo a casi 16 GRAN
BRETAÑA. Los tamaños de bloques más grandes van hasta adelante.
34. El bloque más grande es 32,768. Con 32,768 de estos bloques, el archivo más
grande sería 1 GRAN BRETAÑA.
35. Esto obliga la suma de todas las longitudes de archivo a ser no más grande que el disco.
Este no es una coacción muy seria. Si los archivos fueran colectivamente más
grandes que el disco, no habría ningún lugar para almacenar todos ellos en el
disco.
36. El i-nodo sostiene 10 agujas. El bloque indirecto solo sostiene 256 agujas.
El doble bloque indirecto está bien para 2562 agujas. El bloque indirecto triple
está bien para 2563 agujas. Sumando éstos, conseguimos un tamaño de archivo máximo
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 29
de
16,843,018 bloques, que es aproximadamente 16.06 GRAN BRETAÑA.
19
30
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 6
37. El disco siguiente lee son necesarios:
directorio para/
i-nodo para/usr
directorio para/usr
i-nodo para/usr/ast
directorio para/usr/ast
i-nodo para/usr/ast/courses
directorio para/usr/ast/courses
i-nodo para/usr/ast/courses/os
directorio para/usr/ast/courses/os
i-nodo para/usr/ast/courses/os/handout.t
En total, 10 disco lee son requerido.
38. Algunos pros son c o mo s i g u e . Primero, ningún espacio de disco es gastado en inodos no usados.
Segundo, no es posible quedarse sin i-nodos. Tercero, menos movimiento de
disco es necesario desde el i-nodo y los datos iniciales pueden ser leídos en
una operación. Algunas estafas son como sigue. Primero, las entradas de
directorio necesitarán ahora una dirección de disco 32 bites en vez de un
número de i-nodo 16 bites. Segundo, un disco entero será usado hasta para
archivos que no contienen ningunos datos (archivos vacíos, archivos de
dispositivo). Tercero, el archivo sys-tem controles de integridad será más lento
debido a la necesidad de leer un bloque entero para cada i-nodo y porque los inodos serán dispersados por todas partes del disco. Cuarto, los archivos cuyo
tamaño ha sido con cuidado diseñado para encajar el tamaño de bloque van a
ya no encaje el tamaño de bloque debido al i-nodo, estropeando la interpretación.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 7
1. El XGA es 1024 ´768.
Con 24 trozos/pixeles y 25 marcos/segundo nos ponemos
471,859,200 trozos/segundos. Este precio es demasiado alto para Ultraamplio SCSI, que
sólo puede acercarse a 320 Mbps.
2. La televisión de NTSC estándar es a p r o xi ma d a me n t e 6 4 0 ´480 pixeles.
En 8 t r oz os / pi xe l es y 30 marcos/segundo conseguimos una amplitud de
banda de 73 Mbps. Sólo apenas lo hace con un canal. Dos canales serían
demasiado.
3. De la mesa, HDTV es 1280 ´720 contra 640 ´480 para la TV regular. Esto
tiene tres veces tan muchos pixeles y así necesita tres veces la amplitud de
banda. La razón esto no necesita cuatro veces tan mucha amplitud de banda es
que la proporción de aspecto
de HDTV es diferente de la TV convencional para emparejar aquella de la película
de 35 mm mejor.
4. Para el movimiento lento adelantamiento, es suficiente para cada marco para
ser mostrado d o s o m á s veces e n f i l a . Ningún archivo adicional es
necesario. Ir hacia atrás despacio va tan mal como hacia atrás rápidamente,
entonces un archivo adicional es necesario.
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 31
19
5. De audio es probado en 16 trozos por muestra, 44,100 tiempos/segundo con dos
canales.
Este da un precio de audio no comprimido de 1,411,200 trozos/segundos o
176,400 bytes/segundos. En 74 minutos, este asciende a 747 MB. Este es la
capacidad llena del CD. No es comprimido en absoluto. Los datos de razón
son limitados con 650 MB es que la mejor corrección de error es usada para
datos ya que un error es más serio que para la música. Si hasta un factor de
dos compresión hubiera sido usado en CDs de audio, los datos habrían sido
menos de 374 MB y más de 74 minutos podrían
sea almacenado en un CD.
6. Hay 32,768 magnitudes posibles. Por ejemplo, suponga las variedades de
señal de voltios -32.768 a +32,767 voltios y el valor almacenó para cada sample es la señal acabada al número más cercano de millivolts, como un
firmado
Número entero 16 bites. Una señal de 16.0005 voltios tendría que ser registrada
como tampoco
16,000 o como 16,001. El error de por ciento aquí es el por ciento 1/320. Sin
embargo, el sorbo - posa la señal es 0.0005 voltios. Este es registrado en 0 o
1. En el caso último, el error es el 50 %. Así el ruido de cuantificación afecta
amplitudes bajas más que amplitudes altas. Los conciertos de flauta serán
golpeados más difíciles que el rock and roll debido a sus amplitudes inferiores.
7. Un esquema de compresión/extensión de volumen podría ser puesto en práctica c o m o
sigue.
U n t r oz o de la salida es reservado para señalar que la señal registrada es
ampliada. 15 trozos restantes son usados para la señal. Cuando la orden alta
5 trozos de la señal de 20 trozos no son 00000, el trozo de extensión es 0 y el otro
1 5 t r o z o s contienen la orden alta 1 5 t r o z o s de los datos probados. Cuando
los altos - piden que5trozos de la señal sean 00000, el trozo de extensión es encendido
y el
La señal de amplitud de 20 trozos es cambiada dejó 5 trozos. Al final del
oyente el proceso inverso ocurre. Este esquema aumenta el ruido de
cuantificación ligeramente para señales fuertes (debido a una señal de 15
trozos en vez de una señal 16 bites), pero disminuciones ello para señales
tranquilas, cuando el efecto de cuantificación es el más sensible. Una
desventaja principal es que este no es un estándar y no trabajaría con jugadores
de CD existentes, pero esto podría trabajar para la música en línea tocada con
un enchufe de unión especial que usó este esquema durante ambos finales. Una
versión más sofisticada podría usar 2 trozos para denotar cuatro regímenes de
extensión diferentes para niveles de señal diferentes.
8. El AMIGO tiene más líneas de exploración y más resolución espacial que
NTSC. Esto tiene 625 líneas verticales contra 525 para NTSC. Esto también
tiene más pixeles por línea. Éstos resultan en una imagen más aguda, y usan la
amplitud de banda suplementaria. Por otra parte, NTSC tiene más marcos por
segundo, entonces es mejor para agarrar la acción rápida. Ningún es "mejor"
que otro en este sentido. Las compensaciones diferentes han sido hechas:
mejor resolución a tiempo contra mejor resolución en espacio. Todo esto es
completamente independiente de los esquemas de codificación en color
usados.
9. La diferencia no causa problemas en absoluto. El algoritmo DCT es usado para
codificar I-marcos en un esquema JPEG-parecido. Los macrobloques son usados
32
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 6
en P-
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 7
31
los marcos para localizar macrobloques que aparecieron en marcos anteriores.
Las dos cosas no tienen nada que ver el uno con el otro y no entran en conflicto.
10. No ellos no hacen. El algoritmo de compensación de movimiento encontrará
cada cerradura de macrob-en el marco anterior en alguna compensación de su
posición corriente. Por encod-ing el hecho que el macrobloque corriente
debería ser tomado del marco anterior en una posición (Dx, Dy) del corriente,
no es necesario transmitir el bloque sí mismo otra vez.
11. Los procesos que apoyan las tres corrientes de vídeo ya usan 0.808 del tiempo
de CPU, así hay 192 msec por segundo dejado terminado para de audio. Procde audio ess unas carreras 33.333 tiempos/segundo, el proceso de audio B
dirige 25 tiempos/segundo, y proceso de audio C dirige 20 tiempos/segundo,
para un total de 78.333 carreras/segundo. Estas 78.333 carreras pueden usar
192 msec, entonces cada carrera puede usar 192/78.333 o 2.45 msec.
12. El primer proceso usa 0.400 de la CPU. El segundo usa 0.375 de el
CPU. Juntos ellos usan 0.775. El límite de RMS para dos procesos es
2 ´(20.5 -1), que es 0.828, entonces RMS es garantizado para trabajar.
13. Desde 0.65 <ln 2, RMS siempre puede programar las películas, no importa
cuántos hay. Así el RMS no limita el número de películas.
14. La secuencia que comienza en t =150 es unos 6, B 5, C 4, A 7, B 6, A 5, y C 5. Cuando
C 5 finales en t =235 no hay ningún trabajo para hacer hasta t =240 cuando A y
B se hacen listos, entonces el sistema va ocioso para 5 msec. La opción de dirigir
B 5 antes
C 4 es arbitrario. El otro camino también es permitido.
15. Un lector DVD anda bien a casa de la inspección, pero los altos buscan tiempo
de los corrientes optan - ical la grabación de sistemas limita su utilidad con el
suministro de una corriente sola de datos. Los paseos de DVD no pueden
apoyar corrientes múltiples con tiempos de principio diferentes
o las funciones de control PARECIDAS A UN GRABADOR DE VÍDEO
como pausa, rebobinado, y rápido expiden para dif-ferent a usuarios. Con la
tecnología corriente los datos tendrían que a almacenado en un buffer en una
memoria muy grande. Los discos duros son simplemente mejores.
16. Si el caso peor espera es 6 minuto, una nueva corriente debe comenzar cada 6 minuto.
Para a
Película de 180 minutos, 30 corrientes son necesarias.
17. L a v e l o c i d a d d e t r a n s f e r e n c i a d e d a t o s es 0. 5 M B/ s e gundos . Un
minuto del vídeo usa 30 M B . Para ir para - sala o hacia atrás 1 minuto cada uno
requiere 60 MB.
18. El HDTV no hace ninguna diferencia. Hay todavía 216,000 marcos en la
película. La pérdida para cada marco es aproximadamente medio bloque de
disco, o 0.5 KILOBYTES. Para la película entera, esta pérdida es 108
KILOBYTES.
19. Hay alguna pérdida para cada marco. Más marcos que usted tiene, más pérdida
usted tiene. El NTSC tiene un precio de marco más alto, entonces esto tiene
ligeramente más pérdida. Pero considerando los números implicados, esta
pérdida no es una fracción significativa del espacio de disco total.
20. El efecto principal de HDTV es marcos más grandes. Los marcos grandes
tienden a hacer la desventaja de pequeños bloques menos seria porque los
marcos grandes pueden ser leídos en eficazmente. Así el argumento de
interpretación de disco a favor de bloques grandes disminuye. Además, si los
marcos no son partidos sobre bloques (cuando ellos no están aquí), teniendo Imarcos que son una fracción sustancial de un bloque es un problema serio.
Esto a menudo puede ocurrir que un bloque es en parte lleno y un I-marco
grande parece siguiente, gastando una cantidad grande del espacio en el bloque
corriente. E n g e n e r a l , yendo a HDTV favorece el pequeño modelo de
bloque.
21. El parachoques es bastante grande si el número de I-marcos es 4 o menos. El probabilel ity de la adquisición exactamente k I-marcos es C (24, k) yo k B 24-k, donde tengo 0.1
años y B es
0.9. Las probabilidades de adquisición exactamente 0, 1, 2, 3, y 4 I-marcos son 0.0798.
0.213, 0.272, 0.221, y 0.129, respectivamente. La suma de éstos es 0.915. Este
significa que hay un 0.085 o la posibilidad del 8.5 % del fracaso. Este está
lejos demasiado grande para aceptar.
22. Conseguir el juego señalan en medio del parachoques, tenemos que ser
capaces de leer y almacenar tres corrientes inmediatamente. Cuando la
película continúa en 12 minuto, comenzamos a almacenar las corrientes que
son actualmente en 15 minuto y 20 minuto. Después de 3 minutos, hemos
almacenado 15–18 minuto y 20-23 minuto. En aquel punto dejamos caer la
corriente privada y comenzamos a mostrar del parachoques. Después de un 2
minuto adicional, tenemos 15–25 minuto almacenado y el punto de juego es 17
minuto. En este punto sólo cargamos el parachoques de la corriente ahora en
25 minuto. En 3 minuto, tenemos 15–28 minuto
en el parachoques y el juego el punto es 20 minuto. Hemos conseguido nuestro
objetivo. Como somos f u e r a de la sincronización con el cerca de corrientes
de vídeo a petición, este es el mejor que podamos hacer.
23. Una alternativa debe tener un archivo separado para cada lengua. Esta
alternativa minimiza el uso de RAM, pero la basura las cantidades grandes del
espacio de disco. Si el espacio de disco es barato y el objetivo es apoyar tan
muchas corrientes posibles inmediatamente, este acercamiento es atractivo.
Otra alternativa debe almacenar la pista de audio para cada lengua por
separado y hacer un suplementario procura por marco traer el de audio. Este
esquema hace el uso eficiente del espacio de disco, pero introduce extra busca y
así hace más lenta la interpretación.
24. La normalización constante, C, es 0.36794, entonces las probabilidades son 0.368,
0.184, 0.123, 0.092, 0.074, 0.061, 0.053, y 0.046.

25. Un disco de 14 GRAN BRETAÑA sostiene 14 ´ 230 o 15,032,385,536 bytes .
Si éstos son uniformemente partidos más de 1000 cilindros, cada cilindro
sostiene 15,032,385, que es sólo bastante para un clip de vídeo de 30
segundos. Así cada clip ocupa un cilindro. La pregunta es entonces que
fracción del peso total es representada por los 10 primeros clips de 1000.
Sumando 1, 1/2... 1/10, nos ponemos 2.92895. Multiplicando este por 0.134 nos
ponemos 0.392, entonces el brazo gasta c a s i e l 4 0 % de su tiempo dentro
del medio 10 cilindros.
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 33
31
26. Para cuatro artículos, la ley de Zipf cede probabilidades de 0.48, 0.24, 0.16, y 0.12.
Las proporciones de estas probabilidades también describen la utilización
relativa de los paseos para el Higo 7-0 (a). Para los otros tres arreglos striping
todos los paseos serán usados igualmente, asumiendo que cada uno quién paga
para una película lo mira por al final. El resultado en un tiempo particular
podría ser diferente, sin embargo.
Si cada uno en la ciudad quiere comenzar a mirar una película en 8 de la mañana
el arreglo del Higo 7-0 (b) golpearía al principio el primer disco el más difícil,
entonces el siguiente disco 15 minutos más tarde, etc. Los arreglos del Higo 70 (c) (o d) no serían afectados este camino.
27. El AMIGO corre en 25 marcos/segundo, entonces los dos usuarios son
desconectados por 150 marcos. Combinarlos en 3 medios de minuto que
cierran el hueco por 50 marcos/minuto. Uno va 25 marcos/minuto más rápido
y uno va 25 marcos/minuto más despacio. El precio de marco normal
es 1500 marcos/minuto, entonces la velocidad o abajo es 25/1500 o 1/60, que es
aproximadamente el 1.67 %.
28. Para NTSC, con 30 marcos/segundo, una ronda es 33.3 msec. El disco hace
girar 180 tiempos/segundo, entonces la latencia rotatoria media es media
rotación o 2.8 msec. El MPEG-2 corre en aproximadamente 500,000 bytes/segundos o
aproximadamente 16,667 bytes/marcos. En
3 2 0 M B / s e g u n d o s , el tiempo de transferencia para un marco es
a p r o xi ma d a me n t e 5 1 msec. Así buscar, la latencia rotatoria, y los tiempos
de transferencia ascienden a aproximadamente 5.8 msec. Cinco corrientes
así comen por completo 29 msec de 33.3 msec, que es el máximo.
29. El promedio busca el tiempo va de 3.0 msec a 2.4 msec, entonces el tiempo por
ópera - tion es reducido a 5.2 msec. Este añade uno más corriente, haciendo seis
en total.
30. Seis corrientes. El Striping es inútil. Cada operación de disco todavía toma 5.2
msec para conseguir el brazo sobre los datos. Si el tiempo de transferencia es
51 msec o 13 msec no hace mucha diferencia.
31. Para la primera hornada de cinco peticiones, el crítico es para el cilindro 676, cuarto
en la lista, pero con una fecha límite de t =712 msec. Entonces cada petición
debe ser servida en 3 msec o menos para el cuarto para ser hecho en t =712
msec.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 8
1. Tanto USENET como SETI@home podría ser descrito cuando la amplia área
distribuyó sistemas. sin embargo, USENET es realmente más primitivo que el
esquema de Higo 8-1c, ya que esto no requiere ninguna infraestructura de red
además de uniones de punto a punto entre pares de máquinas. También, ya que
esto no hace ningún trabajo de procesamiento además necesario de asegurar la
diseminación apropiada de artículos de noticias, podría ser debatido si esto es
realmente un sistema distribuido de la clase por la que estamos preocupados en
este capítulo. SETI@home es un ejemplo más típico del sistema distribuido
de una amplia área; los datos son distribuidos a nodos remotos que entonces
devuelven resultados de cálculos al nodo de coordinación.
34
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 7
2. Según los detalles de como las CPUs están relacionadas con la memoria, uno
de ellos pasa primero, p.ej, agarra el autobús primero. Esto completa su
operación de memoria, entonces el otro pasa. No es previsible qué va primero,
pero si el sistema ha sido diseñado para el consecuencia secuencial, esto no
debería importar.
3. Una máquina 200-MIPS publicará 200 millones de referencias/segundos de
memoria, consum-ing 200 millones de ciclos de autobús o mitad de la capacidad
del autobús. Esto toma sólo dos CPUs para consumir el autobús entero. El
Caching deja caer el número de peticiones/segundo de memoria a 20 millones,
permitiendo a 20 CPUs compartir el autobús. Ponerse 32
CPUs en el autobús, cada uno podría solicitar no más que 12,500,000
peticiones/segundo. Si sólo 12.5 millones de 200 millones de la memoria se refieren ences salen en el autobús, el escondite el precio de señorita debe ser 12.5/200
o el 6.25 %. Este significa que el precio de golpe es el 93.75 %.
4. Las CPUs 000, 010, 100, y 110 son cortadas de memorias 010 y 011.
5. Cada CPU maneja sus propias señales completamente. Si una señal es generada
del teclado y el teclado no es adjudicado a ninguna CPU particular (el caso
habitual), de alguna manera la señal tiene que ser dada a la CPU correcta para
manejarse.
6. Para publicar una llamada de sistema, un proceso genera una trampa. La trampa
interrumpe su propia CPU. De alguna manera, la información que una CPU de
esclavo ha tenido una trampa tiene que ser comunicada a la CPU de maestro.
Este no pasa en el primer modelo. Si hay instrucciones de trampa de
interprocesador, este puede ser usado para señalar al maestro.
Si ningunas tales instrucciones existen, el esclavo puede coleccionar los
parámetros del sys-tem llamada y ponerlos en una estructura de datos en la
memoria que el maestro vota la estafa - tinuously cuando es ocioso.
7. Aquí está una solución posible:
entre en 3 región:
CERRADURA de TST
| Prueban el valor de cerradura
Los JNE ENTRAN en 3 REGIÓN
| Si es distinto a cero, vaya el intento
otra vez
REGISTRO de TSL, CERRADURA
| cerradura de Copia para registrarse y
poner cerradura a 1
¿CMP REGISTER,#0
| Era cero de cerradura?
Los JNE ENTRAN en 3 REGIÓN
| Si esto no fuera el cero, la cerradura
fue puesta, entonces lazo
RET
| Vuelven al visitante; la región crítica entró
8. Probablemente las cerraduras en estructuras de datos son bastante. Es difícil
imaginar algo que un pedazo de código podría hacer lo que es crítico y no
implica alguna estructura de datos de grano. Toda la adquisición de recurso y
la liberación usan estructuras de datos para el examen - ple. Mientras no puede
ser probado, es muy probable que se cierra en estructuras de datos son
suficientes.
9. Esto toma 16 ciclos de autobús para mover el bloque y esto va ambos caminos para
cada TSL.
Así cada 50 ciclos de autobús, 32 de ellos son gastados en el movimiento del
bloque de escondite. Por consiguiente, el 64 % de la amplitud de banda de
autobús es gastado en transferencias de escondite.
10. Sí esto, pero el tiempo de interencuesta podría terminar por ser muy largo,
degradando la interpretación. Pero sería correcto, hasta sin un máximo.
11. Está t a n bien como TSL. Es usado precargando 1 en el registro para ser usado.
Entonces aquel registro y la palabra de memoria son atomically cambiado.
Después de la instrucción, la palabra de memoria es cerrada con llave (es decir,
tiene un valor de 1). Su previ-ous valor está contenido ahora en el registro. Si
fuera antes cerrado con llave, la palabra no tiene ser cambiado y el visitante
debe el lazo. Si fuera antes abierto, es cerrado con llave ahora.
12. El lazo consiste en una instrucción TSL (5 nsec), un ciclo de autobús (10 nsec),
y un JMP atrás a la instrucción TSL (5 nsec). Así en 20 nsec, 1 ciclo de autobús
es solicitado ocupando 10 nsec. El lazo consume el 50 % del autobús.
13. A es el proceso sólo seleccionado. Pueden haber bien otros en la misma CPU.
14. La programación de afinidad tiene que ver con la puesta del hilo derecho en la CPU
derecha.
Haciendo tan podría reducir bien TLB señoritas ya que éstos son guardados
dentro de cada CPU. Por otra parte, esto no tiene ningún efecto en faltas de
página, desde si una página está en la memoria para una CPU, esto está en la
memoria para todas las CPUs.
15. (a) 2 (b) 4 (c) 8 (d) 5 (e) 3 (f) 4.
16. En una rejilla, el caso peor es nodos en esquinas de enfrente que tratan de comunicarse.
Sin embargo, con un torus, las esquinas de enfrente son sólo dos saltos aparte. El
caso peor es una esquina que trata d e di r i gi r s e a un nodo en el medio. Para k
raro, esto toma
(k -1) / 2 saltos para ir de una esquina al medio horizontalmente y el otro
(k -1) / 2 saltos para ir al medio verticalmente, para un total de k -1. Para
hasta k, el medio es un cuadrado de cuatro puntos en el medio, entonces el
caso peor es de una esquina al punto más distante en aquel cuadrado de
cuatro puntos. Esto toma k/ 2 saltos para ponerse allí horizontalmente y
también k/2 verticalmente, entonces el diámetro es k.
17. La red puede ser cortada en dos por un avión durante el medio, dando a dos
sistemas, cada uno con una geometría de 8 ´8 ´4. Hay 64 eslabones que
corren entre las dos mitades, para la amplitud de banda de bisección de 64
Gbps.
18. Si sólo consideramos el tiempo de red, conseguimos 1 nsec por trozo o
tardanza 512-nsec por paquete. Para copiar 64 bytes 4 bytes a la vez, 320
nsec son necesarios en cada lado, o 640 total nsec. Añadiendo el tiempo de
alambre 512-nsec, conseguimos 1132 total nsec. Si dos copias adicionales son
necesarias, conseguimos 1792 nsec.
19. Si consideramos sólo el tiempo de alambre, una red 1-Gbps entrega 125MB/segundos.
El movimiento de 64 bytes en 1152 nsec es 55.6 MB/segundos. El movimiento de 64
bytes en 1792 nsec
es 35.7 MB/segundos.
20. En una máquina de memoria compartida esto basta para pasar la aguja del
mensaje de la CPU que ejecuta enviar a la CPU que ejecuta recibir , con possible traducciones entre direcciones de memoria virtuales y físicas. En a
el multiordenador sin la memoria compartida una dirección en el espacio de
dirección de una CPU no tiene ningún sentido a otra CPU, entonces los
contenido actuales del parachoques enviar tienen que ser transmitidos como
paquetes y luego vueltos a montar en el parachoques del proceso de recepción.
Al programador los procesos parecen idénticos, pero el tiempo requerido será
mucho más largo en el multiordenador.
21. El tiempo para mover bytes k por la entrada - salida programada es 20 kilobyte nsec. El
tiempo para DMA
es 2000 + 5 kilobyte nsec. Comparando éstos y solucionando para k conseguimos
el punto de equilibrio en 133 bytes.
22. Claramente la cosa incorrecta pasa si una llamada de sistema es ejecutada
remotamente. Intento - ing para leer un archivo sobre la máquina remota no
trabajará si el archivo no está allí. También, el ajuste de una alarma en la
máquina remota no devolverá una señal a la máquina que llama. Un modo de
manejar llamadas de sistema remotas es atraparlos y devolverlos al sitio inicial
para la ejecución.
23. Primero, en una red de emisión, una petición de emisión podría ser hecha.
Segundo, una base de datos centralizada de quién tiene qué página podría ser
mantenida. Tercero, cada página podría tener una base de casa, indicada por
los trozos k superiores de su dirección virtual; la base de casa podría guardar la
pista de la posición de cada una de sus páginas.
24. En esta hendidura, el nodo 1 tiene A, E, y G, el nodo 2 tiene B y F, y el nodo 3 tiene C,
D,
H, y yo. El corte entre nodos 1 y 2 ahora contiene AB y EB para un peso de 5.
El corte entre nodos 2 y 3 ahora contiene el CD, CI, FI, y FH para un peso de
14. El corte entre nodos 1 y 3 ahora contiene EH y GH para un peso de 8. La
suma es 27.
25. La mesa de archivos abiertos es guardada en el grano, tan si un proceso tiene
archivos abiertos, cuando es descongelado y trata de usar uno de sus archivos, el
nuevo grano no sabe sobre ellos. Un segundo problema es la máscara de señal,
que también es almacenada
en el grano original. Un tercer problema es que si una alarma es pendiente, esto va a
márchese en la máquina incorrecta. En general, el grano es lleno de trozos y pedazos
de la información sobre el proceso, y ellos tienen que ser con éxito emigrados
también.
26. Los nodos de Ethernet deben ser capaces de descubrir colisiones entre
paquetes, entonces pro - pagation tardanza entre los dos nodos el más
extensamente separados debe ser menos que la duración del paquete más corto
para ser enviado. Por otra parte el remitente puede transmitir totalmente un
paquete y no descubrir una colisión aunque el paquete sufra una colisión cerca
del otro final del cable.
27. Las carreras de middleware en sistemas operativos diferentes tan el código
son claramente dif-ferent porque las llamadas de sistema empotradas son
diferentes. Lo que ellos tienen en común produce un interfaz común a la capa
de aplicación encima de ellos. Si la capa de aplicación sólo hace llamadas a la
capa de Middleware y
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 37
31
ningunas llamadas de sistema, entonces todas las versiones de ello pueden tener
el mismo código fuente. Si ellos también hacen llamadas de sistema
verdaderas, éstos se diferenciarán.
28. La mayor parte de servicios apropiados son
(a) Unión no fiable. (b)
corriente de byte
Confiable.
29. Es mantenido jerárquicamente. Hay un servidor mundial para .edu que sabe
sobre todas las universidades y un servidor .com que sabe sobre todos los
nombres que se terminan en .com. Así para alzar la vista cs.uni.edu, una
máquina miraría primero
uni en el servidor .edu, luego vaya allí para preguntar sobre cs, etcétera.
30. Un ordenador puede tener muchos procesos que esperan uniones entrantes.
Éstos podrían ser el servidor de Web, servidor de correo, servidor de noticias, y
otros. Algún camino es necesario para hacer posible de dirigir una unión
entrante a un poco de proceso particular. Esto es hecho teniendo cada proceso
escuchan a un puerto específico. Ha sido concordado sobre aquellos servidores
de Web escuchará para virar a babor 80, entonces las uniones entrantes
dirigidas al servidor de Web son enviadas para virar a babor 80. El número sí
mismo era una opción arbitraria, pero algún número tuvo que ser elegido.
31. Ellos pueden. Por ejemplo , www.intel.com no dice nada sobre donde el servidor
es.
32. Un camino sería para el servidor de Web para embalar la página entera, incluso
todas las imágenes en un archivo de cremallera grande y envían a todo el
asunto la primera vez tan sólo una unión es necesaria. Un segundo camino
sería usar un protocolo connectionless como UDP. Este eliminaría la unión
arriba, pero requeriría que servidores y navegadores hicieran su propio control
de error.
33. Tener el valor de un leído depende de si un proceso resulta estar en la misma
máquina que el último escritor no es de nada transparente. Este aboga por
mak-ing se cambia sólo visible al proceso que hace los cambios. Por otra parte,
tener un gerente de escondite solo por máquina es más fácil y más barato para
poner en práctica. Tal gerente se hace más complicado si esto tiene
mantener copias múltiples de cada archivo modificado, con el valor devuelto
según quién hace la lectura.
34. Algún archivo cached debería ser devuelto al servidor. Todo el estándar paging algoritmos puede ser usado, como LRU o segunda posibilidad. En
contraste con vir-tual memoria, sin embargo, usando LRU exacto es posible
porque las referencias de archivo son infrecuentes (escala de tiempo de
milisegundo, no escala de tiempo de nanosegundo).
35. La memoria compartida trabaja con páginas enteras. Este puede conducir a
falso compartiendo, en cual acceso a variables sin relaciones que resultan estar
en la misma paliza de causa de página. La puesta de cada variable en una
página separada es pródiga. El acceso basado en el objeto elimina estos
problemas y permite un grano más fino de compartir.
38
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 8
36. Desmenuzar en cualquiera de los campos del tuple cuando es insertado en el
espacio tuple no ayuda porque el en puede tener parámetros sobre todo
formales. Una optimización que siempre trabaja nota que todos los campos
tanto de como en son escritos a máquina. Así la firma de tipo de todo tuples en
el espacio tuple es conocida y el tipo de tuple necesario en un en también es
conocido. Este aconseja crear un subespacio tuple para cada firma de tipo. Por
ejemplo, todo el (int, int, int) los tuples entran en un espacio y todo el (cuerda,
int, flotador) los tuples entran en un espacio diferente. Cuando un en es
ejecutado, sólo el subespacio que hace juego tiene que ser buscado.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 9
1. La coacción es que ningunas dos células contienen las mismas dos cartas, por
otra parte el desciframiento sería ambiguo. Así cada una de la 676 estafa de
elementos de la matriz - tains diferente de 676 digrams. ¡El número de
combina-diferente tions es así 676!. Este es una muy buena parte.
2. el tiempo ha venido la morsa dijo a la conversación de
muchas cosas de barcos y zapatos y lacre de coles y reyes
de por qué el mar se hierve caliente y si los cerdos tienen
alas
pero espere un poco las ostras gritadas antes de que
tengamos nuestra charla para algunos de nosotros son sin
aliento y todos nosotros somos gordos
ninguna prisa dijo que el carpintero ellos le agradecieron mucho por esto
De Por el espejo (Tweedledum y Tweedledee).
3. ¡El número de permutaciones es n!, entonces este es el tamaño del espacio
clave. Una ventaja consiste en que el ataque estadístico basado en propiedades
de lenguas naturales no trabaja porque un E realmente representa un E, etc.
4. El remitente escoge una llave arbitraria y lo envía al tercero confiado
codificado con la llave secreta que ellos comparten. El tercero confiado entonces
descifra la llave arbitraria y nuevas criptas ello con la llave secreta que esto
comparte con el receptor. Este mensaje es enviado entonces al receptor.
5. Una función como  =x k es fácil para calcular pero la toma de la raíz de k-th de
y es mucho más difícil.
6. Esto depende de cuanto de largo la contraseña es. El alfabeto de cual contraseñas


es construido tiene 62 símbolos. El espacio de búsqueda total es 625 + 626 + 627
628
1014
+ , que es aproximadamente 2 ´
. Si se conoce que la contraseña es
caracteres k, el espacio de búsqueda es reducido a sólo 62 kilobyte. La proporción

de éstos es así 2 ´ 1014 / 62 kilobyte. Para k de 5 a 8, estos valores son 242,235,
3907, 63, y 1. En otras palabras, el aprendizaje que la contraseña es sólo 5
caracteres reduce el espacio de búsqueda por a
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 9
39
el factor de 242,235 porque todas las contraseñas largas no tienen que ser intentadas.
Este
es un triunfo grande. Sin embargo, el aprendizaje que esto es ocho caracteres no
ayuda mucho porque esto significa que todas las contraseñas (fáciles) cortas
pueden ser saltadas.
7. Trate de calmar al ayudante. El algoritmo de codificación de contraseña es
público. Pase - las palabras son codificadas por el programa de entrada al
sistema t a n pr ont o c omo ellos son t e c l e a d o s , y la contraseña
criptografiada es comparada a la entrada en el archivo de contraseña.
8. No, esto no hace. El estudiante puede averiguar fácilmente cual el número
arbitrario para su superusuario es. Esta información está en el archivo de
contraseña no codificado. Si es
0003, por ejemplo , entonces él sólo trata de codificar contraseñas
potenciales como Susan0003, Boston0003, IBMPC0003, etc. Si otro usuario
tiene la contraseña Bos-ton0004, él no lo descubrirá, sin embargo.
9. Hay muchos criterios. Aquí están algunos de ellos:
Debería ser fácil e indoloro para medir (no muestras de sangre)
deberían haber muchos valores disponibles (no observan el
color)
La característica no debería cambiarse con el tiempo (no color de pelo)
Debería ser difícil forjar la característica (no peso)
10. No, no es factible. El problema es que los límites de serie no son comprobados.
Las series arreglan no la línea con límites de página, entonces el MMU no es
de ninguna ayuda. Además, la fabricación de un grano llamar para cambiar el
MMU en cada llamada de procedimiento sería prohibitivamente cara.
11. Si pueden confiar en todas las máquinas, esto trabaja okey. Si no pueden
confiar en unos, el esquema se estropea, porque una máquina poco fiable podría
enviar a un sabio mes-a una máquina de confianza que le pide realizar alguna
orden en el nombre
del superusuario. La máquina que recibe el mensaje no tiene ningún modo de
contar si la orden realmente provino con el superusuario, o con un estudiante.
12. Ambos hacen el uso de funciones de codificación de dirección única. El UNIX
almacena todas las contraseñas en el archivo de contraseña el esquema de
Lamport y codificado usa un - camino funciones para generar una secuencia de
contraseñas.
13. Esto no trabajaría para usarlos avanzado. Si un intruso capturara un, él sabría cual
usar próxima vez. La utilización de ellos hacia atrás previene este peligro.
14. Un modo de firmar un documento sería para la tarjeta elegante para leer en el
docu-ment, hacer un picadillo de ello, y luego codificar el picadillo con la
llave privada del usuario, almacenada en la tarjeta. El picadillo criptografiado
sería la salida al ordenador de cafetería de Internet, pero la llave secreta nunca
dejaría la tarjeta elegante, entonces el esquema
es seguro.
15. Si las capacidades son usadas para hacer posible de tener pequeñas esferas de
protección, no; por otra parte sí. Si un redactor, por ejemplo, es arrancado con
sólo
las capacidades del archivo para ser corregido y su archivo reutilizable, entonces
pase lo que pase bromas están al acecho dentro del redactor, todo que esto puede
hacer es leído aquellos dos archivos. Por otra parte, si el redactor puede tener
acceso a todos los objetos del usuario, entonces los caballos de enero Tropueden hacer su trabajo sucio, capacidades o no.
16. El compilador podría insertar el código en todas las referencias de serie para hacer la
comprobación de límites.
Este rasgo prevendría ataques de desbordamiento parachoques. No es hecho
porque esto haría más lentos todos los programas considerablemente. Además,
en C no es ilegal
para declarar una serie de tamaño 1 como un parámetro de procedimiento y
luego referirse a ele-ment 20, pero claramente la serie actual cuya dirección ha
sido pasada debería tener al menos 20 elementos.
17. De un punto de vista de seguridad, sería ideal. Los bloques usados a veces
son expuestos, escape información valiosa. De un punto de vista de interpretación,
el zeroing bloquea el tiempo de CPU de basura, así degradando la
interpretación.
18. Esto debería leer la contraseña entera todo el tiempo, aun si esto ve temprano
en que la contraseña se equivoca. Aquellos camino, una falta de página
siempre ocurrirá cuando pasar palabra - es en parte en una página de memoria.
19. Para cualquier sistema operativo todos los programas deben comenzar o la
ejecución en una dirección conocida o hacer almacenar una dirección inicial en
una posición conocida en el jefe de archivo de programa. (a) el virus primeras
copias las instrucciones en la dirección de principio normal o la dirección en el
jefe a un lugar seguro, y luego inserta un salto a sí en el código o su propia
dirección de principio en el jefe. (b) Cuando hecho con su propio trabajo, el
virus ejecuta las instrucciones de las que esto tomó prestado seguido
un salto a la siguiente instrucción que habría sido ejecutada, o transfiere el
control a la dirección que esto encontró en el jefe original.
20. Un registro de bota de maestro requiere sólo un sector, y si el resto de la primera pista
es libre esto proporciona el espacio donde un virus puede esconder el sector de bota
original también
como una parte sustancial de su propio código. Los reguladores de disco
modernos leen y almacenan pistas enteras en un buffer a la vez, así no habrá
ninguna tardanza perceptible o sonidos de los adicionales busca cuando los
datos suplementarios son leídos.
21. C programas tienen la extensión .c. En vez de usar el sistema de acceso
llaman para probar para ejecutan el permiso, examinan el nombre de archivo
para ver si esto se termina en .c. Este código lo hará
trabajo por horas *file 3 nombre;
int len;
archivo 3 nombre = dp-> d 3 nombre;
len = strlen (archivo 3 nombre);
si (strcmp (&file 3 nombre [len -2 cuenta, ".c") == 0) infectan (s);
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 41
39
22. Ellos probablemente no pueden contar, pero ellos pueden adivinar que XORing
una palabra dentro del virus con el resto producirá el código máquina
válido. Sus ordenadores pueden intentar sólo cada palabra de virus por su
parte y ver si cualquiera de ellos produce el código máquina válido. Para hacer
más lento este proceso, Virgil puede usar una mejor codificación algo-rithm,
como la utilización de llaves diferentes para el raro y hasta palabras, y luego
rotat-ing la primera palabra dejada por algún número de trozos determinados
por una función de picadillo
en las llaves, haciendo girar la segunda palabra que número de trozos más uno, etc.
23. El compresor es necesario para comprimir otros programas ejecutables como la
parte del proceso de infección de ellos.
24. La mayor parte de virus no quieren infectar un archivo dos veces. Esto no podría trabajar
hasta.
Por lo tanto es importante ser capaz de descubrir el virus en un archivo para ver
si es infectado ya. Todas las técnicas solían hacer con fuerza para el software
de antivirus para descubrir virus también lo hace con fuerza para el virus sí
mismo para contar qué archivos han sido infectados.
25. Primero, el correr del programa fdisk d e l d i s c o d u r o es un error. Puede ser
infectado y esto puede infectar el sector de bota. Tiene que ser dirigido del
CD-ROM original o un disco flexible protegido contra escritura. Segundo, los
archivos restaurados pueden ser infectados. El aplazamiento de ellos sin
limpiarlos puede instalar de nuevo sólo el virus.
26. Sí, pero el mecanismo es ligeramente diferente del Windows. En UNIX un companion virus puede ser instalado en un directorio en el camino de búsqueda
delante del que en el cual el verdadero programa vive. El ejemplo más común
debe insertar un programa ls en un directorio de usuario, que con eficacia
anula/bin/ls porque es encontrado primero.
27. Un gusano es un programa aislado que trabaja por sí mismo. Un virus es un
fragmento de código que ata a otro programa. El gusano se reproduce haciendo
más copias del programa de gusano. El virus se reproduce infectando otros
programas.
28. Obviamente, la ejecución de cualquier programa de una fuente desconocida es
peligrosa.
La autoextracción de archivos puede ser sobre todo peligrosa, porque ellos pueden
liberar archivos múltiples en directorios múltiples, y el programa de extracción
sí mismo podría ser un Caballo de Troya. Si una opción está disponible es mucho
mejor obtener archivos en la forma de un archivo ordinario, que usted puede
extraer entonces con instrumentos en los que usted confía.
29. Esto no importa. Si el cero se llena es usado, entonces S2 debe contener el prefijo
verdadero como
un número entero no firmado en la orden baja k trozos. Si la extensión de signo
es usada, entonces S2 también debe ser el signo ampliado. Mientras S2 contiene
los resultados correctos de cambiar una dirección verdadera, esto no importa lo
que está en los trozos superiores no usados de S2.
42
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 9
30. Aquí está la matriz de protección:
2222222222222222222222222222222222222222222222222222
222222222222222222222222O2b2j2e2c2t22222222222222222222222
22D22o2m22a2in22222P2P2P22-N22o2t2e2s22p22ro22g21222p2r2o2j2e2c2t2.t222s2p2l2a2s2h2.2g2if22
asw
Lea
Leer
Leer
Leer
Escri
Escribir
bir
222222222222222222222222E22x2ec2222222222222222222222222
gmw
Leer
Leer
2222222222222W2r2i2te2222222222222222W22r2it2e2222222222222222
usuarios Lea
Leer
22222222222222222222222222222222W22r2it2e2222222222222222
devel
Leer
Leer
222222222222222222222222E22x2ec2222222222222222222222222
31. Los ACLs son como sigue:
2222222222222222222222222222222222222
22F2i2le2222222222A2C22L22222222222222222222
PPP-notas gmw:RW; *:R
prog1
asw:RWX; devel:RX; *:R
project.t
asw:RW; users:RW
22s2p2l2a2s2h2.g2i2f2222a2s2w2:2R2W22;2d22e2v2e2l:2R222222222
Asuma que
* significa todos.
32. Si asw quiere permitir gmw, pero ningún otro miembro de usuarios para mirar
splash.gif él podría modificar el ACL a asw:RW; devel:R; gmw:R.
33. Los navegadores existentes vienen precargados por las llaves públicas de varios
confió en terceros como la Corporación Verisign. Su negocio consiste en verifying llaves públicas de otras compañías y certificados de composición para
ellos. Estos certificados son firmados por, p or e j e mp l o , la llave privada de
Verisign. Ya que la llave pública de Verisign es incorporada en el navegador,
los certificados firmados con su llave privada pueden ser verificados.
34. Es entrado sólo en la matriz dos veces. En el ejemplo dado en el texto, el printer1
está en dos esferas simultáneamente. No hay ningún problema aquí.
35. Para hacer un archivo legible por cada uno excepto una persona, las listas de
control de acceso son la única posibilidad. Para compartir archivos privados, las
listas de control de acceso o capa-bilities pueden ser usados. Para hacer el
público de archivos, las listas de control de acceso son las más fáciles, pero
también puede ser posible poner una capacidad del archivo o archivos en un lugar
famoso en un sistema de capacidad.
36. El servidor verificará que la capacidad es válida y luego generar una capacidad
más débil. Este es legal. D e s p u é s d e t o d o , el amigo puede r e g a l a r sólo el
capacidad esto ya tiene. Dándolo el poder deregalar algo aún más débil no es una
amenaza de seguridad. Si usted tiene la capacidad de regalar, supongamos,
leer/escribir el poder, regalando el poder sólo para leer no es un problema.
37. El no Que anotaría, que viola
el * propiedad.
38. El no Que leería, que viola la propiedad de seguridad simple.
39. Una escritura de proceso a otro proceso es similar a una escritura de proceso a un
archivo.
Por consiguiente, el * la propiedad tendría que sostener. Un proceso podría
escribir, pero no anotar. El Proceso B podría enviar a C, D, y E, pero no a A.
40. En la foto original, el R, G, y B, despide cada uno permite valores integrales
distintos de 0 a 255, incluido. Este significa que hay 224 puntos válidos en
color el espacio que un pixel puede ocupar. Cuando 1 trozo es llevado para
nel chan-encubierto, sólo hasta los valores son permitidos (asunción que el
trozo secreto es sustituido por a
0 en todas partes). Así tan la mayor parte del espacio es cubierto, pero la resolución en
color
es sólo la mitad como buena. En total, sólo 1/8 de los colores puede ser
representado. Trazan un mapa de los colores rechazados en el color adyacente
todos cuyo valores son nú me r os pa r e s , por ejemplo , los colores (201, 43,
97), (201, 42, 97), (200, 43,
96), (y 200, 42, 97) ahora todo el mapa en el punto (200, 42, 96) y puede ser ya
no distinguido.
41. La imagen contiene 1,920,000 pixeles. Cada pixel tiene 3 trozos que pueden
ser usados, dados una capacidad cruda d e 7 2 0 , 0 0 0 b yt e s . Si este es con
eficacia doblado debido a la compresión del texto antes de almacenarlo, la
imagen puede creer que el texto de ASCII ocupa - ing aproximadamente
1,440,000 bytes antes de la compresión. Así una imagen sola puede sostener
el valor de un disco flexible entero de datos de ASCII. No hay ninguna
extensión debido al steganography. La imagen con los datos escondidos es el
mismo tamaño que el origi-nal imagen. La eficacia es el 25 %. Este puede ser
fácilmente visto del hecho esto
1 trozo de cada muestra en color de 8 trozos contiene la carga útil, y la
compresión aprieta dos trozos del texto de ASCII por trozo de carga útil. Así
por pixel de 24 trozos, effec-tively 6 trozos del texto de ASCII están siendo
codificados.
42. Los disidentes podrían firmar los mensajes usando una llave privada y luego
tratar de hacer público extensamente su llave pública. Este podría ser posible
teniendo alguien lo pasan de contrabando del país y luego lo fijan al Internet
de un intento de coun-libre.
43. Lo siguiente es dos programas C que hacen el trabajo. Dirigido en en el mismo
directorio pero en ventanas diferentes. El principio descifra primero.
/* codificador encubierto - Escrito por Albert S. Woodhull el 3 de diciembre de
2000
C versión, usando permisos de archivo
Este programa espera leer una cuerda de ASCII ’0’ 'y 1' caracteres de
su entrada estándar. Esto genera una salida encubierta por
alternativamente
la fabricación de un dueño de archivo legible o no legible, controlando el
tiempo el
el archivo está en cada estado.
Cada "vez de trozo" consiste en tres vez intervalos. El intervalo
medio determina el valor del trozo. Para hacer señas 'un 0' el
archivo es legible durante los dos primeros intervalos y no legible
durante el último
intervalo. Para hacer señas 'un 1' el archivo es legible durante el primer
intervalo y no legible durante los segundos y terceros intervalos.
Un colaborador puede determinar la legibilidad de un archivo para su
dueño aunque el colaborador él mismo no tenga ningún acceso,
mientras el archivo está en
un directorio que puede ser leído.
La llamada de sistema de sueño es usada para controlar el cronometraje.
Este hace
el proceso entero bastante lento, ya que usted no puede dormir menos de
1 segundo.
*/
#define MÁXIMO 80
#include <stdio.h>
#include <fcntl.h>
int principal (vacío)
{
int c;
int yo =
0; int n =
0; int fd;
trabajo por horas s [cuenta de MÁXIMO;
/* consiga la cuerda de entrada, ahorre sólo ’0’s y '1’s, trabajos por horas de
cuenta */
¡mientras (((c = getchar ())! = EOF) && (n <MÁXIMO))
si ((c == ’0’) || (c == ’1’)) s [n ++ cuenta = c;
s [n cuenta = ’’;
/* cree el archivo de señal */
fd = creat ("/tmp/tmp000", 0600);
/* para cada uno ’0’ 'o 1' ejecutan la secuencia correspondiente */
¡mientras (yo! = n)
{
c = s [yo cuenta ++;
chmod ("/tmp/tmp000", 0);
interruptor (c)
{
caso ’0’:
sueño (2); chmod
("/tmp/tmp000", 0400); sueño
(1);
ruptura;
caso ’1’:
sueño (1);
chmod ("/tmp/tmp000", 0400);
sueño (2);
ruptura;
}
}
/* deshágase de pruebas */
desate ("/tmp/tmp000");
}
-----------------------------------------------------------------------------------------/* decodificador encubierto - Escrito por Albert S. Woodhull el 3 de diciembre
de 2000
C versión, usando permisos de archivo.
Este programa repetidamente comprueba los permisos de un archivo. El
el codificador de compañero alternativamente cambia al dueño trozo legible
de 0 a
1 en una base calculada. Una transición de legible a señales ilegibles
el principio de un poco, el cronometraje de la transición atrás a
señales legibles el valor del trozo. Si el tiempo ilegible es más largo
que
el tiempo legible el trozo es un cero, si esto es más corto el trozo es 1.
*/
#include <stdio.h>
#include <sys/stat.h>
#define VERDADERO
#define FALSO
0
1
int principal (vacío)
{
struct stat statbuf;
descifre de int, c0, c1, modo, p0, p1;
/* Comience el decodificador antes de comenzar el codificador. Este
lazo espera el archivo a ser creado. */
mientras (stat ("/tmp/tmp000", &statbuf) <0) los/* no hacen nada */;
modo = statbuf.st3mode;
/* Este lazo descubre el principio del primer trozo. */
¡mientras ((modo y S3IRUSR)! = 0)
{
stat ("/tmp/tmp000", &statbuf);
modo = statbuf.st3mode;
}
el descifre = VERDADERO;
mientras (descifrando == VERDADERO)
{
c0 = c1 = 0;
/* fase 0, uso c0 para contar */
p0 = VERDADERO;
mientras (p0 == VERDADERO)
{
/* refresque statbuf y compruebe para el final de la señal */
si (stat ("/tmp/tmp000", &statbuf) <0)
p0 = FALSO;
modo = statbuf.st3mode;
si ((modo y S3IRUSR) == 0) c0 ++; más p0 = FALSO;
}
/* fase 1, uso c1 para contar */
p1 = VERDADERO;
mientras (p1 == VERDADERO)
{
/* refresque statbuf y compruebe para el final de la señal */
si (stat ("/tmp/tmp000", &statbuf) <0) p1 = FALSO;
modo = statbuf.st3mode;
¡si ((modo y S3IRUSR)! = 0) c1 ++; más p1 = FALSO;
}
/* decida sobre el valor de trozo y salida ello */
si (c0> c1) printf ("0"); más printf ("1");
/* haga la salida visible ahora */
fflush (NULO);
/* ver si la señal está todavía allí */
si (stat ("/tmp/tmp000", &statbuf) <0)
{
el descifre = FALSO;
putchar (’0);
}
}
}
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 10
1. El proceso de vocación tiene que poner l a s i g na t ur a de sistema en un registro
o en la pila.
2. Los archivos que serán puestos en una lista son: bonefish, quacker, seahorse, y
comadreja.
3. Esto imprime el número de líneas del archivo xyz que contienen la cuerda "nd" en
ellos.
4. La tubería es como sigue:
diríjase-8 z | siguen-1
La primera parte selecciona las ocho primeras líneas de z y los pasa para seguir,
que sólo escribe el último en la pantalla.
5. Ellos son separados entonces la salida estándar puede ser desviada sin afectar
stan-dard error. En una tubería, la salida estándar puede ir a otro proceso, pero
stan-dard error todavía escribe en el terminal.
6. Cada carreras de programa en su propio proceso tan seis nuevos procesos son
comenzadas.
7. Sí. La memoria del niño es una copia exacta del padre, incluso la pila.
Así si las variables de ambiente estaban en la pila del padre, ellos estarán en la
pila del niño también.
8. Ya que los segmentos de texto son compartidos, sólo 36 KILOBYTES tienen
que ser copiados. La máquina puede copiar 8 0 b yt e s por microsegundo,
entonces 3 6 K I L OB YT ES toman 0.46 msec. Añada otro 1 msec para entrar
y del grano, y todo el asunto toma aproximadamente
1.46 msec.
9. El niño puede cambiar unas variables y luego salir. Con el tenedor, el padre no
es garantizado esto nada el niño puede hacer afectará la dirección del padre
espacio. Con vfork, esta garantía está caducada, introduciendo el possibil-ity de
bichos difíciles de encontrar.
10. Cada DT el uso de CPU es partido por la mitad, entonces después de un intervalo es
10, entonces
5, 2, 1, y 0. Esto toma 5DT para golpear 0.
11. Sí. Esto no puede correr má s tan antes su memoria vuel ve a la lista libre, mejor.
12. Las señales parecen al hardware interrumpe. Un ejemplo es la señal
despertadora, que señala el proceso en un número específico de segundos en el
futuro. El otro es la señal de excepción de punto flotante, que indica la división
por el cero o algún otro error. Muchas otras señales también existen.
13. Los usuarios malévolos podrían causar estragos con el sistema si ellos pudieran
enviar señales
a procesos sin relaciones arbitrarios. Nada pararía a un usuario de escribir un
programa que consiste en un lazo que envió una señal al proceso con PID yo para
todos
yo de 1 a PID máximo. Muchos de estos procesos serían improvisados para la
señal y serían matados por ello. Si usted quiere matar a sus propios procesos,
que está bien, pero la exterminación de los procesos de su vecino no es aceptable.
14. Esto sería la utilización imposible UNIX o Windows 2000, pero el hardware de
Pentium hace realmente este posible. Lo que es necesario debe usar los rasgos
de segmentación del hardware, que no son apoyados por UNIX o por Windows
2000. El sistema operativo podría ser puesto en uno o varios segmentos globales, con
las llamadas de procedimiento protegidas de hacer llamadas de sistema en vez
de trampas. El OS/2 trabaja este camino.
15. Generalmente, ejecución en segundo plano de demonios que hace cosas como
imprenta y envío de correo electrónico. Ya que la gente no se sienta por lo
general en el borde de sus sillas que los esperan a terminar, les dan la prioridad
baja, absorbiendo el tiempo de CPU de exceso no necesitado por procesos
interactivos.
16. Un PID debe ser único. Tarde o temprano el contador se abrigará alrededor y
volverá a 0. Entonces esto va a tan hacia arriba a, por ejemplo, 15. Si sólo
resulta que tratan 15 era hace meses comenzados, pero todavía corre, 15 no
puede ser adjudicado
a un nuevo proceso. Así después de que PID propuesto es elegido usando el
contador, una búsqueda de la mesa de proceso debe ser hecha para ver si el PID
está ya en el uso.
17. Cuando el proceso sale, darán al padre el estado de salida de su niño.
El PID es necesario para ser capaz de identificar al padre entonces el estado de
salida puede ser transferido al proceso correcto.
18. Si todos los trozos sharing3flags son puestos, la llamada de clon comienza un hilo
convencional. Si todos los trozos son limpiados la llamada es esencialmente un
tenedor.
19. Los 1000 son completamente arbitrarios. La única exigencia es que cada tiempo real el hilo consigue una calidad más alta que cada hilo de tiempo compartido.
20. La carga del sistema operativo requiere el entendimiento del formato de sistema de
archivo, ser capaz de buscar el directorio raíz, y ser capaz de interpretar el
formato binario capaz execut-en el cual el sis te ma oper ativo es
almacenado en el disco. Esto
pregunta mucho de un programa de elástico de bota de 512 bytes. Esto puede
cargar apenas sólo el programa de bota de una posición fija, pero este puede ser
un programa largo, con el conocimiento detallado del sistema de archivo,
directorio, y formatos binarios.
21. Con el texto compartido, 100 KILOBYTES son necesarios para el texto.
Cada uno de los tres procesos necesita 80 KILOBYTES para su segmento de
datos y 10 KILOBYTES para su pila, entonces la memoria total necesaria es
370 KILOBYTES. Sin el texto compartido, cada programa necesita 190
KILOBYTES, entonces tres
de ellos necesitan un total de 570 KILOBYTES.
22. Sí. Con un campo 16 bites, pueden haber un máximo de entradas de mapa de
corazón de 64 kilobyte, de ahí un máximo de marcos de página de 64 kilobyte.
Así no hay ningún modo de manejar memorias más grandes que 64 MB.
Cuando VAX original s a l i ó , 2 MB fue considerado una memoria muy grande,
y 6 4 M B era con eficacia el infinidad. Ahora este límite de 64 MB se ha
hecho completamente sensible.
23. El segmento de texto no puede cambiarse, entonces nunca tiene que ser
paginado. Si sus marcos son necesarios, ellos pueden ser abandonados sólo.
Las páginas siempre pueden ser recuperadas del sistema de archivo. El
segmento de datos no debe ser paginado atrás al archivo capaz execut-, porque
es probable que esto se ha cambiado desde ser traído. El Pag-ing ello atrás
arruinaría el archivo ejecutable. El segmento de pila no está hasta presente en el
archivo ejecutable.
24. Dos proceso podría trazar un mapa del mismo archivo en sus espacios de
dirección al mismo tiempo. Este les da un modo de compartir la memoria física.
La mitad de la memoria compartida podría ser usada como un parachoques de
un a B y mitad como un parachoques de B a
A. Para comunicarse, un proceso escribe un mensaje a su parte de la memoria
compartida, luego una señal al otro para indicar que hay un mensaje que lo
espera. La respuesta podría usar el otro parachoques.
25. La dirección de memoria 65,536 es el byte de archivo 0, entonces la dirección de
memoria 72,000 es el byte de archivo
6464.
26. Al principio, el valor de cuatro páginas del archivo fueron trazado un mapa: 0,
1, 2, y 3. La llamada tiene éxito y después de que es hecho, sólo todavía trazan
un mapa de las páginas 2 y 3, es decir bytes 16,384 aunque 32,767
27. Es posible. Por ejemplo, cuando la pila crece más allá de la página de fondo,
una falta de página ocurre yelsistemaoperativo normalmente le adjudica la siguiente
página más baja. Sin embargo, la pila ha chocado con el segmento de datos,
la siguiente página no puede ser asignado a la pila, entonces el proceso debe
ser terminado. Incluso si hay otra página disponible en la memoria virtual, el
área de paginación de
el disco podría ser lleno, haciéndolo imposible de asignar el al ma c e na mi e nt o
de re s pal do para la nueva página, que también terminaría el proceso.
28. Es posible si los dos bloques no son compañeros. Considere la situación del
Higo 10-0 (e). Dos nuevas peticiones e n t r a n para 8 páginas en cada uno.
En este punto el fondo 32 páginas de la memoria son poseídas por 4 usuarios
diferentes, cada uno con 8 páginas. Ahora los usuarios 1 y 2 liberan sus
páginas, pero los usuarios 0 y 3 sostienen el suyo. Este cede una situación c o n
8 p á g i n a s usadas, 8 p á g i n a s libres, 8 p á g i n a s libre, y 8 páginas usadas.
Tenemos dos bloques adyacentes del tamaño igual que no puede ser
combinado porque ellos no son compañeros.
29. La paginación a una partición permite el uso de un dispositivo crudo, sin el
elevado de usar estructuras de datos de sistema de archivo. Para tener acceso al
bloque n, el sistema operativo puede calcular su posición de disco por sólo
añadiéndolo a l t a c o d e s a l i d a del parti-tion. No hay ninguna necesidad de
pasar por todos los bloques indirectos que otro - sabio ser necesario.
30. La apertura de un archivo por un camino con relación al directorio de trabajo
es por lo general más estafa - venient para el programador o usuario, ya que un
nombre de camino más corto es necesario. Es también por lo general mucho
más simple y requiere que menos disco tenga acceso.
31. Los resultados son como
sigue. (a) la cerradura es
concedido.
(b) La cerradura es concedida.
(c) El C es bloqueado ya que los bytes 20 a 30 son no
disponibles. (d) A es bloqueado ya que los bytes 20 a 25 son
no disponibles.
(e) El B es bloqueado ya que el byte 8 es no disponible para el cierre exclusivo.
En este punto ahora tenemos un punto muerto. Ninguno de los procesos estará
capaz alguna vez de correr otra vez.
32. La cuestión se levanta de que el proceso consigue la cerradura cuando se hace
disponible.
La solución más simple es dejarlo indeterminado. Este es lo que POSIX hace
porque es lo más fácil poner en práctica. El otro debe requerir que las
cerraduras sean concedidas en la orden ellos fueron solicitados. Este
acercamiento es más trabajo para la realización, pero previene el hambre.
Todavía otra posibilidad es dejar a procesos proporcionar una prioridad
pidiendo una cerradura, y usar estas prioridades de hacer una opción.
33. Un acercamiento es dan un error y rechazan realizar el lseek. El otro debe
hacer la compensación hacerse negativo. Mientras no es usado, no hay
ningún daño hecho. Sólo si una tentativa es hecha para leer o escribir que el
archivo debería ser el error mes-sabio ser dado. Si el lseek es seguido de otro
lseek que hace la compensación positiva, ningún error es dado.
34. El dueño puede leer, escribir, y ejecutarlo, y t o d o s l o s d e má s (incluso el
grupo del dueño) pueden leer sólo y ejecutarlo, pero no escribirlo.
35. Sí. Cualquier dispositivo de bloque capaz de lectura y escritura de un bloque arbitrario
puede
sea usados para sostener un sistema de archivo. Incluso si no había ningún
modo de buscar a un bloque específico, es siempre posible rebobinar la cinta y
luego contar avanzado al bloque solicitado. Tal sistema de archivo no sería un
archivo de alto rendimiento sys-tem, pero esto trabajaría. El autor realmente ha
hecho este en un PDP-11 que usa DECtapes y esto trabaja.
36. El no del archivo todavía tiene sólo a un dueño. Si, por ejemplo, sólo el dueño
puede escribir en el archivo, el otro partido no puede hacer así. La unión de un
archivo en su conservador direc-no le da de repente ningún derecho que usted
no tenía antes. Esto sólo crea un nuevo camino para tener acceso al archivo.
37. Cuando el directorio de trabajo es cambiado, usando la llamada de sistema chdir, el
nodo "yo" para el nuevo di re c t or i o de tr a baj o soy traído y guardado en la
memoria, en la mesa de nodo "yo". El i-nodo para el directorio raíz está
también allí. En el usuario struc-ture, las agujas de ambos de éstos son
mantenidas. Cuando un nombre de camino tiene que ser analizado, el primer
carácter es inspeccionado. Si es "un/", la aguja del nodo de raíz "" soy usado
como el lugar inicial, por otra parte la aguja del i-nodo del directorio de trabajo
es usada.
38. El acceso al i-nodo del directorio raíz no requiere un acceso de disco, entonces
tenemos lo siguiente:
1. Lectura el / directorio para buscar "usr".
2. Lectura en el i-nodo para/usr.
3. Lectura del directorio/usr para buscar "ast".
4. Lectura en el i-nodo para/usr/ast.
5. Lectura del directorio/usr/ast para buscar "trabajo".
6. Lectura en el i-nodo para/usr/ast/work.
7. Lectura del directorio/usr/ast/work para buscar "f".
8. Lectura en el i-nodo para/usr/ast/work/f.
Así e n t o t a l , ocho disco tiene acceso son necesarios antes de que el i-nodo
necesario esté en la memoria.
39. El i-nodo sostiene 10 direcciones. El bloque indirecto solo sostiene 256. El
dou-ble bloque indirecto conduce a 65,536, y el indirecto triple conduce a
16,777,216, para un total de 16,843,018 bloques. Este limita el tamaño de
archivo máximo con 10 +
256 + 65,536 + 16,777,216 bloques, que es aproximadamente 16 gigabytes.
40. Cuando un archivo está cerrado, el contador de su i-nodo en la memoria es decremented.
Si
es mayor que el cero, el i-nodo no puede ser quitado de la mesa porque el archivo
está todavía abierto en un poco de proceso. Sólo cuando el cero de golpes de
contador puede el
i-nodo ser quitado. Sin la cuenta de referencia, el sistema no sabría cuando
quitar el i-nodo de la mesa. Haciendo una copia separada del nodo "yo" cada
vez que el archivo fue abierto no trabajaría porque los cambios hechos en una
copia no serían visibles en los demás.
52
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 10
41. El escondite parachoques tiene acceso son tan infrecuentes comparado a la
memoria tiene acceso, que el coste de manejar la cola LRU en el software es
aceptable. Con páginas, hay típicamente una o dos referencias por instrucción,
que hace principal - taining una cola LRU poco práctico.
42. Por arrancar a la fuerza los contenido del escondite parachoques en el disco
cada 30 segundos, el daño hecho por un accidente es limitado con 30 segundos.
Si la actualización no corriera, un proceso podría escribir un archivo, entonces
salir con los contenido llenos del archivo todavía en el escondite parachoques.
De hecho, el usuario podría salir del sistema entonces y irse a casa con
el archivo todavía en el escondite parachoques. Una hora más tarde el sistema
podría estrellarse y perder el archivo, todavía sólo en el escondite parachoques
y no en el disco. Al día siguiente no tendríamos a un usuario feliz.
43. Todo que esto tiene que hacer es puesto la cuenta de eslabón a 1 desde sólo una
entrada de directorio se refiere - ences el i-nodo.
44. Es generalmente getpid, getuid , getgid , o algo así. Todo que ellos hacen es
traen un número entero de un lugar conocido y lo devuelven. Cada otra
llamada hace más.
45. El archivo es simplemente quitado. Este es el camino normal (realmente, el único
camino)
quitar un archivo.
46. Undiscoflexible de 1.44 MB puede sostener 1440 bloques de datos crudos. El bloque
de bota, bloque súper, bloque de descriptor de grupo, bloquea el mapa de bit, y
el mapa de bit de i-nodo de un sistema de archivo ext2 cada uso 1 bloque. Si
8192 i-nodos de 128 bytes son creados, éstos
los i-nodos ocuparían otros 1024 bloques, dejando sólo 411 bloques no usados.
Al menos un bloque es necesario para el directorio raíz, yéndose del espacio de
410 bloques de datos de archivo. Realmente el Linux mkfs programa es bastante
elegante para no hacer más i-nodos que puede ser posiblemente usado,
entonces la ineficiencia no es este mal. E n a u s e n c i a 184 inodes ocupación de
23 bloques serán creados. Sin embargo, debido al elevado del sistema de archivo
ext2, Linux normalmente usa el sistema de archivo MINIX en discos flexibles y
otros pequeños dispositivos.
47. Es a menudo esencial tener a alguien que puede hacer cosas que son normalmente
para - ofrecidas. Por ejemplo , un usuario arr anca un trabajo que genera una
cantidad infinita
de salida. El usuario entonces sale del sistema y continúa unas vacaciones
de tres semanas a profesor universitario Lon-. Tarde o temprano el disco se
llenará, y el superusuario tendrá al aliado manu-matan el proceso y quitan el
archivo de salida. Muchos otros tales ejemplos existen.
48. Probablemente alguien tenía el archivo abierto cuando el profesor cambió el
permis-sions. El profesor debería haber suprimido el archivo y luego haber
puesto otra copia de su a r c h i v o p r i n c i p a l en el directorio público. También,
él debería usar un mejor método para distribuir archivos, como una página
Web, pero está más allá del alcance de este ejercicio.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 11
1. Una ventaja consiste en que todo está en un lugar, que hace fácil para encontrar.
Una desventaja es que un bloque de disco malo en el índice de alto nivel en una
colmena puede causar el desastre con el sistema entero.
2. HAL es simple y franco. Incluso el ratón, el disco, y
todos los otros controladores de dispositivos en ello lo harían pesado y
destruirían su func-tion como una capa delgada que esconde ciertas diferencias
de hardware básicas del com-puter sí mismo, pero no los dispositivos de
entrada - salida.
3. Una base de datos genealógica podría encontrar conveniente de registrar el
nacimiento y las fechas de muerte de los antepasados de alguien que usan el
formato de tiempo de sistema estándar. De hecho , cualquier base de datos
histórica podría usar este.
4. DPCs dirigido en un contexto arbitrario. APCs dirigido en el contexto de un
hilo específico. El acto de señalar el proceso implica escribir un marco en la
pila del usuario entonces la señal puede ser devuelta de. Este requiere el acceso
al espacio de dirección del usuario. Por consiguiente, un APC es necesario.
5. (a) el gerente de proceso usa al gerente de objeto para crear hilos.
(b) El gerente de memoria usa al gerente de seguridad para ver si pueden trazar
un mapa de un archivo.
(c) El gerente de enchufe-y-juego usa la configuración mgr para registrar un nuevo
dispositivo.
6. Una señal es manejada por un nuevo hilo en el contexto de algún proceso. Por
ejemplo, cuando la llave Dejada es golpeada o aun cuando un hilo critica.
Realmente no hace ningún sentido de agarrar una señal en el contexto de un
hilo. Realmente tiene que ser por proc-ess. Así el manejo de señal es realmente
un por actividad de proceso.
7. Haría más sentido en servidores. Las máquinas de cliente tienen menos
procesos concurrentes. Las bibliotecas compartidas sólo tienen sentido si hay
procesos múltiples que los comparten. Por otra parte, es más eficiente unir
estáticamente las bibliotecas y aceptar la copia. La ventaja de la unión estática
consiste en que sólo aquellos pro - cedures que realmente son necesarios son
cargados. Con DLLs puede haber pro - cedures en la memoria que nadie usa.
8. Las funciones en ntdll.dll son aquellos necesitados por los subsistemas, es
decir el sys-tem llamadas. Las funciones en ntoskrnl.exe son exportadas
funciones usadas por conductores y otras partes del sistema operativo. No
hay ninguna relación entre ellos. El hecho que ellos son hasta cercanos es sólo
una coincidencia. Ellos podrían haberse diferenciado fácilmente por un factor
de cinco.
9. El no de la orden baja 3 trozos de la aguja de objeto en el mango es usado para
banderas,
como declarado en el texto. Éstos deben ser enmascarados lejos antes de que la aguja
pueda ser
54
SOLUCIONES DE PROBLEMA PARA EL CAPÍTULO 10
seguido. Por consiguiente cada aguja tiene 3 trozos cero como los trozos de
orden baja. Este significa que los jefes de objeto deben comenzar en
direcciones que son múltiplos de 8 bytes.
10. Hay un límite de 32 operaciones porque hay sólo 32 trozos de derechos en el
mango de objeto.
11. No es posible porque los semáforos y mutexes son objetos ejecutivos y las
secciones críticas no son. Ellos son manejados sobre todo en el espacio de
usuario (pero tener realmente
un semáforo de apoyo cuando el bloqueo es necesario). El gerente de objeto no
sabe sobre ellos y ellos no tienen mangos, como fue declarado en el texto. Ya
que WaitForMultipleObjects es una llamada de sistema, el sistema no puede
realizar un Booleano o de varias cosas, uno de las cuales esto no sabe nada
sobre. La llamada debe ser una llamada de sistema porque los semáforos y
mutexes son objetos de grano. En resumen no es posible tener cualquier
llamada de sistema que mezcla objetos de grano y objetos de usuario como
este. Tiene que ser un o el otro.
12. (a) las últimas salidas de hilo.
(b) Un hilo ejecuta ExitProcess .
(c) Otro proceso con un mango a éste lo mata.
13. El quántum de Profesional de 2000 de Windows es 20 msec y hay 12 hilos
en prioridades más alto que 3. Así la primera prioridad 3 hilo debe esperar 240
msec hasta que esto consiga un tiro.
14. Como máximo unos microsegundos. Esto se adelanta el hilo corriente
inmediatamente. Ello
es sólo una pregunta de cuanto esto toma para dirigir el código de distribuidor para
hacer el interruptor de hilo.
15. La bajada de su prioridad debajo de la prioridad baja podría ser usada como un
juego de palabras - ishment para usar el tiempo de CPU excesivo u otros
recursos.
16. El procesador no permitirá a tales instrucciones ser ejecutado en el modo de
usuario y los atrapará como errores. En principio, un filtro que lee un
programa binario y sustituye todos EN e instrucciones con llamadas a rutinas
que usan servicios OS legales podría ser escrito. O bien, el programa podría
ser inter - preted, con éstos las instrucciones manejadas haciendo el sistema de
2000 de Windows llaman para hacer la entrada - salida.
17. Un camino es aumentar la prioridad de procesos importantes. Un segundo camino es
dar a procesos importantes quántums más largos.
18. El problema no puede ser solucionado usando mesas de página. Las mesas de
páginas trazan un mapa entre direcciones virtuales y físicas. El problema aquí es
que el procedimiento compartido
está siendo colocado en direcciones virtuales diferentes. Si una instrucción en
dirección
65,536 lee JMP 300, esto brincará a la memoria inválida (debajo de 64 KILOBYTES) y
trampa.
Si es remendado para leer JMP 65836 que irá adelante 300bytes, que es
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 11
55
correcto para aquel proceso. Pero si un proceso diferente tiene esta instrucción
en, supongamos, la dirección 131,072, brincando a 65836 se equivoca. Esto no
importa donde en la memoria física la página es. Para el segundo proceso, la
CPU genera
una dirección virtual incorrecta. Ningún ajuste de las mesas de página puede
trazar un mapa correctamente de una dirección virtual incorrecta.
19. El Pentium tiene segmentos múltiples, cada comienzo en la dirección virtual 0. Cada
uno
Podrían trazar un mapa del archivo de .dll en un segmento separado que comienza en la
dirección virtual 0
en aquel segmento. Para hacer este, la segmentación tendría que ser apoyada por
Windows 2000.
20. Sí. Los VADs son el modo que el gerente de memoria guarda la pista de la cual
las direcciones están en el uso y que son libres. Un VAD es necesario para una
región reservada para prevenir una tentativa subsecuente de reservarlo o
cometerlo de tienen éxito - ing.
21. (1) es una decisión de política sobre cuando y como recortar un funcionamiento
se ponen. (2) (y 3) son requerido. (4) es una decisión de política sobre como
escribir agresivamente páginas sucias al disco. (5) (y 6) son requerido. (7) no
es realmente una pregunta de política
o requerido; el sistema nunca tiene a páginas cero, pero si el sistema es por otra
parte ocioso, zeroing páginas es siempre mejor que ejecutar sólo el lazo ocioso.
22. No es movido en absoluto. Una página sólo va en una de las listas cuando no
está presente en ningún juego de funcionamiento. Si esto está todavía en un
juego de funcionamiento, esto no continúa ninguna de las listas libres.
23. Esto no puede continuar la lista modificada, ya que esto contiene páginas que
todavía son trazadas un mapa en y podrían ser criticadas atrás. Una página no
trazada un mapa no está en aquella categoría. Esto seguramente no puede ir
directamente a la lista libre porque aquellas páginas pueden ser abandonadas a
voluntad. Una página sucia no puede ser abandonada a voluntad. Consequently, debe ser primero contestado al disco, entonces esto puede continuar la
lista libre.
24. La copia de una palabra requiere el que leído y uno escribe, para un total de 20
nsec para mover 4 b yt e s . Este viene a 5 nsec por byte copiado. Una pantalla de
XGA tiene
1024 ´768 3 b yt e s ´, que toma a p r o x i ma d a m e n t e 11. 8 msec para copiar en el
mejor caso
(la asunción del programa corre completamente del escondite L1).
25. Hay dos archivos. Los campos son como sigue. Los valores antes del colon son
los campos de jefe:
Registre 1 = 0, 8: (3, 50), (1, 22), (3, 24), (2, 53)
Registran 2 = 10, 10: (1, 60)
26. El hecho que se obstruyen 66 es contiguo con una existencia dirigida no ayuda
cuando los bloques no están en la orden de archivo lógica. En otras palabras,
usando el bloque 66 cuando el nuevo bloque no es mejor que la utilización del
bloque 90. Las entradas en el MFT son:
0, 8: (4, 20), (2, 64), (3, 80), (1, 66)
27. Esto es un accidente. Los 16 bloques por lo visto comprimidos a 8 bloques.
Podría haber sido 9 o 11 como fácilmente.
28. Todos excepto elusuarioSID podrían ser quitados sin afectar la fuerza de la
seguridad.
SOLUCIONES CON PROBLEMAS DEL CAPÍTULO 12
1. Las mejoras del hardware de ordenador han sido en gran parte debido a
colinas transis-más pequeñas. Algunos factores que pueden limitar este son: (a)
las propiedades de onda de la luz puede limitar técnicas fotolitográficas
convencionales para producir integró cir-cuits, (b) la movilidad de átomos
individuales en sólidos puede conducir a la degradación de las propiedades de
capas mu y d e l g a d a s de semiconductores, aislantes, y colinas conduc-, y la
radiactividad de fondo (c) puede interrumpir obligaciones moleculares o
afectar muy pequeños gastos almacenados. Hay seguramente los otros.
2. Para programas muy interactivos, el modelo de acontecimiento puede ser mejor. De
éstos, sólo (el b) es interactivo. Así (a) (y c) son algorítmicos (y b) es el
acontecimiento conducido.
3. La puesta de ello allí salvó alguna RAM y redujo el tiempo que carga a 0, pero
el más importante, lo hizo fácil para reveladores de software de tercero para
usar el GUI, así asegurando una uniformidad de mirada y sensación a través de
todo el software.
4. El no de la diferencia está relacionado más con el hecho que el escondite de
servidores DNS y es organizado jerárquicamente. Los caminos podrían haber
sido fácilmente dados en la cumbre - abajo ordenan, pero la convención de
hacer hacia atrás es bien establecido ahora.
5. Posiblemente el stat es redundante. Podría ser conseguido por una combinación de
abierto,
fstat, y cerca . Sería muy difícil simular cualquiera de los demás.
6. Si los conductores son puestos debajo de los hilos, entonces los conductores no
pueden ser hilos independientes en el estilo de MINIX . Ellos tienen que correr
como la parte de algún otro hilo, más en el estilo de UNIX.
7. Es posible. Lo que es necesario es un proceso de nivel del usuario, el servidor de
semáforo.
Para crear un semáforo, un usuario le envía una petición de mensaje de un
nuevo semáforo. Para usar ello, el proceso de usuario pasa la identidad del
semáforo a otros procesos. Ellos pueden enviar entonces mensajes al servidor
de semáforo que pregunta para
una operación. Si la operación se obstruye, ninguna respuesta es devuelta, así
bloqueando al visitante.
8. El modelo es 8 msec del código de usuario, entonces 2 msec del código de
sistema. Con la optimización, cada ciclo es ahora 8 msec del código de usuario
y 1 msec del código de sistema. Así el ciclo es reducido de 10 msec a 9 msec.
Multiplicación por
1000 tales ciclos, un programa de 10 segundos ahora toma 9 segundos.
9. El mecanismo para venderse a clientes es un edificio con anaqueles, empleados
abastecer los anaqueles, cajeros para manejar pago, etc. La política es que clase
de productos la tienda se vende.
10. Los nombres externos pueden ser mientras necesarios y longitud variable. Los
nombres internos son generalmente 32 trozos o 64 trozos y longitud siempre
fijada. Los nombres externos no tienen que ser únicos. Dos nombres pueden
señalar al mismo objeto, por ejemplo, eslabones en el sistema de archivo
UNIX. Los nombres internos deben ser únicos. Los nombres externos pueden
esté jerárquico. Los nombres internos son generalmente índices en mesas y así
forman un espacio de nombre llano.
11. Si la nueva mesa es 2´tan grande como la vieja, esto no se llenará rápidamente,
reduciendo el número de tiempos una mesa mejorada será necesaria. Por otra
parte, tanto espacio no puede ser necesario, entonces esto puede gastar la
memoria. Este es un tiempo clásico contra la compensación espacial.
12. Sería arriesgado hacer esto. Suponga que el PID estaba en la última entrada.
E n e s t e c a s o , saliendo el lazo dejaría p que señala a la última entrada. Como
- alguna vez, si el PID no fuera encontrado, el p podría terminar por señalar a
la última entrada o a uno más allá de ello, s e gún los detalles del código
compilado, qué optimi-zations son encendidos , etcétera. Lo que podría
trabajar con un compilador podría fallar con uno diferente. Es mejor poner una
bandera.
13. Podría ser hecho, pero no sería una idea buena. Un IDE o el conductor SCSI
son muchas páginas mucho tiempo. Tener el código condicional tan mucho
tiempo hace el código fuente con fuerza para seguir. Sería mejor poner cada uno
en un archivo separado y luego usar el Makefile para determinar cual incluir. O
por lo menos, la estafa - ditional compilación podría ser usada para incluir un
archivo de conductor o el otro.
14. Sí. Hace el código más despacio. También, más código significa más bichos.
15. No fácilmente. Invocaciones múltiples al mismo tiempo podrían interferir el uno
con el otro. Podría ser posible si los datos estáticos fueran guardados por un
mutex, pero esto significaría que un visitante a un procedimiento simple podría
ser de improviso bloqueado.
16. Sí. El código es reproducido cada vez el macro es llamado. Si es llamado muchas
veces, el programa será m u c h o m á s g r a n d e . Este es una compensación
espacial por el tiempo típica. Un programa más grande, más rápido en vez de
un programa más pequeño, más lento. Sin embargo, en un caso extremo, el
programa más grande no podría caber en el TLB, haciéndolo azotar y correr así
más despacio.
17. Principio por ORing exclusivo 16 trozos más abajo y superiores de la palabra
juntos para formar un número entero 16 bites, s. Para cada trozo, hay cuatro
casos: 00 (causa 0), 01 (causa 1), 10 (causa 1), y 11 (causa 0). Así si el
número de 1s en s es raro, la paridad es rara; por otra parte es hasta.
Haga una mesa con 65,536 entradas, cada un byte que contiene con el bit de
paridad
en ello. Las miradas macro como este:
#define paridad (w) trozos [(w y 0xFFFF) ˆ ((w>> 16) y 0xFFFF) cuenta
18. Ningunas circunstancias. El valor en color "comprimido" sería tan grande como
el ori-ginal, y además, una paleta en color enorme podría ser necesaria. Esto no
tiene sentido en absoluto.
19. La paleta en color de 8 trozos de ancho contiene 256 entradas de 3 bytes cada uno para
un total de
768 bytes. El ahorro por pixel es 2 bytes. Así con más de 384 pixeles,
triunfos de GIF. Una paleta en color de 16 trozos de ancho contiene 65,536
entradas de 3 bytes cada uno, para 196,608 bytes. El ahorro aquí es 1 byte por
pixel. Así con más de 196,608 pixeles, los triunfos de compresión 16 bites.
Asumiendo un 4:3 proporción, el punt o de equili brio es una imagen de
512 ´384 pixeles. Para VGA (640 ´480), 16el color de trozo requiere menos datos que el color de 24 trozos verdadero.
20. Para un camino que está en el escondite de nombre de camino, esto no tiene
ningún efecto porque el i-nodo es evitado de todos modos. Si no es leído, esto
no importa si esto está ya en la memoria. Para un camino que no está en el
escondite de nombre, pero implica un nodo fijado "yo", entonces la fijación
ayuda realmente ya que esto elimina un disco leído.
21. Registrando la fecha de la última modificación, el tamaño, y posiblemente una
firma deliberada c o mo una suma de control o CRC puede ayudar a
determinar si esto se haya cambiado desde último referido. Una advertencia:
un servidor remoto podría proporcionar informa-falso tion sobre un archivo, y
la regeneración local de una firma deliberada podría ser necesaria.
22. El archivo podría ser dado un número de versión o una suma de control y esta
información almacenada junto con la indirecta. Antes de tener acceso a un
archivo remoto, un control sería hecho para asegurarse el número de versión o
suma de control todavía concordada con el archivo corriente.
23. Un sistema de archivo tratará típicamente de escribir nuevos datos al bloque de
disco disponible más cercano después de último usado. Si dos archivos están
siendo escritos simultane-ously este puede c a u s a r intercalar los bloques de
datos en el disco, c a us ar ambos archivos fragmentados y así más difícil de
leer. Este efecto puede ser mejorado almacenando datos en un buffer en la
memoria para maximizar el tamaño de escribe, o escribiendo a archivos
temporales y luego copiando cada salida a un archivo permanente cuando el
programa se termina.
24. Los arroyos hablaban de proyectos grandes en los cuales la comunicación entre
los programadores hace más lento todo. Aquel problema no ocurre con un 1proyecto de persona y entonces la productividad puede ser más alta.
25. Si un programador puede producir 1000 líneas del código para un coste de 100,000
dólares, una línea
del código cuesta 100 dólares. En Capítulo. 11, declaramos que el Windows 2000
consistió en
SOLUCIONES DE PROBLEMA PARA CAPÍTULO 59
55
29 millones de líneas del código, que viene a 2.9 mil millones de dólares. Esto parece a
una parte horrible. Probablemente Microsoft ha logrado mejorar al
programador produc-tivity utilización de mejores instrumentos entonces un
programador puede producir variosmiles líneas
de código por año.
26. Suponga que la memoria cuesta 100 dólares para 64 MB (control contra precios
corrientes). Entonces
una máquina de final bajo necesita el valor de 1600 dólares del disco. Si el resto
del ordenador personal es 500 dólares, el coste total viene a 2100 dólares. Este es
demasiado caro para el mercado de final bajo.
27. Un sistema empotrado puede dirigir un único o un pequeño número de programas. Si
todos los programas pueden ser guardados cargados en la memoria s i e mp r e
no podría haber ninguna necesidad de un gerente de memoria o de un sistema
de archivo. Además, los conductores serían necesarios sólo para unos
dispositivos de entrada - salida, y podría hacer más sentido de escribir a los
conductores de entrada - salida como rutinas de biblioteca. Las rutinas de
biblioteca también podrían ser mejor compiladas en programas individuales,
más bien que en bibliotecas compartidas, eliminat-ing la necesidad de
bibliotecas compartidas. Probablemente muchos otros rasgos podrían ser eliminated en casos específicos.
Descargar