Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Структура контекста процесса




 

Контекст процесса включает в себя:

· содержимое адресного пространства задачи

· информацию об аппаратных регистрах

· структуру данных ядра

 

По функциональному признаку контекст делят на:

· пользовательский контекст, который включает в себя:

o код и данные

o стек задачи

o совместно используемые области памяти в виртуальных адресах

Когда не хватает места в ОЗУ часть пользовательского контекста помещается в область swapping’a.

· регистровый контекст, который включает в себя:

o счетчик команд, указывающий адрес следующей команды. Адрес как правило является виртуальным либо внутри АП задачи, либо внутри АП ядра

o слово состояния процессора, который указывает аппаратный статус по отношению к конкретному процессу (режим работы процессора, приоритет). Регистр состояния зависит от конкретного процессора.

o РОНы

o Указатель на посл. выполненную или след. команду (в зависимости от архитектуры) (IP)

o Указатель вершины стека (адрес стека ядра или стека задачи) (SP)

· системный контекст, который состоит из статической составляющей и динамической составляющей. Постоянно процесс использует только статическую составляющую, которая не изменяется по ходу выполнения процесса. Кроме того, имеется переменное количество динамических составляющих. Динамический контекст имеет структуру стека, количество динамических уровней = количеству уровней прерываний процессора + 2 (на переход в режим задач и обратно в режим ядра).

 

Статическая часть контекста включает в себя:

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

o привилегии процесса, адресное пространство, выделенное под выполнение процесса

o общие и частные таблицы областей процесса (общие есть для каждого процесса). Управление памятью – ID участков вирт-го адр-го пр-ва процесса, не явл-го резидентным.

o таблица преобразования виртуальных адресов в физические

o записи частной таблицы областей памяти. Они необходимы для преобразования виртуальных адресов в физические

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

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

0-й (нижний) – пользовательский.

На следующих уровнях – свой, регистровый контекст.

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

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

· Запоминание «старого» контекста

· Восстановление «нового» контекста

Информация для восстановления «нового» процесса берется из таблицы процессов.

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

 

 

Наряду с функциональным структурированием существует иерархическое. Это характерно для многопоточных систем. Связано с тем, что для множества потоков можно выделить общую часть. Существует локальный контекст – для одного потока, групповой контекст – для групп потоков, глобальный контекст – для процесса.

Преимущества – ускоряет переключение потоков за счет ускорения переключения контекстов.

UNIX: делает контекст по функциональным. NetWare: делает контекст по иерархии.

Системный контекст переключается частично аппаратно, частично программно. Дескриптор хранится в виде строки таблицы процессов. Пространство под табл. процессов резервируется динамически в области ядра. На основе этой таблицы происходит планирование и диспетчеризация процессов.

 

Планирование и диспетчеризация

Переход от одного процесса к другому выполняется в результате планирования потоков. Фактически осуществляется планирование потоков, а не процессов.

Осуществляется на основе информации, хранящейся в системе.

При планировании решается 2 задачи:

1) определение момента t смены актив потока

2) выбор потока из очереди готовых (как правило, тех, что в ОЗУ):

- динамически (online);

- статически (offline).

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

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

Статическое планирование – формирование мультизадачной смеси (исп-ся в ОС РВ). Здесь есть предварительная информация о решаемых задачах (полная или частичная). Выполняется разработка расписания задач, результатом чего является таблица расписания выполнения задач (где и когда выполняется та или иная задача). Такое планирование повышает быстродействие.

Алгоритмы планирования:

- на основе квантования (фикс/нефикс, штрафы, изменение длительности кванта каждого процесса, LIFO, FIFO, RR (round robin));

- на основе приоритетов.

Выбирается задача с наивысшим приоритетом, убирается по-разному.

Абсолютный приоритет – может прерывать до завершения (возможно вложенное выполнение).

Относительный приоритет – по крайней мере до логического конца (до конца кванта времени).

При планировании в ОС общего назначения по умолчанию работает относительная схема приоритетов. В ОС РВ работает схема абсолютных приоритетов.

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

 

37. Алгоритмы планирования

1. На основе квантования – передача происходит либо по завершении процесса, либо при переходе процесса в ожидание, либо при завершении времени квантования, либо при выходе с ошибкой. Квантование выполняется во всех системах с разделением времени. Величина кванта может быть фиксированной либо изменяющейся. Изменение времени кванта может зависеть от стадии в жизненном цикле процесса и связано с оптимизацией

Приоритеты: абсолютные, относительные

Схема выбора всегда одинаковая – выбирается процесс с наивысшим приоритетом. Но если во время выполнения процесса приходит процесс с более высоким приоритетом, то при реализации абсолютного приоритета текущий процесс прерывается и начинается выполнение нового; в относительном – выполнение пришедшего процесса начинается только после завершения текущего.

Вытесняющая (retentive) и невытесняющая (non-reentive) многозадачность

- Невытесняющая – способ планирования процессов, при котором выполняющийся процесс работает до тех пор, пока он сам по собственной инициативе не передаст управление планировщику ОС (например, обслуживание ПУ или ФС – чтобы закончить начатую работу).

«-» - может произойти неконтролируемый захват ресурсов в монопольное пользование.

- Вытесняющая – способ, при котором решение о переключении работы с одного процесса на другой принимается исключительно планировщиком ОС, а не активной задачей (напр., большинство ОС общ. назн.).

«-» - задача может не успеть выполниться.

Плюсы обратно.

Основные различия – степень централизации механизма планирования. При невытесняющей схеме механизм планирование распределяется между прикладной задачей и ОС. Такой механизм более сложный. При вытесняющей – реализация планирования полностью является прерогативой ОС.

 

Планирование и диспетчеризация в UNIX системах

Анализ очередей при каждом переключении контекста. Связано с таймерными прерываниями.

Основные методы планирования

- метод карусели – кольцевой буфер. Ядро предоставляет ресурсы процессу на определённый квант времени. Далее выбирается та задача, которая дольше всего была в ожидании. После этого – запись в конец буфера (метод FIFO). Квант регулируется динамически в зависимости от загруженности системы. Очередность регулируется приоритетами. Процесс возобновляется из точки приостанова. Возобновлений может быть много.

Диспетчеризация – реализация решения, принятого на этапе планирования программами и аппаратными средствами.

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

Параметры диспетчеризации

Существует специальное поле структур, описывающих процессы. Они включают параметры планирования. Есть поле динам/стат приоритетов.

1) приоритет в режиме задачи (user mode)

2) приоритет в режиме ядра (kernel mode)

Приоритет в режиме задачи зависит от того, как этот процесс использовал ресурсы в ранее.

С каждым уровнем приоритетов ассоциируется своя очередь процессов. Приоритеты для (1) оценивается после возвращения процесса из режима ядра в режим задачи. Приоритеты для (2) вычисляются для процессов находящихся в режиме ожидания (останова). Для (1) существует верхнее пороговое значение, для (2) – нижнее пороговое значение

Ядро вычисляет приоритет в следующих случаях:

- непосредственно перед переходом процесса в состояние останова;

- при возвращении процесса из режима ядра в режим задачи;

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

В течение кванта времени возможно несколько прерываний, отраженных в таблице процессов.

Приоритет процесса в очереди = полураспад + базовое значение.

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

Все алгоритмы годятся для систем разделения времени и не годятся для систем реального времени, так как не гарантируют запуск процесса в определенный момент времени. Альтернатива: использование микроядерных ОС.

 





Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 1689 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2196 - | 2142 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.