Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ.doc
Скачиваний:
46
Добавлен:
21.09.2019
Размер:
799.74 Кб
Скачать

5.2. Архитектура Windows

5.2.1. Режимы выполнения программного кода

Два режима: пользователя и ядра, четыре уровня привилегий (кольца) для защиты

от менее привилегированного кода (модель защиты Intel).

Уровень привилегий 0, режим ядра, максимальный.

Уровень привилегий 3, режим пользователя, минимальный.

ОС Windows используют только 0 и 3 уровни.

Режим ядра (кольцо 0) – наиболее привилегированный режим:

- имеет прямой доступ к аппаратному обеспечению;

- имеет доступ ко всей памяти компьютера;

- не может быть вытеснен в страничный файл на жестком диске;

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

Компоненты режима ядра защищены архитектурно, процессор предотвращает их

изменение другой программой.

Процесс режима пользователя характеризуется следующим:

- не имеет прямого доступа к аппаратуре, это защищает систему от неисправных

приложений или неавторизированного доступа;

- ограничен выделенным им адресным пространством. Этим обеспечивается

целостность ОС;

- может быть вытеснен из физической памяти в виртуальную память на жестком

диске. Пространство на диске используется как дополнительное ОЗУ;

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

Процессы режима пользователя получают меньший доступ к процессу, чем

процессы режима ядра. ОС не ожидает окончания выполнения приложения.

Неисправный программный компонент не вызывает разрушения системы.

5.2.2. Многозадачность

Многозадачность – способность операционной системы обеспечить совместное

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

программы (задачи) одновременно. Рабочие программы можно назвать задачами.

Однозадачность – один процесс должен завершиться прежде, чем может начаться

другой.

Процесс – выполняемая программа, ему принадлежит адресное пространство и

выделенные ресурсы, а также один или более потоков, выполняющихся в его контексте.

В Windows 2000 и UNIX загруженная в память программа называется процессом. В

Windows 95 также применяется термин процесс. Термины процесс и задача можно

считать синонимами.

Поток – основная единица, которой ОС выделяет процессное время, и

минимальный квант кода, который может быть запланирован для выполнения. Поток –

это часть процесса, выполняющаяся в данный момент времени. Поток работает в

адресном пространстве процесса и использует ресурсы, выделенные процессу.

Любой процесс содержит хотя бы один поток, 16-разрядные приложения имеют

один поток, 32-разрядные могут включать несколько потоков.

Ресурсами владеют процессы, а не потоки.

49

Корпоративная многозадачность – контроль над процессором никогда не

отбирается у задачи, приложение должно самостоятельно отказаться от контроля над

процессором, чтобы другое приложение заработало. Программа должна учитывать

необходимость возврата управления процессором операционной системе, иначе ОС

будет заблокирована.

Вытесняющая многозадачность – ОС получает контроль над процессором без

согласия выполняющегося приложения.

С помощью планирования ОС определяет, какой поток использует процессор в

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

основано на заранее заданной единице времени – кванте (продолжительность кванта

зависит от конфигурации системы). Уровни приоритетов – от 0 (наименьший) до 31

(наибольший). Поток с наибольшим приоритетом получает процессор в свое

распоряжение.

Приоритет каждого потока определяется по:

- классу приоритета процесса, которому принадлежит поток;

- уровню приоритета потока внутри класса приоритета его процесса.

Уровни приоритетов Windows разделены на два класса:

- реального времени (приоритеты от 16 до 31) используются для выполнения

основных функций ОС и обычно не применяются для приложений;

- переменного приоритета (от 0 до 15) – определяет процессорный приоритет

приложения; приоритет 0 – для бесстраничного системного потока.

Базовые уровни приоритетов:

- низкий – запускает приложение с уровнем приоритета 4;

- обычный – запускает приложение с уровнем приоритета 7;

- высокий – запускает приложение с уровнем приоритета 13;

- реального времени – запускает приложение с уровнем приоритета 24.