/ / Чи знаходиться віртуальний адресний простір у віртуальній пам'яті? - управління пам'яттю, операційна система

Чи є віртуальний адресний простір у віртуальній пам'яті? - керування пам'яттю, операційною системою

Чи існує віртуальний адресний простірпам'яті? У мене є плутанина, як, кожен процес має власну віртуальну пам'ять і таблицю сторінок, а перетворення на фізичну адресу з віртуальної адреси відбувається під час завантаження її у фізичну пам'ять, але де віртуальний адресний простір потрапляє в картину? Я пережив багато книг з операційними системами, але скрізь він дає лише пояснення щодо конкретного слова, а не там, де він знаходиться, і які відносини між ними і як він працює. Будь ласка, просто поясніть мені теоретично, приклад не потрібний. Заздалегідь спасибі.

Відповіді:

0 для відповіді № 1

(Віртуальний) Адресний простір - це набір допустимихадреси для заданої ширини адреси (це 2 ^ 32 байти на x86, 2 ^ 64 на x64). Віртуальна пам'ять зазвичай означає майже те ж саме. Це набір допустимих адрес для певного процесу або програми, або ж для всієї системи. Віртуальна пам'ять для однієї програми може бути максимально такою ж, як і віртуальний адресний простір системи. Кожне додаток може "бачити" тільки віртуальний адресний простір, який виділено йому ОС (і через деяку хитрість, можливо, що кожна програма може мати віртуальний адресний простір того ж розміру і сума може бути більше адресний простір системи).

Фізична пам'ять (правильніше: фізична оперативна пам'ять), тобто кількість ефективно встановлених модулів оперативної пам'яті. Зазвичай він менший, ніж віртуальний адресний простір. ОС робить заміну сторінок пам'яті з жорсткого диска у фізичну пам'ять, якщо це необхідно. Сторінка пам'яті у фізичній пам'яті має фізичну адресу і віртуальний. Звичайні програми бачать тільки віртуальну адресу, і вони не бажають (і не повинні) піклуватися про те, де фізично завантажується сторінка пам'яті. Фізична адреса завжди потрібна лише при безпосередньому взаємодії з апаратним забезпеченням, вона може навіть постійно змінюватися, якщо ОС вирішить це зробити.

Сподіваюся, що це робить це трохи більш чітким.


0 для відповіді № 2

Я не фахівець, але віртуальнийадресація і пейджинг є частиною захищеного режиму процесора, введеного після 80386, і він не є частиною операційної системи. Операційна система контролює таблиці сторінок. Для віртуальних адрес вони, наприклад, є просто номерами у вашому виконуваному файлі objdump -d відобразить їх