Se desea implementar un sistema de adquisición de datos basado

Anuncio
Universidad Tecnológica Nacional
Facultad Regional Bueno Aires
Técnicas Digitales III
15 de Febrero de 2005
Examen Final
1- Se desea implementar el servidor de un sistema de voto electrónico. El mismo funcionará en el centro de
cómputos de la Comisión Nacional Electoral, escuchando conexiones TCP en el puerto 50400. Los clientes
remotos (urnas virtuales en cada escuela) se conectan para ser validados, y una vez autenticados proceden
a descargar en el servidor el contenido de la urna virtual que tienen cargada con los votos de los
sufragantes. Dicha descarga se realiza por un puerto UDP que se encuentre disponible al momento de
conectarse el cliente. Pare evitar una avalancha de conexiones, existe un cronograma de momentos de
conexión para cada distrito electoral, con lo que se garantiza que no existirán más de 100 conexiones
simultáneas, las cuales no demorarán más de 1 minuto en realizar la descarga. Para su comodidad, existen
implementadas en un módulo de programa aparte (usted solo debe incluir el módulo en el comando para
compilar) las siguientes funciones para consulta de la base de datos:
Int ChkClient(char *password); // verifica cliente ok y devuelve un clientID.
Int GuardaUrna (int clietnID, void *votos, int cant); //guarda los datos de la urna para el clientID dado.
El acceso a la Base de datos de autenticación es exclusivo y debe realizarse de a un proceso por vez.
Al conectar un cliente, este puede enviar uno de los siguientes comandos (son strings de chars):
VALIDAR: y junto con este comando envía su clave (unica de 20 chars).
DESCARGA: y espera recibir de vuelta, un ok y el numero de puerto UDP donde el servidor espera
recibir los datos de la urna del cliente, luego de esto el cliente comienza la descarga (suponga que la
verificación de consistencia de datos esta resuelta por otro equipo de desarrollo).
FIN: petición de desconexión.
Parte Teórica:
2. La instrucción
mov
ax, [esi]
corresponde a una tarea que al momento de su ejecución tiene: ds : esi = 23h : 9F0A02EBh, y CR3 =
0000F000h. Las tablas de descriptores de página se ubicarán en memoria física a continuación del Directorio de
Tabla de Páginas (DTP), en el mismo orden en el que se encuentran sus descriptores correspondientes en el
DTP.
De modo que el modelo queda del siguiente modo:
Directorio de Tablas de Página
(DTP)
Base_DTP
Tablas de Página
Base_TP
0
1
Indexn
PTBAn
n
0
1
Indexm
PBAm
m
Se desea determinar:
2.a. Valor de Base_DTP. Base_DTP = dirección física de memoria a partir de la cual se ubica el DTP.
2.b. El valor de n. n = descriptor de tabla de página seleccionado en el DPT.
2.c. El valor de PTBAn, que debe llevar el descritor Nro. n del DPT de acuerdo a los datos del problema.
2.d. Valor de Base_TP. Base_TP dirección física de memoria a partir de la cual se ubica la tabla que
contiene el selector de la página de memoria física en donde reside el dato apuntado por es:edi.
2.e. Valor de m. m = descriptor de la página que contiene el objeto seleccionado por es:edi.
2.f. El valor de PBAm para que el objeto seleccionado por es:edi mapee sobre la dirección 100012Ebh.
3. Device Drivers
3.a. Diseñe la función que implemente la syscall read() de un driver para un puerto paralelo genérico, el
registro de datos estará en la posición 0x3bc, se utilizará lectura por interrupciones en la linea irq7.
3.b. Explique para qué son los números MAYOR y MENOR.
3.c. Explique cómo se instala un driver y qué funciones del mismo entran en juego al instalarlo y al
removerlo.
3.d. Qué relación guarda con el i-nodo del directorio /dev.
Universidad Tecnológica Nacional
Facultad Regional Bueno Aires
Técnicas Digitales III
15 de Febrero de 2005
Examen Final
4. Un descriptor de Interrupt Gate se encuentra en la IDT en la entrada correspondiente a la NMI. Una
aplicación que ejecuta en un segmento de código de DPL=10 ejecuta INT2h.
4.a. ¿Qué ocurre si el descriptor de NMI tiene DPL=00?
4.b. Si el selector que contiene la Interrupt Gate corresponde en la GDT a un descriptor de segmento de
código de DPL=00. ¿Cuál es el máximo valor numérico que debe tener en el campo DPL el descriptor
citado para que la aplicación pueda acceder al handler de INT 2?. Se pide justificar la respuesta.
4.c. ¿Qué ocurre con la pila de la aplicación en el caso en que el valor del campo DPL del descriptor de
Interrupt Gate sea el que se solicita en el ítem 4.b?. Se pide explicar este punto lo mas detalladamente
posible.
5. Se necesitan transferir por el USB 128 bytes de información por cada frame de 1 mseg. utilizando
transferencias de interrupción. Se dispone de un controlador 1.1 compatible con 4 endpoints de 64 bytes
cada uno. ¿De que forma resolvería la situación de modo de utilizar la cantidad mínima de endpoints del
controlador?. Se pide justificar la respuesta
Descargar