Автореферат: Математическая модель двухуровневого управления ресурсами в операционных системах с закрытыми исходными кодами

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

· если задача не запрашивает выделение виртуальной памяти, то мы считаем, что соответствующий компонент вектора потребления, отвечающий за виртуальную память, равен 0

· если задача освобождает виртуальную память, то мы считаем, что в данный момент времени он может освободить не более 1 единицы виртуальной памяти и соответствующий компонент вектора потребления, отвечающий за виртуальную память, равен -1

· легко понять, что для потребления ресурсов центрального процессора соответствующий компонент вектора потребления не может быть равен -1

Далее обсуждаются основные свойства вектора потребления:

· его компоненты могут иметь ненулевую ковариацию (например, операция ошибки страницы (page fault) при работе со спроецированным файлом, может привести не только к увеличению потребления физической памяти задачей, но и к потреблению пропускной способности жесткого диска (а если файл находится на сетевом устройстве, то и пропускной способности сети))

· компоненты вектора, как уже и упоминалось выше, удовлетворяют условию (1)

· матрица ковариации векторов потребления разных процессов может быть ненулевой (увеличение потребления физической памяти одним процессом может привести к уменьшению потребления физической памяти другим процессом - за счет переноса длительно неиспользуемых страниц памяти в файл подкачки)

· учет параметров в векторе потребления может зависеть от модели учета ресурсов (например, обращение к жесткому диску, вызванное за счет ошибки страницы (page fault), может быть «записано» как на счет задачи, ее вызвавшей, так и на счет той части системы, которая отвечает за управление памятью. Другим примером может послужить выполнение в системах семейства Microsoft Windows асинхронных вызовов - APC или DPC, потребление времени центрального процессора, которое записывается «на счет» процессов system и idle соответственно)

Далее вводится понятие функции фактического (реального) потребления,

.

так же как и функции желаемого, но t - реальное (физическое, системное) время, в котором процесс получал ресурсы.

Обсуждается, что в общем случае вид функции желаемого потребления отличается от вида функции фактического потребления

Поскольку:

· существует так называемый эффект внешней среды -задача в системе не одна и возможны возмущения, связанные, например, с работой системы управления памятью (задача может получить кванты процессорного времени, но немедленно воспользоваться ими для своих нужд не может, т.к. необходимые ей данные могут находиться в файле подкачки, скорость доступа к которому может быть ограничена из-за большого количества конкурентных задач, работающих с жестким диском)

· возможны эффекты обратной связи. Примером может послужить эффект CPU starvation, когда процесс, не получавший какое-то время возможности выполняться, но находящийся в очереди на выполнение, получает возможность потребить время центрального процессора за счет кратковременного динамического повышения приоритета (CPU boost)

· возможны эффекты управления. Примером могут послужить CPU boosts, выделяемые планировщиком задач Windows 2003 процессам, закончившим операцию ввода-вывода.

Отмечается, что отсутствие прямого контроля над ядром операционной системы, зачастую не позволяет нам устранить эффекты, описанные выше. Более того, даже если у нас остается возможность сгладить эти эффекты, подобное сглаживание может привести к серьезным потерям производительности.

Тем не менее, отмечается, что если мы сможем сделать достаточно реальные предположения о поведении функций потребления процессов, позволяющие с допустимой точностью достигать желаемого распределения ресурсов даже при наличии вышеуказанных эффектов, то

· мы обеспечим достаточный уровень управления

· обеспечим на заданном отрезке времени допустимые отклонения в SLA (соглашение о уровне сервиса) для системы с двухуровневым управлением по отношению к системе, где этого управления нет.

Далее рассматривается преобразование собственного времени процесса в системное время:

Данное преобразование осуществляется за счет собственного управления операционной системы и наложенного нами управление.

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

Так же делается допущение, что данное преобразование не приводит к принципиальному изменению функции потребления, то есть задача, не отработавшая на протяжении, например, 15 секунд, не примет решения о завершении себя. Такое предположение допустимо для большинства рассматриваемых полезных нагрузок.

Далее вводится функция идеального потребления

так же, как и функция желаемого, но t** - идеальное время при котором идеально выполняется наложенное нами ограничение (например, гарантия доли процессорного времени).

Вводится идеальная функция, обеспечивающая данное преобразование,

Считается, что история функции потребления известна и преобразование зависит только от времени.

Далее приводится иллюстрация модели на примере потребления процессом времени центрального процессора.

На Рис1 представлена зависимость желаемого потребления центрального процессора от времени.

Рис 1. Функция желаемого потребления

Как мы видим из данного рисунка, в точках 2,3,5 и так далее процесс готов полностью потребить время центрального процессора.

За счет планировщика времени центрального процессора операционной системы и двухуровневого управления фактическая зависимость потребления от времени выглядит следующим образом (см Рис2):

Рис 2. Функция фактического потребления

Как мы видим, желаемое потребление в момент времени 2 (см график желаемого потребления - время считается относительно «собственного» времени процесса), фактически произойдет в момент времени 2 (см график фактического потребления, где 2 - уже «системное», собственное время процессора).

