10.6 Совместно используемые библиотеки

Предыдущая  Содержание  Следующая V*D*V

Динамический компоновщик, который заботится о загрузке совместно используемой библиотеки, в значительной степени базируется на MMU и виртуальной адресации. Совместно используемая библиотека загружается в ОЗУ, когда приложение использует её в первый раз. Другие программы, использующие ту же библиотеку, которые запускаются позже (но до завершения первого приложения) получают местоположение текста, отображённое в их виртуальное адресное пространство. Иными словами,  в физической памяти присутствует только одна копия текста библиотеки. Все последующие ссылки представляют собой только виртуальные записи, которые указывают на эту единственную физическую копию. Также отметим, что общим является только текст; для данных по-прежнему должна быть выделена память для каждого процесса. Общие страницы освобождаются, когда завершает работу последнее приложение, использующее библиотеку.

Без MMU не представляется возможным отображать одну и ту же физическую память на отдельное адресное пространство процесса. Поэтому для реализации общих библиотек uClinux использует другой метод.

 

Предыдущая  Содержание  Следующая