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

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

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

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

Алгоритм блокировки ресурсов ' Более поздние версии системы ())Ч!Х поддерживагот несколько альтернативных вариантов вызова па)георц, таких как иаье опе() и иавергосзО. 80 Глава 2. Ядро и процессы 2.5.2. Прерывания Несмотря на то что ядро системы защищено от вытеснения другим процессом, процесс, манипулирующий структурами ядра, может быть прерван различными устройствами. Если обработчик прерывания попытается получить доступ к таким структурам, то обнаружит, что они находятся в состоянии нарушения целостности.

Возникшую проблему можно решить при помощи блокировки прерываний на период доступа к критически важным структурам данных. Ядро использует триггеры, приведенные в табл. 2.1 для повышения уровня )р1 и блокировки всех прерываний. Такие области кодов называются критическими секциями (см. пример в листинге 2.1). Листинг 2.1. Блокировка прерываний для критических областей )пС х = вр1Ь!о(): /* повышает уровень зр!.

возвращает предыдущее значение !р! */ / * изиенеиие дискового каша * / /* восстанавливает предшествующий уровень !р1 */ зр!х(х): При маскировании прерываний следует учитывать следующие важные соображен)гя: +Прерывания обычно требуют незамедлительной обработки, следовательно, они не могут удерживаться слишком долго. Таким образом, критические области кода должны быть по возможности краткими и малочисленными. + Необходимо блокировать только те прерывания, обработка которых требует обращения к данным, использующимся в критической области. В приведенном примере целесообразно блокировать только дисковые прерывания.

+ Два различных прерывания могут иметь один и тот же уровень приоритета. Например, на многих системах прерывания терминала и диска происходят на уровне )р! 21. + Блокирование прерывания приводит к блокированию всех прерываний, имеющих такой же или более низкий уровень приоритета. ПРИМЕЧАНИЕ При описании подсистем ОМ!Х слово «блокирование» употребляется а нескольких различных значениях. Процесс блокируется на ресурсе или событии, переходя в спящий режим и ожидая освобождения необходимого ресурса или наступления события. Ядро блокирует прерывание или сигнал, задерживая на время его передачу. И наконец, подсистема ввода-вывода передает данные на устройства хранения или от них в блоках фиксированного размера. 2.6.

Планирование процессов 81 2.5.3. Многопроцессорные системы Появление многопроцессорных систем стало причиной возникновения нового класса проблем синхронизации. Зашита ядра, основанная на отсутствии вытеснения, здесь уже не может быть применена. В однопроцессорных системах ядро может производить манипуляции с большинством структур данных, не опасаясь за их целостность, так как работа ядра не может быть вытеснена никем. Необходимо защищать только те данные, которые могут оказаться доступны обработчикам прерываний, а также те, целостность которых зависит от работы вызова Меер(). В многопроцессорных системах два процесса в состоянии одновременно выполняться в режиме ядра на разных процессорах', а также выполнять параллельно одну и ту же функцию. Таким образом, каждый раз, когда ядро обращается к глобальным структурам данных, оно должно защищать их от получения актуна с других процессоров.

Сами механизмы защиты также должны быть~защищены от особенностей выполнения в многопроцессорных системах/Если два процесса, выполняющиеся на различных процессорах, попытаются одновременно заблокировать один и тот же объект, только один должен завершить успешно зту процедуру. Зашита от прерываний является достаточно сложной задачей, так как все процессоры могут обрабатывать прерывания. Нецелесообразно производить блокировку на каждом процессоре, так как это чревато значительным снижением производительности системы. Многопроцессорные системы требуют более сложных механизмов синхронизации, которые будут подробнее описаны в главе 7.

2.6. Планирование процессов Центральный процессор представляет собой ресурс, который используется всеми процессами системы. Часть ядра, распределяющая процессорное время между процессами, называется планировщиком (зсЬег)ц1ег). В традиционных системах 1Л»11Х планировщик использует принцип вытесняюи~го циклического планирования. Процессы, имеющие одинаковые приоритеты, будут выполняться циклически друг за другом, и каждому из них будет отведен для зтого определенный период (квант) времени, обычно равный 100 миллисекундам.

