Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Моделі розподілу пам'яті

 

Середовище Borland C дає користувачеві змогу встановити модель розподілу пам'яті, яка найкраще відповідає обсягам даних і коду програми та забезпечує найбільш раціональні форми адресації даних і команд. Тим самим підтримується висока ефективність процесу виконання програми.

 

Модель пам'яті є одним із параметрів компіляції, які керують виділенням ресурсів для етапу реалізації програми. Вибір моделі пам'яті здійснюють через пункт головного меню інтегрованого середовища Options/Compiler/Code generation/Model.

 

Можна вибрати один з шести альтернативних варіантів: Tiny, Small, Medium, Compact, Large і Huge.

 

Модель пам'яті задає розподіл сегментних блоків оперативної пам'яті для коду і даних програми, а також визначає тип вказівників, обсяг стека програми та вид динамічної пам'яті. Основні характеристики всіх моделей пам'яті зведено в Табл. 1, де вказано, яким є розподіл оперативної пам'яті для коду програми (код), глобальних і статичних даних (дані), локальних даних (стек).

 

Також зазначено вид динамічної пам'яті (ДП), яку можна використовувати в програмі, та типи вказівників, що будуть встановлені за замовчуванням.


Таблиця 1 Характеристики моделей пам'яті Borland C

 

  Найменування моделі Розподіл оперативної пам'яті Тип вказівни-ків
    код дані стек ДП дані функції
Tiny мінімальна молодші     один спільний сегмент внутрішня near near
Small мала 1 сегмент один спільний сегмент внутр./зовн. near near
Medium середня сегм./файл один спільний сегмент внутр./зовн. near far
Compact компактна старші 1 сегмент 1 сегмент 1 сегмент зовнішня far near
Large велика сегм./файл 1 сегмент 1 сегмент зовнішня far far
Huge гігантська сегм./файл сегм./файл 1 сегмент зовнішня far far

 

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


 

Для невеликих за обсягом програм найчастіше використовують модель Small, яка передбачає виділення окремого сегмента для коду програми, другого сегмента для збереження глобальних і локальних даних програми (рис. 1).

 

Ця модель дає змогу програмувати два види динамічної пам'яті: внутрішню (її ще називають ближньою), яка використовує незайняту частину сегмента даних, та зовнішню динамічну пам'ять (її називають дальньою), яка займає вільну частину оперативної пам'яті в межах початкових 640 Кбайт.

 

Модель Medium подібна до Small за розподілом пам'яті для даних, але вона розрахована на багатофайлові програми великого обсягу, тому для коду кожного програмного файлу виділяється окремий сегмент.

 

 

Три згадані моделі пам'яті називають молодшими.


 

  Зовнішня ДП (поточна межа ДП)   Вільна оперативна пам'ять MS DOS
 
  SS:FFFF Динамічні дані
    SS:SP Локальні дані (стек) (поточна межа стека) Сегмент даних (<64К)
  Внутрішня ДП
  DS:0000 Глобальні і статичні дані
    CS:0000 Команди коду програми, коди бібліотечних функцій   Сегмент коду (< 64 К)

 

 

Рис. 1. Схема розподілу оперативної пам'яті в моделі Small

 

 

Старші моделі: Compact, Large і Huge використовують окремий сегмент для стеку тa лише зовнішню динамічну пам'ять.

 

Для великих багатофайлових програм доцільно застосовувати розподіл пам'яті за моделлю Large, яка зберігає код кожного програмного файла в окремому сегменті (рис. 2).

 

Якщо ж обсяг статичних даних програми перевищує 64 Кбайт, то слід встановити модель Huge.

 





Переглядів: 1422

<== попередня сторінка | наступна сторінка ==>
Сегментна організація пам'яті | Короткі та довгі вказівники. Модифікатори вказівників

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.