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

8. Планирование процессов (потоков). (Лекция 2)

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

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

Планировщик – механизм ОС, отвечающий за порядок использования потоками ЦПУ.

Ограничения для потоков: возможности ЦПУ, возможности устройств ввода-вывода.

Задачи алгоритмов планирования:

- справедливость;

- баланс занятости частей системы;

- время отклика;

- соразмерность или предсказуемость.

Циклическое планирование: Многоуровневая очередь:

Особенности:

Циклическое: неоптимальное распределение.

Приоритетное: требуется предотвращать захват ЦПУ высокоприоритетными процессами.

Многоуровневые очереди: алгоритмы разных ОС значительно отличаются; требуют повышения и понижения приоритета.

Некоторые другие методы планирования

Гарантированное – для N процессов должно выделяться по 1/N времени ЦПУ. Требуется непрерывный учет.

Лотерейное – выбор делается случайно. Приоритет потока – количество «лотерейных билетов».

Справедливое (fair-share sheduling) - учитывается принадлежность процессов пользователям, а потоков – процессам.

В многопользовательских системах при интерактивной работе пользователей процессы группируются в специальные структуры. С точки зрения пользователя, важно не то, как будет выполняться отдельное приложение, а то, как будет выполняться все множество процессов данного пользователя. Здесь применим термин «справедливое планирование». Каждому пользователю назначен определенный вес, который определяет долю использования системных ресурсов данным пользователем. В частности, каждый пользователь использует процессор. Если вес пользователя А в 2 раза больше веса пользователя В, то в течение длительного промежутка времени пользователь А должен выполнить в 2 раза большую работу, чем пользователь В.

9. Состояние потоков в Windows. (Лекция 3)

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

Состояния потоков в процессе выполнения в Windows:

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

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

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

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

- Transition (переходное состояние) Как только этот стек загружается в память, поток переходит в состояние Ready.

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

- Initialized (инициализирован) В это состояние поток входит в процессе своего создания.

Планирование – выбор исполняемого потока.

Квант – интервал времени ЦПУ, отведенный потоку для выполнения.

События, вызывающие планирование:

- поток создан или вышел из ожидания;

- прекращается выполнение потока (вытеснение или истек квант);

- изменение приоритета потока;

- изменяется привязка потока к процессору.