Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 42

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 42 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 422019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В этом разделе мы подробно рассмотрим роль потоков выполненияв распределенных системах и объясним, почему они так важны. Дополнительнуюинформацию о потоках выполнения и о том, как они используются для построе­ния приложений, можно найти в [263, 439].3.1.1.

Знакомство с потоками выполненияДля понимания роли потоков выполнения в распределенных системах важно по­нять, что такое процесс и как соотносятся между собой процессы и потоки вы­полнения. Для выполненрш программ операционная система создает нескольковиртуальных процессоров, по одному для каждой программы.

Чтобы отслежи­вать эти виртуальные процессоры, операционная система поддерживает таблицупроцессов {process table), содержащую записи для сохранения значений регистровпроцессора, карт памяти, открытых файлов, учетных записях пользователей, при­вилегиях и т. п. Процесс {process) часто определяют как выполняемую программу,то есть программу, которая в настоящее время выполняется на одном из вирту­альных процессоров операционной системы. Следует отметить, что операцион­ная система уделяет огромное внимание гарантиям того, чтобы эти независимыепроцессы по злому умыслу или ненамеренно не нарушили правильную работудругих процессов.

Другими словами, тот факт, что множество процессов совмест­но используют один и тот же процессор и другие аппаратные ресурсы, прозрачен.Обычно для того, чтобы подобным образом отделять процессы друг от друга, опе­рационной системе требуется аппаратная поддержка.Прозрачность параллельной работы обходится довольно дорого. Так, напри­мер, каждый раз при создании процесса операционная система должна создавать166Глава 3. Процессыабсолютно независимое адресное пространство. Выделение памяти требует ини­циализации сегмента памяти, например, путем обнуления сегмента данных, ко­пирования соответствующей программы в сегмент кода и помещения в стек вре­менных данных.

Переключение процессора между двумя процессами — такжедовольно дорогостоящая операция. Кроме сохранения контекста процессора (в ко­торый входят значения регистров, счетчик программы, указатель на стек и т. п.)операционная система должна также изменить регистры блока управленияпамятью (Memory Management Unit, MMU) и объявить некорректным содержи­мое кэша трансляции адресов, например ассоциативного буфера страниц (Trans­lation Lookaside Buffer, TLB). Кроме того, если операционная система поддерживаетбольше процессов, чем может одновременно поместиться в оперативной памя­ти, перед действительным переключением с одного процесса на другой можетпотребоваться подкачка {swapping) процессов между оперативной памятью идиском.Поток выполнения очень похож на процесс, в том смысле, что он также мо­жет рассматриваться как программа, выполняемая на виртуальном процессоре.Однако в отличие от процесса не следует пытаться достичь высокой степенипрозрачности параллельного выполнения потоков, поскольку это приводит к па­дению производительности.

Тем не менее система потоков выполнения обычнообеспечивает лишь тот минимум информации, который позволяет совместно ис­пользовать процессор для различных потоков выполнения. В частности, кон­текст потока выполпепия {thread context) нередко содержит просто контекстпроцессора и некоторую другую информацию, необходимую для управления по­током выполнения. Так, например, система потоков может отслеживать факт бло­кировки потока переменной мьютекса и вытекающую из этого невозможностьпереключения на выполнение такого потока. Информация, не являющаяся абсо­лютно необходимой для управления многочисленными потоками, обычно игно­рируется. По этой причине задача защиты данных в потоках выполнения одногопроцесса от несанкционированного доступа возлагается на разработчиков при­ложения.У подобного подхода имеется два аспекта.

