Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену СМО(ответы. Еличева).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.96 Mб
Скачать

Объекты размещаются в памяти ос.

Чтобы предотвратить захват одним про­цессом слишком большого объема памяти, с него списывается определенный объем выделенной процессу квоты всякий раз, когда один из его потоков открыва­ет описатель объекта некоторого типа. Если процесс израсходовал всю свою квоту, то диспетчер объектов больше не позволит ему открывать описатели объектов.

Помимо управления ресурсами и поддержки их совместного использова­ния, объектная система NT служит центром, в котором обеспечивается защита ресурсов. При открытии процессом описателя объекта активизируется подсис­тема защиты NT. С каждым объектом связана маленькая база данных, называемая списком контроля доступа (access control list, ACL) и содержащая информацию о том, какие процессы имеют доступ к объекту и какие действия эти процессы могут над ним производить. При открытии описателя объекта процесс указыва­ет, какие действия он собирается производить с объектом. Например, процесс может открыть файл для доступа по чтению. Система защиты проверяет,

Рис. 2-12. Создание объектов NT.

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

  1. Базовые сервисы: виртуальная память, I\O и файловые системы.

Разные ОС по-разному представляют физическую память и требуют от своих программ доступа к ней по определенным правилам. В Windows NT приклад­ные программы исполняются в одной из сред, которые ведут себя как некото­рая ОС: Windows, MS-DOS, POSIX или OS/2. Задача состоит в том, чтобы при­ложения всех типов могли выполняться без изменений и без столкновений друг с другом в памяти.

Каждая подсистема среды Windows NT представляет память в том виде, ко­торый ожидают от нее приложения. Исполнительная система NT, лежащая ниже подсистем среды, имеет свою собственную структуру памяти, к которой подси­стемы обращаются, вызывая базовые сервисы NT.

Архитектура памяти NT — это система виртуальной памяти, использующая 32-разрядные адреса в плоском (линейном) адресном пространстве. Виртуалъное адресное пространство процесса (virtual address space) — это набор адре­сов, которые могут использовать потоки процесса. Во время выполнения дис­петчер виртуальной памяти при помощи аппаратных средств транслирует, или отображает виртуальные адреса в физические адреса, по которым дан­ные хранятся на самом деле. Посредством контроля над процессом отображе­ния ОС может гарантировать, что процессы не будут пересекаться друг с другом и не повредят ОС.

Виртуальное адресное пространство каждого процесса равно четырем гигабайтам (232 байта), два из которых предназначены для использования про­граммой, а другие два зарезервированы для ОС. Четыре гигабайта (и даже два) — это гораздо больше объема физической памяти, доступного на обычных маши­нах. Когда физической памяти не хватает, диспетчер виртуальной памяти пересылает, или "откачивает" часть содержимого памяти на диск. Перемещение дан­ных на диск освобождает физическую память, и ее теперь можно использовать для других целей. При обращении потока по виртуальному адресу, соответству­ющему откачанным на диск данным, диспетчер виртуальной памяти снова за­гружает информацию с диска в память.

В Windows NT ОС располагается в верхней части виртуальной памяти, а пользовательский код и данные — в нижней, как показано на рис. 2-13. Поток пользовательского режима не может производить непосредственную запись и чтение системной памяти.

Часть системной памяти, называемая резидентным пулом (nonpaged pool), никогда не откачивается на диск и используется для хранения некоторых объек­тов NT и других важных структур данных. Другая часть системной памяти, которая может быть перемещена на диск, называется нерезидентным пулом (paged pool). Всю пользовательскую память можно откачать.