Введення
Визначення операційної системи
Операційна система найбільшою мірою визначає вигляд всієїобчислювальної системи в цілому. Незважаючи на це, користувачі, активнощо використовують обчислювальну техніку, часто зазнають труднощів приспробі дати визначення операційній системі. Частково це пов'язано з тим,що ОС виконує дві по суті мало пов'язані функції: забезпеченнякористувачеві-програмісту зручностей за допомогою надання для ньогорозширеної машини і підвищення ефективності використання комп'ютера шляхомраціонального управління його ресурсами.
ОС як розширена машина
Використання більшості комп'ютерів на рівні машинної мовиважко, особливо це стосується введення-виведення. Наприклад, дляорганізації читання блоку даних з гнучкого диску програміст можевикористовувати 16 різних команд, кожна з яких потребує 13 параметрів,таких як номер блоку на диску, номер сектора на доріжці і т. п. Коливиконання операції з диском завершується, контролер повертає 23значення, що відображають наявність і типи помилок, які, очевидно, требааналізувати. Навіть якщо не входити в курс реальних проблемпрограмування вводу-виводу, ясно, що серед програмістів знайшлося б небагато бажаючих безпосередньо займатися програмуванням цих операцій.
При роботі з диском програмісту-користувачеві досить представляти його ввигляді деякого набору файлів, кожний з яких має ім'я. Робота з файломполягає в його відкритті, виконанні читання або запису, а потім узакриття файлу. Питання подібні таким, як слід при записівикористовувати удосконалену частотну модуляцію або в якому станізараз знаходиться двигун механізму переміщення зчитують головок, неповинні хвилювати користувача. Програма, яка приховує від програміставсі реалії апаратури і надає можливість простого, зручногоперегляду зазначених файлів, читання чи запису - це, звичайно, операційнасистема. Точно також, як ОС позбавить програмістів від апаратуридискового накопичувача і надає йому простий файловий інтерфейс,операційна система бере на себе всі малоприємні справи, пов'язані зобробкою переривань, управлінням таймерами і оперативною пам'яттю, а такожінші низькорівневі проблеми. У кожному випадку та абстрактна,уявна машина, з якої, завдяки операційній системі, теперможе мати справу користувач, набагато простіше і зручніше в обігу, ніжреальна апаратура, що лежить в основі цієї абстрактної машини.
З цієї точки зору функцією ОС є надання користувачудеякої розширеної або віртуальної машини, яку легше програмуватиі з якою легше працювати, ніж безпосередньо з апаратурою, що становитьреальну машину.
ОС як система керування ресурсами
Ідея про те, що ОС перш за все система, що забезпечує зручний інтерфейскористувачам, відповідає розгляду зверху вниз. Інший погляд, знизувгору, дає уявлення про ОС як про деякий механізм, що управляєвсіма частинами складної системи. Сучасні обчислювальні системи складаютьсяз процесорів, пам'яті, таймери, дисків, накопичувачів на магнітних стрічках,мережевих комунікаційної апаратури, принтерів та інших пристроїв. УЗгідно з другим підходом функцією ОС є розподілпроцесорів, пам'яті, пристроїв і даних між процесами, що конкурують заці ресурси. ОС повинна керувати усіма ресурсами обчислювальної машинитаким чином, щоб забезпечити максимальну ефективність їїфункціонування. Критерієм ефективності може бути, наприклад, пропускназдатність або реактивність системи. Управління ресурсами включає рішеннядвох загальних, що не залежать від типу ресурсу завдань: p>
. планування ресурсу - тобто визначення, кому, коли, а для подільних ресурсів і в якій кількості, необхідно виділити даний ресурс; p>
. відстеження стану ресурсу - тобто підтримка оперативної інформації про те, зайнятий або не зайнятий ресурс, а для подільних ресурсів - яка кількість ресурсу вже розподілена, а яке вільно.
Для рішення цих загальних задач керування ресурсами різні ОС використовуютьрізні алгоритми, що в кінцевому рахунку і визначає їх структуру в цілому,включаючи характеристики продуктивності, область застосування і навітьпризначений для користувача інтерфейс. Так, наприклад, алгоритм керування процесоромв значній мірі визначає, чи є ОС системою розділеннячасу, системою пакетної обробки або системою реального часу. p>
Еволюція ОС p>
Перший період (1945 -1955) p>
Відомо, що комп'ютер був винайдений англійським математиком Чарльзом
Бебіджем наприкінці вісімнадцятого століття. Його "аналітична машина" так і незмогла но-справжньому заробити, тому що технології того часу незадовольняли вимогам по виготовленню деталей точної механіки, щобули необхідні для обчислювальної техніки. Відомо також, що цейкомп'ютер не мав операційної системи.
Деякий прогрес у створенні цифрових обчислювальних машин відбувся післядругої світової війни. У середині 40-х були створені перші ламповіобчислювальні пристрої. У той час одна й та сама група людей брала участьі в проектуванні, і в експлуатації, і в програмуванні обчислювальноїмашини. Це була радше науково-дослідна робота в областіобчислювальної техніки, а не використання комп'ютерів в якостіінструменту вирішення будь-яких практичних завдань з інших прикладнихобластей. Програмування здійснювалося виключно на машинному мовою.
Про операційних системах не було й мови, всі завдання організаціїобчислювального процесу вирішувалися вручну кожним програмістом з пультауправління. Не було ніякого іншого системного програмного забезпечення,крім бібліотек математичних і службових підпрограм. p>
Другий період (1955 - 1965) p>
З середини 50-х років почався новий період у розвитку обчислювальноїтехніки, пов'язаний з появою нової технічної бази - напівпровідниковихелементів. Комп'ютери другого покоління стали більш надійними, тепер вонизмогли безупинно працювати настільки довго, щоб на них можна булопокласти виконання дійсно практично важливих задач. Саме в цейперіод відбувся поділ персоналу на програмістів і операторів,експлуатаційників і розробників обчислювальних машин.
У ці роки з'явилися перші алгоритмічні мови, а отже і першийсистемні програми - компілятори. Вартість процесорного часузросла, що зажадало зменшення непродуктивних витрат часуміж запусками програм. З'явилися перші системи пакетної обробки,які просто автоматизували запуск однієї програм за одною і тим самимзбільшували коефіцієнт завантаження процесора. Системи пакетної обробкистали прообразом сучасних операційних систем, вони стали першимисистемними програмами, призначеними для керування обчислювальнимпроцесом. У ході реалізації систем пакетної обробки був розробленийформалізований мова управління завданнями, за допомогою якого програмістповідомляв системі та оператору, яку роботу він хоче виконати наобчислювальної машини. Сукупність декількох завдань, як правило у виглядіколоди перфокарт, отримала назву пакета завдань. p>
Третій період (1965 - 1980) p>
Наступний важливий період розвитку обчислювальних машин відноситься до 1965-1980років. У цей час у технічній базі відбувся перехід від окремихнапівпровідникових елементів типу транзисторів до інтегральних мікросхем,що дало набагато більші можливості новому, третьому поколіннюкомп'ютерів.
Для цього періоду характерно також створення сімейств програмно-суміснихмашин. Першим сімейством програмно-сумісних машин, побудованих наінтегральних мікросхемах, з'явилася серія машин IBM/360. Побудований на початку
60-х років це сімейство значно перевершувало машини другого поколінняза критерієм ціна/вироби водітельность. Незабаром ідея програмно-суміснихмашин стала загальновизнаною.
Програмна сумісність вимагала та сумісність операційних систем.
Такі операційні системи повинні були б працювати і на великих, і на малихобчислювальних системах, з великим і з малою кількістю різноманітноїпериферії, у комерційній галузі і в галузі наукових досліджень.
Операційні системи, побудовані з наміром задовольнити всім цимсуперечливим вимогам, виявилися надзвичайно складними "монстрами". Вонискладалися з багатьох мільйонів асемблерних рядків, написаних тисячамипрограмістів, і містили тисячі помилок, що викликають нескінченний потіквиправлень. У кожній новій версії операційної системи виправлялися одніпомилки і вносилися інші.
Однак, незважаючи на неозорі розміри і безліч проблем, OS/360 іінші їй подібні операційні системи машин третього поколіннядійсно відповідали більшості вимог споживачів. Найважливішимдосягненням ОС цього покоління стала реалізація мультипрограмування.
Мультипрограмування - це спосіб організації обчислювального процесу,при якому на одному процесорі поперемінно виконуються кілька програм.
Поки одна програма виконує операцію введення-виведення, процесор непростоює, як це відбувалося при послідовному виконанні програм
(однопрограмних режим), а виконує іншу програму (багатопрограмнийрежим). При цьому кожна програма завантажується у свою ділянку оперативноїпам'яті, що називається розділом.
Інше нововведення - спулінг (spooling). Спулінг у той час визначавсяяк спосіб організації обчислювального процесу, відповідно до якогозавдання зчитувалися з перфокарт на диск в тому темпі, в якому вониз'являлися в приміщенні обчислювального центру, а потім, коли черговезавдання завершувалося, нове завдання з диска завантажувалося в звільнивсярозділ.
Поряд з мультипрограмній реалізацією систем пакетної обробки з'явивсяновий тип ОС - системи поділу часу. Варіант мультипрограмування,застосовуваний у системах поділу часу, націлений на створення для кожногоокремого користувача ілюзії одноосібного використання обчислювальноїмашини. p>
Четвертий період (1980 - даний час) p>
Наступний період в еволюції операційних систем пов'язаний з появою великихінтегральних схем (ВІС). У ці роки відбулося різке зростання ступеняінтеграції і здешевлення мікросхем. Комп'ютер став доступний окремійлюдині, і наступила ера персональних комп'ютерів. З точки зоруархітектури персональні комп'ютери нічим не відрізнялися від класумінікомп'ютерів типу PDP-11, але от ціна у них істотно відрізнялася. Якщомінікомп'ютер дав можливість мати власну обчислювальну машинувідділу підприємства або університету, то персональний комп'ютер зробив цеможливим для окремої людини.
Комп'ютери стали широко використовуватися неспеціалістами, що зажадалорозробки "дружнього" програмного забезпечення, це поклало крайкастовості програмістів.
На ринку операційних систем домінували дві системи: MS-DOS і UNIX.
Однопрограмних однокористувальницька ОС MS-DOS широко використовувалася длякомп'ютерів, побудованих на базі мікропроцесорів Intel 8088, а потім
80286, 80386 та 80486. Мультипрограмному розрахована на багато користувачів ОС UNIXдомінувала в середовищі "не-інтеловськіх" комп'ютерів, особливо побудованих набазі високопродуктивних RISC-процесорів.
У середині 80-х стали бурхливо розвиватися мережі персональних комп'ютерів,що працюють під управлінням мережних або розподілених ОС.
У мережевих ОС користувачі повинні бути інформовані про наявність іншихкомп'ютерів і повинні робити логічний вхід в інший комп'ютер, щобскористатися його ресурсами, переважно файлами. Кожна машина вмережі виконує свою власну локальну операційну систему,відрізняється від ОС автономного комп'ютера наявністю додаткових коштів,дозволяють комп'ютеру працювати в мережі. Мережева ОС не має фундаментальнихвідмінностей від ОС однопроцесорній комп'ютера. Вона обов'язково міститьпрограмну підтримку для мережевих інтерфейсних пристроїв (драйвер мережевогоадаптера), а також засоби для віддаленого входу в інші комп'ютери мережі ізасоби доступу до віддалених файлів, однак ці доповнення суттєво незмінюють структуру самої операційної системи. p>
Класифікація ОС p>
Операційні системи можуть відрізнятися особливостями реалізації внутрішніхалгоритмів управління основними ресурсами комп'ютера (процесорами,пам'яттю, пристроями), особливостями використаних методівпроектування, типами апаратних платформ, областями використання табагатьма іншими властивостями.
Нижче наведена класифікація ОС по декількох найбільш основних ознаках. P>
Особливості алгоритмів управління ресурсами p>
Від ефективності алгоритмів керування локальними ресурсами комп'ютера підчому залежить ефективність всієї мережевої ОС в цілому. Тому, характеризуючимережну ОС, часто призводять найважливіші особливості реалізації функцій ОС поуправління процесорами, пам'яттю, зовнішніми пристроями автономногокомп'ютера. Так, наприклад, залежно від особливостей використаногоалгоритму керування процесором, операційні системи ділять набагатозадачні і однозадачние, розраховані на багато користувачів і однокористувацький,на системи, що підтримують багатонитковою обробку і не підтримують її,на багатопроцесорні і однопроцесорні системи.
Підтримка багатозадачності. По числу одночасно виконуваних завданьопераційні системи можуть бути розділені на два класи: p>
. однозадачние (наприклад, MS-DOS, MSX) і p>
. багатозадачні (OC EC, OS/2, UNIX, Windows 95).
Однозадачние ОС в основному виконують функцію надання користувачувіртуальної машини, роблячи більш простим і зручним процес взаємодіїкористувача з комп'ютером. Однозадачние ОС включають засоби управлінняпериферійними пристроями, засоби керування файлами, засоби спілкування зкористувачем.
Багатозадачні ОС, крім перерахованих вище функцій, керують поділомспільно використовуваних ресурсів, таких як процесор, оперативна пам'ять,файли і зовнішні пристрої.
Підтримка розрахованого на багато режиму. За кількістю одночасно працюючихкористувачів ОС поділяються на: p>
. однокористувацький (MS-DOS, Windows 3.x, ранні версії OS/2); p>
. багатокористувацькі (UNIX, Windows NT).
Головною відмінністю багатокористувацьких систем від одного користувачає наявність засобів захисту інформації кожного користувача віднесанкціонованого доступу інших користувачів. Слід зазначити, що невсяка багатозадачна система є багато користувачів, і не всякаоднокористувальницька ОС є однозадачной.
Витісняюча і невитесняющая багатозадачність. Найважливішим розділяються ресурсомє процесорний час. Спосіб розподілу процесорного часуміж декількома одночасно існуючими в системі процесами (чинитками) багато в чому визначає специфіку ОС. Серед безлічі існуючихваріантів реалізації багатозадачності можна виділити дві групи алгоритмів: p>
. невитесняющая багатозадачність (NetWare, Windows 3.x); p>
. витісняє багатозадачність (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.
Багатопроцесорні ОС можуть класифікуватися за способом організаціїобчислювального процесу в системі з багатопроцесорної архітектурою:асиметричні ОС і симетричні ОС. Асиметрична ОС цілком виконуєтьсятільки на одному з процесорів системи, розподіляючи прикладні завдання поіншим процесорам. Симетрична ОС повністю децентралізована івикористовує весь пул процесорів, поділяючи їх між системними і прикладнимизавданнями.
Вище були розглянуті характеристики ОС, пов'язані з управлінням тількиодним типом ресурсів - процесором. Важливе вплив на вигляд операційноїсистеми в цілому, на можливості її використання в тій чи іншій областінадають особливості та інших підсистем управління локальними ресурсами --підсистем управління пам'яттю, файлами, пристроями вводу-виводу.
Специфіка ОС виявляється і в тому, яким чином вона реалізує мережевіфункції: розпізнавання і перенаправлення в мережу запитів до віддаленихресурсів, передача повідомлень по мережі, виконання віддалених запитів. Приреалізації мережевих функцій виникає комплекс завдань, пов'язаних зрозподіленим характером зберігання і обробки даних у мережі: веденнядовідкової інформації про всіх доступних в мережі ресурсах і серверах,адресація взаємодіючих процесів, забезпечення прозорості доступу,тиражування даних, узгодження копій, підтримка безпеки даних. p>
Особливості апаратних платформ p>
На властивості операційної системи безпосередній вплив маютьапаратні засоби, на які вона орієнтована. За типом апаратурирозрізняють операційні системи персональних комп'ютерів, міні-комп'ютерів,мейнфреймів, кластерів і мереж ЕОМ. Серед перерахованих типів комп'ютерівможуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні. Убудь-якому випадку специфіка апаратних засобів, як правило, відбивається наспецифіці операційних систем.
Очевидно, що ОС великої машини є більш складною і функціональної,ніж операційна система персонального комп'ютера. Так в ОС великих машин функції зпланування потоку виконуваних завдань, очевидно, реалізуються шляхомвикористання складних пріоритетних дисциплін і вимагають більшоїобчислювальної потужності, ніж в ОС персональних комп'ютерів. Аналогічнойде справа і з іншими функціями.
Мережева ОС має у своєму складі засоби передачі повідомлень міжкомп'ютерами по лініях зв'язку, які абсолютно не потрібні в автономній ОС.
На основі цих повідомлень мережева ОС підтримує розподіл ресурсівкомп'ютера між віддаленими користувачами, підключеними до мережі. Дляпідтримки функцій передачі повідомлень мережеві ОС містять спеціальніпрограмні компоненти, що реалізують популярні комунікаційні протоколи,такі як IP, IPX, Ethernet та інші.
Багатопроцесорні системи вимагають від операційної системи особливоїорганізації, за допомогою якої сама операційна система, а такожпідтримувані нею програми могли б виконуватися паралельно окремимипроцесорами системи. Паралельна робота окремих частин ОС створюєдодаткові проблеми для розробників ОС, тому що в цьому випадку набагатоскладніше забезпечити узгоджений доступ окремих процесів до загальнихсистемних таблиць, виключити ефект перегонів і інші небажанінаслідки асинхронного виконання робіт.
Інші вимоги пред'являються до операційних систем кластерів. Кластер
- Слабко пов'язана сукупність декількох обчислювальних систем, що працюютьспільно для виконання спільних програм, і представляє користувачамєдиною системою. Поряд із спеціальною апаратурою для функціонуваннякластерних систем необхідна і програмна підтримка з бокуопераційної системи, яка зводиться в основному до синхронізації доступу доресурсів, що розділяються, виявлення відмов і динамічної реконфігураціїсистеми. Однією з перших розробок у галузі кластерних технологій булирішення компанії Digital Equipment на базі комп'ютерів VAX. Нещодавно цієїкомпанією укладено угоду з корпорацією Microsoft про розробкукластерної технології, що використовує Windows NT. Кілька компанійпропонують кластери на основі UNIX-машин.
Поряд з ОС, орієнтованими на зовсім певний тип апаратноїплатформи, існують операційні системи, спеціально розроблені такимчином, щоб вони могли бути легко перенесені з комп'ютера одного типу накомп'ютер іншого типу, так звані мобільні ОС. Найбільш яскравимприкладом такої ОС є популярна система UNIX. У цих системахапаратно-залежні місця ретельно локалізовані, так що при перенесеннісистеми на нову платформу переписуються тільки вони. Засобом,що полегшує перенесення іншої частини ОС, є написання її на машинно -незалежному мовою, наприклад, на С, який і був розроблений дляпрограмування операційних систем. p>
Особливості областей використання p>
багатозадачні ОС поділяються на три типи відповідно довикористаними при їх розробці критеріями ефективності: p>
. системи пакетної обробки (наприклад, OC EC), p>
. системи поділу часу (UNIX, VMS), p>
. системи реального часу (QNX, RT/11).
Системи пакетної обробки призначалися для вирішення завдань в основномуобчислювального характеру, що не вимагають швидкого отримання результатів.
Головною метою і критерієм ефективності систем пакетної обробки ємаксимальна пропускна здатність, тобто рішення максимального числазавдань в одиницю часу. Для досягнення цієї мети в системах пакетноїобробки використовуються наступна схема функціонування: на початку роботиформується пакет завдань, кожне завдання містить вимогу до системнихресурсів; з цього пакета завдань формується мультипрограмному суміш, тоє безліч одночасно виконуваних завдань. Для одночасноговиконання вибираються завдання, що пред'являють відрізняються вимоги доресурсів, так, щоб забезпечувалась збалансована завантажити всіпристроїв обчислювальної машини; так, наприклад, в мультипрограмній сумішібажано одночасна присутність обчислювальних завдань і завдань зінтенсивним введенням-виводом. Таким чином, вибір нового завдання з пакетазавдань залежить від внутрішньої ситуації, що складається в системі, тобтовибирається "вигідне" завдання. Отже, у таких ОС неможливогарантувати виконання того чи іншого завдання протягом певногоперіоду часу. У системах пакетної обробки перемикання процесора звиконання одного завдання на виконання іншої відбувається тільки у випадку,якщо активна завдання сама відмовляється від процесора, наприклад, черезнеобхідність виконати операцію вводу-виводу. Тому одне завдання моженадовго зайняти процесор, що робить неможливим виконання інтерактивнихзавдань. Таким чином, взаємодія користувача з обчислювальною машиною,на якій установлена система пакетної обробки, зводиться до того, що вінприносить завдання, віддає його диспетчеру-оператору, а в кінці дня післявиконання всього пакета завдань отримує результат. Очевидно, що такийпорядок знижує ефективність роботи користувача.
Системи поділу часу покликані виправити основний недолік системпакетної обробки - ізоляцію користувача-програміста від процесувиконання його завдань. Кожному користувачу системи поділу часунадається термінал, з якого він може вести діалог зі своєюпрограмою. Так як в системах розділення часу кожній задачі виділяєтьсятільки квант процесорного часу, ні одна задача не займає процесорнадовго, і час відповіді виявляється прийнятним. Якщо квант обранийдосить невеликим, то у всіх користувачів, що одночасно працюють наодній і тій же машині, складається враження, що кожен з ниходноосібно використовує машину. Ясно, що системи поділу часу володіютьменшою пропускною здатністю, ніж системи пакетної обробки, тому що навиконання приймається кожна запущена користувачем завдання, а не та,яка "вигідна" системі, і, крім того, є накладні витратиобчислювальної потужності на більш часте переключення процесора з задачі назавдання. Критерієм ефективності систем розділення часу є немаксимальна пропускна здатність, а зручність і ефективність роботикористувача.
Системи реального часу застосовуються для керування різнимитехнічними об'єктами, такими, наприклад, як верстат, супутник, науковаекспериментальна установка або технологічними процесами, такими, якгальванічна лінія, доменний процес і т.п. У всіх цих випадкахіснує гранично припустимий час, протягом якого має бутивиконана та чи інша програма, що керує об'єктом, у противному випадкуможе статися аварія: супутник вийде з зони видимості, експериментальнідані, що надходять з датчиків, будуть втрачені, товщина гальванічногопокриття не буде відповідати нормі. Таким чином, критеріємефективності для систем реального часу є їхня здатністьвитримувати заздалегідь задані інтервали часу між запуском програми іодержанням результату (керуючого впливу). Цей час називаєтьсячасом реакції системи, а відповідне властивість системи --реактивністю. Для цих систем мультипрограмному суміш являє собоюфіксований набір заздалегідь розроблених програм, а вибір програми навиконання здійснюється виходячи з поточного стану об'єкта або ввідповідно до розкладу планових робіт.
Деякі операційні системи можуть поєднувати в собі властивості системрізних типів, наприклад, частина задач може виконуватися в режимі пакетноїобробки, а частина - у режимі реального часу або в режимі поділучасу. У таких випадках режим пакетної обробки часто називають фоновимрежимом. p>
Особливості методів побудови p>
При описі операційної системи часто вказуються особливості їїструктурної організації та основні концепції, покладені в її основу.
До таких базових концепцій відносяться: p>
. Способи побудови ядра системи - монолітне ядро або мікроядерної підхід. Більшість ОС використовує монолітне ядро, що компонується як одна програма, що працює в привілейованому режимі і що використовує швидкі переходи з однієї процедури на іншу, що не вимагають перемикання з привілейованого режиму в призначений для користувача і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також в привілейованому режимі і виконує тільки мінімум функцій з управління апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють в режимі користувача. При такій побудові ОС працює повільніше, тому що часто виконуються переходи між привілейованим режимом і призначеним для користувача, зате система виходить більш гнучкою - її функції можна нарощувати, модифікувати чи звужувати, додаючи, модифікуючи або виключаючи сервери режиму користувача. P>
Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси. p>
. Побудова ОС на базі об'єктно-орієнтованого підходу дає можливість використовувати всі його переваги, які добре зарекомендували себе на рівні додатків, всередині операційної системи, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі наявних за допомогою механізму успадкування, хорошу захист даних за рахунок їх інкапсуляції у внутрішні структури об'єкта, що робить дані недоступними для несанкціонованого використання ззовні, структурізованность системи, що складається з набору добре певних об'єктів. p>
. Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати програми, розроблені для декількох ОС. P>
Багато сучасні операційні системи підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS/2 або хоча б деякого підмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільш просто реалізується в ОС на базі мікроядра, над якими працюють різні сервери, частина яких реалізують прикладну середу тієї чи іншої операційної системи. P>
. Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів в мережевих середовищах. У розподіленої ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорній комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитковою обробки, що дозволяє распараллелівать обчислення в рамках одного завдання і виконувати це завдання відразу на декількох комп'ютерах мережі, а також наявність інших розподілених служб. p>
Мережеві операційні системи p>
Структура мережної операційної системи p>
Мережева операційна система складає основу будь-якої обчислювальної мережі.
Кожен комп'ютер в мережі в значній мірі автономний, тому підмережевою операційною системою в широкому сенсі розуміється сукупністьопераційних систем окремих комп'ютерів, що взаємодіють з метою обмінуповідомленнями і розподілу ресурсів за єдиними правилами - протоколами. У вузькомурозумінні мережева ОС - це операційна система окремого комп'ютера,що забезпечує йому можливість працювати в мережі. p>
p>
Рис. 1.1. Структура мережної ОС
У мережевій операційній системі окремої машини можна виділити кількачастин (малюнок 1.1): p>
. Засоби керування локальними ресурсами комп'ютера: функції розподілу оперативної пам'яті між процесами, планування та диспетчеризації процесів, управління процесорами в мультипроцесорних машинах, управління периферійними пристроями та інші функції управління ресурсами локальних ОС. P>
. Засоби надання власних ресурсів і послуг у спільне користування - серверна частина ОС (сервер). Ці кошти забезпечують, наприклад, блокування файлів і записів, що необхідно для їх спільного використання; ведення довідників імен мережевих ресурсів; обробку запитів віддаленого доступу до власної файлової системи і бази даних; управління чергами запитів віддалених користувачів до своїх периферійних пристроїв. P>
. Засоби запиту доступу до віддалених ресурсів і послуг і їх використання - клієнтська частина ОС (редиректор). Ця частина виконує розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів від додатків і користувачів, при цьому запит поступає від програми в локальній формі, а передається в мережу в іншій формі, яка відповідає вимогам сервера. Клієнтська частина також здійснює прийом відповідей від серверів і перетворення їх у локальний формат, так що для виконання програми локальних і віддалених запитів невиразно. P>
. Комунікаційні засоби ОС, за допомогою яких відбувається обмін повідомленнями в мережі. Ця частина забезпечує адресацію і буферизацію повідомлень, вибір маршруту передачі повідомлення по мережі, надійність передачі і т.п., тобто є засобом транспортування повідомлень. P>
В залежності від функцій, покладених на конкретний комп'ютер, в йогоопераційній системі може бути відсутня або клієнтська, або серверначастини.
На рисунку 1.2 показано взаємодія мережевих компонентів. Тут комп'ютер
1 виконує роль "чистого" клієнта, а комп'ютер 2 - роль "чистого" сервера,відповідно на першій машині відсутній серверна частина, а на другому --клієнтська. На малюнку показаний окремо компонент клієнтської частини --редиректор. Саме редиректор перехоплює всі запити, що надходять віддодатків, і аналізує їх. Якщо виданий запит до даного ресурсукомп'ютера, то він переадресовується відповідної підсистеми локальної
ОС, якщо ж це запит до віддаленого ресурсу, то він переправляється в мережу.
При цьому клієнтська частина перетворить запит з локальної форми в мережевійформат і передає його транспортної підсистемі, яка відповідає за доставкуповідомлень вказаною сервера. Серверна частина операційної системикомп'ютера 2 приймає запит, перетворює його і передає для виконанийиясвоєї локальної ОС. Після того, як результат отримано, сервер звертається дотранспортній підсистемі і направляє відповідь клієнту, який видав запит.
Клієнтська частина перетворює результат у відповідний формат і адресуєйого тому додатку, яка видала запит. p>
p>
Рис. 1.2. взаємодія компонентів операційної системи при взаємодії комп'ютерів
На практиці склалося декілька підходів до побудови мережевих операційнихсистем (малюнок 1.3).
Перші мережеві ОС представляли собою сукупність існуючої локальної ОСі надбудований над нею мережевої оболонки. При цьому в локальну ОСвбудовувався мінімум мережевих функцій, необхідних для роботи мережноїоболонки, яка виконувала основні мережеві функції. Прикладом такогопідходу є використання на кожній машині мережі операційної системи
MS DOS (у якої починаючи з її третьої версії з'явилися такі вбудованіфункції, як блокування файлів і записів, необхідні для спільногодоступу до файлів). Принцип побудови мережевих ОС у вигляді мережевої оболонкинад локальної ОС використовується і в сучасних ОС, таких, наприклад, як
LANtastic або Personal Ware. P>
p>
Рис. 1.3. Варіанти побудови мережевих ОС
Однак більш ефективним є шлях розробки операційнихсистем, спочатку призначених для роботи в мережі. Мережеві функції у ОСтакого типу глибоко вбудовані в основні модулі системи, що забезпечує їхлогічну стрункість, простоту експлуатації та модифікації, а також високупродуктивність. Прикладом такої ОС є система Windows NT фірми
Microsoft, яка за рахунок убудованість мережевих засобів забезпечує більшвисокі показники продуктивності і захищеності інформації зпорівняно з мережевою ОС LAN Manager тієї ж фірми (спільна розробка з
IBM), що є надбудовою над локальною операційною системою OS/2. P>
Однорангові мережні ОС і ОС з виділеними серверами p>
Залежно від того, як розподілені функції між комп'ютерами мережі,мережні операційні системи, а отже, і мережі поділяються на двакласу: однорангові і двухранговие (малюнок 1.4). Останні частіше називаютьмережами з виділеними серверами. p>
p>
(а) p>
p>
(б) p>
Рис. 1.4. (а) - Peer-мережа, (б) - Двухранговая мережа
Якщо комп'ютер надає свої ресурси іншим користувачам мережі, то вінвідіграє роль сервера. При цьому комп'ютер, який звертається до ресурсів іншогомашини, є клієнтом. Як вже було сказано, комп'ютер, що працює вмережі, може виконувати функції або клієнта, або сервера, або поєднуватиобидві ці функції.
Якщо виконання будь-яких серверних функцій є основним призначеннямкомп'ютера (наприклад, надання фото в загальне користування всіміншим користувачам мережі або організація спільного використанняфаксу, або надання всім користувачам мережі можливості запуску наданому комп'ютері своїх додатків), то такий комп'ютер називаєтьсявиділеним сервером. Залежно від того, який ресурс сервера єрозділяються, він називається файл-сервером, факс-сервером,