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

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

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

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

3.4. Нитевые библиотеки прикладного уровня При разработке пакетов функций для работы с прикладными нитями необходимо найти ответы на следующие два важных вопроса: какого рода программный интерфейс библиотеки будет представлен программисту и как такой пакет ' До определенного установленного лимита. В системе 5НВ4 размер стека ограничивается значением переменной йЫМП МОЕ11Е. Эта переменная содержит жесглане и мягкие границы.

Для получения значения границ применяется системный вызов йеггйю11. При помощи вызова зетг11пйт можно уменьшить жесткий лимит, а также уменьшить или увеличить мягкую границу до значения, не превышающего жесткий лимит. г Некоторые многонитевые системы, например 5ЧК4.2/МР, имеют средства, позволяющие автоматически увеличивать стек прикладной нити. з Помещаемые в стек данные попадут в область стоящей за стеком страницы. — Прим.

ред. 4 Конечно, такой сигнал должен обрабатываться в специальном стеке, раз уже обычный стек не имеет свободного места для функционирования обработчика сигнала. В современных системах \)Н!Х существуют способы задания приложением альтернативного стека для обработки сигналов (см. подробнее в разлеле 4.5). 3.4.

Нитевые библиотеки прикладного уровня 117 может быть реализован при помощи средств, предлагаемых конкретной операционной системой. Существуют различные варианты нитевых библиотек, например Спогцз 121, Торах [23~ и С-Йгеаг1з ОС МасЬ 17]. Группой Р1003.3а 1ЕЕЕ стандартов РОБ1Х было разработано несколько предварительных вариантов пакета функций для работы с нитями под названием ргйгеай 113~. Современные системы 01ч1Х должны поддерживать ртйгеа8з для совместимости с этими стандартами (см.

подробнее в разделе 3.8.3). 3.4.1. Программный интерфейс Интерфейс, обеспечиваемый пакетами функций для работы с нитями, должен обладать несколькими важными средствами. Он должен поддерживать большой набор различных операций над нитями, таких как: + создание и уничтожение нитей; + перевод нитей в режим ожидания и их восстановление в работоспособное состояние; + назначение приоритетов для отдельных нитей; + планирование выполнения нитей и переключение контекста„ + синхронизацию действий при помощи таких средств, как семафоры или взаимные исключения; + обмен сообщениями между нитями. Пакеты функций для работы с нитями должны по возможности минимизировать участие ядра, так как переключение между режимом задачи и режимом ядра может быть весьма затратной процедурой. Поэтому нитевые библиотеки предоставляют столько возможностей, сколько могут.

Обычно ядро системы не обладает информацией о прикладных нитях, однако нитевые библиотеки могут использовать системные вызовы для реализации ряда своих возможностей. Из этого вытекает ряд важных моментов. Например, приоритет нити не имеет никакого отношения к приоритету процесса или ЕЪ'Р этой нити, назначенному в расписании ядра. Приоритет нити имеет смысл только внутри своего процесса и используется планировщиком нитей для выбора одной из них на выполнение.

3.4.2. Реализация нитевых библиотек Реализация конкретной библиотеки зависит от средств многонитевости, предоставляемых ядром системы. Многие существующие пакеты функций для работы с нитями созданы для традиционных вариантов П~ПХ, вообще не имеющих специальной поддержки нитей. В таких системах нитевые библиотеки функционируют как миниатюрные ядра, обрабатывая самостоятельно всю информацию о состоянии каждой нити и производя все операции над 118 Глава 3. Нити и легковесные процессы ними на прикладном уровне. Хотя этот подход обеспечивает довольно эффективную последовательную обработку, он дает и некоторую степень одновременности при использовании средств асинхронного ввода-вывода системы, Во многих современных системах ядро поддерживает многонитевые процессы через 1.ЮР. В таком случае библиотеки прикладных нитей могут быть реализованы различными способами: + Каждой нити назначается свой легковесный процесс.

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

