Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по конспектам 2011.docx
Скачиваний:
13
Добавлен:
21.04.2019
Размер:
967.53 Кб
Скачать

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

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

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

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

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

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

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

  • код и данные

  • стек задачи

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

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

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

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

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

  • РОНы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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