Исп-ся 4 приор класса процессов: 1)real-time – наивысший приор класс. Для потоков исп-ся уровни 16-31, по умолч 24; 2)high – высокий, по умолч 13; 3)normal – обычный, 7-9 по умолч; 4)idle – низкий, по умолч 3; (2,3,4 – уровни 1-15); 5)Приоритет программ очистки страниц(0 уровень, запускает сама ОС). Прогр-т, порождая новый поток, может изменить уровень его приор-та – назначить макс или мин возм уровень для этого класса. При вып-нии потока прогр-т может повысить или понизить уровень его приор-та (насколько – зав от ОС). Но поток не может выпрыгнуть из своего приор класса. Сама ОС тоже дин-ки может изм0ть приор-т потоков. Сист повышает пр-т потоку, к-рый нах-ся в состоянии ожидания либо на каком-то объекте синхр-ции (напр семафор), либо при вып-нии каких-л операций ОС-мой для него. Если поток исп-вал квант вр и не уложился, сист понижает пр-т. Пр-т повышается для потока переднего плата (активного окна). ОС может настраивать размер кванта вр, к-рый выделяется потоку. Прогр-т может поменять приор класс потока. Для всех объектов ядра в WinNT задаются атрибуты защиты, к-е позв контролировать доступ к этим объектам. При порождении процессом дочернего процесса можно опр-ть наследование прав дочерним прцессом или отказаться от наследования (в Win9x нет мех-ма защиты). Объектами дисп-ции ядра Win явл также объекты, к-е исп-ся для синхр-ции работы проц-ра(ров). К числу этих объектов относ объекты семафорного типа, а именно 1)mutex – исключение при обработке (работает как бин семафор по своему назначению, у него 2 состояния – закрыт, олткрыт. WaitForSingleObject, WaitForMultipleObject. Работа как с любым др объектом (open, не V). Поток, занявший mutex, сам может проходить ч/з него повторно; 2)event – событие, еще одна реализ-я бин семафора. Ожидание на event иожно орг-ть в разных режимах: а)После того, ка объеат отрывается, становится свободным (сигнал-ся об этом событии), ч/з него может пройти только один поток, ожидавший его, после этого событие сбрасывается автом-ки (закр). Др вар-т – после того, как событие устанавливается, ч/з него могут пройти все потоки, ожидающие этого события. Сбросить событие можно вручную, с пом спец ф-ии; 3)semaphore – общий семафор, можно исп-ть как счетчик ресурсов. Кр всего этого для реш-я зад синхр-ции можно исп-ть мехм крит секц. Действие перечисленных проц-р основаны на аппар поддержке в системе команд проц-ров Intel (TestAndSet напр – в один прием считывается значение ячейки, сразу опр-ся что было, запис-ся 1 + команды блокирования шины на вр вып-я подобных оп-ций для многопроц-ных сист).
Схема орг-ции ожидания.
Синхр-я сист потоков, вып-ся на уровне ядра.
Нар синхр-я обработчиков прерываний. 1. Реализ-ся ч/з маскировку. Как только польз-кая пр-мма обращается к сист ср-вам, исп-ся мех-м прерываний. Поэтому перед обработкой прерывания, связ-го с вып-ем запроса к ОС, запрещаются (маскируются) все прерывания, к-е могут помешать этой обработке. Такую маскировку можно реал-ть только в однопроц-ной сист (реп-р флагов interrupt flag). 2. Спинблокировка (spinlock, для многопроц сист): процi... do установить блокировку, until установили, крит секция, снять блок-ку,... Этот мех-м реализ-ся для сист ф-ий. Выдел-ся адрес в пам, по к-му запрошено состояние блокировки. Сист этотадрес знает. TestAndSet – для работы с этой ячейкой. Lock – блокировать шину, префикс. Требования: кр секц должна быть очень короткой, ф-ии должны принадл ядру и не выгружаться на диски, рез-но нах-ся в пам, код кр секц не должен обращаться к данным, к-е могут оказаться выгружены на диск, внутри кр секц не должно быть прерываний.