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

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

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

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

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

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

Планирование процессов и потоков

Планирование означает определение момента: когда прервать выполнение активного потока и какой поток активизировать. Планирование выполняется на основе описателей потоков. Планирование процессов и потоков включает:

  • Создание-уничтожение процессов

  • Взаимодействие между процессами

  • распределение процессорного времени

  • Обеспечение процессов необходимыми ресурсами (единолично, совместно)

  • Синхронизация (контроль за возникновением «гонок», блокировок)

  • После завершения процесса - «зачистка», т.е. удаление следов пребывания в системе

Диспетчеризация: реализация результатов планирования. Включает в себя:

  • переключение потоков

  • сохранение контекста текущего потока

  • загрузка контекста нового потока

  • запуск нового потока

Алгоритмы планирования

Невытесняющие (non-preemptive) - поток выполняется, пока по собственной инициативе не отдаст управление ОС для активизации другого потока

Вытесняющие (preemptive) - решение о переключении принимается ОС

Вытесняющие алгоритмы планирования делятся на алгоритмы, основанные на:

  • квантовании

  • приоритетах

  • смешанные

1.Вытесняющие алгоритмы планирования, основанные на квантовании

Каждому потоку выделяется отрезок времени квант

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

  • поток завершился

  • произошла ошибка

  • поток перешел в состояние ожидания

  • исчерпан квант

Грубо величина кванта должна составлять менее 20млс. Кванты, выделяемые потоку, могут быть фиксированной величины, а могут меняться со временем. Современные ОС используют кванты переменной величины.

2.Вытесняющие алгоритмы планирования, основанные на приоритетах

В основе этих алгоритмов лежат принципы приоритетного обслуживания

Каждый поток имеет приоритет, число характеризующее степень привилегированности при использовании ресурсов

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

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

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

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