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

3.2.5 Состояния процессов и потоков

Для потока разрешенные такие состояния:

создание (new) — поток находится в процессе создания;

выполнение (running) — инструкции потока выполняет процессор (в конкретный момент времени на одном процессоре только один поток);

ожидание (waiting) — поток ожидает некоторого события (например, завершение операции ввода-вывода); такое состояние называют заблокированным, а поток - прекращенным;

готовность (ready) — поток ожидает, что планировщик переключит процессор на него, при этом он имеет все необходимые ему ресурсы, кроме процессорного времени;

завершение (terminated) — поток завершил выполнение (если при этом его ресурсы не были изъяты с системы, он переходит в дополнительное состояние - зомби).

Возможные переходы между состояниями потока изображены на рис. 3.2

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

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

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

В многотопотоковых системах также можно выделять состояния процессов.

Например, в многотопотоковости, реализованной по схеме М:1, потоки изменяют свои состояния в режиме пользователя, а процессы - в режиме ядра.

3.3 Описание процессов и потоков

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

Для управления распределением ресурсов ОС должна поддерживать структуры данных, которые содержат информацию, которая описывает процессы, потоки и ресурсы. К таким структурам данных принадлежат:

  • таблицы распределения ресурсов: таблицы памяти, таблицы ввода-вывода, таблицы файлов и т.п.;

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

3.3.1. Управляющие блоки процессов и потоков

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

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

  • идентификационные данные потока (обычно его уникальный идентификатор);

  • состояние процессора потока: управляющие регистры процессора, счетчик инструкций, указатель стека;

  • информацию для планирования потоков.

Таблица потоков - это список или массив управляющих блоков потока. Она расположена в защищенной области памяти ОС.

Управляющий блок процесса (Ргосеss Соntrol Вlоск, РСВ) отвечает процессу, который присутствует в системе. Такой блок может содержать:

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

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

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

  • информацию из распределения адресного пространства процесса;

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

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

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