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


Лекция №9. Управление памятью в операционных системах



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

 
Лекция №9. Управление памятью в операционных системах
Память и отображение. Неразрывные методы распределения памяти 
Цель лекции: ознакомиться с механизмами отображения пространства 
имен на физическую память компьютера, а также с неразрывными методами 
распределения памяти. 
 
Оперативная память – это важнейший ресурс любой вычислительной 
системы, поскольку без нее невозможно выполнение ни одной программы. 
Поскольку память является распределяемым ресурсом, от выбранных 
механизмов распределения памяти между выполняющимися процессами в 
значительной степени зависит эффективной использования ресурсов системы, 
ее производительность и возможности, которыми могут пользоваться 
программисты при создании свои программ. 
В общем случае множество переменных в программе не упорядочено, 
т.к. обращение к памяти осуществляется посредством некоторого набора 
логических имен (чаще всего символьных, а не числовых), хотя отдельные 
переменные могут иметь частичную упорядоченность (массивы). Имена 
переменных и входных точек программных модулей составляют пространство 
символьных имен – логическое пространство. С другой стороны, при 
выполнении программы процессор работает с физической памятью, извлекая 
из нее команды и данные и помещая в нее результаты вычислений. 
Физическая память представляет собой упорядоченное множество ячеек 
реально существующей оперативной памяти, все они пронумерованы, т.е. к 
каждой из них можно обратиться, указав ее порядковый номер (адрес). 
Количество ячеек физической памяти ограничено и фиксировано. 
Системное программное обеспечение должно связать каждое 
символьное имя, указанное пользователем, с физической ячейкой памяти, т.е. 
осуществить отображение пространства имен на физическую память 
компьютера. В общем случае это отображение осуществляется в два этапа 
(рисунок А.9): сначала системой программирования, а затем операционной 
системой (с помощью подсистемы управления памятью). Между этапами 
обращения к памяти имеют форму виртуального адреса. При этом множество 


36 
всех допустимых значений виртуального адреса для некоторой программы 
определяет ее виртуальное адресное пространство или виртуальную память
Виртуальное адресное пространство зависит от архитектуры процессора и от 
системы программирования и практически не зависит от объема реальной 
физической памяти компьютера. 
Система программирования осуществляет трансляцию и компоновку 
программы, используя библиотечные модули. В результате работы системы 
программирования полученные виртуальные адреса могут иметь как 
двоичную, так и символьно-двоичную формы. В случае, когда имеется полная 
тождественность виртуального адресного пространства физической памяти, 
речь идет о генерации абсолютной двоичной программы (т.е. программы 
будет исполняться только тогда, когда виртуальные адреса будут 
соответствовать физическим). Часть программных модулей любой ОС 
обязательно должна быть абсолютными двоичными программами, которые 
размещаются по фиксированным адресам физической памяти (например, 
программы загрузки операционной системы).
Термин виртуальная память фактически относится к системам, 
которые сохраняют виртуальные адреса во время исполнения. Так как второе 
отображение осуществляется во время исполнения задачи, то адреса 
физических ячеек могут изменяться. В зависимости от соотношения объемов 
виртуального адресного пространства Vv и физической памяти Vp
используются разные эффективных методы распределения памяти. 
Память задаче может выделяться одним сплошным участком (методы 
неразрывного распределения памяти) или несколькими порциями, которые 
могут быть размещены в разных областях памяти (методы разрывного 
распределения). 
Простое непрерывное распределение – это самая простая схема, 
согласно которой память может быть условно разделена на три области: 
область, занимаемая ОС; область, в которой размещается исполняемая задача; 
область памяти, незанятая ничем (свободная). Эта схема является самой 
первой схемой и продолжает оставаться достаточно распространенной. Схема 
предполагает, что ОС не поддерживает мультипрограммирование, поэтому не 
возникает проблемы распределения памяти между несколькими задачами. 
Программные модули, необходимые для всех программ, располагаются в 
области самой ОС, а вся оставшаяся память может быть предоставлена задаче. 
Эта область памяти получается непрерывной, что облегчает систему 
программирования. Привязка виртуальных адресов программы к физическому 
адресному пространству осуществляется на этапе загрузки задачи в память. 
Чтобы отвести задачам как можно больший объем памяти, ОС строится таким 
образом, чтобы постоянно в оперативной памяти располагалась только самая 
нужная ее часть – ядро.
Если есть необходимость создать программу, логическое адресное 
пространство которой должно быть больше, чем свободная область памяти 
(или чем весь возможный объем ОП), то используется распределение с 


37 
перекрытием – так называемые оверлейные структуры. Этот метод 
распределения предполагает, что вся программа может быть разбита на части 
– сегменты. Каждая оверлейная программа имеет одну главную часть (main) и 
несколько сегментов (segments), в памяти одновременно могут находиться 
только ее главная часть или несколько не перекрывающихся сегментов. Пока
в ОП располагаются выполняющиеся сегменты, остальные находятся во 
внешней памяти. После того, как текущий сегмент завершит свое выполнения, 
возможны варианты: либо он сам обращается к ОС с указанием, какой сегмент 
должен быть загружен следующим; либо он возвращает управление главному 
сегменту задачи, который обращается с указанием к ОС. Простейшие схемы 
сегментирования предполагают, что в каждый момент времени в памяти 
может располагаться только один сегмент вместе с главным модулем. Более 
сложные схемы позволяют располагать в памяти несколько сегментов
Например, в однопрограммной ОС MS DOS распределение памяти построено 
по схеме простого непрерывного распределения с перекрытием (оверлейные 
структуры). 
Для организации мультипрограммного и/или мультизадачного режима 
необходимо обеспечить одновременное расположение в оперативной памяти 
нескольких задач (целиком или частями). Самая простая схема распределения 
памяти между несколькими задачами предполагает, что память, не занятая 
ядром ОС, может быть разбита на несколько непрерывных частей – разделов

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




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

    Басты бет