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

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

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

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

Нити и легковесные процессы ляя нить Н1. В итоге перегрузка, вызываемая полной инициализацией нити, ограничивается случаями, когда нить прерывания должна заблокироваться. Возврат из прерывания Произошло прерывание Нз ® — В, Обрвбогпчик Пуп нитей прерывания зз Рис. 3.9. Использование нитей для обработки прерываний Реализация обработки прерываний через нити несколько увеличивает загруженность системы (на Браге зто порядка 40 инструкций). С другой стороны, такой подход избавляет от необходимости блокирования прерываний для каждого объекта синхронизации, что каждый раз экономит порядка 12 инструкций. Так как операции синхронизации являются более частыми, чем прерывания, общим результатом применения вышеописанного метода является увеличение производительности системы, поскольку прерывания блокируются не так часто.

3.6.6. Обработка системных вызовов В системе Бо!аг!з вызов 1ог!г дублирует каждый?ЖР родителя для создаваемого потомка. Любые легковесные процессы, находящиеся в состоянии выполнения какого-либо системного вызова, вернутся с ошибкой НМТй. В ОС Бо)аг!з предлагается дополнительный системный вызов (ог!г1, который похож на (ог!г, но клонирует только ту нить, которая его вызвала. Вызов 1ог!г1 удобен в тех случаях, когда процесс-потомок вскоре собирается запустить новую программу. Решение проблемы одновременных произвольных операций ввода-вывода над файлом сведено в Яо)аг)з 2.3 к добавлению системных вызовов ргеаг! и рвгпте, которые принимают в качестве аргументов смещение в файле. К сожалению, система не предоставляет аналогичных вызовов, заменяющих геаг!у и угг!теу, которые осуществляют ввод-вывод методом сборки-разъединения (зсаггег-айаг)тег 1ггО, подробнее см. в разделе 8.2.5).

В заключение упомянем о том, что система Бо)аг!з предлагает богатый набор программных интерфейсов с ранее описанной двухуровневой моделью. З.г. Нити в системе Масп 129 Поддержка прикладных нитей совместно с легковесными процессами дает возможность разделять то, что видит разработчик приложения, и то, как это представлено в системе. Программист может создавать приложения, изначально используя только нити, и далее оптимизировать их путем манипуляции с содержащими зти нити легковесными процессами, добиваясь необходимой степени одновременности для данного приложения. 3.7.

