2013-08-14 3 views
2

У меня есть очень специализированные эксперименты для исследовательского проекта. Эти эксперименты требуют контроля доступа к памяти: мое приложение ни при каких обстоятельствах не должно обмениваться информацией с диском. То есть вся информация, необходимая приложению, должна оставаться в ОЗУ на время выполнения, но должна использовать как можно больше ОЗУ.Можно ли проверить доступ к диску во время выполнения?

Мой вопрос: есть ли способ управлять доступом к диску моим приложением или хотя бы считать обращения к диску для последующего анализа?

Это использование C и Linux.

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

+2

Это также общая потребность в крипто; конфиденциальные данные никогда не должны быть заменены на диск. – SLaks

+3

Linux позволяет блокировать страницы в памяти; это должно означать, что они не заменяются на диск. –

+0

Проверьте системный вызов 'mlock', чтобы заблокировать ваши данные в памяти. –

ответ

4

Одна вещь, которую вы можете сделать, это на самом деле создать ramfs или файловую систему RAM. Вы работаете на платформе unix? Если это так, вы можете проверить mount и umount о том, как их создать.

http://linux.die.net/man/8/mount

http://linux.die.net/man/8/umount

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

http://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/

http://www.alper.net/linuxunix/linux-ram-based-filesystem/

Надежда все это помогло.

+1

Во многих системах linux '/ dev/shm' уже присутствует и является файловой системой в памяти. – jxh

1

Системный вызов mlock позволяет блокировать часть или всю виртуальную память вашего процесса в ОЗУ, тем самым предотвращая ее запись в пространство подкачки. Обратите внимание, что еще один процесс с привилегиями root может все еще использовать эту область памяти.

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