Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
10.05.2014
Размер:
919.55 Кб
Скачать

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

Понятие управления памятью включает в себя следующие стратегии:

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

  • по запросу;

  • упреждающая выборка.

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

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

Существует большое количество алгоритмов замещения:

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

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

алгоритм «вторая попытка» - модификация FIFO, перед удалением блока проверяется, не используется либо он в данный момент, если блок используется, то он просто пропускается. Если бит обращения (R-Referenced) R=l, то страница переводится в конец очереди, если R=0, то страница выгружается. В таком алгоритме часто используемая страница никогда не покинет память. Но в этом алгоритме приходится часто перемещать страницы по списку.

Рисунок 4

Алгоритм LRU (last recently used - использовавшаяся реже всего) - удаляется блок, к которому меньше всего обращались, требует специального аппаратного обеспечения.

Первый метод:

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

Второй метод:

В таблице страниц добавляется запись - счетчик обращений к странице. Чем меньше значение счетчика, тем реже она использовалась.

  • алгоритм старения (aging) - программная реализация LRU;

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

Рисунок 5

В современном проектировании ОС существует две концепции распределения памяти:

  1. Связное распределение. При связном распределении памяти:

  • каждая программа занимает один сплошной блок ячеек памяти;

  • размер программы ограничен.

Если размер программы превышает ОП используется оверлейное перекрытие (в памяти существует только часть программы, уменьшаемое по мере выполнения программы + часть программы, постоянно находящаяся в ОП). Одна очередь заданий:

Рисунок 6

link a.exe=main / L:0, A1, A11,A12/L:1,A2,A3/L:2,A4,A41,A42,A43/L:3

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

Рисунок 7

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

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

Свопинг

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

Страничная организация памяти

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

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

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

Существует два способа реализации виртуальной памяти:

  • страничный;

  • сегментный.

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

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

Преобразование виртуальных адресов в реальные во время выполнения процесса обеспечивают механизмы динамического преобразования адресов (МДПА).

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

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

Виртуальный адрес v указывается при помощи упорядоченной пары (b,d).

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

Реальный адрес а этой таблице загружается в специальный регистр ЦП, называемые регистром начального адреса таблицы блоков (РНАТБ).

Рисунок 8

Номер блока v суммируется с базовым адресом, а ТОБ, образует реальный адрес строки таблицы отображения для блока b. Эта строка содержит реальный адрес b' блока b в физической памяти.

Управление файловой системой

Файл - группа взаимосвязанных записей.

Запись - группа взаимосвязанных полей.

Поле - группа взаимосвязанных символов (байтов).

Байт = 8 битов. Бит = 0|1

Файл - набор записей, состоящих из 0 и 1.

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

В зависимости от комбинации битов в байтах различаются символьные наборы.

  • American Standari Code For Information Inerchanse(ASCII) (koi - 8);

  • Extened Binary Code Dicimal Inter change code (EBCDIC).

Способы организации файлов

Пол организацией подразумевается способ распределения записей файлов во внешней памяти:

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

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

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

  • библиотечная (файл состоит из последовательных подфайлов, называемых элементами или членами файла. Начальный адрес такого элемента хранится в директории файла.).

Файловые системы содержат следующие средства:

  1. методы доступа определяют конкретную организацию доступа к данным, находящимся в файлах;

  2. средства управления файлами (хранение, перемещение, удаление, копирование и т.д.);

  3. средства управления внешней памятью обеспечивают распределение пространства внешней памяти для размещения файлов;

  4. средства обеспечения целостности файла (гарантируют сохранность информации в файлах).

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

  • символическое имя файла;

  • размер файла;

  • тип файла;

  • размещение файла во внешней памяти;

  • тип организации файла;

  • тип устройства (данные для управления доступом);

  • диспозиция файла (постоянный \ рабочий \ временный);

  • дата создания файла;

  • дата и время последней модификации файла;

  • счетчик активности доступа.

Топология файловой системы представляет собой древовидную систему, во главе находится корневой каталог.

Рисунок 9

В корневой директории содержатся адреса каталогов пользователей, системные каталоги и файлы.