Universidad Tecnológica Centroamericana
Ingeniería de Sistemas
Sistemas Operativos I - 1995
Prof. : Egdares Futch H.

    ...
Delete alarm
         Invocada como -d, este parámetro indica a alarm que debe buscar dicha alarma y eliminarla de
su tabl...
Deben investigar las funciones Keep(), GetIntVec(), SetIntVec(), y Ptr().

         El proyecto requiere de bastante plani...
Upcoming SlideShare
Loading in …5
×

Alarm - Proyecto de implementación de un TSR en MS-DOS

1,360 views

Published on

Enunciado del proyecto de implementación de un TSR para MS-DOS, curso Sistemas Operativos, UNITEC

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,360
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Alarm - Proyecto de implementación de un TSR en MS-DOS

  1. 1. Universidad Tecnológica Centroamericana Ingeniería de Sistemas Sistemas Operativos I - 1995 Prof. : Egdares Futch H. Proyecto #1 Alarm - Un utilitario para servicios de alarma Motivación El computador personal es una herramienta de trabajo, cuyo papel se ha id o extendiendo cada vez más en todas las áreas de una oficina moderna. Se utiliza como agenda, máquina de escribir, etc. Sin embargo, el estar trabajando en una PC por lo general absorbe tanto a quien la utiliza, que frecuentemente se olvidan citas importantes o eventos interesantes. Por lo tanto, este proyecto consiste en un programa capaz de estar residente en memoria, para que quienes lo utilizen puedan trabajar en otras aplicaciones, que maneje hasta cuatro horas de alarma distintas, y genere un evento que llame la atención del usuario, para recordarle horas importantes. Descripción Este proyecto está orientado a manejar el concepto de interrupts e interrupt service routines, en base al hardware de la PC, la cual posee un sistema de interrupciones prioritizadas, con un reloj que interrumpe 18.2 veces por segundo al programa principal. Esto hace posible que se pueda comparar continuamente la hora actual con la hora de las alarmas que el usuario haya pedido. En el momento de llegar el tiempo de una alarma, el programa debe sacar una ventana en pantalla indicando al usuario que ya es hora. Debe eliminarse esta alarma de la tabla de alarmas y quitar la ventana de la pantalla, dejando lo que estaba antes. El proyecto debe consistir en un programa, alarm.exe, que acepte en su línea de comandos los siguientes parámetros : Help Invocada como -h, esta opción hace que el programa imprima un mensaje detallando el uso de todos los parámetros que éste tiene. Ejemplo : C> alarm -h Add alarm Invocada como -a, esta opción le dice al programa que debe alertar al usuario en la hora especificada. Si el programa no está residente, debe quedar residente, mientras que si éste se encuentra ya residente, debe pasarle los parámetros a la copia residente. Ejemplo : C> alarm -a 1830 List alarms Invocada como -l, esta opción imprime en pantalla la lista de alarmas que se encuentran activadas actualmente. Ejemplo : C> alarm -l
  2. 2. Delete alarm Invocada como -d, este parámetro indica a alarm que debe buscar dicha alarma y eliminarla de su tabla. Ejemplo : C> alarm -d 1830 Requerimientos El programa a entregar debe cumplir con los siguientes requerimientos: - Escrito en Turbo Pascal 6.0 ó mayor. - Debe aceptar parámetros únicamente por la línea de comandos. - Debe instalarse residente una única vez. - Debe utilizar una tabla de 4 alarmas máximo. - Debe alertar al usuario con un mensaje en la pantalla. - Mensajes de error apropiados. Fecha de entrega y documentación a entregar La fecha de entrega será el lunes 6 de febrero de 1995 a las 18:30 horas en el período de clase. NO habrán prórrogas, ni excusas. La documentación a entregar consistirá en (no folders) : - Diskette con el proyecto (3.5", sin virus) - Carátula con nombre, carnet, nombre de proyecto - Descripción y funcionamiento del proyecto (1 hoja máx.) - Cómo se usa el proyecto (lo necesario) - Descripción de rutinas y procedimientos usados - Comentarios de implementación (opcional, puede mejorar nota) - Listado del programa Hints Para realizar el proyecto final, existen varias formas de obtener la hora actual, incluyendo la utilización de la función GetTime de MS-DOS. Sin embargo MS-DOS no es reentrante. Esto dará lugar a complicaciones y además, hace que la rutina de interrupt instalada se vuelva muy lenta. Sin embargo, existe otra forma de hacerlo, la cual es la recomendada a implementar en este proyecto : leer directamente el contador de tiempo que el BIOS mantiene. La forma de realizar esto es la siguiente: El BIOS mantiene en la dirección 0000:046Ch el número de ticks necesarios para reflejar la hora actual en un integer de 4 bytes (double word). Cada timer tick (18.2 veces por segundo) se activa INT 08h, quien incrementa este valor en 1. Se recomienda que se intercepte el interrupt 1Ch, para evitar problemas. Luego de que este valor alcanza la medianoche (el valor de medianoche es 1800B0h), se pone en 0, y el byte localizado en la dirección 0000:0470h se pone en 1. Para hacer uso de esto, uds. deben convertir todos los valores de hora que se les pase como parámetros, a ticks de reloj, y hacer las comparaciones para ver si ya se ha llegado a alguna alarma en base a estos valores.
  3. 3. Deben investigar las funciones Keep(), GetIntVec(), SetIntVec(), y Ptr(). El proyecto requiere de bastante planificación, por lo que espero que esto les ayude a terminarlo bien, no a empezarlo a última hora.

×