Sie sind auf Seite 1von 14

TRABAJOS PRCTICOS DE DISEO Y ADMINISTRACIN DE SISTEMAS OPERATIVOS

71013012

Asignatura Obligatoria del 1er semestre del 3er Curso del Grado en Ingeniera Informtica de la UNED

Curso 2012-2013

Fecha de publicacin: 15 de noviembre 2012 Fecha de entrega: 13 de enero de 2013

Contenido
INFORMACION GENERAL ....................................................................................................... 3 Objetivo de los trabajos ............................................................................................................. 3 Carcter de los trabajos ............................................................................................................. 3 Requisitos .................................................................................................................................. 3 Formato y fecha de entrega de los trabajos ............................................................................... 4 Informe ...................................................................................................................................... 4 Evaluacin de los trabajos ......................................................................................................... 5 TRABAJO I: Virus y antivirus...................................................................................................... 6 TRABAJO II: Comunicando procesos .......................................................................................... 8 APNDICE A: Instalacin de la mquina virtual ....................................................................... 11 Instalacin de Virtualbox ........................................................................................................ 11 Descarga de la mquina virtual ............................................................................................... 11 Puesta en marcha de la mquina ............................................................................................. 11

INFORMACION GENERAL
Objetivo de los trabajos
Los trabajos prcticos de la asignatura Diseo y Administracin de Sistemas Operativos consistirn en la realizacin a su vez de dos trabajos o problemas (Trabajo I y Trabajo II). El objetivo de estos trabajos es que el estudiante practique algunos de los conceptos bsicos de la asignatura haciendo uso del lenguaje C y el lenguaje de script Bash usando como

plataforma el sistema operativo Linux.

Carcter de los trabajos


Tal y como se seala en la gua de la asignatura, tanto los trabajos prcticos como las pruebas de evaluacin a distancia PED no son necesarios para superar la asignatura. Por ello, se recuerda al estudiante la obligacin e importancia de hacer los trabajos por s mismo sin copiarlas de otros compaeros, dado que ello repercutir en perjuicio del propio estudiante, quien no adquirir el grado formativo adecuado. Por otro lado, se recomienda al estudiante que comience a hacer estos trabajos una vez se haya dado ya un primer repaso a los temas de la asignatura en los que se basa cada trabajo, y se hayan asimilado los conceptos bsicos.

Requisitos
Debido a la existencia de una gran variedad de distribuciones de Linux y compiladores de C y para evitar problemas de compatibilidad de plataformas y arquitecturas, el equipo docente pone a disposicin del estudiante una mquina virtual con todo lo necesario para la realizacin de los trabajos as como un ejemplo de referencia que define la estructura y el formato del trabajo que el estudiante debe entregar. Tanto la mquina como la plantilla de referencia se encuentran en la misma pgina donde ha podido descargar este documento: http://ctb.dia.uned.es/DyASO/

Se usar nicamente la mquina virtual en el estado en el que se encuentra disponible para su descarga en la correccin de los trabajos y no valorar trabajos que no puedan compilarse o ejecutarse dentro de dicho entorno o que no se ajusten al formato de entrega del ejemplo de referencia.

Por este motivo el estudiante debe comenzar por instalar la mquina virtual. Las instrucciones de descarga e instalacin de dicha mquina virtual se detallan en el Apndice A de este documento.

Formato y fecha de entrega de los trabajos


Para asegurar la homogeneidad en la entrega se dispone de una plantilla denominada Plantilla_DyASO.tar dentro de la cual aparece un ejemplo de los trabajos a realizar. Dicha plantilla debe descomprimirse con permisos de SUPERUSUARIO (sudo tar xf

Plantilla_DyASO.tar) con el fin de que se preserven los propietarios y los permisos de los archivos que contiene.

