Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 13,368
новичок: Goosprin
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы крупного аэропорта на GPSS + Пояснительная записка
Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...
Моделирование станции технического обслуживания на GPSS + Отчет

Сигналы в SVR4
Операционная система SVR4 предлагает набор системных вызовов [11], которые обеспечивают универсальные возможности обработки сигналов как ОС SVR3, так и BSD, а также поддерживается устаревший механизм ненадежных сигналов.


Также может иметь смысл заглянуть на сайт grant-avto.ru, ведь именно там можно узнать много нового на тему http://www.grant-avto.ru/gazel.html. Тема купить газель может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт grant-avto.ru, и тема купить газель начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема купить газель очень подробно представлена на сайте grant-avto.ru. Трудно найти более детальное освещение темы купить газель чем это сделано на сайте grant-avto.ru. Спасибо сайту grant-avto.ru за такое доскональное преподнесение темы купить газель.




Ниже представлены основные функции SVR4 для работы с сигналами.
♦ sigprocmask(how, setp, osetp);
♦ Аргумент setp используется для изменения маски блокируемых сигналов. Если how имеет значение SIG_BL0CK, то маска setp объединяется операцией ИЛИ с существующей. Если how определено как SIG_ UNBLOCK, то сигналы, заданные в setp, деблокируются по существующей маске блокированных сигналов. Если how равняется SIG_SETMASK, то происходит замена текущей маски на набор, определенный в setp. При возврате из функции osetp содержит значение маски перед модификацией.
♦ sigaltstack(stack, old_stack);
♦ Задает новый стек stack для обработки сигналов. Альтернативный стек (если он требуется) необходимо определять перед установкой обработчика. Остальные обработчики используют стек, заданный по умолчанию. После возврата из функции в переменной old_stack содержится указатель на предыдущий альтернативный стек.



♦ sigsuspend(sigmask);
♦ Устанавливает маску блокируемых сигналов в значение sigmask и переводит процесс в состояние сна до тех пор, пока этому процессу не будет отправлен сигнал, который не игнорируется и не заблокирован. Если такой сигнал был послан и при изменении маски он будет разблокирован, произойдет немедленный выход из функции.
♦ sigpending(setp);
♦ Возвращает в setp набор сигналов, ожидающих процесс. Вызов не производит никаких изменений в состоянии сигналов и используется только для получения информации.
♦ sigsendset(procset, sig);
♦ Расширенная версия kill. Посылает сигнал sig набору процессов, заданных в procset.
♦ sigaction(signo, act, oact);
♦ Определяет обработчик для сигнала signo. Является аналогом вызова sigvec в ОС BSD. Аргумент act указывает на структуру sigaction, содержащую диспозицию сигналов (SIG_IGN, SIG_DFL или адрес обработчика), маску, ассоциированную с сигналом (аналогичную маске вызова sigvec), а также один или несколько следующих флагов:
SA_N0CLDST0P He генерировать сигнал SIGCHLD, когда процесс-потомок приостановлен
SA_RESTART Автоматический рестарт системного вызова при прерывании его сигналом
SA_ONSTACK Обработка сигнала с альтернативным стеком, если такой стек был указан через sigaltstack
SA_NOCLDWAIT Используется только с SIGCHLD. Просит систему не создавать процессы-зомби, если потомки вызывающего процесса завершают свою работу. Если процесс далее вызовет wait, то он будет находиться в режиме ожидания до тех пор, пока не завершат работу все его потомки
SA_SIGINFO Обеспечивает дополнительную информацию
для обработчика сигнала. Используется для обработки
аппаратных исключений и т. д.
SA_NODEFER Позволяет не блокировать автоматически сигнал в течение выполнения его обработчика
SA_RESETHAND Сбрасывает действия на заданные по умолчанию перед вызовом обработчика
♦ Флаги SA_NODEFER и SA_RESETHAND используются для совместимости с изначальной реализацией механизма ненадежных сигналов. Во всех случаях переменная oact возвращает данные, установленные перед вызовом sigaction.
♦ Интерфейс совместимости
♦ Для обеспечения совместимости с предыдущими версиями система SVR4 также поддерживает вызовы signal, sigset, sighold, sigrelse, sigignore и sigpause. Системы, не требующие совместимости на бинарном уровне, могут реализовывать эти вызовы в виде библиотечных функций.
Все перечисленные системные вызовы (кроме указанных в последнем пункте списка) полностью удовлетворяют стандарту POSIX.1 по имени, передаваемым параметрам и семантике.
Реализация сигналов
Для эффективной реализации сигналов ядру необходимо содержать некоторое состояние в области и и в структуре ргос. В этом разделе описывается реализация сигналов в системе SVR4, которая отличается от аналогичного набора ОС BSD именами некоторых переменных и функций. Область и содержит информацию, требующуюся для правильного запуска обработчиков сигналов, которую составляют нижеперечисленные поля области и.
Структура ргос содержит определенные поля, относящиеся к созданию и отправке сигналов, в том числе:
p_cursig
P_sig
p_hold
pjgnore


Текущий сигнал, в данный момент обрабатываемый Маска ожидающих сигналов Маска блокируемых сигналов Маска игнорируемых сигналов
Рассмотрим далее реализации на уровне ядра различных функций, относящихся к доставке сигналов.



После вырабатывания сигнала ядро проверяет структуру ргос процесса, которому этот сигнал предназначен. Если сигнал необходимо проигнорировать, то ядро на этом завершит обработку, не предпринимая никаких действий. В иных случаях он будет добавлен в набор ожидающих сигналов, расположенный в поле р cursig1. Так как p_cursig2 является всего лишь битовой маской, где каждому сигналу отводится только один бит, ядро не может записать в нее несколько повторных экземпляров одного сигнала. Следовательно, процесс будет знать только об одном приходе ожидающего сигнала.



Если процесс находится в прерываемом сне и сигнал не заблокирован, то ядро системы разбудит такой процесс для получения сигнала. Более того, сигналы управления заданиями, такие как SI6ST0P или SI6C0NT, напрямую приостанавливают или продолжают функционирование процесса без проведения их доставки.
Опубликовал katy July 06 2015 15:42:53 · 0 Комментариев · 2646 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
ICQ
Animation (Пример...
C++ Builder 6 СПР...
FatScrollbar
Реализация ЭЦП по...
Электронный магаз...
FreeNet
Факториал [Исходн...
HTMLredaktor
SMExport
Генетический алго...
IMtale
CarGame [Исходник...
Dbgridpack
SynEdit
Delphi 6/7 базы д...
Sztransppanel
Ведение справочны...
Calendar
PDF

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Создание рекламных...
")" expected
Казино Вулкан Рич ...
ПОСТРОЕНИЕ ЭКСПЕРТ...
Игровой клуб казин...
Объектно-ориентиро...
Элементы управлени...
Дополнительные сфе...
Копия установочног...
Кому адресована эт...
Неименованные прос...
Использование датч...
Что является самым...
Как узнать свой снилс
Создание базы данн...
Про лудоманию
Несколько слов о п...
В Windows ХР Ноте ...
Структуры данных н...
административных п...
Построение активно...
Внедрение решенияК...
Открытие документа
Подключение офиса ...
Программная выписк...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?