2014-09-19 2 views
0

Когда процесс или программа пытается получить доступ к чему-то, что угодно, для этого будет доступ к памяти. Как и где это происходит. Мне нужны файлы C. Мне нужно написать свою реализацию там, чтобы знать, когда есть запрос доступа к памяти, сделанный любой программой.Запрос памяти в Linux

Программа --- запросить память ---> LINUX MM FILE ??? ---> Физический адрес.

Я не ищу виртуальный физический перевод, но знаю, кто пингует, когда он выполняет ping для доступа к памяти.

ответ

2

Программы с использованием пользовательского пространства используют mmap и sbrk системные вызовы. Вы можете проследить их для одной программы с помощью команды strace. Я думаю, что вы можете проследить все из них, используя одну из фреймворков Linux, например ftrace. Я думаю, что перфоманс может это сделать. Some useful perf examples I found here.

Внутри ядра все по-другому. Ядро выделяет большинство вещей в «плитках» с использованием slab-менеджеров SLOB, SLAB или SLUB. Я считаю, kmalloc делает плиты. Есть и valloc Я думаю, для выделения виртуальной памяти для использования в ядре.

+0

Большое спасибо. На данный момент я попробую спрятать. – shingaridavesh

+0

Я попытался использовать ftrace для pid и мог видеть экземпляры mmap, которые показывают, что «нормально, я собираюсь получить доступ к памяти». Но на самом деле меня больше интересует доступ к памяти для загрузки этой программы, в частности инструкции, соответствующие ПК, то есть текстовому сегменту программы. Итак, есть ли какой-либо файл, который управляет всем этим, не имеет никакого отношения к программе, но весь запрос, связанный с программой, то есть загрузкой программы с диска в память, а затем приведением кэш-памяти и процессора и данных, связанных с этим. – shingaridavesh

+0

Еще одна вещь. Пока я читал о mmap, я узнал, что он создает новое сопоставление. Так, например, для. когда я запустил звёздочку для приветственной мировой программы, было 2 экземпляра mmap. Но указывает ли это на то, что память также была доступна? – shingaridavesh

Смежные вопросы