У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Реферат - Архітектура ЕОМ
37
100 k =160k

(1)

MAIN функції текстового редактора функції графічного редактора

Тоді спроектуємо модуль так:

=110k

ОС з режимом оверлей має дві взаємопов’язані компоненти:

редактор міжмодульних зв’язків, який підтримує можливість побудови оверлеїв

функція виборки( завантаження ) оверлейного модуля.

Приклад

Таким чином, якщо ми маємо *.ехе простої структури з режимом оверлей(1)

таблиця управління оверлей-модулем

Дії компілятора при компіляції виклику функції:

код адрес функції

операції

Структура *.obj -– модуля

коментар: – хто виконав компіляцію

– дані для утиліти MAKE ( імена *.h – файлів та дати )

таблиця зовнішніх імен модуля:

ім’я функції

її глобальні дані

Код функції

Таблиця модифікації коду функції( в ній указане зміщення комірок, що потрібно модифікувати ).

Редактор міжмодульних зв’язків( LINKER )

cos.obj – головний модуль

Головний модуль отримує перше управління. В головному модулі знаходяться пролог та епілог Сі-програми.

Приклад

Якщо є глобальні змінні, то потрібно виконати конструктор( в пролозі ) та деструктор( в епілозі ).

Лінкер працює в два етапи( два перегляди ):

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

Виконується операція першого перегляду.

Ім.’я функції | Довжина( об’єм ) коду функції | Зміщення

cos.obj

MAIN.obj

STRLEN.obj | 10k

8k

1k | 0

10k

18k

… | … | …

Переглянувши, дізнаємось об’єм ехе-файла : 19k

Другий перегляд( компоновка ехе-файла ): лінкер переглядає таблицю, отриману на першому етапі, зчитує obj-файли та об’єднує в єдиний файл. Будує таблицю настройки

ехе-файла. При об’єднанні obj- в ехе-файл в місцях виклику функції виконується модифікація коду.

0 виклик strlen strlen

MAIN –

під час компіляції–

зв’язуємось з strlen

В результуючий ехе-файл заноситься вся інформація щодо модифікованих комірок(

розділ 4 obj-модуля ). Тобто ехе-файл має вигляд:

0 cos main strlen таблиця модифікації ехе-файла

19k ( дані з розділу 4 *.obj -файлів )

Завантаження ехе-файла в ОП

ОС завантажує ехе-файл в ОП та виконує модифікації комірок згідно списка з

розділу 4.

Значення кожної комірки = попереднє значення + абсолютний адрес завантаження модуля

в ОП.

0 40k 58k

ядро ОС 19k

виклик strlen:

@ лекція 5 ( 14.03.03 )

Подивимось, як виконується оверлейний модуль.

*.ехе

Під час виконання оверлейного модуля, в пам’ять завантажуеться лише main - головна частина exe-файлу(функції, що не передбачають перевантаження).

Додатково операційній системі додається таблиця управління оверлейною структурою. Програмний код, що завантажується в оперативну пам’ять модифікується таким чином, що в місцях виклику функції, що перевантажується, вставляється програмне переривання по виконанню overlay – loader’a.

При виклику функції А попадаємо в ядро ОС, яке має overlay – loader. Там дивимось, чи є в пам’яті функція А. Якщо так, то в таблиці управління її поточним станом є 1, якщо ні – 0. Якщо ні, то дивимось її адрес і динамічно завантажкємо функцію А. Функція А виконує обробку і передає управління ОС, а ОС в свою чергу програмі.

Якщо з функцією А працюємо в циклі, то при наступному виклику її адрес вже відомий і їй лише передається управління, але вона вже не завантажується.

Якщо функція В викликається з того ж місця, що й функція А, то супервізор ставить поточний стан для А – 0 (він враховує, що А та В перетинаються).

Віртуальна пам’ять.

Адресний простір Віртуальної пам’яті завжди більший за адресний простір оперативної пам’ті.

В моделі віртуальної пам’яті задіяні 2 механізми:

механізи прямої адресації;

механізм пов’язаний з НЖМД.

Віртуальний адрес.

В архітектурі сучасних ЕОМ віртуальний адрес складається з двох компонент:

база;

зміщення.

За базу відповідають регістри (лічильники)команд, регістри (лічильники) даних,...

Під час компіляції програми (функції), компілятор присвоює лічильнику баз початкове значення 0. Під час завантаження програми ЕОМ, ОС присвоює регістрам точки завантаження в ОП програм та даних. База з’являється під час завантаження, а зміщення при компіляціїї. Це дає реальний адрес.

В моделі віртуальної пам’яті реальний адрес, що формується на основі машинної команди, трактується як віртуальний адрес. Частину віртуального простору займає ядро ОС.

Розробники архітектури запропонували декілька стратегій реалізації віртуальної пам’яті:

сегментна;

сторінкова;

змішана(сегментно - сторінкова).

Сегмент – послідовність комірок ОП, яка має змінну довжину. Як правило об’єм сегменту 64К, 128К, 1Мб.

Сторінка – послідовність комірок фіксованої довжини.

Об’єм сторінки 512б, 1К, 2К, 4К (маленький).

Оскільки це апаратні речі, розглянемо трансляцію віртуального адресу в реальний адрес.

Пам’ять: по швидкодії КЕШ 2-го рівня переважає оперативну пам’ять.

Потрібно, щоб апаратура ЕОМ код програми автоматично переписувала в КЕШ.

За рахунок цього програма виконується швидше.

КЕШ 1-го рівня – це пам’ять процесору (64К).

Трансляція віртуального адресу (сторінкова стратегія)

Об’єм віртуальної пам’яті, що виділяється для кожної задачі фіксований (і, наприклад в архітектурі Intel(P4) дорівнює 2Гб). В архітектурі ЕОМ існує об’єкт – регулярна таблиця сторінок задачі.

Колонка 1: Значення:

0 – сторінка на НЖМД;

1 – сторінка в ОП.

Колонка 2: Атрибути сторінки (характеристики для ядра ОС):

RO – read-only;

RW – read-write;

E – execute (сторінка з програмним кодом);

D – data (сторінка з даними).

Колонка 3: Значення:

0 – пам’ять не виділена механізмом MALLOC;

1 – пам’ять виділена механізмом MALLOC.

Колонка 4: Значення:–

коли сторінка на НЖМД, її адрес знаходиться в swap-файлі;–

коли сторінка знаходиться в ОП, то її адрес теж в ОП.

В середовищі ОС існують таблиці трансляції по кількості задач, що в даний момент знаходяться в ОП. Регістр таблиці сторінок задачі вказує на таблицю трансляції активної задачі. Таблиця трансляції завантажується в КЕШ 1-го рівня.

В момент коли змінюється активна задача, ОС перевантажує регістр таблиці сторінок задачі та завантажує в КЕШ нову таблицю. Зміна значення регістру таблиці сторінок та перевантаження таблиці трансляції виконуються однією машинною командою – заміна контексту задачі (виконується за 100-ні тактів базової частоти процесора).

Якщо в


Сторінки: 1 2 3 4 5