Конспект лекций для студентов специальности 5В070200 Автоматизация и управление Алматы 2015


Лекция №10. Разрывные методы распределения памяти



Pdf көрінісі
бет21/33
Дата13.03.2023
өлшемі0,92 Mb.
#73886
түріКонспект
1   ...   17   18   19   20   21   22   23   24   ...   33
Байланысты:
PXcdfzCNmVjtZ8sMK5nLG1UywOruSq

Лекция №10. Разрывные методы распределения памяти 
Цель лекции: ознакомиться с разрывными методами распределения 
памяти. 


39 
Методы распределения памяти, при которых задаче уже не может 
предоставляться сплошная (непрерывная) область памяти, называются 
разрывными. Подход требует для своей реализации больше ресурсов и 
намного сложнее, однако, выделение задаче памяти фрагментами, а не 
сплошной областью, позволяет уменьшить фрагментацию памяти.
Первым среди разрывных методов распределения памяти был 
сегментный. Для этого метода программу необходимо разбивать на части и 
уже каждой такой части выделять физическую память. Естественным 
способом разбиения программы на части является разбиение ее на логические 
элементы – так называемые сегменты. В принципе, каждый программный 
модуль может быть принят как отдельный сегмент, а вся программа будет 
представлять собой множество сегментов. Каждый сегмент размещается в 
памяти как до определенной степени самостоятельная единица. Логически 
обращение к элементам программы в этом случае будет состоять из имени 
сегмента и смещения относительно начала этого сегмента. Физически имя 
сегмента (или порядковый номер) будет соответствовать некоторому адресу, с 
которого этот сегмент начинается при его размещении в памяти, и смещение 
должно прибавляться к этому базовому адресу. Преобразование имени 
сегмента в его порядковый номер осуществит система программирования. Для 
каждого сегмента система указывает его объем. ОС будет размещать сегменты 
в памяти и для каждого сегмента она должна вести учет о местонахождении 
этого сегмента (рисунок А.11). Информация о текущем размещении сегментов 
задачи в памяти сводится в таблицу сегментов (таблицу дескрипторов 
сегментов задачи). Каждая задача имеет свою таблицу сегментов.
Увеличение 
коэффициента 
мультипрограммирования 
позволяет 
увеличить загрузку системы и более эффективно использовать ресурсы 
вычислительной системы. Однако увеличивать количество задач можно 
только до определенного предела, ибо если в памяти не будет хватать места 
для часто используемых сегментов, то производительность системы резко 
упадет, т.к. сегмент, находящийся вне ОП, для участия в вычислениях должен 
быть перемещен в ОП. При этом, если в памяти есть свободное пространство, 
то необходимо найти нужный сегмент во внешней памяти и загрузить его в 
оперативную. А если свободного места нет, принять решение – на место 
какого из сегментов будет загружаться требуемый. Перемещение сегментов из 
ОП на жесткий диск и обратно называют свопингом сегментов. Для решения 
проблемы используются следующие дисциплины: 
1) правило FIFO (First In First Out – первый пришедший первым и 
выбывает) - для замещения выбирается сегмент, первым попавший в память; 
2) правило LRU (Least Recently Used – дольше других неиспользуемый);
3) правило LFU (Least Frequently Used – реже других используемый); 
4) случайный (random) выбор сегмента. 
Для реализации дисциплин 2 и 3 необходимо, чтобы процессор имел 
дополнительные аппаратные средства. Диспетчер памяти время от времени 


40 
просматривает таблицы дескрипторов исполняющихся задач и собирает для 
соответствующей обработки статистическую информацию об обращениях к 
сегментам. В результате составляется список, упорядоченный либо по 
длительности простоя (2), либо по частоте использования (3). Дисциплины 1 
и 4 являются самыми простыми в реализации, но не учитывают, насколько 
часто используется тот или иной сегмент, следовательно, диспетчер памяти 
может выгрузить или расформировать тот сегмент, к которому в ближайшем 
будущем будет обращение. При этом вероятность ошибки в первом и 
четвертом случаях больше, чем во втором и третьем.
Достоинства, появляющиеся при сегментном способе организации 
виртуальной памяти: при загрузке программы на исполнение можно 
размещать ее в памяти не целиком, а «по мере необходимости»; некоторые 
модули могут быть разделяемыми (т.к. они являются сегментами, легко 
организовать доступ к этим общим сегментам с помощью указателей). 
Недостатки метода: для доступа к искомой ячейке тратится много времени, 
для устранения используется кэширование – размещение в сверхоперативной 
памяти; несмотря на то, что наблюдается существенно меньшая 
фрагментация, чем при неразрывном распределении памяти, она все же есть; 
на размещение и обработку дескрипторных таблиц тратится много 
процессорного времени и памяти. 
Для устранения недостатков сегментного способа организации 
виртуальной памяти был разработан следующий метод разрывного 
распределения памяти – страничный. Страничный способ организации 
виртуальной памяти – это способ, при котором все фрагменты задачи 
считаются равными (одинаковыми по размеру), причем длина фрагмента в 
идеале должна быть кратна степени двойки, чтобы операции сложения можно 
было заменить операциями конкатенации (слияния). Одинаковыми 
полагаются и единицы памяти, которые предоставляются для размещения 
фрагментов программы. Эти одинаковые части называют страницами, ОП 
разбивается на физические страницы, а программа – на виртуальные единицы.

Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   ...   33




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет