Исследование организации управления основной памятью

Автор работы: Пользователь скрыл имя, 08 Апреля 2013 в 18:22, лабораторная работа

Описание работы

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

Файлы: 1 файл

Отчет по ОС_3.doc

— 135.00 Кб (Скачать файл)

Санкт-Петербургский  государственный электротехнический университет «ЛЭТИ»

 

 

 

 

 

Лабораторная  работа №3.

«Исследование организации управления основной памятью  »

 

 

 

 

Дисциплина: Операционные системы

Выполнил: Мишнев Никита Валерьевич

Факультет: ФКТИ

Группа: 1304 (МОЭВМ)

Преподаватель: Губкин Александр Федорович

Дата выполнения: 20 февраля 2013

 

 

 

2013

 

Оглавление

 

 

Исследование  организации управления основной памятью 

 

  1. Постановка задачи

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

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

  1. Количество доступной памяти.
  2. Размер расширенной памяти.
  3. Цепочка блоков управления памятью.

 

Предварительные сведения

Когда программа  загрузилась, DOS автоматически отводит для нее всю свободную основную память. Программист может по своему усмотрению урезать блоки памяти, отводить другие, а также освобождать отведенные блоки.

Для того чтобы  урезать (освободить) память используется функция 4Ah прерывания 21h. Чтобы отвести память применяется функция 48h прерывания 21h.

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

Размер расширенной  памяти находится в ячейках 30h, 31h CMOS. CMOS – энергонезависимая память , в которой хранится информация о конфигурации ПЭВМ.

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

Описание используемых процедур приведено в Таблице 1.

Таблица 1

Процедура

Описание

WriteMsg

Процедура вывода строки на экран 

CorrectCheck

Процедура проверяет  флаг CF при работе с памятью. CF=1 – ошибка, в АХ код ошибки.

OutInt

Процедура выводит  переводит количество байт из 16-ричного  значения в 10-ричное.

Mem_Free

Процедура освобождает память.

Need_64

Процедура запрашивает 64kb памяти.

King_Size_Mem

Процедура  определяет количество доступной памяти.

Out_AvailMem

Процедура выводит  количество доступной памяти в байтах.

Out_XMS_mem

Процедура выводит  размер расширенной памяти в kb.

About_MCB

Процедура выводит  информацию о блоках MCB.

MCB_LIST

Процедура подготовки к выводу блоков MCB.

BYTE_TO_HEX

Процедура перевода байт в 16-ричный символ


 

Последовательность  действий выполняемых программой

При запуске программы  происходят следующие действия в  установленном порядке:

    1. Вывод сообщения приветствия и назначения программы
    2. Вывод сообщения с информацией об авторе
    3. Определение количества доступной памяти и вывод его на экран.
    4. Определение   размера расширенной памяти  и вывод его на экран.
    5. Вывод блоков MCB.
    6. Завершение программы и выход

 

  1. Порядок выполнения работы и пошаговый анализ.

 

  1. Составление программы, выполняющей поставленную задачу.

 

Результат:

 

После того как  наша программа загрузилась в  память, вся свободная память отведена только нашей программе. Из результата видно , что размер доступной памяти – 632576 байт. Размер расширенной 1024 килобайт. Количество блоков MCB равно шести.

Анализируя  список блоков MCB можно сделать следующие выводы:

    • Первый блок ( по счету ) принадлежит MS DOS.
    • В первом блоке MCB находятся системные данные.
    • Третий блок свободный.
    • Шестой  блок MCB – блок нашей программы. Его размер = размеру доступной для нашей программы памяти. SC/SD содержит символьное название нашей программы.
  1. Изменение программы с целью освобождения памяти.

 

Результат:

 

После того как  мы освободили отведенную память размер доступной памяти составил 1280 байт. Также к списку MCB блоков добавился один блок – свободный. Его размер составляет 631280 байт с учетом занятости 1280 байт нашей программы и общего числа доступной (632576 байт). Итого – 7 блоков MCB.

 

 

 

  1. Изменение программы таким образом, чтобы после освобождения памяти она запрашивала 64 Кб.

 

Результат:

 

После того как  мы освободили отведенную память и запросили 64 КБ памяти , размер доступной памяти составил 1296 байт. Нужно принять во внимание , что запрошенные 65536 байт составляют 7 блок. Также при выполнении данного этапа мы можем наблюдать появление 8 блока MCB в списке блоков. Шестой блок как и раньше является блоком нашей программы.

 

 

  1. Изменение программы таким образом, чтобы она запрашивала 64 Кб до освобождения памяти.

 

Результат:

 

После выполнения данного этапа , размер доступной  памяти составил 1296 байт. Блоков уже  будет не восемь , а семь. Седьмой блок будет обладать размером 631264 байт. При этом он будет свободным.

 

 

 

 

 

  1. Описание исследования проблем, поставленных в лабораторной работе.

 

    1. Что означает “доступный объем памяти” ?

 

Ответ:

“Доступный объем памяти” – это объем основной свободной  памяти который может использоваться для загрузки прикладных  и системных программ.

 

    1. Где MCB блок нашей программы в списке?

 

Ответ:

MCB блок нашей программы является шестым по счету в списке  MCB блоков. Его можно заметить по размеру блока ( он равен  размеру доступной памяти для программы).

 

    1. Какой размер памяти занимает программа в каждом случае?

 

Ответ:

Как было проанализировано в предыдущем пункте выполнения  работы, программа занимает столько памяти сколько ей доступно.  При загрузке вся свободная основная память отведена нашей  программе , но мы можем изменить доступную память с  помощью функций управления памятью. Так в 1 пункте  программы занимает 632576 байт, во 2 пункте – 1280 байт, в 3 и 4  пунктах -1296 байт. В третьем пункте нужно учесть также   запрошенный блок памяти размером 64 Кб .

 

  1. Вывод

В процессе выполнения работы мы приобрели знания и опыт в области работы с основной памятью. Мы выполнили поставленные задачи и  проанализировали результаты.


Информация о работе Исследование организации управления основной памятью