UTNianos

Versión completa: [Aporte] 8 finales de 2016 y 2015 resueltos y explicados
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Saludos, utnianos

Emprendí mi viaje hacia dar el final de esta linda materia llamada Arquitectura de Computadoras, que como todos sabrán, está infinitamente bastardeada y destruída por las cursadas pésimas que hay. Para que se hagan una idea, cuando la cursé, la palabra "assembler" jamás se pronunció siquiera durante la cursada... Se imaginarán mi cara cuando ví los finales de este foro por primera vez... Me dio la sensación de que era otra materia directamente.

Así que empecé a armar mis apuntes, con todo lo que encontré, pero noté algunas cosas:
  • Los finales resueltos y explicados están medio desactualizados (llegan hasta el 2014)
  • Es trabajoso estar con 15 pestañas abiertas para cada final
  • La mayoría de los resueltos tienen las respuestas a la vista (he visto pocos donde te dejan el final en blanco como para que lo pienses, y luego aparte te ponen las respuestas)

Así que empecé primero a estudiar la materia, luego a reunir los finales de estos últimos dos años, y a juntarlos todos en el mismo lugar para tenerlos a mano (con las respuestas ocultas para tratar de resolverlo yo mismo), y luego los resolví adjuntando (siempre que fue posible) la explicación de cada respuesta para tenerla presente cuando vuelva a leer estos finales.

Se me hizo mucho más ameno ver los finales organizados de esta manera, así que vengo a compartirlos con ustedes por si les sirve.

Armé una página que está hosteada en GitHub donde están los últimos 7 finales que encontré en este foro.

Cualquier sugerencia, corrección, o aporte es más que bien recibida.

Link mágico

EDIT: Final del 1 de Marzo de 2016 agregado.

EDIT del 21/02/2017

Este final lo aprobé con 7 en la primer llamada de Febrero de 2017. Mi recomendación es que lean:
  • El Resumen de Quiroga
  • El Resumen de Angulo
  • Finales de La Gloria
  • Los finales de este post

Las respuestas cuya explicación no entiendan, búsquenlas en los libros (hay una versión PDF del libro de Quiroga, por lo que hacer búsquedas es super rápido). Con esto es posible dar esta materia.

Mi opinión personal, es que es una pena que una materia tan interesante esté tan hecha pelota por las cursadas y finales que tiene, pero créanme: no es imposible aprobarla, es sólo que es una manera desordenada de estudiarla si no tenemos los apuntes a mano.

Algo que me gustaría agregar, es que pueden "jugar" con este assembler online que encontré. Pueden ejecutarlo paso a paso para ver cuál es la mágia detrás de assembler. A mí me sirvió muchísimo para entender cómo funcionan las instrucciones, y para ver qué hacen algunas instrucciones en particular.

https://schweigi.github.io/assembler-simulator/

Saludos y éxitos a todos!
Gracias! Justo la estoy preparando y estoy con el libro de Quiroga. Esto me va a venir de 10.
Buenísimo, loco! Gracias.
Es la primera vez que comento una publicación,pero te lo merecés. ¡Muchisimas gracias!
La mini gloria! Gracias!
Muchisimas gracias!!!
Ya con la organización y la calidad de la presentación de la información me dieron ganas de leerlo y estudiarlo. Muchísimas gracias.
El final del 26/07/2016 (tema 1) creo que tiene un par de cosas mal

En la teoria, en donde pregunta por "Un arreglo unidimensional cuya función es apuntar a la primera instrucción del servicio de atención de una interrupción" vos pusiste el registro IDTR. Pero un arreglo unidimensional es un vector, osea un tipo de estructura de datos que contiene una coleccion finita y ordenada de datos del mismo tipo. El registro ese almacena un solo valor, un puntero, y por lo tanto no es un arreglo unidimensional.

La respuesta entonces de ese ejercicio me parece que es el Vector de Interrupciones, cuya funcion es efectivamente apuntar a la primera instruccion de los distintos servicios de interrupcion.

