Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR_СП_лекции_укр.doc
Скачиваний:
6
Добавлен:
22.04.2019
Размер:
697.34 Кб
Скачать

3.5 Сигнали

3.5.1 Поняття сигналу

При межпроцессорном взаємодії найбільше часто розглядаються сигнали, які визначають спеціальні події, що відбуваються між процесами. сигнали встановлюються одним процесом, але одержати їх може інший процес або ж сам цей процес.

Сигналом називається програмне переривання, передане виконуваному процесу. Операційна система використовує сигнали для інформування виконуваних процесів про виняткові ситуації.

Всі події, що генерують сигнали можуть бути розбиті на три основні категорії: помилки, зовнішні події і явні виклики.

Помилка означає, що програма виконала некоректну операцію й не може бути продовжена. До помилок, які можуть генерувати сигнали ставляться помилки розподілу на нуль і помилки звертання до невірних адрес пам'яті. Зовнішня подія викликається як правило пристроями уведення-виводу або інших процесів. Безпосередній виклик означає використання бібліотечної функції (наприклад, kill), безпосереднім призначенням якої є генерація сигналу.

Сигнали можуть генеруватися синхронно й асинхронно. Синхронні сигнали властиві деяким діям, виконуваним програмою й виконуються безпосередньо під час цієї дії. До синхронних сигналів ставляться більшість сигналів, що повідомляють про помилки.

Асинхронні сигнали генеруються подіями, що відбуваються поза виконуваним процесом і надходять у невідомий заздалегідь момент часу. Коли сигнал генерується, він міститься операційною системою в чергу очікування й через якийсь час передається процесу для обробки.

Існує можливість блокування сигналів. У цьому випадку сигнал перебуває в стані очікування доти, поки він не буде разблокирован.

сигнал, Що Одержав, процес виконує деякі дії, пов'язані із цим сигналом. Для деяких сигналів виконувані дії заздалегідь визначені. Однак, при обробці більшості сигналів процес має альтернативу:

  • ігнорувати сигнал,

  • визначити функцію-оброблювач або

  • викликати оброблювач за замовчуванням.

Можуть бути послані наступні сигнали:

01 SIGHUP - останов програми через збій устаткування або

помилки в програмі.

02 SIGINT - переривання програми.

03 SIGQUIT - видалення програми.

04 SIGILL - невірна інструкція.

05 SIGTRAP - трасуюче відгалуження помилково.

06 SIGIOT - інструкція передачі на уведення/вивід.

07 SIGEMT - інструкція, що ідентифікує фізичну

границю використовуваної частини носія даних.

08 SIGFPT - помилка в операціях із плаваючою крапкою.

09 SIGKILL - знищення процеса-дитини.

10 SIGBUS - помилка на шині уведення/виводу (на лінії

мережі).

11 SIGSEGV - порушення сегментації.

12 SIGSYS - невірний аргумент системного виклику.

13 SIGPIPE - запис у трубопровід, з якого ніхто не зчитує.

14 SIGALARM - перевищення припустимого тимчасового

інтервалу.

15 SIGTERM - програмне завершення.

16 SIGUSR1 - обумовлений користувачем сигнал 1.

17 SIGUSR2 - обумовлений користувачем сигнал 2.

18 SIGCLD - смерть процеса-дитини.

19 SIGPWR - раптовий перебій в електроживленні.

Як відзначалося вище, у найбільш загальному випадку сигнали передаються лише між взаємно зв'язаними процесами й цим зв'язком може бути встановлена трьома способами:

  • процеси мають той самий ефективний користувальницький ідентифікатор;

  • процеси контролюються з одного термінала;

  • між процесами встановлений зв'язок батько-дитина.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]