sábado, 25 de octubre de 2008
lunes, 6 de octubre de 2008
Segundo proyecto
FIFO
Round Robin
Lotería
Trabajo más corto a continuación
Para cada algoritmo, el programa debe calcular el tiempo de espera y el tiempo de retorno para todos los trabajos, así como los tiempos de espera y de retorno promedios. Los valores promedios se deben consolidar en una tabla para su fácil comparación. El quantum para el Round Robin es de 4 milisegundos y el tiempo de cambio por contexto es cero.
Las indicaciones son similares a las del proyecto 1.
Definición de proyectos
Primer Proyecto
1. Proyecto: Experimentación de Procesos y Threads con los
Sistemas Operativos
1.1. Windows NT/2000/XP
1. Explique cómo se pueden observar los procesos que están ejecutando en el sistema.
¿Cuáles atributos se pueden visualizar?
2. ¿Qué sucede en el sistema cuando se abre el Explorador?
3. ¿Cómo se crea un proceso? ¿Existe alguna diferencia con relación a la creación de procesos en los sistemas operativos de la familia UNIX?
4. ¿Es posible mostrar la jerarquía de procesos? Explique su respuesta.
5. Explique el diseño que presenta la familia de sistemas operativos Windows con respecto a procesos, threads, etc.
1.2. Linux/Solaris
1. Elija una distribución de Linux explique cómo funciona el arranque del sistema. Realice una comparación con el arranque del sistema en Solaris 8 o en Minix 3.
2. Enumere y explique brevemente los estados en los cuales puede estar un proceso en una determinada distribución de Linux/Unix (indique sobre cuál responde este inciso). Cómo puede observar el estado del sistema. ¿Qué política presenta para el caso de los procesos huérfanos?
3. ¿Qué información se tiene en proc?
4. Enumere y explique las llamadas al sistemas y funciones de librería relacionadas con los procesos.
5. ¿Existe alguna diferencia entre la utilización de system o de alguna función de librería exec para ejecutar un programa?
6. Realizar los siguientes experimentos:
a ) Un proceso padre debe crear dos procesos hijos, cada proceso deberá indicar en un archivo (separado) si es el proceso: padre, primer hijo o segundo hijo. En cada proceso se debe realizar un ciclo de 1500 iteraciones y en cada iteración se incrementa una variable. ¿En qué orden terminan?
b ) Realice las modificaciones necesarias para que muestre por pantalla la identificación del proceso que termina.
1.3. Creación de Procesos
Resolver los siguientes problemas de creación de procesos para la familia de sistemas operativos Unix/Linux y elija uno de los problemas para la familia de sistemas operativos Windows 2000/XP.
1. Un proceso padre debe crear tres procesos hijos y entre cada una de las creaciones descansa 5ms. Espera hasta que todos sus procesos hijos hayan terminado para finalizar.
El primer proceso hijo creado muestra por pantalla el contenido del directorio (/etc
o C:\WINDOWS\system32) de acuerdo al sistema operativo sobre el cual se esté ejecutando, luego descansa 5 ms y por último muestra por pantalla su id, la fecha y hora del sistema.
El segundo proceso hijo creado busca un texto en los archivos de un determinado directorio, luego descansa 5 ms y por último muestra por pantalla su id, la fecha y hora del sistema.
El tercer proceso hijo creado muestra el contenido de un archivo, luego descansa 3 ms y por último muestra por pantalla su id, la fecha y hora del sistema.
Primer caso: en el proceso padre se encuentra toda la codificación.
Segundo caso: el proceso hijo ejecuta otra imagen con la tarea asignada.
2. Un proceso padre debe crear tres procesos hijos. El padre crea un archivo denominado salida.txt antes de invocar a los procesos hijos. El proceso padre debe esperar que los procesos hijos terminen su ejecución y al finalizar debe agregar en el archivo salida.txt “Se ha finalizado la actividad”. Cada proceso hijo debe invocar una imagen que realiza la tarea asignada:
a ) Cada proceso hijo debe realizar un ciclo de 5000 iteraciones, en tres de las ite- raciones muestra un cartel con su id y la identificación iterna; esta corresponde para el primer proceso a la letra A, para el segundo proceso a la letra B y para el tercer proceso la letra C. Después invoca a un editor de texto (nano o notepad). Antes de finalizar agregar en el archivo salida.txt el siguiente texto “Fin de la ejecución del Proceso A | B | C”.
¿En qué orden terminan los procesos? Analice los resultados obtenido durante la ejecución de los procesos creados.
Indicaciones
Los experimentos deben realizarse en lenguaje C.
Las pruebas deben realizarse sobre el sistema operativo Linux (Red Hat/ Fedora/ Centos/ Suse/ Arch 0.8), en Solaris y sobre Windows 2000 / Windows XP para PC. Puede ser una extensión en alguna otra distribución o arquitectura.
Se debe entregar los fuentes realizados para cada una de las experiencias debidamente identificados (impresos y en disco) y un informe con los resultados obtenidos y las preguntas realizadas.