14-02-2014, 11:17
Hola gente! Estoy preparando el final de SO (que aun me falta mucho por leer) y empeze a hacer algunos ejercicios de final (De Filesystem, Planificacion y Sincronizacion por ahora.. que es lo que lei). El tema es que los ejercicios de final son muy diferentes a los de las guias teoricas (mezclan mucho y piden cosas que antes no habia visto.
Bueno, el hecho es que me gustaria que me digan que les parece la siguiente resolucion de los ejercicios que aparecen en el final del 10/12/2013 que esta subido a campus virtual (tambien lo adjunto por aca asi no lo tienen que buscar).
1)
Variables comunes:
int cintaA = 200
int cintaB = 100
int mutex_cintaA = 1
int mutex_cintaB = 1
int mutex_cintaS = 1
Maquina()
while(1){
....mercaderia = Fabrica();
....wait(mutex_cintaX);
....depositar_cintaX(mercaderia):
....signal(mutex_cintaX);
}
Robot()
while(1){
....wait(mutex_cintaX):
....mercaderia = retirar_cintaX();
....signal(mutex_cintaX);
....if(turno_cintaA()){
........wait(mutex_cintaA);
........wait(cintaA);
........depositar_cintaA(mercaderia);
........signal(mutex_cintaA);
....}else{
........wait(mutex_cintaB):
........wait(cintaB);
........depositar_cintaB(mercaderia);
........signal(mutex_cintaB);
}
EmpleadoA()
while(1){
....wait(mutex_cintaA):
....mercaderia = retirar_cintaA();
....signal(cintaA);
....signal(mutex_cintaA);
....armar_paquere();
}
EmpleadoB()
while(1){
....wait(mutex_cintaB):
....mercaderia = retirar_cintaB();
....signal(cintaB);
....signal(mutex_cintaB);
....armar_paquere();
}
2) En este segundo ejercicio tengo una duda que es el tema de los accesos que requiero a disco para poder encontrar el inodo de resumen.pdf. Tengo entendido que los inodos en EXT2 se levantan en memoria ni bien se carga el SO, pero no me cierra porque me dice que resumen.pdf se encuentra en el inodo numero 10
Puntero: 4 bytes
Bloques: 4 KiB --> 4096 Bytes
Cantidad de Entradas por bloque: 4096 bytes / 4 bytes = 1024 entradas
Relacion de Accesos logicos y fisicos: 1 acceso logico son 4 accesos fisicos (no estoy seguro.. pero asumo que la lectura de un sector es de un acceso fisico)
Resumen.pdf: 10Mib = 10240KiB
a)
Cantidad de bloques de archivos a leer: 10240KiB / 4KiB = 2560 bloques (2560 accesos logicos)
De la cantidad anterior: 10 bloques son directos, 1024 son indirectos de nivel 1 y 1526 son indirectos nivel 2, por lo tanto a la cantidad de accesos logicos que se obtuvieron anteriormente hay que sumarle 1 acceso de la indireccion de nivel 1 y 3 accesos de la indireccion de nivel 2 (porque utiliza dos indirecciones de segundo nivel). Por otro lado en el punto b me pide que grafique el contenido del archivo /root/secret diciendo cuantos bloques ocupa cada archvio. Mi pregunta aca es que cosas deberia poner exactamente.
Cantidad Total de Accesos Logicos: 2564
Cantidad Total de Accesos Fisicos: 10256
b)
Contenido de /root/secret
resumen.pdf - inodo 10 - 2560 bloques
resumenHL.pdf - inodo 10 - 2560 bloques (son los mismos bloques que el de arriba)
resumen.tar.gz - inodo 11 - 1280 bloques
resumenSL.tar.gz - inodo 12 - 0 bloques (es un inodo nuevo que posee una referencia al archivo original!)
Eso es todo. Espero que me puedan decir las cosas que hice mal (creo que todo jajaja) asi aprendo a hacer este tipo de ejercicios porque se me complican de verdad (y eso que lei toda la teoria de filesystem de silbercharzt).
Saludos,
Sinnick
Bueno, el hecho es que me gustaria que me digan que les parece la siguiente resolucion de los ejercicios que aparecen en el final del 10/12/2013 que esta subido a campus virtual (tambien lo adjunto por aca asi no lo tienen que buscar).
1)
Variables comunes:
int cintaA = 200
int cintaB = 100
int mutex_cintaA = 1
int mutex_cintaB = 1
int mutex_cintaS = 1
Maquina()
while(1){
....mercaderia = Fabrica();
....wait(mutex_cintaX);
....depositar_cintaX(mercaderia):
....signal(mutex_cintaX);
}
Robot()
while(1){
....wait(mutex_cintaX):
....mercaderia = retirar_cintaX();
....signal(mutex_cintaX);
....if(turno_cintaA()){
........wait(mutex_cintaA);
........wait(cintaA);
........depositar_cintaA(mercaderia);
........signal(mutex_cintaA);
....}else{
........wait(mutex_cintaB):
........wait(cintaB);
........depositar_cintaB(mercaderia);
........signal(mutex_cintaB);
}
EmpleadoA()
while(1){
....wait(mutex_cintaA):
....mercaderia = retirar_cintaA();
....signal(cintaA);
....signal(mutex_cintaA);
....armar_paquere();
}
EmpleadoB()
while(1){
....wait(mutex_cintaB):
....mercaderia = retirar_cintaB();
....signal(cintaB);
....signal(mutex_cintaB);
....armar_paquere();
}
2) En este segundo ejercicio tengo una duda que es el tema de los accesos que requiero a disco para poder encontrar el inodo de resumen.pdf. Tengo entendido que los inodos en EXT2 se levantan en memoria ni bien se carga el SO, pero no me cierra porque me dice que resumen.pdf se encuentra en el inodo numero 10
Puntero: 4 bytes
Bloques: 4 KiB --> 4096 Bytes
Cantidad de Entradas por bloque: 4096 bytes / 4 bytes = 1024 entradas
Relacion de Accesos logicos y fisicos: 1 acceso logico son 4 accesos fisicos (no estoy seguro.. pero asumo que la lectura de un sector es de un acceso fisico)
Resumen.pdf: 10Mib = 10240KiB
a)
Cantidad de bloques de archivos a leer: 10240KiB / 4KiB = 2560 bloques (2560 accesos logicos)
De la cantidad anterior: 10 bloques son directos, 1024 son indirectos de nivel 1 y 1526 son indirectos nivel 2, por lo tanto a la cantidad de accesos logicos que se obtuvieron anteriormente hay que sumarle 1 acceso de la indireccion de nivel 1 y 3 accesos de la indireccion de nivel 2 (porque utiliza dos indirecciones de segundo nivel). Por otro lado en el punto b me pide que grafique el contenido del archivo /root/secret diciendo cuantos bloques ocupa cada archvio. Mi pregunta aca es que cosas deberia poner exactamente.
Cantidad Total de Accesos Logicos: 2564
Cantidad Total de Accesos Fisicos: 10256
b)
Contenido de /root/secret
resumen.pdf - inodo 10 - 2560 bloques
resumenHL.pdf - inodo 10 - 2560 bloques (son los mismos bloques que el de arriba)
resumen.tar.gz - inodo 11 - 1280 bloques
resumenSL.tar.gz - inodo 12 - 0 bloques (es un inodo nuevo que posee una referencia al archivo original!)
Eso es todo. Espero que me puedan decir las cosas que hice mal (creo que todo jajaja) asi aprendo a hacer este tipo de ejercicios porque se me complican de verdad (y eso que lei toda la teoria de filesystem de silbercharzt).
Saludos,
Sinnick