Если какой-либо процесс, имеющий более высокий приоритет, становится выполняемым, то он вытеснит текущий процесс (конечно, если тот не выполняется в режиме ядра) даже в том случае, если текущий процесс не исчерпал отведенного ему кванта времени. В традиционных системах (11м'1Х приоритет процесса определяется двумя факторами: фактором «любезности» и фактором утилизации. Пользователи ' Под словом «многопроцессорных», автор, видимо, имел в виду двухпроцессорную систему,— Прим.

ред. 82 Глава 2. Ядро и процессы Таблица 2.2, Приоритеты сна е ОС 4.3ВВО Оы!Х Приоритет Значение Описание Свопинг Страничный демон Другие действия по обработке памяти Ожидание освобождения 1побе Ожидание дискового ввода-вывода Ожидание освобождения буфера Базовый приоритет Ожидание ввода с терминала Ожидание вывода с терминала Р5У2Р Р51УР» 1 Р51УР + 1/2/4 Р1КОО РК1810 РК1810+ 1 Р2ЕКО ТПРК1 !/2/4 10 20 21 28 28 29 ТТОРК1 ' Из-за отказа операционной системы его обслуживать. — Прим. дед, могут повлиять на приоритет процесса при помощи изменения значения его «любезности», используя системный вызов п1се (но только суперпользователь имеет полномочия увеличивать приоритет процесса).

Фактор утилизации определяется степенью последней (то есть во время последнего обслуживания процесса процессором) загруженности СРТ) процессом. Этот фактор позволяет системе динамически изменять приоритет процесса. Ядро системы периодически повышает приоритет процесса, пока тот не выполняется, а после того, как процесс все-таки получит какое-то количество процессорного времени, его приоритет будет понижен. Такая схема зашищает процессы от «зависания»', так как периодически наступает такой момент, когда ожидающий процесс получает достаточный уровень приоритета для выполнения. Процесс, выполняюшийся в режиме ядра, может освободить процессор в том случае, если произойдет его блокирование по событию или ресурсу. Когда процесс снова станет работоспособным, ему будет назначен приоритет ядра.

Приоритеты ядра обычно выше приоритетов любых прикладных задач. В традиционных системах Т)й11Х приоритеты представляют собой целые числа в диапазоне от О до 127,причем чем меньше их значение, тем выше приоритет процесса (так как система Т)М1Х почти полностью написана на языке С, в ней используется стандартный подход к началу отсчета от нуля). Например, в ОС 4.3ВБВ приоритеты ядра варьируются в диапазоне от О до 49, а приоритеты прикладных задач — в диапазоне от 50 до 127. Приоритеты прикладных задач могут изменяться в зависимости от степени загрузки процессора, но приоритеты ядра являются фиксированными величинами и зависят от причины засыпания процесса.

Именно по этой причине приоритеты ядра также известны как приоритеты сна. В табл. 2.2 приводятся примеры таких приоритетов для операционной системы 4.ЗВБР ТЛь11Х. Более подробно работа планировщика будет изложена в главе 5. 2.7. Сигналы 83 Приоритет Значение Описание Ожидание завершения процесса-потомка Консультативное ожидание блокированного ресурса Ожидание сигнала 30 35 РВА1Т РЕОЕК Р5ЕЕР 40 2.?.

Сигналы Для информирования процесса о возникновении асинхронных событий или необходимости обработки исключительных состояний в системе Т)Х1Х используются сигналы. Например, когда пользователь нажимает на своем терминале комбинацию клавиш СЕТ1+С, процессу, с которым пользователь в данный момент интерактивно работает, передается сигнал 5161МТ.

Когда процесс завершается, он отправляет своему процессу-родителю сигнал 516СНС0. В ОС 1)М1Х поддерживается определенное количество сигналов (31 в 4.3ВБР и 5"у'КЗ). Большинство из них зарезервированы для специальных целей, однако сигналы 5160581 и 5161)5й2 доступны для использования в приложениях в произвольном назначении.

Сигналы используются для многих операций. Процесс может выслать сигнал одному или нескольким другим процессам, используя системный вызов К116 Драйвер терминала вырабатывает сигналы в ответ на нажатия клавиш или происходящие события для процессов, присоединенных к нему. Ядро системы вырабатывает сигналы для уведомления процесса о возникновении аппаратного исключения или в случаях возникновения определенных ситуаций, например превышения квот.

Каждый сигнал имеет определенную по умолчанию реакцию на него, обычно это завершение процесса. Некоторые сигналы по умолчанию игнорируются, а небольшая часть из них приостанавливает процесс. Процесс может указать системе на необходимость иной реакции на сигналы, отличной от заданной по умолчанию. Для этого используется вызов ейдпа1(5узтеш Ч), 51дуес (ВБР) или 51дасйоп (РО51Х.1). Действия, отличные от принятых по умолчанию,могут заключаться в запуске обработчика сигнала, определенного разработчиком приложения, его игнорировании, а иногда и в процедурах, противоположных тем, что производятся в обычных случаях.

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

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

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

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