Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы_лекции.doc
Скачиваний:
47
Добавлен:
28.09.2019
Размер:
1.71 Mб
Скачать

1.6. Задачи, вычислительные процессы и ресурсы

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

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

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

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

  • идентификатор процесса PID – имя или иная характеристика, под которой процесс зарегистрирован в операционной системе;

  • тип (или класс) процесса, определяющий для супервизора некоторые правила предоставления ресурса;

  • приоритет предоставления ресурсов в пределах одного класса;

  • переменная состояния, которая указывает состояние, в котором находится процесс (готов к работе, выполняется, ожидает устройство ввода-вывода и т.д.);

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

  • место в памяти или его адрес для организации обмена данными и сигналами с другими процессами;

  • параметры запуска (момент времени запуска и периодичность процесса);

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

Дескриптор процесса необходим в случае временного останова процесса по каким-то причинам. В его описании упоминались состояния процесса. Наглядно состояния процесса и способы перехода из одного состояния в другое показываются на диаграмме процесса (рис. 1.5).

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

Рис. 1.5. Диаграмма состояния процесса

Активный процесс имеет три состояния:

  • готовность – все ресурсы могут быть предоставлены, если процесс перейдёт в состояние выполнения;

  • выполнение – все ресурсы выделены, происходит выполнение команд программы;

  • ожидание – затребованные ресурсы не могут быть выделены или не завершена операция ввода-вывода.

Говоря о процессах, следует иметь в виду, что в вычислительной системе могут протекать процессы трёх видов:

  • системные управляющие процессы, представляющие процессы супервизора и занимающиеся распределением ресурсов и управлением;

  • системные обрабатывающие процессы, не входящие в ядро операционной системы, требующие ресурсы и получающие их от супервизора;

  • процессы, порождённые задачами пользователей.

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

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

В настоящее время ресурс стал абстрактным понятием: