Список предопределённых сигналов
Типы сигналов идентифицируются числовыми номерами, но при программировании часто используются символьные имена сигналов, определенные в системных включаемых файлах. Ниже приведены некоторые наиболее часто употребляемые имена сигналов: SIGKILL - Этот сигнал приводит к завершению получившего его процесса. Это единственный сигнал, который не может игнорироваться и для которого нельзя назначить собственный обработчик SIGTERM - Этот сигнал - запрос на завершение процесса. Выдачу этого сигнала, например, включает в себя команда (не системный вызов!) kill. Подразумевается, что процесс, получивший этот сигнал, должен завершиться, однако процесс может установить игнорирование этого сигнала или назначить для пего собственный обработчик. SIGCHLD - Этот сигнал система посылает родительскому процессу при завершении любого его дочернего процесса. Реакция на этот сигнал, установленная по умолчанию, - игнорирование. Родительский процесс может не заботиться об обработке этого сигнала, если только он не хочет использовать его для синхронизации своего выполнения с дочерним процессом. SIGALRM - Этот сигнал используется для отсчета временных интервалов. Процесс может установить некоторый временной интервал при помощи системных вызовов alarm () или setitimer (), и по истечении заданного интервала система пошлет ему сигнал SIGALRM. SIGUSR1иSIGUSR2 - За этими сигналами являются зарезервированными, им не соответствуют никакие системные назначения. Процессы могут посылать эти сигналы друг другу и интерпретировать их по своему усмотрению. Лабораторная работа №5 Тема: Сигналы для межпроцессного взаимодействия. Сигнальные часы (таймеры). Цель работы: овладеть навыками использования сигналов для межпроцессного взаимодействия, ознакомиться с использованием таймеров.
Теоретические сведения. Сигналы могут использоваться как средство межпроцессного взаимодействия. Примеры программ. Текст программы alarm.с: /*'$cat alarm. с'*/ #include <stdio.h> main() { alarm(3); //заведен будильник на 3 сек printf("Looping forever\n"); while(1); printf("This line should never be executed\n"); } Выполнение программы alarm.c: '$alarm' Looping forever Alarm clock Описание работы программы alarm.c: Системным вызовом alarm() заводится будильник на 3 секунды. Далее печатается текст "Looping forever'". Далее начинается бесконечный цикл, поэтому текст не будет напечатан. Как только проходит 3 секунды, ставится отметка о будильнике текстом "Alarm clock". а1аrm(<время>) сигнал тревоги, посылаемый процессу, который выполняется в режиме задачи. Лабораторная работа №6
Тема: Синхронизация процессов. Защита критического кода и формирование цепочки обработчиков прерываний. Цель работы: научиться формировать свои собственные обработчики прерываний для защиты участков кода программы в критических секциях. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|