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 de l ga das 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
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.
En e ste caso , 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, segú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á mu 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 punto de equilibrio es una imagen de 512 ´384 pixeles. Para VGA (640 ´480), 16-
el 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 usar intercalar los bloques de datos en el disco, causar 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 1- proyecto 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 varios miles 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 si 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 elim- inated en casos específicos.