-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3.10.html
88 lines (73 loc) · 10 KB
/
3.10.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Механизм реализации виртуальной памяти и стратегия подкачки страниц</title>
<link rel="stylesheet" href="./css/index.css">
</head>
<body>
<div class="container">
<h1>Механизм реализации виртуальной памяти и стратегия подкачки страниц</h1>
<div class="navigation-buttons">
<a href="3.9.html" class="button">⬅ Назад</a>
<a href="4.1.html" class="button">Вперёд ➡</a>
</div>
<h2>Механизм реализации виртуальной памяти</h2>
<p><strong>Виртуальная память</strong> — это технология, используемая операционными системами для расширения объема доступной памяти, позволяя процессам использовать больше памяти, чем физически установлено в системе. Механизм виртуальной памяти создаёт абстракцию, предоставляя каждому процессу своё виртуальное адресное пространство, которое отображается на физическую память с помощью таблиц страниц и механизмов подкачки.</p>
<h3>Основные компоненты механизма виртуальной памяти</h3>
<ul>
<li><strong>Таблицы страниц:</strong> Таблицы страниц хранят соответствие между виртуальными и физическими адресами. Каждая страница виртуальной памяти сопоставляется с рамкой физической памяти, а таблица страниц управляет этим отображением.</li>
<li><strong>Контроллер управления памятью (MMU):</strong> MMU — это аппаратное устройство, которое выполняет преобразование виртуальных адресов в физические, используя таблицы страниц. MMU перехватывает запросы к памяти и, при необходимости, вызывает подкачку страниц.</li>
<li><strong>Подкачка страниц (Paging):</strong> Подкачка позволяет системе выгружать неиспользуемые страницы из физической памяти на диск (файл подкачки), а затем загружать их обратно при обращении. Это помогает экономить физическую память, размещая на диске редко используемые данные.</li>
</ul>
<h3>Процесс работы виртуальной памяти</h3>
<ol>
<li>Когда процесс запрашивает доступ к данным по виртуальному адресу, MMU преобразует виртуальный адрес в физический с помощью таблицы страниц.</li>
<li>Если виртуальный адрес сопоставлен с физическим, MMU передаёт запрос в физическую память.</li>
<li>Если виртуальный адрес не сопоставлен (возникает «промах по странице»), система загружает страницу с диска в физическую память и обновляет таблицу страниц.</li>
</ol>
<h3>Преимущества виртуальной памяти</h3>
<ul>
<li><strong>Изоляция процессов:</strong> Каждый процесс имеет своё виртуальное адресное пространство, что защищает его от влияния других процессов.</li>
<li><strong>Расширение объёма памяти:</strong> Процессы могут использовать больше памяти, чем установлено физически, благодаря использованию диска для хранения временных данных.</li>
<li><strong>Эффективное использование памяти:</strong> Подкачка страниц позволяет выгружать редко используемые данные, освобождая физическую память для активных процессов.</li>
</ul>
<h2>Стратегии подкачки страниц</h2>
<p>Подкачка страниц используется для загрузки страниц в физическую память при их необходимости. Стратегии подкачки определяют, какие страницы будут выгружены из памяти при необходимости освобождения места для новых страниц. Основные стратегии включают:</p>
<h3>1. FIFO (First-In, First-Out)</h3>
<p>При стратегии <strong>FIFO</strong> страницы, загруженные в память раньше других, выгружаются первыми. Таблица страниц работает как очередь: когда память заполняется, самая «старая» страница удаляется. Стратегия проста в реализации, но может приводить к частым промахам.</p>
<h4>Плюсы и минусы:</h4>
<ul>
<li><strong>Плюс:</strong> Простота реализации.</li>
<li><strong>Минус:</strong> Механизм «аномалии Белади», при которой увеличение объёма памяти может привести к большему числу промахов.</li>
</ul>
<h3>2. LRU (Least Recently Used)</h3>
<p><strong>LRU</strong> выгружает страницы, которые не использовались дольше других. Система отслеживает время последнего обращения к каждой странице и удаляет ту, которая не использовалась дольше всего. Эта стратегия более эффективна, но сложна в реализации из-за необходимости хранения и обновления информации о времени доступа.</p>
<h4>Плюсы и минусы:</h4>
<ul>
<li><strong>Плюс:</strong> Оптимизация под реальный доступ к страницам.</li>
<li><strong>Минус:</strong> Высокие накладные расходы на отслеживание времени последнего доступа.</li>
</ul>
<h3>3. OPT (Optimal Page Replacement)</h3>
<p><strong>OPT</strong> — теоретическая стратегия, которая выгружает страницы, которые не будут использоваться дольше всех в будущем. Эта стратегия требует знаний о будущих обращениях, что невозможно в реальной системе, но её можно использовать для оценки эффективности других алгоритмов.</p>
<h4>Плюсы и минусы:</h4>
<ul>
<li><strong>Плюс:</strong> Наименьшее количество промахов по страницам среди всех стратегий.</li>
<li><strong>Минус:</strong> Нереализуемость в реальной системе из-за необходимости знания будущих обращений.</li>
</ul>
<h3>4. Clock (Second-Chance)</h3>
<p><strong>Clock</strong> — это упрощённая версия LRU, которая использует бит доступа для каждой страницы. Если бит доступа страницы установлен (страница недавно использовалась), он сбрасывается, и страница получает «второй шанс». Если бит сброшен, страница выгружается. Стратегия работает как «часовая стрелка», проходя по страницам циклически.</p>
<h4>Плюсы и минусы:</h4>
<ul>
<li><strong>Плюс:</strong> Эффективность и простота реализации.</li>
<li><strong>Минус:</strong> Менее оптимальна, чем LRU, но требует меньше ресурсов для отслеживания использования страниц.</li>
</ul>
<h2>Заключение</h2>
<p>Механизм виртуальной памяти и стратегии подкачки страниц позволяют операционной системе эффективно управлять памятью, поддерживая изоляцию процессов и многозадачность. Разные стратегии подкачки страниц предлагают различные подходы к выбору страниц для выгрузки, что помогает оптимизировать использование памяти и производительность системы в зависимости от особенностей и требований приложения.</p>
</div>
<div class="navigation-buttons">
<a href="3.9.html" class="button">⬅ Назад</a>
<a href="4.1.html" class="button">Вперёд ➡</a>
</div>
</body>
</html>