Los trabajos debern ser entregados a travs de la plataforma del curso virtual aLF en el apartado reservado para tal efecto en la planificacin del curso. Los dos trabajos debern enviarse dentro de un nico fichero .tar con la misma estructura que el ejemplo de referencia as como con el informe de los trabajos en formato PDF. El nombre del fichero debe ajustarse a la siguiente estructura: DyASO_Apellido1_Apellido2_Nombre.tar Donde Apellido1 es el primer apellido del alumno, Apellido2 el segundo apellido y Nombre el nombre del alumno, por ejemplo DyASO_Chaos_Garcia_Dictino.tar

El ltimo da para entregar las prcticas es el 13 de enero de 2013. Esta fecha es improrrogable.

Informe
Adems de los archivos y ficheros fuente que componen cada trabajo, el estudiante deber entregar un informe de los trabajos en formato PDF que describa el trabajo realizado. Para ello debe seguirse la plantilla del informe proporcionada.

NOTA: Antes de ponerse a trabajar y para evitar descuidos es muy recomendable que el estudiante cambie los datos del ejemplo de referencia (nmero del trabajo, nombre, apellidos, DNI, centro asociado en el que se ha matriculado y telfono de contacto) por los suyos propios en todas las partes donde aparezcan (nombre de los archivos y carpetas as como portada del informe de prcticas).

NOTA2: No deben usarse en ningn caso ficheros .zip para realizar la entrega, ya que los ficheros .zip no almacenan los permisos de ejecucin de los archivos en Linux, haciendo que el funcionamiento de la prctica sea incorrecto.

Evaluacin de los trabajos


Los trabajos, al igual que las PED, suponen un 10% de la nota final de la asignatura en caso de que el alumno tenga aprobada el examen. En caso contrario se habr suspendido la asignatura. No obstante la nota media de los trabajos se mantiene para la convocatoria de septiembre.

En la valoracin del trabajo se tendr en cuenta en primer lugar el funcionamiento de los programas. En caso de que no se ejecuten o no compilen el trabajo prctico no se calificar. Tampoco se evaluarn los trabajos que no presenten informe de prcticas en PDF.

Aviso importante!!, Las prcticas se realizan individualmente, no se aceptan grupos de trabajo. Tanto los profesores-tutores como el equipo docente se reservan el derecho de ponerse en contacto en caso de duda con el estudiante y realizarle diferentes cuestiones relativas a las prcticas para verificar que efectivamente es el autor de las mismas y no las ha copiado. La deteccin de una prctica copiada obligar al equipo docente a ponerlo en conocimiento del Servicio de Inspeccin de la UNED. Tampoco se permite el intercambio de cdigo a travs de los foros de la asignatura.

TRABAJO I: Virus y antivirus


Un virus de ordenador es un programa capaz de replicarse a s mismo y expandirse por diferentes ordenadores. Los virus son programas altamente especializados y en general complejos. El propsito de este trabajo es menos ambicioso, en l se realizar un pequeo programa virus de script y se programar un antivirus capaz de eliminarlo.

Adems se comprender cul es una de las fortalezas de los sistemas derivados de UNIX ante los virus: el sistema de permisos. Junto con el virus y el antivirus se crear un ejecutable Ejercicio1.sh que demostrar el funcionamiento de ambos programas.

Virus: El virus es un programa sencillo cuyo objetivo es copiarse en todos los archivos
ejecutables de forma silenciosa y sin despertar sospechas. Para ello deber adelantarse a los posibles errores en tiempo de ejecucin y evitarlos. El virus consiste en un archivo ejecutable Shell scrip de Bash llamado Virus.sh que realiza las siguientes operaciones: 1) Busca en el directorio en el que se encuentra todos los archivos con permisos de ejecucin (el virus no debe infectar archivos no ejecutables) y para cada uno de ellos realiza las siguientes acciones: a. Verifica que se trata de un archivo de scrip Bash. (Para simplificar la tarea comprobar la primera lnea del programa para ver si comienza con #!/bin/bash). b. Verifica si el archivo ya est infectado. En caso afirmativo no hace nada (no debe infectar dos veces al mismo archivo ni debe infectarse a s mismo). En caso de estar limpio pasa al paso c. c. Comprueba que tiene los permisos necesarios de lectura y escritura en los archivos a infectar (el virus ha de ser silencioso y por tanto no deben producirse errores de permisos). d. Copia el cdigo del virus al comienzo del archivo manteniendo a continuacin el contenido original del ejecutable. Nota importante: Si un archivo est infectado debera poder ejecutarse con normalidad, pero al hacerlo, el cdigo del virus intentar copiarse dentro de otros archivos. Si encontraran alguno disponible el virus slo copiar su propio cdigo (y no el de todo el archivo infectado).

Antivirus: El antivirus es un programa en Shell script en bash llamado Antivirus.sh


que admite como entrada el nombre de un archivo y realiza las siguientes acciones: 1) Comprueba los permisos de acceso al archivo. Si no dispone de permisos muestra un mensaje al usuario y finaliza. 6

2) Comprueba que el archivo est infectado (buscando al comienzo del mismo el cdigo del virus). En caso afirmativo continua con el paso 3). En caso negativo avisa al usuario de que el archivo est limpio y finaliza. 3) Muestra por la salida estndar el contenido del archivo infectado. 4) Elimina el cdigo del virus devolviendo al archivo a su estado original. 5) Muestra el contenido del archivo una vez limpiado.

El archivo Ejercicio1.sh es el archivo que deber demostrar el funcionamiento del virus y el antivirus, se trata de un script ejecutable escrito en bash de nombre Ejercicio1.sh que realizar las siguientes acciones: 1) Cambia el directorio de trabajo a ./Trabajo1 2) Ejecuta el virus. 3) Ejecuta el archivo Prueba2.sh para ver que funciona adecuadamente una vez infectado. 4) Ejecuta el antivirus en todos los archivos excepto el virus original. 5) Vuelve al directorio de trabajo original. Despus de este proceso los archivos deberan haber vuelto a su estado original. Consejo: Puede resultar de ayuda repasar la redireccin de entrada y salida y consultar el manual de los comandos grep, split y cat antes de hacer el ejercicio.

Datos de entrega:
El archivo Ejercicio1.sh se encontrar en la raz del fichero .tar que contiene la prctica junto con el informe en PDF. Dentro de este mismo fichero debe existir un directorio llamado Trabajo1 que contendr el cdigo del virus y el antivirus.

Adems dentro de dicho directorio debern encontrarse varios ficheros de prueba: un fichero de texto Prueba1.sh que comienza por #!/bin/bash pero que no es ejecutable, otros dos archivos de script con permisos de ejecucin Prueba2.sh y Prueba3.sh y dos archivos de otro usuario Prueba4.sh y Prueba5.sh.

TRABAJO II: Comunicando procesos


Este ejercicio consiste en transmitir informacin entre varios procesos a travs de los mecanismos que se muestran en la Figura 1. Para ello debern implementare los siguientes archivos de cdigo en C: fuente1.c, fuente2.c y fuente3.c. Adems deber implementarse un fichero de script Ejercicio2.sh que compile dichos archivos fuente y genere los ejecutables Ej1, Ej2 y Ej3 respectivamente.

SIGKILL 10 SIGKILL 9 Memoria compartida: vc1 Mensaje Mensaje 7 5 6


Semforo sem1

Entrada Mensaje Proceso P1 estandar 1

2 Mensaje
Tubera sin nombre

Proceso P2

Proceso P3

3 Mensaje

4 Mensaje

fichero1
Fichero FIFO

PID del proceso P3

Cola de mensajes asociada a EJ1

Figura1: Esquema de comunicacin y sincronizacin entre los procesos.

Dichos ejecutables debern realizar las siguientes acciones:

Ej1: Este archivo ejecutable crear dos procesos P1 y P2 que compartirn una tubera sin
nombre. El proceso P1 pedir al usuario que introduzca un mensaje por teclado y se lo transmitir al proceso P2 a travs de dicha tubera. Una vez hecho esto, el proceso P1 crear una cola de mensajes asociada al archivo Ej1 bajo una cierta clave y se quedar a la espera de un mensaje. Cuando llegue un mensaje al proceso P1 a travs de dicha cola, extraer del mismo el PID que contiene (que corresponde al proceso P3 que se describir posteriormente) y a continuacin, enviar una seal SIGKILL a su hijo P2 y al proceso cuyo PID ha recibido (P3). Finalmente borrar el fichero fichero1, mostrar sus estadsticas de uso de CPU y finalizar su ejecucin. 8

