Чи впливає обмеження на 4 Гб оперативної пам’яті в 32-бітних системах також на обмінні місця?


11

Добре відомо, що 32-бітні системи можуть працювати лише 4 ГБ як максимальний об'єм оперативної пам'яті.

В Linux, чи застосовується цей ліміт і для swap-розділів? Якщо мій RAM + своп перевищує 4 ГБ, чи буде він повністю використаний?

Якщо відповідь "ні, це не стосується своп", чому?


3
Ця заява про обмеження фізичної пам'яті не відповідає всім платформам ... "Фізичне розширення адреси (PAE) - це функція, яка дозволяє 32-бітовим центральним процесорним процесорам x86 отримати доступ до фізичного адресного простору (включаючи пам'ять випадкового доступу та відображену пам'ять) пристроїв) більше 4 гігабайт. " en.wikipedia.org/wiki/Physical_Address_Extension
f1assistance

1
@packets Не переплутайте його більше. Йому дійсно потрібно спершу дізнатися про основні поняття, такі як віртуальна адресація та пейджингові повідомлення.
Девід Маршалл

1
Немає проблем, я не боюся навчання.
Сехемті

Відповіді:


12

Ні, уявіть, що оперативна пам’ять - це як ваш стіл, а обмінна простір / віртуальна пам'ять - як шафа для подачі заявок. Ви можете помістити багато інформації в шафу для подачі заявок, але це важко отримати доступ. Будь-які папери, які ви хочете використовувати, ви повинні витягнути і покласти їх на парту; проблема полягає в тому, що на столі можна вмістити лише стільки паперів одночасно.

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


Причина, яку він не застосовує до swap, полягає в тому, що доступ до вмісту ОЗУ або виконання коду з нього обмежений розміром чисел, з якими він може працювати. Подумайте про це так, як на столі ви можете мати лише 4 мільярди слів, адже це настільки високо, наскільки ви можете порахувати, і вам потрібно працювати безпосередньо зі словами. "Слово 3,547 введено в помилку. Змініть слово 3,452,780 на" Привіт ". Видаліть слово 6."

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

64-розрядні машини можуть просто нараховувати більше, тому вони можуть розмістити всі сторінки на столі відразу, якщо у них достатньо великий стіл. Навіть якщо ви помістите надвеликий стіл у 32-бітну машину, ви все одно можете нараховувати лише 4 мільярди, тому у вас немає ніякого способу посилатися на всі зайві слова на столі.


Отже, що ви намагаєтесь сказати мені, що простір swap виступає в якості індексу для оперативної пам'яті? І, отже, один ГБ свопу представляють набагато більше пам’яті, ніж один ГБ оперативної пам’яті? У будь-якому разі я досі не можу зрозуміти, чому система не може керувати більш ніж 4 Гб оперативної пам’яті, а натомість може робити заміну. Чому ми тоді не використовуємо swap замість оперативної пам’яті?
Сехемті

1
Простір обміну - це як "незавантажена" пам'ять, і на нього посилається значно більший об'єм. 1 Гб оперативної пам’яті - це 1 Гб свопу, але оперативна пам’ять адресована за байтом, а своп адресований за шматок. Іншим прикладом може бути думка про пакування арахісу. Скільки пакувальних арахісів ви можете тримати в руках? Можливо, 100, перш ніж намагатися назбирати більше причин, хтось вискакує між вашими пальцями? Тепер, скільки пакувальних арахісів ви можете потримати, якщо ми покладемо їх у коробки? Тисячі? Міняти щось на зразок коробок. Ви можете керувати даними великими фрагментами, але ви не можете отримати доступ до самих даних.
Дарт Android

1
@Sekhemty: На ваше друге питання про те, чому ми використовуємо swap весь час - файл swap існує на вашому жорсткому диску, а швидкість, з якою комп'ютер може отримати доступ до даних на жорсткому диску, залежить від швидкості доступу диска (і то деякі). Але навіть найшвидші жорсткі диски значно набагато повільніше, ніж фізична ОЗУ. Тож це питання швидкості. Також поточна архітектура x86 все одно не дозволяє (немає оперативної пам’яті; лише міняти місцями). Файл Swap - це концепція ОС, про яку система не обізнана.
bobbyalex

10

Ви плутаєте фізичну та віртуальну пам'ять.

Оперативна пам’ять - це фізична пам'ять. Простір підкачки може містити багато віртуальних адресних просторів 4 Гб.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.