нарушение доступа к памяти большая тема :)
The Protection of Information in Computer Systems (с 1973 :) вынимает из механизма сегментов, где выделяются базом процессы и связаны; любая попытка доступа к памяти за пределами диапазона base:base+bound
означала, что программа сделала что-то глупое и должна быть убита.
Линейка процессоров 80x86 реализует базовую поддержку сегмента, а ядро безопасности GEMSOS - это ядерная система, сертифицированная A1, на основе этого механизма.
Но сегменты не очень динамичны, и почти все современные операционные системы - это системы paging, что страница в память, когда она недоступна. Это зависит от процессора, имеющего блок управления памятью MMU, который проверяет все обращения к памяти за правильными привилегиями и наличие/отсутствие правильного отображения памяти. Когда процесс пытается получить доступ к памяти, которая в настоящее время не отображается в ОЗУ, MMU сигнализирует CPU о том, что произошла ошибка, а ЦП приостанавливает процесс для загрузки запрошенной страницы памяти с диска. (Или, если память не должна отображаться для процесса, скажем, она пытается получить доступ к 0x0
или к случайной ячейке памяти, которая не была сопоставлена с mmap
или аналогичными примитивами выделения памяти, она убивает процесс.)
Intel 80386 был первым чипом Intel для поддержки пейджинга, поэтому Windows «386 Enchanced Mode» был , поэтому намного лучше, чем режим 286.
Компиляторы не задействованы, но CPU, MMU и ядро операционной системы должно все работают вместе.
Что делать, если RAM и диск полны? –
@Scott 混合 理论 нормально, если ОЗУ будет полной или почти полной - неиспользуемая оперативная память - это потерянное ОЗУ. Поскольку производительность ухудшается, чем больше компьютер должен использовать пространство подкачки, обычно люди будут пытаться запускать столько программного обеспечения, сколько поместится в память. Когда пространство подкачки заполнено, ядро начнет возвращать ошибки для выделения памяти или уничтожит целые процессы, чтобы освободить место. Ищите «OOM Killer» для получения подробной информации об этом. – sarnold