Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС__Глава2.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

1 Gdi (Graphics Device Interface) - интерфейс графических устройств.

качке (paging), которая снижает производительность системы. Мы уже говорили о том, что в Windows NT, к большому сожалению, выбрана дисциплина FIFO для замещения страниц, а не более эффективные дисциплины LRU и LFU.

Когда процесс использует код иди данные, находящиеся в физической памяти, система резервирует место для этой страницы в файле подкачки Pagefile.sys на диске. Это делается с расчетом на тот случай, что данные потребуется выгрузить на диск. Файл Pagefile.sys представляет собой зарезервированный блок дисково­го пространства, который используется для выгрузки страниц, помеченных как «грязные», при необходимости освобождения физической памяти. Заметим, что этот файл может быть как непрерывным, так и фрагментированным; он может быть расположен на системном диске либо на любом другом и даже на несколь­ких дисках. Размер этого страничного файла ограничивает объем данных, кото­рые могут храниться во внешней памяти при использовании механизмов вирту­альной памяти. По умолчанию размер файла подкачки устанавливается равным объему физической памяти плюс 12 Мбайт, однако пользователь имеет возмоЖ' ность изменить его размер по своему усмотрению. Проблема нехватки виртуаль­ной памяти часто может быть решена за счет увеличения размера файла подкачки.

В системах Windows NT 4.0 объекты, создаваемые и используемые приложения­ми и операционной системой, хранятся в так называемых пулах памяти (memory pools). Доступ к этим пулам может быть получен только в привилегированном режиме работы процессора, в котором работают компоненты операционной сис­темы. Поэтому для того, чтобы объекты, хранящиеся в пулах, стали видимы тре­дам приложений, эти треды должны переключиться в привилегированный режим.

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

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

Вся виртуальная память в Windows NT подразделяется на классы: зарезервиро­ванную (reserved), выделенную (committed) и доступную (available).

О Зарезервированная память представляет собой набор непрерывных адресов, которые диспетчер виртуальной памяти (VMM) выделяет для процесса, но не учитывает в общей квоте памяти процесса до тех пор, пока она не будет фактически использована. Когда процессу требуется выполнить запись в па­мять, ему выделяется нужный объем из зарезервированной памяти. Если про­цессу потребуется больший объем памяти, то дополнительная память может быть одновременно зарезервирована и использована, если в системе имеется доступная память

Q Память выделена, если диспетчер VMM резервирует для нее место в файле Pagefile.sys на тот случай, когда потребуется выгрузить содержимое памяти

'на диск. Объем выделенной памяти процесса характеризует фактически по-'требляемый им объем памяти. Выделенная память ограничивается размером файла подкачки. Предельный объем выделенной памяти в системе (commit limit) определяется тем, какой объем памяти можно выделить процессам без увеличения размеров файла подкачки. Если в системе имеется достаточный объем дискового пространства, то файл подкачки может быть увеличен и тем самым будет расширен предельный объем выделенной памяти.

Вся память, которая не является ни выделенной, ни зарезервированной, явля­ется доступной. К доступной относится свободная память, обнуленная память (освобожденная и заполненная нулями), а также память, находящаяся в списке Ожидания (standby list), которая была удалёна из рабочего набора процесса, но может быть затребована вновь.

Контрольные вопросы и задачи

Вопросы для проверки

Перечислите и поясните основные функции ОС, которые связаны с управлени­ем задачами.

  1. Какие дисциплины диспетчеризации задач вы знаете? Опишите их.

  2. Что такое «гарантия обслуживания»? Как ее можно реализовать?

  1. Сравните механизмы диспетчеризации задач в ОС Windows NT и OS/2. В чем заключаются основные различия?

  2. Опишите механизм динамической диспетчеризации, реализованный в UNIX- системах.

  3. Что такое «виртуальный адрес», «виртуальное адресное пространство»? Чем (в общем случае) определяется максимально возможный объем виртуального адресного пространства программы?

  4. Что такое «фрагментация памяти»? Какой метод распределения памяти по­ зволяет добиться минимальной фрагментации?

  1. Что такое «уплотнение памяти»? Когда оно применяется?

  1. Объясните сегментный способ организации виртуальной памяти. Что пред­ ставляет собой (в общем случае) дескриптор сегмента?

  2. Сравните сегментный и страничный способы организации виртуальной памя­ ти. Перечислите достоинства и недостатки каждого.

  1. Какие дисциплины применяются для решения задачи замещения страниц? Ка­ кие из них являются наиболее эффективными и как они реализуются?

  2. Что такое «рабочее множество»? Что позволяет разрешить реализация этого понятия?

  3. Изложите принципы распределения памяти в MS-DOS.

  4. Что означает термин «плоская модель памяти»? В чем заключаются достоин­ ства (и недостатки, если они есть) использования этой модели?