Лекция №6 по дисциплине«Операционные системы и оболочки» Тема №5 Управление памятью для студентов специальности 230400. 62-Информационные системы и технологии шифр наименование



Скачать 245,86 Kb.
страница1/2
Дата12.09.2017
Размер245,86 Kb.
  1   2
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ
Экономический факультет

УТВЕРЖДАЮ

Заведующий кафедрой

______________________

«___»_____________2014 г.




ЛЕКЦИЯ №6

по дисциплине«Операционные системы и оболочки»


Тема №5

Управление памятью

для студентов специальности 230400.62–Информационные системы и технологии

ШИФР наименование

Рассмотрено УМК


" " ___________ 2014 года

протокол N ______________

Ставрополь - 2014 г.






Учебные и воспитательные цели:


  1. Дать систематизированные научные знания о принципах управления памятью

Время:_______________________________________________________________ 90 мин.

Учебно-материальное обеспечение:


  1. Опорная лекция.

  2. ГОС ВПО по направлению 230400.62 – Информационные системы и технологии.

  3. Рабочая программа дисциплины «Операционные системы и оболочки».

  4. Основная и дополнительная литература.

  5. Методические указания по изучению дисциплины «Операционные системы и оболочки».

  6. Комплект слайдов по Теме №5

Распределение времени


I. Вступительная часть

II. Учебные вопросы:


  1. Функции ОС по управлению памятью

  2. Типы адресов


  3. Простоенепрерывноераспределение ираспределениесперекрытием
  4. Алгоритмы распределения памяти


II. Заключительная часть
СОДЕРЖАНИЕ ЗАНЯТИЯ

Первый учебный вопрос -Функции ОС по управлению памятью
Если не оговорено иное, под памятью (memory) понимается оперативная память компьютера, в отличие от внешней памяти (storage).

Процессор может выполнять только инструкции, находящиеся в оперативной памяти. Память распределяется как между модулями прикладных программ, так и между модулями самой операционной системы.

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


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

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

  • вытеснение процессов из оперативной памяти на диск при нехватке оперативной памяти и возвращение в оперативную память при освобождении места в ней (механизм виртуальной памяти);

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

  • динамическое выделение памяти процессам (выделение памяти по запросу приложения во время его выполнения); выделяются свободные участки, расположенные произвольным образом, что приводит к фрагментации памяти;

  • дефрагментация освобожденной динамической памяти;

  • выделение памяти для создания служебных структур ОС (дескрипторы процессов и потоков, таблицы распределения ресурсов, буферы, синхронизирующие объекты и т.д.;

  • защита памяти – выполняемый процесс не должен записывать или читать данные из памяти, назначенной другому процессу.



Второй учебный вопрос - Типы адресов



Преобразование адресов в процессе обработки программы

Для идентификации переменных и команд на разных этапах обработки программы операционной системой используются символьные имена, преобразуемые в виртуальные адреса и в итоге – в физические адреса (рис. 1).



Рис. 1. Типы адресов

Виртуальное адресное пространство: структура и отображение на физическую память

Виртуальное адресное пространство.

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

Так, 32-разрядный процессор семейства x86 дает возможность адресовать до 232 байтов, т.е. до 4 Гбайт памяти с диапазоном виртуальных адресов от 00000000h до FFFFFFFFh.

Реальные процессы используют только часть доступного виртуального пространства (на 1-2 порядка меньше максимума).

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

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

Способы структуризации виртуального адресного пространства в ОС.

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



Рассмотрим две наиболее характерных модели структуризации адресного пространства – плоскую и двухуровневую модель «сегмент-смещение». Эти модели представлены на рис. 2.

Рис. 2 Типы виртуальных адресных пространств: плоское (а), сегментированное (б)
Плоская (flat)структура. Виртуальное адресное пространство представлено в виде непрерывной линейной последовательности адресов. Линейный виртуальный адрес – число, представляющее собой смещение относительно начала виртуального адресного пространства (обычно это нулевое значение).

Сегментированная структура. Виртуальное адресное пространство представляется разделенным на сегменты, а адрес любого объекта в памяти определяется номером сегмента и смещением относительно начала этого сегмента, т.е. парой сегмент-смещение.

Более конкретно способы структуризации виртуального адресного пространства рассмотрены в п. 4 темы в связи с механизмами виртуальной памяти.

Важно отметить следующее.

Использование и реализация универсального принципа сегментирования структуры адресного пространства в разные периоды развития вычислительной техники были принципиально различными и менялись по крайней мере трижды.



В ранних ОС на сегменты фиксированного размера делилась физическая память, о чем пользователь должен был знать и что при необходимости учитывал в программе. Необходимость структуризации адреса диктовалась архитектурой процессора и памяти. Так, модель памяти «сегмент-смещение» была реализована в 32-разрядной архитектуре IBM-360 (объем памяти оказывался меньше потенциально адресуемого, но тем не менее была реализована модель «сегмент-смещение») и в 16-разрядной архитектуре x-86 (по причине сугубо аппаратного свойства: процессор использовал 20-разрядную шину адреса, располагая 16-разрядными регистрами, и для формирования адреса использовалось два регистра).

Для программы адресное пространство представляется плоским.



Подходы к преобразованию виртуальных адресов в физические

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

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

Этот способ более гибок, так как позволяет перемещать программный код процесса во время выполнения, но менее экономичен из-за многократных преобразований одних и тех же адресов.



Понятие виртуальной памяти

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



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

Например, для процессов (потоков) в Windows NT память представляется плоской (линейной) и имеет объем 4 Гб.

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

Таким образом, 4Гб оперативной памяти, с которой работает процесс, – фикция, создаваемая для него операционной системой.

Поскольку виртуальная память – механизм управления памятью, а не предоставляемое ее пространство, корректнее говорить о памяти, предоставляемой процессу посредством этого механизма. Ее объем складывается из доступного объема оперативной памяти и объема разрешенной к использованию дисковой памяти. Тогда справедливо утверждение: объем памяти, предоставляемой процессу механизмом виртуальной памяти, потенциально позволяет адресовать все виртуальное адресное пространство данного процесса. Реально на взаимодействие процессов накладывается целый ряд различных ограничений, в силу которых процессы должны вести себя корректно друг по отношению к другу, и ни один процесс не должен претендовать на всю доступную память. На сегодня «правила хорошего тона» предписывают использовать не более 200 – 500 Мб памяти, самостоятельно организуя программным путем обмен с диском в случае наличия более громоздких структур данных (как, например, это делает AdobePhotoshop).



Поделитесь с Вашими друзьями:
  1   2


База данных защищена авторским правом ©grazit.ru 2017
обратиться к администрации

    Главная страница