Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 43
Текст из файла (страница 43)
Драйвер также посылает сигнал 5165ТР текущей группе процессов, если она не является группой лидера сеанса. Это защищает интерактивные процессы от получения неожиданных ошибок при попытке доступа к терминалу. ' Стандартные устройства ввода, вывода и вывода овчибок. — Прим. рад. 182 Глава 4. Сигналы и управление сеансами 4.10.5.
Реализация сеансов в 4.4В80 В архитектуре сеансов системы 5Ъ'В4 адекватно представлены как сеанс входа в систему, так и задания, выполняющиеся в этом сеансе. В то же время оца совместима со стандартом РО51Х 1003.1 и ранними версиями Вузсеш Ъ'. Реализация сеансов в операционных системах 4.4В51) и 05Р/1 очень похожа иа архитектуру 5ЧРс4 и обладает сравнимыми с пей возможностями. Различия между реализациями проявляются только в отдельных деталях.
Подар группы Подар сеанса о группы льный апяющаго нала структл~а Гп) структли ГГ1 структура Гс1 структура ГВ1 стрлпли И ву ргос 13 рэгр 1 геввюп Ц1 чпода Рис. 4.7. Структуры данных управления сеансами в 4.4В80 цй!Х Управляющий термииал остается закрепленным за сеансом. Это дает возможность лидеру сеанса попытаться заново соединиться с терминалом после восстановления соединения. Лидер сеанса может завершить соединение с текущим управляющим терминалом и открыть новый. Ядро системы установит указатель обьекта чпопе сеанса ца указатель чпог1е нового терминала.
В результате все процессы этого сеанса входа в систему будут прозрачно для иих переключены иа новый управляющий терминал. Такая косвенная связь, обеспеченная /печ/1гу, облегчает решение задачи распространения такого изменения. Когда лидер сеанса заканчивает свою работу, ои завершает и сеанс входа в систему. Управляющий терминал освобождается при помощи установки указателя чпог1е сеанса в МНЕ. В результате ии один процесс этого сеанса ие сможет иметь доступа к терминалу посредством /Йеч/Ку (ио оии смогут продолжать осуществлять доступ при непосредственном открытии файла устройства терминала).
Процессы текущей группы получают сигнал 516НОР. Все прямые потомки существующего процесса будут унаследованы процессом 1пй. 4Л 2. упражнения 183 На рис. 4.7 для сравнения проиллюстрированы структуры данных, используемые в 4.4ВВР 1101. Одним из важнейших отличий является то, что структура ргос не имеет прямой ссылки на объект зеззюп. Вместо этого она ссылается на объект группы процессов (структура рдгр), который, в свою очередь, содержит указатель на структуру зеззюп. 4.11. Заключение Появление стандарта РОЯ1Х 1003.1 помогло объединить различающиеся между собой и несовместимые реализации поддержки сигналов и управления терминалами.
В результате интерфейсы оказались весьма удачными и в большой степени отвечающими ожиданиям типичных приложений и разработчиков. 4.12. Упражнения Ответы на некоторые из перечисленных ниже вопросов могут быть различными в зависимости от используемого варианта П1ч1Х. Отвечающий может выбрать для ответа на вопросы одну из наиболее близких для него реализаций системы. 1. Почему обработчики сигналов не сохраняются после выполнения системного вызова ехес? 2. Почему сигнал 516СН~0 по умолчанию игнорируется? 3. Что происходит в случае возникновения сигнала для процесса, находящегося в стадии выполнения вызовов 1аФ, ехес или ехй? 4.
При каких условиях сигнал, отправленный х111, не завершит немедленно выполнение процесса? 5. В традиционных системах (3Ы1Х приоритет сна используется для двух целей: решения, будет ли процесс разбужен для приема этого сигнала, и определения приоритета процесса в расписании после выхода процесса из режима сна.
Какие недостатки имеются в классической модели и как эти проблемы были решены в современных системах? 6. Какие существуют недостатки использования постоянно установленных обработчиков? Существуют ли какие-либо определенные сигналы, для обработки которых нецелесообразно применять постоянно установленные обработчики? 7. Чем отличаются между собой реализации вызова з1працзе в системах 4.3ВВР и 5Ъ'й3? Опишите возможную ситуацию, при которой применение первого варианта представляется более удобным. 8. Чем предпочтительнее поддержка повторного старта прерванного системного вызова на уровне ядра, нежели перезапуск его приложением? 184 4.13. Дополнительная литература 1.
3. 9, 1О, 11. 12. 13. 14. 15. 16. 17. 18. Глава 4. Сигналы и управление сеансами Что произойдет, если процесс получит несколько экземпляров одного и того же сигнала перед тем, как он обработает первый экземпляр это- го сигнала? Будет ли в такой ситуации целесообразным применение иных сигнальных моделей? Представьте, что процесс ожидает получения двух сигналов и что в нем были описаны обработчики для каждого из этих сигналов. Каким обра- зом ядро системы может убедиться в том, что процесс обработает вто- рой сигнал сразу же после обработки первого? Что произойдет, если процесс получит сигнал во время обработки дру- гого? Как в этом случае процесс может контролировать свои действия? В каких случаях процессу целесообразно использовать флаг 5А йОС!.ОФАП, определенный в системе 5ЧК4? В каких случаях этого делать не следует? Зачем обработчику исключения необходим полный контекст процесса, в котором исключение произошло? Какой процесс может создать новую группу процессов: а) в системе 4.3В5Р, б) в системе 5ЧК4? Какими преимуществами обладает архитектура сеансов 5ЧК4 по срав- нению со средствами работы с терминалами и управления заданиями системы 4.3В5Р? В !3! описывается менеджер сеансов прикладного уровня, использую- щийся для поддержки сеансов входа в систему.
Насколько сходно зто средство с архитектурой сеансов системы 5Ъ'К4? Что должно сделать ядро системы 5ЧК4 в том случае, когда лидер се- анса освободит управляющий терминал? Каким образом в системе 5ч'К4 реализована поддержка переподключе- ния сеанса к управляющему терминалу? В каких ситуациях примени- ма такая возможность системы? Ашепсап Те!ерЬопе 8. Те!ейгарЬ, «1)Ь!1Х 5узгет 'ч' Ке!еазе 3: Ргойгапппег'з Ке1егепсе Манна!», 1986. ВасЬ, М. !., «ТЬе Реядп о1 гЬе 1!й!!Х Орегаг!п8 5узгет», РгепНсе-На!1, Епй!еъоос! С!!11з, Щ 1986.
ВеПоч1п, 5. М., «ТЬе 5езяоп Тту Мапа8ег», Ргосеег!!п8з о1 1Ье 5пщтег 1988 !)5ЕЫ1Х ТесЬп1са! Соп1егепсе, !пп. 1988. В!ас!г, Р. 1, Со!пЬ, Р. В„НапгЬ, К., Течап1ап, А., апд 5апхй К., «ТЬе МасЬ ЕхсерВоп Напг!!!п8 Еас!!!су», СМ1)-С5-88-129, Сотрцгег 5с!енсе РерагГтепЦ Сагпей!е Ме!!оп 1!и!чегяту, Арг. 1988. Глава 5 Планирование процессов 5.1. Введение Центральный процессор наряду с памятью и терминалами является общим ресурсом, разделяемым между всеми процессами системы. Принятие решения о том, как должны использоваться ресурсы различными процессами, возложено на операционную систему. Планировщик является компонентом ОС, определяющим, какой из процессов должен выполняться в данный момент времени и как долго он может занимать процессор. Система БХ1Х изначально создавалась как ОС разделения времени, что означает возможность одновременного выполнения в ней нескольких процессов.
Конечно, в определенной степени одновременное выполнение является лишь иллюзией (по крайней мере, в однопроцессорных системах), так как в один момент времени на одном процессоре может выполняться только что-то одно. В системах ИЧ1Х эмулируется одновременность работы при помощи чередования процессов на основе принципа разделения времени. Планировщик предоставляет процессор каждому процессу системы на небольшой период времени, после чего производит переключение на следующий процесс.
Такой период называется квантом времени (диапгит или з11се). В описании планировщика 13М1Х необходимо учитывать два важных аспекта. Первый из них касается политики — правил, используемых при принятии решения о том, какой из процессов следует назначить на выполнение и когда произвести переключение на выполнение другого процесса. Второй рассматриваемый аспект относится к реализации, представляющей собой набор структур данных и алгоритмов, используемых для проведения этих политик. Политика планирования должна по мере возможности удовлетворять различным требованиям: определенному времени реакции для интерактивных приложений, высокой производительности для фоновых заданий, недопущению полного необслуживания процессов и т.
д, Попытка удовлетворения одновременно всех поставленных целей часто приводит к конфликтам, поэтому планировщик должен обеспечить наилучшее соотношение между ними. Также от него требуется эффективная реализация политики планирования при минимальных перегрузках системы. 6.2.
Обработка прерываний таймера 187 На самом низком уровне планировщик заставляет процессор производить переключения от одного процесса к другому. Это действие называется переключением контекста. Ядро системы сохраняет аппаратный контекст текущего выполняющегося процесса в блоке управления процессом (ргосезз сопгго1 Ыос1с, РСВ), который обычно является частью его области ш Контекст представляет собой «моментальный снимок» текущих значений регистров общего назначения, регистров управления памятью и других специальных регистров процесса. После завершения процедуры сохранения ядро системы загружает аппаратные регистры с контекстом следующего процесса, готовящегося к выполнению (контекст загружается из его блока РСВ).
Это действие приводит к тому, что СР(1 начинает выполнение нового процесса. Основной задачей планировщика является принятие решения о том, когда произвести переключение контекста и какой из процессов назначить на выполнение. Переключения контекста являются весьма затратными операциями. Кроме сохранения копии регистров процесса, ядро системы должно выполнить еше множество архитектурно зависимых действий. На некоторых системах оно должно очистить данные, инструкции или буфер трансляции адресов для предупреждения некорректного доступа к памяти новым процессом (см. разделы 15.9-15.13). В результате в начале своей работы процесс тратит в виде накладных расходов несколько операций обращения к памяти.