В. Столлингс - Операционные системы (1114679), страница 136
Текст из файла (страница 136)
Новый процесс получает данные, аргументы или информацию из стека— все, что нужно для его работы. Если код программы находится в основной памяти в измененном, по сравнению с дисковым, состояни, ри то он копиоуется из памяти; в противном случае копирование осуществляется из глобальной файловой системы. 4. Исходный процесс получает сигнал о завершении переноса, после чего отправляет новому процессу завершающее сообщение и самоуничтожается.
' " ~~~циатором переноса процесс развиваются аналогично. П другои пРоцесс, соб ытия "о' отличие состоит в том „ "" пр ""' должен быть прио,тан в овлен и должен пер состоянии системе Яргйе 1ВОХЖ89). а со людается, например, в операционной включая а и В приведенном выше сценарии перенос процесса а происходит динамично чая различные действия по переносу образа пр . Е оцесса. ели же перенос т цесса не является самопроизвольным, а его ин ц го инициатором выступает другой п цесс, возможен другой подход, описанный в 13М1Т89, П и ри таком подходе образ процесса и все его адресное пространство копируется в Файл, п о есс ется, файл с помо ью с тся в а л, процесс уничтожащь соответствующего средства передачи коп гую машину, а затем процесс воссозд тс Ф Г ируется на ается из а ~ла на новой машине. ДРУ- Согласование переноса П уго аспект миграции процессов связан с принятием шен й некото ых сл ятием решения о переносе.
В р учаях это решение является односторонним. Нап а исхо ит с м. ример, если перенос ро д с целью выравнивания нагрузки, то предназначенный для этого ляющий модуль отслеживает относительную н ые ную нагрузку, приходящуюся на различные машины, и при необходимости осуществля . Есл нос используется для того, чтобы п ет перенос. и само изволь про льный передля того, ч ы процесс мог получить доступ к особым средствам или к большим аленны цесс. Однако в не уд м Файлам, то решение о переносе может и и ринять сам пронекоторых распределенных системах в принятии по обного может инимать с пр участие система, на которую собирается перейти и есс. О ~и под ного решения из причин этого является пере процесс.
дной желание сохранить время отклика на запросы о ля на прежнем овне. П ы пользоватеуровне. Редположим, например, что пользователь выполня торые операции на рабочей станции. и ь выполняет неко- систему то в мя ее на ра че станции. Если какие-то процессы будут перенесены в его по ре отклика может заметно вырасти даже сл . й лнен с целью выравнивания нагрузки.
Ф е и тако перенос вы- Ф. Примером механизма согла низм, встречаю иися сования переноса процесса может послужить мехатре щ ися в операционной системе СЬаг1оИ(е 1ИХК89, АВТ889Ь). С атегией переноса ведает служебная и трате- программа 81аг1ег, которая принимает решения о том, какой процесс подлежит пе реносу, когда и куда его нужно переносить. Эта слУжебная программа али ре зована в виде процесса, который, кроме того, несет ответственность за долгое чное плани анирование и за распределение памяти, и поэтому она может координи вать с а ро стратегии сразу в трех областях.
Каждый процесс программы 31аг(ег может управлять класте у равлять кластером машин. 81аг1ег регулярно получает от ядра довольно под б стати ро ную стику о загрузке каждой машины кластера. Решение о переносе должно и д но приниматься совместно двумя процессами программы 3(аг(ег, один из кото ых в узле назначения ис. 14. рых выполняется на исходном узле, а другой — на (Р ° .2).
При этом выполняются такие шаги. 1. . 31агФег, управляю ий исх щ ходной системой я, принимает решение о целесообразности переноса п о е р цесса Р в какую-то другую систему 1). Он отправля ет процессу 81агФег в с 2. истеме 1) сообщение с запросом на перено с. - Если 81аг$ег системы В готов тов принять новый процесс, он отвечает согласием- 3- Ыаг1ег системы 3 пе е а т 3. р д ет это решение ядру своей системы с помощью вызова сервиса (если он выполняется ется на системе 3) или с помощью сообщения которое отправляется процессу КегпЛоЬ (КЮ) машины 8 (если данный про- 'Часть 6.
Распределенные системы ~лава 14. у ° ~ранление Распределенными процес граммный стартер выполняется на другой машине). К) — это процесс, который используется для преобразования сообщений, поступивших от удаленных процессов, в вызовы сервисов. 4, Затем ядро машины Я Формирует предложение по поводу пересылки процесса системе В. Это предложение включает в себя статистику процесса Р !',его возраст, загрузку процессора и интенсивность обмена инФормацией). 5. Если в системе Ю недостаточно ресурсов, она может отклонить предложение В противном случае ядро системы В передает это предложение своей программе Я$аг1ег, которая получает всю информацию, постутшвшую от системы Я. 6. Система Ю извещается о решении, принятом в результате выполнения соответствующего алгоритма программы ЯФаг$ег, с помощью вызова Н1!) ге е Хп. 7.
В системе 1) выделяются необходимые ресурсы в целях избежания взаимоблокировок и проблем, связанных с управлением потоками, после чего система Я извещается о том, что ее процесс будет принят. 2. Да, он будет переме!цен на мац!ину З ! ! ! ! ! ! ! 5; Предпожение процесса Р !, б: Прием процесса Р ! 3: Передана процесса Р ! ! ! ! ! ! 2 4 Предяожениепроцессар ! ! ! 3 7: Принятие предложения Рис. 14.2.
Согласовакие переноса вроцесса На рис. 14.2 показаны два других процесса, А и В, которые имеют откры-! тые связи с процессом Р. После выполнения описанных выше действий машина 1, на которой находится система Я, должна отправить машинам О и 2 сообщение, о необходимости обновления связей, чтобы сохранить связи процесса Р с процес-- сами А и В.
В этом сообщении указывается новый адрес каждой связи, содер-, жащейся в процессе Р. В целях синхронизации ядра-адресаты должны ответить подтверждением. После этого все сообщения, соответствующие любой из связей-': процесса Р, пересылаются непосредственно в систему Э. Обмен сообщениями, выполняющийся с целью обновления связей, может выполняться параллельно с описанными выше шагами. Наконец, после выполнения шага 7 и после обновле-' ния всех связей система Я собирает весь контекст процесса Р в одно сообщение и. пересылает эта сообщение системе В.
М ашина 4 тоже работает под управлением операционной систе С)т мы аг1ОФ1е, на она не принимает участия в переносе процесса и поэтому не б не о менивается и на пРотяжении этого отРезка времени Вытеснение Механизм согласования позволяет системе назначения отказать СЯ ОТ ПЕРЕ- носа в одностороннем порядке. Кроме того было бы полезно позвал У ОЗВОЛИТЬ СИСТЕМе вытеснять процессы, перенесенные на нее. Например, на простаиваю аивающую рабочую станцию могут быть перенесены несколько процессов. Как толь ТОЛЬКО ПОЛЬЗОВатель этой рабочей станции начнет выполнять на ней какие-то операц перации, может возникнуть необходимость вытеснить с рабочей станции перешедши дшие на нее процессы, чтобы обеспечить адекватное время отклика.
Возможности вытеснения продемонстрированы в операционной системе Ярг!!!е ~КЮ1)ОЩ. В этой системе„предназначенной для рабочих станций, все выгладит так, как будто каждый процесс на протяжении всего своего времени жизни выполняется на одном и том же узле, который называется домашним узлом процесса. Если про цесс переносится на другую машину, он становится внешним процессом на атой машине. Машина в любой момент времени может вытеснить внешний пра процесс, вследствие чего он переносится на свой домашний узел. М еханизм вытеснения операционной системы Яргйе состоит из таких элементов.
1. У чт б правляющий процесс на каждом узле отслеживает его текущую з "" к, юзъ эъузку что ы определить, когда можно принять новые внешние процессы. Если этот процесс обнаруживает активность консоли рабочей станции, он приступает к процедуре вытеснения всех внешних процессов. 2. Вытесняемый процесс возвращается на домашний узел. Если освобождается какой-нибудь другой узел, процесс может перейти на него.
и 3. Хотя в тя вытеснение всех процессов занимает некоторое время, все предназначенные для вытеснения процессы немедленно приостанавливаются. Если позволить процессу, ожидающему своего вытеснения, продолжить рабату, это сократит время, в течение которого процесс остается замороженным, но снизит вычислительные мощности узла, вовлеченные в процесс вытеснения. 4. Все адресное пространство вытесняемого процесса передается на домашний Узел. За аты .
Затраты времени на вытеснение процесса и его возвращение на домашний Узел. можно было бы существенно уменьшить, восстанавливая образ памяти вытесняемого е е Узла на катаром Он нахОдился д обности. Однако при этом внешний узел уд' ресурсы и сервисы в теч~н~~ более длительного периода времени, чем необходимо. Ньгхесн сняю1цие и невытесняю!цие переносы Данный аз й раздел рассматривает вытесняющий перенос процессов, который включает пе е а ередачу частично выполненного процесса 1или, по крайней мере, роцесса, соз а оздание которого уже завершена). Невытесняющий перенос процессов — более — алее простая функция, работающая только с процессами, выпал"'ние кото ых рых еще не началось, благодаря чему переносить информацию о , Часть 6. Распределенные системы 14.
Управление распределенными процессами .;. Лава 1 Филиал А а) Сумма 31ОО б) Сумма ЗО Часть 6. Распределенные системы астоянии процесса не требуется. В обоих случаях необходимо передать на ааленный узел информацию о среде, в которой будет выполняться процесс. юда могут входить сведения о текущем каталоге пользователя, унаследоанных процессом привилегиях и унаследованных ресурсах, таких, как де~рипторы Файлов. Кевытесияющий перенос процесса может быть полезен при балансировке агрузки ~см., например, 1ЯНГУ921). Она обладает тем преимуществом, что по~от избежать накладных затрат на полный перенос процесса. Недостатком аой схемы является то, что она не может адекватно реагировать на внезапные зменения в распределении нагрузки.
'лобальные состоянии и распределенные снимки Все связанные с параллельными вычислениями проблемы, такие, как заимоисключения, взаимоблокировки и голодание, встречающиеся в сильнозязанных системах, имеются также в распределенных системах. Стратегии азработки в этом случае осложняются тем, что для таких систем нельзя опреелить глобальное состояние. Это означает, что в распределенной системе опеационная система или процесс не могут получить информацию о текущем согоянии всех процессов системы. Процесс может знать лишь текущее состояие всех процессов локальной системы, осуществив доступ к управляющим локам процессов, которые находятся в памяти. Что касается удаленных проессов, то информацию об их состоянии процесс может получить только из ришедших сообщений.
Следует отметить, что эта информация получена неко- орое время назад и может оказаться устаревшей в момент получения. Аналончная ситуапия — в астрономии: знания об удаленной звезде или галактике олучены на основании светового и прочего электромагнитного излучения удаенного объекта, и это излучение дает представление о состоянии объекта в рошлом. Например, знания об объекте, находящемся на расстоянии пяти тыач световых лет, успевают устареть на пять тысяч лет. Подобная задержка во времени, зависящая от природы распределенных истем, усложняет все проблемы, связанные с параллелизмом. Чтобы поясить зто, приведем пример, взятый из 1АХРК901.