Краткие сведения о проблемной области выполняемых работ
Как известно, ЭВМ – это согласованная совокупность автоматически функционирующих электронных и электромеханических устройств, предназначенная для выполнения алгоритмически формализованной обработки числовых и символьных данных; следовательно, для решения задачи с помощью ЭВМ, т.е. для функционирования ЭВМ, необходимо задать соответствующий алгоритм.
Вычислительная система (ВС) представляет собой согласованную совокупность технических средств, представляющих собой одну (или несколько) ЭВМ, и программных средств системного и прикладного назначения, обеспечивающих выполнение стоящих перед ВС задач.
Большинство современных ВС характеризуется возможностью функционировать в многопрограммном режиме, что достигается наличием в их составе соответствующей операционной системы.
Операционная система (ОС) – это согласованная совокупность системных управляющих и обрабатывающих программ, а также необходимых для их функционирования информационных массивов, предназначенная для планирования и подготовки исполнения программ пользователей, управления всеми ресурсами ВС, с целью предоставления пользователям возможности рационально и эффективно решать задачи с применением ВС.
Основное назначение операционной системы, обеспечивающей эффективное функционирование ВС, работающей в многопрограммном режиме, - осуществить рациональное распределение и использование ресурсов ВС между вычислительными процессами, протекающими в ВС.
Под ресурсом понимается объект или средство ВС, которое используется для выполнения той или иной машинной программы. Примером ресурса может служить ЦП (точнее время его использования), определенный объем ОП, необходимый для размещения машинной программы, УВВ набор данных, расположенный на ВЗУ, объем свободного пространства на ВЗУ, предназначенного для формирования файла в ходе выполнения программы, подпрограмма, обращение к которой производится в ходе работы основной программы, проведение операции ввода-вывода и т.д. Как видно из приведённых примеров, ресурс может представлять собой не только физическое устройство, но и использование программ или каких-либо информационных структур, существование которых во времени в общем случае не постоянно.
Под процессом понимается ассоциированная с выполнением отдельной машинной программы последовательность запросов на получение ресурсов ВС, их выделение, использование и освобождение.
Процесс – абстракция, вводимая для описания механизма функционирования ОС. ОС рассматривает процессы как единицы, между которыми необходимо распределить и перераспределять ресурсы ВС. В силу естественной ограниченности ресурсов ВС не все запросы на использование ресурсов, выдаваемые различными процессами, могут быть удовлетворены сразу после их поступления к ОС. Это является причиной того, что процессы, кроме всего прочего, отличаются друг от друга тем, в какой степени и на какие ресурсы их запросы удовлетворены; последнее, а также статус и характер использования программы, о которой ассоциируется данный процесс, определяет состояние процесса.
Очевидно, что для выполнения (любой) машинной программы ей должны быть выделены следующие ресурсы ВС:
– ОП (область достаточная для размещения машинной программы или ее определенным образом оформленной части);
– ЦП.
В ходе выполнения машинная программа (и соответствующий ей процесс) может запросить выделение какого-либо ресурса, например, уже существующего файла данных, участка ВнП для создания файла данных, осуществление операции ввода/вывода с использованием УВВ или ВЗУ (ВнП), дополнительного участка ОП, запуск какой-либо другой программы и т.п. При поступлении подобного запроса (что часто реализуется с использованием механизма прерывания) выполнение программы прекращается, по крайней мере, до тех пор, пока ей не будет предоставлен необходимый ресурс. Это приводит к изменению состояния процесса.
Отметим определенную разницу в характере возможного распределения ресурсов, определяемую различием в их природе. Так, например, выделение таких ресурсов как файлы данных, возможно, произвести заранее, перед выполнением машинной программы, то же можно проделать и с УВВ или с ВЗУ. Такой же ресурс как осуществление операции ввода/вывода может выделяться только непосредственно в ответ на запрос процесса (при выполнении соответствующей команды машинной программы). Отметим также, что выделение процессам такого ресурса как область ОП, предназначенная для загрузки машинной программы, носит решающий характер для реализации концепции многопрограммного режима работы, и выделение этого ресурса, хотя бы предварительное, целесообразно проводить на ранних стадиях нахождения процесса в системе.
Здесь находит отражение разделение ресурсов на активные и пассивные. Активный ресурс (ЦП, канал или контроллер ввода/вывода, какая-либо программа) способен выполнять действия по отношению к другим ресурсам и процессам, которые в общем случае приводят к изменению последних, поэтому запросы на их выделение и использование должны быть синхронизированы с алгоритмом, их не возможно заранее определить. Пассивные ресурсы (ОП, файлы данных, УВВ) не производят какие-либо действия сами по себе, поэтому запрос на их использование можно выдать и удовлетворить заранее.
Над каждым процессом, поступившим в той или иной форме в систему, возможно проведение следующих групп операций:
– создание/удаление процесса;
– планирование выполнения процесса;
– диспетчеризация процесса.
Каждая операция над процессом приводит к переходу последнего из одного состояния в другое (за исключением двух операций Порождение и Завершение). Формально каждая операция может быть записана следующим образом:
Наименование_операции (имя_процесса): [исходное_состояние] ->
[результирующее _состояние].
Выделяются следующие виды состояний процесса.
Пассивные состояния
Процессы, находящиеся в пассивном состоянии известны системе, но не конкурируют за ее ресурсы. Можно выделить следующие пассивные состояния процессов:
– начальное состояние процесса; такое состояние характеризуется тем, что ОС известна необходимая для управления данным процессом информация (процесс определен в системе), но не поступил запрос на выполнение этого процесса (точнее, не поступила команда на запуск соответствующей программы, но она готова для выполнения);
– приостановленное состояние процесса; в такое состояние процесс может перейти из любого активного состояния либо по команде оператора ОС. Либо по команде пользователя, либо в ходе управления процессами соответствующими компонентами ОС: приостановленный процесс может быть возобновлен; приостановленное состояние в зависимости от исходного активного состояния (см. ниже) может быть разложено на три соответствующих подсостояния;
– прекращенное состояние процесса; процесс в состояние прекращен, может быть переведен из любого активного состояния и из состояния приостановлен
– законченное состояние процесса; в законченное состояние процесс переходит из активного состояния выполнение.
Активные состояния
Различают несколько видов активных состояний, т.е. состояний, находясь в которых процесс конкурирует за ресурсы ВС. Процесс становится активным в том случае, если в ВС поступила команда выполнить соответствующую программу или возобновить выполнение приостановленного процесса. В этом случае процесс конкурирует за ресурсы с другими находящимися в системе активными процессами - выдает соответствующие запросы на необходимые ему ресурсы ВС; в зависимости от их выделения каждый активный процесс может находится в одном из следующих состояний:
– выполнение - данному процессу выделены все необходимые ресурсы, включая ЦП который обрабатывает машинные команды соответствующей этому процессу программы;
– готовность - данному процессу выделены все необходимые ресурсы кроме ЦП, процесс не выполняется, но он может выполняться после того, прекратится обработка текущего выполняемого процесса;
– ожидание - данному процессу не возможно выделить ресурсы или часть ресурсов, необходимых для его выполнения; запросы на ресурсы удовлетворяются ОС по мере их освобождения в ходе Функционирования многозадачной ОС.
Отметим, что поскольку в состояние ожидания процесс может быть переведен вследствие запросов различного вида ресурсов, состояние ожидания можно разложить на подсостояния, каждое из которых будет соответствовать ожиданию выделения ресурсов одного вида.
Определим следующие типы операций, производимые над процессами: