Dale, si, me harías un gran favor si encontrás un ejemplo.
Porque, en este caso el archivo de 2MB (2048kb / 1 kb) > 777
Tamaño del bloque=1Kb (supongo que es igual al tamaño del sector)
Alguien resolvió TODO el ejercicio práctico de disco??? Podrá poner como lo fue haciendo?
Esto quizás sea demasiado rebuscado pero MB no es lo mismo que MiB.. Según el Silberschatz MB serían divisiones de 1000 por lo que 2MB son 2000KB y 2 MiB serían 2048KB.. Esto lo tienen en consideración a la hora del final o es demasiado detalle? Alguien está de acuerdo?
Una consulta, alguien sabe la justificación del punto 1.c?
La pregunta es cual de los discos se necesitarán pedir menos bloques para agrandar el primer archivo 30,5kb?
Desde ya Muchas gracias
Buenas!
A mi el punto a) me dio 2065 (2048 +1 (simple) +1 +15 (dobles)) para el 1er disco y 2049 (2048 +1 (directorio)) para el 2do. El de directorio lo agregué solo porque lo vi en el resuelto del ejercicio 15 de la guía que pasó SebaRontani.. no entiendo por qué para un FS de asignación contigua se tiene en cuenta y para uno con inodos no.
El b) me dieron 5 y 5 siguiendo la misma lógica
El c) lo plantié así:
Voy a tener que escribir 31 bloques.
Para el primer disco, tengo el último puntero de los 15 casi lleno, por lo que termino de llenarlo y aparte uso uno más. Por lo que los bloques necesarios son 31+2=33.
Para el segundo disco, solo necesitaría escribir 31, pero como es asignación contigua y solo reserva 20 lugares, voy a tener que mover al 2do archivo que creé, por lo que me quedan 31+4 (+1 bloque de directorio) =36
No sé si está bien. Espero comentarios, tanto de la resolución como lo del bloque de directorio.
Saludos!
Con respecto al punto 2. La solución no es válida por permitir que se consuma sin haber producido. Sin embargo, no me parece que haya deadlock
(14-02-2014 23:30)Heidad escribió: [ -> ]... El contrajemeplo seria que entre el consumidor al principio sin haber nada , se quede en wait(esperar) y como se uso el mutex para entrar en el consumidor , el productor nunca pudo entrar a añadir cosas al buffer y nunca pudo poner signal(esperar) ...
En la primera entrada, después de hacer n--, n quedaría en -1 tengo entendido, por lo que no ejecutaría el wait(esperar).
Para el punto b) diría algo de condición de carrera, ya que si arranca el productor, anda todo perfecto.
Saludos!