+ Связанные и несвязанные нити смешиваются в одном процессе. Такой вариант дает возможность приложению полностью использовать параллельность и одновременность, предоставляемые системой. Он также позволяет обрабатывать преимущественно связанные нити посредством повышения уровня приоритетов 1.ЮР, их содержащего, или вообще давая их 1.ЖР эксклюзивное право на пользование процессором. О связанных и несвязанных нитях подробнее в разделе 3.6.3. Нитевая библиотека содержит алгоритм планирования, по которому выбирается очередная нить для выполнения. Он обрабатывает приоритеты и состояния каждой нити, не зависящие от состояния или приоритета 1ЛЧР, внутри которого находятся эти нити. На рис. 3.7 показан пример шести прикладных нитей, мультиплексированных в два )ИР.

Библиотека планирует выполнение по одной нити в каждом 1.ЖР. Такие нити (в данном случае Н5 и Нб) находятся в выполняющемся состоянии, даже если сам легковесный процесс, их содержащий, был заблокирован системным вызовом или был вытеснен и находится в ожидании своей очереди на выполнение. Нить (такая как Н1 или Н2 на рис. 3.7) изменяет свое состояние на блокированное в том случае, если попытается использовать объект синхронизации, заблокированный другой ни~ью. После освобождения объекта библиотека разблокирует нить и переведет ее в очередь на выполнение. Нити НЗ и Н4 уже находятся в состоянии готовности и ожидают своей очереди на выполнение. Планировщик нитей выбирает на выполнение нить из этой очереди, исходя из приоритета и связанного с ней ?ЖР. Этот механизм очень схож с алгоритмами планирования и ожидания ресурсов ядра. Как уже говорилось ранее, нитевая библиотека функционирует как миниатюрное ядро для нитей, которыми управляет.

3.5. Активации планировщика 119 Блокированные нити Горюя ые к выполнению нити Выполняющиеся нити окированный Ьиср Выполняющий 'с'ккР Рис. 3.7. Состояния прикладных нитей Более подробно о реализациях прикладных нитей можно прочесть в [9[, [18~ и [20[. 3.5. Активации планировщика В двух предыдуших разделах описывались преимущества и недостатки легковесных процессов и прикладных нитей. Ни одна из приведенных моделей не является полностью удовлетворительной. Разработчики хотят сочетать производительность прикладных нитей и их гибкость.

Однако такие нити имеют меньшую функциональность, чем легковесные процессы, поскольку не имеют интеграции с ядром системы. В [1) описывается совершенно новая архитектура нитей, в которой используются преимущества обеих моделей. Эта архитектура получила признание среди специалистов по операционным системам и появилась в коммерческих реализациях механизмов нитей от таких производителей, как БОР [41. Основной принцип новой модели заключался в тесной интеграции прикладных нитей и ядра.

Ядро отвечает за выделение процессора, а нитевая ' З111соп Сгара1са. — Прим. ред. 120 Глава 3. Нити и легковесные процессы библиотека — за планирование. Библиотека информирует ядро системы о событиях, которые требуют выделения процессора. Она может запросить либо дополнительные процессоры, либо оставить свой текущий. Ядро полностью контролирует использование процессоров и может периодически «забирать» процессоры, предоставляя их другим процессам. Библиотека, получив некоторые процессоры, всецело контролирует нити и планирует их выполнение на этих процессорах. Если ядро забирает один из процессоров, то оно проинформирует об этом библиотеку, которая пере- назначит нити соответствующим образом. Если нить блокируется в ядре, процесс не потеряет занимаемый им процессор.

Ядро сообщит об этом факте библиотеке, которая немедленно поставит на выполнение другую прикладную нить на тот же самый процессор. Для реализации описываемой модели необходимо ввести два новых понятия — обратного вызова (црса11) и активации планировщика (зсЬедц!ег асг1чаг1оп). Обратный вызов — это вызов, сделанный ядром системы в нитевую библиотеку. Активация планировщика — контекст выполнения, который может быть использован для выполнения прикладной нити. Он подобен 1 ЮР и имеет собственный стек в пространстве процесса и стек ядра. Когда ядро осуществляет обратный вызов, оно передает в библиотеку активацию, которая будет использована для обработки события, выполнения новой нити или для какого-либо системного вызова.

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

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

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

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