Популярные услуги

КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Повышение уникальности твоей работе
Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)

Основные положения

2021-03-09СтудИзба

5.1. Основные положения

УПРАВЛЕНИЕ ПАМЯТЬЮ

Основные положения


Запоминающие устройства компьютера разделяют, как минимум, на два вида:

· основную (главную, оперативную);

· вторичную (внешнюю) память.

Основная память (англ. memory) представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти. Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.

Вторичную память (англ. storage) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. Как правило, внешняя память реализована с использованием различного рода дисков. В отличие от ОП, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.

Эту схему можно дополнить еще несколькими промежуточными уровнями. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости (рис. 20).

Рекомендуемые материалы

http://lcg.tpu.ru/OPSYS_0961/img/4_1.gif

Рисунок 20 – Иерархическая организация памяти

Как правило, иерархическая многоуровневая схема используются следующим образом. Информация, которая находится в памяти верхнего уровня, обычно сохраняется также и на более низких уровнях. Если процессор не обнаруживает нужную информацию на i-м уровне, он начинает искать ее на i-1, i-2,… уровнях. Когда нужная информация найдена, она переносится на уровни, находящиеся выше в иерархии и обеспечивающие более высокое быстродействие.


http://lcg.tpu.ru/web-ct/ru/img/shim.gif
5.1.1. Задачи по управлению памятью

Задачи по управлению памятью


Особая роль памяти объясняется тем, что процессор может выполнять инструкции программы только в том случае, если они находятся в памяти. В ранних ОС управление памятью сводилось просто к загрузке программы и ее данных из некоторого внешнего накопителя (перфоленты, магнитной ленты или магнитного диска) в память.

С появлением мультипрограммирования перед ОС были поставлены новые задачи, связанные с распределением имеющейся памяти между несколькими одновременно выполняющимися программами. Организация и управление ОП во многом определяют фактический уровень мультипрограммирования ОС, то есть возможность выполнения нескольких параллельных процессов.

Как правило, учитывая первостепенную важность решения задач по управлению памятью компьютера, в ОС для них выделена специальная подсистема управления памятью. Ее основная цель – обеспечить максимальный уровень мультипрограммирования и, тем самым, максимальную загрузку центрального процессора. Поэтому одной из основных задач этой подсистемы является эффективное размещение процессов в ОП.

Сегодня функциями ОС по управлению памятью в мультипрограммной системе являются:

· отслеживание свободной и занятой памяти;

· выделение памяти процессам и освобождение памяти по завершении процессов;

· вытеснение кодов и данных процессов из ОП на диск (полное или частичное), когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в ОП, когда в ней освобождается место;

· настройка адресов программы на конкретную область физической памяти.

Кроме того, следует выделить такую функцию ОС как динамическое распределение и перераспределение памяти после ее первоначального выделения процессам. Также необходимо решение задачи по защите памяти, которая состоит в том, чтобы не позволить выполняемому процессу записывать или читать данные из памяти, назначенной другому процессу. Эта функция, как правило, реализуется программными модулями ОС в тесном взаимодействии с аппаратными средствами.


http://lcg.tpu.ru/web-ct/ru/img/shim.gif
5.1.2. Типы адресации

Типы адресации


Если не принимать во внимание программирование на машинном языке (эта технология практически не используется уже очень давно), то можно сказать, что программист обращается к памяти с помощью некоторого набора логических имен, которые чаще всего являются символьными, а не числовыми, и для которого отсутствует отношение порядка. Другими словами, в общем случае множество переменных в программе не упорядочено, хотя отдельные переменные могут иметь частичную упорядоченность (например, элементы массива). Имена переменных и входных точек программных модулей составляют пространство символьных имен, иногда называемое логическим адресным пространством.

С другой стороны, при выполнении программы идет работа с физической ОП, собственно с которой и работает процессор, извлекая из нее команды и данные и помещая в нее результаты вычислений. Физическая память представляет собой упорядоченное множество ячеек реально существующей ОП, и все они пронумерованы, то есть к каждой из них можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.

Системное ПО должно связать каждое указанное пользователем символьное имя с физической ячейкой памяти, то есть осуществить отображение пространства имен на физическую память компьютера. В общем случае это отображение осуществляется в два этапа – сначала системой программирования, а затем ОС (рис. 21).

Система программирования осуществляет трансляцию и компоновку программы, используя библиотечные программные модули. В результате работы этой системы программа получает виртуальные адреса, которые могут иметь двоичную или символьно-двоичную формы. Те модули, адреса для которых пока не могут быть определены, имеют по-прежнему символьную форму, и их окончательная привязка к физическим ячейкам будет осуществлена на этапе загрузки программы в память непосредственно перед ее исполнением. Физические адреса соответствуют номерам ячеек ОП, где в действительности расположены или будут расположены переменные и команды.

Второе отображение, реализуемое посредством ОС, осуществляется с помощью соответствующих аппаратных средств процессора – подсистемы управления памятью, которая использует дополнительную информацию, подготавливаемую и обрабатываемую ОС.

Между этими этапами обращения к памяти имеют форму виртуального адреса. Говорят, что множество всех допустимых значений виртуального адреса для некоторой программы определяет ее виртуальное адресное пространство или виртуальную память. Виртуальное адресное пространство программы зависит, прежде всего, от архитектуры процессора и от системы программирования и практически не зависит от объема реальной физической памяти компьютера.

