UTNianos

Versión completa: [Aporte] Final Arquitectura 24/05/2012 (Resuelto)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Bueno, subo este final recién ahora porque pensé que ya estaba subido y cuando me lo puse a buscar hoy para ver si estaba resuelto, vi que no estaba ni subido (o al menos yo no lo encuentro)

Spoiler: Mostrar
[Imagen: dQJDa.jpg]

Acá les dejo mi resolución para que puedan comparar con la suya, si coinciden o no, etc. Repito, es mi resolución, no esta chequeado por nadie más, por lo que más de una respuesta puede estar mal.

Teoria:
1. Las referencias a las direcciones de la memoria principal. (Pag. 111 creo)
2. 32 bits y signo, exponente y mantisa. Fuente: http://es.wikipedia.org/wiki/IEEE_coma_f...le_32-bits
3. Registros de propósito general, registros de segmento (CS, DS, SS), registro puntero de instrucción (EIP), registro de estado o señalizadores (EFLAGS)
Lo que me gustaría saber es si el programador de aplicaciones también tiene acceso a los registros de segmento ES, FS, GS porque del libro yo entiendo que si ...
4. Registro puntero de pila ( ESP ). SP es de Stack Pointer. También esta el registro que apunta a la base de la pila que es el EBP pero no es por el que pregunta.
5. Modo inmediato (creo que tmb se le puede decir modo directo aunque nunca me quedo claro)
6. TLB
7. Directorio de tabla de páginas y tabla de páginas (creo que se refiere a esto)
8. IRQ ?? Con esta dudo bastante porque habla de que permite determinar la prioridad del mismo...
9. Fetch (Búsqueda de la instrucción) ?

Práctica:
a.1 - 0000 y FFFF (?) Un Word son 2 bytes (16 bits) entonces \[2^{16}\]-1 = 65535 que en HEXA es FFFF -eso hice yo pero no estoy seguro que sea lo que pide-

a.2 - 2^{15}-1 = 32767 (?) Signado iría de -32768 a +32767 según tengo entendido

a.3 - Si "cubre" hasta el +32767 entonces en \[2^{15}\] = 32768 ya daría overflow (OF = 1)

b.1 - En el registro de segmento.
b.2 - Modo Protegido: EIP (32 bits) Modo Real: IP (16 bits) (no estoy seguro tampoco)
b.3 - RSx16 + Desplazamiento (donde RS es la base que esta almacenada en el registro de segmento correspondiente, si no me equivoco y el desplazamiento en IP como se dijo en el punto b.2)
La entidad Base de un segmento presente en modo protegido está en los 32 bits de más peso del descriptor de segmento.
(Pág. 168)

c.1 - El campo límite en modo protegido indica el tamaño máximo del segmento. \[2^{20}\] = 1MB pero como acá dice que los segmentos están paginados yo interpreto que está en modo plano, donde hay un solo segmento que abarca toda la memoria principal. Si es este el caso, a mi entender el campo limite no brinda ninguna información, ya que el tamaño del segmento sería 4GB (como máximo) que no se pueden referencias con 20 bits.
Y si no es modo plano, entonces como dije al principio, nos indica el tamaño máximo del segmento...

c.2 - Este punto la verdad es el que menos seguro estoy... si la tabla de directorio tiene 3 entradas validad entonces "apunta" a sólo 3 tablas de páginas y si el campo puntero de tabla de pagina es de 10 bits, se podría acceder a un máximo de \[2^{10}\] = 1024 páginas
PERO LA VERDAD, no tengo lo suficientemente claro el concepto de paginación a 2 niveles... así que es muy probable que este punto este muy mal ...


Espero que este aporte les sea de utilidad y espero que puedan corregirme lo que tenga mal !!
Saludos a todos y gracias por pasar!
Meti un 4 con este final y ni puta idea como aprobe el VoF
gracias, vamos a ver cuánta suerte tengo mañana jajaj
Estas son las que pude corregir =P jajaja.

4.- ESP (Extended Stack Pointer) y EBP (Extended Base Pointer)
Fijate que dice "RegistroS", te esta pidiendo los dos.

b.2 EIP
Fijate que dice "Direccion Virtual" el modo Real no soporta memoria Virtual. Solo en protegido

c.1 Tamaño del segmento.
Fijate que por mas que sea segmentada con paginacion, no quiere decir que sea FLAT o PLANO.
FLAT o PLANO se usa para simular que no haya Segmentacion. La Segmentacion a diferencia de la Paginacion no se puede deshabilitar desde el registro de control CR0.
Despues lo de los 20 bits es asi. En los Atributos del descriptor del segmento, esta el Bit de Granularidad. Si G = 0. Entonces los 20bits estan expresados en bytes. Si G = 1, entonces los 20 bits estan expresados como paginas de 4KB.
G=0 - 2^20 = 1M * 1 byte = 1MB
G=1 - 2^20 = 1M * 4Kb = 4GB


Saludos!
(02-10-2012 11:21)maxiutn escribió: [ -> ]Estas son las que pude corregir =P jajaja.

4.- ESP (Extended Stack Pointer) y EBP (Extended Base Pointer)
Fijate que dice "RegistroS", te esta pidiendo los dos.

b.2 EIP
Fijate que dice "Direccion Virtual" el modo Real no soporta memoria Virtual. Solo en protegido

c.1 Tamaño del segmento.
Fijate que por mas que sea segmentada con paginacion, no quiere decir que sea FLAT o PLANO.
FLAT o PLANO se usa para simular que no haya Segmentacion. La Segmentacion a diferencia de la Paginacion no se puede deshabilitar desde el registro de control CR0.
Despues lo de los 20 bits es asi. En los Atributos del descriptor del segmento, esta el Bit de Granularidad. Si G = 0. Entonces los 20bits estan expresados en bytes. Si G = 1, entonces los 20 bits estan expresados como paginas de 4KB.
G=0 - 2^20 = 1M * 1 byte = 1MB
G=1 - 2^20 = 1M * 4Kb = 4GB


Saludos!

Muy buenas las aclaraciones, sobre todo lo de la segmentación. Gracias.
Corrijo el ultimo punto, si la tabla de directorio tiene 3 entradas entonces hay 3 tablas de paginas (cada entrada apunta a una tabla de paginas)

Cada tabla de paginas tiene como maximo 1k de entradas donde cada una contiene la base a una pagina de 4kb.

Entonces puede haber 3 x 1024 paginas
URLs de referencia