2015-04-18 2 views
1

Я знаю, что ОС делает много абстракции в памяти, но я не совсем уверен в объемах памяти каждой программы.Как ОС абстрагирует программы памяти?

Как OS гарантирует, что одна программа не получит доступ к памяти другой программы? Как это делается?

+1

[virtual-memory] (http://en.wikipedia.org/wiki/Virtual_memory) :) Я предполагаю, что это слишком широко для вопроса SO, посмотрите на какую-то книгу OS, у нее должна быть глава по теме – Diego

+0

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

ответ

1

Существует ряд подходов, которые были использованы. Наиболее распространенной является адресация логической памяти. Адресное пространство разделено на две зоны: пользователь и ядро.

Каждый процесс имеет свою собственную зону пользовательской памяти. Все процессы имеют одну и ту же зону памяти ядра. Процесс не имеет средств для доступа к адресному пространству пользовательского режима другого процесса. Все ссылки на память в режиме пользователя переходят в собственное пространство памяти процесса и не могут ссылаться на другие процессы.

Адресное пространство ядра ограничено, поэтому его можно получить только в режиме ядра. ОС ограничивает способы входа в режим ядра.

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