Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вступ, ст 22-93.doc
Скачиваний:
5
Добавлен:
02.09.2019
Размер:
1.62 Mб
Скачать

Дослідження в області операційних систем

Кібернетика - це швидко прогресуюча область, тому, говорячи про неї,

вкрай важко передбачати майбутнє. Дослідники в університетах і комерційних дослідницьких лабораторіях постійно видають нові ідеї, деякі з них не розвиваються далі, а інші закладаються в основу майбутніх програмних продуктів і роблять величезний вплив на виробників і користувачів. Відрізнити перші від других виявляється значно легше заднім розумом, ніж в режимі реального часу. Відокремити зерна від плевел важко, тому часто проходить 20-30 років між зародженням ідеї та її розквітом. Наприклад, коли президент Ейзенхауер (Eisenhower) заснував в 1958 році в Міністерстві оборони управління ARPA (Advanced Research Projects Agency - управління перспективних дослідницьких програм), він намагався не допустити знищення армією флоту і військово-повітряних сил з-за проблем дослідницького бюджету Пентагону. Він зовсім не намагався винайти Інтернет. Але серед іншого ARPA створила фонд для досліджень деяких університетів, присвячених тоді ще неясною ідеї пакетної комутації, яка незабаром лягла в основу першої експериментальної мережі з комутацією пакетів ARPANET.

Вона з'явилася в 1969 році. Незабаром інші фінансуються ARPA дослідні мережі приєдналися до ARPANET, і так народився Інтернет (Internet). Потім інтернет успішно використовувався протягом 20 років академічними дослідниками. Вони надсилали одне одному листи по електронній пошті. На початку 1990-х років Тім Бернерс-Лі (Tim Berners-Lee) винайшов Всесвітню павутину (World Wide Web) у дослідницькій лабораторії CERN в Женеві, а Марк Андресен (Маге Andreesen) в університеті Іллінойсу написав для неї графічний браузер. Після цього Інтернет заповнився бовтаються підлітками, чого явно не очікував президент Ейзенхауер.

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

винайшли інтерактивні системи з поділом часу. Комп'ютери були текстовими машинами, поки в кінці 60-х Даг Енгельбарт (Doug Engelbart) з Стенфордського дослідного інституту не винайшов миша і графічний інтерфейс користувача. Хто знає, що з'явиться слідом за цим?

У цьому і наступних розділах книги ми коротко опишемо частина з досліджень в області операційних систем, які мали місце за останні 5-10 років,

щоб дати уявлення про те, що може з'явитися в майбутньому. Це введення,

звичайно, не є всеосяжним і в основному базується на статтях, опублікованих у найкращих дослідницьких журналах та матеріалах конференцій, тому що ці ідеї, принаймні, пережили ретельний неупереджений процес аналізу перед публікацією. Більшість наукових статей, цитованих в присвячених дослідженням розділах, були опубліковані або асоціацією з обчислювальної техніки АСМ, або комп'ютерним суспільством IEEE, або USENIX. Крім того, вони доступні в Інтернеті для членів цих організацій, у тому числі студентів. За додатковою інформацією про ці організації та їх цифрових бібліотеках слід звертатися на наступні сайти:

АСМ http://www.acm.org

IEEE Computer Society http://www.computer.org

USENIX http://www.usenix.org

Насправді всі дослідники розуміють, що сучасні операційні системи масивні, не гнучкі, ненадійні, не забезпечують захисту інформації та рясніють помилками, причому деякі системи більшою мірою, ніж решта (назви не повідомляються, щоб захистити винуватців). Природно, величезна кількість досліджень було присвячено побудові гнучкої і надійної системи. Багато досліджень стосуються систем мікроядра. Ядра таких систем мають мінімальні розміри, тому є шанс, що їх зможуть цілком налагодити і зробити надійними. При цьому такі системи гнучкі, тому що велика частина операційної системи працює як процеси користувальницького режиму і тому їх легко перемістити або адаптувати до нових умов, можливо, навіть під час роботи. Зазвичай у завдання мікроядра входить лише управління на низькому рівні і передача повідомлень між процесами користувача. Мікроядра першого покоління, такі як Amoeba [324], Chorus [282], Mach [4] і V [66], довели, що ці системи можна побудувати і змусити працювати. Друге покоління намагається довести, що вони не тільки працюють, але і роблять це з високою продуктивністю [119, 147, 208, 209, 270, 371]. Грунтуючись на опублікованих вимірах, можна стверджувати, що ця мета досягнута.Безліч досліджень в області ядра в наші дні фокусується на

конструюванні розширюваних операційних систем. Це звичайно системи з мікроядром, в яких підтримується можливість їх розширення чи переробки в певному напрямку. Такими прикладами є Fluke [121], Paramecium [137],

SPIN [28] і Vino [299]. Деякі дослідники також шукають можливості розширення існуючих систем [126]. Багато з цих систем дозволяють користуватися

користувачам додавати свій власний код до ядра, але при цьому постає очевидна

проблема забезпечення безпеки надбудов користувача. Серед методів вирішення цих проблем зустрічаються такі, як інтерпретація розширень, ізоляція

на час виконання завантаження віддаленого коду в обмежену середу, так

звану «пісочницю», використання мов, забезпечують типову безпеку, і постачання виконуваних програм електронним підписом [137, 306]. В [100] представлена ​​інша точка зору: на забезпечення безпеки розширюваних користувачами систем витрачається занадто багато зусиль. На думку авторів, дослідники повинні обчислити, які надбудови корисні, і потім зробити їх нормальною частиною ядра, не надаючи користувачам можливостей розширю-вати ядро ​​на льоту.Хоча один підхід до поліпшення величезних, містять масу помилок, ненадійних операційних систем полягає в зменшенні їх розмірів, існує

другий, більш радикальний метод - взагалі усунути операційну систему. Він

був узятий на озброєння групою Каашойка (Kaashoek) в Массачусетському технологічному інституті в їх роботі над екзоядром. Ідея полягає в тому, щоб

залишити тонкий шар програмного забезпечення, що працює безпосередньо з

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

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

пакети. Все інше залишається на розсуд процесів користувацького рівня, що робить можливим побудову як універсальних, так і вузькоспеціалізованих систем [ПЗ, 108,168].