enunciado_tp1

1
Sistemas Operativos II Trabajo Práctico 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 día de la semana, día del mes, mes, año, hora, minutos y segundos. El programa cliente utilizará un puerto TCP, asignado de manera aleatoria por el sistema operativo, al momento de la conexión. Al inicio se deberá asignar todos ceros a su registro de timestamp. Una vez establecida la sesión entre el programa cliente y el servidor, la aplicación proveerá de un "prompt" que identifica la misma. En el contexto de este "prompt" se podrán intercambiar mensajes entre cliente y servidor e ir mostrándose en pantalla. Existen comandos especiales que deben poder ejecutarse tanto desde el cliente como del servidor: o updatetime: mensaje que se le envía al servidor solicitando su timestamp. Este al recibirlo, se fija en el time de su sistema, actualiza su registro y luego lo envía al cliente. El cliente al recibirlo actualiza su registro con el nuevo timestamp y lo muestra en pantalla. o settime: se envía 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 operación de transferencia del archivo debe bloquearse el prompt del cliente hasta tanto finalice la transferencia. Tanto la especificación del protocolo de red en la capa de aplicación, así como la elección 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 válido (ej. send <directorio-invalido>), debe comunicar esta situación ante la imposibilidad de ejecutarlo. Cada operación 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 operación indicando fecha y hora de cada operación, comando ejecutado y el resultado de dicha ejecución (Éxito o Tipo de Error). Se deberá proveer los archivos fuente del cliente y del servidor, así como cualquier otro archivo asociado a la compilación, si existiera (archivos de proyecto "Makefile", por ejemplo). Se debe asumir que las pruebas de compilación se realizarán en un equipo que cuenta con las herramientas típicas de consola para el desarrollo de programas (Ej: gcc, make), y NO se cuenta con herramientas "GUI" para la compilación de los mismos (Ej: eclipse). Se deberá proveer un instructivo que describa brevemente una secuencia típica de comandos de la aplicación, que acrediten el cumplimiento de las especificaciones del programa.

Upload: pedro-ruiz-diaz

Post on 16-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Enunciado_TP1 SO2

TRANSCRIPT

  • 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.