Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
спо_экзамен.docx
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
3.3 Mб
Скачать
  1. Создание процессов и потоков

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

множества других процессов, рассматриваемых ОС. Примерами описателей процесса являются блок управления задачей (TCB Task Control Block) в OS/360,блок управления процессом (PCB – Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT. Даже в однозадачной ОС MS-DOS существует подобие описателя процесса – РSР- префикс сегмента программы, где содержится вся служебная информация к программе, там же содержится и таблица открытых файлов.

Создание описателя процесса знаменует собой появление в системе ещё одного претендента на вычислительные ресурсы: начиная с этого момента при распределении ресурсов ОС должна принимать во внимание потребности нового процесса.

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

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

43

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

1.1.2.2 Описатель процесса включает:

информацию по идентификации (уникальный идентификатор процесса),

содержащую уникальное имя процесса для реализации операций управления над процессами как над поименованными объектами;

информацию о состоянии процесса, содержащую информацию о текущем состоянии процесса, позволяющую определить возможность перехода в следующее;

информацию о расположении образа процесса (указатели памяти процесса) в ОП и на диске (образом процесса называется совокупность его кодов и данных);

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

операциях ввода-вывода и другие данные, характеризующие состояние вычислительной среды в момент прерывания (эта информация является по смыслу информацией, хранящейся в некоторых системах например, в OS/360 в слове состояния программы PSW Programm Status Word);

информацию о степени привилегированности процесса (приоритет и права доступа); приоритет процесса используется для упорядочения выделения процессора процессам [если все процессы имеют одинаковый приоритет, то выделение происходит по правилу «первым пришёл, первым обслужен» (FCFS или FIFO)];

информацию о ресурсах (указатели выделенных процессу ресурсов);

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

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

информацию о событиях, осуществления которых ожидает данный

44

процесс, и некоторую другую информацию (время ожидания в очереди,

накопленное время выполнения и др.).

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

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

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