SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
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
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.
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.

Más contenido relacionado

La actualidad más candente

Introducción a los sistemas informáticos
Introducción a los sistemas informáticosIntroducción a los sistemas informáticos
Introducción a los sistemas informáticos
ECCI
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógica
guest5423e2
 
Mantenimiento de computadora cristian grefa
Mantenimiento de computadora  cristian grefaMantenimiento de computadora  cristian grefa
Mantenimiento de computadora cristian grefa
Cristian Grefa
 

La actualidad más candente (20)

Funcionamiento basico de una computadora
Funcionamiento basico de una computadoraFuncionamiento basico de una computadora
Funcionamiento basico de una computadora
 
Funcionamiento básico de la computadora
Funcionamiento básico de la computadoraFuncionamiento básico de la computadora
Funcionamiento básico de la computadora
 
Curso basico de pic 16 f877
Curso basico de pic 16 f877Curso basico de pic 16 f877
Curso basico de pic 16 f877
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Funciones básicas de una computadora
Funciones básicas de una computadoraFunciones básicas de una computadora
Funciones básicas de una computadora
 
Funcionamiento básico de una computadora
Funcionamiento básico de una computadora Funcionamiento básico de una computadora
Funcionamiento básico de una computadora
 
Introducción a los sistemas informáticos
Introducción a los sistemas informáticosIntroducción a los sistemas informáticos
Introducción a los sistemas informáticos
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógica
 
Modelo de Newmann
Modelo de NewmannModelo de Newmann
Modelo de Newmann
 
Aplicaciones del panel de contol
Aplicaciones del panel de contolAplicaciones del panel de contol
Aplicaciones del panel de contol
 
Funcionamiento y Elementos Básicos de la Computadora
Funcionamiento y Elementos Básicos de la ComputadoraFuncionamiento y Elementos Básicos de la Computadora
Funcionamiento y Elementos Básicos de la Computadora
 
3 newmann
3 newmann3 newmann
3 newmann
 
Funcionamiento básico de una computadora
Funcionamiento básico de una computadoraFuncionamiento básico de una computadora
Funcionamiento básico de una computadora
 
Modelo de Newmann
Modelo de NewmannModelo de Newmann
Modelo de Newmann
 
Mantenimiento de computadora cristian grefa
Mantenimiento de computadora  cristian grefaMantenimiento de computadora  cristian grefa
Mantenimiento de computadora cristian grefa
 
Modelo de Newmann
Modelo de NewmannModelo de Newmann
Modelo de Newmann
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis Rivero
 
Modelo de Newmann
Modelo de NewmannModelo de Newmann
Modelo de Newmann
 
Modelo de Newmann
Modelo de NewmannModelo de Newmann
Modelo de Newmann
 

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

Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
JennyAldana122
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
JennyAldana122
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Dulcevelazquez6
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
uplo45
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
uplo45
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballo
uplo45
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
uplo45
 
Un sistema operativo caraballo1assss
Un sistema operativo caraballo1assssUn sistema operativo caraballo1assss
Un sistema operativo caraballo1assss
uplo45
 

Similar a Alarm - Proyecto de implementación de un TSR en MS-DOS (20)

Manual de programacion #1
Manual de programacion #1Manual de programacion #1
Manual de programacion #1
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
 
Trabajo de sistemas cor
Trabajo de sistemas corTrabajo de sistemas cor
Trabajo de sistemas cor
 
Elemento 1 miguel antonio miranda chonata - sistemas operativos
Elemento 1   miguel antonio miranda chonata - sistemas operativosElemento 1   miguel antonio miranda chonata - sistemas operativos
Elemento 1 miguel antonio miranda chonata - sistemas operativos
 
Fortran
FortranFortran
Fortran
 
Ejercicios java parte 1
Ejercicios java parte 1Ejercicios java parte 1
Ejercicios java parte 1
 
Manual hp-prime-2021
Manual hp-prime-2021Manual hp-prime-2021
Manual hp-prime-2021
 
equipos de prestacion de un computador
equipos de prestacion de un computadorequipos de prestacion de un computador
equipos de prestacion de un computador
 
Sistemas operativos: Historia, parte 1
Sistemas operativos: Historia, parte 1Sistemas operativos: Historia, parte 1
Sistemas operativos: Historia, parte 1
 
Sistemas operativos historia 1
Sistemas operativos   historia 1Sistemas operativos   historia 1
Sistemas operativos historia 1
 
8. segunda era
8. segunda era8. segunda era
8. segunda era
 
lógica programable
lógica programablelógica programable
lógica programable
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
 
Un sistema operativo luis caraballo
Un sistema operativo luis caraballoUn sistema operativo luis caraballo
Un sistema operativo luis caraballo
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo caraballo
Un sistema operativo caraballoUn sistema operativo caraballo
Un sistema operativo caraballo
 
Un sistema operativo caraballo luis
Un sistema operativo caraballo luisUn sistema operativo caraballo luis
Un sistema operativo caraballo luis
 
Un sistema operativo caraballo1assss
Un sistema operativo caraballo1assssUn sistema operativo caraballo1assss
Un sistema operativo caraballo1assss
 

Más de Egdares Futch H.

Más de Egdares Futch H. (20)

FIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a IncidentesFIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a Incidentes
 
FIT 2020 - Artificial Life
FIT 2020 - Artificial LifeFIT 2020 - Artificial Life
FIT 2020 - Artificial Life
 
Blockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicacionesBlockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicaciones
 
Digital forensics SIFT como herramienta
Digital forensics  SIFT como herramientaDigital forensics  SIFT como herramienta
Digital forensics SIFT como herramienta
 
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminosMachine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
 
Herramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones webHerramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones web
 
El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)
 
BPMS vs. workflow
BPMS vs. workflowBPMS vs. workflow
BPMS vs. workflow
 
El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible
 
MGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus TegucigalpaMGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
 
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La CeibaMGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
 
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
 
The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014
 
Unitec virtualización
Unitec   virtualizaciónUnitec   virtualización
Unitec virtualización
 
Criptografía para las masas
Criptografía para las masasCriptografía para las masas
Criptografía para las masas
 
Más sobre el Algoritmo de Peterson
Más sobre el Algoritmo de PetersonMás sobre el Algoritmo de Peterson
Más sobre el Algoritmo de Peterson
 
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
 
Apuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de MemoriaApuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de Memoria
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 

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

  • 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. 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. 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.