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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ВСЁ О ПЛАТФОРМАХ SMART TV


Похожие статьи.

Понравилась статья? Поделиться с друзьями: