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


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

Відображення віртуальних сторінок сегмента на фізичні задається за допомогою таблиці HAT (Hardware Address Translation), покажчик на який мається в структурі адресного простору процесу as. Структура таблиці HAT залежить від апаратної платформи, але в будь-якому випадку з її допомогою можна знайти таблицю чи таблиці сторінок, що містять дескриптори сторінок (структури типу pte). Дескриптор сторінки містить ознака наявності даної віртуальної сторінки у фізичній пам'яті, номер відповідної фізичної сторінки, а також ряд ознак типу "модифікація", "було посилання", що допомагають ОС планувати процес витиснення віртуальних сторінок на диск.

У UNIX System V Release 4 використовується алгоритм переміщення віртуальних сторінок процесу у фізичну пам'ять по запиті. Звичайно при запуску процесу у фізичну пам'ять міститься тільки невелика частина сторінок, необхідна для старту процесу, а інші сторінки завантажуються при сторінкових збоях. Очевидно, що початковий період роботи будь-якого процесу породжує підвищене навантаження на систему. Якщо при пошуку ВА у відповідному дескрипторі виявляється ознака відсутності цієї сторінки у фізичній пам'яті, то відбувається сторінкове переривання, і ядро переміщає цю сторінку з диска у фізичну пам'ять. Для пошуку сторінки на диску використовується інформація зі структури s_data сегмента - або vnode і offset, якщо сторінка типу vnode, або інформація про розташування анонімної сторінки в області свопінгу за допомогою інформації про її розташування там по карті amp.

Якщо у фізичній пам'яті недостатньо місця для розміщення викликаної процесом сторінки, то ОС вивантажує деякі сторінки на диск. Цей процес здійснюється спеціальним процесом ядра, "виштовхувачем сторінок", що має в UNIX System V Release 4 ім'я pageout. Для ухвалення рішення про те, яку віртуальну сторінку потрібно перемістити на диск, процесу pageout потрібно мати інформацію про поточнИЙ стан.

2. Мікроядро Mach

2.1. Історія Mach

Система Mach мала як попередницю систему RІ - Rochester Іntellіgent Gateway, початок розробки якої припав на 1975 рік. RІ була написана для 16-бітового міні-комп'ютера компанії DataGeneral за назвою Elіpce. Метою цієї розробки була демонстрація можливостей структурування ОС і представлення її у виді набору процесів, що можуть взаємодіяти між собою шляхом передачі повідомлень, у тому числі і по мережі. Потім ця ОС була поліпшена шляхом додавання засобів захисту і засобів прозорої роботи в мережі й одержала назву Accent (у 1981 році, в університеті Карнегі-Меллона). У 1984 році вона уже використовувалася на 150 комп'ютерах PERQ - ранніх графічних станціях, але програла змагання з UNіX'ом. Ця обставина спонукала створити третє покоління ОС, що використовує механізм обміну повідомленнями. Цей проект і був названий Mach. Крім сумісності з UNІХ, у Mach були введені й інші удосконалення, включаючи нитки, поліпшені механізми міжпроцесної взаємодії, підтримка багатопроцесорних систем, поліпшена ВП і ін. У цей час агентство DARPA шукало ОС для підтримки мультипроцесорів. Вибір був зроблений на користь університету Карнегі-Меллона, і роботи над ОС Mach були продовжені. Перша версія Mach була реалізована в 1986 році для VAX11/784, 4-х процесорної машини. Незабаром ця ОС була перенесена на ІBM PC RT і Sun 3. ДО 1987 року Mach виконувалася також на мультипроцесорах Encore і Sequent. Хоча Mach і мала мережеві засоби, її скоріше можна було віднести до ОС окремої машини чи мультипроцесора, а не до мережевої розподіленої прозорої системи. Незабаром була створена організація виробників комп'ютерів OSF (ІBM, DEC, Hewlett Packard) для того, щоб відібрати контроль над ОС UNІХ у її власника AT&T. Вони вибрали Mach 2.5 як основу для їхньої першої ОС OSF/1. У 1988 році ядро Mach 2.5 було великим і монолітним через те, що містило велику кількість коду Berkeley UNІ. А в 1989 році університет Карнегі-Меллона видалив весь код BSD UNІ з ядра і помістив його в користувацький простір. Те, що залишилося, було мікроядром, що складається з чистого коду Mach. Ця версія 3.0 і використовується як основа наступних версій OSF.

2.2. Мета Mach.

ОС Mach значно змінилася з часу її першої реалізації у виді RІ. Мета проекту також змінилися згодом . На сучасний момент основні цілі виглядають так:

1. Забезпечення базових функцій для створення інших ОС (наприклад, UNІХ).

2. Підтримка великих розріджених адресних просторів.

3. Забезпечення прозорого доступу до мережевих ресурсів.

4. Підтримка паралелізму як у системі, так і в додатках.

5. Забезпечення переносності Mach на різні типи комп'ютерів.

2.3. Основні концепції Mach

Мікроядро Mach було розроблено як основу, на базі якої можна емулювати UNІХ і інші ОС. Ця емуляція здійснюється програмним рівнем, що працює поза ядром, у користувацькому просторі.

Ядро Mach, подібно іншим мікроядрам, забезпечує керування процесами, керування пам'яттю, комунікації і функції в/в. Функції керування файлами, каталогами й інші традиційні для ОС функції виконуються в користувацькому просторі. Ідея побудови ядра Mach складається в забезпеченні механізмів, необхідних для роботи системи, але стратегія використання цих механізмів реалізується на рівні користувацьких процесів.

Ядро керує п'ятьма головними абстракціями:

1. Процеси.

2. Нитки .

3. Об'єкти пам'яті.

4. Порти.

5. Повідомлення.

Користувацький процес

користувацький

простір

Рівень

програмних

емуляторів

простір ядра

Рис. 46.


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12