Date | Place Señales Práctica I. Name | Company Objetivos Captura de una señal y tratamiento de la misma Checkpointing.

Slides:



Advertisements
Presentaciones similares
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Funciones Útiles Señales Sistemas Operativos.
Advertisements

Diseño de Interfaces Humanas
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
PHP-MYSQL OPERADORES EN PHP
Estructuras de control
Procedimientos y Funciones
INFORMATICA I Funciones CLASE 13.
Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña
Los condicionales IF en PHP Programación en Internet II.
SISTEMAS OPERATIVOS UNIDAD 1..
Funciones y procedimientos
FUNCIONES EN C.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
El lenguaje de programación C - Funciones -
Multiprogramación Procesos Cecilia Hernández
Estructuras dinámicas de datos, TAD Lista, parte 2
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE Instructor: Ingeniero Adrián Guerrero Taborda
Grado en Ingeniería electrónica y comunicaciones Facultad de Físicas Universidad Complutense P1 Fundamentos de Programación.
Ingeniero Anyelo Quintero
Tema 3 Entrada y Salida.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Estructuras de Control Iterativas
FUNCIÓN IGUAL (Lo que entra igual (=) a lo que sale)
Signal, kill, sigaction y máscara de señales
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Semana 5 Subprogramas..
FUNCIONES EN C.
Archivos.

