Управление процессами в компьютерных системах, страница 2
Описание файла
PDF-файл из архива "Управление процессами в компьютерных системах", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Функции управления КСФункции управления КС можно разделить на три достаточно самостоятельные части: управление заданиями (Yз), управление процессами (Yпр), административное управление (Yад).Общая организационная структура управления любого уровня приведена на рис. 1.ВходящиесообщенияИсходящиесообщенияИнтерфейсYзYпрYадРис. 1.
Структурная схема управления КС3.1. Функции управления заданиямиВ общем случае пользователь или администратор может направлять свое заданиеинтерфейсу управления любого уровня иерархического организованного управления КС.Блок управления заданиями, приняв конкретное задание, должен принять решение, гдеоно должно выполняться: в ресурсной среде подчиненной управлению, получившему задание, при условииналичия подходящих ресурсов, в ресурсной среде, контролируемой управлением следующего уровня, еслиподчиненные ресурсы не могут обеспечить адекватное (согласно требованиямпользователя) выполнение задания.Постоянный диалог между управлениями различных уровней, осуществляемый черезинтерфейсный блок, является необходимым условием поиска ресурсной среды, могущейнаилучшим образом обеспечить требуемые в описании задания условия его выполнения.Блок управления заданиями выполняет следующие функции: прием и упорядочение заданий, анализ требований к ресурсам, указанных пользователем, директивных сроков иливремени выполнения заданий, др.; определение на этой основе приоритета ивремени инициализации выполнения задания, поиск в некотором смысле оптимальной ресурсной среды для выполнения заданияна основе диалога с подчиненными управлениями или с управлением болеевысокого уровня, инициализацию и контроль выполнения задания, если это управление нижнегоуровня, возвращение результата выполнения задания пользователю или посылкасообщений администратору о ситуациях, которые препятствуют выполнениюзадания (ошибки в программе, превышение директивных сроков её выполнения идр.).3.2.
Функции управления процессамиПод процессом мы понимаем любую самостоятельную последовательность действий ввыполняемой в общем случае параллельной и распределенной программе, будь это вызов295специальных программных объектов или удаленных данных, а для параллельныхпрограмм это также независимо выполняемые программные компоненты.Если программа идентифицируется как объект пользователя, то у процесса болеесложное идентификационное описание, которое включает в общем случае егопринадлежность конкретной программе, его место в истории выполнения программы,связь с его удаленными (вычисленными и хранимыми в памяти удаленных ресурсов)данными, снимок процессов, для которых выполняемый процесс порождает данные и др.Еще одна важная особенность параллельных программ – это возможность порожденияупреждающих процессов, обычно связанных с условными конструкциями [6-7].
Вусловном операторе if P(x) then f1(x) else f2(x) предикат P(x) и программы функций f1 и f2можно выполнять одновременно, однако, если результат P(x) всегда необходим, тоиспользование результата f1 или f2 станет известным только после вычисления P(x).Использование упреждающих вычислений существенно расширяет возможностьдинамического распараллеливания программ, однако платой за это является болеесложная логика обнаружения упреждающих процессов и их прерывание после того, какстанет известно, что они не нужны.Управление процессами в общем случае выполняет следующие функции: идентификацию и упорядочение порождаемых процессов; сбор и хранение статистических данных о загруженности и состоянииподчиненных подсистем КС; планирование процессов, учитывающее их особенности (упреждающие илинеупреждающие, др.), предопределенные характером выполняемой программы; определение в некотором смысле оптимальной ресурсной среды перединициализацией выполнения процесса; собственно выполнение процесса с реакцией на возникающие состоянияпорождения процессов, взаимодействие с другими процессами и др.; т.е.корректная реализация программы на ограниченных и распределенных ресурсахКС.В разделе 4 мы более детально обсудим оптимизационные аспекты реализации данныхфункций.3.3.
Функции административного управленияПо-видимому, административные функции должны выполнять администраторы,связываемые с управлением каждого уровня и имеющие ту же логику подчинения другдругу, что и логика подчинения между управлениями согласно их иерархическойорганизации.Это вовсе не означает, что один и тот же администратор не может выполнять функцииадминистрирования, привязанного к нескольким управлениям.Администратор должен быть способен: находить решения в любых аномальных ситуациях (отказы, стихийные бедствия ит.п.) в подчиненных ему подсистемах КС; реагировать на конфигурационные изменения в КС, инсталлируя при этомнеобходимые программные продукты, в том числе управляющие; реализовывать и контролировать ценовую политику оплаты за использованиересурсов пользователями; выполнять другие привычные функции администрирования.2964. Управление с оптимизационных позицийС экономической точки зрения оптимальное управление должно примирить двеконфликтующие цели: хозяина ресурсов и пользователя.
Для первого это более высокаяпроизводительность и должнаяоплата за использование ресурсов, для второго – как можноменьшая цена, которая будет установлена за решение его задачи в соответствии сзаявленными требованиями. При честной игре этих двух сторон естественно полагать, чтоуправление будет стремиться удовлетворить в первую очередь пользователя, при этом необижая хозяина ресурсов, и что всякого рода блефование в контроле состояния ивыделения ресурсов для выполняемых программ пользователя исключено.При поиске подходящей модели, которая позволила бы хотя бы ближе подойти кпониманию факторов и закономерностей, лежащих в основе решения данной проблемы,напрашивается обращение к теории систем массового обслуживания.
С этой точки зренияКС представляет собой открытую систему массового обслуживания со случайнымипотоками заданий пользователей, обслуживаемых зафиксированными подсистемами КС.Ясно, что на нижнем уровне в качестве простейшего обслуживающего компонентавыступает компьютер, сервер или параллельная система (кластер и т.п.). Мы всегда знаемпредельную (максимальную) интенсивность обслуживания заявок для этих компьютерныхресурсов, которая определяется обычно умножением быстродействия процессора,измеряемого количеством операций, выполняемых в единицу времени, на количествопроцессоров в подсистеме.К сожалению, реальная интенсивность выполнения процессов, как показываютэксперименты, не стационарна и общие характеристики её поведения как случайнойвеличины неизвестны [4].Большие сложности модельного представления функционирования КС возникают изза естественной возможности динамического перемещения процессов междуподсистемами с целью достижения оптимального использования их ресурсов.
Если кэтому добавить реальную ситуацию реконфигурирования КС, как из-за отказовопределенных ресурсов, так и по другим причинам, то становится ясным, что огромнаякомпьютерная система, даже при тех ограничениях на правила её функционирования, окоторых мы говорили в начале этого раздела, вряд ли будет полностью«математизирована» с позиции оптимального управления ею. Аналогия с управлениембольшими производственными, социальными системами, регулированием рыночнойэкономики и с тем состоянием далеко не только не оптимального, но инеудовлетворительного управления процессами в этих образованиях оправдываетсказанное выше.Поэтому решения придется искать подобно этим системам: устранять узкие места вработе КС, создавать систему эвристических правил для эффективного планированияпроцессов и распределения ресурсов, научиться достаточно точно измерять,существенные для управления параметры функционирования КС и прогнозировать ихизменения.Ниже мы рассмотрим, каким образом это можно делать на практике уже сегодня.При этом по общеметодологическим причинам, да и по сути, в управлении заданиямии процессами мы выделяем в качестве главных две задачи: планирование заданий ипроцессов и назначение ресурсов для их выполнения.4.1.
Планирование заданий и назначение ресурсов для их выполненияРассмотрим сначала, какую информацию о своем задании пользователь может указать,которая может быть использована для реализации упения.2971) Характер задания: отладочные функции или выполнение программы, языкпрограммирования, последовательная или параллельная программа требуемыйраспараллеливающий компилятор, др.2) Особенности программы: предполагаемая сложность, наличие упреждающих ирекурсивно порождаемых процессов, нагрузка на каналы (большая, средняя илинезначительная).3) Требования к ресурсам: пользователь в общем случае может указать, используясправочную информацию об КС, какие конкретно ресурсы (подсистемы КС)должны быть использованы для выполнения его программы.
При этом этиуказания могут быть детализированы с точностью до задания количествапроцессоров или узлов (если это параллельная программа, которая должнавыполняться на кластере), требуемых объемов ОП и др.4) Требования к времени выполнения программы: директивные сроки – интервалвремени, в течении которого должна быть выполнена программа, и собственнодопустимое время выполнения самой программы (особо важный фактор дляпараллельных программ).От того, насколько точно будут заданы пользователем эти данные, зависит, очевидно,и эффективность управления, и удовлетворение требований пользователя. По крайнеймере, директивные сроки и время выполнения заданий, а мы имеем в виду сложныепрограммы, требующие больших ресурсов, являются главными параметрами дляпланирования заданий.Перейдем собственно к проблеме планирования заданий и назначения ресурсов. Пустьзадания, поступающие в КС, разделены на N групп по наиболее критическим параметрамдля управления: директивным срокам, затребованным ресурсам, сложности и др.
и пусть– интенсивности потока заданий и их обслуживания в моментивремени t в каждой группе. Отношениеопределяет степеньзагруженности ресурсов КС, используемых для выполнения заданий группы i. Очевидно,если, мы можем говорить, что выделенные ресурсы для заданий группы iнесправляются с их эффективным обслуживанием или, другими словами, среднее времяобслуживания заданий начинает заметно увеличиваться.В настоящее время любой ресурс (компьютер, сервер, кластер, др.) характеризуютпредельной производительностью, определенной обычно по быстродействию процессораили для многопроцессорных (многокомпьютерных) систем путем умножения количествапроцессоров на их быстродействие.Пусть– предельная производительность ресурсов, выполняющихзадания i-ой группы.Отношение или коэффициент использования ресурсовхарактеризует, пусть приближенно, насколько близка реальнаяпроизводительность к предельной и насколько эффективно управление распоряжаетсяресурсами.Очевидно, отношениевсегда меньше или равно единице и его значениепозволяет косвенно судить о степени влияния памяти, коммуникаций и реактивностисамого управления на интенсивность выполнения заданий i-ой группы.Напомним, что как только в системе (компьютере, кластере) заметно увеличиваетсяинтенсивность обменов страницами между оперативной и дисковой памятью (возникаеттак называемыйswapping), производительность резко падает [11].Аналогичную картину можно наблюдать при выполнении сложной параллельнойпрограммы с частыми взаимодействиями между её фрагментами, когда среднее времяпередачи данных по каналу между узлами резко возрастает из-за образования к немуочереди.298Исходя из сказанного, управление будет «идеально» выполнять свои функции, еслидля каждого i, среднее время выполнения наступающих в КС заданийминимально, амаксимально.
Последнее говорит, что негативное влияние, котороеоказывает на время выполнения заданий память и каналы сведено к минимуму.Во многих реальных сложных системах, например пассажирский и другой транспорт,производственные системы и др., проблема решается просто путем введения заранееопределенных ограничений на количество обслуживаемых объектов (пассажиров,производимых изделий) и время обслуживания. В КС управлению придется полагаться наизмерение случайных параметров, прогнозирование их изменений, чтобы на основеэтого принимать решения. В частности, при, т.е. когда КС оказываетсянеспособной удовлетворительно обслуживать потоки входящих заданий, естественнымвыходом из этого положения является откладывание части заданий на более поздниесроки их выполнения.