Основные понятия теории операционных систем

Операционная система:

· выполняет функции управления вычислительными процессами в вычислительной системе;

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

· образует программную (операционную) среду, в которой выполняются прикладные программы пользователей.

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

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

Примеры процессов:

· выполнение прикладных программ пользователей;

· редактирование текста;

· трансляция исходной программы;

· компоновка объектного модуля;

· исполнение загрузочного модуля;

· и.т.д.

Определение концепции процесса необходимо для выработки механизмов распределения и управления ресурсами. Понятие ресурса – это также основное понятие ОС. Ресурсом называется всякий объект, который может распределяться внутри системы.

Ресурсы бывают:

1. Делимые:

a) используемые одновременно;

b) используемые параллельно.

2. Неделимые.

При разработке первых ОС ресурсами считались:

· процессорное время;

·

Системные ресурсы
память;

· каналы ввода/вывода;

· периферийные устройства.

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

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

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

Ресурс может быть выделен задаче, обратившейся к супервизору ОС, если:

· он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;

· текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;

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

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

Активный процесс, в свою очередь, может быть в одном из следующих состояний:

· выполнения (running) – все затребованные процессом ресурсы выделены. В таком состоянии в однопроцессорной вычислительной системе находиться только один процесс;

· готовности к выполнению (ready) – ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения;

· ожидания (блокирования – blocked) – затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.

За время своего существования процесс может неоднократно совершать переходы из одного состояние в другое. Возможные переходы процесса изображены в виде графа состояний на рис. 2.

Рис. 2. Граф состояний процесса

Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях:

· по команде пользователя;

· при выборе из очереди планировщиком;

· по вызову из другой задачи;

· по прерыванию от внешнего устройства, запускающего задачу;

· при наступлении запланированного времени запуска программы.

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

Из состояния выполнения процесс может выйти по одной из следующих причин:

· процесс сообщает супервизору ОС о своем завершении. Супервизор либо переводит его в список бездействующих процессов, либо уничтожает;

· процесс переводится супервизором ОС в состояние готовности в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;

· процесс блокируется либо вследствие запроса операции ввода/вывода, либо в силу невозможности предоставить запрошенный ресурс.

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

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

Понятие процесса было введено для реализации идей мультипрограммирования, а для реализации мультизадачности в ее исходном толковании ввели так называемые «легковесные» процессы – потоки или треды (tread – поток, нить). Когда говорят о процессах, тем самым отмечают их обособленность: у каждого процесса имеется свое виртуальное адресное пространство, каждому процессу назначаются свои ресурсы. В процессах же может быть внутренний параллелизм. Если процесс разбить на подпроцессы (потоки), то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного процесса. Потоки не имеют собственных ресурсов, они развиваются в том же адресном пространстве, что и данный процесс. Единственно, что им нужно иметь, – это процессорный ресурс.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: