10

Хорошо известно, что 32-разрядные системы могут обрабатывать только 4 ГБ как максимальный объем оперативной памяти.

Под Linux это ограничение также распространяется на разделы подкачки? Если объем подкачки RAM + превышает 4 ГБ, будет ли он полностью использован?

Если ответ «нет, это не относится к обмену», почему?

2 ответа2

11

Нет, представьте, что RAM - это ваш рабочий стол, а пространство подкачки / виртуальная память - как шкаф для хранения документов. Вы можете поместить много информации в картотеку, но к ней сложно получить доступ. Любые бумаги, которые вы хотите использовать, вы должны вытащить и положить их на стол; проблема в том, что стол может вместить только столько бумаг одновременно.

32-разрядные машины могут иметь только рабочий стол размером 4 ГБ (2 ^ 32 или около 4 миллиардов байт), но они могут иметь практически неограниченные шкафы для хранения документов. Они просто должны "поменять" документы, когда стол заполнен, и им нужно посмотреть на другую страницу, которая находится в шкафу.


Причина, по которой он не применяется к свопу, заключается в том, что доступ к содержимому ОЗУ или выполнение кода из него ограничены размером чисел, с которыми он может работать. Думайте об этом, как будто вы можете иметь только 4 миллиарда слов на столе, потому что это столько, сколько вы можете сосчитать, и вам нужно работать непосредственно со словами. "Слово 3,547 введено в заблуждение. Измените слово 3 452 780 на «Привет». Удалить слово 6 ".

Теперь каждая страница может содержать 4000 слов. Подвох заключается в том, что когда вы ссылаетесь на пространство подкачки, вы не ссылаетесь на него по слову, только по странице. Таким образом, вы все еще можете сосчитать до 4 миллиардов, но вы можете сосчитать до 4 миллиардов страниц. 4 миллиарда страниц на самом деле содержат 16 триллионов слов - намного, намного выше, чем вы можете сосчитать.

64-битные машины могут считать выше, поэтому они могут поместить все страницы на стол сразу, если у них достаточно большой стол. Даже если вы поместите очень большой стол в 32-разрядную машину, вы все равно сможете сосчитать только до 4 миллиардов, так что у вас нет возможности сослаться на все лишние слова на столе.

10

Вы путаете физическую и виртуальную память.

ОЗУ - это физическая память. Пространство подкачки может содержать много виртуальных адресных пространств по 4 ГБ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .