
- •11.Понятие многозадачности
- •12.Процессы и потоки. Понятия, связанные с процессами и потоками.
- •13.Алгоритмы планирования. Планирование в Windows.
- •14. Моменты перепланировки. Пример перепланировки в Windows.
- •15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний
- •16.Синхронизация потоков. Способы синхронизации потоков.
- •17.Взаимоблокировки. Условия возникновения блокировок.
- •18.Взаимоблокировки. Варианты решения проблемы блокировок в ос
- •19.Функции ос по управлению памятью. Типы систем управления памятью.
- •20.Адресация памяти. Виртуальное адресное пространство в Windows
- •21.Реализация страничной виртуальной памяти
- •22. Управление памятью в Windows
- •Vad диапазон отображаемых адресов // файл подкачки// смещение в файле// режим доступа// каталог таблиц страниц//
- •23.Порядок доступа к памяти. Типы страничных прерываний
- •24.Рабочий набор процесса. Алгоритм замещения станиц в Windows
- •25.Управление физической памятью в Windows
13.Алгоритмы планирования. Планирование в Windows.
Планирование – работа ОС по переключению потоков. Включает в себя:
-определение момента времени для смены текущего активного потока
-выбор для выполнения потока из очереди готовых потоков
Типы планирования:
-динамическое – решение принимается в соответствии с текущим состоянием системы
-статическое – заранее просчитывается расписание выполнения потоков
Диспетчеризация – реализация найденного при планировании решения по переключению потоков. Сводится к следующему:
-сохранение контекста текущего потока
-загрузка контекста нового потока
-запуск нового потока на выполнение
Виды алгоритмов планирования:
1.невытесняющие 2.вытесняющие
Невытесняющие алгоритмы планирования:
Активный поток выполняется до тех пор, пока сам не передаст управление планировщику для выбора нового потока.
Передача управления осуществляется с помощью специального системного вызова.
+ поток не прерывается в «неудобный» момент времени
упрощается совместное использование данных
более высокая скорость переключений потоков
- необходимость реализации части функции планировщика в каждом потоке
возможность монопольного захвата процессора потоком
крах всей системы при зависании активного потока
Вытесняющие алгоритмы планирования:
Решение о переключении потоков принимает ОС, а не активный поток.
В вытесняющих алгоритмах используется концепция квантования. Процессорное время разбивается на кванты, которые выдаются каждому потоку. В Windows значение кванта = 20 мс
Смена активного потока происходит, если:
-активный поток завершился и покинул систему
-произошла ошибка при выполнении потока
-поток перешел в состояние ожидания
-исчерпан квант процессорного времени, отведенного активному потоку
Приоритетное обслуживание:
Приоритет – число, характеризующее степень привилегированности потока при использовании ресурсов системы, в частности –процессорного времени.
Приоритет потока связан с приоритетом процесса. Приоритет процесса назначается ОС при его создании и содержится в описателе процесса.
При назначении приоритета учитывается:
-тип процесса (системный или прикладной)
-статус пользователя, запустившего процесс на выполнение
-приоритет процесса, запустившего процесс на выполнение
Возможно изменение значения приоритета процесса или потока:
-по инициативе самого потока с помощью системного вызова
- по инициативе пользователя
-по инициативе ОС в зависимости от текущей ситуации или поведения потока
Приоритеты в Windows:
Базовый
приоритет потока:критичный
ко времени//самый высокий //выше
нормы//норм//ниже нормы//Самый
низкий//неработающий//
Динамическое изменение приоритетов:
Для пользовательских потоков (приоритет 1 – 15) возможно динамическое изменение приоритета. Однако, значение приоритета не может стать больше 15. Случаи изменения значения приоритета потока:
-завершается операция ввода-вывода и поток, ожидающий этого момента переводится в состояние готовности, то его приоритет повышается. Величина прибавки приоритета зависит от устройства (1 – HDD, 2 – COM, 6 – клавиатура, 8 – звуковая карта и т.п.)
-если поток ожидал семафора, мьютекса или другого события, то когда он отпускается его приоритет повышается. (+2 для активного окна, +1 для остальных)
-если поток графического интерфейса пользователя просыпается, потому что стал доступен оконный ввод, его приоритет повышается.
-если поток исчерпал свой квант времени полностью, его приоритет понижается на единицу (пока не достигнет базового приоритета)
-если поток находится в состоянии готовности дольше определенного промежутка времени и не выполняется, то ему на два кванта дается приоритет 15, а затем он резко уменьшается до базового значения.