Во-первых, высокая производи­тельность многопоточных приложений достижима с гораздо меньшими усилия­ми, чем в случае их однопоточного аналога. На самом деле многопоточные систе­мы обычно дают выигрыш в производительности. Во-вторых, поскольку потокивыполнения одного процесса не защищаются автоматически друг от друга, раз­работка многопоточных приложений требует дополнительных интеллектуальныхусилий. Обычно хорошо помогает правильное проектирование и ясность мысли.К сожалению, текущая практика показывает, что эти принципы не всегда вос­принимаются должным образом.Потоки выполнения в нераспределенных системахДо того как мы примемся обсуждать роль потоков выполнения в распределенныхсистемах, рассмотрим сначала, как они используются в системах обычных, нерас­пределенных. Многопоточные процессы способны принести определенные выго­ды, повышающие популярность систем с их поддержкой.3.1. Потоки выполнения167Наиболее важное преимущество вытекает из того факта, что процессы с од­ним потоком выполнения целиком блокируются при любом блокирующем сис­темном вызове.

В качестве иллюстрации рассмотрим какое-либо приложение,например электронные таблицы. Представим себе, что пользователь хочет по­стоянно изменять значения ячеек в интерактивном режиме. Важным свойствомэлектронных таблиц является поддержка функциональных зависимостей междуразличными ячейками таблицы или различными таблицами. Таким образом, ка­ждый раз при модификации ячейки все ячейки, связанные с ней, автоматическиобновляются. После того как пользователь изменит значение одной из ячеек,внесенное PIM изменение вызовет значительный объем вычислений. Если мы бу­дем работать только с одним потоком выполнения, во время ожидания ввода этивычисления окажутся невозможными. Точно так же нелегко будет организоватьввод в процессе вычислений.

Самым простым решением было бы создать какминимум два потока выполнения — один для поддержания работы с пользовате­лем, другой для обновления таблиц.Другим преимуществом многопоточности является возможность обеспече­ния параллелизма выполнения программ в мультипроцессорной системе. В этомслучае каждый поток выполняется на своем процессоре, а совместно используе­мые данные размещаются в общей (разделяемой) памяти. При правильном про­ектировании подобный параллелизм может быть прозрачным, процесс будетработать так же хорошо и в однопроцессорной системе, разве что немного мед­леннее. Многопоточная структура в связи с доступностью относительно недорогихмультипроцессорных рабочих станций становится все важнее в плане поддерж­ки параллельного выполнения. На подобных компьютерных системах обычно ра­ботают серверы в приложениях клиент-сервер.Многопоточная структура часто используется при построении больших при­ложений.

Подобные приложения часто разрабатываются в виде наборов совме­стно работающих программ, каждая из которых выполняется отдельным процес­сом. Этот подход типичен для среды UNIX. Кооперация между программамиреализуется в виде межпроцессного взаимодействия (через механизмы IPC).Для UNIX-систем эти механизмы обычно включают в себя каналы (ршенованные), очереди сообщений и совместно используемые сегменты памяти [436]. Ос­новной оборотной стороной механизмов IPC является необходимость интенсив­ного переключения контекстов, продемонстрированная тремя точками на ppic. 3.1.Поскольку IPC требует вмешательства в ядро, процесс обычно вынужденсначала переключиться из пользовательского режима в режим ядра (точка S1 нарисунке).

Это требует изменения карты памяти в блоке MMU, а также сбросабуфера TLB. В ядре происходит переключение контекста процесса (точка 52),после чего второй процесс может быть активизирован очередным переключени­ем из режима ядра в пользовательский режим (точка S3). Последнее переключе­ние вновь потребует изменения карты памяти в блоке MMU и буфера сбросаTLB.Вместо использования процессов приложение может быть построено так,чтобы различные части выполнялись в отдельных потоках. Связь между этимичастями обеспечивается только через разделяемую память. Переключение между168Глава 3.

Процессыпотоками выполнения может происходить исключительно в пространстве поль­зователя, хотя в некоторых реализациях за потоки выполнения отвечает (управ­ляет ими) ядро. Результатом может быть значительное повышение производи­тельности.S1: переключениеиз пространствапользователяв пространство ядраS3: переключениеиз пространства ядрав пространство пользователяS2: переключение контекстаиз процесса А в процесс ВРис. 3 . 1 .

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

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

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