Главная » Просмотр файлов » Ю. Вахалия - UNIX изнутри (2003)

Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 37

Файл №1114670 Ю. Вахалия - UNIX изнутри (2003) (Ю. Вахалия - UNIX изнутри (2003)) 37 страницаЮ. Вахалия - UNIX изнутри (2003) (1114670) страница 372019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 37)

Такой подход позволяет одному системному вызову работать сразу с несколькими сигналами. Вызов з1дзеппазк используется для указания набора блокируемых сигналов. Вызов з1дп1оск добавляет в этот набор один или несколько дополнительных сигналов. Реализация вызова з1драпзе в системе ВЯЭ атомарно устанавливает новую маску блокируемых сигналов и переводит процесс в состояние сна до прихода сигнала. Системный вызов з1дуес заменил собою ейдпа1. Точно так же, как и з1дпа1, з1дуес устанавливает обработчик для одного из сигналов. Дополнительно вызов гйдуес может задавать маску, ассоциируемую с этим сигналом.

После вырабатывания такого сигнала ядро системы перед вызовом обработчика установит новую маску блокируемых сигналов, являющуюся объединением текущей маски, маски, заданной в з1дчес, и текущего сигнала. Таким образом, обработчик всегда запускается, когда текущий сигнал блокирован, — следовательно, повторяющийся сигнал не будет доставлен до тех пор, пока обработчик не завершит свою работу. Такое устройство сигнального механизма наиболее соответствует типичным сценариям вызова обработчиков сигналов.

Блокирование дополнительных сигналов, вырабатываемых во время функционирования обработчика, является весьма необходимой функцией, так как сами по себе обработчики сигналов обычно являются критическими участками кода. После возврата из обработчика происходит восстановление маски блокированных сигналов в ее предыдущее значение. Еще одной важной возможностью является обработка сигналов в отдельном стеке. Представьте, что процесс управляет своим собственным стеком. Он может установить обработчик для сигнала 5165ЕИ, вырабатываемого при 4.4.

Надежные сигналы 159 переполнении стека. В обычной ситуации обработчик запустится с тем же, уже переполненным стеком, что приведет к вырабатыванию еще одного сигнала 5165ЕБЧ. Если обработчик будет стартовать, используя при этом отдельный стек, то проблема не возникнет. Отдельный стек для сигнала также полезен и для нитевых библиотек прикладного уровня. Системный вызов з19згас1 задает отдельный стек, который будет использоваться обработчиком сигнала.

Ответственность за правильное указание размера такого стека лежит на разработчике, поскольку ядро системы ничего не знает о его границах. В ОС ВЗР представлено несколько дополнительных сигналов, в том числе специально выделенных для управления заданиями'. Задание — это группа связанных между собой процессов, обычно формирующих едингяй конвейер. Пользователь может выполнять несколько заданий одновременно из одного сеанса терминала, но только один из них будет текущим. Текущему заданию позволено писать в терминал и считывать с него.

Фоновым заданиям, пытающимся получить доступ к терминалу, посылаются сигналы, которые обычно приостанавливают процесс. Командные интерпретаторы Кого зпе11 (Ы) и С зпе11 (сзп) 16~ используют сигналы управления заданиями для манипулирования заданиями, посылая эти сигналы текущим и фоновым заданиям, приостанавливая и возобновляя их работу.

Более подробно об управлении заданиями будет рассказано в разделе 4.9.1. В заключение отметим, что система 4ВВР позволяет автоматически перезапускать медленные системные вызовы, выполнение которых было прервано сигналами. Медленные вызовы включают в себя функции геад и ьуп1е, осуществляющие чтение и запись на символьные устройства, а также сетевые соединения, каналы, вызовы ьуа11, ьуа11р1п', 1ос11. Если один из этих вызовов прерывается сигналом, происходит его автоматический перезапуск после возврата из обработчика сигнала вместо прерывания работы с ошибкой НМТй. В системе 4.3ВЗР добавлен вызов з191пгеггврг, позволяющий выборочно разрешить или запретить такую возможность для каждого сигнала отдельно.

Интерфейс сигналов системы ВБР является весьма гибким и мощным. Его основным недостатком остается несовместимость с оригинальным интерфейсом систем корпорации АТЛЕТ (и даже с вариантом, представленным в 5Ъ'КЗ, хотя эта система была создана позже). Это дало возможность сторонним производителям предлагать различные библиотечные интерфейсы, которые пытались удовлетворить приверженцев обеих ветвей генеалогического дерева (ЛЯ1Х. Позже в системе 5ЧК4 был представлен интерфейс, совместимый со стандартом РОЯ1Х и при этом обладающий совместимостью с предыдущими реализациями 5узгет Ч и семантикой, принятой в ОС ВЗР. ' Поддержка управления заданиями впервые появилась в 4ЛВ5Р.

160 Глава 4. Сигналы и управление сеансами 4.5. Сигналы в ВЧН4 Операционная система 5УК4 предлагает набор системных вызовов 111), которые обеспечивают универсальные возможности обработки сигналов как ОС 5ЧВЗ, так и ВБП, а также поддерживается устаревший механизм ненадежных сигналов. Ниже представлены основные функции 5ЧК4 для работы с сигналами. + з1дргосаай(лонг, зе1р, озетр); + Аргумент зетр используется для изменения маски блокируемых сигналов. Если лоуг имеет значение 516 В(.ОСК, то маска зетр объединяется операцией ИЛИ с существующей.

Если йоа определено как 516 ОМВ(.06К, то сигналы, заданные в зетр, деблокируются по существующей маске блокированных сигналов. Если лов равняется 516 56ТМА5К, то происходит замена текущей маски на набор, определенный в зетр. При возврате из функции озетр содержит значение маски перед модификацией. + з1да(тзтасК(зтасК, оЫ зтасК); + Задает новый стек зтасК для обработки сигналов. Альтернативный стек (если он требуется) необходимо определять перед установкой обработчика.

Остальные обработчики используют стек, заданный по умолчанию. После возврата из функции в переменной оЫ зтасК содержится указатель на предыдущий альтернативный стек. + з(дзцзрелд(з(дщай); + Устанавливает маску блокируемых сигналов в значение з1дшай и переводит процесс в состояние сна до тех пор, пока этому процессу не будет отправлен сигнал, который не игнорируется и не заблокирован. Если такой сигнал был послан и при изменении маски он будет разблокирован, произойдет немедленный выход из функции. + з(дрелг(1лд(ветр); + Возвращает в зетр набор сигналов, ожидающих процесс.

Вызов не производит никаких изменений в состоянии сигналов и используется только для получения информации. + з(дзепг(зе1(ргосзет„з1д); + Расширенная версия Ый. Посылает сигнал гйд набору процессов, заданных в ргосзек + з1дасйоп(з(дпо, асК оас1); + Определяет обработчик для сигнала з1дпо. Является аналогом вызова з1дчес в ОС В50. Аргумент аст указывает на структуру з1дасбоп, содержащую диспозицию сигналов (516 16й, 516 ОВ. или адрес обработчя- 4.6. Реализация сигналов 161 ка), маску, ассоциированную с сигналом (аналогичную маске вызова 519уес), а также один или несколько следующих флагов: 5А 5161МЕО 5А МООЕЕЕй 5А НЕ5ЕТНАМО + Флаги 5А МООЕЕЕК и 5А КЕ5ЕТНАМО используются для совместимости с изначальной реализацией механизма ненадежных сигналов. Во всех случаях переменная оас1 возвращает данные, установленные перед вызовом 519асбоп.

+ Интерфейс совместимости + Для обеспечения совместимости с предыдущими версиями система 5Ъ'К4 также поддерживает вызовы 519па1, гйдзет, 519поЫ, 519гесзе, 51919поге и 519рапзе. Системы, не требующие совместимости на бинарном уровне, могут реализовывать эти вызовы в виде библиотечных функций, Все перечисленные системные вызовы (кроме указанных в последнем пункте списка) полностью удовлетворяют стандарту РО31Х.1 по имени, передаваемым параметрам и семантике. 4.6. Реализация сигналов Для эффективной реализации сигналов ядру необходимо содержать некоторое состояние в области и и в структуре ргос.

В этом разделе описывается реализация сигналов в системе 5'тгК4, которая отличается от аналогичного набора ОС В51) именами некоторых переменных и функций. Область и содержит информацию, требующуюся для правильного запуска обработчиков сигналов, которую составляют нижеперечисленные поля области и. 5А МОСС05ТОР 5А кЕ5ТАкТ 5А ОМ5ТАСК 5А моссОауА11 Не генерировать сигнал 516СНСО, когда процесс-потомок приостановлен Автоматический рестарт системного вызова при прерывании его сигналом Обработка сигнала с альтернативным стеком, если такой стек был указан через йданиасй Используется только с 516СНСО.

Просит систему не создавать процессы-зомби, если потомки вызывающего процесса завершают свою работу. Если процесс далее вызовет иа1ц то он будет находиться в рехгиме охгидания до тех пор, пока не завершат работу все его потомки Обеспечивает дополнительную информацию для обработчика сигнала. Используется для обработки аппаратных исключений и т. д. Позволяет не блокировать автоматически сигнал в течение выполнения его обработчика Сбрасывает действия на заданные по умолчанию перед вызовом обработчика 162 Глава 4. Сигналы и управление сеансами Вектор обработчиков для каждого сигнала Маски сигналов, ассоциированные с каждым обработчиком Указатель на альтернативный стек сигнала Маска сигналов, обрабатываемых с альтернативным стеком и а|два|В а т|дшаа|сЦ а йдапыасй а а!дспетас|с ц 0|от!9 Набор обработчиков, который должен имитировать устаревший механизм ненадежных сигналов Структура ргос содержит определенные поля, относящиеся к созданию и отправке сигналов, в том числе: Текущий сигнал, в данный момент обрабатываемый Маска ожидающих сигналов Маска блокируемых сигналов Маска игнорируемых сигналов р сцгт|д Р-а|9 р Ьо|б р |дпсге Рассмотрим далее реализации па уровне ядра различных функций, относящихся к доставке сигналов.

Характеристики

Тип файла
PDF-файл
Размер
8,36 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее