SO Soluciones
SO Soluciones
SO Soluciones
1.1. Supongamos que el procesador hipotético de la figura 1.3 también tiene dos instrucciones
de E/S:
Cuando la CPU tiene que enviar los datos al teletipo, verifica el indicador de posición
EGO. Si el indicador de salida EGO es CERO, la CPU debe esperar. Si el indicador de salida
EGO es UNO, la CPU transfiere el contenido del acumulador (AC) al registro de salida
OUTR y establece EGO a CERO. El teletipo establece EGI en 1 después de que se imprime
la palabra.
b) La CPU es mucho más rápida que el teletipo y debe verificar EGI y EGO repetidamente.
Si se usan interrupciones, el teletipo puede emitir una interrupción a la CPU cuando esté
listo para aceptar o enviar datos. El registro de habilitación de interrupción (IEN) puede
ser configurado por la CPU bajo el control del programador
1.7 En prácticamente todos los sistemas que incluyen módulos DMA, el acceso DMA a la
memoria principal tiene mayor prioridad que el acceso del procesador a la memoria principal.
¿Por qué?
1.8 Un módulo DMA está transfiriendo caracteres a la memoria principal desde un dispositivo
externo que transmite a 9600 bits por segundo (bps). El procesador puede obtener
instrucciones a razón de 1 millón de instrucciones por segundo. ¿En cuánto se ralentizará el
procesador debido a la actividad de DMA?
1.9 Una computadora consta de una CPU y un dispositivo de E/S D conectado a la memoria
principal M a través de un bus compartido con un ancho de bus de datos de una palabra. La
CPU puede ejecutar un máximo de 106 instrucciones por segundo. Una instrucción promedio
requiere cinco ciclos de procesador, tres de los cuales usan el bus de memoria. Una operación
de lectura o escritura de memoria utiliza un ciclo de procesador. Supongamos que la CPU ejecuta
continuamente programas de "fondo" que requieren el 95% de la velocidad de ejecución de la
instrucción, pero no las instrucciones de E / S. Supongamos que un ciclo de procesador equivale
a un ciclo de bus. Ahora supongamos que se transfieren bloques de datos muy grandes entre M
y D.
2.1. Supongamos que tenemos una computadora multiprogramada en la que cada trabajo
tiene características idénticas. En un período de cálculo, T, para un trabajo, la mitad del tiempo
se usa en E/S y la otra mitad en la actividad del procesador. Cada trabajo se ejecuta por un
total de N períodos. Supongamos que se utiliza una simple planificación por turnos y que las
operaciones de E/S pueden superponerse con la operación del procesador. Defina las
siguientes cantidades:
2.4. ¿Cuál es el propósito de las llamadas al sistema y cómo se relacionan las llamadas al
sistema con el sistema operativo y al concepto de operación de modo dual (modo kernel y
modo de usuario)?
2.5. En el sistema operativo mainframe de IBM, OS/390, uno de los principales módulos en el
núcleo es el Administrador de recursos del sistema. Este módulo es responsable de la
asignación de recursos entre los espacios de direcciones (procesos). El SRM le otorga a OS / 390
un grado de sofisticación único entre los sistemas operativos. Ningún otro sistema operativo de
mainframe, y ciertamente ningún otro tipo de sistema operativo, puede igualar las funciones
realizadas por SRM. El concepto de recurso incluye procesador, memoria real y canales de E / S.
SRM acumula estadísticas relacionadas con la utilización del procesador, canal y varias
estructuras de datos clave. Su propósito es proporcionar un rendimiento óptimo basado en el
monitoreo y el análisis del rendimiento. La instalación establece varios objetivos de rendimiento,
y estos sirven como guía para el SRM, que modifica dinámicamente las características de
instalación y rendimiento del trabajo en función de la utilización del sistema. A su vez, el SRM
proporciona informes que permiten al operador capacitado refinar la configuración y la
configuración de los parámetros para mejorar el servicio al usuario.
Este problema se refiere a un ejemplo de actividad de SRM. La memoria real se divide en bloques
de igual tamaño llamados cuadros, de los cuales puede haber muchos miles. Cada cuadro puede
contener un bloque de memoria virtual denominado página. SRM recibe el control
aproximadamente 20 veces por segundo e inspecciona cada cuadro de página. Si la página no
ha sido referenciada o modificada, un contador se incrementa en 1. Con el tiempo, SRM
promedia estos números para determinar el número promedio de segundos que un marco de
página en el sistema permanece intacto. ¿Cuál podría ser el propósito de esto y qué acción
podría tomar SRM?
2.6. Un multiprocesador con ocho procesadores tiene 20 unidades de cinta conectadas. Hay
una gran cantidad de trabajos enviados al sistema que requieren un máximo de cuatro
unidades de cinta para completar la ejecución. Suponga que cada trabajo comienza a
ejecutarse con solo tres unidades de cinta durante un período prolongado antes de requerir
la cuarta unidad de cinta durante un breve período hacia el final de su operación. También
asuma un suministro interminable de tales trabajos.
a. Supongamos que el programador del sistema operativo no iniciará un trabajo a menos que
haya cuatro unidades de cinta disponibles. Cuando se inicia un trabajo, se asignan cuatro
unidades inmediatamente y no se liberan hasta que finaliza el trabajo. ¿Cuál es la cantidad
máxima de trabajos que pueden estar en progreso a la vez? ¿Cuál es la cantidad máxima y
mínima de unidades de cinta que pueden quedar inactivas como resultado de esta política?
b. Sugerir una política alternativa para mejorar el uso de la unidad de cinta y, al mismo tiempo,
evitar el punto muerto del sistema. ¿Cuál es la cantidad máxima de trabajos que pueden estar
en progreso a la vez? ¿Cuáles son los límites en el número de unidades de cinta al ralentí?
UNIDAD 3
Da un ejemplo de un evento que puede causar cada una de las transiciones anteriores. Dibuja
un diagrama si eso ayuda.
2. EJECUTARSE PARA LISTO puede ser causado por una expiración cuántica de tiempo
(el proceso en ejecución ha alcanzado el tiempo máximo permitido para la ejecución
ininterrumpida).
3. CORRER a BLOQUEADO puede ocurrir si hay una solicitud de los sistemas operativos
proceso, o E / S u otra solicitud de kernel.
Solucion
3.6 La Tabla 3.13 muestra los estados del proceso para el sistema operativo VAX / VMS.
a. Varios sistemas operativos tienen dos modos, kernel y usuario. ¿Cuáles son las ventajas y
desventajas de proporcionar cuatro modos en lugar de dos?
b. ¿Puedes defender incluso más de cuatro modos?
3.9 La Figura 3.8b sugiere que un proceso solo puede estar en una cola de eventos a la vez.
a. ¿Es posible que desee permitir que un proceso espere en más de un evento al mismo tiempo?
Proporcione un ejemplo.
b. En ese caso, ¿cómo modificaría la estructura de puesta en cola de la figura para admitir esta
nueva característica?
3.10 En una serie de computadoras antiguas, una interrupción causó que los valores de
registro se almacenaran en ubicaciones fijas asociadas con la señal de interrupción dada. ¿Bajo
qué circunstancias es esta una técnica práctica? Explica por qué es inconveniente en general.
3.11 En la Sección 3.4, se indicó que UNIX no es adecuado para aplicaciones en tiempo real
porque un proceso que se ejecuta en modo núcleo no puede ser reemplazado. Elaborar.
3.12 Ha ejecutado el siguiente programa C:
principal ()
{int pid;
pid = fork ();
printf ("% d \ n", pid);
}
¿Cuáles son los resultados posibles, suponiendo el fork tuvo éxito?
UNIDAD 4
4.1. Se señaló que dos ventajas del uso de múltiples hilos dentro de un proceso son: (1) menos
trabajo involucra crear un nuevo hilo dentro de un proceso existente que crear un nuevo
proceso, y (2) comunicación entre hilos dentro del mismo proceso se simplifica ¿Es también el
caso que un cambio de modo entre dos hilos dentro del mismo proceso implica menos trabajo
que un cambio de modo entre dos hilos en procesos diferentes?
4.2. En la discusión de los ULT versus los KLT, se señaló que una desventaja de los ULT es que
cuando un ULT ejecuta una llamada al sistema, no solo se bloquea ese hilo, sino que también
se bloquean todos los hilos dentro del proceso. ¿Por qué es así?
4.3. OS/2 es un sistema operativo obsoleto para PC de IBM. En OS/2, lo que comúnmente se
incorpora en el concepto de proceso en otros sistemas operativos se divide en tres tipos
distintos de entidades: sesión, procesos e hilos. Una sesión es una colección de uno o más
procesos asociados con una interfaz de usuario (teclado, pantalla y mouse). La sesión representa
una aplicación de usuario interactiva, como un programa de procesamiento de texto o una hoja
de cálculo. Este concepto permite al usuario de la computadora personal abrir más de una
aplicación, dando a cada una o más ventanas en la pantalla. El sistema operativo debe realizar
un seguimiento de qué ventana, y por lo tanto qué sesión, está activa, de modo que la entrada
del teclado y el mouse se dirijan a la sesión adecuada. En cualquier momento, una sesión está
en modo de primer plano, con otras sesiones en modo de fondo. Toda la entrada del teclado y
el mouse se dirige a uno de los procesos de la sesión de primer plano, según lo dicten las
a. ¿Qué beneficios se pierden con este enfoque?
b. Si continúa con esta modificación, ¿dónde asigna recursos (memoria, archivos, etc.): en el
proceso o nivel de subprocesos?
4.4. Considere un entorno en el que haya un mapeo uno a uno entre subprocesos de nivel de
usuario y subprocesos de núcleo que permita que uno o más subprocesos dentro de un
proceso emitan llamadas al sistema de bloqueo mientras otros subprocesos continúan
ejecutándose. Explique por qué este modelo puede hacer que los programas multiproceso se
ejecuten más rápido que sus contrapartes de un único subproceso en una computadora
uniprocesador.
4.5. Si un proceso se cierra y todavía hay hilos de ese proceso en ejecución, ¿continuarán
ejecutándose?
4.6. El sistema operativo de mainframe OS / 390 está estructurado en torno a los conceptos
de espacio de direcciones y tareas. En términos generales, un espacio de dirección único
corresponde a una sola aplicación y corresponde más o menos a un proceso en otros sistemas
operativos. Dentro de un espacio de direcciones, se pueden generar varias tareas y ejecutarlas
al mismo tiempo; esto corresponde aproximadamente al concepto de multihilo. Dos estructuras
de datos son clave para gestionar esta estructura de tareas. Un bloque de control de espacio de
direcciones (ASCB) contiene información sobre un espacio de direcciones necesario para OS /
390, ya sea que ese espacio de direcciones se esté ejecutando o no. La información en el ASCB
incluye el envío de la memoria prioritaria, real y virtual asignada a este espacio de direcciones,
el número de tareas listas en este espacio de direcciones y si cada una se intercambia. Un bloque
de control de tareas (TCB) representa un programa de usuario en ejecución. Contiene la
información necesaria para administrar una tarea dentro de un espacio de direcciones, incluida
la información del estado del procesador, los indicadores de los programas que forman parte de
esta tarea y el estado de ejecución de la tarea. Los ASCB son estructuras globales que se
mantienen en la memoria del sistema, mientras que los TCB son estructuras locales que se
mantienen dentro de su espacio de direcciones. ¿Cuál es la ventaja de dividir la información de
control en porciones globales y locales?
4.7. Muchas especificaciones actuales del lenguaje, como C y C ++, son inadecuadas para
programas multiproceso. Esto puede tener un impacto en los compiladores y la corrección del
código, como lo ilustra este problema. Considere las siguientes declaraciones y definición de
funciones:
int global_positives = 0;
typedef struct list {
struct list *next;
double val;
} * list;
void count_positives(list l)
{
list p;
for (p = l; p; p = p -> next)
if (p -> val > 0.0)
++global_positives;
}
void count_positives(list l)
{
list p;
register int r;
r = global_positives;
for (p = l; p; p = p -> next)
if (p -> val > 0.0) ++r;
global_positives = r;
}
¿Qué problema o posible problema ocurre con esta versión compilada del programa si los hilos
A y B se ejecutan al mismo tiempo?
int main(void) {
a. ¿Qué logra este programa?
b. Aquí está el resultado del programa ejecutado:
$ ./thread2
..o.o.o.o.oo.o.o.o.o.o.o.o.oo.o.o.o.o.o.o
myglobal es igual a 21
4.10. La documentación de Solaris establece que un ULT puede ceder a otro hilo de la misma
prioridad. ¿No es posible que haya un hilo ejecutable de mayor prioridad y que, por lo tanto,
la función de rendimiento dé lugar a ceder a un hilo de igual o mayor prioridad?
4.12. Explicar el razonamiento para el estado ininterrumpible en Linux.
UNIDAD 5
Esta solución de software para el problema de exclusión mutua para dos procesos se propone
en [HYMA66]. Encuentre un contraejemplo que demuestre que esta solución es incorrecta. Es
interesante notar que incluso las Comunicaciones de la ACM fueron engañadas en este caso.
5.9. Considere el siguiente programa que proporciona un enfoque de software para la
exclusión mutua:
entero control de matriz [1: N]; entero k
donde 1 ≤ k ≤ N, y cada elemento de "control" es 0, 1,
o 2. Todos los elementos de "control" son inicialmente cero; el valor inicial
de k es inmaterial.
El programa del i-ésimo proceso (1 ≤ i ≤ N) es
Compare este conjunto de definiciones con el de la Figura 5.3. Tenga en cuenta una diferencia:
con la definición anterior, un semáforo nunca puede tomar un valor negativo. ¿Hay alguna
diferencia en el efecto de los dos conjuntos de definiciones cuando se usan en los programas?
Es decir, ¿podría sustituir un conjunto por el otro sin alterar el significado del programa?
5.13. Considere un recurso compartible con las siguientes características: (1) Siempre que haya
menos de tres procesos utilizando el recurso, los nuevos procesos pueden comenzar a usarlo
de inmediato. (2) Una vez que hay tres procesos que usan el recurso, los tres deben salir antes
de que cualquier proceso nuevo pueda comenzar a usarlo. Nos damos cuenta de que los
contadores son necesarios para realizar un seguimiento de cuántos procesos están en espera y
activos, y que estos contadores son recursos compartidos que deben protegerse con exclusión
mutua. Entonces podríamos crear la siguiente solución:
La solución parece hacer todo bien: todos los accesos a las variables compartidas están
protegidos por exclusión mutua, los procesos no se bloquean a sí mismos mientras que en la
exclusión mutua, los nuevos procesos no pueden usar el recurso si hay (o hubo) tres usuarios
activos, y el último proceso para partir desbloquea hasta tres procesos de espera.
a. El programa es sin embargo incorrecto. Explicar por qué.
b. Supongamos que cambiamos el if en la línea 6 por un tiempo. ¿Soluciona esto algún problema
en el programa? ¿Alguna dificultad queda?
5.16. Debería ser posible implementar semáforos generales utilizando semáforos binarios.
Podemos usar las operaciones semWaitB y semSignalB y dos semáforos binarios, delay y
mutex. Considera lo siguiente:
UNIDAD 6
6.1. Demuestre que las cuatro condiciones de interbloqueo se aplican a la Figura 6.1a.
6.4. Se indicó que el punto muerto no puede ocurrir para la situación reflejada en la Figura 6.3.
Justifica esa afirmación.
entrada y los buffers de salida, dependiendo de la velocidad de los procesos. Las primitivas de
comunicación utilizadas garantizan que se cumpla la siguiente restricción de recursos:
i + o ... max
dónde
max = número máximo de bloques en el disco
i = número de bloques de entrada en el disco
o = número de bloques de salida en el disco
6.8. Sugiera una restricción de recursos adicional que evitará el punto muerto en el problema
6.7 pero que permita que el límite entre los almacenamientos intermedios de entrada y salida
varíe de acuerdo con las necesidades actuales de los procesos.
6.10. En el sistema de multiprogramación de THE, una página puede hacer las siguientes
transiciones de estado:
6.17. Comenta sobre la siguiente solución al problema de los filósofos de la cena. Un filósofo
hambriento primero levanta su tenedor izquierdo; si su tenedor derecho también está
disponible, levanta su tenedor derecho y comienza a comer; de lo contrario, vuelve a colocar
su tenedor izquierdo y repite el ciclo.
6.20. En la Tabla 6.3, algunas de las operaciones atómicas de Linux no implican dos accesos a
una variable, como atomic_read (atomic_t * v). Una simple operación de lectura es
obviamente atómica en cualquier arquitectura. Por lo tanto, ¿por qué esta operación se
agrega al repertorio de operaciones atómicas?
UNIDAD 7
7.2. Considere un esquema de particionamiento fijo con particiones de igual tamaño de 216
bytes y un tamaño de memoria principal total de 224 bytes. Se mantiene una tabla de proceso
que incluye un puntero a una partición para cada proceso residente. ¿Cuántos bits se
requieren para el puntero?
7.3. Considere un esquema de particionamiento dinámico. Demuestre que, en promedio, la
memoria contiene la mitad de agujeros que segmentos.
7.9. Deje buddyk (x) = dirección del compinche del bloque de tamaño 2k cuya dirección es x.
Escribe una expresión general para buddyk (x).
7.10. La secuencia de Fibonacci se define de la siguiente manera:
F0 = 0, F1 = 1, Fn + 2 = Fn + 1 + Fn, n >= 0
Para cada una de las siguientes direcciones lógicas, determine la dirección física o indique
si ocurre una falla de segmento:
a. 0, 198 b. 2, 156 c. 1, 530 d. 3, 444 e. 0, 222
UNIDAD 8
8.1. Supongamos que la tabla de páginas del proceso que se está ejecutando actualmente en
el procesador tiene el siguiente aspecto. Todos los números son decimales, todo está
numerado comenzando desde cero, y todas las direcciones son direcciones de bytes de
memoria. El tamaño de página es 1.024 bytes.
a. Describa exactamente cómo, en general, una dirección virtual generada por la CPU se traduce
a una dirección física de la memoria principal.
b. ¿A qué dirección física, si corresponde, correspondería cada una de las siguientes direcciones
virtuales? (No intente manejar fallas de página, si hay alguna).
(i) 1,052
(ii) 2,221
(iii) 5,499
8.3. a. ¿Cuánta memoria se necesita para la tabla de la página de usuario de la figura 8.3?
b. Supongamos que desea implementar una tabla de páginas invertidas con hash para el mismo
esquema de direccionamiento que se muestra en la Figura 8.3, usando una función hash que
mapea el número de página de 20 bits en un valor hash de 6 bits. La entrada de la tabla contiene
el número de página, el número de cuadro y un puntero de cadena. Si la tabla de páginas asigna
espacio para hasta 3 entradas de desbordamiento por entrada hash, ¿cuánto espacio de
memoria ocupa la tabla de páginas invertidas?
8.7. En el VAX, las tablas de la página del usuario están ubicadas en direcciones virtuales en el
espacio del sistema.
¿Cuál es la ventaja de tener tablas de páginas de usuario en memoria virtual en lugar de memoria
principal?
¿Cuál es la desventaja?
se ejecuta en una memoria con un tamaño de página de 1,000 palabras. Deje n = 1,000. Usando
una máquina que tiene una gama completa de instrucciones de registro para registrar y emplea
registros de índice, escriba un programa hipotético para implementar la declaración anterior.
Luego, muestre la secuencia de referencias de página durante la ejecución.
4000 (R1) ← ONE Establish index register for i
4001 (R1) ← n Establish n in R2
4002 compare R1, R2
.
.
.
.
.
8.10. Suponiendo un tamaño de página de 4 Kbytes y una entrada de tabla de página de 4
bytes, ¿cuántos niveles de tablas de página se necesitarían para asignar un espacio de
direcciones de 64 bits, si la tabla de páginas de nivel superior cabe en una sola página?
8.11. Considere un sistema con mapeo de memoria hecho en una página y usando una tabla
de página de un solo nivel. Supongamos que la tabla de páginas necesaria siempre está en la
memoria.
a. Si una referencia de memoria tarda 200 ns, ¿cuánto tiempo tarda una referencia de memoria
paginada?
b. Ahora agregamos una MMU que impone una sobrecarga de 20 ns en un golpe o una falla. Si
suponemos que el 85% de todas las referencias de memoria golpean en el MMU TLB, ¿cuál es el
Tiempo Efectivo de Acceso a la Memoria (EMAT)?
c. Explica cómo la tasa de aciertos de TLB afecta al EMAT.
8.14. En la arquitectura S / 370, una clave de almacenamiento es un campo de control asociado
a cada fotograma de la memoria real en páginas. Dos bits de esa clave que son relevantes para
el reemplazo de la página son el bit de referencia y el bit de cambio. El bit de referencia se
establece en 1 cuando se accede a cualquier dirección dentro del cuadro para lectura o escritura,
y se establece en 0 cuando se carga una nueva página en el cuadro. El bit de cambio se establece
en 1 cuando se realiza una operación de escritura en cualquier ubicación dentro del marco.
Sugiera un enfoque para determinar qué marcos de página se usan menos recientemente,
utilizando solo el bit de referencia.
8.17. Supongamos que una tarea se divide en cuatro segmentos de igual tamaño y que el
sistema crea una tabla de descriptores de página de ocho entradas para cada segmento. Por
lo tanto, el sistema tiene una combinación de segmentación y paginación. Supongamos también
que el tamaño de la página es de 2 Kbytes.
a. ¿Cuál es el tamaño máximo de cada segmento?
b. ¿Cuál es el espacio máximo de direcciones lógicas para la tarea?
c. Suponga que esta tarea acceden a un elemento en la ubicación física 00021ABC.
¿Cuál es el formato de la dirección lógica que la tarea genera para él? ¿Cuál es el espacio máximo
de direcciones físicas para el sistema?
8.18. Considere un espacio de direcciones lógicas paginado (compuesto por 32 páginas de 2
Kbytes cada una) asignado a un espacio de memoria física de 1 Mbyte.
a. Muestre el cronograma utilizando el tiempo restante más corto, prioridad no prioritaria (un
número de prioridad más pequeño implica una prioridad más alta) y turno rotativo con un
quantum de 30 ms. Use el diagrama de escala de tiempo como se muestra a continuación para
que el ejemplo de FCFS muestre el cronograma de cada política de planificación solicitada.
9.6. En el ejemplo inferior de la Figura 9.5, el proceso A se ejecuta en dos unidades de tiempo
antes de pasar el control al proceso B. Otro escenario plausible sería que A se ejecute en tres
unidades de tiempo antes de pasar el control al proceso B. ¿Qué diferencias de política en el
algoritmo de programación de retroalimentación? representaría los dos escenarios diferentes?
11.1. Considere un programa que accede a un único dispositivo de E/S y compare las E/S sin
búfer con el uso de un búfer. Demuestre que el uso del buffer puede reducir el tiempo de
ejecución en un factor máximo de dos como máximo.
11.7. Calcule cuánto espacio en disco (en sectores, pistas y superficies) se requerirá para
almacenar 300,000 registros lógicos de 120 bytes si el disco es un sector fijo con 512 bytes /
sector, con 96 sectores / pista, 110 pistas por superficie y 8 superficies utilizables. Ignore
cualquier registro de encabezado de archivo y rastrear índices, y suponga que los registros no
pueden abarcar dos sectores.
11.8. Considere el sistema de disco descrito en el problema 11.7, y suponga que el disco gira a
360 rpm. Un procesador lee un sector del disco usando I/O con interrupción, con una
interrupción por byte. Si se requieren 2,5 μs para procesar cada interrupción, ¿qué porcentaje
de tiempo el procesador gastará en el manejo de E/S (sin tener en cuenta el tiempo de
búsqueda)?
11.9. Repita el problema anterior usando DMA, y suponga una interrupción por sector.
11.10. Una computadora de 32 bits tiene dos canales de selector y un canal multiplexor. Cada
canal selector admite dos discos magnéticos y dos unidades de cinta magnética. El canal
multiplexor tiene dos impresoras de línea, dos lectores de tarjeta y diez terminales VDT
conectados.
Supongamos las siguientes tasas de transferencia:
12.1. Definir:
B = tamaño de bloque
R = tamaño de registro
P = tamaño del puntero de bloque
F = factor de bloqueo; número esperado de registros dentro de un bloque
Da una fórmula para F para los tres métodos de bloqueo representados en la figura 12.8.
12.2. Un esquema para evitar el problema de la preasignación versus el desperdicio o la falta
de contigüidad es asignar porciones de tamaño creciente a medida que crece el archivo. Por
ejemplo, comience con un tamaño de porción de un bloque y el doble del tamaño de la porción
para cada asignación. Considere un archivo de n registros con un factor de bloqueo de F, y
suponga que se utiliza un índice simple de un nivel como tabla de asignación de archivos.
12.9. Los directorios se pueden implementar como "archivos especiales" a los que solo se
puede acceder de forma limitada o como archivos de datos ordinarios. ¿Cuáles son las ventajas
y desventajas de cada enfoque?
12.10. Algunos sistemas operativos tienen un sistema de archivos estructurado en árbol, pero
limitan la profundidad del árbol a una pequeña cantidad de niveles. ¿Qué efecto tiene este
límite en los usuarios? ¿Cómo simplifica esto el diseño del sistema de archivos (si es así)?
12.11. Considere un sistema de archivos jerárquico en el que el espacio libre en el disco se
mantiene en una lista de espacios libres.
a. Supongamos que se pierde el puntero al espacio libre. ¿Puede el sistema reconstruir la lista
de espacios libres?
b. Sugiera un esquema para asegurarse de que el puntero nunca se pierda como resultado de
una falla de memoria única.
12.12. En UNIX System V, la longitud de un bloque es de 1 Kbyte, y cada bloque puede contener
un total de 256 direcciones de bloque. Usando el esquema de inodo, ¿cuál es el tamaño
máximo de un archivo?
12.13. Considere la organización de un archivo UNIX representado por el inodo (figura 12.15).
Supongamos que hay 12 punteros de bloque directo, y un puntero individual, doble y
triplemente indirecto en cada inodo. Además, suponga que el tamaño del bloque del sistema y
el tamaño del sector del disco son ambos 8K. Si el puntero del bloque de disco es de 32 bits, con
8 bits para identificar el disco físico y 24 bits para identificar el bloque físico, entonces