КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сегментована модель пам'яті
Сегментація — механізм адресації, що забезпечує існування декількох незалежних адресних просторів як в межах одного завдання, так і в системі в цілому для захисту завдань від взаємного впливу. Основою механізму сегментації є поняття сегменту, який являє собою незалежний блок пам'яті, що підтримується на апаратному рівні. При розгляді сегментних регістрів ми відзначали, що для процесорів Intel, починаючи з і8086, прийнятий особливий підхід до управління пам'яттю. Кожна програма в загальному випадку може складатися з будь-якої кількості сегментів, але безпосередній доступ вона має тільки до трьох основних сегментів (коду, даних і стека), а також до додаткових сегментів даних числом від одного трьох. Сегмент – це спеціальні області в програмі для зберігання коду (CS), даних (DS) і стека (SS). Для звернення до сегменту слід змінити значення у відповідному сегментному регістрі. Програма ніколи не знає, за якою фізичною адресою будутьрозміщені її сегменти. Цим займається операційна система. Операційна система розміщує сегменти програми в оперативній пам'яті за визначеними фізичними адресами, після чого розміщує значення цих адрес в певні місця. Куди саме, залежить від режиму роботи процесора. У 32-розрядних регістрах процесорів Intel, наприклад, Pentium, адресна шина 32-розрядна, що відповідає адресному простору 232 = 4 Гбайт, однак сегментна адресація пам’яті не дозволяє вийти за межі 1 Мбайта. Для подолання цього обмеження у 32-розрядних процесорах використовують два режими роботи: реальний та захищений. У реальному режимі процесор функціонує так, як процесор І8086 з підвищеною швидкодією та звертається тільки до 1 Мбайту адресного простору, до іншого простору він звертатися не може. В реальному режимі фізичні адреси поміщаються безпосередньо у відповідні сегментні регістри.
У захищеному режимі також використовуються сегменти та зсув в сегментах, однак початкові адреси сегментів не обчислюються шляхом множення на 16 вмісту сегментних регістрів, а вибираються з таблиць сегментних дескрипторів, які індексуються за допомогою тих же регістрів. Кожний сегментний дескриптор займає 8 байт, з яких 4 байти (32 біти) відводяться піпд сегментну адресу. Тим самим забезпечується повне використання 32-розрядного адресного простору. У захищеному режимі процесор дозволяє адресувати 4 Гбайти фізичної пам’ті. Усередині сегменту програма звертається до адрес відносно початку сегменту лінійно, тобто починаючи з 0 і закінчуючи адресою, що дорівнюється розміру сегменту. Ця відносна адресу, або зсув, який процесор використовує для доступу до даних усередині сегменту, називається ефективною. Розрізняють три основні моделі сегментованої організації пам'яті: · сегментована модель пам'яті реального режиму; · сегментована модель пам'яті захищеного режиму; · суцільна модель пам'яті захищеного режиму. Перший тип моделі використовує формування фізичної адреси, викладену вище, наступні дві – додатково використовують дескриптор сегменту, які розташовуються в дескриптор них таблицях. Розрізняють дві основні схеми адресації: 1. абсолютна адреса – це 20 розрядне двійкове число, що вказує на певну комірку пам’яті; 2. адреса в системі сегмент:зсув, яка складається з початкової адреси сегмента і значення зсуву. При сегментованій організації пам’яті процесорів і8086/і8088/і286 в операційній системі MS DOS структура сегментованої організації наступна:
Обчислення фізичної адреси ОЗП при роботі зі стеком аналогічно обчисленню фізичної адреси команди, тільки треба враховувати той факт, що вершина стека зростає в бік менших адрес. Це означає, що із зсунутого на відповідну кількість розрядів регістра SS треба відняти вміст регістра SP. Наприклад, вміст регістру SS – 7890h, а SP – 11FAh. Тоді виконуємо зсув вліво на розряд: 78900h – 11FAh=77706h. При роботі з даними у сегменті даних на етапі компіляції вже відомо значення зсуву для усіх даних, які адресуюються. Отримання фізичної адреси для даних, такає як і для команд: значення сегмента DS + зсув.
Загальна схема розподілу пам’яті в MS DOS така:
Завантаження засобами BIOS Після включення живлення комп’ютера процесор переходить у стан запуску, пам’ять очищується (записуються нулі), перевіряється парність пам’яті, в регістр CS завантажується адреса FFFF[0]H, у регістр ІР завантажується зсув 0. Тому перша інструкція, яка буде виконана, знаходиться за адресою FFFF0H, що сформована парою CS:IP. Це і є точка входу в BIOS (Basic Input Output System ) – базова система введення-виведення інформаціїабо постійна пам’ять, або ROM – read only memory – пам'ять тільки для читання,яка записана в постійному запам’ятаючому пристрої (ПЗУ). BIOS є програмною оболонкою навколо апаратних засобів комп'ютера для звертання інших програм (у тому числі самої операційної системи) до апаратних компонентів через механізм переривань. BIOS перевіряє різні частини комп’ютера, щоб розпізнати та проініціалізувати пристрої, приєднані до нього. Після цього BIOS створює дві області даних:
· таблицю векторів переривань (Interrupt Vector Table), яка починається з адреси 0 та містить 256 4-байтних адрес у формі сегмент:зсув. BIOS та операційна система використовують ці адреси для обробки переривань, які виникають в процесі роботи; · область даних BIOS (BIOS DATA Area), яка починається з адреси 40[H] і пов’язана зі станом пристроїв, які під’єднані. Далі BIOS визначає диск, на якому знаходиться операційна система, викликає початковий завантажник з диск. Початковий завантажник завантажує системні файли з диска у пам’ять та передає їм управління. Системні файли містять драйвери пристроїв та інший код для роботи з апаратурою. Ці модулі ініціюють внутрішні системні таблиці та системну частину таблиці векторів переривань. Як тільки BIOS передає управління операційній системі, можна запускати програму на виконання. При завантаженні виконуваної програми (*.ехе -файл) в оперативну пам’ять MS DOS ініціалізує, як мінімум, три сегментних регістри: CS, DS, SS (ES – додатковий), Windows ініціалізує шість сегментних регістрів (CS, DS, SS, ES, FS, GS). Всі сегменти можуть використовувати різні області пам’яті, можуть частково або повністю співпадати (перекриватися). Це залежить від моделі пам’яті та від конкретної задачі.
Дата добавления: 2014-01-07; Просмотров: 1402; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |