По мере возрастания запросов на ресурс CPU, скорость исполнения процессов постепенно уменьшается. Но если слишком много процессов потребуют слишком большого пространства памяти, то некоторые из них просто не смогут исполняться. Если программа выйдет за пределы выделенного пространства памяти, то это может повлечь за собой катастрофические последствия.
Информация в памяти подвержена искажениям. Если некоторый процесс по недосмотру запишет свои данные в память, используемую другим процессом, то исполнение того процесса может сорваться самым непостижимым способом, совершенно не связанным с логикой программы.
Если виртуальная память работает так хорошо, оставаясь в тени, так зачем тогда программисту разбираться в ее устройстве? Для этого есть несколько причин:
- Виртуальная память находится в центре событий. Виртуальная память пронизывает все уровни компьютерных систем, играя ключевую роль в схеме аппаратных исключений, в работе ассемблеров, компоновщиков и редакторов связей, загрузчиков, в совместном использовании объектов, файлов и процессов.
- Виртуальная память обладает большими возможностями. Виртуальная память предоставляет приложениям широкие возможности создавать и уничтожать участки памяти, отображать участки памяти на разделы файлов на диске, и обеспечивать совместное использование памяти несколькими процессами. Понимание устройства виртуальной памяти поможет вам использовать ее мощные возможности в ваших приложениях.
- Виртуальная память таит в себе опасности. Приложения взаимодействуют с виртуальной памятью каждый раз, когда в них встречается ссылка на переменную, разыменование указателя или производится запрос к одному из пакетов программ динамического распределения памяти, например, к пакету malloc. Если виртуальная память не используется надлежащим образом, приложения могут попасть в тупиковую ситуацию, по причине появления изощренных, труднообъяснимых ошибок в памяти.
© digitrode.ru