Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Міжпроцесна взаємодія на базі передачі повідомлень




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

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

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

Обробник сигналу в процесі має вид функції такого вигляду|виду|:

void имя_функции (int sigtype);

Параметром даної функції є|з'являється,являється| тип сигналу (один і той же обробник може бути встановлений|установлений| для обробки сигналів різних типів).

Для установки свого обробника сигналу, для його відміни або для установки ігнорування сигналу використовується системний виклик signal

Функції-обробники сигналів – це звичайні|звичні| функції Сі, вони мають доступ до всіх глобально видимим змінним і функціям.

Основні типи сигналів:

SIGALARM(14) – Якщо процес не зареєстрував обробник цього сигналу, то обробник за умовчанням завершує процес. Даний сигнал буде доставлений процесу через вказаний в дужках проміжок часу, це здійснюється за допомогою системного виклику abort.

SIGCHLD - Сигнал відправляється|вирушає| батьківському процесу у разі|в разі| завершення його дочірнього процесу. За умовчанням сигнал ігнорується.

SIGCONT - Сигнал продовження виконання програми після|потім| зупинки. Обробника за умовчанням немає.

SIGKILL (9) - Сигнал аварійного завершення процесу. По цьому сигналу процес завершується негайно — без звільнення|визволення| ресурсів. Цей сигнал не може бути перехоплений, заблокований або перевизначений самим процесом, завжди використовується стандартний обробник операційної| системи. Цей сигнал використовується для гарантованого завершення процесу.

SIGSTOP - Сигнал припинення роботи процесу. Цей сигнал не може бути перехоплений, заблокований або перевизначений. Використовується для гарантованого припинення роботи процесу з|із| повним|цілковитим| збереженням|зберіганням| його стану і можливістю|спроможністю| відновлення|поновлення|.

SIGTERM (15) - Сигнал завершення процесу, як правило використовується для коректного завершення його роботи.

Рис. 9.1. Приклад|зразок| використання сигналу SIGTERM

SIGUSR1, SIGUSR2 - «Призначені» для користувача сигнали — можуть використовуватися процесами для всіляких повідомлень. Обробник за умовчанням завершує процес.

Рис. 9.2. Використання сигналів при міжпроцесовому| обміні

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





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 479 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2530 - | 2230 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.006 с.