На головну

сегментація програми

  1.  II. Вимоги до результатів освоєння основної освітньої програми основної загальної освіти
  2.  III. Вимоги до структури основної освітньої програми основної загальної освіти
  3.  IV. Вимоги до умов реалізації основної освітньої програми основної загальної освіти
  4.  алгоритм програми
  5.  Аналіз формування виробничої програми
  6.  АНОТАЦІЯ РОБОЧОЇ ПРОГРАМИ
  7.  Анотація робочої програми

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

Одночасне перебування в пам'яті «алгоритму» і даних відповідає принципу збереженої програми, которийзаключается в тому, що програмний код зберігається в тій же самій пам'яті, що й оброблювані дані, і в свою чергу сам є специфічні дані, з якими працює процесор під час виконання програми. В даний час застосовується немодіфіціруемих програмний код. Це, в свою чергу, означає, що кілька програм можуть його читати і виконувати, не заважаючи один одному, в тому числі і на фізично паралельних процесорах.

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

Процесор має в своєму складі набір машинних слів - регістрів. Залежно від призначення вони можуть зберігати як дані, так і адреси пам'яті. Сегментація підтримується в процесорі за допомогою регістрів двох видів. Базовий регістр сегментамістить його початкова адреса. Регістри, що працюють з даними сегмента, містять відноснийадресу даних від початку сегмента, або зміщення.Результуюча адреса виходить шляхом додавання вмісту цих регістрів. Таким чином, кожен сегмент має власну «систему координат», пов'язану з його початком (Ріс.1.7). Якщо програма використовує тільки сегментну адресацію, то сегменти можна переміщати по пам'яті при збереженні працездатності програми: досить переналаштувати відповідні їм базові регістри.

Виконувана програма складається з декількох сегментів. Деякі з них створюються при трансляції, інші - при завантаженні і при роботі програми. В принципі, програма може мати кілька сегментів одного виду:

 сегмент  регістри  що містить  коли створюється
 сегмент команд  CS- сегментний, IP- адреса команди  Програмний код (операції, оператори)  трансляція
 сегмент даних  DS - сегментний  Глобальні (статичні) дані  трансляція
 сегмент стека  SS - сегментний, SP- покажчик стека  Локальні дані функцій, «історія» роботи програми  під час завантаження
 динамічна пам'ять  DS - сегментний  Динамічні змінні, створювані при роботі програми  при завантаженні, виконанні
 Динамічно зв'язуються бібліотеки (DLL)  CS- сегментний, IP- адреса команди  Програмний код поділюваних бібліотек  під час завантаження

Мал. 1.7. сегментація програми

Наступний елемент архітектури теж має відношення до внутрішнього уявлення програми - ВАП (віртуальна пам'ять).Його ідея полягає в тому, що кожна програма має своє, незалежне від інших, ВАП (віртуальну пам'ять), в якому розміщуються сегменти програми, визначаються адреси і т. П процесорі є прихована від програм система відображення віртуальних адрес на фізичні адреси . ВАП знаходиться під управлінням операційної системи і реалізує захист пам'яті програм, її поділ (сегменти динамічно пов'язуються бібліотек), завантаження програми в пам'ять «по частинах» і ілюзію наявності необмеженої пам'яті. Для нас з усього цього важливо те, що внутрішньо представлення програми в віртуальної пам'яті займає весь адресний простір, як ніби інших програм і операційної системи в пам'яті немає зовсім.

 




 лекція 1 |  Поняття програми та мови програмування |  Структурна схема комп'ютерної програми |  Життєвий цикл програмного засобу |  Технологія підготовки і рішення задачі на комп'ютері |  Функція як компонент структури програми |  Процес компіляції програми |  Класична схема підготовки виконуваної програми |  Технологічний цикл обробки програми |  Структура текстового файлу програми |

© um.co.ua - учбові матеріали та реферати