Головна Головна -> Реферати українською -> Інформатика, комп'ютери, програмування -> Управління пам'яттю в МS-DOS

Управління пам'яттю в МS-DOS

Назва:
Управління пам'яттю в МS-DOS
Тип:
Реферат
Мова:
Українська
Розмiр:
11,98 KB
Завантажень:
33
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2  3 
Тема: Управління пам'яттю в МS-DOS.

Мета: Вивчити управління пам'яттю в МS-DOS.

Хід роботи:

1. Вивчити розділ III "Стислі теоретичні відомості і методичні вказівки".

2. Виконати поставлене завдання згідно варіанту.

Теоретичні відомості:

МS-DOS є однопрограмною однокористувачевою операційною системою, що здатна стежити за доступним адресним простором не більш 640 Кбайт.

В склад МS-DOS включені три функції переривання 21h для управління пам'яттю:

АН = 48h - розподілу пам'яті (виділення блоку)

АН=49h - звільнення пам'яті (звільнення блоку)

АН=4Аh - зміна розміру блоку пам'яті

Блок - це безперервна область, що визначається обсягом доступної пам'яті. Його розмір може бути більше одного сегменту (64К).

Для того, щоб від слідкувати розподіл пам'яті, МS-DOS веде спеціальний зв'язний список керуючих блоків (блоків управління пам'яттю). Кожний блок управління пам'яттю , займає один параграф і безпосередньо передує власне блоку пам'яті - безперервної області пам'яті що починається на 16-байтовій межі.

Спеціальна внутрішня змінна МS-DOS зберігає покажчик на перший блок управління пам'яттю ланцюжка.

Значущими е перші 5 байт блоків управління пам'яттю.

Байт 0 - байт статусу. Якщо в ньому записане 4Dh ('М)', то за цим блоком є ще блоки, якщо записане 5Аh ('Z)', то блок останній в ланцюжку.

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

Байти 3-4 - містять розмір блоку у 16-байтових параграфах.

Номер параграфу (сегмент адреси), по якому розташується наступний блок управління пам'яттю визначається за формулою

Seg_mcb=seg_mcb_old+length+1,

Де seg_mcb_old - сегмент, по якому розташується попередній блок управління пам'яттю ланцюжка блоків;

Length - довжина попереднього блоку в параграфах (байти 3-4 попереднього блоку, управління пам'яттю).

Якщо блок управління пам'яттю останній в ланцюжку, то при обчисленнях буде отримане значення, що задає сегмент межі оперативної пам'яті, доступної МS-DOS.

Робота з блоками пам'яті

Нові блоки пам'яті створюються, модифікуються або знищуються в наступних випадках:

І) при розподілі нового блоку пам'яті;

II) при зміні розміру існуючого блоку пам'яті;

III) при завантаженні і запуску програми на виконання

IV) знищенні блоку

Зростання адрес

Блок керування пам'яттю 2

Блок керування пам'яттю 1

Оперативна пам'ять

16(n+1)

3,4 байт

1,2

Блок пам'яті 2

Блок пам'яті 1

Число параграф, n в блоці пам'яті

Вказівник на ППС програми

4D

І. При розподілі нового блоку пам'яті (функція АН=48h переривання 21h) в регістрі ВХ специфікується тільки довжина створюваного блоку в параграфах. МS-DOS відшукує перший блок управління пам'яттю позначений як вільний (найчастіше це останній блок управління пам'яттю), розмір якого перевищує запрошене значення.

Якщо два або більш підряд розташованих блоків позначені як вільні, то при виділенні пам'яті вони розглядаються як єдиний блок.

1) в байти 1 і 2 записується покажчик на префікс програмного сегменту поточної програми.

2) в байти 3-4 записується розмір створеного блоку.

Якщо розмір запрошеної пам'яті менше розміру вільного блоку (або підряд розташованих вільних блоків) то на межі "залишку" вільної пам'яті створюється ще один блок управління пам'яттю і цей блок включається в ланцюжок блоків управління пам'яттю. Стартова адреса отриманого блоку дорівнює АХ: 0.

Для того щоб знайти всі виділені блоки пам'яті в ОС, можна скористуватися функцією 52h переривання 21h. Результатом її роботи є сегмент і зміщення області пам'яті з внутрішньою інформацією про ОС. При цьому сегмент розміщується в регістрі ЕS, зміщення в ВХ-2.

II. При зміні розміру блоку використовується функція АН=АП переривання 21h. При цьому в регістрі ЕS задається сегмент початку блоку ,що модифікується, а в регістрі ВХ - новий розмір блоку в параграфах. Якщо розмір блоку зменшується, то на межі залишку створюється новий вільний блок. Якщо блок збільшується, він може бути збільшений, якщо наступний блок вільний.

III. При завантаженні і запуску програми на виконання МS-DOS розподіляє під програму всю вільну пам'ять, тому будь-який запит розподілу пам'яті виданий із-за меж програми зіштовхнеться з відсутністю пам'яті.

При програмуванні на асемблері невикористану завантаженою програмою пам'ять повинен вивільняти програміст. При програмуванні на мовах високого рівня пам'ять визволяє спеціальна програма завантажувач.

IV. При знищенні блоку використовується функція АН=49h переривання 21h. При цьому в регістрі ЕS задається сегмент початку блоку, що модифікується. Цю функцію може видати або програма, або МS-DOS при завершенні роботи програми. Якщо яка-небудь програма розподілила для себе блок пам'яті, то по закінченню своєї роботи вона повинна його визволити. В протилежному випадку блок буде вважатися зайнятим.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2  3 



Реферат на тему: Управління пам'яттю в МS-DOS

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок