Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ОС часть 1.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.23 Mб
Скачать

10.4 Виртуальные машины ос Windows 9.X

Прикладные программы для Windows 9.x выполняются в виртуальных машинах, которые создает ОС. Виртуальная машина представляет собой среду, имитирующую отдельный (виртуальный) компьютер со всеми его системными и периферийными устройствами. Благодаря системе виртуальных машин работникам ПО не приходится беспокоиться о том, чтобы их программы отслеживали использование ресурсов компьютера другими программами, так как память и наборы ресурсов каждой виртуальной машины изолированы от памяти и ресурсов других виртуальных машин. Когда загружается Windows , всегда создается системная виртуальная машина, в пределах которой выделяется отдельное адресное пространство для ядра системы. Каждому запущенному 32 - разрядному приложению Windows (Win 32) также выделяется отдельное адресное пространство адресов в пределах системной виртуальной машины. Для всех 16 - разрядных приложений Windows система Windows 9.x использует общее адресное пространство в пределах системной виртуальной машины. Каждое приложение Dos выполняется в собственной виртуальной машине.

10.5 Процессы и сообщения в ос Windows 9.X

Управление программами Windows 9.x основано на модели передачи сообщений. Каждое событие приводит к генерации сообщений. Windows использует асинхронную обработку сообщений, то есть поддерживает независимые очереди сообщений.

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

Приложения Win 16 выполняются под Windows 9.x в режиме кооперативной многозначности в общем пространстве адресов в пределах системной виртуальной машины и имеют общую очередь сообщений. Ситуация с «зависанием» программы Win 16 потенциально более опасна: остальные программы Win16 перестанут получать сообщения и тоже «зависнут». Кроме того, заблокированное приложение Win 16 способно повлиять на приложение Win 32, несмотря на то, что они используют независимые очереди сообщений. Это объясняется тем, что если «зависание» происходит в момент обращения, например, к gdi.exe, то уже ни одно приложение не сможет обратиться к этому модулю. В этом случае система оказывается полностью заблокированной.

Кроме того, прерванное приложение Win 16 может не вернуть системе используемые им системные ресурсы. Все системные ресурсы освободятся после того, как будут выгружены все текущие программы Win 16.

10.6 Планирование приоритетов

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

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

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

- Повышается приоритет потоков, находящихся в ожидании пользовательского ввода (Необходимо для оперативного реагирования на действия пользователя).

- Если поток обладает низшим приоритетом, то он начинает повышаться.

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

- Если приоритет потока наивысший, он начинает понижаться.

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