МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
КОНСПЕКТ ЛЕКЦІЙ
з курсу "Мережеві операційні системи"
для студентів базового напряму 6.1601
“Інформаційна безпеки”
Затверджено
на засiданнi кафедри
"Захист інформації"
Протокол N 2 вiд.02.09.2008p.
Львів 2008
Конспект лекцій з курсу "Мережеві операційні системи" для студентів базового напряму 6.1601 “Інформаційна безпеки” / Укл. І.Я. Тишик, – Львiв: Національний університет "Львівська політехніка", 2008. - 197 с.
Укладачі: І.Я. Тишик, ст. викладач
Вiдповiдальний за випуск В.Б. Дудикевич, д.т.н, професор
Рецензенти: В.В. Хома, д.т.н, професор
Вступ
Визначення операційної системи
Операційна система найбільшою мірою визначає зовнішність всієї обчислювальної системи в цілому. Не дивлячись на це, користувачі, що активно використовують обчислювальну техніку, часто випробовують утруднення при спробі дати визначення операційній системі. Частково це пов'язано з тим, що ОС виконує дві по суті малі зв'язані функції: забезпечення користувачеві-програмістові зручностей за допомогою надання для нього розширеної машини і підвищення ефективності використання комп'ютера шляхом раціонального управління його ресурсами.
ОС як розширена машина
Використання більшості комп'ютерів на рівні машинної мови скрутно, особливо це стосується введення-виводу. Наприклад, для організації читання блоку даних з гнучкого диска програміст може використовувати 16 різних команд, кожна з яких вимагає 13 параметрів, таких як номер блоку на диску, номер сектора на доріжці і тому подібне Коли виконання операції з диском завершується, контроллер повертає 23 значення, що відображають наявність і типи помилок, які, очевидно, треба аналізувати. Навіть якщо не входити в курс реальних проблем програмування введення-виводу, ясно, що серед програмістів знайшлося б не багато охочих безпосередньо займатися програмуванням цих операцій. При роботі з диском програмістові-користувачеві досить представляти його у вигляді деякого набору файлів, кожен з яких має ім'я. Робота з файлом полягає в його відкритті, виконанні читання або запису, а потім в закритті файлу. Питання подібні таким, чи як слід при записі використовувати вдосконалену частотну модуляцію або в якому стані зараз знаходиться двигун механізму переміщення прочитуючих головок, не повинні хвилювати користувача. Програма, яка приховує від програміста всі реалії апаратури і надає можливість простого, зручного перегляду вказаних файлів, читання або запису, - це, звичайно, операційна система. Точно також, як ОС захищає програмістів від апаратури дискового накопичувача і надає йому простою файловий інтерфейс, операційна система бере на себе всі малоприємні справи, пов'язані з обробкою переривань, управлінням таймерами і оперативною пам'яттю, а також інші низькорівневі проблеми. В кожному випадку та абстрактна, уявна машина, з якою, завдяки операційній системі, тепер може мати справу користувач, набагато простіше і зручніше в обігу, чим реальна апаратура, лежача в основі цієї абстрактної машини.
З цієї точки зору функцією ОС є надання користувачеві деякої розширеної або віртуальної машини, яку легко програмувати і з якою легко працювати, чим безпосередньо з апаратурою, складовій реальну машину.
ОС як система управління ресурсами
Ідея про те, що ОС перш за все система, що забезпечує зручний інтерфейс користувачам, відповідає розгляду зверху вниз. Інший погляд, від низу до верху, дає уявлення про ОС як про деякий механізм, керівнику всіма частинами складної системи. Сучасні обчислювальні системи складаються з процесорів, пам'яті, таймерів, дисків, накопичувачів на магнітних стрічках, мережевих комунікаційної апаратури, принтерів і інших пристроїв. Відповідно до другого підходу функцією ОС є розподіл процесорів, пам'яті, пристроїв і даних між процесами, що конкурують за ці ресурси. ОС повинна управляти всіма ресурсами обчислювальної машини так, щоб забезпечити максимальну ефективність її функціонування. Критерієм ефективності може бути, наприклад, пропускна спроможність або реактивність системи. Управління ресурсами включає вирішення двох загальних, не залежних від типу ресурсу завдань:
планування ресурсу - тобто визначення, кому, коли, а для ділимих ресурсів і в якій кількості, необхідно виділити даний ресурс;
відстежування стану ресурсу - тобто підтримка оперативної інформації про те, зайнятий або не зайнятий ресурс, а для ділимих ресурсів - яка кількість ресурсу вже розподілена, а яке вільне.
Для вирішення цих загальних завдань управління ресурсами разные ОС використовують різні алгоритми, що кінець кінцем і визначає їх зовнішність в цілому, включаючи характеристики продуктивності, сферу застосування і навіть призначений для користувача інтерфейс. Так, наприклад, алгоритм управління процесором в значній мірі визначає, чи є ОС системою розділення часу, системою пакетної обробки або системою реального часу.
Класифікація ОС
Операційні системи можуть розрізнятися особливостями реалізації внутрішніх алгоритмів управління основними ресурсами комп'ютера (процесорами, пам'яттю, пристроями), особливостями використаних методів проектування, типами апаратних платформ, областями використання і багатьма іншими властивостями.
Нижче приведена класифікація ОС по декількох найбільш основних ознаках.
Особливості алгоритмів управління ресурсами
Від ефективності алгоритмів управління локальними ресурсами комп'ютера багато в чому залежить ефективність всієї мережевої ОС в цілому. Тому, характеризуючи мережеву ОС, часто приводять найважливіші особливості реалізації функцій ОС по управлінню процесорами, пам'яттю, зовнішніми пристроями автономного комп'ютера. Так, наприклад, залежно від особливостей використаного алгоритму управління процесором, операційні системи ділять на багатозадачних і однозадачних, многопользовательские і однопользовательские, на системи, що підтримують багатонитяну обробку і що не підтримують її, на багатопроцесорні і однопроцесорні системи.
Підтримка багатозадачності. По числу одночасно виконуваних завдань операційні системи можуть бути розділені на два класи:
однозадачні (наприклад, MS-DOS, MSX) і
багатозадачні (OC ЄС, OS/2, UNIX, Windows 95).
Однозадачні ОС в основному виконують функцію надання користувачеві віртуальної машини, роблячи простішим і зручнішим процес взаємодії користувача з комп'ютером. Однозадачні ОС включають засоби управління периферійними пристроями, засобу управління файлами, засобу спілкування з користувачем.
Багатозадачні ОС, окрім вищеперелічених функцій, управляють розділенням спільно використовуваних ресурсів, таких як процесор, оперативна пам'ять, файли і зовнішні пристрої.
Підтримка многопользовательского режиму. По числу одночасно працюючих користувачів ОС діляться на:
однопользовательские (MS-DOS, Windows 3.x, ранні версії OS/2);
многопользовательские (UNIX, Windows NT).
Головною відмінністю многопользовательских систем від однопользовательских є наявність засобів захисту інформації кожного користувача від несанкціонованого доступу інших користувачів. Слід відмітити, що не всяка багатозадачна система є многопользовательской, і не всяка однопользовательская ОС є однозадачною.
Витісняюча і невитісняюча багатозадачність. Найважливішим ресурсом, що розділяється, є процесорний час. Спосіб розподілу процесорного часу між декількома процесами (або нитками), що одночасно існують в системі, багато в чому визначає специфіку ОС. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів:
невитісняюча багатозадачність (NetWare, Windows 3.x);
витісняюча багатозадачність (Windows NT, OS/2, UNIX).
Основною відмінністю між витісняючим і невитісняючим варіантами багатозадачності є ступінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в операційній системі, а в другому - розподілений між системою і прикладними програмами. При невитісняючій багатозадачності активний процес виконується до тих пір, поки він сам, за власною ініціативою, не віддасть управління операційній системі для того, щоб та вибрала з черги інший готовий до виконання процес. При витісняючій багатозадачності рішення про перемикання процесора з одного процесу на іншій ухвалюється операційною системою, а не самим активним процесом.
Підтримка многонитевости. Важливою властивістю операційних систем є можливість розпаралелювання обчислень в рамках одного завдання. Багатонитяна ОС розділяє процесорний час не між завданнями, а між їх окремими гілками (нитками).
Багатопроцесорна обробка. Іншою важливою властивістю ОС є відсутність або наявність в ній засобів підтримки багатопроцесорної обробки - мультипроцесування. Мультипроцесування приводить до ускладнення всіх алгоритмів управління ресурсами.
В наші дні стає загальноприйнятим введення в ОС функцій підтримки багатопроцесорної обробки даних. Такі функції є в операційних системах Solaris 2.x фірми Sun, Open Server 3.x компанії Santa Crus Operations, OS/2 фірми IBM, Windows NT фірми Microsoft і NetWare 4.1 фірм Novell.
Багатопроцесорні ОС можуть класифікуватися за способом організації обчислювального процесу в системі з багатопроцесорною архітектурою: асиметричні ОС і симетричні ОС. Асиметрична ОС цілком виконується тільки на одному з процесорів системи, розподіляючи прикладні завдання по решті процесорів. Симетрична ОС повністю децентрализована і використовує весь пул процесорів, розділяючи їх між системними і прикладними завданнями.
Вище були розглянуті характеристики ОС, пов'язані з управлінням тільки одним типом ресурсів - процесором. Важливий вплив на зовнішність операційної системи в цілому, на можливості її використання в тій або іншій області надають особливості і інших підсистем управління локальними ресурсами - підсистем управління пам'яттю, файлами, пристроями введення-виводу.
Специфіка ОС виявляється і в тому, яким чином вона реалізує мережеві функції: розпізнавання і перенаправлення в мережу запитів до видалених ресурсів, передача повідомлень по мережі, виконання видалених запитів. При реалізації мережевих функцій виникає комплекс завдань, пов'язаних з розподіленим характером зберігання і обробки даних в мережі: ведення довідкової інформації про всі доступні в мережі ресурси і сервери, адресація взаємодіючих процесів, забезпечення прозорості доступу, тиражування даних, узгодження копій, підтримка безпеки даних.
Особливості апаратних платформ
На властивості операційної системи безпосередній вплив роблять апаратні засоби, на які вона орієнтована. За типом апаратуру розрізняють операційні системи персональних комп'ютерів, міні-комп'ютерів, мейнфреймов, кластерів і мереж ЕОМ. Серед перерахованих типів комп'ютерів можуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні. У будь-якому випадку специфіка апаратних засобів, як правило, відбивається на специфіці операційних систем.
Очевидно, що ОС великої машини є складнішою і функціональною, чим ОС персонального комп'ютера. Так в ОС великих машин функції по плануванню потоку виконуваних завдань, очевидно, реалізуються шляхом використання складних пріоритетних дисциплін і вимагають більшої обчислювальної потужності, чим в ОС персональних комп'ютерів. Аналогічно йде справа і з іншими функціями.
Мережева ОС має в своєму складі засоби передачі повідомлень між комп'ютерами по лініях зв'язки, які абсолютно не потрібні в автономній ОС. На основі цих повідомлень мережева ОС підтримує розділення ресурсів комп'ютера між видаленими користувачами, підключеними до мережі. Для підтримки функцій передачі повідомлень мережеві ОС містять спеціальні програмні компоненти, що реалізовують популярні комунікаційні протоколи, такі як IP, IPX, Ethernet та інші.
Багатопроцесорні системи вимагають від операційної системи особливої організації, за допомогою якої сама операційна система, а також підтримувані нею застосування могли б виконуватися паралельно окремими процесорами системи. Паралельна робота окремих частин ОС створює додаткові проблеми для розробників ОС, оскільки в цьому випадку набагато складніше забезпечити узгоджений доступ окремих процесів до загальних системних таблиць, виключити ефект гонок і інші небажані наслідки асинхронного виконання робіт.
Інші вимоги пред'являються до операційних систем кластерів. Кластер - слабо зв'язана сукупність декількох обчислювальних систем, що працюють спільно для виконання загальних застосувань, і що представляються користувачеві єдиною системою. Разом із спеціальною апаратурою для функціонування кластерних систем необхідна і програмна підтримка з боку операційної системи, яка зводиться в основному до синхронізації доступу до ресурсів, що розділяються, виявлення відмов і динамічної реконфігурації системи. Одній з перших розробок в області кластерних технологій були вирішення компанії Digital Equipment на базі комп'ютерів VAX. Недавно цією компанією поміщена угода з корпорацією Microsoft про розробку кластерної технології, використовуючою Windows NT. Декілька компаній пропонують кластери на основі UNIX-машин.
Разом з ОС, орієнтованими на абсолютно певний тип апаратної платформи, існують операційні системи, спеціально розроблені так, щоб вони могли бути легко перенесені з комп'ютера одного типу на комп'ютер іншого типу, так звані мобільні ОС. Найбільш яскравим прикладом такої ОС є популярна система UNIX. У цих системах апаратно-залежні місця ретельно локалізовані, так що при перенесенні системи на нову платформу переписуються тільки вони. Засобом, що полегшує перенесення решти частини ОС, є написання її на машинно-незалежній мові, наприклад, на З, який і був розроблений для програмування операційних систем.
Особливості областей використання
Багатозадачні ОС підрозділяються на три типи відповідно до використаних при їх розробці критеріїв ефективності:
системи пакетної обробки (наприклад, OC ЄС)
системи розділення часу (UNIX, VMS)
системи реального часу (QNX, RT/11).
Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, що не вимагають швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна спроможність, тобто вирішення максимального числа завдань в одиницю часу. Для досягнення цієї мети в системах пакетної обробки використовуються наступна схема функціонування: на початку роботи формується пакет завдань, кожне завдання містить вимога до системних ресурсів; з цього пакету завдань формується мультипрограмна суміш, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред'являють вимоги, що відрізняються, до ресурсів, так, щоб забезпечувалося збалансоване завантаження всіх пристроїв обчислювальної машини; так, наприклад, в мультипрограмній суміші бажана одночасна присутність обчислювальних завдань і завдань з інтенсивним введенням-виводом. Таким чином, вибір нового завдання з пакету завдань залежить від внутрішньої ситуації, що складається в системі, тобто вибирається "вигідне" завдання. Отже, в таких ОС неможливо гарантувати виконання того або іншого завдання протягом певного періоду часу. У системах пакетної обробки перемикання процесора з виконання одного завдання на виконання інший відбувається тільки у випадку, якщо активне завдання саме відмовляється від процесора, наприклад, із-за необхідності виконати операцію введення-виводу. Тому одне завдання може надовго зайняти процесор, що робить неможливим виконання інтерактивних завдань. Таким чином, взаємодія користувача з обчислювальною машиною, на якій встановлена система пакетної обробки, зводиться до того, що він приносить завдання, віддає його диспетчерові-операторові, а в кінці дня після виконання всього пакету завдань отримує результат. Очевидно, що такий порядок знижує ефективність роботи користувача.
Системи розділення часу покликані виправити основний недолік систем пакетної обробки - ізоляцію користувача-програміста від процесу виконання його завдань. Кожному користувачеві системи розділення часу надається термінал, з якого він може вести діалог зі своєю програмою. Оскільки в системах розділення часу кожному завданню виділяється тільки квант процесорного часу, жодне завдання не займає процесор надовго, і час відповіді виявляється прийнятним. Якщо квант вибраний достатньо невеликим, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожен з них единолично використовує машину. Ясно, що системи розділення часу володіють меншою пропускною спроможністю, чим системи пакетної обробки, оскільки на виконання приймається кожне запущене користувачем завдання, а не та, яка "вигідна" системі, і, крім того, є накладні витрати обчислювальної потужності на частіше перемикання процесора із завдання на завдання. Критерієм ефективності систем розділення часу є не максимальна пропускна спроможність, а зручність і ефективність роботи користувача.
Системи реального часу застосовуються для управління різними технічними об'єктами, такими, наприклад, як верстат, супутник, наукова експериментальна установка або технологічними процесами, такими, як гальванічна лінія, доменний процес і тому подібне У всіх цих випадках існує гранично допустимий час, протягом якого повинна бути виконана та або інша програма, що управляє об'єктом, інакше може відбутися аварія: супутник вийде із зони видимості, експериментальні дані, що поступають з датчиків, будуть втрачені, товщина гальванічного покриття не відповідатиме нормі. Таким чином, критерієм ефективності для систем реального часу є їх здатність витримувати заздалегідь задані інтервали часу між запуском програми і отриманням результату (дії, що управляє). Цей час називається часом реакції системи, а відповідна властивість системи - реактивністю. Для цих систем мультипрограмна суміш є фіксованим набором заздалегідь розроблених програм, а вибір програми на виконання здійснюється виходячи з поточного стану об'єкту або відповідно до розкладу планових робіт.
Деякі операційні системи можуть суміщати в собі властивості систем різних типів, наприклад, частина завдань може виконуватися в режимі пакетної обробки, а частина - в режимі реального часу або в режимі розділення часу. У таких випадках режим пакетної обробки часто називають фоновим режимом.
Особливості методів побудови
При описі операційної системи часто указуються особливості її структурної організації і основні концепції, покладені в її основу.
До таких базових концепцій відносяться:
Способи побудови ядра системи - монолітне ядро або мікроядерний підхід. Більшість ОС використовує монолітне ядро, яке компонується як одна програма, що працює в привілейованому режимі і використовує швидкі переходи з однієї процедури на іншу, що не вимагають перемикання з привілейованого режиму в призначений для користувача і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також в привілейованому режимі і що виконує тільки мінімум функцій по управлінню апаратурою, тоді як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють в призначеному для користувача режимі. При такій побудові ОС працює більш поволі, оскільки часто виконуються переходи між привілейованим режимом і призначеним для користувача, зате система виходить гнучкішою - її функції можна нарощувати, модифікувати або звужувати, додаючи, модифікуючи або виключаючи сервери призначеного для користувача режиму. Крім того, сервери добре захищені один від одного, як і будь-які призначені для користувача процеси.
Побудова ОС на базі об'єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, що добре зарекомендували себе на рівні додатків, усередині операційної системи, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі тих, що є за допомогою механізму спадкоємства, хороший захист даних за рахунок їх інкапсуляції у внутрішні структури об'єкту, що робить дані недоступними для несанкціонованого використання ззовні, структуризованность системи, що складається з набору добре певних об'єктів.
Наявність декількох прикладних середовищ дає можливість в рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасних операційних систем підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS/2 або хоч би деякої підмножини з цього популярного набору. Концепція множинних прикладних середовищ найпростіше реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частину яких реалізують прикладне середовище тієї або іншої операційної системи.
Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів в мережевих середовищах. У розподіленій ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби ресурсів, що розділяються, єдиної служби часу, використання механізму виклику видалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитяної обробки, що дозволяє розпаралелювати обчислення в рамках одного завдання і виконувати це завдання відразу на декількох комп'ютерах мережі, а також наявність інших розподілених служб.
Мережеві операційні системи
Структура мережевої операційної системи
Мережева операційна система складає основу будь-якої обчислювальної мережі. Кожен комп'ютер в мережі в значній мірі автономний, тому під мережевою операційною системою в широкому сенсі розуміється сукупність операційних систем окремих комп'ютерів, що взаємодіють з метою обміну повідомленнями і розділення ресурсів по єдиних правилах - протоколах. У вузькому сенсі мережева ОС - це операційна система окремого комп'ютера, можливість працювати в мережі, що забезпечує йому.
INCLUDEPICTURE "http://www.citforum.ru/pictures/it/sos/img00001.gif" \* MERGEFORMATINET
Мал. 1.1. Структура мережевої ОС
У мережевій операційній системі окремої машини можна виділити декілька частин (малюнок 1.1):
Засоби управління локальними ресурсами комп'ютера: функції розподілу оперативної пам'яті між процесами, планування і диспетчеризації процесів, управління процесорами в мультипроцесорних машинах, управління периферійними пристроями і інші функції управління ресурсами локальних ОС.
Засоби надання власних ресурсів і послуг в загальне користування - серверна частина ОС (сервер). Ці засоби забезпечують, наприклад, блокування файлів і записів, що необхідне для їх сумісного використання; ведення довідників імен мережевих ресурсів; обробку запитів видаленого доступу до власної файлової системи і бази даних; управління чергами запитів видалених користувачів до своїх периферійних пристроїв.
Засоби запиту доступу до видалених ресурсів і послуг і їх використання - клієнтська частина ОС (редиректор). Ця частина виконує розпізнавання і перенаправлення в мережу запитів до видалених ресурсів від додатків і користувачів, при цьому запит поступає від додатку в локальній формі, а передається в мережу в іншій формі, відповідній вимогам сервера. Клієнтська частина також здійснює прийом відповідей від серверів і перетворення їх в локальний формат, так що для додатку виконання локальних і видалених запитів невиразне.
Комунікаційні засоби ОС, за допомогою яких відбувається обмін повідомленнями в мережі. Ця частина забезпечує адресацію і буферизацію повідомлень, вибір маршруту передачі повідомлення по мережі, надійність передачі і тому подібне, тобто є засобом транспортування повідомлень.
Залежно від функцій, що покладаються на конкретний комп'ютер, в його операційній системі може бути відсутнім або клієнтська, або серверна частині.
На малюнку 1.2 показана взаємодія мережевих компонентів. Тут комп'ютер 1 виконує роль "чистого" клієнта, а комп'ютер 2 - роль "чистого" сервера, відповідно на першій машині відсутня серверна частина, а на другій - клієнтська. На малюнку окремо показаний компонент клієнтської частини - редиректор. Саме редиректор перехоплює всі запити, що поступають від додатків, і аналізує їх. Якщо виданий запит до ресурсу даного комп'ютера, то він переадресовується відповідній підсистемі локальної ОС, якщо ж це запит до видаленого ресурсу, то він переправляється в мережу. При цьому клієнтська частина перетворить запит з локальної форми в мережевий формат і передає його транспортній підсистемі, яка відповідає за доставку повідомлень вказаному серверу. Серверна частина операційної системи комп'ютера 2 приймає запит, перетворить його і передає для виконання своєї локальної ОС. Після того, як результат отриманий, сервер звертається до транспортної підсистеми і направляє відповідь клієнтові, що видав запит. Клієнтська частина перетворить результат у відповідний формат і адресує його тому застосуванню, яке видало запит.
INCLUDEPICTURE "http://www.citforum.ru/pictures/it/sos/img00002.gif" \* MERGEFORMATINET
Мал. 1.2. взаємодія компонентів операційної системи при взаємодії комп'ютерів
На практиці склалося декілька підходів до побудови мережевих операційних систем (малюнок 1.3).
INCLUDEPICTURE "http://www.citforum.ru/pictures/it/sos/img00003.gif" \* MERGEFORMATINET
Мал. 1.3. Варіанти побудови мережевих ОС
Перші мережеві ОС були сукупністю існуючої локальної ОС і надбудованої над нею мережевої оболонки. При цьому до локальної ОС вбудовувався мінімум мережевих функцій, необхідних для роботи мережевої оболонки, яка виконувала основні мережеві функції. Прикладом такого підходу є використання на кожній машині мережі операційної системи MS DOS (у якої починаючи з її третьої версії з'явилися такі вбудовані функції, як блокування файлів і записів, необхідні для сумісного доступу до файлів). Принцип побудови мережевих ОС у вигляді мережевої оболонки над локальною ОС використовується і в сучасних ОС, таких, наприклад, як LANtastic або Personal Ware.
Проте ефективнішим представляється шлях розробки операційних систем, спочатку призначених для роботи в мережі. Мережеві функції у ОС такого типу глибоко вбудовані в основні модулі системи, що забезпечує їх логічну стрункість, простоту експлуатації і модифікації, а також високу продуктивність. Прикладом такої ОС є система Windows NT фірми Microsoft, яка за рахунок встроенности мережевих засобів забезпечує вищі показники продуктивності і захищеності інформації в порівнянні з мережевою ОС LAN Manager тієї ж фірми (сумісна розробка з IBM), надбудовою, що є, над локальною операційною системою OS/2.
Однорангові мережева ОС і ОС з виділеними серверами
Залежно від того, як розподілені функції між комп'ютерами мережі, мережеві операційні системи, а отже, і мережі діляться на два класи: однорангові і двохрангові (малюнок 1.4). Останні частіше називають мережами з виділеними серверами.
INCLUDEPICTURE "http://www.citforum.ru/pictures/it/sos/img00004.gif" \* MERGEFORMATINET
(а)
INCLUDEPICTURE "http://www.citforum.ru/pictures/it/sos/img00005.gif" \* MERGEFORMATINET
(б)
Мал. 1.4. (а) - Однорангова мережа, (б) - Двохрангова мережа
Якщо комп'ютер надає свої ресурси іншим користувачам мережі, то він грає роль сервера. При цьому комп'ютер, що звертається до ресурсів іншої машини, є клієнтом. Як вже було сказано, комп'ютер, що працює в мережі, може виконувати функції або клієнта, або сервера, або суміщати обидві ці функції.
Якщо виконання яких-небудь серверних функцій є основним призначенням комп'ютера (наприклад, надання файлів в загальне користування решті всіх користувачів мережі або організація сумісного використання факсу, або надання всім користувачам мережі можливості запуску на даному комп'ютері своїх застосувань), то такий комп'ютер називається виділеним сервером. Залежно від того, який ресурс сервера є таким, що розділяється, він називається файл-сервером, факс-сервером, принт-сервером, сервером додатків і так далі
Очевидно, що на виділених серверах бажано встановлювати ОС, спеціально оптимізовані для виконання тих або інших серверних функцій. Тому в мережах з виділеними серверами найчастіше використовуються мережеві операційні системи, до складу яких входить декількох варіантів ОС, серверних частин, що відрізняються можливостями. Наприклад, мережева ОС Novell NetWare має серверний варіант, оптимізований для роботи як файл-сервера, а також варіанти оболонок для робочих станцій з різними локальними ОС, причому ці оболонки виконують виключно функції клієнта. Іншим прикладом ОС, орієнтованої на побудову мережі з виділеним сервером, є операційна система Windows NT. На відміну від NetWare, обидва варіанти даної мережевої ОС - Windows NT Server (для виділеного сервера) і Windows NT Workstation (для робочої станції) - можуть підтримувати функції і клієнта і сервера. Але серверний варіант Windows NT має більше можливостей для надання ресурсів свого комп'ютера іншим користувачам мережі, оскільки може виконувати ширший набір функцій, підтримує більшу кількість одночасних з'єднань з клієнтами, реалізує централізоване управління мережею, має розвиненіші засоби захисту.
Виділений сервер не прийнято використовувати як комп'ютер для виконання поточних завдань, не пов'язаних з його основним призначенням, оскільки це може зменшити продуктивність його роботи як сервера. У зв'язку з такими міркуваннями в ОС Novell NetWare на серверній частині можливість виконання звичайних прикладних програм взагалі не передбачена, тобто сервер не містить клієнтської частини, а на робочих станціях відсутні серверні компоненти. Проте в інших мережевих ОС функціонування на виділеному сервері клієнтської частини цілком можливо. Наприклад, під управлінням Windows NT Server можуть запускатися звичайні програми локального користувача, які можуть зажадати виконання клієнтських функцій ОС при появі запитів до ресурсів інших комп'ютерів мережі. При цьому робочі станції, на яких встановлена ОС Windows NT Workstation, можуть виконувати функції невиділеного сервера.
Важливо зрозуміти, що не дивлячись на те, що в мережі з виділеним сервером всі комп'ютери в загальному випадку можуть виконувати одночасно ролі і сервера, і клієнта, ця мережа функціонально не симетрична: апаратний і програмно в ній реалізовано два типи комп'ютерів - одні, більшою мірою орієнтовані на виконання серверних функцій і такі, що працюють під управлінням спеціалізованих серверних ОС, а інші - в основному виконуючі клієнтські функції і що працюють під управлінням відповідного цьому призначенню варіанту ОС. Функціональна несиметрична, як правило, викликає і несиметричну апаратури - для виділених серверів використовуються могутніші комп'ютери з великими об'ємами оперативної і зовнішньої пам'яті. Таким чином, функціональна несиметрична в мережах з виділеним сервером супроводжується несиметричною операційних систем (спеціалізація ОС) і апаратною несиметричною (спеціалізація комп'ютерів).
У однорангових мережах всі комп'ютери рівні в правах доступу до ресурсів один одного. Кожен користувач може по своєму бажанню оголосити який-небудь ресурс свого комп'ютера таким, що розділяється, після чого інші користувачі можуть його експлуатувати. У таких мережах на всіх комп'ютерах встановлюється одна і та ж ОС, яка надає всім комп'ютерам в мережі потенційно рівні можливості. Однорангові мережі можуть бути побудовані, наприклад, на базі ОС LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation.
У однорангових мережах також може виникнути функціональна несиметрична: одні користувачі не бажають розділяти свої ресурси з іншими, і у такому разі їх комп'ютери виконують роль клієнта, за іншими комп'ютерами адміністратор закріпив тільки функції по організації сумісного використання ресурсів, а значить вони є серверами, в третьому випадку, коли локальний користувач не заперечує проти використання його ресурсів і сам не унеможливлює звернення до інших комп'ютерів, ОС, що встановлюється на його комп'ютері, повинна включати і серверну, і клієнтську частині. На відміну від мереж з виділеними серверами, в однорангових мережах відсутня спеціалізація ОС залежно від переважаючої функціональної спрямованості - клієнта або сервера. Всі варіації реалізуються засобами конфігурації одного і того ж варіанту ОС.
Однорангові мережі простіше в організації і експлуатації, проте вони застосовуються в основному для об'єднання невеликих груп користувачів, що не пред'являють великих вимог до об'ємів інформації, що зберігається, її захищеності від несанкціонованого доступу і до швидкості доступу. При підвищених вимогах до цих характеристик більш відповідними є двохрангові мережі, де сервер краще вирішує задачу обслуговування користувачів своїми ресурсами, оскільки його апаратура і мережева операційна система спеціально спроектовані для цієї мети.
ОС для робочих груп і ОС для мереж масштабу підприємства
Мережеві операційні системи мають різні властивості залежно від того, призначені вони для мереж масштабу робочої групи (відділу), для мереж масштабу кампусу або для мереж масштабу підприємства.
Мережі відділів - використовуються невеликою групою співробітників, вирішальних загальні завдання. Головною метою мережі відділу є розділення локальних ресурсів, таких як додатки, дані, лазерні принтери і модеми. Мережі відділів зазвичай не розділяються на підмережі.
Мережі кампусів - сполучають декілька мереж відділів усередині окремої будівлі або усередині однієї території підприємства. Ці мережі є все ще локальними мережами, хоча і можуть покривати територію в декілька квадратних кілометрів. Сервіси такої мережі включають взаємодію між мережами відділів, доступ до баз даних підприємства, доступ до факс-серверам, високошвидкісним модемам і високошвидкісним принтерам.
Мережі підприємства (корпоративні мережі) - об'єднують всі комп'ютери всіх територій окремого підприємства. Вони можуть покривати місто, регіон або навіть континент. У таких мережах користувачам надається доступ до інформації і додатків, що знаходяться в інших робочих групах, інших відділах, підрозділах і штаб-квартирах корпорації.
Головним завданням операційної системи, використовуваної в мережі масштабу відділу, є організація розділення ресурсів, таких як додатки, дані, лазерні принтери і, можливо, низькошвидкісні модеми. Зазвичай мережі відділів мають один або два файлові сервери і не більше ніж 30 користувачів. Завдання управління на рівні відділу відносно прості. У завдання адміністратора входить додавання нових користувачів, усунення простих відмов, інсталяція нових вузлів і установка нових версій програмного забезпечення. Операційні системи мереж відділів добре відпрацьовані і різноманітні, також, як і самі мережі відділів, що вже давно застосовуються і достатньо відладжені. Така мережа зазвичай використовує одну або максимум дві мережева ОС. Найчастіше це мережа з виділеним сервером NetWare 3.x або Windows NT, або ж однорангова мережа, наприклад мережа Windows for Workgroups.
Користувачі і адміністратори мереж відділів незабаром усвідомлюють, що вони можуть поліпшити ефективність своєї роботи шляхом діставання доступу до інформації інших відділів свого підприємства. Якщо співробітник, що займається продажами, може дістати доступ до характеристик конкретного продукту і включити їх в презентацію, то ця інформація буде більш свіжішою і робитиме більший вплив на покупців. Якщо відділ маркетингу може дістати доступ до характеристик продукту, який ще тільки розробляється інженерним відділом, то він може швидко підготувати маркетингові матеріали відразу ж після закінчення розробки.
Отже, наступним кроком в еволюції мереж є об'єднання локальних мереж декількох відділів в єдину мережу будівлі або групи будівель. Такі мережі називають мережами кампусів. Мережі кампусів можуть тягнутися на декілька кілометрів, але при цьому глобальні з'єднання не потрібні.
Операційна система, що працює в мережі кампусу, повинна забезпечувати для співробітників одних відділів доступ до деяких файлів і ресурсів мереж інших відділів. Послуги, що надаються ОС мереж кампусів, не обмежуються простим розділенням файлів і принтерів, а часто надають доступ і до серверів інших типів, наприклад, до факс-серверам і до серверів високошвидкісних модемів. Важливим сервісом, що надається операційними системами даного класу, є доступ до корпоративних баз даних, незалежно від того, чи розташовуються вони на серверах баз даних або на мінікомп'ютерах.
Саме на рівні мережі кампусу починаються проблеми інтеграції. У загальному випадку, відділи вже вибрали для себе типи комп'ютерів, мережевого устаткування і мережевих операційних систем. Наприклад, інженерний відділ може використовувати операційну систему UNIX і мережеве устаткування Ethernet, відділ продажів може використовувати операційні середовища DOS/Novell і устаткування Token Ring. Дуже часто мережа кампусу сполучає різнорідні комп'ютерні системи, тоді як мережі відділів використовують однотипні комп'ютери.
Корпоративна мережа сполучає мережі всіх підрозділів підприємства, в загальному випадку тих, що знаходяться на значних відстанях. Корпоративні мережі використовують глобальні зв'язки (WAN links) для з'єднання локальних мереж або окремих комп'ютерів.
Користувачам корпоративних мереж потрібні все ті застосування і послуги, які є в мережах відділів і кампусів, плюс деякі додаткові застосування і послуги, наприклад, доступ до додатків мейнфреймов і мінікомп'ютерів і до глобальних зв'язків. Коли ОС розробляється для локальної мережі або робочої групи, то її головним обов'язком є розділення файлів і інших мережевих ресурсів (зазвичай принтерів) між локально підключеними користувачами. Такий підхід не застосовний для рівня підприємства. Разом з базовими сервісами, пов'язаними з розділенням файлів і принтерів, мережева ОС, яка розробляється для корпорацій, повинна підтримувати ширший набір сервісів, в який зазвичай входять поштова служба, засоби колективної роботи, підтримка видалених користувачів, факс-сервіс, обробка голосових повідомлень, організація відеоконференцій і ін.
Крім того, багато існуючих методів і підходи до вирішення традиційних завдань мереж менших масштабів для корпоративної мережі виявилися непридатними. На перший план вийшли такі завдання і проблеми, які в мережах робочих груп, відділів і навіть кампусів або мали другорядне значення, або взагалі не виявлялися. Наприклад, просте для невеликої мережі завдання ведення облікової інформації про користувачів виросло в складну проблему для мережі масштабу підприємства. А використання глобальних зв'язків вимагає від корпоративних ОС підтримки протоколів, що добре працюють на низькошвидкісних лініях, і відмови від деяких традиційно використовуваних протоколів (наприклад, тих, які активно використовують широкомовні повідомлення). Особливе значення придбали завдання подолання гетерогенності - в мережі з'явилися численні шлюзи, що забезпечують узгоджену роботу різних ОС і мережевих системних застосувань.
До ознак корпоративних ОС можуть бути віднесені також наступні особливості.
Підтримка додатків. У корпоративних мережах виконуються складні застосування, що вимагають для виконання великої обчислювальної потужності. Такі застосування розділяються на декілька частин, наприклад, на одному комп'ютері виконується частина додатку, пов'язана з виконанням запитів до бази даних, на іншому - запитів до файлового сервісу, а на клієнтських машинах - частина, що реалізовує логіку обробки даних додатку і організуюча інтерфейс з користувачем. Обчислювальна частина загальних для корпорації програмних систем може бути дуже об'ємною і непідйомною для робочих станцій клієнтів, тому додатки виконуватимуться ефективніше, якщо їх найбільш складні в обчислювальному відношенні частини перенести на спеціально призначений для цього могутній комп'ютер - сервер додатків.
Сервер додатків повинен базуватися на могутній апаратній платформі (мультипроцесорні системи, часто на базі RISC-процессоров, спеціалізована кластерна архітектура). ОС сервера додатків повинна забезпечувати високу продуктивність обчислень, а значить підтримувати багатонитяну...