http://lcg.tpu.ru/OPSYS_0961/img/4_1_2.gif

Рисунок 21 – Отображение пространства имен на физическую память компьютера

Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же. Например, при использовании 32-разрядных виртуальных адресов этот диапазон задается границами 0000000016 и FFFFFFFF16. Тем не менее, каждый процесс имеет собственное виртуальное адресное пространство – транслятор независимо присваивает виртуальные адреса переменным и кодам каждой выполняемой программе. Можно еще сказать, что адреса команд и переменных в машинной программе, подготовленной к выполнению системой программирования, как раз и являются виртуальными адресами.

Возможны различные варианты перехода от символьных имен к физическим адресам. Рассмотрим ряд частных и промежуточных вариантов такого перехода.

Одним из частных случаев общей схемы трансляции адресного пространства является тождественность виртуального адресного пространства исходному логическому пространству имен. Здесь уже отображение выполняется самой ОС, которая во время исполнения использует таблицу символьных имен. Такая схема отображения используется чрезвычайно редко, так как отображение имен на адреса необходимо выполнять для каждого вхождения имени (каждого нового имени), и особенно много времени расходуется на квалификацию имен. Данную схему можно было встретить в интерпретаторах, в которых стадии трансляции и исполнения практически неразличимы. Это характерно для простейших компьютерных систем, в которых вместо ОС использовался встроенный интерпретатор (например, Basic).

Другим частным случаем отображения пространства символьных имен на физическую память является полная тождественность виртуального адресного пространства физической памяти. При этом нет необходимости осуществлять второе отображение. В таком случае говорят, что система программирования генерирует абсолютную двоичную программу: в этой программе все двоичные адреса таковы, что программа может исполняться только тогда, когда ее виртуальные адреса будут точно соответствовать физическим. Некоторые программные модули любой ОС обязательно должны быть абсолютными двоичными программами. Эти программы размещаются по фиксированным адресам физической памяти, и с их помощью можно впоследствии реализовывать размещение остальных программ, подготовленных системой программирования таким образом, что они могут работать на различных физических адресах (то есть на тех адресах, на которые их разместит ОС). Примером таких программ являются программы загрузки ОС.

Возможны и промежуточные варианты. В простейшем случае транслятор-компилятор генерирует относительные адреса, которые, по сути, являются виртуальными адресами, с последующей настройкой программы на один из непрерывных разделов. Второе отображение осуществляется перемещающим загрузчиком. После загрузки программы виртуальный адрес теряется, и доступ выполняется непосредственно к физическим ячейкам. Более эффективное решение достигается в том случае, когда транслятор вырабатывает в качестве виртуального адреса относительный адрес и информацию о начальном адресе, а процессор, используя подготавливаемую ОС адресную информацию, выполняет второе отображение не один раз (при загрузке программы), а при каждом обращении к памяти.

Следует отметить, что термин виртуальная память фактически относится к системам, которые сохраняют виртуальные адреса во время исполнения. В связи с тем, что второе отображение осуществляется в процессе исполнения задачи, то адреса физических ячеек могут изменяться. При правильном применении такие изменения улучшают использование памяти, избавляя программиста от деталей управления ею, и повышают надежность вычислений.

Если рассматривать общую схему двухэтапного отображения адресов, представленную на рис. 21, то с позиции соотношения объемов упомянутых адресных пространств можно отметить наличие следующих трех ситуаций:

· объем виртуального адресного пространства программы Vv меньше объема физической памяти Vp (Vv < Vp);

Рекомендуем посмотреть лекцию "Тема 8. Основные системы мозга (часть 2)".

· объем виртуального адресного пространства программы Vv равен объему физической памяти Vp (Vv = Vp);

· объем виртуального адресного пространства программы Vv больше объема физической памяти Vp (Vv > Vp).

Ситуация (Vv < Vp) сейчас на практике практически не встречается, но недавно, например 16-разрядные мини-ЭВМ имели систему команд, в которых программисты могли адресовать до 216 = 64 Кбайт адресов (обычно в качестве адресуемой единицы выступала ячейка памяти размером 1 байт). При этом физически старшие модели этих мини-ЭВМ могли иметь объем ОП в несколько мегабайтов. Обращение к памяти столь большого объема осуществлялось с помощью специальных регистров, содержимое которых складывалось с адресом операнда (или команды), извлекаемым из поля операнда или указателя команды (и/или определяемым по значению поля операнда или указателя команды). Соответствующие значения в эти специальные регистры, выступающие как базовое смещение в памяти, заносила ОС. Для одной задачи в регистр заносилось одно значение, а для второй (третьей, четвертой и т.д.) задачи, размещаемой одновременно с первой, но в другой области памяти, заносилось, соответственно, другое значение. Таким образом, вся физическая память разбивалась на разделы объемом по 64 Кбайт, и на каждый такой раздел осуществлялось отображение своего виртуального адресного пространства.

Вторая ситуация (Vv = Vp) особенно характерна для недорогих вычислительных комплексов. Для этого случая имеется большое количество методов распределения ОП.

Третья ситуация, при которой объема виртуального адресного пространства программы превышает объем физической памяти (Vv > Vp), сегодня наиболее характерна. Теперь это самая обычная ситуация, и для нее имеется несколько методов распределения памяти, отличающихся как сложностью, так и эффективностью, которые более подробно будут рассмотрены ниже в п. 4.2.



Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее