Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВОПРОС-ОТВЕТ 2012(42)Ф.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.63 Mб
Скачать

Вопрос 16. Реализация (создание) процессов и потоков. Дескрипторы. §4.2.2.Реализация (создание) процессов и потоков.

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

Для планирования процессов и потоков ОС создает для каждого из них специальную информационную структуру называемую дескриптором (descriptor – описатель). Создать процесс – значит создать дескриптор процесса. Дескриптор описывает текущее состояние процесса или потока во время всего жизненного цикла их существования. В разных ОС дескрипторы процесса имеют разные названия: управляющий блок процесса в OS/2 – Process Control Block (PCB); дескриптор процесса в UNIX; объект-процесс (object-process) в Windows NT и др.

В общем случае дескриптор процесса содержит следующую информацию:

- идентификатор процесса;

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

- приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы; в рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;

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

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

- информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т. п.);

- информация (место или его адрес) для организации общения с другими процессами;

- параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);

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

В многопоточной системе при создании процесса ОС создает для каждого процесса как минимум один поток. При создании потока так же, как и при создании процесса, операционная система генерирует описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию. В исходном состоянии поток (или процесс, если речь идет о системе, в которой понятие «поток» не определяется) находится в приостановленном состоянии.

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

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