enunciado_tp1
DESCRIPTION
Enunciado_TP1 SO2TRANSCRIPT
-
Sistemas Operativos II Trabajo Prctico 1 IPC Sockets Elabore un conjunto de programas para un Network Time Protocol (NTP) en lenguaje "C", que cumpla con las siguientes especificaciones:
Debe existir un programa cliente y un programa servidor NTP. El programa servidor utilizar la capa de transporte TCP, puerto 6020. El timestamp debe contener el da de la semana, da del mes, mes, ao, hora,
minutos y segundos. El programa cliente utilizar un puerto TCP, asignado de manera aleatoria por
el sistema operativo, al momento de la conexin. Al inicio se deber asignar todos ceros a su registro de timestamp. Una vez establecida la sesin entre el programa cliente y el servidor, la
aplicacin proveer de un "prompt" que identifica la misma. En el contexto de este "prompt" se podrn intercambiar mensajes entre cliente y servidor e ir mostrndose en pantalla. Existen comandos especiales que deben poder ejecutarse tanto desde el cliente como del servidor:
o updatetime: mensaje que se le enva al servidor solicitando su timestamp. Este al recibirlo, se fija en el time de su sistema, actualiza su registro y luego lo enva al cliente. El cliente al recibirlo actualiza su registro con el nuevo timestamp y lo muestra en pantalla.
o settime: se enva desde el cliente, un archivo de texto plano al servidor, con el registro de timestamp. El receptor indicar cuando el archivo se reciba tanto local como remotamente.
o timestamp: muestra el registro de timestamp local. Para la transferencia del contenido de archivo, se deber utilizar la capa de
transporte UDP, puerto 6020. Durante la operacin de transferencia del archivo debe bloquearse el prompt
del cliente hasta tanto finalice la transferencia. Tanto la especificacin del protocolo de red en la capa de aplicacin, as como
la eleccin de la interfaz de usuario del programa cliente, quedan liberadas a criterio del estudiante.
Debe incluirse un mecanismo de control y manejo de errores en ambos extremos para el manejo de archivos, esto es, si un comando no es reconocido o el argumento de un comando es no vlido (ej. send ), debe comunicar esta situacin ante la imposibilidad de ejecutarlo.
Cada operacin ejecutada en el servidor deber ser registrada en un archivo local al cliente llamado ntp.log a modo de respaldo. En este se deber guardar cada operacin indicando fecha y hora de cada operacin, comando ejecutado y el resultado de dicha ejecucin (xito o Tipo de Error).
Se deber proveer los archivos fuente del cliente y del servidor, as como cualquier otro archivo asociado a la compilacin, si existiera (archivos de proyecto "Makefile", por ejemplo). Se debe asumir que las pruebas de compilacin se realizarn en un equipo que cuenta con las herramientas tpicas de consola para el desarrollo de programas (Ej: gcc, make), y NO se cuenta con herramientas "GUI" para la compilacin de los mismos (Ej: eclipse).
Se deber proveer un instructivo que describa brevemente una secuencia tpica de comandos de la aplicacin, que acrediten el cumplimiento de las especificaciones del programa.