Introducción al Minikernel
Capítulo 1 “Elementos de Programación”
Informática Ingeniería en Electrónica y Automática Industrial
Informática Tema 5 - Estructuras de Control Estructuras de Repetición.
Date | Place Bloques de Recuperación Práctica I-Ejercicio 2.
Gestión de procesos Sistemas Operativos Edwin Morales
EXPRESIONES Y SENTENCIAS
Unidad II Introducción a la programación en C++
Estructuras de Control.
Fundamentos de Programación Iteraciones
Materia: Técnicas Digitales 3
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) ESTRUCTURA DEL LENGUAJE.
Programación Orientada a Objetos
FUNDAMENTOS DE PROGRAMACIÓN
Creación de Usuarios Un Usuario representa a una persona que puede ingresar a SugarCRM y hacer uso de sus funcionalidades acorde al tipo de usuario, grupo.
Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
INSTRUCCIONES. El alumno, seguirá los pasos que se le va indicando a continuación. En el recuadro en blanco, debe ir añadiendo un pantallazo con la.
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
INTRODUCCION A LA PROGRAMACION
PRINCIPIOS DE PROGRAMACIÓN
LENGUAJE “C” Programación.
Estructuras de Control en Visual Basic.net
LENGUAJE “C” Programación.
Práctica Profesional PHP.
Estructuras de Decisión
Algoritmo.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Desarrollador Profesional de Juegos Programación III Unidad II Introdución a threading en windows.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
¿Cómo programar un Botón para agregar registros a una base de datos?
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Desarrollador Profesional de Juegos Programación III Unidad III Mutex, Semáforos y Condicion de Sincronización Bajo Linux.
Para cada uno de los atributos, indicaremos su campo de descripción. Cuando un campo no dispone de este (como el.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Sistemas Operativos Unidad 8 Señales y funciones de tiempo.
Transcripción de la presentación:

Date | Place Señales Práctica I

Name | Company Objetivos Captura de una señal y tratamiento de la misma Checkpointing

Name | Company Señales Las señales son interrupciones SW para informar de eventos asíncronos. Cada señal tiene asociado un número que la identifica. Señales más comunesSeñales más comunes El comportamiento frente a una señal: –El proceso detiene su ejecución en la instrucción máquina que está ejecutando. –Captura la señal y pasa a ejecutar una RUTINA DE TRATAMIENTO DE LA SEÑAL (manejador de la señal). –Por último, sigue la ejecución por la instrucción donde fue interrumpido, a no ser que hubiera provocado el fin de la ejecución.

Name | Company Ejemplo de Señal Programa Principal Rutina de tratamiento de la señal Señal Llega una señal Se ejecuta el programa principal El programa ejecuta Rutina de tratamiento de la señal Continua la ejecución de programa en el punto donde se había quedado

Name | Company Señales II Ejecución del programa Si se produce la señal SIGINT (Ctrl+C), por defecto, finaliza la ejecución del programa. Nosotros podemos capturar dicha señal, y cambiar el tratamiento la señal para que no finalice la ejecución.. Señal Captura de la Señal Ejecución del programa

Name | Company Gestor de Señales Los gestores de Señales más importantes son UNIX V, 4.3.BSD y POSIX Nosotros vamos a utilizar POSIX

Name | Company Captura de la señal -> Función SIGACTION Esta función sigaction determina la forma que tratará el proceso una determinada señal. Para utilizarla se necesita incluir la librería unistd.h int sigaction(int signo, const struct sigaction *act, struct sigaction *oact); –signo: Número de la señal a tratar –*act: Estructura con información del nuevo tratamiento, si vale NULL, no se cambia nada. (Lo veremos en la siguiente transparencia) –*oact: Estructura donde se guarda la información del antiguo tratamiento, si vale NULL, no se guarda la información antigua

Name | Company Estructura con información del tratamiento de la señal-> STRUCT SIGACTION La información de tratamiento de la señal se almacena en una estructura llamada sigaction sa_handler= rutina de tratamiento de la señal. Puede ser una función implementada por nosotros, o SIG_DFL y SIG_IGN sa_mask= mascara de admisión de señales. Si añadimos una señal a la mascara, esta se bloqueara mientras se ejecute la función indicada en el sa_handler. sa_flags= flags y opciones struct sigaction{ void (*sa_handler) (); sigset_t sa_mask; int sa_flags; }

Name | Company Ejemplo Vamos a capturar la señal SIGINT (Ctrl+C), y establecer la subrutina “Mirutina” para tratarla. #include int main() { int ret; struct sigaction señal; señal.sa_handler=Mirutina; señal.sa_flags=0; sigemptyset(&señal.sa_mask); ret=sigaction(SIGINT,&señal,NULL); if (ret==-1) printf(“No se pudo realizar el tratamiento de la función”); /* Bucle infinito de espera. pause() deja el proceso dormido hasta que llegue una señal. */ while (1) pause (); return 0; } void Mirutina(int s){ printf (“Estoy tratando la señal SIGINT\n”);} /*SI EL USUARIO TECLEA CTRL+C se produce la señal SIGINT, y en vez de finalizar el programa, se visualizará en pantalla :Estoy tratando la señal SIGINT*/

Name | Company Importante Debemos, de crear una estructura sigaction, para cada una de las señales que queramos tratar en nuestro programa Posteriormente, debemos utilizar una función sigaction para cada una de las estructuras que hemos creado inicialmente. Ejemplo: –Si queremos en un mismo programa, capturar dos señales, por ejemplo SIGINT, SIGILL, lo que tenemos que hacer en programa principal es: Primero crear dos estructuras sigaction, una para cada señal –struct sigaction señal1; –struct sigaction señal2; Rellenar los campos de las estructuras (sa_handler,sa_flags,sa_mask) Por ultimo utilizar la función sigaction –sigaction(SIGINT,señal1,NULL); –sigaction(SIGILL,señal2,NULL);

Name | Company Mascara de señales Cuando hemos explicado la estructura sigactión, hemos hablado sobre el campo sigset sa_mask, el cual se encarga de admitir que lleguen otras señales mientras estamos tratando una en concreto. Por ahora hemos utilizado la función sigemptyset(sigset_t *set): –se encarga de definir el set, como un conjunto vació de señales, es decir, permite que llegue cualquier señal. Pero hay otras funciones interesantes para la mascara de señales: –sigaddset(sigset_t *set, int signo): añade una señal al conjunto, es decir, bloquea una señal mientras se realiza el tratamiento de otra. –sigfillset(sigset_t): define el set como un conjunto con todas las señales, es decir, bloquea todas las señales mientras se realiza el tratamiento de otra. –sigdelset(sigset_t *set,int signo): quita una señal de un conjunto

Name | Company Instrucciones complementarias Para enviar una señal a un proceso, se ejecuta la instrucción: –kill(pid, id señal); # include Para dormir a un proceso, se ejecuta la instrucción: –sleep(nº de segundos); Para dejar dormido a un proceso hasta que llegue una señal se ejecuta: –pause();

Name | Company Ejercicio ad0df Cifrar.c Fichero.oculto For (i=indice_min;i<indice_max;i++) Cifra el valor de “i” Lee el fichero.oculto y compara si igual al valor cifrado de i si la comparación es Si comparación =1, muestra en pantalla el valor de i, y termina el bucle Si comparación =0, sigue con la siguiente iteración Programa:./findkey Indice_min Indice_max

Name | Company Ejercicio ad0df Cifrar.c Fichero.oculto findkey.c 127 Fichero chek.txt Señal Rutina de tratamiento de la señal Programa:./findkey