Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kratko.docx
Скачиваний:
57
Добавлен:
01.04.2022
Размер:
2.04 Mб
Скачать

14. Процессы и потоки. Состояния потока

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

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

Преимущества потоков:

  • Создание потоков - маленькие расходы, чем при создании процессов.

  • Быстрота создания потока по сравнению с процессом

  • Потоки одного процесса могут взаимодействовать через общую память(Повышается производительность)

Состояния потоков:

  • Выполнение – активное состояние(выполняется процессором)

  • Готовность – пассивное состояние(поток заблокирован из за внешних обстоятельств, процессорного времени нет)(Планировщик выбирает поток -> поток переходит в “Выполнение”)

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

Граф состояний потока:

  1. Поток выбран на выполнение;

  2. Поток ожидает завершения ввода/вывода;

  3. Ввод/вывод завершен (событие произошло);

  4. Поток вытеснен планировщиком.

15. Планирование и диспетчеризация потоков, моменты перепланировки.

Переход от одного потока к другому осуществляется в результате планирования и диспетчеризации.

Планирование включает в себя решение двух задач:

● Определение момента времени для смены текущего активного потока;

● Выбор для выполнения потока из очереди готовых потоков.

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

Диспетчеризация - это реализация найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой. Диспетчеризация сводится к следующему:

  • Сохранение контекста текущего потока, который требуется сменить;

  • Загрузка контекста нового потока, выбранного в результате планирования;

  • Запуск нового потока на выполнение.

Ситуации, когда необходима перепланировка:

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

2. Активная задача выполнила системный вызов, связанный с запросом на ввод/вывод или на доступ к ресурсу, который в настоящий момент занят. Планировщик переводит задачу в состояние ожидания и выполняет перепланирование (поток выполняет системный вызов, и этот вызов - повод перевести поток в состояние ожидания).

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

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

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

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