Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 32

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 32 страницаА. Робачевский - Операционная система UNIX (1114671) страница 322019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

раздел "Ограничения" далее в этой главе).Таблица 2.18. СигналыНазваниеДействие поумолчаниюЗавершитьЗавершить+согеИгнорироватьЗавершить+согеЗавершить+согеЗначениеСигнал отправляется, если процесс вызываетсистемный вызовСигнал отправляется, когда срабатывает тай%мер, ранее установленный с помощью систем%ных вызовов alarm(2) или setitimer(2).Сигнал свидетельствует о некоторой аппаратнойошибке. Обычно этот сигнал отправляется при об%ращении к допустимому виртуальному адресу, длякоторого отсутствует соответствующая физическаястраница. Другой случай генерации этого сигналаупоминался при обсуждении файлов, отображае%мых в память (сигнал отправляется процессу припопытке обращения к страницепамя%ти, лежащей за пределами файла).Сигнал, посылаемый родительскому процессупри завершении выполнения его потомка.Сигнал свидетельствует о попытке обращения кнедопустимому адресу или к области памяти, длякоторой у процесса недостаточно привилегий.Сигнал свидетельствует о возникновении осо%бых ситуаций, таких как деление на 0 или пере%полнение операции с плавающей точкой.www.books-shop.comПроцессыТаблица 2.18 (продолжение)НазваниеДействие поумолчаниюЗначениеЗавершитьСигнал посылается лидеру сеанса, связанномус управляющим терминалом, когда ядро обна%руживает, что терминал отсоединился (потерялинии).

Сигнал также посылается всем процес%сам текущей группы при завершении выполне%ния лидера.Этот сигнал иногда используется в качествепростейшего средства межпроцессного взаи%модействия. В частности, он применяется длясообщения демонам о необходимости обновитьконфигурационную информацию. Причина вы%бора именно сигнала SIGHUP заключается втом, что демон по определению не имеет управ%ляющего терминала и, соответственно, обычноне получает этого сигнала.SIGILLSIGINTSIGPIPEСигнал посылается ядром, если процесс попы%тался выполнить недопустимую инструкцию.ЗавершитьСигнал посылается ядром всем процессам те%кущей группы при нажатии клавиши прерывания<Ctrl>+<C>).ЗавершитьСигнал, при получении которого выполнениепроцесса завершается. Этот сигнал нельзя ниперехватить, ни игнорировать.ЗавершитьСигнал посылается при попытке записи в каналили сокет, получатель данных которого завер%шил выполнение (закрыл соответствующий де%скриптор).Сигнал отправляется при наступлении опреде%ленного события для устройства, которое явля%ется опрашиваемым.ЗавершитьИгнорироватьСигнал генерируется при угрозе потери питания.Обычно он отправляется, когда питание системыпереключается на источник бесперебойногопитания (UPS).SIGQUITЗавершить+согеSIGSTOPОстановитьСигнал посылается ядром всем процессам те%кущей группы при нажатии клавиш <Ctrl>+<\>.Сигнал отправляется всем процессам текущейгруппы при нажатии пользователем клавиш<Ctrl>+<Z>.

Получение сигнала вызывает оста%нов выполнения процесса.Завершить+согеСигнал отправляется ядром при попытке недо%пустимого системного вызова.www.books-shop.comГлава 2,164программирования UNIXТаблица 2.18 (окончание)НазваниеДействие поумолчаниюЗначениеSIGTERMЗавершитьСигнал обычно представляет своего рода пре%дупреждение, что процесс вскоре будет уничто%жен. Этот сигнал позволяет процессу соответст%вующим образом "подготовиться к смерти" —удалить временные файлы, завершить необхо%димые транзакции и т. д.

Команда kill(1) поумолчанию отправляет именно этот сигнал.SIGTTINОстановитьСигнал генерируется ядром (драйвером терми%нала) при попытке процесса фоновой группыосуществить чтение с управляющего терминала.SIGTTOUОстановитьСигнал генерируется ядром (драйвером терми%нала) при попытке процесса фоновой группыосуществить запись на управляющий терминал.ЗавершитьСигнал предназначен для прикладных задач какпростейшее средство межпроцессного взаимо%действия.ЗавершитьСигнал предназначен для прикладных задач какпростейшее средство межпроцессного взаимо%действия.Простейшим интерфейсом к сигналам UNIX является устаревшая, но по!прежнему поддерживаемая в большинстве систем функцияЭтафункция позволяет изменить диспозицию сигнала, которая по умолчаниюустанавливается ядром UNIX.

Порожденный вызовом fork(2) процесс на!следует диспозицию сигналов от своего родителя. Однако при вызовеехес(2) диспозиция всех перехватываемых сигналов будет установлена надействие по умолчанию. Это вполне естественно, поскольку образ новойпрограммы не содержит функции!обработчика, определенной диспозици!ей сигнала перед вызовом ехес(2). Функцияимеет следующееопределение:<signal.h>void (*signal (int sig, voidАргумент sig определяет сигнал, диспозицию которого нужно изменить.Аргументопределяет новую диспозицию сигнала, которой можетбыть определенная пользователем функция!обработчик или одно из сле!дующих значений:SIG_DFLУказывает ядру, что при получении процессом сигнала необходимовызвать системный обработчик, т.

е. выполнить действие по умолчанию.Указывает, что сигнал следует игнорировать. Напомним, что не все сиг%налы можно игнорировать.www.books-shop.comПроцессыВ случае успешного завершениявозвращает предыдущую диспо!зицию — это может быть функция!обработчик сигнала или системныезначенияилиВозвращаемое значение может быть ис!пользовано для восстановления диспозиции в случае необходимости.Использование функцииподразумевает семантику устаревшихили ненадежных сигналов. Процесс при этом имеет весьма слабые воз!можности управления сигналами. Во!первых, процесс не может заблоки!ровать сигнал, т.

е. отложить получение сигнала на период выполнениякритического участка кода. Во!вторых, каждый раз при получении сигна!ла, его диспозиция устанавливается на действие по умолчанию. Даннаяфункция и соответствующая ей семантика сохранены для поддержки ста!рых версий приложений. В связи с этим в новых приложениях следует из!бегать использования функции signal(3C). Тем не менее для простейшейиллюстрации использования сигналов, приведенный ниже пример исполь!зует именно этот интерфейс:<signal.h>static void{signo)сигнал{pauseВ этом примере изменена диспозиция трех сигналов: SIGINT, SIGUSR1 иПри получении сигнала SIGINT вызывается обработчикпри получении сигнала SIGUSR1 производится действие поумолчанию (процесс завершает работу), а сигналигнорируется.После установки диспозиции сигналов процесс запускает бесконечныйцикл, в процессе которого вызывается функцияПри получениисигнала, который не игнорируется,возвращает значение !1, а пере!менная errno устанавливается равной EINTR.

Заметим, что каждый раз приполучении сигнала SIGINT мы вынуждены восстанавливать требуемую дис!позицию, в противном случае получение следующего сигнала этого типавызвало бы завершение выполнения процесса (действие по умолчанию).www.books-shop.comГлава 2. Среда программирования UNIXПри запуске программы, получим следующий результат:$&[1] 8365PID порожденного процесса$ kill !SIGINT 8365Получен сигнал SIGINT$ kill8365Сигнал SIGINT перехваченСигнал SIGUSR2 игнорируется$ kill !SIGUSR1 8365User Signal 1•Сигнал SIGUSR1 вызывает завер[шение выполнения процесса$Для отправления сигналов процессу использована команданая в предыдущей главе.описан!Надежные сигналыСтандарт POSIX.

1 определил новый набор функций управления сигнала!на интерфейсеUNIX и лишенный рассмотренныхвыше недостатков.Модель сигналов, предложенная POSIX, основана на понятии набора сиг!налов (signal set), описываемого переменной типа s i g s e t _ t . Каждый битэтой переменной отвечает за один сигнал. Во многихтипимеет длину 32 бита, ограничивая количество возможных сигна!лов числом 32.Следующие функции позволяют управлять наборами сигналов:frincludeintintint*set, int*set, int signo);*set, intВ отличие от функцииизменяющей диспозицию сигналов, дан!позволяют модифицировать структуру данных s i g s e t t,определенную процессом.

Для управления непосредственно сигналами ис!дополнительные функции, которые мы рассмотрим позже.Функцияинициализирует набор, очищая все биты. Еслипроцесс вызываетто набор будет включать все сигналы, из!вестные системе. Функции sigaddset(3C) ипозволяют добавлятьили удалять сигналы набора.

Функцияпозволяет прове!рить, входит ли указанный параметром signo сигнал в набор.Вместофункциистандарт1 определяет функциюпозволяющую установить диспозицию сигналов, узнать ее те!кущее значение или сделать и то и другое одновременно. Функция имеетследующее определение:www.books-shop.comПроцессы167<signal.h>int sigaction (int sig,const struct sigaction *act,struct sigactionВся необходимая для управлением сигналами информация передается че!рез указатель на структуру sigaction, имеющую следующие поля:void (*sa_handler) ()void(int, siginfo_t *, void *)sigset_tintОбработчик сигнала sigОбработчик сигнала sigпри установленном флагеМаска сигналовФлагиПолеопределяет действие, которое необходимо предпринятьпри получении сигналов, и может принимать значенияSIG_DFLили адреса функции!обработчика.

Если значениеилиsa sigaction не равны NULL, то в полепередается набор сигна!лов, которые будут добавлены к маске сигналов перед вызовом обработчика.Каждый процесс имеет установленную маску сигналов, определяющую сиг!налы, доставка которых должна быть заблокирована. Если определенныйбит маски установлен, соответствующий ему сигнал будет заблокирован.После возврата из функции!обработчика значение маски возвращаетсяк исходному значению. Заметим, что сигнал, для которого установленафункция!обработчик, также будет заблокирован перед ее вызовом. Такойподход гарантирует, что во время обработки, последующее поступление оп!ределенных сигналов будет приостановлено до завершения функции. Какправило, UNIX не поддерживает очередей сигналов, и это значит, что бло!кировка нескольких однотипных сигналов в конечном итоге вызовет достав!куодного.Полеопределяет флаги, модифицирующие доставку сигнала.Оно может принимать следующие значения:Если определена функция%обработчик сигнала, и с помощью функцииsigaltstack(2) заданстек для функции%обработчика,то при обработке сигнала будет использоваться этот стек.

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

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

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

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