Desp en la practica, en el ej 1 pones "3B45 x 10 + 0103 = 3B153" pero esa cuenta da 3B553 a menos que yo no sepa sumar.
(21-02-2017 14:19)lautaromss escribió: [ -> ]El final del 26/07/2016 (tema 1) creo que tiene un par de cosas mal

En la teoria, en donde pregunta por "Un arreglo unidimensional cuya función es apuntar a la primera instrucción del servicio de atención de una interrupción" vos pusiste el registro IDTR. Pero un arreglo unidimensional es un vector, osea un tipo de estructura de datos que contiene una coleccion finita y ordenada de datos del mismo tipo. El registro ese almacena un solo valor, un puntero, y por lo tanto no es un arreglo unidimensional.

La respuesta entonces de ese ejercicio me parece que es el Vector de Interrupciones, cuya funcion es efectivamente apuntar a la primera instruccion de los distintos servicios de interrupcion.

Desp en la practica, en el ej 1 pones "3B45 x 10 + 0103 = 3B153" pero esa cuenta da 3B553 a menos que yo no sepa sumar.

Holas~

Sobre la práctica, sí, la pifié. Olvidé mencionar en la explicación que la fórmula es "Base del Segmento x 10(Hexa) + Desplazamiento". Recordemos que si multiplicamos un número (en hexa) por el valor 10 (en hexa) simplemente agregamos un 0 al final.

Por ejemplo: 1A(hexa) x 10(hexa) = 1A0

Entonces, en nuestro caso tenemos:

3B45 x 10 = 3B450

Y luego nos queda la suma de 3B450 + 0103, la cual implica sumar 1 al 4, y sumar 3 al 0, así obtenemos 3B553.

Respecto a la otra corrección que mencionás sobre la IDTR: Si, tenés razón, es el vector de interrupciones.

Gracias por las correcciones, ahora mismo las corrijo =P
Desp el final del 01/03/2016 tamb tiene otro error

en la pregunta que dice Indique si es verdad que existen sólo dos registros del procesador que se utilizan para determinar el campo desplazamiento de una dirección virtual, cuando se accede a una estructura alojada en el segmento SS.

Contestas verdadero y que los registros son el SS y el SP. Pero el registro SS (Stack Segment) no sirve para determinar el campo desplazamiento, sino que sirve para determinar el campo selector (en el libro quiroga se explica que el campo selector de una direccion virtual esta formado por los 14 bits superiores de un registro de segmento, ej el SS)

Creo que la respuesta sigue siendo verdadero pero los dos ejemplos de registros que apuntan a desplazamientos del stack son el SP y el ESP (extended stack pointer)

EDIT: Y con la pregunta de cual es el valor negativo en el cual una operacion de 128bits dan overflow... para mi se refiere al formato complementado a 2 porque es el que usan las computadoras para almacenar y operar valores enteros de ese tipo. En ese caso la respuesta seria -2 elevado a la 127. Igual estoy de acuerdo en que la pregunta esta mal explicada.

PD: Ya le habia dado gracias al thread pero dejame repetirlo, muchas gracias por los finales que juntaste y las respuestas, me sirvieron muchisimo

En el final 9/12/2015 pregunta por la division logica minima asociada a un disco magnetico. En el libro de quiroga pag246 dice que los platos del disco se dividen en pistas y que esta división es lógica, no fisica. Desp en la pag247 dice que las pistas se dividen a su vez en sectores.

En esa misma pagina, la 247, explica que los programas graban o leen de a bloques y que un bloque puede contener más de un sector. Y explica que en Windows un cluster es igual a un bloque.

Entonces la división lóigca mínima no es el cluster sino el sector, en mi opinion.
Bueno acabo de rendir el final, aprobé con 4. La verdad que me deja atónito que en todos los finales siempre haya algún enunciado redactado muy muy mal. Había un ejercicio que preguntaba "en una interrupción fault a qué instrucción del programa interrumpido se vuelve una vez resuelta la interrupción" y pretendían que lo interpretaras como la instrucción a la que iba PARA resolver la interrupción, en vez de a la cual volvía UNA VEZ RESULETA la interrupción. Ridículo.

Otro ejercicio preguntaba por el "valor negativo máximo y mínimo que se puede obtener en 64bits". No te aclaran que es en el formato complemento a 2 y eso de "valor mínimo negativo" es tan rebuscado (sí, significa -1)

Había otro ejercicio que preguntaba cuántas páginas se necesitan para almacenar un bloque de memoria de 4096 bytes. Según el corrector la respuesta era 2 páginas. Todavía me estoy preguntando por qué no es 1 sola página si cada página tiene un tamaño de 4KB. No me dijeron.

Otro ejercicio pedía una ventaja y desventaja de la memoria virtual segmentada y paginada. Yo puse como desventaja que "es muy caro pasar de la dirección virtual a la física". Con caro me refería obviamente a que requiere muchos recursos, es muy costoso. Pero la profesora me dijo que lo que puse no tiene sentido "Caro? Qué es eso? No tiene sentido esto" y cuando se lo expliqué me dijo que no se puede interpretar eso de lo que puse. Pero si lo puse clarísimo!

En fin como dije por suerte me aprobaron. Nunca más.
(22-02-2017 00:38)lautaromss escribió: [ -> ]Había otro ejercicio que preguntaba cuántas páginas se necesitan para almacenar un bloque de memoria de 4096 bytes. Según el corrector la respuesta era 2 páginas. Todavía me estoy preguntando por qué no es 1 sola página si cada página tiene un tamaño de 4KB. No me dijeron.

Eran 4098 bytes. Por eso eran 2 páginas (tengo una copia del final, después lo subo). Por suerte también aprobé. Igual coincido con vos, preguntas muy rebuscadas y mala leche. Te quieren hacer pisar el palito todo el tiempo. Ahh otra cosa, un amigo rindió el otro tema, le pusieron un 2, fue a reclamar y le pusieron un 4. Resulta que los señores profesores le había puesto mal dos puntos que estaban bien. Una vergüenza esta cátedra.
(Sí, mi también originalmente me habían puesto un 2 y me lo cambiaron a 4 luego de revisar mi final, sino no me hubiera puesto a discutir mis respuestas).

Ahh asique eran 4098 bytes, que mala leches jajaja. Mala mía entonces.
(21-02-2017 16:37)lautaromss escribió: [ -> ]Creo que la respuesta sigue siendo verdadero pero los dos ejemplos de registros que apuntan a desplazamientos del stack son el SP y el ESP (extended stack pointer)

Esto es tal cual lo decís vos, ya lo corregí y lo actualicé =)

(21-02-2017 16:37)lautaromss escribió: [ -> ]En el final 9/12/2015 pregunta por la division logica minima asociada a un disco magnetico. En el libro de quiroga pag246 dice que los platos del disco se dividen en pistas y que esta división es lógica, no fisica. Desp en la pag247 dice que las pistas se dividen a su vez en sectores.

La pregunta es por la unidad mínima que se puede acceder para leer o escribir. En este sentido, entonces es el clúster el que indica la cantidad mínima de bytes a las que se puede acceder a la vez. La explicación (con diagrama incluído) está acá:

https://es.wikipedia.org/wiki/Cl%C3%BAst..._archivos)

Gracias por el feedback de todos =P , es mi primer aporte, así que le puse toda la onda que pude jaja
En verdad eres el rey de reyes, ya te deje el Graciela y me gustaria acotar algo en el post.
El tema de las instrucciones que joden facilmente 3 puntos en el final. En mi caso fue la instruccion:
CMP Reg, Reg
Link de Instrucciones Explicadas
Páginas: 1 2
URLs de referencia