Licenciatura

Páginas: 8 (1965 palabras) Publicado: 23 de octubre de 2014
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)

Proyecto #3

PROYECTO #3
(A Database Wannabe)
INTRODUCCIÓN:
Esta actividad de programación tiene como intención producir un servidor de Base de Datos
(BD) muy simple, el cual sea capaz de manejar cualquier cantidad de clientes. La BD
contiene un número de pares de nombres de paísesy sus capitales. Los clientes pueden
consultar la BD, preguntando por la capital de un país; y adicionalmente estos pueden
agregar nuevos pares de nombres a la BD o eliminar pares. El GDSO le proveerá una
plantilla de la solución con soporte single-thread. Usted deberá entonces modificar los
archivos provisto, en primera instancia para agregar soporte de múltiples clientes vía
multithreaded,luego usted deberá asegura que la BD sea thread-safe.
La versión del código provista por el GDSO está codificada en lenguaje C. En la
implementación provista los clientes interactúan con la BD vía una ventana xterm; nosotros
le hemos provisto del código para el manejo de ventana, por lo que no es necesario que
usted modifique esta porción del código. Con cada ventana cliente se encuentraasociado un
thread el cual es el encargado de manejar la interacción del cliente con la BD. Este thread
espera una entrada del cliente, analiza el comando que desea ejecutar el cliente, realiza la
llamada al código requerido de la BD, y por último devuelve los resultados al cliente. La BD
es relativamente sencilla, ya que sólo contiene una colección de pares name-value
organizados en forma de unárbol de búsqueda no balanceado.
El código provisto por el GDSO consta de seis (6) archivos. El archivo server.c contiene el
cuerpo del servidor; los archivos db.c y db.h albergan el código encargado de manejar la
BD; los archivos windows.c, windows.h e interface.c implementan la comunicación
necesaria para realizar el manejo de ventanas.
IMPLEMENTACIÓN:
[Parte 1]
El GDSO le ha provisto deuna implementación single-thread de la BD sencilla que se ha
descrito anteriormente. Su primera tarea es transformar esta implementación en un
programa multithreaded que permita manejar múltiples clientes. Por los momentos usted
solo debe preocuparse por que múltiples clientes puedan ejecutar querys contra la BD.
Entre los archivos provistos por el GDSO usted encontrará un Makefile. Al ejecutarel
comando make se obtiene un archivo ejecutable de nombre server. El ejecutar el archivo
server, una ventana debe aparecer. Dentro de la ventana, ejecute el comando, “f caps”.
Este comando permite inicializar la BD, al ejecutar el script contenido en el archivo caps.
Usted puede realizar queries usando el comando “q ” y obtendrá como
respuesta la capital del país, si este país se encuentraen la BD. Por ejemplo, intente
ejecutando “q papua_new_guinea” (note que todas la letras están en minúscula, y el
carácter underscore es usado para espacios en blanco). Si un país comúnmente se denota
con una abreviación, por ejemplo, usa o uk, la abreviación puede ser utilizada. Usando la
combinación de teclas +D se invoca la destrucción del cliente.

Semestre II-2013

UniversidadCentral de Venezuela
Facultad de Ciencias
Escuela de Computación
Sistemas Operativos (6004)

Proyecto #3

Los comandos que puede ejecutar el intérprete para interactuar con la BD son: q – query,
a – add , d –delete , y f - . Este último
comando permite cargar un archivos estilo script con un conjunto de comandos.
Aclarado el funcionamiento de la implementación provista, usted deberá modificarel archivo
server.c de manera tal que cuando se inicie el programa, no se creé automáticamente
una ventana. En lugar de esto, cada vez que se presione la tecla enter (en la ventana o
consola donde se ejecuta el servidor), una nueva ventana es creada junto con un nuevo
thread para manejarla. Cuando usted ejecute un comando en cualquiera de las nuevas
ventanas, ellas deben funcionar como la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Licenciatura
  • Licenciatura
  • Licenciatura
  • Licenciatura
  • Licenciatura
  • Licenciatura
  • Licenciatura
  • Licenciatura

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS