Laboratorio No 2 Usando Señales
19/3/07
Descripción
Los estudiantes experimentarán con las llamadas a
sistema sigaction,
la que permite manejar interrupciones por software. En particular los alumnos
deberán implementar la captura de eventos e implementar los manejadores
correspondientes.
Objetivo
Este laboratorio tiene como objetivo introducir a
los alumnos en forma práctica con las interrupciones por software en Linux,
usando el llamado a sistema sigaction
Metodología
Durante la primera hora del laboratorio el
profesor explicará la forma en que funcionan las interrupciones por software,
accesibles a los programadores, en el sistema operativo Linux. Luego el
profesor proporcionará algunos ejemplos para explicar el mecanismo usando sigaction.
Información general acerca de señales en Linux aquí.
Información más específica aquí
Ejemplos capturando señales
·
Alarma
·
Archivos
temporales (sin señales)
·
Archivos
temporales (con señales)
Posteriormente, en la segunda hora del laboratorio
los alumnos deberán implementar un programa en C/C++ que usen el llamado a
sistema sigaction
para establecer y capturar una señal. Los alumnos podrán usar como base los
programas entregados como ejemplos, así como el manual disponible en línea.
Esta experiencia será evaluada, y los alumnos deberán enviar sus códigos a chernand at inf
punto udec punto cl
Los alumnos podrán formar grupos de a 2 o 3 para
realizar la experiencia.
Especificación del problema a resolver
Escriba un programa en C o C++ que permita ingresar
una clave en un máximo de tiempo y a la vez el programa no termine al ingresar
un Control-C. El programa debe verificar la clave y si es incorrecta debe
permitirle al usuario volver a ingresarla. Si el tiempo expira el usuario podrá
ingresar la clave nuevamente, con la misma restricción en tiempo. El programa
además debe contar el número de veces que el usuario intenta terminar el
programa con Control-C. El valor de la clave es irrelevante por que puede estar
definida en forma dura en el código.