Луковников Иван Васильевич

advertisement
На правах рукописи
ЛУКОВНИКОВ Иван Васильевич
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
ДВУХУРОВНЕВОГО УПРАВЛЕНИЯ
РЕСУРСАМИ
В ОПЕРАЦИОННЫХ СИСТЕМАХ С
ЗАКРЫТЫМИ ИСХОДНЫМИ КОДАМИ
Специальность 05.13.18 – математическое
моделирование, численные методы и комплексы
программ
Автореферат диссертации на соискание
ученой степени кандидата физико-математических наук
Москва - 2006
Работа выполнена на кафедре информатики Московского физикотехнического института (государственного университета)
Научный руководитель: кандидат физико-математических наук
Тормасов Александр Геннадиевич
Официальные оппоненты: доктор технических наук
профессор
Семенихин Сергей Владимирович
кандидат физико-математических наук
Обернихин Виталий Александрович
Ведущая организация:
Институт Автоматизации
Проектирования РАН
Защита состоится «___» __________ 2006 года в ___ часов на заседании
диссертационного совета К 212.156.02 при Московском физико-техническом
институте
(Государственном
университете)
по
адресу:
141700,
г.Долгопрудный, Московской обл., Институтский пер. д.6., ауд. 903 КПМ.
С диссертацией можно ознакомиться в библиотеке МФТИ
Автореферат разослан «____» ______________ 2006 г.
Ученый секретарь диссертационного совета
К 212.156.02
2
Федько О.С.
Общая характеристика работы
Актуальность темы
В диссертационной работе рассматривается математическая задача
планирования и распределения ресурсов между вычислительными задачами в
современных операционных системах (ОС) с закрытыми исходными кодами.
Задача была поставлена с учетом следующих требований: распределение
ресурсов операционной системы согласно соглашению об уровне сервиса
(SLA), корректная работа на системе с закрытым исходным кодом (что не
позволяет частично или полностью заменить системный механизм
планирования и избежать эффектов, вызванных работой данного механизма).
Для таких систем решение должно содержать набор ограничений, которые
нужно наложить на систему, чтобы обеспечить необходимую точность
управления. Задачи такого класса актуальны для современных средств
виртуализации операционных систем.
Особенно остро задача распределения ресурсов встала в последние годы,
ставшие периодом бурного развития средств виртуализации вычислительных
задач и операционных систем. Существующие программные комплексы
позволяют создавать на одном физическом сервере несколько десятков, а, в
ряде случае, и несколько тысяч виртуальных выделенных серверов (VDS).
Наметился также существенный рост интереса гигантов IT индустрии к
системам виртуализации: компания Intel активно развивает технологию
аппаратной поддержки виртуализации VT, компания AMD продвигает
аналогичную технологию Pacifica, ведущие производители программного
обеспечения, такие как RedHat, SuSe, Microsoft, уже включили или
планируют включить в ближайшие версии своих программных продуктов
поддержку виртуализации операционных систе. Подобного рода тенденции
позволяют ожидать появления систем виртуализации на каждом
современном компьютере в самом ближайшем будущем. К сожалению,
существующие системы распределения и планирования ресурсов далеки от
совершенства. Если для ОС, основанных на решениях с открытым исходным
кодом, эта задача успешно решается в таких проектах как, например, OpenVZ
или Xen, то для ОС с закрытым исходным кодом, таких как MS Windows,
ситуация практически плачевная – из-за невозможности заменить механизмы
планирования ресурсов, используемые, например Windows 2003 Server,
разработчики программных комплексов, таких как Aurema, вынуждены
искать различные методы управления «поверх» таких механизмов. Более
того, недостаточный этих механизмов учет в существующих моделях
приводит к значительному ухудшению качества обслуживания и, зачастую,
стабильности системы.
3
Цель работы, задачи исследования
Целью данной диссертационной работы является разработка
математической модели двухуровневого управления ресурсами в
современных операционных системах с закрытым исходным кодом. Под
двухуровневым управлением в рамках данной работы понимается
управление, удовлетворяющее критериям:
1) осуществляет управление, используя механизмы, предоставляемые,
явно или неявно, системой управления нижележащего уровня
(основным управлением ресурсами, предусмотренным создателями
данной операционной системы, или микроуправлением)
2) интервалы воздействия этого управления, как правило, превышают
интервалы, характерные для системы управления нижележащего
уровня.
Задачи исследования:
 разработка математической модели двухуровневого управления
ресурсами в современных операционных системах с закрытыми
исходными кодами
 объяснение, в рамках данной модели, механизмов существующих
методов контроля ресурсов в современных операционных системах
 исследование ограничений, которые нужно задать в системе, чтобы
