Está en la página 1de 2

ILI 246

Tarea #1

ILI 246: Sistemas Operativos


Tarea #1 Reprobn sabe donde vives
Danilo Andrs Vergara Quitral Alejandro H. J. Sazo Gmez
30 de septiembre de 2013

1. Motivacin
Las llamadas al sistema o syscalls son el mecanismo por el cual se accede a los distintos servicios que un sistema operativo ofrece. Si bien muchas de stas son implementadas en lenguajes de nivel medioalto, otras deben ser programadas (por su uso del hardware) directamente en lenguaje mquina. Por ejemplo, detrs de una operacin de lectura y escritura de archivos se esconden muchas llamadas al sistema entre apertura de archivos, vericacin de integridad, traspaso de datos, escritura, cierre de archivos entre otros. Por otra parte, estas llamadas pueden ser invocadas a travs de los denominados intrpretes de comando o shells, las cuales pueden incluir su versin de algn comando o pueden cargar comandos predenidos. Por tanto es importante comprender la importancia de las llamadas al sistema como una utilidad bsica de los sistemas operativos y como stas son utilizadas en la ejecucin de aplicaciones y en tareas rutinarias.

2. Tarea
La tarea se divide en dos ejercicios prcticos los cuales pueden ser resueltos en cualquier orden. 1. Mi Primera Shell: Deben implementar un shell para Linux en lenguaje C que sea capaz de correr programas slo en primer plano, esto es, una vez que se ejecuta un comando, la shell queda inutilizable hasta que el comando ha terminado de ejecutarse. La shell debe tener un prompt1 esperando a recibir un comando del usuario. Las rutas de ejecutables deben ser absolutas (por ejemplo /bin/chmod en vez de chmod). Por otra parte la shell debe contar con cierto manejo de errores, por ejemplo los casos cuando el ejecutable no exista o cuando no hayan permisos de ejecucin. 2. Quiero mi syscall!: La llamada cat2 concatena archivos y los muestra por salida estndar. En esta ocasin deben implementar esta llamada al sistema en los lenguajes C y bash. Para este ejercicio
1 Ejemplo, el clsico smbolo $ 2 http://linux.die.net/man/1/cat

ILI 246

Tarea #1

deben armar la llamada a partir de otras llamadas al sistema, por lo que no es necesario manejo de archivos clsico en el caso de C. Ejemplos de ejecucin: Para un solo archivo: ./cat id_rsa_jassange Para dos archivos y mas: ./cat datos_servel passwords.txt

3. Restricciones y Consideraciones
Los cdigos de los dos ejercicios deben funcionar en los computadores de LabComp. Si no funciona all, su nota ser automticamente 0 y ser llamado a interrogacin en una fecha por denir. Para ambos ejercicios queda prohibido el uso de la funcin system() provisto por la biblioteca estndar de C. Para el ejercicio 2, y como se ejemplic, considere que cat siempre requiere a lo menos un argumento, por lo que nunca se ejecutar a secas; adems no se pide ningn ag u opcin especial como el comando original.

4. Entrega
Debe subir a Moodle un archivo gzip con el nombre numero_grupo-rol1-rol2.tar.gz (por ejemplo 2-2010730204-28730225.tar.gz), dentro del cual debe existir una carpeta con el mismo nombre y dos carpetas en el interior: Una carpeta llamada shell donde ir el codigo fuente de su shell y un README indicando cmo ejecutar su programa, explicacin de la implementacin y supuestos hechos. Una carpeta llamada cat la cual tendr dos subcarpetas llamadas C y bash, conteniendo cada una el cdigo fuente de la implementacin en el lenguaje respectivo. En la carpeta cat se debe incluir un README que explique cmo ejecutar ambos programas, la explicacin de la implementacin de ambos y supuestos hechos. La fecha de entrega ser el 21 de Octubre hasta las 00:05. El no cumplimiento de las reglas establecidas en el reglamento ocial, as como las restricciones mostradas en este documento sufrirn de descuento. Las copias sern sancionadas segn el reglamento de tareas.

AT X 2 DVQ/ASG/L E

También podría gustarte