Модели операционных систем




Ниже будем рассматривать некоторую модельную операционную систему. Будем считать, что этапы жизненного цикла процесса разделены на два блока. Первый блок — это размещение процесса, или программы, в буфере ввода процессов (БВП). В этом буфере размещаются процессы от момента их формирования, или ввода в систему, до начала обработки его центральным процессором. Второй блок объединяет состояния процесса, связанные с размещением процесса в буфере обрабатываемых процессов (БОП), т.е. будем считать, что все процессы, которые начали обрабатываться центральным процессором, размещаются в данном буфере. Мы выделили именно два логических блока, т.к. эта модель отражает наиболее общую картину. Процесс после его формирования не обязательно сразу попадает на процессор, а многие информационные системные структуры образуются только тогда, когда процесс начинает обрабатываться, соответственно, поэтому можно провести разделение по структурной организации. Размеры буферов в различных системах могут варьироваться.

Теперь рассмотрим модели операционных систем того или иного класса систем, и начнем мы рассмотрение модели пакетной однопроцессной системы (Рис. 69). В подобной системе жизненный цикл процесса состоит всего из трех этапов. Первый этап — ожидание начала обработки, т.е. поступление процесса в очередь на начало обработки процессором и ожидание им начала своей обработки (процесс попадает в БВП). Второй этап — обработка (переход из БВП в БОП). Последний этап — завершение процесса, освобождение системных ресурсов. Данная система не имеет ожиданий готовых процессов или ожиданий ввода-вывода — это однопроцессная система, которая обрабатывает один процесс, причем все обмены синхронные, и процесс никогда не откладывается.

Рис. 69. Модель пакетной однопроцессной системы. 0 — поступление процесса в очередь на начало обработки ЦП (процесс попадает в БВП). 1 — начало обработки процесса на ЦП (из БВП в БОП). 2 — Завершение выполнения процесса, освобождение системных ресурсов.

Следующая модель — модель пакетной мультипроцессной системы (Рис. 70). Данная модель уже имеет более богатый набор состояний процесса. Есть состояние ожидания начала обработки в БВП, после которого процесс попадает в БОП на обработку центральным процессором. Поскольку мы рассматриваем модель пакетной системы, то обрабатываемый процесс может либо завершиться, либо перейти в состояние ожидания ввода-вывода (если процесс обращается к операции обмена). Когда процесс переходит из состояния обработки на процессоре, система может поставить на счет либо процесс из БВП, либо из очереди готовых на выполнение процессов в зависимости от той или иной реализованной стратегии. Соответственно, после того, как процесс завершил обмен, он меняет свой статус и попадает в очередь на выполнение, из которой позже он попадет снова на выполнение.

Рис. 70. Модель пакетной мультипроцессной системы. 0 — поступление процесса в очередь на начало обработки ЦП (процесс попадает в БВП). 1 — начало обработки процесса на ЦП (из БВП в БОП). 2 — процесс прекращает обработку ЦП по причине ожидания операции ввода-вывода, поступает в очередь завершения операции обмена (БОП). 3 — операция обмена завершена, и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП). 4 — выбирается процесс для выполнения на ЦП. 5 — завершение выполнения процесса, освобождение системных ресурсов.

Произведя в рассмотренной модели пакетной мультипроцессной системы небольшие изменения, можно получить модель операционной системы с разделением времени (Рис. 71). Структурно достаточно добавить возможность перехода из состояния обработки центральным процессором в очередь готовых на выполнение процессов. Т.е. система имеет возможность прервать выполнение текущего процесса и поместить его в указанную очередь. Но такая модель не предполагает свопинга, или механизма откачки процесса во внешнюю память. В принципе, такую возможность можно также добавить в модель системы (Рис. 72), тогда появляется еще одно состояние, характеризующее процесс, как откачанный во внешнюю память. Заметим, что в новое состояние могут переходить процессы лишь из очереди готовых на выполнение процессов, а процессы, ожидающие окончания ввода-вывода, свопироваться не могут, иначе в системе будут «зависать» заказы на обмен.

Рис. 71. Модель ОС с разделением времени. 6 — процесс прекращает обработку ЦП, но в любой момент может быть продолжен (истек квант времени ЦП, выделенный процессу). Поступает в очередь процессов, ожидающих продолжения выполнения центральным процессором (БОП).

Рис. 72. Модель ОС с разделением времени (модификация). Заблокированный процесс может быть откачан (свопирован) на внешний носитель, а на освободившееся место может быть подкачен процесс с внешнего носителя, который был откачен ранее, либо взят новый.

Типы процессов

Рассматривая процесс в той или иной операционной системе, можно обнаружить, что встречается деление процессов на две категории: т.н. полновесные процессы и легковесные процессы, или нити.

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

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

Рис. 73. Типы процессов: однонитевая (а) и многонитевая (б) организации.

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

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

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

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

Соответственно, перед операционной системой помимо управления полновесными процессами, планирования и выделения им ресурсов возникает задача управления нитями.

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

В заключение отметим, что многие современные операционные системы (как семейства Unix, так и Windows-системы, и др.) обеспечивают работу с нитями.

Контекст процесса

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

- пользовательская составляющая — это совокупность машинных команд и данных, которые характеризуют выполнение данного процесса;

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: