Пытаюсь прояснить для себя работу динамических библиотек.
Сейчас мучаюсь над результатами следующего мысленного эксперемента.
Стартует приложение, слинкованное с so-библиотеками общим объемом 2 Гб. На машине есть хардварно 512 Мб ОЗУ и бесконечно большой swap (но он нам в конкретно этой задаче все равно не понадобится).
Код и const-данные из библиотек могут быть практически моментально выдавленны из физической ОЗУ в «swap». Т.к. они уже и так есть на диске в so-файлах, на самом деле в swap они помещаться не будут, страницы физической ОЗУ просто будут помечанны как свободные, а при необходимости код и данные из so-файла буду снова загружены в физическое ОЗУ. (или я тут где-то ошибаюсь?)
А теперь внимание, вопрос:
ОС (пусть для конкретики это будет linux) будет прогонять все эти код/данные через физическое ОЗУ -> «swap» или просто определит для себя, в каких страницах виртуальной памяти будет находится тот или иной код/данные и загрузит его в физическое ОЗУ при необходимости что-либо с этими код/даннные сделать?
В идеале ответ можно подкрепить ссылками на документацию или код загрузчика динамических библиотек.
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от trex6
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Библиотеки so (2002)
- Форум разделяемые библиотеки (.so) (2006)
- Форум Загрузка библиотек (2010)
- Форум загрузка библиотеки (2008)
- Форум mmap и реальная память (2008)
- Форум Настройка линковки библиотеки .so (2012)
- Форум valgrind и .so библиотека (2019)
- Форум Проблема с *.so библиотекой (2018)
- Форум Сборка динамической библиотеки (*.so) (2001)
- Форум .so библиотека не подгружается (2006)