Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
41
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

Взаимодействие внутренних модулей мм

Внутренняя структура контроллера памяти (ММ) показана на рис. 3.7:

  • System Саll Interface – группа модулей, отвечающих за предоставление услуг ММ внешним процессам пользователя через интерфейс, описанный выше;

  • Меmоry-Маpped Files (mmар) – группа модулей, отвечающих за планирование распределения памяти между процессами и работу с виртуальны файлом;

  • Swapfile Access (swap) – группа модулей, управляющих процессом свопинга и отвечающих за страничный обмен;

  • Core Меmогу Manager (core) –группа модулей, отвечающих за выполнение функциональных обязанностей ММ, которые используются ядром; Architecture Specific Modules- модули, обеспечивающие общий интерфейс к аппаратным средствам вычислительной системы.

Еще один интересный элемент структуры ММ заключается в использо­вании демона kswпpd (swпpper или рпуедепгоп), который определяет, какая страница памяти должна быть свопирована.

Демон kswпpd выполняется как процесс ядра и периодически сканирует физические страницы для нахождения кандидата на выгрузку. Иногда этот механизм сканирования называется алгоритм часов. Этот демон выполня­ется тогда, когда работа ММ приостанавливается.

Связи ММ с другими подсистемами ядра

На рис. 3.8 показаны высокоуровневые связи различных подсистем с ММ.

Виртуальная файловая система (VFS)

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

На файловую систему в ОС возлагают следующие основные функции по о6еспечению:

  • Идентификации файлов, посредством связывания их имен с некоторым пространством внешней памяти.

  • Распределения внешней памяти между файлами. Для пользователя без­различна информация о местоположении файла на внешнем носителе информации.

  • Надежности и отказоустойчивости, так как стоимость информации мо­жет во много раз превышать стоимость компьютера.

  • Защиты от несанкционированного доступа.

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

  • Высокой производительности.

Внутреннее представление файла в ОС Unix определено индексом, который содержит описание размещения информации файла на диске и другую информацию, такую, как владелец файла, права доступа к файлу и время доступа.

Термин индексный узел (i-поре) широко используется н литературе по системе Unix. Каждый файл имеет один индекс, но может иметь несколько имен, все из которых отражаются в индексе. Каждое имя является указате­лем. Когда процесс обращается к файлу по имени, ядро системы анализи­рует по очереди каждую компоненту имени файла, проверяя права процес­са на просмотр входящих в путь поиска каталогов, и в итоге возвращает индекс файла. Например, если процесс обращается к системе: ореn("/fs2/mjb/rje/sourcefile", 1); ядро системы возвращает индекс для файла "/fs2/mjb/rje/sourcefile".

Если процесс создает новый файл, ядро присваивает этому файлу неиспользуемый индекс. Индексы хранятся в файловой системе, однако при обработке файлов ядро заносит их в таблицу индексов в оперативной памяти.

Виртуальная файловая система Unix (VFS) исполняет следующие функции:

  • обеспечивает доступ к множеству различных физических накопителей;

  • поддерживает множество различных файловых систем;

  • поддерживает множество исполнимых форматов файлов (таких, как a.out, ELF,java);

  • обеспечивает гомогенность среды посредством единого интерфейса ко

  • всем файловым системам и физическим накопителям;

  • обеспечивает высокую производительность при доступе к файлам;

  • обеспечивает надежность от потери и повреждений данных;

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