обеспечить требуемое качество управления
Объект исследования – механизмы управления ресурсами в
современных операционных системах, используемые для предоставления
требуемого качества обслуживания.
Предмет исследования – модель двухуровневого управления в
современных операционных системах с закрытыми исходными кодами.
В ходе выполнения научных исследований автором был проведен ряд
экспериментов, подтверждающих эффективность предложенной модели.
Методы исследования
В ходе научных исследований по разработке математической модели
двухуровневого управления ресурсами в современных операционных
системах с закрытыми исходными кодами широко использовались
аналитические методы теории массового обслуживания, теории цифровой
фильтрации, методы имитационного моделирования, теория операционных
систем и системного программирования, методы, используемые в
современных системах виртуализации.
Для проведения экспериментов предложенная модель была реализована
как составная часть программного комплекса Virtuozzo (Windows версия).
4
Так же был проведен ряд экспериментов с использованием реальных
программных комплексов от сторонних производителей.
Научная новизна
Научная новизна работы заключается в том, что автором предложена
математическая модель двухуровневого управления виртуализованными
ресурсами вычислительных систем и комплексов при предоставлении
различных видов сервиса в современных операционных системах с
закрытыми исходными кодами, основанных на формировании виртуальной
среды пользователя.
В отличие от ранее существовавших моделей виртуализации,
разработанная в ходе диссертационного исследования математическая
модель более полно учитывают особенности, налагаемые собственными
механизмами управления ОС, что позволяет существенно повысить
утилизацию ресурсов системы, повысить ее надежность и обеспечить
необходимое качество обслуживания.
Разработанная математическая модель двухуровневого управления
виртуализированными ресурсами современных операционных систем с
закрытыми исходными кодами является новым вкладом в развитие теории
операционных систем, системного программирования и технологий
виртуализации операционных систем.
Практическая значимость
На основе предложенной математической модели была разработана
значительная часть системы управления ресурсами в коммерческом
программном комплексе Virtuozzo (Windows версия), являющемся мировым
лидером в сфере виртуализации операционных систем. На сегодняшний день
это решение обеспечивает бесперебойную работу нескольких сот тысяч
виртуальных выделенных серверов в десятках стран мира, используемых для
предоставления услуг хостинга, консолидации сервисов в крупных
государственных и коммерческих корпорациях, обучения в образовательных
учреждениях.
Разработанная математическая модель так же может быть использована
при создании новых программных комплексов, предназначенных для
решения задач виртуализации с целью достижения максимального уровня
утилизации ресурсов, надежности систем и обеспечения высокого качества
обслуживания.
Так же разработанная модель может быть использована в качестве
основы для самостоятельных решений различных задач, возникающих в ходе
5
предоставления различных видов сервиса в современных операционных
системах.
Апробация и реализация результатов работы
По материалам данного диссертационного исследования были
опубликованы работы [1-10]. В опубликованных работах автору
принадлежит материал, связанный с математическими моделями управления
виртуализованными ресурсами и их обоснованием (40%-60% объема).
Результаты
диссертационного
исследования
докладывались,
обсуждались и получили одобрение специалистов на научных конференциях:
 XLVII и XLVIII научной конференциях МФТИ «Современные
проблемы фундаментальных и прикладных наук» (Долгопрудный,
2004, 2005)

X-ой Всероссийской научно практической конференции «Научное
творчество молодежи» (Кемерово, 2006)
 Всероссийской научно-практической конференции, посвященной