Соответственно, потребление в момент времени 3 (см график желаемого потребления - время считается относительно «собственного» времени процесса), фактически произойдет в момент времени 5 (см график фактического потребления, где 5 - уже «системное», собственное время процессора) и так далее.

При этом функция идеального потребления выглядит следующим образом (обратим внимание, что здесь используется «идеальное время», при котором идеально выполняются наложенные условия - см. выше).

Далее обсуждаются особенности выбора меры данного вектора. В данном случае, мера вводится как сумма квадратов компонент вектора.

Рис 3. Функция идеального потребления

Далее предлагается рассматривать интегральное отклонение функции идеального потребления от функции фактического потребления.

Размер отклонения и будет считаться критерием качества управления.

Тогда задачу можно сформулировать следующим образом - при каких предположениях о поведении Ri(t*) выполняется следующее условие

Где a - допустимая погрешность управления, имеющая соответствующую размерность. процессор виртуальный сервер электронный

Подынтегральная функция

имеет смысл меры вектора отклонения от идеального потребления.

Что означает

Так же используется факт, что для функций семейства R,R*,R** справедливо утверждение

это следует из определения этих функций (см определение).

Тогда после перехода к собственному времени задачи

Далее используется следующая классификация ресурсов на основе возможности перераспределения ресурсов:

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

· невозобновляемые - для таких ресурсов можно запретить потребление процессом ресурса, но нет возможности освободить потребленные ресурсы. Примером может послужить дисковое пространство - система может запретить (например, через механизм квотирования дискового пространства на основе различных критериев - это реализовано почти во всех современных операционных системах) дальнейшее потребление, но освобождение занятых ресурсов возможно только если задача сама примет решение о необходимости удаления части данных или системный администратор сделает это за нее. Разумеется, в этом случае шансы на потерю данных или на парализацию работы системы очень высоки

· частично возобновляемые - для таких ресурсов можно запретить потребление задачей данного ресурса и через некоторое время освободить ресурсы для использования другими задачами. Примером может послужить потребление физической памяти задачей. Мы можем запретить задаче потреблять память и, при определенных обстоятельствах, подсистема управления памятью операционной системы освободит физическую память для других процессов за счет выгрузки памяти данного процесса в файл подкачки.

Далее детально рассматриваются возобновляемые ресурсы, приводятся их примеры и выделяются 3 типа обеспечения качества обслуживания:

· гарантия потребления ресурса в среднем

· лимит на потребление ресурса в среднем

· лимит на интегральное потребление ресурса

Далее обсуждается гарантия потребления ресурса в среднем - этот случай был рассмотрен ранее в главе 1 при описании модели Fair CPU scheduler. Основная идея состоит в том, что при наличии конкуренции за данный ресурс процесс, в среднем ,потребит долю, не меньшую, чем его вес.

Затем рассматривается лимит на потребление возобновляемого ресурса в среднем - как правило, выражается в абсолютных величинах - речь идет о запрете задаче потреблять больше заданной доли на фиксированном промежутке времени, даже при наличии свободных ресурсов. Например, задаче могут запретить потреблять более 20% времени центрального процессора или больше 1Mbit пропускной способности 100Mbit канала.

Отмечается, что третий случай, лимит на интегральное потребление ресурса - достаточно редко используется и, поэтому, не будет рассматриваться далее. Суть метода состоит в том, что процесс за все время своей жизни не может потребить больше, например, 15 минут процессорного времени. При исчерпании данной квоты процесс завершается. Данный механизм обычно реализован штатными средствами операционных систем (есть и в Linux и в Windows).

Далее из функции фактического потребления выделяются эффекты операционной системы, рассмотренные выше:

где DRi(Fi(t*)) описывает неконтролируемые эффекты ОС.

Затем происходит переход к рассмотрению идеального двухуровневого планировщика, так что выполняется условие (в данном случае мы считаем, что процесс готов потребить ресурс и гарантия совпадает с лимитом)

Где b - доля времени центрального процессора, выделенная данной задаче, - является константой на рассматриваем временном интервале.

Далее (9) сводится к

Это выражение и является желаемым выражением, первое слагаемое в котором нам известно, т.к. мы знаем функцию потребления и управляемо, т.к. мы можем влиять на функцию Fi, третье слагаемое нам так же известно.

Вычитаемое является интегралом от произведения известных нам функций преобразования желаемого потребления и идеального. Эти функции в каждой конкретной задаче так же известны. При этом функций потребления мы можем управлять за счет Fi

Далее устанавливается, что определяющим фактором стабильности нашего управления является функция DRi(Fi(t*)), которая, фактически, описывает специфику потребления и связанные с ним эффекты ОС.

Далее рассматривается частный пример, показывающий влияние эффектов ОС на точность управления и еще раз подтверждается, что отсутствии ограничений на поведение функции желаемого потребления существенно нарушается точность управления.

Далее при условии, что F(t*) настолько хорошо, что в любой момент времени без учета эффектов операционной системы процесс потребляет время точно согласно заявленным требованиям к качеству обслуживания, то есть

Источник: https://otherreferats.allbest.ru/download/1005751/