Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Работа приложений в ОС Windows XP. Понятие системной виртуальной машины



ОС Windows 9х и Windows на основе технологии NT — многозадачные и многопоточные системы. Это значит, что в операционной системе может одновременно выполняться несколько процессов, причем в пределах одного процесса могут параллельно существовать несколько более простых процессов, или так называемых потоков. Каждое работающее приложение Windows или MS-DOS является процессом, причем каждый процесс состоит хотя бы из одного потока. Что интересно, приложения DOS и Win 16 всегда состоят из одного потока. Поток может использовать память и системные ресурсы, выделяемые ему материнским процессом, но не может сам обращаться к операционной системе с требованием выделить новые ресурсы. В каждый момент времени выполняется один поток.

В режиме вытесняющей многозадачности каждый поток выполняется определенное количество времени или до тех пор, пока приоритет другого потока не превысит его приоритет. Приоритеты распределяются операционной системой, поэтому ни один процесс, или поток, не может захватить монопольное управление. Каждому приложению отводится строго определенная доля процессорного времени, каждое приложение может быть в любой момент переведено в фоновый режим. При вытесняющей многозадачности кажется, что программы действительно работают одновременно. Программы MS-DOS и Win32 выполняются в режиме вытесняющей многозадачности.

При кооперативной многозадачности каждое приложение получает фактически столько процессорного времени, сколько оно считает нужным. Все приложения делят процессорное время, периодически опрашивая друг друга. Все приложения Win 16 выполняются в режиме кооперативной многозадачности и вместе представляют собой для операционной системы как бы один процесс, работающий в режиме вытеснения. Таким образом, достигается совместимость со старыми приложениями Windows, написанными для выполнения в среде кооперативной многозадачности.

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

При загрузке ОС всегда создается системная виртуальная машина, в пределах которой выделяется отдельное адресное пространство для ядра системы — модулей Kernel, GDI и User. Каждому запущенному 32-разрядному приложению (их называют приложениями Win32) также выделяется отдельное пространство адресов в пределах системной виртуальной машины. Для всех 16-разрядных приложений Windows (приложения Win16) система использует общее адресное пространство в пределах системной виртуальной машины (в отличие от Windows NT, которая создает отдельную виртуальную машину для каждого приложения Win16). Каждое приложение DOS выполняется в собственной виртуальной машине в режиме V86.

Роль системы реального режима

Среда защищенного режима целиком заведует:

· управлением памятью процессов и потоков;

· взаимодействием и синхронизацией процессов;

· подсистемой вытесняющей многозадачности для Win32-приложений;

· поддержкой CD-ROM, жестких дисков и сетевого ввода-вывода;

· высокоуровневыми графическими операциями и управлением окнами;

· печатью.

· Процессы и сообщения

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

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

Все это делает ошибку в Win32-приложении фактически безопасной для остальных приложений, выполняемых под управлением ОС Windows. Если приложение Win32 пытается выполнить запрещенные действия, система принудительно завершит его, выдав сообщение о недопустимой операции. Если приложение Win32 «зависло», оно перестает реагировать на действия пользователя, указатель мыши в форме песочных часов на фоне окна этого приложения показывает, что приложение занято, на стабильность системы в целом оно, как правило, не влияет. Пользователь может удалить такое приложение при помощи окна Close Program — Завершение работы программы, нажав Ctrl+Alt+Del. Такой метод прерывания программ называется локальной перезагрузкой. Для прерывания программ Win32 иногда приходится повторять вызов окна Close Program несколько раз.

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

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

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

На самом деле в назначении приоритетов принимают участие два планировщика — первичный, основной вторичный, или диспетчер квантования. Первичный планировщик вычисляет приоритеты потоков, а вторичный определяет количество процессорного времени, выделяемое каждому потоку.

Каждые 20 мс первичный планировщик сравнивает текущие приоритеты потоков, выбирает поток с наивысшим приоритетом и передает ему управление. Если потоки имеют одинаково высокие приоритеты, первичный планировщик устраивает им «карусель» (round robin) — выделяя каждому поочередно равное количество времени. После этого вступает в игру вторичный планировщик, который повышает приоритет следующего по очереди потока. Кроме того, вторичный планировщик повышает или понижает приоритеты потоков по ходу дела, руководствуясь следующими правилами:

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

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

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

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

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

Тема: «Системный реестр Windows XP».





Дата публикования: 2015-10-09; Прочитано: 1175 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...