Taller de Sistemas Operativos Reporte de practica. Datos Generales. Nombre: Christian Abraham L ópez Pérez. No Practica: 2 Modulo: 1 NRC: 25687 Seccion: D12
Carrera: Lic. En informatica. Fecha: 060309 Calendario: 09A
Objetivo. El objetivo de la practica 2 es poder crear interrupciones en los procesos, y al hacer estas interrupciones mandar los al final del lote al que pertenecen, tambien poder terminar los procesos por error y en ese caso se termina la ejecucion de ese proceso con un mensaje de error, tambien se puede pausar la ejecucion de un proceso y despues poder continuarla. Requerimientos. 1. El programa preguntar á el número de trabajos inicial, para luego conformar lotes con capacidad m áxima de 5 (ver Requerimientos pr áctica 1). 2. En esta simulaci ón la informaci ón de cada trabajo se generar á internamente, es decir ya no será necesario introducir datos desde teclado, la informaci ón a generar es: a. Número de cada trabajo, validar que sea único. (Puede ser consecutivo) b. Tiempo Máximo Estimado, se generara de forma aleatoria, validando que sea mayor a 0. c. Operación (+,,*,/) y datos a realizar (validar operaciones), aleatoriamente. NOTA: En la pr áctica anterior se capturaba el nombre del programador, en esta práctica se omite ese dato. 3. Los trabajos se procesar án conforme a su n úmero de trabajo. 4. Los procesos una vez en ejecuci ón pueden ser Interrumpidos por Entrada/Salida o bien terminados por Error. 5. La interrupci ón y la terminaci ón de los trabajos en ejecuci ón, se generaran por medio de teclas. 6. Las teclas a utilizar son:
7. Deberá mostrarse en pantalla: a. Procesos en Espera correspondientes al Lote en ejecuci ón: i. Número de Programa. ii. Tiempo Máximo Estimado. iii. Tiempo Restante (este punto aplica si el proceso fue interrumpido). b. N úmero de Lotes Pendientes: Especificar el n úmero de lotes pendientes por ejecutar, si no hay se mostrar á 0. c. Proceso en Ejecuci ón: i. Se mostraran todos los datos correspondientes al proceso. ii. Tiempo que ya ha sido ejecutado. iii. Tiempo restante por ejecutar d. Trabajos Terminados: i. Número de Programa. ii. Operación iii. Resultado de la operaci ón o bien ERROR cuando el proceso haya sido terminado con la tecla “E”. e. Reloj (Contador General) 8. Desde que inicia la simulaci ón, se desplegará un reloj global, es decir, un contador que lleve el tiempo desde el inicio del programa hasta el final. 9. Al terminar el lote en ejecuci ón, continuara con el siguiente lote en espera. 10. El programa terminar á cuando todas las operaciones (todos los lotes) se hayan realizado. (Pausarlo) Desarrollo. Para desarrollar esta practica solo se tuvo que modificar y aumentar la practica uno, por lo que no fue tan complicada, lo que se tuvo que hacer fue agregar el codigo para la interrupcion del ciclo y asi poder hacer todo lo que era requerido para esta practica, para la interrupcion se utilizo la funcion kbhit y la funcion int86, y con estas funciones se pudo lograr la practica, al estar corriendo un ciclo y se presionaba cualquier tecla la funcion kbhit registraba la tecla presionada y la mandaba a la funcion lo que nos regresaba el valor de la tecla y asi se pudo manipular los resultados, si se presionaba la tecla 'i' se creaba una interrupcion en el proceso y lo mandaba al final del lote, si se presionaba la tecla 'e' se terminaba el proceso por error y mandaba un mensaje de error, si se presionaba la tecla 'p' se pausaba el proceso y continua pausado hasta que se presione la tecla 'c'.
Actividades. 1. ¿Que significa JLC? CL Job Control Language su traducci ón en castellano ser í a Lenguaje de Control de Trabajos. Es un conjunto de especificaciones que constituyen un lenguaje de programaci ón de tareas para el sistema operativo que gobierna un equipo inform ático. 2. Escriba la diferencia entre el procesamiento por lotes y el de proceso por lotes con multiprogramaci ón. En los sistemas con multiprogramacion se pueden soportar multiples tareas a la ves, mientras que en el procesamiento por lotes solo se soporta una a la vez. 3. Escribe una de las utilidades de la interrupci ón int86. Funciones int86x() y int86() funcionan confiable con estas interrupciones. Las funciones de int86() interceptar para estas dos interrupciones y encargan de la pila de forma adecuada. Usar una de las funciones de int86() para realizar estas llamadas que llamar í a cualquier otra interrupción de MSDOS. Precauciones adicionales no son necesarios con estas interrupciones. 4. ¿Para que sirve la función Kbhit? Revisa si una tecla pulsada est á disponible. Cualesquier tecla pulsada disponibles pueden ser recogidas con las funciones getch o getche. Valor de retorno: La función kbhit retorna 0 si no se ha registrado una pulsada de tecla; si hay una disponible, entonces el valor retornado es distinto a cero. 5. ¿Cómo soluciono el ingreso aleatorio de los datos? El ingreso aleatorio de los datos se soluciono con la funcion random, para el TME le di un maximo de 10 para los datos le di un maximo de 100 y para decidir que operacion seria se utiliza un switch y dependiendo del numero que regrese la funcion random es la operacion que se ejecuta.
Cocluciones. Al realizar esta practica se comprendio como se manejan las interrupciones ya que al interrumpir un procesos se manda hasta el final del lote y se ejecuta con el tiempo en el que fue interrumpido, tambien estan las terminaciondes de proceso por error en este caso se termina el proceso si concluir su operacion dada y se manda un mensaje de error para ser desplegado.
Observaciones
Calificacion.