Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Режимы ядра_прочитайте на четверг _это следующа...docx
Скачиваний:
2
Добавлен:
27.11.2019
Размер:
74.73 Кб
Скачать

5. Диспетчер энергопитания

Диспетчер энергопитания (Power Manager) играет важную роль в предо­ставлении энергосберегающих функций, таких, как снижение оборотов вра­щения жестких дисков, накопителей для компакт-дисков и DVD, а также от­ключение питания мониторов и видеоадаптеров.

6. Диспетчер виртуальной памяти

Диспетчер виртуальной памяти (Virtual Memory Manager — VMM) предо­ставляет функции управления памятью, благодаря которым процессы могут использовать объем памяти, превышающий размер физической памяти, уста­новленной на компьютере. Запросы приложений на выделение памяти ре­гистрируются диспетчером виртуальной памяти.

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

Этот метод получил название подкачки страниц (paging).

Область диска, которая используется для хранения страниц, не размещен­ных в физической памяти, называется файлом, подкачки (swap file).

Операци­онная система автоматически создает этот файл и обеспечивает его защиту. Администратор может изменять размер файла подкачки, который иногда называется страничным файлом, так как память перемещается в файл и из него страничными блоками.

В Windows NT 4.0 поддерживалось адресное пространство объемом 4 Гбайт, которое поровну распределялось между пользовательским режимом и режимом ядра.

Верхние 2 Гбайт выделялись режиму ядра Windows NT, а нижние 2 Гбайт — пользовательскому режиму. В Windows 2000 Advanced Server параметры загрузки позволяют перераспределить адресное простран­ство, выделив 1 Гбайт режиму ядра и 3 Гбайт пользовательскому режиму.

Приложения пользовательского режима следует переписать для использова­ния дополнительного объема адресного пространства. Конечно, для 64-раз­рядной версии Windows NT подобного ограничения просто не существует.

Диспетчер виртуальной памяти предоставляет программные интерфейсы приложений для выделения и высвобождения памяти, а также для блоки­ровки и разблокировки памяти.

Функция блокировки памяти позволяет за­претить выгрузку области памяти в файл подкачки. Эта функция зачастую ошибочно воспринимается в качестве запрета на изменение физического рас­положения участка памяти. Хоть это и справедливо для нынешних версий Windows NT, ситуация может измениться в будущих версиях Windows.

По­средством описываемого API драйверы по мере необходимости запрашивают выгружаемую или невыгружаемую память.

7. Диспетчер кэша

Это неотъемлемый элемент подсистемы ввода-вывода, который работает в тесной связке с драйверами файловых систем и диспетчером виртуальной памяти.

Диспетчер кэша Windows NT взаимодействует с файловой систе­мой и ее драйверами. Подобный метод отличается от стратегии кэширова­ния, свойственной Windows 95, которая предназначалась для взаимодействия непосредственно с дисковыми секторами.

Диспетчер обслуживает все файло­вые системы, локальные и удаленные, с помощью единого кэша. Диспетчер кэша позволяет кэшировать несколько потоков данных из одного файла.

По­токи данных относятся к возможностям файловой системы NT (NTFS)

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

При запросе операции файло­вого ввода-вывода файловая система сначала обращается к диспетчеру кэша для получения необходимых данных.

Если диспетчер кэша обнаруживает, что необходимые данные недоступны, запрос отправляется драйверу файло­вой системы для считывания данных.

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

Подсистема ввода-вывода

Подсистема ввода-вывода отвечает за обработку запросов ввода-вывода и проектировалась для выполнения перечисленных далее задач.

  • Обеспечение работы сверхпроизводительных операций ответного вводавывода для одно- и многопроцессорных компьютеров.

  • Предоставление асинхронного ввода-вывода. Синхронный ввод-вывод осуществляется, по сути, в виде асинхронного запроса ввода-вывода,после которого следует блокирующее ожидание завершения операции ввода-вывода.

  • Поддержка нескольких файловых систем, в частности CDFS, NTFS и UDFS.

  • Предоставление модульной архитектуры, поддерживающей добавление новых файловых систем и устройств.

  • Предоставление устройствам (и их драйверам) возможности подключе­ния и отключения "на лету", без перезагрузки (эта функция реализована в Windows 2000 и более новых версиях Windows NT).

  • Предоставление расширенных возможностей, например кэширования и записи содержимого файлов в память (запись содержимого файла в указанной области памяти в адресном пространстве процесса). Для по­лучения доступа или модификации содержимого файла приложение вы­полняет чтение и запись определенной области адресного пространства.

  • Защита ресурсов, которые совместно используются несколькими про­цессами.

Подсистема ввода-вывода имеет модульную структуру (как и все осталь­ные компоненты Windows NT) и состоит из следующих компонентов:

  1. программный интерфейс приложений ввода-вывода (I/O API);

  2. диспетчер ввода-вывода;

  3. драйверы файловых систем;

  4. другие драйверы (например, драйверы клавиатуры и драйверы дисков).