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

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

ГоловнаІнформатика, Компютерні науки → Сучасні Операційні системи - Реферат

Сучасні Операційні системи - Реферат

деякі сторінки на диск. Цей процес здійснюється спеціальним процесом ядра, "виштовхувачем сторінок", що має в 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. Абстрактна модель емуляції UNІХ на основі Mach
2.4. Керування процесами в Mach
Процес у Mach - це, у першу чергу, адресний простір і набір ниток, що виконуються в цьому адресному просторі. Таким чином, виконання зв'язане з нитками, а процеси є пасивними об'єктами і служать для збору всіх ресурсів, що використовуються групою взаємозалежних ниток, у зручні контейнери.
?
Інші параметри процесу
Рис. 46. Процес Mach
Малюнок 46 ілюструє процес у Mach. Крім адресного простору і ниток, процес характеризується використовуваними ними портами і деякими параметрами. Усі порти, показані на малюнку, мають спеціальне призначення. Порт процесу використовується для взаємодії з ядром. Багато функцій ядра процес може викликати шляхом відправлення повідомлення на порт процесу, а не за допомогою системного виклику. Цей механізм використовується в Mach усюди для зменшення кількості системних викликів до можливого мінімуму. Взагалі говорячи, програміст може навіть не знати, чи виконується сервіс за допомогою системного виклику чи ні. Усім сервісам, які викликаються як за допомогою системних викликів, так і за допомогою передачі повідомлень, відповідають ерзац-процедури (заглушки) у бібліотеці. Це саме ті процедури, що описані в посібниках і які викликаються ПП. Ці процедури генеруються на підставі опису сервісу за допомогою компілятора MІG (Mach Іnterface Generator).
Порт завантаження використовується при ініціалізації, коли система стартує. Найперший процес читає з порту завантаження, щоб довідатися імена портів ядра, що забезпечують найбільш важливі сервіси.
Порт особливих ситуацій використовується системою для передачі повідомлень про помилки процесу. Прикладами особливих ситуацій є ділення на нуль, неправильний код команди. Цей порт також використовують відладчики.
Зареєстровані порти звичайно використовуються для забезпечення можливостей взаємодії між процесами і стандартними системними серверами.
Процеси також володіють і іншими властивостями. Процес може бути виконуваним чи заблокованим, незалежно від стану його ниток. Якщо процес є виконуваним, то ті його нитки, що також готові до виконання, можуть плануватися і виконуватися. Якщо процес заблокований, то всі його нитки не можуть виконуватися незалежно від їхнього стану.
Параметри планування, крім ниток, визначаються також для процесів. Ці параметри включають можливість визначення того, на яких процесорах можуть виконуватися нитки даного процесу. Це властивість найбільш корисна для багатопроцесорних систем. Наприклад, процес може використовувати цю властивість для того, щоб змусити виконуватися нитку на різних процесорах, чи змусити всі нитки працюватина одному процесорі, чи реалізувати який-небудь проміжний варіант. Крім того, кожен процес має пріоритет, який можна встановлювати. При створенні нитки їй привласнюється цей пріоритет. Також є можливість змінювати пріоритет всіх існуючих ниток.
Нарешті, кожен процес має статистику, наприклад, про кількість використовуваної пам'яті, час виконання ниток і т.д. Будь-який інший процес, що цікавиться цією статистикою, може отримати її, пославши повідомлення на порт даного процесу.
Процес Mach не містить: ідентифікатора користувача, груповий
Loading...

 
 

Цікаве