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

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

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

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

Командный интерпретатор также может запрашивать статус выхода процесса-потомка, так как дальнейшие действия пользователя зависят от того, завершился ли процесс успешно или имела место ошибка. В системах БЫХ поддерживаются следующие системные вызовы, дающие возможность отслеживания завершения работы процессов: иа11(з1а( )ос); I* 5узтеы У, В50 и Р051Х. 1 */ иа113(з1а1озр. ор11опз, гозачер): !* В50 *! иа(тр)О(р(о, з1ат )ос, ор11опз); /* Р051Х.1 *! иа(11О(1птуре. 1О, (пуор, ор11опэ); !* 5УР4 *!' Системный вызов в(а(1 позволяет процессу ожидать завершения работы его потомка. Так как потомок может уже оказаться завершенным к моменту совершения вызова, то ему необходимо уметь распознавать такую ситуацию.

После запуска вызов (иа(1 первоначально проверяет, имеет ли вызывающий его процесс потомков, функционирование которых завершено или приостановлено. Если он находит такие процессы, то немедленно происходит возврат из этого системного вызова.

Если таких процессов нет, то уеа(1 блокирует вызвавший его процесс до тех пор, пока один из потомков не завершит свою работу, после чего последует возврат из вызова. В обоих случаях вызов (ваИ возвратит Р1Р завершившегося процесса, запишет его статус выхода в з1аг 1ос и освободит его структуру ргос (если более одного процесса-потомка завершили свою работу, туа(1 обработает только первый из найденных). Если процесс-потомок находится в режиме трассировки, возврат из в(а(1 также произойдет, когда процесс-потомок получит сигнал.

Ошибку в(а(1 вернет в случае, когда родительский процесс не имеет ни одного потомка (функционирующего или уже завершенного) либо если его работа была прервана поступившим сигналом. Система 4.3ВЯ) поддерживает вызов уча(13 (названный так потому, что он имеет три аргумента), который также возвращает информацию об использовании ресурсов потомком (время работы в режиме ядра и в режиме задачи процесса-потомка, а также о всех его завершенных потомках). В стандарте РОЯХ.1 16] описан системный вызов у(а(101((, в котором используется аргумент рЫ для ожидания потомка, имеющего определенный идентификатор процесса или группы процесса. Системные вызовы уча(1З и у(а(1рЫ поддерживают две опции: УУМОНАМ6 и УУ()МТ((АСЕ0. Опция УУМОНАМ6 заставляет вызов ' В операционной системе 5ЧН4 поддержка команд иацэ и иацрм реализована в виде библиотечных функций.

2.8. Новые процессы и программы 93 игайЗ немедленно завершить работу, если он не нашел ни одного завершившегося процесса. Опция 1М1)МТВАСЕО завершает работу вызова, если потомок приостанавливается, или вновь продолжает функционирование. В ОС "о'к'Р4 системный вызов ига1Во поддерживает все вышеописанные возможности. Он позволяет вызывающему его процессу задавать Р1Р или О1Р процесса, завершения которого должен ждать, а также определять события, по которым также произойдет возврат из вызова.

Возвращает более подробную информацию о процессе-потомке. 2.8.7. Процессы-зомби Когда процесс завершается, он остается в состоянии «зомби» (хошЬ1е) до тех пор, пока окончательно не будет «вытерт» родительским процессом. В этом режиме единственным занимаемым ресурсом остается структура ргос, в которой хранится статус выхода, а также информация об использовании ресурсов системы'. Эта информация может быть важна для родительского процесса, который получает ее посредством вызова игаг1, который также освобождает структуру ргос потомка. Если родительский процесс завершается раньше, чем его потомок, то тот усыновляется процессом 1пИ. После завершения работы потомка процесс гпй вызовет ьгай для освобождения его структуры ргос.

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

Однако потенциальная возможность такой ситуации остается, когда недостаточно внимательно написанные программы не следят за всеми своими процессами-потомками. Это может быть достаточно раздражительным, так как процессы-зомби видимы при помощи рз, а пользователи никак не могут их завершить„так как огггг уже завершены. Более того, они продолжают занимать структуру ргос, уменьшая тем самым максимальное количество активных процессов.

В некоторых более поздних реализациях БИ1Х поддерживается возможность указания на то, что процесс не будет ожидать завершения работы своих потомков. Например, в системе ЗЧК4 процесс может выставить флаг 5А МОССОтгА1Т в системном вызове з1йастгоп, определяя действие на сигнал 516СНСО. Это дает возможность ядру системы не создавать процессы-зомби, если потомок вызывающего процесса завершит функционирование.

' В некоторых реализациях ГЛЧ1Х для хранения таких данных используются специальные структуры гоюьге, 94 Глава 2. Ядро и процессы 2.9. Заключение В этой главе мы обсудили взаимодействие ядра системы и прикладных процессов в традиционных системах 1Лч1Х. Эти вопросы требуют более широкого обзора, поэтому нам необходимо рассмотреть специфические части системы подробнее. Современные варианты 1)Н1Х, такие как БЧК4 или Бо!а1з 2.х, предлагают дополнительные возможности, описание которых можно найти в следующих главах книги.

2.10. Упражнения 1. Какие элементы контекста процесса необходимо сохранять ядру при обработке. переключения контекста; прерывания; системного вызова? 2. В чем преимушества и недостатки динамического размешения таких объектов, как структура ргос, и блоков таблицы дескрипторов? 3. Каким образом ядро системы узнает о том, какой из системных вызовов был сделан? Каким образом происходит доступ к аргументам вызова (храняшимся в пользовательском стеке)? 4. Найдите сходства и различия в обработке системных вызовов и исключений. В чем производимые действия сходны и чем они отличаются друг от друга? 5. Многие реализации 1)Х1Х совместимы с другими версиями системы при помощи функций пользовательских библиотек, реализующих системные вызовы других версий ОС.

Объясните, различается ли с точки зрения разработчика приложений реализация такой функции в виде библиотеки и в виде системного вызова. 6. На что должен обратить внимание разработчик библиотеки, если он решает реализовать свою функцию в библиотеке как альтернативную системному вызову? Что нужно дополнительно учитывать, если библиотеке необходимо использовать несколько системных вызовов для реализации этой функции? 7. Почему необходимо ограничивать объем работы, выполняемой обработчиком прерывания? 8.

Дана система с и различными уровнями приоритетов прерываний. Какое максимальное количество прерываний может поддерживаться системой одновременно? Как влияет это количество на размеры различных стеков? 2.11. Дополнительная литература Аг!Йзоп-Жез!еу, Кеайпя, МА, 1989. 6. 1пзг!гаге 1ог Е1есгйса! апд Е!есггоп!с Еп8!пеегя 1п1огвайоп ТссЬпо!ояу, «РоггаЫе Орегаг!п8 5узгев 1пгег(асе (РО51Х) Рагс 1: 5узгев Арр!!саг!оп Ргоягав 1пгег1асе (АР1) 1С 1.ап8ца8е]», 1003.1 — 1990, 1ЕЕЕ, Рес. 1990.

9. 10. 11. 12. 13. 14. 15. 2.11. Дополнительная литература 95 Архитектура процессора 1пге! 80х86 не предусматривает приоритетов прерываний. Для управления прерываниями используются две инструкции: С~1 для запрещения всех прерываний и 571 для обратного действия. Опишите алгоритм программной поддержки уровней приоритетов для этого процессора. Когда определенный ресурс системы становится доступным, вызывается процедура тта!гецр(), которая будит все процессы, ожидающие его освобождения. Какие есть недостатки у описанного подхода? Какие вы видите альтернативные решения? Представьте, что существует некоторый системный вызов, комбинирующий функции вызовов Гог!г и ехес.

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

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

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

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