Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os_polnaya.doc
Скачиваний:
8
Добавлен:
17.09.2019
Размер:
2.3 Mб
Скачать

73. Об'єктно-орієнтований підхід в структурній побудові ос

Хоча технологія мікроядер і заклала основи модульних систем, здатних розвиватися регулярним чином, вона не змогла повною мірою забезпечити можливості розширення систем. В даний час цій меті найбільшою мірою відповідає об'єктно-орієнтований підхід, при якому кожен програмний компонент є функціонально ізольованим від інших.

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

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

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

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

Таким чином, об'єкт предстає для зовнішнього світу у вигляді "чорного ящика" з добре певним інтерфейсом. З погляду розробника, що використовує об'єкт, поки зовнішня реакція об'єкту залишається без змін, не мають значення ніякі зміни у внутрішній реалізації. Це дає можливість легко замінювати одну реалізацію об'єкту інший, наприклад, у разі зміни апаратних засобів; при цьому складне програмне оточення, в якому знаходяться замінювані об'єкти, не зажадає ніяких змін.

З іншого боку, здатність об'єктів представати у вигляді "чорного ящика" дозволяє упаковувати в них і представляти у вигляді об'єктів вже існуючі застосування, нічого в них не змінюючи.

Використання об'єктно-орієнтованого підходу особливе ефективно при створенні програмного забезпечення, що активно розвивається, наприклад, при розробці застосувань, призначених для виконання на різних апаратних платформах.

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

Але особливо великі перспективи має цей підхід в реалізації розподілених обчислювальних середовищ. В той час, як зараз різні пакети, що працюють в даний момент в мережі, є статично зв'язані набори програм, в майбутньому, з використанням об'єктно-орієнтованого підходу, вони можуть перетворитися на єдину сукупність динамічно зв'язуваних об'єктів, де кожен об'єкт оперативно встановлює і розриває зв'язки з іншими об'єктами для виконання актуальних в даний момент завдань. Застосування, створені для такого мережевого середовища, заснованого на об'єктах, можуть виконуватися, динамічно звертаючись до безлічі об'єктів, незалежно від їх місцезнаходження в мережі і незалежно від їх операційного середовища.

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

Проте, не дивлячись на згадані складнощі і проблеми, об'єктно-орієнтований підхід є однією з найперспективніших тенденцій в конструюванні програмного забезпечення.

Комерційні об'єктно-орієнтовані засоби

Об'єктно-орієнтований підхід до побудови операційних систем, що додає порядок процесу додавання модульних розширень до невеликого ядра був прийнятий на озброєння багатьма відомими фірмами, такими як Microsoft, Apple, IBM, Novell/USL (UNIX Systems Laboratories) і Sun Microsystems - всі вони розвернули свої операційні системи в цьому напрямі. Taligent, спільне підприємство IBM і Apple, сподівається випередити всіх з своєю від початку до кінця об'єктно-орієнтованою операційною системою. Тим часом Next поставляє Motorola- і Intel-версії NextStep, найбільш просунутої об'єктно-орієнтованої операційної системи з тих, що є. Хоча NextStep і не має об'єктної орієнтованості від до низу верху, як це планується в розробках Taligent, але вона доступна вже сьогодні.

Одним з перших застосувань об'єктних систем для більшості користувачів стануть засновані на об'єктах прикладні програми. До об'єктно-орієнтованих технологій цього рівня, що вже є зараз або доступним в найближчому майбутньому відносяться:

  • Microsoft OLE (Object Linking and Embedding - скріплення і впровадження об'єктів)

  • стандарт OpenDoc від фірм Apple, IBM, WordPerfect, Novell і Borland

  • DSOM (Distributed System Object Model - об'єктна модель розподілених систем) фірми IBM

  • PDO (Portable Distributed Objects - переносимі розподілені об'єкти) фірми Next

  • каркаси (frameworks) фірми Taligent

  • архітектура CORBA об'єднання OMG.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]