WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Архітектура ЕВМ - Реферат

Архітектура ЕВМ - Реферат

конструктор( в пролозі ) та деструктор( в епілозі ).
Лінкер працює в два етапи( два перегляди ):
Перший перегляд: вибираються дані з розділу 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 механізми:
1. механізи прямої адресації;
2. механізм пов'язаний з НЖМД.
Віртуальний адрес.
В архітектурі сучасних ЕОМ віртуальний адрес складається з двох компонент:
1. база;
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. модифікує таблицю трансляції сторінки (адрес + колонка1);
3. передає управління задачі, що викликає переривання.
Як з'ясувати де знаходиться порожнє місце?
Для ідентифікації сторінки, що є зайнятою чи вільною ОС веде спеціальний вектор вільних сторінок, в якому зайняті сторінки позначаються як 1, а вільні як 0.
Якщо відсутня вільна сторінка, ОС повинна попередити про вивантаження деякої сторінки з ОП.
@ лекція 6 ( 21.03.03 )
Дії ОС по вивантаженню сторінок.
Стратегія робочої множини сторінок
ОС по кожній сторінці ОП веде лічильник.
" На початку значення лічильника рівне 0
" через квант часу ОС визначає ті сторінки, що є активними і збільшує значення лічильника для активних сторінок.
" При визначенні сторінки, яку необхідно вивантажити ОС вибирає сторінку з найменшим значенням лічильника.
" Через час , - фіксоване, ОС встановлює значення лічильника, які більше порогового значення, в порогове значення
1) серед сторінок, які знаходяться в ОП, є множина сторінок, які не можна вивантажити
2) є системні задачі, які теж не можна вивантажити
3) є прикладні задачі, які теж не можна вивантажити
Задачі реального часу та ядро ОС
" Ядро ОС апріорі зафіксоване в реальній пам'яті
" Існують системні задачі (драйвери), які вимагають фіксації в реальній ОП
" Існують прикладні задачі(real time), які теж необхідно фіксувати в реальній пам'яті
Для фіксування в реальній памяті задачі існують відповідні API
Алгоритми управління ресурсами CPU
" Управління CPU на основі апарату переривань.
Управління CPU на основі апарату переривань є неефективним.
Наприклад
виконання
Loading...

 
 

Цікаве