- •Глава 2 Управление
- •Задачами и памятью в операционных системах
- •Дисциплины диспетчеризации
- •1 Time slice — квант времени.
- •Вытесняющие и не вытесняющие алгоритмы диспетчеризации
- •Качество диспетчеризации и гарантии обслуживания
- •0 Планирование, при котором находящиеся в критической секции задачи не прерываются, а активно ожидающие входа в критическую секцию задачи не выбираются до тех пор, пока вход в секцию не освободится;
- •Диспетчеризация задач с использованием динамических приоритетов
- •Память и отображения, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры)
- •1 От overlay — перекрытие, расположение поверх чего-то.
- •Распределение статическими и динамическими разделами
- •Разделы с фиксированными границами
- •Разделы с подвижными границами
- •Сегментная, страничная и сегментно-страничная организация памяти
- •Сегментный способ организации виртуальной памяти
- •1 Os/2 V.L начала создаваться в 1984 г. И вышла в продажу в 1987 г.
- •Страничный способ организации виртуальной памяти
- •Сегментно-страничный способ организации виртуальной памяти
- •Распределение оперативной памяти в современных ос для пк
- •Распределение оперативной памяти в ms-dos
- •Распределение оперативной памяти в Microsoft Windows 95/98
- •1 Dll (dynamic link library) — динамически загружаемый библиотечный модуль.
- •Распределение оперативной памяти в Microsoft Windows nt
- •1 Gdi (Graphics Device Interface) - интерфейс графических устройств.
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), которая была удалёна из рабочего набора процесса, но может быть затребована вновь.
Контрольные вопросы и задачи
Вопросы для проверки
Перечислите и поясните основные функции ОС, которые связаны с управлением задачами.
Какие дисциплины диспетчеризации задач вы знаете? Опишите их.
Что такое «гарантия обслуживания»? Как ее можно реализовать?
Сравните механизмы диспетчеризации задач в ОС Windows NT и OS/2. В чем заключаются основные различия?
Опишите механизм динамической диспетчеризации, реализованный в UNIX- системах.
Что такое «виртуальный адрес», «виртуальное адресное пространство»? Чем (в общем случае) определяется максимально возможный объем виртуального адресного пространства программы?
Что такое «фрагментация памяти»? Какой метод распределения памяти по зволяет добиться минимальной фрагментации?
Что такое «уплотнение памяти»? Когда оно применяется?
Объясните сегментный способ организации виртуальной памяти. Что пред ставляет собой (в общем случае) дескриптор сегмента?
Сравните сегментный и страничный способы организации виртуальной памя ти. Перечислите достоинства и недостатки каждого.
Какие дисциплины применяются для решения задачи замещения страниц? Ка кие из них являются наиболее эффективными и как они реализуются?
Что такое «рабочее множество»? Что позволяет разрешить реализация этого понятия?
Изложите принципы распределения памяти в MS-DOS.
Что означает термин «плоская модель памяти»? В чем заключаются достоин ства (и недостатки, если они есть) использования этой модели?
