Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену СПО.docx
Скачиваний:
1
Добавлен:
18.01.2024
Размер:
1.11 Mб
Скачать
  1. Виды планирования процессов (потоков). Краткосрочное планирование: режимы решения, стратегии.

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

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

Таблица 2

В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-line), т. е. решения принимаются во время работы системы на основе анализа текущей ситуации. Найденное в таких условиях решение редко является оптимальным.

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

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

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

– прерывание таймера;

– прерывание ввода-вывода;

– вызовы операционной системы;

– сигналы.

Диспетчеризация сводится к следующему:

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

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

– запуск нового потока на выполнение.

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

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

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

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

Уровни приоритета потока определяют порядок выполнения потоков в операционной системе. Чем выше уровень приоритета, тем выше вероятность того, что поток будет выполняться первым. В некоторых операционных системах, таких как Windows, существует несколько уровней приоритета, которые могут быть установлены для каждого потока. Например, в Windows есть приоритеты реального времени, которые используются для критически важных задач, таких как обработка звука или видео. Так же есть следующие уровни приоритетов потоков:

  •  Низкоприоритетные потоки - это потоки, которые не требуют много ресурсов и могут быть приостановлены или прекращены в случае нехватки ресурсов.

  • Нижесреднего приоритета.

  • Среднеприоритетные(обычные) потоки - это основные потоки приложения, которые выполняют основные функции приложения.

  • Вышесреднего приоритета.

  • Высокоприоритетные потоки - это потоки, которые требуют большого количества ресурсов и должны выполняться в первую очередь.

  • Реального времени- это потоки ввода/вывода информации, требующие полумнгновенной обработки, для комфорта пользователя. Такие стоят даже выше высокоприоритетных.

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

Диаграмма состояний потока в однозадачной ОС

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

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

Диаграмма состояний потока в многозадачной ОС

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

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

Ожидание (сон) – выполнение потока заблокировано до наступления некоторого внешнего по отношению к нему события (например, поступления входных данных или освобождения ресурса).

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

Переход из состояния ожидания в состояние готовности к выполнению (5) производится ядром ОС в момент выполнения условия ожидания.

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

Симметричные мультипроцессорные системы (SMP) - это системы, которые используют несколько процессоров для обработки задач. Windows поддерживает SMP, позволяя использовать несколько процессоров для выполнения задач.

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