60-летию ТОИПКРО (Томск, 2006) и др.
Так же результаты были доложены и получили одобрение на научных
семинарах, проводимых кафедрой информатики МФТИ в 2001-2006гг.
Результаты работы реализованы как часть программного комплекса
Virtuozzo. В настоящее время этот программный комплекс занимает
лидирующее положение в мире в сфере предоставления услуг виртуализации
операционных систем.
Положения, выносимые на защиту
На защиту выносятся следующие основные положения:
1. Математическая
модель
двухуровневого
управления
ресурсами операционных систем с закрытыми исходными
кодами
2. Математическая модель и метод группового управления
ресурсами
центрального
процессора
в
условиях
функционирования виртуальных выделенных серверов с
целью ограничения потребления времени центрального
процессора сверху
Структура и объем диссертации
Структура и объем работы. Диссертация состоит из введения, трех глав,
заключения и трех приложений. Работа изложена на 110 страницах, содержит
6
26 рисунков и список использованных источников из 112 наименований в
алфавитном порядке.
Содержание работы
Во введении обосновывается актуальность темы, дается исторический
обзор исследований, посвященных решаемым в диссертации задачам,
формулируются цели исследования и основные результаты, которые
выносятся на защиту, обосновывается научная и практическая значимость
выполненного исследования.
В главе 1 дан краткий обзор наиболее существенных в настоящее время
алгоритмов и групп алгоритмов управления ресурсами в современных
операционных системах на примере управления ресурсами центрального
процессора. Для каждой группы приведены примеры соответствующих
алгоритмов управления ресурсами, рассмотрены их достоинства и
недостатки. Далее приведена сводная таблица парадигм планирования,
рассмотрена важность алгоритмов планирования для обеспечения
надлежащего качества обслуживания. Приведена двухуровневая иерархия
алгоритмов планирования в современных операционных системах с
закрытыми исходными кодами. Рассмотрены примеры комбинированных
планировщиков. Описываются проблемы, связанные с созданием
планировщиков каждого уровня, обусловленные как техническими, так и
прочими трудностями. Отдельно обсуждаются преимущества реализации
алгоритмов планирования на каждом уровне иерархии. Рассмотрены
требования, предъявляемые к таким реализациям, приведены примеры
реализаций.
Начало главы 2 посвящено проблеме постановки задачи в виде
составления общей модели двухуровневого управления и исследования
ограничений, которые надо наложить на систему, чтобы обеспечить
надлежащую точность управления. Так же вводится понятие двухуровневого
управления, и приводятся примеры существующих программных
комплексов, реализующих концепцию двухуровневого управления. Далее в
главе обсуждаются особенности построения моделей двухуровневого
управления и ограничения, связанные с использованием математических
моделей, требующих существенных вычислительных ресурсов для их
обсчета.
Вторая часть главы 2 посвящена построению математической модели
двухуровневого управления.
Вводится понятие функции потребления как зависимости потребления
процессом одного или нескольких ресурсов от времени. Далее
рассматривается случай, когда в операционной системе существует N
вычислительных задач.
Каждой задаче соответствует желаемая функция потребления
7
Ri (t*) ,
где
i – порядковый номер задачи в системе
t* - собственное время задачи. Собственное время задачи совпадает с
физическим временем в системе, если нет конкурентных задач.
Объясняется, что в случае, если желаемая функция потребления
описывает потребление более одного ресурса, ее можно представить в виде
вектора потребления
Ri (t*)  ( Ri1(t*), Ri2 (t*),.., RiJ (t*)) ,
где
Rij (t*) - потребление j-ого ресурса i-ой задачей в момент времени t*.
Область значений желаемой функции потребления вводится как
(1)
Rij (t*)  {0,1, 1}
Что соответствует:





1 – задача потребляет дополнительную единицу ресурса в данный
момент времени
0 - задача не потребляет дополнительную единицу ресурса в
данный момент времени
-1 – задача освобождает занятую единицу ресурса в данный
момент времени.
Например:
если задача потребляет квант времени центрального процессора, то
соответствующий компонент вектора потребления равен 1
если задача не потребляет ресурсы центрального процессора (ожидает
завершение операции ввода-вывода или ожидания на объекте
синхронизации), то соответствующий компонент вектора равен 0
если задача запросила выделение виртуальной памяти, то мы считаем,
что в данный момент времени ей может быть выделена 1 единица
памяти операционной системы (соответствие единицы потребления
памяти единицам потребления, используемым в операционной системе,
может зависеть от алгоритмов управления памятью в данной ОС) и
соответствующий компонент вектора потребления, отвечающий за
виртуальную память, равен 1
если задача не запрашивает выделение виртуальной памяти, то мы
считаем, что соответствующий компонент вектора потребления,
отвечающий за виртуальную память, равен 0
если задача освобождает виртуальную память, то мы считаем, что в
данный момент времени он может освободить не более 1 единицы
виртуальной памяти и соответствующий компонент вектора
потребления, отвечающий за виртуальную память, равен -1
8
 легко понять, что для потребления ресурсов центрального процессора
соответствующий компонент вектора потребления не может быть
равен -1
Далее обсуждаются основные свойства вектора потребления:
 его компоненты могут иметь ненулевую ковариацию (например,
операция ошибки страницы (page fault) при работе со
спроецированным файлом, может привести не только к увеличению
потребления физической памяти задачей, но и к потреблению
пропускной способности жесткого диска (а если файл находится на
сетевом устройстве, то и пропускной способности сети))
 компоненты вектора, как уже и упоминалось выше, удовлетворяют
условию (1)
 матрица ковариации векторов потребления разных процессов может
быть ненулевой (увеличение потребления физической памяти одним
процессом может привести к уменьшению потребления физической
памяти другим процессом – за счет переноса длительно
неиспользуемых страниц памяти в файл подкачки)
 учет параметров в векторе потребления может зависеть от модели
учета ресурсов (например, обращение к жесткому диску, вызванное за
счет ошибки страницы (page fault), может быть «записано» как на счет
задачи, ее вызвавшей, так и на счет той части системы, которая
отвечает за управление памятью. Другим примером может послужить
выполнение в системах семейства Microsoft Windows асинхронных
вызовов – APC или DPC, потребление времени центрального
процессора, которое записывается «на счет» процессов system и idle
соответственно)
Далее вводится понятие функции фактического (реального)
потребления,
Ri*(t ) .
так же как и функции желаемого, но t - реальное (физическое,
системное) время, в котором процесс получал ресурсы.
Обсуждается, что в общем случае вид функции желаемого потребления
отличается от вида функции фактического потребления
Ri*(t )  Ri (t )
(2)
Поскольку:
 существует так называемый эффект внешней среды –задача в системе
не одна и возможны возмущения, связанные, например, с работой
системы управления памятью (задача может получить кванты
процессорного времени, но немедленно воспользоваться ими для своих
нужд не может, т.к. необходимые ей данные могут находиться в файле
подкачки, скорость доступа к которому может быть ограничена из-за
9
большого количества конкурентных задач, работающих с жестким
диском)
 возможны эффекты обратной связи. Примером может послужить
эффект CPU starvation, когда процесс, не получавший какое-то время
возможности выполняться, но находящийся в очереди на выполнение,
получает возможность потребить время центрального процессора за
счет кратковременного динамического повышения приоритета (CPU
boost)
 возможны эффекты управления. Примером могут послужить CPU
boosts, выделяемые планировщиком задач Windows 2003 процессам,
закончившим операцию ввода-вывода.
Отмечается, что отсутствие прямого контроля над ядром операционной
системы, зачастую не позволяет нам устранить эффекты, описанные выше.
Более того, даже если у нас остается возможность сгладить эти эффекты,
подобное сглаживание может привести к серьезным потерям
производительности.
Тем не менее, отмечается, что если мы сможем сделать достаточно
реальные предположения о поведении функций потребления процессов,
позволяющие с допустимой точностью достигать желаемого распределения
ресурсов даже при наличии вышеуказанных эффектов, то
 мы обеспечим достаточный уровень управления
 обеспечим на заданном отрезке времени допустимые отклонения в SLA
(соглашение о уровне сервиса) для
системы с двухуровневым
управлением по отношению к системе, где этого управления нет.
Далее рассматривается преобразование собственного времени процесса в
системное время:
t  Fi (t*)
(3)
Данное преобразование осуществляется за счет собственного управления
операционной системы и наложенного нами управление.
Фактически это преобразование сложным образом «растягивает»
временную ось собственного времени задачи («растяжение» происходит,
поскольку, например, в системе существуют другие задачи и
рассматриваемой задаче процессорное время может быть не предоставлено в
«желаемый» ей момент времени).
Так же делается допущение, что данное преобразование не приводит к
принципиальному изменению функции потребления, то есть задача, не
отработавшая на протяжении, например, 15 секунд, не примет решения о
завершении себя. Такое предположение допустимо для большинства
рассматриваемых полезных нагрузок.
Далее вводится функция идеального потребления
Ri**(t**)
10
так же, как и функция желаемого, но t** - идеальное время при котором
идеально выполняется наложенное нами ограничение (например, гарантия
доли процессорного времени).
Вводится идеальная функция, обеспечивающая данное преобразование,
t**  Si (t*)
(4)
Считается, что история функции потребления известна и преобразование
зависит только от времени.
Далее приводится иллюстрация модели на примере потребления
процессом времени центрального процессора.
На Рис1 представлена зависимость желаемого потребления центрального
процессора от времени.
Желаемое потребление
1
0
1
2
3
4 5 6
Время
7
8
9
Рис 1. Функция желаемого потребления
Как мы видим из данного рисунка, в точках 2,3,5 и так далее процесс
готов полностью потребить время центрального процессора.
За счет планировщика времени центрального процессора операционной
системы и двухуровневого управления фактическая зависимость потребления
от времени выглядит следующим образом (см Рис2):
11
Фактическое потребление
1
0
1
2
3
4
5 6
Время
7
8
9
Рис 2. Функция фактического потребления
Как мы видим, желаемое потребление в момент времени 2 (см график
желаемого потребления – время считается относительно «собственного»
времени процесса), фактически произойдет в момент времени 2 (см график
фактического потребления, где 2 – уже «системное», собственное время
процессора).
Соответственно, потребление в момент времени 3 (см график
желаемого потребления – время считается относительно «собственного»
времени процесса), фактически произойдет в момент времени 5 (см график
фактического потребления, где 5 – уже «системное», собственное время
процессора) и так далее.
При этом функция идеального потребления выглядит следующим
образом (обратим внимание, что здесь используется «идеальное время», при
котором идеально выполняются наложенные условия – см. выше).
"Идеальное" потребление
1
0
1
2
3
4
5 6
Время
7
8
9
Рис 3. Функция идеального потребления
Далее предлагается рассматривать интегральное отклонение функции
идеального потребления от функции фактического потребления.
Размер отклонения и будет считаться критерием качества управления.
12
Тогда задачу можно сформулировать следующим образом – при каких
предположениях о поведении Ri(t*) выполняется следующее условие
T2 *
** **
(5)
 || Ri (t )  Ri (t (t )) || dt a(T2  T1)
T1
Где a – допустимая погрешность управления, имеющая
соответствующую размерность.
Подынтегральная функция
(6)
|| Ri*(t )  Ri**(t**(t )) ||
имеет смысл меры вектора отклонения от идеального потребления.
Далее обсуждаются особенности выбора меры данного вектора. В
данном случае, мера вводится как сумма квадратов компонент вектора.
Что означает
T2 *
** **
2
(7)
 ( Ri (t )  Ri (t (t ))) dt a(T2  T1)
T1
Так же используется факт, что для функций семейства R,R*,R**
справедливо утверждение
R 2 | R |
(8)
это следует из определения этих функций (см определение).
Тогда после перехода к собственному времени задачи
T2
*
*
 (| Ri ( Fi (t )) | 
T1
dFi (t*) *
**
*
**
*
*
*
 | Ri ( S (t )) | 2 Ri ( Si (t )) Ri ( Fi (t )))
dt
i
dt*
(9)
a(T  T )
2 1
Далее используется следующая классификация ресурсов на основе
возможности перераспределения ресурсов:
 возобновляемые – для таких ресурсов система может безболезненно
запретить потребления для данного процесса и передать возможность
потребить освобожденные ресурсы другому процессу или процессам.
Примером такого типа ресурсов могут послужить центральный
процессор (если мы не даем задаче процессорное время, то это время
может быть с успехом использовано другими процессами – с
точностью до кэшей различного уровня, разумеется), пропускная
способность сети (та же ситуация), пропускная способность диска и так
далее. Отметим так же, что для возобновляемых ресурсов
перераспределение, как правило, не приводит к существенному
изменению поведения процесса или потерям данных. Так же, очевидно,
13
для возобновляемых ресурсов функция желаемого потребления не
может принимать отрицательного значения.
 невозобновляемые – для таких ресурсов можно запретить потребление
процессом ресурса, но нет возможности освободить потребленные
ресурсы. Примером может послужить дисковое пространство – система
может запретить (например, через механизм квотирования дискового
пространства на основе различных критериев – это реализовано почти
во всех современных операционных системах) дальнейшее
потребление, но освобождение занятых ресурсов возможно только если
задача сама примет решение о необходимости удаления части данных
или системный администратор сделает это за нее. Разумеется, в этом
случае шансы на потерю данных или на парализацию работы системы
очень высоки
 частично возобновляемые – для таких ресурсов можно запретить
потребление задачей данного ресурса и через некоторое время
освободить ресурсы для использования другими задачами. Примером
может послужить потребление физической памяти задачей. Мы можем
запретить задаче потреблять память и, при определенных
обстоятельствах, подсистема управления памятью операционной
системы освободит физическую память для других процессов за счет
выгрузки памяти данного процесса в файл подкачки.
Далее детально рассматриваются возобновляемые ресурсы, приводятся их
примеры и выделяются 3 типа обеспечения качества обслуживания:
 гарантия потребления ресурса в среднем
 лимит на потребление ресурса в среднем
 лимит на интегральное потребление ресурса
Далее обсуждается гарантия потребления ресурса в среднем - этот случай
был рассмотрен ранее в главе 1 при описании модели Fair CPU scheduler.
Основная идея состоит в том, что при наличии конкуренции за данный
ресурс процесс, в среднем ,потребит долю, не меньшую, чем его вес.
Затем рассматривается лимит на потребление возобновляемого ресурса в
среднем – как правило, выражается в абсолютных величинах – речь идет о
запрете задаче потреблять больше заданной доли на фиксированном
промежутке времени, даже при наличии свободных ресурсов. Например,
задаче могут запретить потреблять более 20% времени центрального
процессора или больше 1Mbit пропускной способности 100Mbit канала.
Отмечается, что третий случай, лимит на интегральное потребление
ресурса – достаточно редко используется и, поэтому, не будет
рассматриваться далее. Суть метода состоит в том, что процесс за все время
своей жизни не может потребить больше, например, 15 минут процессорного
времени. При исчерпании данной квоты процесс завершается. Данный
механизм обычно реализован штатными средствами операционных систем
(есть и в Linux и в Windows).
14
Далее из функции фактического потребления выделяются эффекты
операционной системы, рассмотренные выше:
(10)
Ri*( Fi (t*))  Ri ( Fi (t*))  DRi ( Fi (t*))
где DRi(Fi(t*)) описывает неконтролируемые эффекты ОС.
Затем происходит переход к рассмотрению идеального двухуровневого
планировщика, так что выполняется условие (в данном случае мы считаем,
что процесс готов потребить ресурс и гарантия совпадает с лимитом)
dFi (t*) *
T 2 **
*
(11)
dt  b(T  T )  bDT
 (Ri (S (t ))
2 1
*
dt
T1
Где b – доля времени центрального процессора, выделенная данной задаче, является константой на рассматриваем временном интервале.
Далее (9) сводится к
dFi (t*) * T 2
dFi (t*) *
T2
*
*
dt   (DR (Fi (t ))
dt
 (R i (Fi (t ))
i
*
*
dt
dt
T1
T1
(12)
*
d
F
(t
)
T2
 bDT - 2  (R (F (t*))R**(S (t*)) i
dt*  aD
i i
i
*
dt
T1
Это выражение и является желаемым выражением, первое слагаемое в
котором нам известно, т.к. мы знаем функцию потребления и управляемо,
т.к. мы можем влиять на функцию Fi, третье слагаемое нам так же известно.
Вычитаемое является интегралом от произведения известных нам
функций преобразования желаемого потребления и идеального. Эти функции
в каждой конкретной задаче так же известны. При этом функций
потребления мы можем управлять за счет Fi
Далее устанавливается, что определяющим фактором стабильности
нашего управления является функция DRi(Fi(t*)), которая, фактически,
описывает специфику потребления и связанные с ним эффекты ОС.
Далее рассматривается частный пример, показывающий влияние
эффектов ОС на точность управления и еще раз подтверждается, что
отсутствии ограничений на поведение функции желаемого потребления
существенно нарушается точность управления.
Далее при условии, что F(t*) настолько хорошо, что в любой момент
времени без учета эффектов операционной системы процесс потребляет
время точно согласно заявленным требованиям к качеству обслуживания, то
есть
R (F (t*))  R**(S (t*))
(13)
i i
i
Тогда, доказывается, что необходимым ограничением на поведение
функции желаемого потребления является:
dF (t*) *
dF (t*) *
*
*
i
dt >  DR (F (t )) i
dt  bDT - aD
(14)
 R i (Fi (t ))
i i
dt*
dt*
15
Эксперимент, подтверждающий справедливость данного утверждения,
будет рассмотрен позднее.
Далее рассматривается случай невозобновляемых ресурсов (дисковое
пространство, виртуальная память и так далее) и частично возобновляемых
ресурсов (физическая память ЭВМ. промежуточный файл образа,
создаваемого системами резервного копирования и так далее).
При допущении, что при отсутствии эффектов внешней среды
(15)
Fi (t*)  Si (t*)
Выводится
T2
*
*
 (| Ri ( Fi (t )) | 
T1
(16)
*
dF (t ) *
 | Ri**( Fi (t*)) | 2 Ri**( Fi (t*)) Ri*( Fi (t*))) i
dt
a(T  T )
2 1
dt*
Далее показывается, что в случае с такого рода ресурсами мы можем
управлять:
 ограничивая скорость потребления ресурсов, – мягкий способ (за
скорость потребления, фактически, отвечает коэффициент dFi(t*)/dt*)
 запрещая потреблять ресурсы, – жесткий способ (в данном случае это
означает, что за счет средств операционной системы и нашего
управления R*(t)!=R(t))
К подобным принципам управления и сводятся большинство современных
алгоритмов управления ресурсами.
В качестве примера первого случая управления рассматривается Windows
сервис, обслуживающий запросы. Каждый запрос обслуживается отдельной
нитью (для упрощения считаем, что при приходе каждого нового запроса
происходит создание новой нити обслуживания данного запроса). Данный
пример достаточно показателен и важен для систем виртуализации,
поскольку в недружественном окружении деятельность компьютера,
содержащего данный сервис, может быть парализовано за счет атаки отказа в
доступе (Denial of Service attack – DoS).
Далее рассматривается ситуация DoS атаки на такой сервер и
показывается, с использованием (14), что при выполнение утверждения,
T
2 dF (t*)
dt  k *(T  T ) a(T  T )
(17)

2 1
2 1
dt*
T
1
где k – предельно допустимый тип нагрузки для сервиса, возможно
предотвращение DoS атаки. Отмечается, что в случае если, например, сервис
в пиковой нагрузке может принимать не более 10% новых запросов в
секунду, задача нашего управления задерживать выход из функции
16
ntCreateThread на 100мс, что позволит, хотя и в ущерб производительности
сервиса, обеспечить жизнеспособность всего компьютера.
Глава 3 посвящена разработке практического алгоритма, позволяющего
обеспечить лимит на потребление ресурсов в среднем.
Используя предпосылки из главы 2, предлагается следующий
принципиальный алгоритм (Gi - среднее значение функции фактического
потребления Ci, gi – лимит на потребление ресурсов в среднем):
1)
находясь в момент времени T, мы оцениваем значение функции
Gi(T+d)
2)
если Gesti=Gi(T+d)>gi, то мы запрещаем выделение процессорного
времени процессу на интервале от T до T+d
3)
в противном случае мы не вмешиваемся
Показывается, что
1 T d
Gi (T  d )  Gi (T )*exp[d /(d  T )] 
*
C (t )*exp[(t  T  d ) /(T  d )]dt (18)
T  d T i
(19)
Giest (T  d )  Gi (T )*exp[d /(d  T )]  1  exp[d /(d  T )]
Полученный алгоритм и выражения (18) и (19) используется для
создания
самостоятельных
решений,
использующих
технологию
двухуровневого управления.
Далее рассматриваются особенности планирования процессов в ОС
Windows Server 2003 и детально рассматривается (с целью
проиллюстрировать
применение
полученной
модели)
поведение
коммерческого продукта Aurema, использующего часть рассмотренных
особенностей планирования и фильтр Калмана с активной обратной связью
для достижения цели аналогичной рассмотренной выше в данной главе.
Рассматривается случай, когда все нити в системе готовы потребить
время центрального процессора. Как и ранее обозначим количество нитей
через N.
В отсутствие конкуренции функция желаемого потребления каждой
нити имеет вид, представленный на рисунке
17
Желаемое потребление
1
0
1
2
3
4
5
6
7
8
9
10
11
Время, кванты
Рис 4. Функция желаемого потребления
Как и говорилось выше, в случае однопроцессорной системы и
настроенной по умолчанию Windows 2003 переключение контекста будет
происходить каждые 12 интервалов таймера или примерно 120 мсек.
Иными словами функция идеального потребления будет иметь вид,
показанный на рисунке ниже (для упрощения рисунок приведен в случае
наличия 2-ух нитей в системе) – то есть классический Round-Robin в случае
равных гарантий и FairSched в случае различных гарантий процессам.
Идеальная функция потребления
1
0
0
10
20
30
Время, кванты
Рис 5. Идеальная функция потребления
18
40
50
Исходя из вышеизложенного, функция фактического потребления будет
совпадать с функцией идеального потребления до появления эффекта CPU
starvation и начала активности balance manager.
Далее, используя формулу (14), выясняется, в качестве примера, какие
предположения системе нужно сделать, чтобы достичь точности управления
скажем в 5%.
Итак, в нашем случае balance manager просыпается раз в секунду (или 100
квантов) и дает нитям, не выполнявшимся на протяжение 4 секунд (или 400
квантов) двойной квант времени (2 кванта или 20мсек), которым мы явно
управлять не можем.
Тогда наше возмущение DRi можно оценить как 0 при отсутствие эффекта
balance manager.
Эффект balance manager начинает сказываться при достаточно большом
числе нитей. Критическое число нитей можно оценить из следующих
соображений:
 Каждая нить выполняется 12 квантов (в общем случае K квантов).
 Повторно она выполнится через 12*N квантов (в общем случае K*N
квантов).
 Таким образом, если K*N превысит 400 квантов, начнет сказываться
влияние balance manager.
Далее с использованием данных соображений и формулы (14)
показывается, что
400
dF(t*) *
(20)
2*(N)  bDT -  R (F (t*))
dt  aD
i i
*
K
dt
(где первое слагаемое и является оценкой эффекта ОС).
Окончательная формула зависимости размера интервала DT, на котором
точность управления равна 5%, от числа нитей N в системе имеет вид:
2*(N-33)  0.05*D
(21)
Далее приводится иллюстрация эффекта при работе balance manager на
реальной системе и теоретическая (следующая из нашей модели)
зависимость точности управления на интервалах около 1 секунды или 100
квантов от числа нитей.
19
1,2
Точность,%
1
0,8
0,6
0,4
0,2
0
1
21
41
61
81
Количество нитей в системе
Рис 6. Теоретическая зависимость точности управления от количества
нитей в системе
Затем приводятся результаты практических измерений для продукта Aurema
На рисунке ниже представлена реальная и теоретическая зависимости доли
процессорного времени от количества нитей.
Доля времени CPU
0,6000
0,4000
Ожидаемое
Реальное значение
0,2000
0,0000
2
4
8
16
32
48
64
80
Количество нитей в системе
Рис 7. Теоретическая и реальная зависимость доли времени
центрального процессора от числа нитей
Измеренная в результате эксперимента зависимость точности управления от
количества нитей представлена ниже
20
1,2
ошибка
1
0,8
0,6
0,4
0,2
0
2
4
8
16
32
48
64
80
количество нитей
Рис 8. Экспериментальная
количества нитей в системе
зависимость
величины
ошибки
от
Таким образом, результат проведенных измерений подтверждает
целесообразность использования нашей модели для обеспечения требуемого
качества управления.
В заключении приведены основные результаты исследования.
Основные результаты и выводы диссертации
1. Разработана
математическая
модель
двухуровневого
управления ресурсами в ОС с закрытыми исходными кодами.
В рамках данной модели объяснены существующие
механизмы контроля ресурсов в современных ОС.
2. Исследованы и явно выражены ограничения, которые нужно
наложить на управляющую систему нижнего уровня, чтобы
обеспечить требуемое качество управления.
3. Разработана математическая модель и метод группового
управления ресурсами центрального процессора в условиях
функционирования виртуальных выделенных серверов с
целью ограничения сверху потребления времени центрального
процессора.
4. Разработанные модели реализованы в виде комплекса
программ,
обеспечивающего
требуемое
качество
обслуживания. Проведен ряд экспериментов на реальных
программных
комплексах,
результаты
экспериментов
полностью подтвердили справедливость предложенных
моделей.
21
В приложениях приведены основные характеристики системы Virtuozzo
и описание ряда других проектов в области виртуализации ресурсов,
иллюстрирующих эффективность разработанных в диссертации моделей.
Список публикаций по теме диссертации
1. Луковников И., Коротаев К., Кобец А. Проблемы управления
распределяемыми ресурсами ОС // Информационные технологии. - М. 2006.
- №10 С. 71-78.
2. Коротаев К., Емельянов П., Луковников И. Модель жесткого ограничения
выделяемого процессорного времени в задаче планирования процессов //
Вестник НГУ / Новосибирский университет. Сер.: Информационные
технологии. - 2006. - Т. 1, вып. 2. - С. 99-109.
3. Луковников И., Емельянов П., Коротаев К. Основные проблемы реализации
алгоритмов пропорционального планирования/ / Процессы и методы
обработки информации: Сб.ст. – М.: Моск. физико-техн. ин-т, 2006. - C. 8691.
4. Луковников И., Тормасов А., Коротаев К. и др, Основные проблемы
обеспечения точности управления при наложенном управлении ресурсами в
современных операционных системах // Процессы и методы обработки
информации: Сб.ст. – М: Моск. физико-техн. ин-т, 2006. - С. 237-242.
5. Коротаев К., Луковников В., Луковников И. О существующих
планировщиках задач, пропорциональности распределяемого ими
процессорного времени и способах улучшения качества обслуживания //
Научное творчество молодежи. Часть I. Материалы X Всероссийской
научно-практической конференции. – Кемерово: Кемеровский гос. универ-т,
- С. 74.
6. Коротаев К., Луковников И. и др. `Честный'' планировщик задач на основе
аппроксимации идеального времени (ITAFS): новый подкласс
пропорционально-долевых алгоритмов планирования задач для процессоров
// Научное творчество молодежи. Часть I. Материалы X Всероссийской
научно-практической конференции. – Кемерово: Кемеровский гос. универ-т,
- С. 75.
7. Тормасов А., Луковников И., `Алгоритмы управления ресурсами
операционных систем // Современные проблемы фундаментальных и
прикладных наук. Часть VII. Управление и прикладная математика: Труды
XLVII научной конференции. – М. – Долгопрудный: Моск. физ.-техн. ин-т,
2004. - С. 41.
8. Коротаев К., Луковников В., Луковников И. Многоуровневый планировщик
процессов для изоляции процессов и групп пользователей. Проблемы
балансировки нагрузки и пути их преодоления // Приоритетные направления
модернизации общего образования. Материалы Всероссийской научнопрактической конференции, посвященной 60-летию ТОИПКРО. –Т. 1. –
Томск: ТОИПКРО, 2006. – С. 174—175.
9. Луковников В., Луковников И., Коротаев К, Алгоритмы управления
ресурсами операционных систем// Приоритетные направления
модернизации общего образования. Материалы Всероссийской научнопрактической конференции, посвященной 60-летию ТОИПКРО. –Т. 1. –
Томск: ТОИПКРО, 2006. – С. 177—180.
10. Луковников И., Коротаев К., Кобец А, Проблемы управления
распределяемыми ресурсами ОС// Приоритетные направления
22
модернизации общего образования. Материалы Всероссийской научнопрактической конференции, посвященной 60-летию ТОИПКРО. –Т. 1. –
Томск: ТОИПКРО, 2006. – С. 180—181.
23
Луковников Иван Васильевич
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
ДВУХУРОВНЕВОГО УПРАВЛЕНИЯ
РЕСУРСАМИ
В ОПЕРАЦИОННЫХ СИСТЕМАХ С
ЗАКРЫТЫМИ ИСХОДНЫМИ КОДАМИ
Автореферат
Подписано в печать 11.09.2006. Формат 60х90/16.
Усл печ л 1.0. Тираж 80 экз. Заказ No 470.
Московский физико-технический институт
(государственный университет)
Печать на аппарате Rex-Rotary Copy Printer 1280. НИЧ МФТИ.
141700, г Долгопрудный Московской обл, Институтский пер, 9,
тел.: (095) 4088430, факс (095) 5766582
24
Download