Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Управление памятью в USIX



USIX поддерживает виртуальную организацию памяти, основанную на понятиях объекта памяти, регионов и сегментов памяти. Каждый процесс состоит из сегментов, отображаемых на регионы.

Система управления памятью использует ряд структур данных, представленных в виде связных списков. Физические страницы могут объединяться в следующие списки:

1. Системные страницы – страницы, необходимые системе.

2. Фиксированные страницы – страницы, которые зафиксированы в оперативке за процессами и не могут быть выгружены на диск.

3. Чистые страницы – страницы, которые имеют копии на диске и могут выделяться процессам сразу без сохранения.

4. Модифицированные страницы – страницы, которые требуется сохранить на диске, так как они были модифицированы.

5. Свободные страницы – доступные для распределения страницы.

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

7. Читаемые страницы – страницы, в данный момент читаемые с диска в основную память.

8. Записываемые страницы – страницы, в данный момент записываемые из основной памяти на диск.

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

При создании процесса, ему назначаются следующие регионы:

· Регион стека.

· Регион текста процесса.

· Регион данных процесса.

· Регионы текста и данных разделяемой системной библиотеки.

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

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

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

Для исключения возможности быстрого исчерпания свободных и чистых страниц система всегда сохраняет доступным некоторое минимальное количество страниц (LowWater). Если число свободных и чистых страниц превосходит LowWater, то страница выбирается из свободных или чистых страниц. Иначе выбирается модифицированная страница или страница рабочего набора и выгружается из оперативной памяти.

Страницы могут быть доступны сразу нескольким процессам. Они называются разделяемыми. Для управления используется методика «copy-on-write». До тех пор, пока ни один процесс не попытался модифицировать страницу, все они используют одну копию страницы. Как только процесс производит запись в разделяемую страницу, для него делается отдельная копия и помещается в его рабочий набор.

Для поддержки процессов реального времени используются две методики.

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

Вторая заключается в запрете выгрузки всех страниц процесса реального времени, то есть помещении страниц в список фиксированных.


Поддержка РВ в USIX

Возможности, обеспечивающие режим реального времени в USIX:

· Приоритетная и круговая диспетчеризация.

· Динамическое и статическое назначение приоритетов пользовательским задачам.

· Захват ресурсов памяти для обеспечения быстрого переключения задач путем фиксации страниц в оперативной памяти.

· Возможность подключения к источниками прерываний программирования нестандартных устройств.

· Возможность отображения в адресное пространство процесса пользователя любых объектов, включая файлы на дисках, физическую память, порты ввода/вывода.

· Синхронизация взаимодействия процессов пользователя с помощью традиционных механизмов UNIX (семафоры, очереди сообщений, разделяемая память, именованные и неименованные программные каналы ввода/вывода) и дополнительных возможностей (сообщения USIX, серверы, механизм событий).

Ядро UNIX не разрешает переключения процессов во время выполнения системной фазы ядра. При этом ядро представляется как бы одной большой критической секцией и выполнение задач ядра не может быть прервано, пока не завершится полностью. В отличие от ядра UNIX, ядро USIX является полностью прерываемым. Так как процессы реального времени более приоритетны, чем процессы пользовательского уровня (как пользовательская так и системная фазы), то вторые могут быть прерваны по требованию процессов реального времени исходя из логики приоритетов. Могут быть следующие причины прерываний:

· Истечение кванта времени владения процессором у текущего процесса.

· Наступление запланированных событий по времени.

· Прерывание от устройств ввода/вывода.

· Изменение приоритетов процессов.

· Освобождение ресурсов ядра (двоичных семафоров).

· Посылка сообщения более приоритетному ожидающему процессу.

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

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





©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.