Разработчикам приложений предложен выбор приемлемого соотношения прикладных средств и возможностей, предоставляемых ядром системы.
Единственная проблема, с которой им придется столкнуться, это различия в наборах системных вызовов для создания и управления нитями, предлагаемые в различных операционных системах, что затрудняет написание переносимого многонитевого кода, который бы эффективно использовал системные ресурсы. Стандарт POSIX 1003.4а определяет функции нитевой библиотеки, однако в нем не описываются интерфейсы или реализации для ядра.
Также может иметь смысл заглянуть на сайт 777kazino.ru, ведь именно там можно узнать много нового на тему http://777kazino.ru/fruit-cocktail/. Тема fruit cocktail может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт 777kazino.ru, и тема fruit cocktail начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема fruit cocktail очень подробно представлена на сайте 777kazino.ru. Трудно найти более детальное освещение темы fruit cocktail чем это сделано на сайте 777kazino.ru. Спасибо сайту 777kazino.ru за такое доскональное преподнесение темы fruit cocktail.
Упражнения
1. Для каждого из перечисленных ниже приложений проанализируйте пригодность использования легковесных процессов, прикладных нитей или иных программных моделей:
♦ серверный компонент распределенной службы имен;
♦ оконная система, такая как X server;
♦ научное приложение, работающее на многопроцессорной системе и производящее большое количество параллельных вычислений;
+ утилита make, которая компилирует файлы параллельно по мере возможности.
2. В каких ситуациях применение нескольких процессов в приложении будет более оправдано, нежели использование LWP или прикладных нитей?
3. Почему каждому LWP необходим отдельный стек ядра? Может ли система экономить ресурсы, создавая стек ядра только в тех случаях, когда LWP делает системный вызов?
4. Структура ргос и область и содержат атрибуты и ресурсы процесса. Какие из полей этих структур в многонитевых системах можно разделить между всеми LWP процесса, а какие из них должны существовать для каждого LWP отдельно?
5. Представьте, что LWP вызывает fork в тот момент времени, когда другой LWP, принадлежащий тому же процессу, вызывает exit. Что произойдет в результате, если система использует fork для дублирования всех LWP процесса? Что случится, если вызов fork будет дублировать только один (вызывающий fork) LWP?
6. Возникнут ли какие-нибудь проблемы с вызовом fork в многонитевой системе, поддерживающей его как единый вызов, атомарно совмещающий fork и ехес?
7. Раздел 3.3.2 описывает проблемы, возникающие при использовании единого разделяемого набора ресурсов, таких как дескрипторы файлов или текущий каталог. Почему не следует эти ресурсы предоставлять отдельно для каждого легковесного процесса или прикладной нити? Более подробно поднятая проблема исследуется в [3].
8. Стандартная библиотека определяет для каждого процесса переменную errno, содержащую код ошибки, возвращенный последним сделанным системным вызовом. Какие проблемы это может создать в много- нитевом процессе? Каким образом их можно преодолеть?
9. Во многих системах библиотечные функции подразделяются на нитезащищенные и нитенезащищенные. К чему может привести использование функции, которая не защищена при использовании в многонитевых приложениях?
10. Перечислите недостатки использования нитей для запуска в них обработчиков прерываний.
11. Какие вы видите недостатки в планировании выполнения LWP посредством ядра?
12. Предложите интерфейс, который позволил бы управлять планированием и выбирать, какой из LWP первым отправится на выполнение. К возникновению каких проблем это может привести?
13. Сравните базовые многонитевые элементы в системах Solaris и Digital UNIX. Какие преимущества имеются у каждого из них?
Опубликовал katy
July 03 2015 16:10:13 ·
0 Комментариев ·
3114 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.