Нити в системе Масп Операционная система МасЬ изначально создавалась многонитевой. МасЬ поддерживает нити как на уровне ядра, так и при помощи библиотек прикладного уровня. Система предлагает дополнительные механизмы для управления функционированием нитей на разных процессорах многопроцессорных систем. ОС МасЬ поддерживает семантику 4,3ВБР (ЛЧ1Х на уровне программного интерфейса полностью, включая все системные вызовы и библиотеки'. Этот раздел описывает реализацию нитей в системе МасЬ. Следующий раздел расскажет о системном интерфейсе Ия1Ы (ЛЧ1Х вЂ” системы, основанной на МасЬ. В разделе 3.9 вы увидите описание нового механизма под названием продолжений (сопВпцаВопз), впервые представленного в МасЬ 3.0.

3.7.1. Задачи и нити а системе Мас11 Ядро МасЬ поддерживает два фундаментальных элемента системы: задачу и нить 122~. Задана — это статический объект, занимающий адресное пространство и набор системных ресурсов, называющихся правами порта (см. раздел 6.4.1). Сама по себе задача является не выполняемым объектом, а средой, в которой может выполняться одна или большее количество нитей. Нить является основным выполняемым элементом, функционирующим в контексте задачи. Задача может содержать ноль и более нитей, каждая из которых разделяет ее ресурсы.

Нить обладает стеком ядра, используемым для обработки системных вызовов. Она также имеет собственные переменные состояния, такие как указатели команд и стека, регистры общего назначения и т. д. Планирование нитей на выполнение процессором происходит независимо. Нити, относящиеся к прикладным задачам, эквивалентны легковесным процессам. Нити ядра, используемые ядром, относятся к задачам ядра. Система МасЬ также поддерживает наборы процессоров, которые более подробно описаны в разделе 5.7.1. Все процессоры, доступные системе, могут быть поделены на не перекрывающие друг друга наборы.

Каждая задача или нить может быть связана с любым набором процессоров (большинство опе- ' Система Маса версии 2.5 поддерживает функции 4.3ВБР на уровне ядра. Версия 3Д реализует зтн функции в виде серверной программы на прикладном уровне. 130 Глава 3. Нити и легковесные процессы раций над наборами процессоров требуют привилегий суперпользователя). Такой подход позволяет назначить несколько процессоров многопроцессорной системы для выполнения одной или более определенных задач. Это гарантирует доступность ресурсов для наиболее приоритетных задач. Структура 1ай описывает задачу и хранит следующую информацию: + указатель на карту адресации, описывающую виртуальное адресное пространство задачи; + заголовок списка нитей, относящихся к задаче; + указатель на набор процессоров, с которым связана задача; + указатель на структуру о1ай (см.

раздел 3.8.1); + порты и другую информацию, относящуюся к межпроцессному взаимодействию (1РС, см. подробнее в разделе 6.4). Ресурсы, удерживаемые задачей, совместно используются всеми ее нитями. Каждая нить описана структурой гпгеаг1, содержащей: + связь нити с очередью планировщика или очередью ожидания; + указатели на тай и на набор процессоров, к которому относится нить; + связь нити со списком всех нитей задачи и со списком всех нитей набора процессоров; + указатель на блок управления процессом (РСВ), содержащий сохраненный контекст регистров; + указатель на стек ядра; + состояние выполнения (пзтовый к работе, спящий, блокированный и т. д.); + информацию для планировщика, такую как приоритет, правила планирования и данные по использованию процессора; + указатели на связанные с нитью структуры а1пгеад и н1ай (см. раздел 3.8.1); + информацию об 1РС, относящуюся к нити (см.

подробнее в разделе 6.4.1). Задачи и нити играют дополняющие друг друга роли. Задача владеет ресурсами системы, включая адресное пространство. Нить выполняет код. Процесс в традиционной системе 1ЛЧ1Х представляет собой задачу, содержащую единственную нить. Многонитевый процесс состоит из одной задачи и некоторого количества нитей. Система МасЬ предлагает набор системных вызовов для работы с задачами и нитями. Вызовы 1ай сгеаге, газ1 1еппгпаге, 1ай зозрепд и гай гезщпе используются для работы с задачами. Вызовы гпгеад сгеаге, гпгеад гегпппа1е, тпгеад зозрепд и 1пгеад гезогпе выполняют операции над нитями.

Название каждого вызова красноречиво самодокументирует выполняемые им действия. Вдобавок к перечисленным вызовам имеются вызовы тпгеаб зга1оз и 1пгеад гпига1е для чтения и изменения состояния регистров нити, а вызов 1ай гвгеай возвращает список всех нитей задачи. 3.7. Нити в системе Масв 131 3.7.2. Библиотека С-Югеаба Система МасЬ содержит библиотеку С-1Ьгеа(гз, которая обеспечивает простой интерфейс для создания и управления нитями.

Например, функция сГПгеа() Г стьгеа() гоп~ (чо)г) (*топо)(). чоЫ" агд); создает новую нить, в которой будет запущена функция ТцпсО. Нить может вызвать чоЫ* сГПгеао до)п (сГПгеао т Т); для приостановки своей работы до тех пор, пока не закончит функционирование нить Т. В вызывающий код нити вернется значение функции верхнего уровня нити Т или код выхода, выработанный после выполнения нитью Т функции с(Ьгеа() ехй(). Библиотека С-гйгеай поддерживает взаимные исключения и условные переменные с целью осуществления синхронизации.

В библиотеке имеется функция с(Ьгеа(1 у(еЫ(), которая запрашивает планировщик на разрешение выполнения другой нити вместо себя. Такая функция необходима только в случаях применения сопрограмм, описанных ниже. Существуют три различных реализации библиотеки С-(Ьгеа((з. Разработчик приложения может использовать вариант, наиболее отвечающий перечисленным ниже требованиям к разрабатываемому продукту. + Приложение основано на сопрограммах (согопг(пе-Ьазе(1), где прикладные нити мультиплексируются в однонитевую задачу (процесс ())ч(1Х).

Такие нити являются не вытесняемыми, библиотека выполнит переключение в другую нить только в случае выполнения процедур синхронизации (когда текущая нить должна быть блокирована на взаимном исключении или семафоре). Помимо этого библиотека полагается на нити, вызывающие функцию с(Ьгеа(( у(еЫО, что защитит другие нити от долгого «стояния» в очереди. Эта реализация библиотеки подходит для отладки, так как порядок переключения контекста нитей является повторяемым.

+ Приложение основано на нитях (гЬгеа((-Ьазе(1), каждая нить С-гЬгеа() использует отдельную нить, поддерживаемую ядром МасЬ. Такие нити являются вытесняемыми и могут выполняться на многопроцессорных системах параллельно. Эта реализация является стандартной и используется для разработки различных вариантов программ, базирующихся на нитях С-1Ьгеад. + Приложение основано на задачах (гази-Ъазе()), где используется одна задача, поддерживаемая ядром МасЬ (процесс ())ч)1Х) на каждую нить С-(Ьгеа().

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

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

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

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