6: Віртуальна пам'ять
- Page ID
- 34517
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)
- 6.1: Що таке віртуальна пам'ять
- Віртуальна пам'ять часто наївно обговорюється як спосіб розширити оперативну пам'ять, використовуючи жорсткий диск як додаткову, повільнішу, системну пам'ять. Тобто, як тільки ваша система закінчується пам'яті, вона перетікає на жорсткий диск, який використовується як «віртуальна» пам'ять.
- 6.2: Що таке віртуальна пам'ять
- Віртуальна пам'ять - це все про використання адресного простору. Адресний простір процесора позначає діапазон можливих адрес, які він може використовувати при завантаженні та зберіганні в пам'ять. Адресний простір обмежений шириною регістрів, оскільки, як ми знаємо, для завантаження адреси нам потрібно видати інструкцію навантаження з адресою для завантаження з збереженого в реєстрі.
- 6.3: Сторінки
- Загальний адресний простір ділиться на окремі сторінки. Сторінки можуть бути різних розмірів; як правило, вони близько 4 Кб, але це не жорстке і швидке правило, і вони можуть бути набагато більшими, але, як правило, не меншими. Сторінка - це найменша одиниця пам'яті, з якою може впоратися операційна система і апаратне забезпечення.
- 6.4: Фізична пам'ять
- Подібно до того, як операційна система ділить можливий адресний простір на сторінки, вона ділить наявну фізичну пам'ять на кадри. Кадр - це лише умовна назва для шматка фізичної пам'яті такого ж розміру, як розмір системної сторінки.
- 6.5: Сторінки+кадри = Таблиці сторінок
- Саме робота операційної системи полягає в тому, щоб відстежувати, яка з віртуальних сторінок вказує на який фізичний кадр. Ця інформація зберігається у таблиці сторінок, яка у найпростішому вигляді може бути просто таблицею, де кожен рядок містить пов'язаний кадр - це називається лінійною таблицею сторінок.
- 6.6: Віртуальні адреси
- Коли програма звертається до пам'яті, вона не знає або піклується про те, де зберігається фізична пам'ять, яка підтримує адресу. Він знає, що операційна система та обладнання повинні працювати разом, щоб зіставити потрібну фізичну адресу і таким чином забезпечити доступ до потрібних даних. Таким чином, ми називаємо адресу, яку програма використовує для доступу до пам'яті віртуальної адреси. Віртуальна адреса складається з двох частин: сторінки та зсуву на цій сторінці.
- 6.7: Наслідки віртуальних адрес, сторінок і таблиць сторінок
- Віртуальна адресація, сторінки і таблиці сторінок - основа кожної сучасної операційної системи. Це підпирає більшість речей, для яких ми використовуємо наші системи.
- 6.8: Підтримка обладнання
- Поки ми лише згадували, що апаратне забезпечення працює з операційною системою для реалізації віртуальної пам'яті. Однак ми проглянули деталі того, як саме це відбувається. Віртуальна пам'ять обов'язково досить залежить від апаратної архітектури, і кожна архітектура має свої тонкощі. Однак є кілька універсальних елементів віртуальної пам'яті в апаратному забезпеченні.
- 6.9: Специфіка Linux
- Хоча основні поняття віртуальної пам'яті залишаються постійними, специфіка реалізацій сильно залежить від операційної системи і апаратного забезпечення.
- 6.10: Апаратна підтримка віртуальної пам'яті
- Як розглянуто в розділі під назвою «TLB», апаратне забезпечення процесора забезпечує таблицю пошуку, яка пов'язує віртуальні адреси з фізичними адресами. Кожна архітектура процесора визначає різні способи управління TLB з різними перевагами і недоліками. Частина процесора, яка займається віртуальною пам'яттю, зазвичай називається блоком управління пам'яттю або MMU.