Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
30
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

2. Завершение потока

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

-сохранить статистические данные потока и код возврата в его дескрипторе;

-перевести все ресурсы, принадлежащие потоку в непротиворечивое и стабильное состояние;

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

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

-состояние потока устанавливает в значение «завершен»;

-если данный поток является последним активным потоком в процессе – завершить процесс.

В UNIX для завершения потока используется системный вызов thr_exit(); в Windows – функция Win32 ExitThread(). Для того, чтобы завершить поток извне, в UNIX используется thr_kill(), в Windows – TerminateThread().

3. Операции, осуществляющие переходы между различными состояниями потока

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

Планирование

Когда компьютер работает в многозадачном режиме, на нем может быть несколько потоков, находящихся в состоянии «готов к исполнению». Если доступен только один процессор, то необходимо выбирать, какому из потоков его предоставить. Отвечающая за это часть операционной системы называется планировщиком, а используемый алгоритм выбора – алгоритмом планирования.

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

Модель поведения процесса с одним потоком

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

Учебно-исследовательская лаборатория «Информационные технологии» 23

Лабораторный практикум по курсу "Операционные системы"

а)

Длинные блоки вычислений

Ожидание события или завершения ввода-вывода

Короткие блоки вычислений

б)

Время

Рис. 10 Периоды использования процессора, чередующиеся с ожиданием ввода-вывода

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

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

Ожидание ввода-вывода или нахождение в состоянии ожидания

Поток2

Поток1

Время

Рис. 11 Временные диаграммы двух потоков одного процесса

24 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

Завершение состояния ожидания – переход в

состояние «готов к исполнению»

Поток2

Поток1

Поток в состоянии «готов к исполнению»

Время

Рис. 12 Временная диаграмма использования центрального процессора

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

Ключевым вопросом планирования является выбор момента принятия решений. Существует несколько ситуаций, в которых необходимо осуществлять планирование.

1. Создание нового процесса.

Необходимо решить, поток какого процесса будет выполняться – родительского или дочернего.

2. Создание нового потока.

Необходимо решить, какой поток будет выполняться – только что созданный или создавший поток.

3. Завершение потока или процесса.

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

4. Блокирование потока (переход из состояния «выполнение» в состояние «ожидание»).

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

5. Разблокирование потока (переход из состояния «ожидание» в состояние «готов к выполнению»).

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

6. Возникновение аппаратного события.

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

Учебно-исследовательская лаборатория «Информационные технологии» 25

Соседние файлы в предмете Современные операционные системы