2º [ETIS] Sistemas Operativos I (SO1)

Subforo de asignaturas del curso 2008-09.

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Vie, 28 Ago 2009 13:05

Lo primero, lo del walk_directory y tal no te puedo ayudar, aún no he mirado eso. En cuanto al algoritmo, pueden cambiar... pero cambian cuando pasa el puntero no? (Es como si se refrescaran, vaya)

Y no, no tengo ningún otro código, lo siento. Si lo hago te lo pongo por aquí.
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor joselu » Sab, 29 Ago 2009 12:45

yo tengo una duda en el mfs, en dir_create como haces para (una vez tienes reservado espacio para un nuevo bloque) asignar los nombres de los ficheros para que al hacer el ls se muestren los verdaderos nombres?
Avatar de Usuario
joselu
Fosa de Trilla
 
Mensajes: 849
Registrado: Vie, 17 Nov 2006 21:56
Ubicación: Corunha, Gz

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor Neimad » Sab, 29 Ago 2009 20:54

Santi M. escribió:Lo primero, lo del walk_directory y tal no te puedo ayudar, aún no he mirado eso. En cuanto al algoritmo, pueden cambiar... pero cambian cuando pasa el puntero no? (Es como si se refrescaran, vaya)

Y no, no tengo ningún otro código, lo siento. Si lo hago te lo pongo por aquí.

El walk_directory recuerdo que era un coñazo que nunca acabe entendiendo que hacia exatamente, pero si a lineas generales.
Uno de los parametros que se le pasaba era un puntero a una funcion, por lo que segun que funcion le pasaras cambiaba una comprobacion que hacia.

Siento no ayudar en mucho, pero no me acuerdo ya de esas cosas.
Avatar de Usuario
Neimad
Doncella Sarina
 
Mensajes: 414
Registrado: Lun, 17 Sep 2007 18:54
Ubicación: Villagarcia

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor jhone » Lun, 31 Ago 2009 18:48

Escribir una funcion int mfs read(inodo *i, void *buf, int len, int pos) que realize
una lectura del inodo i, en el buffer buff , con longitud len, y en la posici´on del fichero
pos. Las caarteristicas del sistam de ficheros (tipo Unix) son:
Dado un sistema de ficheros en el que:
El tama˜no de bloque es 4KB.
El tama˜no de puntero a bloque es 4bytes.
En el inodo existen:
• 10 punteros directos a bloques.
• 1 puntero indirecto.
• 1 puntero doblemento indirecto.
• 1 puntero triplemente indirecto.
struct inodo {
int length; /* longitud del fichero */
int direct[10]; /* punteros directos */
int indirect; /* numbero de bloque de punteros indirecto */
int double; /* idem para doble indirecto */
int triple; /* ided para triple indirecto */
....
};
int block_read(dev_t dev, void *buf, int num_block);
El programa debe devolver:
N´umero de bytes leidos.
Si no existe un bloque asignado a esa posicion, devolver todo ceros.
Si el fichero no tiene datos en esa posici´on EINVAL;



En ejercicios de este tipo lo de los punteros directos,indirectos simples,dobles,triples...es como si representaran los extents?quiero decir si indican el primer bloque de cada extent(considerando el entero de bloques indirectos simples el primer extent...dobles.siguiente extent.....asi sucesivamente)esto es asi no?y luego para calcular el tamaño de cada uno de ellos dependerá del tamaño de bloque y de tamaño d puntero....supongo q irá asi no?....bueno gracias a todos
jhone
Cuervo Sangriento
 
Mensajes: 68
Registrado: Mié, 15 Abr 2009 20:16

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Mar, 01 Sep 2009 9:12

@jhone: teóricamente un puntero directo apunta a un solo bloque, los indirectos apuntan a bloques de directos, los indirectos dobles a bloques de indirectos y así sucesivamente.
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor jhone » Mar, 01 Sep 2009 12:07

ya ya eso ya lo se....pero quiero decir si dentro de los bloques de datos....x ej...el int indirect simple...representa al primer bloque de datos apuntado por los indirectos simples?...o si no es asi....que es lo que representa?...nosotros en la practica del mfs vamos leyendo del fichero con file_read es decir vamos leyendo de los extents del inodo que nos lo da como entrada en la funcion....entonces en este caso supongo que habra q tener claro cuales serian los extents y luego hacer block_read de ellos....no se...como haceis vosotros este ejercicio?
jhone
Cuervo Sangriento
 
Mensajes: 68
Registrado: Mié, 15 Abr 2009 20:16

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Mar, 01 Sep 2009 12:34

jhone escribió:ya ya eso ya lo se....pero quiero decir si dentro de los bloques de datos....x ej...el int indirect simple...representa al primer bloque de datos apuntado por los indirectos simples?...o si no es asi....que es lo que representa?...nosotros en la practica del mfs vamos leyendo del fichero con file_read es decir vamos leyendo de los extents del inodo que nos lo da como entrada en la funcion....entonces en este caso supongo que habra q tener claro cuales serian los extents y luego hacer block_read de ellos....no se...como haceis vosotros este ejercicio?


Vamos a ver, el entero de los punteros indirectos representa el bloque que contiene los punteros directos. No es un primer bloque, es que solo hay uno. Vamos, así lo entiendo yo.
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor jhone » Mar, 01 Sep 2009 14:29

ok...ya...no se sigo sin saber muy bien como hacer el ejercicio...como accederias tu a los bloques del fichero?
jhone
Cuervo Sangriento
 
Mensajes: 68
Registrado: Mié, 15 Abr 2009 20:16

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Mar, 01 Sep 2009 17:31

Pues muy fácil (SI NO ME EQUIVOCO, CLARO xD). Primero iría a los diez a los que apunta directamente el inodo (punteros directos), después cogería el bloque de indirectos e iría a los que me indican los punteros directos que hay ahí dentro, después iría al bloque de indirectos dobles, de los que sacaría bloques son indirectos simples que apuntarían a bloques con directos que apuntan a los siguientes bloques del fichero. Adivina que hay que hacer con los triples ;)


Qué tal lo lleváis? Yo creo que bien pero sabe Dios... si alguien sabe explicar el search_position y el walk_directory me haría el favor de mi vida xD
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor lanterna » Mar, 01 Sep 2009 17:45

me estais diciendo q sabeis hacer algunos ejercicios de examenes pasados sin ser los del algoritmo de buddy o 2ª oportunidad o lo del calculo d inodos? decidme ke si y bajadme la moral xD
Avatar de Usuario
lanterna
Piel Dentada
Superguerreiro
 
Mensajes: 274
Registrado: Vie, 04 Jul 2008 1:50

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Mar, 01 Sep 2009 18:06

En general no, de hecho la segunda oportunidad no te creas que la domino... por cierto a ver si me puedes solucionar una duda, tengo cuatro frames y el puntero está en el primero... tengo que leer la pagina 2 que está en el 4º frame... SALTO DIRECTAMENTE o la leo dos veces? ;S

Yo sé hacer ese ejercicio (o eso creo), pero porque para hacer la práctica del fsinfo tuve que aprenderme lo de los punteros... tu no sabes? Si tenéis alguna duda preguntad, yo intentaré responder lo que sepa pero no soy un gurú, si no todo lo contrario... así que no os fiéis.

Dios! Que ganas de sacármela de encima... las páginas que tiene esta asignatura son una buena muestra del coñazo que da xDD
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor lanterna » Mar, 01 Sep 2009 18:45

Santi M. escribió:En general no, de hecho la segunda oportunidad no te creas que la domino... por cierto a ver si me puedes solucionar una duda, tengo cuatro frames y el puntero está en el primero... tengo que leer la pagina 2 que está en el 4º frame... SALTO DIRECTAMENTE o la leo dos veces? ;S

Yo sé hacer ese ejercicio (o eso creo), pero porque para hacer la práctica del fsinfo tuve que aprenderme lo de los punteros... tu no sabes? Si tenéis alguna duda preguntad, yo intentaré responder lo que sepa pero no soy un gurú, si no todo lo contrario... así que no os fiéis.

Dios! Que ganas de sacármela de encima... las páginas que tiene esta asignatura son una buena muestra del coñazo que da xDD



Si ya esta en el cuatrto frame....cambias directamente los bits, el puntero sigue apuntando al primer frame y el resto d bits de los demas no se tocan. Aver si esto ke postee en su dia t ayuda (ami me ha ayudado hace un rato para recordar como era xDDD):


El bit de modificacion se pone solo a 1 si escribes
El bit de acceso se pone a 1 si lees y si escribes tambien
-que indica el bit de acceso? que se ha accedido
-que indica el bit de modificacion? que lo que hay en memoria y en disco no es lo mismo (lo mas rciente esta en memoria)

El algoritmo Piensalo de esta forma:
Van llegando las peticiones...
1) Si la tabla esta vacia pos las vas metiendo, 10 si lees y 11 si escribes (pongamonos en el caso de que mientras no esta llena no repites las mismas paginas). Al tener la tabla llena aora el asterisco (el que indica el siguiente al ultimo introducido marca arriba del todo
-a partir de ahora llega peticion de escritura o lectura
2) primeor miras si ya esta
2a)si ya esta el asterisco ni se toca y cambias los bits como sea y cuando sea en esa pagina, si escribes pones 11 si lees 10 independientemente de como este la pagina porque es ella misma
2b) si no esta empiezas a recorrer desde el asterisco una por una cambiando los estados si no te encuentras un 00
En caso de no haber encontrado 00 vuelves a mirar asterisco por asterisco(ahora si que deberia de haber una-->2ª oportunidad) y lo metes ahi.
Existe el caso extraordinario de que haya un 00 pero este escribiendose en disco (en ese sentido si esa no es la misma pagina no puedes meter ahi el dato asta que no pasan 2 ciclos normalmente segun enunciado)----> aclaracion: la segunda oiportunidad no cuneta como un ciclo para los que esten escribiendo en disco


NO se si solucione tu duda....de lo demas...yo si no repite el mismo examen o parecido nose hacerlo xD
Avatar de Usuario
lanterna
Piel Dentada
Superguerreiro
 
Mensajes: 274
Registrado: Vie, 04 Jul 2008 1:50

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor jhone » Mar, 01 Sep 2009 18:52

el walk_directory lo que va haciendo es mirar todos los bloques del disk inode que se le pasa a la funcion y sobre esos bloques considera tantas struct entry como cojan en un bloque....entonces dependiendo de la funcion que se le pasa como argumento a walk_directory ( search_name,search_and_delete,search_free,search_position) hará la comprobacion con cada uno de los struct entry del mfs y el struct entry que se le pasa como argumento a walk_direcory...no se si me explico...
y bueno la search_position no entiendo muy bien a que biene..la usa en mfs_readdir pero no lo entiendo ...xq en teoria deberia ir obteniendo cada una de las entradas del directorio...y no entiendo el xq de obtener las entradas cuando el inodo de arg sea cero...vamos q no lo veo...



Oye vosotros en junio le hicisteis el de programar en c el algoritmo de segunda oportunidad??es q yo no hiciera..y tal como nos lo dio resuelto no lo entiendo demasiado bien....nose...vosotros supongo q lo hareis cada uno a vuestra manera no??es q como ponga otra vez el mismo ejercicio...vamos seria la hostia tenerlo perfecto..y si tuvierais uno q estuviera bien hecho estaria dpm...bueno saludos a todos
jhone
Cuervo Sangriento
 
Mensajes: 68
Registrado: Mié, 15 Abr 2009 20:16

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor agilismoftw » Mar, 01 Sep 2009 21:48

@lanterna: Pues sí, muchas gracias, pero tengo otra duda... tengo que hacer una escritura/lectura y la página está ya (o sea... salto a ella sin mover puntero) pero NO a 00, si no a 11, a 10 o a 00 escribiendo... qué hago entonces?

@jhone: gracias por la explicación pero no he entendido nada de lo del walk_directory xDD
Ponte traje, no seas cutre.
Avatar de Usuario
agilismoftw
Nihlathak
FUUUU
 
Mensajes: 1596
Registrado: Vie, 09 Nov 2007 21:50
Ubicación: Pontevedra / A Coruña

Re: 2º [ETIS] Sistemas Operativos I (SO1)

Notapor joselu » Mar, 01 Sep 2009 22:11

al igual ke en junio, supongo ke caerá 3 preguntas relacionadas con lo visto en practicas y la otra de teoria no?
Avatar de Usuario
joselu
Fosa de Trilla
 
Mensajes: 849
Registrado: Vie, 17 Nov 2006 21:56
Ubicación: Corunha, Gz

AnteriorSiguiente

Volver a FIC Asignaturas 2008-09

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado