Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lect4_OS_2012.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
79.36 Кб
Скачать

1.3. Системная таблица процессов.

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

Блок управления процессом содержит следующие данные:

  • слово состояния процесса;

  • приоритет;

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

  • степень использования системным процессором;

  • признак диспетчеризации;

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

  • эффективный идентификатор пользователя;

  • реальный и эффективный идентификаторы группы;

  • группу процесса;

  • идентификатор процесса и идентификатор родительского процесса;

  • размер образа, размещаемого в области подкачки;

  • размер сегментов кода и данных;

  • массив сигналов, ожидающих обработки.

Чтобы система функционировала должным образом, ядру необходимо отслеживать все эти данные.

Блок управления памятью содержит следующие данные:

  • указатель на текстовый сегмент (адрес);

  • указатель на сегмент данных (адрес);

  • указатель на сегмент стека (адрес).

Блок управления файлами содержит следующие данные:

  • корневой каталог;

  • рабочий каталог;

  • дескрипторы файла, в которых находится специальная информация о файле;

  • идентификатор пользователя;

  • идентификатор группы.

1.4. Абстрактная модель процесса.

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

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

Такое переключение процессора от программы к программе называется многозадачностью, основанной на мультипрограммировании.

Абстрактная модель дает более легкое представление – представление набора процессов, выполняемых параллельно (псевдопараллельно); для параллельно работающих процессов имеется счетчик команд для каждого из процессов.

1.5. Создание и основные состояния процесса.

Процесс порождается с помощью системного вызова fork или CreateProcess, при котором происходит проверка на наличие свободной памяти, доступной для размещения нового процесса: если требуемая память доступна, то создается дочерний процесс (потомок), представляющий собой точную копию вызывающего процесса; при этом в таблице процессов для нового процесса строится соответствующая структура; новая структура создается также в таблице пользователя, и все ее переменные инициализируются нулями; создаваемому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом.

В UNIX-системах каждому процессу присваивается идентификатор процесса PID - Process Identifier.

Основные события, приводящие к созданию процесса (вызов fork или CreateProcess):

  • загрузка системы;

  • работающий процесс подает системный вызов на создание процесса;

  • запрос пользователя на создание процесса.

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

Основные состояния процесса.

  • Выполнение – состояние, когда процесс занимает процессор, т. е. состояние активности процесса.

  • Готовность – состояние, когда процесс временно приостановлен, чтобы позволить выполняться другому процессу; приостановленный процесс состоит из собственного адресного пространства, называемого образом памяти (core image), и компонентов таблицы процессов – в числе компонентов и его регистры.

  • Ожидание – состояние, когда процесс заблокирован и не может быть запущен прежде, чем произойдет какое-то внешнее событие (например, операция ввода/вывода).

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

Возможные переходы между состояниями можно показать следующим образом:

1 – процесс блокируется, ожидая входных данных

2 – планировщик процессов ОС выбирает другой процесс

3 – планировщик процессов выбрал определенный процесс для выполнения

4 – поступили входные данные.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]