Por otra parte, el proceso P2 leer la tubera sin nombre y una vez que tenga el mensaje crear un fichero FIFO de nombre fichero1 y escribir en l dicho mensaje. A continuacin ejecutar el programa Ej2 con la llamada al sistema exec() de tal manera que el proceso P2 pasar a ser una instancia del ejecutable Ej2.

Ej2: Este programa ejecutable abrir el fichero FIFO fichero1 y leer de l el mensaje que
le ha dejado el antiguo proceso P2. A continuacin crear una regin de memoria compartida. En ella crear una variable vc1 en la cul almacenar el mensaje, as como un semforo sem1 para proteger el acceso a dicha regin. Tanto vc1 como sem1 estarn asociados al fichero1. Una vez hecho esto, realizar una operacin P() sobre el semforo sem1 para bloquearlo. A continuacin se dividir creando un proceso hijo P3. El proceso P2 se mantendr a la espera durante un segundo y despus escribir el mensaje en la variable compartida vc1. Despus de esto har una operacin V() para abrir el semforo y suspender su ejecucin con la llamada al sistema pause(). Por su parte el proceso P3 har una llamada al sistema exec() sobre el ejecutable Ej3 que pasar a ser el proceso P3.

Ej3: Este ejecutable cargar la regin de memoria compartida y la variable asociada vc1 as
como el semforo sem1 que ha creado P2 asociados al archivo fichero1. A continuacin realizar una operacin P() sobre el semforo sem1 para esperar a que el proceso P2 acabe de escribir en la memoria compartida. Cuando lo haya hecho leer la regin de memoria compartida y mostrar el mensaje por pantalla. Una vez terminada la operacin, abrir la cola de mensajes asociada al ejecutable Ej1 y le enviar un mensaje al proceso P1 para indicarle que ha terminado. Dicho mensaje deber contener su PID. Hecho esto se quedar a la espera mediante la llamada al sistema pause(). Nota: Cada vez que uno de los procesos enve o reciba un mensaje deber indicarlo escribiendo en la salida estndar. Dicha escritura indicar el PID del proceso que escribe, el proceso en curso (P1, P2 P3), el ejecutable que da lugar a dicho proceso (Ej1, Ej2 Ej3), el origen o destino del mensaje y el mecanismo de transmisin. Por ejemplo:

El proceso P1 (PID=1247, Ej1) transmite un mensaje al proceso P2 por una tubera sin nombre El archivo Ejercicio2.sh deber ser un script ejecutable escrito en el lenguaje de shell bash que realizar las siguientes acciones: 1) Compile las fuentes que se encuentran en el directorio ./Trabajo2 creando los ejecutables Ej1, Ej2 y Ej3. 2) Asigna los permisos necesarios a Ej1, Ej2 y Ej3. 3) Ejecuta Ej1. 4) Borra todos los archivos ejecutables creados (pero no sus fuentes).

Datos de entrega:
El archivo Ejercicio2.sh se encontrar en la raz del fichero .tar que contiene la prctica junto con el informe en PDF. Dentro de este mismo fichero debe existir un directorio llamado Trabajo2 que contendr los ficheros fuente1.c, fuente2.c y fuente3.c. No

debern entregarse los archivos ejecutables Ej1, Ej2 y Ej3.

10

APNDICE A: Instalacin de la mquina virtual


Con el fin de facilitar el trabajo al estudiante y la correccin del mismo por parte del Equipo Docente, se ha creado una mquina virtual con todo el contenido necesario para implementar los trabajos de la asignatura.

La puesta a punto de la mquina virtual consta de tres simples pasos: 1) Descarga e instalacin de la herramienta para ejecutar mquinas virtuales VirtualBox. 2) Descarga del fichero que contiene la mquina virtual de la pgina web de la asignatura. 3) Puesta en marcha de la mquina.

Instalacin de Virtualbox
Virtualbox es una herramienta opensource que se encuentra disponible para descarga en http://www.virtualbox.org/wiki/Downloads. En nuestro caso hay que elegir la versin de Virtualbox 4.1 o superior. Si el alumno est utilizando Linux es posible que exista una versin de cdigo abierto (OSE) compatible en su repositorio.

La instalacin de la mquina es simple y directa. A continuacin se muestra el proceso de instalacin en los principales sistemas operativos: Windows: http://www.youtube.com/watch?v=yQVCnfxdomc Mac: http://www.youtube.com/watch?v=9SVWRAIQt18 Linux: http://www.youtube.com/watch?v=z3lAKBoKfiM

Descarga de la mquina virtual


La mquina virtual preparada por el equipo docente se encuentra disponible en la siguiente direccin: http://ctb.dia.uned.es/DyASO/ Seleccinese el enlace a la maquina virtual y se descargar el archivo DyASO.rar. Espere que se complete la descarga.

Puesta en marcha de la mquina


Para poner la mquina a funcionar en primer lugar hay que importar la mquina virtual que se ha descargado en cualquier carpeta del equipo. Tenga en cuenta que sern necesarios aproximadamente 4Gb de espacio libre para albergar la mquina.

A continuacin hay que arrancar VirtualBox y en el Men Mquina seleccione Agregar. 11

Entonces aparecer un explorador de archivos que le permitir navegar hasta el directorio donde ha descomprimido la mquina. Una vez en el mismo seleccione DyASO.vbox.

Una vez hecho esto la mquina virtual aparecer en el men de la izquierda de Virtualbox. Para iniciar la mquina seleccinese y pulse el botn iniciar. Entonces se abrir una nueva ventana con la mquina virtual recin instalada y arrancar el sistema operativo Linux que se encuentra instalado en su interior. Hecho esto se dispondr de una mquina virtual lista para empezar a trabajar.

Para iniciar sesin utilice la siguiente cuenta de usuario Ususario: sistemas Clave: operativos

12

13

Hay varias caractersticas de las mquinas virtuales que es importante conocer: La opcin Instantneas permite guardar un estado congelado de ejecucin de la mquina a la que se puede volver en cualquier momento rpidamente. Esto es muy til si ocurre un desastre y se quiere volver a un estado previo. De hecho la mquina tiene una instantnea del estado inicial lo que permite deshacer cualquier cambio que se haya realizado en la misma. Volver a una instantnea anterior descarta todos los cambios que se hayan hecho en la misma desde que se tom la instantnea. Si no se quieren perder todos los cambios hay que guardar todos los archivos que se desea conservar fuera de la mquina. La ejecucin de la mquina virtual puede pausarse en cualquier momento y reanudar la ejecucin en el futuro. La mquina puede cerrarse de tres formas distintas: Enviando una seal de apagado (que sera el equivalente a pulsar el botn de apagado de la mquina fsica); guardando el estado (lo que permite volver a dicho estado en el futuro como si la mquina hubiera hibernado); o apagar la mquina que detiene la mquina por las malas e incluso permite descartar todos los cambios que se hayan hecho. La mquina virtual est configurada para compartir la conexin a internet de la mquina cliente Esto significa que puede descargarse la plantilla de trabajo desde aLF y subirse directamente el resultado sin abandonar la propia mquina. Las otras alternativas que no requieren conexin a internet son copiar el resultado de la prctica en una memoria extrable o utilizar carpetas compartidas (http://www.neodian.es/2010/09/17/carpetacompartida-huespedanfitrion-en-virtualbox/).

La mquina virtual contiene el sistema operativo Ubuntu 12.4 TLS actualizado a fecha de 31Octubre-2012. Este es el entorno exacto en el cual se llevarn a cabo las pruebas de evaluacin de la prctica desarrollada.

14

Das könnte Ihnen auch gefallen