Абстрактная модель процесса.
Системная таблица процессов.
Режимы функционирования процессов.
Процессы могут функционировать в двух режимах: системном и пользовательском.
Системный режим является наиболее важным, поскольку в нем выполняется следующее:
· обработка прерываний, вызванных внешними сигналами и системными вызовами, а также управлением доступа к диску;
· распределение дополнительной динамической памяти и других ресурсов системы.
Пользовательский режим: процесс функционирует, когда выполняется код программы, заданный пользователем.
В ОС вся информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в системной таблице процессов, которая находится в ядре; для каждого процесса создается свой блок управления, который помещается в таблицу процессов, представляющую собой массив структур блоков управления процессами, памятью, файлами: в каждом блоке содержатся данные, отслеживаемые ядром для правильного функционирования системы.
Блок управления процессом содержит следующие данные:
· слово состояния процесса;
· приоритет;
· величину кванта времени, выделенного системным планировщиком;
· степень использования системным процессором;
· признак диспетчеризации;
· идентификатор пользователя, которому принадлежит процесс;
· эффективный идентификатор пользователя;
· реальный и эффективный идентификаторы группы;
· группу процесса;
· идентификатор процесса и идентификатор родительского процесса;
· размер образа, размещаемого в области подкачки;
· размер сегментов кода и данных;
· массив сигналов, ожидающих обработки.
Чтобы система функционировала должным образом, ядру необходимо отслеживать все эти данные.
Блок управления памятью содержит следующие данные:
· указатель на текстовый сегмент (адрес);
· указатель на сегмент данных (адрес);
· указатель на сегмент стека (адрес).
Блок управления файлами содержит следующие данные:
· корневой каталог;
· рабочий каталог;
· дескрипторы файла, в которых находится специальная информация о файле;
· идентификатор пользователя;
· идентификатор группы.
В абстрактной модели все функционирующее на компьютере ПО, включая ОС, организовано в виде набора логически упорядоченных процессов, у каждого из которых есть собственный виртуальный центральный процессор.
На самом деле, реальный процессор переключается с процесса на процесс: если рассмотреть несколько работающих программ (процессов), то в каждый момент времени активен только один процесс, и существует только один физический счетчик команд, в который загружается логический счетчик команд текущего процесса; когда время, отведенное текущему процессу, заканчивается, физический счетчик команд сохраняется в памяти – в логическом счетчике команд процесса.
Такое переключение процессора от программы к программе называется многозадачностью, основанной на мультипрограммировании.
Абстрактная модель дает более легкое представление – представление набора процессов, выполняемых параллельно (псевдопараллельно); для параллельно работающих процессов имеется счетчик команд для каждого из процессов.