Еволюція мережевих операційних систем

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство загальної та професійної освіти Російської Федерації
Томський Університет Систем Управління та
Радіоелектроніки
(ТУСУР)
Кафедра Промислової Електроніки (Пр.Е.)
Звіт
з виконання творчого завдання з дисципліни
"Операційні Системи"
"Еволюція мережевих операційних систем"
Виконав:
студент
________.
Прийняв:
викладач каф.Пр.Е.
__________.

Зміст
1.Вступ
2.Еволюція ОС
Перший період (1945 -1955)
Другий період (1955 - 1965)
Третій період (1965 - 1980)
Четвертий період (1980 - теперішній час)
3.Классификация ОС
Особливості алгоритмів керування ресурсами
Особливості апаратних платформ областей використання
Особливості методів побудови
4.Сетевие операційні системи
Структура мережевої операційної системи
Однорангові мережні ОС і ОС з виділеними серверами
ОС для робочих груп і ОС для мереж масштабу підприємства
5. Управління пам'яттю
Типи адрес
Методи розподілу пам'яті без використання дискового простору
Розподіл пам'яті фіксованими розділами
Розподіл пам'яті розділами змінної величини
Переміщувані розділи
Методи розподілу пам'яті з використанням дискового простору
Поняття віртуальної пам'яті
Сторінкове розподіл
Сегментний розподіл
Сторінково-сегментний розподіл
Свопінг
Ієрархія запам'ятовуючих пристроїв. Принцип кешування даних
6.Современние концепції і технології проектування операційних систем
Вимоги, що пред'являються до ОС 90-х років
Розширюваність
Переносимість
Працює
Безпека
7.Семейство операційних систем UNIX
Історія та загальна характеристика сімейства операційних систем UNIX
Управління пам'яттю. Свопінг
8.Сетевие продукти фірми Novell
Історія і версії мережної ОС NetWare
Версії 4.0, 4.01 і 4.02
9.Семейство мережевих ОС компанії Microsoft
Мережеві продукти Microsoft
Історія Windows NT
Версії Windows NT
Windows NT 3.1 і Windows NT 3.5
Windows NT 4.0
Області використання Windows NT
10.Операціонная система OS / 2
Історія розвитку OS / 2 і її місце на ринку
OS / 2 - поступові поліпшення
11.Обзор мережевих операційних систем
1.Вступ
Визначення операційної системи
Операційна система найбільше визначає вигляд всієї обчислювальної системи в цілому. Незважаючи на це, користувачі, активно використовують обчислювальну техніку, часто зазнають труднощів при спробі дати визначення операційної системи. Частково це пов'язано з тим, що ОС виконує дві по суті мало пов'язані функції: забезпечення користувачеві-програмісту зручностей за допомогою надання для нього розширеної машини і підвищення ефективності використання комп'ютера шляхом раціонального управління його ресурсами.
ОС як розширена машина
Використання більшості комп'ютерів на рівні машинної мови важко, особливо це стосується введення-виведення. Наприклад, для організації читання блоку даних з гнучкого диска програміст може використовувати 16 різних команд, кожна з яких потребує 13 параметрів, таких як номер блоку на диску, номер сектора на доріжці і т. п. Коли виконання операції з диском завершується, контролер повертає 23 значення, що відображають наявність і типи помилок, які, очевидно, треба аналізувати. Навіть якщо не входити в курс реальних проблем програмування введення-виведення, ясно, що серед програмістів знайшлося б небагато бажаючих безпосередньо займатися програмуванням цих операцій. При роботі з диском програмісту-користувачеві досить представляти його у вигляді деякого набору файлів, кожен з яких має ім'я. Робота з файлом полягає в його відкритті, виконанні читання або запису, а потім у закритті файлу. Питання подібні таким, як варто при запису використовувати удосконалену частотну модуляцію або в якому стані зараз знаходиться
двигун механізму переміщення зчитують головок, не повинні хвилювати користувача. Програма, яка приховує від програміста всі реалії апаратури і надає можливість простого, зручного перегляду зазначених файлів, читання або запису - це, звичайно, операційна система. Точно також, як ОС захищає програмістів від апаратури дискового накопичувача і надає йому простий файловий інтерфейс, операційна система бере на себе всі малоприємні справи, пов'язані з обробкою переривань, управлінням таймерами і оперативною пам'яттю, а також інші низькорівневі проблеми. У кожному випадку та абстрактна, уявна машина, з якої, завдяки операційній системі, тепер може мати справу користувач, набагато простіше і зручніше в обігу, ніж реальна апаратура, що лежить в основі цієї абстрактної машини.
З цієї точки зору функцією ОС є надання користувачу деякої розширеної або віртуальної машини, яку легше програмувати і з якою легше працювати, ніж безпосередньо з апаратурою, що становить реальну машину.
ОС як система управління ресурсами
Ідея про те, що ОС перш за все система, що забезпечує зручний інтерфейс користувачам, відповідає розгляду зверху вниз. Інший погляд, знизу вгору, дає уявлення про ОС як про деяке механізмі, керуючому усіма частинами складної системи. Сучасні обчислювальні системи складаються з процесорів, пам'яті, таймерів, дисків, накопичувачів на магнітних стрічках, мережевих комунікаційної апаратури, принтерів і інших пристроїв. Згідно з другим підходом функцією ОС є розподіл процесорів, пам'яті, пристроїв і даних між процесами, що конкурують за ці ресурси. ОС повинна управляти всіма ресурсами обчислювальної машини таким чином, щоб забезпечити максимальну ефективність її функціонування. Критерієм ефективності може бути, наприклад, пропускна здатність або реактивність системи. Управління ресурсами включає рішення двох загальних, що не залежать від типу ресурсу завдань:
· Планування ресурсу - тобто визначення, кому, коли, а для подільних ресурсів і в якій кількості, необхідно виділити даний ресурс;
· Відстеження стану ресурсу - тобто підтримка оперативної інформації про те, зайнятий або не зайнятий ресурс, а для подільних ресурсів - яка кількість ресурсу вже розподілена, а яке вільно.
Для рішення цих загальних задач керування ресурсами різні ОС використовують різні алгоритми, що в кінцевому рахунку і визначає їх структуру в цілому, включаючи характеристики продуктивності, область застосування і навіть користувальницький інтерфейс. Так, наприклад, алгоритм управління процесором в значній мірі визначає, чи є ОС системою поділу часу, системою пакетної обробки або системою реального часу.


2.Еволюція ОС
Перший період (1945 -1955)
Відомо, що комп'ютер був винайдений англійським математиком Чарльзом Бебіджем наприкінці вісімнадцятого століття. Його "аналітична машина" так і не змогла но-справжньому заробити, тому що технології того часу не задовольняли вимогам по виготовленню деталей точної механіки, які були необхідні для обчислювальної техніки. Відомо також, що цей комп'ютер не мав операційної системи.
Деякий прогрес у створенні цифрових обчислювальних машин відбувся після другої світової війни. У середині 40-х були створені перші лампові обчислювальні пристрої. У той час одна й та сама група людей брала участь і в проектуванні, і в експлуатації, і в програмуванні обчислювальної машини. Це була радше науково-дослідна робота в області обчислювальної техніки, а не використання комп'ютерів в якості інструменту вирішення будь-яких практичних завдань з інших прикладних областей. Програмування здійснювалося виключно на машинній мові. Про операційних системах не було й мови, всі завдання організації обчислювального процесу вирішувалися вручну кожним програмістом з пульта керування. Не було ніякого іншого системного програмного забезпечення, крім бібліотек математичних і службових підпрограм.
Другий період (1955 - 1965)
З середини 50-х років почався новий період у розвитку обчислювальної техніки, пов'язаний з появою нової технічної бази - напівпровідникових елементів. Комп'ютери другого покоління стали більш надійними, тепер вони змогли безупинно працювати настільки довго, щоб на них можна було покласти виконання дійсно практично важливих задач. Саме в цей період відбувся поділ персоналу на програмістів і операторів, експлуатаційників і розробників обчислювальних машин.
У ці роки з'явилися перші алгоритмічні мови, а отже і перші системні програми - компілятори. Вартість процесорного часу зросла, що вимагало зменшення непродуктивних витрат часу між запусками програм. З'явилися перші системи пакетної обробки, які просто автоматизували запуск однієї програм за іншою і тим самим збільшували коефіцієнт завантаження процесора. Системи пакетної обробки з'явилися прообразом сучасних операційних систем, вони стали першими системними програмами, призначеними для керування обчислювальним процесом. У ході реалізації систем пакетної обробки був розроблений формалізований мова управління завданнями, за допомогою якого програміст повідомляв системі й операторові, яку роботу він хоче виконати на обчислювальній машині. Сукупність декількох завдань, як правило у вигляді колоди перфокарт, отримала назву пакета завдань.
Третій період (1965 - 1980)
Наступний важливий період розвитку обчислювальних машин відноситься до 1965-1980 років. У цей час у технічній базі відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем, що дало набагато більші можливості новому, третьому поколінню комп'ютерів.
Для цього періоду характерно також створення сімейств програмно-сумісних машин. Першим сімейством програмно-сумісних машин, побудованих на інтегральних мікросхемах, з'явилася серія машин IBM/360. Побудоване на початку 60-х років це сімейство значно перевершувало машини другого покоління за критерієм ціна / продуктивність. Незабаром ідея програмно-сумісних машин стала загальновизнаною.
Програмна сумісність вимагала і сумісності операційних систем. Такі операційні системи повинні були б працювати і на великих, і на малих обчислювальних системах, з великим і з малою кількістю різноманітної периферії, у комерційній області й в області наукових досліджень. Операційні системи, побудовані з наміром задовольнити всім цим суперечливим вимогам, виявилися надзвичайно складними "монстрами". Вони складалися з багатьох мільйонів ассемблерних рядків, написаних тисячами програмістів, і містили тисячі помилок, що викликають нескінченний потік виправлень. У кожній новій версії операційної системи виправлялися одні помилки і вносилися інші.
Однак, незважаючи на неозорі розміри і безліч проблем, OS/360 і інші їй подібні операційні системи машин третього покоління дійсно задовольняли більшості вимог споживачів. Найважливішим досягненням ОС даного покоління стала реалізація мультипрограмування. Мультипрограмування - це спосіб організації обчислювального процесу, при якому на одному процесорі поперемінно виконуються кілька програм. Поки одна програма виконує операцію введення-виведення, процесор не простоює, як це відбувалося при послідовному виконанні програм (однопрограмний режим), а виконує іншу програму (багатопрограмний режим). При цьому кожна програма завантажується у свою ділянку оперативної пам'яті, званий розділом.
Інше нововведення - спулінг (spooling). Спулінг в той час визначався як спосіб організації обчислювального процесу, відповідно до якого завдання зчитувалися з перфокарт на диск у тому темпі, в якому вони з'являлися в приміщенні обчислювального центру, а потім, коли чергове завдання завершувалося, нове завдання з диска завантажувалося в звільнився розділ .
Поряд з мультипрограмній реалізацією систем пакетної обробки з'явився новий тип ОС - системи поділу часу. Варіант мультипрограмування, застосовуваний у системах поділу часу, націлений на створення для кожного окремого користувача ілюзії одноосібного використання обчислювальної машини.
Четвертий період (1980 - теперішній час)
Наступний період в еволюції операційних систем пов'язаний з появою великих інтегральних схем (ВІС). У ці роки відбулося різке зростання ступеня інтеграції і здешевлення мікросхем. Комп'ютер став доступний окремій людині, і наступила ера персональних комп'ютерів. З точки зору архітектури персональні комп'ютери нічим не відрізнялися від класу мінікомп'ютерів типу PDP-11, але от ціна у них істотно відрізнялася. Якщо мінікомп'ютер дав можливість мати власну обчислювальну машину відділу підприємства або університету, то персональний комп'ютер зробив це можливим для окремої людини.
Комп'ютери стали широко використовуватися неспеціалістами, що зажадало розробки "дружнього" програмного забезпечення, це поклало край кастовості програмістів.
На ринку операційних систем домінували дві системи: MS-DOS і UNIX. Однопрограмних однокористувальницька ОС MS-DOS широко використовувалася для комп'ютерів, побудованих на базі мікропроцесорів Intel 8088, а потім 80286, 80386 і 80486. Мультипрограмна багатокористувацька ОС UNIX домінувала в середовищі "не-интеловских" комп'ютерів, особливо побудованих на базі високопродуктивних RISC-процесорів.
У середині 80-х стали бурхливо розвиватися мережі персональних комп'ютерів, що працюють під управлінням мережних або розподілених ОС.
У мережевих ОС користувачі повинні бути інформовані про наявність інших комп'ютерів і повинні робити логічний вхід в інший комп'ютер, щоб скористатися його ресурсами, переважно файлами. Кожна машина в мережі виконує свою власну локальну операційну систему, що відрізняється від ОС автономного комп'ютера наявністю додаткових засобів, що дозволяють комп'ютеру працювати в мережі. Мережева ОС не має фундаментальних відмінностей від ОС однопроцесорного комп'ютера. Вона обов'язково містить програмну підтримку для мережевих
інтерфейсних пристроїв (драйвер мережевого адаптера), а також засоби для віддаленого входу в інші комп'ютери мережі та засоби доступу до віддалених файлів, однак ці доповнення істотно не змінюють структуру самої операційної системи.


3.Классификация ОС
Операційні системи можуть відрізнятися особливостями реалізації внутрішніх алгоритмів керування основними ресурсами комп'ютера (процесорами, пам'яттю, пристроями), особливостями використаних методів проектування, типами апаратних платформ, областями використання і багатьма іншими властивостями. Нижче наведено класифікацію ОЗ за кількома найбільш основними ознаками.
Особливості алгоритмів керування ресурсами
Від ефективності алгоритмів керування локальними ресурсами комп'ютера багато в чому залежить ефективність всієї мережевої ОС в цілому. Тому, характеризуючи мережну ОС, часто призводять найважливіші особливості реалізації функцій ОС з управління процесорами, пам'яттю, зовнішніми пристроями автономного комп'ютера. Так, наприклад, в залежності від особливостей використаного алгоритму керування процесором, операційні системи ділять на багатозадачні і однозадачние, розраховані на багато користувачів і однокористувацькі, на системи, що підтримують багатонитковою обробку і не підтримують її, на багатопроцесорні і однопроцесорні системи.
Підтримка багатозадачності. По числу одночасно виконуваних завдань операційні системи можуть бути розділені на два класи:
· Однозадачние (наприклад, MS-DOS, MSX) і
· Багатозадачні (OC EC, 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 і інші.
Багатопроцесорні системи вимагають від операційної системи особливої ​​організації, за допомогою якої сама операційна система, а також підтримувані нею програми могли б виконуватися паралельно окремими процесорами системи. Паралельна робота окремих частин ОС створює додаткові проблеми для розробників ОС, так як в цьому випадку набагато складніше забезпечити узгоджений доступ окремих процесів до загальних системних таблиць, виключити ефект гонок і інші небажані наслідки асинхронного виконання робіт.
Поряд з ОС, орієнтованими на певний тип апаратної платформи, існують операційні системи, спеціально розроблені таким чином, щоб вони могли бути легко перенесені з комп'ютера одного типу на комп'ютер іншого типу, так звані мобільні ОС. Найбільш яскравим прикладом такої ОС є популярна система UNIX. У цих системах апаратно-залежні місця ретельно локалізовані, так що при переносі системи на нову платформу переписуються тільки вони. Засобом, що полегшує перенесення іншої частини ОС, є написання її на машинно-незалежній мові, наприклад, на С, який і був розроблений для програмування операційних систем.

Особливості областей використання
Багатозадачні ОС поділяються на три типи відповідно до використаними при їх розробці критеріями ефективності:
· Системи пакетної обробки (наприклад, OC EC),
· Системи поділу часу (UNIX, VMS),
· Системи реального часу (QNX, RT/11).
Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, які не потребують швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність, тобто рішення максимального числа задач в одиницю часу. Для досягнення цієї мети в системах пакетної обробки використовуються наступна схема функціонування: на початку роботи формується пакет завдань, кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань формується мультипрограмна суміш, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред'являють відрізняються вимоги до ресурсів, так, щоб забезпечувалася збалансована завантаження всіх пристроїв обчислювальної машини; так, наприклад, у мультипрограмній суміші бажано одночасна присутність обчислювальних задач і задач з інтенсивним введенням-виводом. Таким чином, вибір нового завдання з пакета завдань залежить від внутрішньої ситуації, що складається в системі, тобто вибирається "вигідне" завдання. Отже, у таких ОС неможливо гарантувати виконання того чи іншого завдання протягом певного періоду часу. У системах пакетної обробки переключення процесора з виконання одного завдання на виконання іншої відбувається тільки у випадку, якщо активна задача сама відмовляється від процесора, наприклад, через необхідність виконати операцію вводу-виводу. Тому одна задача може надовго зайняти процесор, що робить неможливим виконання інтерактивних завдань. Таким чином, взаємодія користувача з обчислювальною машиною, на якій установлена ​​система пакетної обробки, зводиться до того, що він приносить завдання, віддає його диспетчеру-оператору, а наприкінці дня після виконання всього пакета завдань отримує результат. Очевидно, що такий порядок знижує ефективність роботи користувача.
Системи розділення часу покликані виправити основний недолік систем пакетної обробки - ізоляцію користувача-програміста від процесу виконання його завдань. Кожному користувачу системи поділу часу надається термінал, з якого він може вести діалог зі своєю програмою. Так як в системах поділу часу кожній задачі виділяється тільки квант процесорного часу, жодна задача не займає процесор надовго, і час відповіді виявляється прийнятним. Якщо квант обраний досить невеликим, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожен з них одноосібно використовує машину. Ясно, що системи поділу часу володіють меншою пропускною здатністю, ніж системи пакетної обробки, тому що на виконання приймається кожна запущена користувачем задача, а не та, яка "вигідна" системі, і, крім того, є накладні витрати обчислювальної потужності на більш часте переключення процесора з задачі на задачу. Критерієм ефективності систем поділу часу є не максимальна пропускна здатність, а зручність і ефективність роботи користувача.
Системи реального часу застосовуються для керування різними технічними об'єктами, такими, наприклад, як верстат, супутник, наукова експериментальна установка або технологічними процесами, такими, як гальванічна лінія, доменний процес і т.п. У всіх цих випадках існує гранично припустимий час, протягом якого повинна бути виконана та чи інша програма, що керує об'єктом, у противному випадку може відбутися аварія: супутник вийде з зони видимості, експериментальні дані, що надходять з датчиків, будуть втрачені, товщина гальванічного покриття не буде відповідати нормі. Таким чином, критерієм ефективності для систем реального часу є їхня здатність витримувати заздалегідь задані інтервали часу між запуском програми й одержанням результату керуючого впливу). Цей час називається часом реакції системи, а відповідне властивість системи - реактивністю. Для цих систем мультипрограмна суміш являє собою фіксований набір заздалегідь розроблених програм, а вибір програми на виконання здійснюється виходячи з поточного стану об'єкта або відповідно до розкладу планових робіт.
Деякі операційні системи можуть поєднувати в собі властивості систем різних типів, наприклад, частина задач може виконуватися в режимі пакетної обробки, а частина - у режимі реального часу або в режимі поділу часу. У таких випадках режим пакетної обробки часто називають фоновим режимом.
Особливості методів побудови
При описі операційної системи часто вказуються особливості її структурної організації та основні концепції, покладені в її основу. До таких базових концепціям відносяться:
· Способи побудови ядра системи - монолітне ядро ​​або мікроядерний підхід. Більшість ОС використовує монолітне ядро, яке компонується як одна програма, що працює в привілейованому режимі і використовує швидкі переходи з однієї процедури на іншу, не потребують переключення з привілейованого режиму в призначений для користувача і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також у привілейованому режимі і виконує тільки мінімум функцій з управління апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють в режимі користувача. При такій побудові ОС працює більш повільно, тому що часто виконуються переходи між привілейованим режимом і призначеним для користувача, зате система виходить більш гнучкої - її функції можна нарощувати, модифіковані або звужувати, додаючи, модифікуючи або виключаючи сервери режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси.
· Побудова ОС на базі об'єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, що добре зарекомендували себе на рівні додатків, всередині ОС, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі наявних за допомогою механізму успадкування, гарний захист даних за рахунок їх інкапсуляції у внутрішні структури об'єкта, що робить дані недоступними для несанкціонованого використання ззовні, структурізованность системи, що складається з набору добре визначених об'єктів. Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасні операційні системи підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS / 2 або хоча б деякої підмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільше просто реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частина яких реалізують прикладну середовище тієї або іншої операційної системи.
· Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитковою обробки, що дозволяє распараллелівать обчислення в рамках однієї задачі і виконувати це завдання відразу на декількох комп'ютерах мережі, а також наявність інших розподілених служб.
                                                                    

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

Рис. 4.1. Структура мережевої ОС
У мережній операційній системі окремої машини можна виділити кілька частин (рисунок 4.1):
Засоби управління локальними ресурсами комп'ютера: функції розподілу оперативної пам'яті між процесами, планування та диспетчеризації процесів, управління процесорами в мультипроцесорних машинах, управління периферійними пристроями та інші функції управління ресурсами локальних ОС.
Засоби надання власних ресурсів та послуг у спільне користування - серверна частина ОС (сервер). Ці кошти забезпечують, наприклад, блокування файлів і записів, що необхідно для їх спільного використання; ведення довідників імен мережевих ресурсів; обробку запитів віддаленого доступу до власної файлової системи і бази даних; управління чергами запитів віддалених користувачів до своїх периферійних пристроїв. Засоби запиту доступу до віддалених ресурсів і послуг і їх використання - клієнтська частина ОС (редиректор). Ця частина виконує розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів від додатків і користувачів, при цьому запит поступає від програми в локальній формі, а передається в мережу в іншій формі, що відповідає вимогам сервера. Клієнтська частина також осуествляет прийом відповідей від серверів і перетворення їх у локальний формат, так що для програми виконання локальних і віддалених запитів невиразно. Комунікаційні засоби ОС, за допомогою яких відбувається обмін повідомленнями в мережі. Ця частина забезпечує адресацію і буферизацію повідомлень, вибір маршруту передачі повідомлення по мережі, надійність передачі і т.п., тобто є засобом транспортування повідомлень.
У залежності від функцій, покладених на конкретний комп'ютер, в його операційній системі може бути відсутнім або клієнтська, або серверна частини.
На малюнку 4.2 показано взаємодію мережевих компонентів. Тут комп'ютер 1 виконує роль "чистого" клієнта, а комп'ютер 2 - роль "чистого" сервера, відповідно на першій машині відсутня серверна частина, а на другий - клієнтська. На малюнку окремо показаний компонент клієнтської частини - редиректор. Саме редиректор перехоплює всі запити, постуающіе від додатків, і аналізує їх. Якщо виданий запит до ресурсу даного комп'ютера, то він переадресовується відповідної підсистемі локальної ОС, якщо ж це запит до віддаленого ресурсу, то він переправляється в мережу. При цьому клієнтська частина перетворює запит з локальної форми в мережевий формат і передає його транспортної підсистемі, яка відповідає за доставку сообщенійуказанному сервера. Серверна частина операційної системи комп'ютера 2 приймає запит, перетворює його і передає для виконання своєї локальної ОС. Після того, як результат отриманий, сервер звертається до транспортної підсистемі і направляє відповідь клієнту, який видав запит. Клієнтська частина перетворює результат у відповідний формат і адресує його тому додатком, яке видало запит.


Рис. 4.2. взаємодія компонентів операційної системи при взаємодії комп'ютерів
На практиці склалося кілька підходів до побудови мережевих операційних систем (малюнок 4.3).

Рис. 4.3. Варіанти побудови мережних ОС
Перші мережеві ОС представляли собою сукупність існуючої локальної ОС і надбудованої над нею мережевий оболонки. При цьому в локальну ОС вбудовувався мінімум мережевих функцій, необхідних для роботи мережної оболонки, яка виконувала основні мережеві функції. Прикладом такого підходу є використання на кожній машині мережі операційної системи MS DOS (у якої починаючи з її третьої версії з'явилися такі вбудовані функції, як блокування файлів і записів, необхідні для спільного доступу до файлів). Принцип побудови мережевих ОС як мережевий оболонки над локальної ОС використовується і в сучасних ОС, таких, наприклад, як LANtastic або Personal Ware.
Однак більш ефективним є шлях розробки операційних систем, спочатку призначених для роботи в мережі. Мережеві функції у ОС такого типу глибоко вбудовані в основні модулі системи, що забезпечує їх логічну стрункість, простоту експлуатації та модифікації, а також високу продуктивність. Прикладом такої ОС є система Windows NT фірми Microsoft, яка за рахунок встроенности мережевих засобів забезпечує більш високі показники продуктивності та захищеності інформації в порівнянні з мережевою ОС LAN Manager тієї ж фірми (спільна розробка з IBM), що є надбудовою над локальної операційною системою OS / 2 .

Однорангові мережні ОС і ОС з виділеними серверами
У залежності від того, як розподілені функції між комп'ютерами мережі, мережеві операційні системи, а отже, і мережі діляться на два класи: однорангові і двухранговие (рисунок 4.4). Останні частіше називають мережами з виділеними серверами.

(А)

(Б)
Рис. 4.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.
У однорангових мережах також може виникнути функціональна несиметричність: одні користувачі не бажають розділяти свої ресурси з іншими, і в такому випадку їхні комп'ютери виконують роль клієнта, за іншими комп'ютерами адміністратор закріпив тільки функції щодо організації спільного використання ресурсів, а значить вони є серверами, у третьому випадку, коли локальний користувач не заперечує проти використання його ресурсів і сам не виключає можливості звернення до інших комп'ютерів, ОС, що встановлюється на його комп'ютері, повинна включати і серверну, і клієнтську частини. На відміну від мереж з виділеними серверами, у тимчасових мережах відсутній спеціалізація ОС в залежності від переважної функціональної спрямованості - клієнта чи сервера. Всі варіації реалізуються засобами конфігурації одного і того ж варіанти ОС.
Однорангові мережі простіше в організації та експлуатації, проте вони застосовуються в основному для об'єднання невеликих груп користувачів, що не пред'являють великих вимог до обсягів збереженої інформації, її захищеності від несанкціонованого доступу і до швидкості доступу. При підвищених вимогах до цих характеристик більш придатними є двухранговие мережі, де сервер краще вирішує задачу обслуговування користувачів своїми ресурсами, так як його апаратура і мережна операційна система спеціально спроектовані для цієї мети.

ОС для робочих груп і ОС для мереж масштабу підприємства
Мережеві операційні системи мають різні властивості в залежності від того, призначені вони для мереж масштабу робочої групи (відділу), для мереж масштабу кампусу або для мереж масштабу підприємства.
Мережі відділів - використовуються невеликою групою співробітників, які вирішують спільні завдання. Головною метою мережі відділу є розділення локальних ресурсів, таких як додатки, дані, лазерні принтери та модеми. Мережі відділів звичайно не розділяються на підмережі. Мережі кампусів - з'єднують декілька мереж відділів всередині окремої будівлі або всередині однієї території підприємства. Ці мережі є все ще локальними мережами, хоча і можуть покривати територію в кілька квадратних кілометрів. Сервіси такої мережі включають взаємодію між мережами відділів, доступ до баз даних підприємства, доступ до факс-серверів, високошвидкісних модемів і високошвидкісних принтерів. Мережі підприємства (корпоративні мережі) - об'єднують всі комп'ютери всіх територій окремого підприємства. Вони можуть покривати місто, регіон або навіть континент. У таких мережах користувачам надається доступ до інформації і додатків, що знаходяться в інших робочих групах, інших відділах, підрозділах і штаб-квартирах корпорації.
Наступним кроком в еволюції мереж є об'єднання локальних мереж кількох відділів в єдину мережу будівлі або групи будівель. Такі мережі називають мережами кампусів. Мережі кампусів можуть тягнутися на кілька кілометрів, але при цьому глобальні з'єднання не потрібні.
Операційна система, що працює в мережі кампусу, повинна забезпечувати для співробітників одних відділів доступ до деяких файлів і ресурсів мереж інших відділів. Послуги, що надаються ОС мереж кампусів, не обмежуються простим розділенням файлів і принтерів, а часто надають доступ і до серверів інших типів, наприклад, до факс-серверів і до серверів високошвидкісних модемів. Важливим сервісом, наданих операційними системами даного класу, є доступ до корпоративних баз даних, незалежно від того, розташовуються вони на серверах баз даних або на мінікомп'ютерах.
Саме на рівні мережі кампуса починаються проблеми інтеграції. У загальному випадку, відділи вже вибрали для себе типи комп'ютерів, мережевого обладнання та мережевих операційних систем. Наприклад, інженерний відділ може використовувати операційну систему UNIX та мережеве обладнання Ethernet, відділ продажів може використовувати операційні середовища DOS / Novell і обладнання Token Ring. Дуже часто мережа кампусу з'єднує різнорідні комп'ютерні системи, у той час як мережі відділів використовують однотипні комп'ютери.
Корпоративна мережа з'єднує мережі всіх підрозділів підприємства, в загальному випадку знаходяться на значних відстанях. Корпоративні мережі використовують глобальні зв'язку (WAN links) для з'єднання локальних мереж або окремих комп'ютерів.
Користувачам корпоративних мереж потрібні всі ті додатки і послуги, які є в мережах відділів та кампусів, плюс деякі додаткові додатки і послуги, наприклад, доступ до додатків миникомпьютеров і до глобальних зв'язків. Коли ОС розробляється для локальної мережі або робочої групи, то її головним обов'язком є ​​поділ файлів і інших мережевих ресурсів (зазвичай принтерів) між локально підключеними користувачами. Такий підхід не застосовний для рівня підприємства. Поряд з базовими сервісами, пов'язаними з розділенням файлів і принтерів, мережева ОС, яка розробляється для корпорацій, повинна підтримувати більш широкий набір сервісів, в який зазвичай входять поштова служба, засоби колективної роботи, підтримка віддалених користувачів, факс-сервіс, обробка голосових повідомлень, організація відеоконференцій і ін
Крім того, багато існуючі методи і підходи до вирішення традиційних завдань мереж менших масштабів для корпоративної мережі виявилися непридатними. На перший план вийшли такі задачі і проблеми, які в мережах робочих груп, відділів і навіть кампусів або мали другорядне значення, або взагалі не виявлялися. Наприклад, найпростіша для невеликої мережі завдання ведення облікової інформації про користувачів виросла на складну проблему для мережі масштабу підприємства. А використання глобальних зв'язків вимагає від корпоративних ОС підтримки протоколів, добре працюють на низькошвидкісних лініях, і відмови від деяких традиційно використовуваних протоколів (наприклад, тих, які активно використовують широкомовні повідомлення). Особливе значення набули завдання подолання гетерогенності - в мережі з'явилися численні шлюзи, що забезпечують узгоджену роботу різних ОС і мережевих системних додатків. До ознак корпоративних ОС можуть бути віднесені також такі особливості.
Підтримка програм. У корпоративних мережах виконуються складні додатки, що вимагають для виконання великої обчислювальної потужності. Такі програми поділяються на кілька частин, наприклад, на одному комп'ютері виконується частина програми, пов'язана з виконанням запитів до бази даних, на іншому - запитів до файлового сервісу, а на клієнтських машинах - частина, що реалізує логіку обробки даних програми і організує інтерфейс з користувачем. Обчислювальна частина загальних для корпорації програмних систем може бути дуже об'ємною і важкою для робочих станцій клієнтів, тому додатки будуть виконуватися більш ефективно, якщо їх найбільш складні в обчислювальному відношенні частини перенести на спеціально призначений для цього потужний комп'ютер - сервер додатків. Сервер додатків має базуватися на потужній апаратній платформі мультипроцесорні системи, часто на базі RISC-процесорів, спеціалізовані кластерні архітектури. ОС сервера додатків повинна забезпечувати високу продуктивність обчислень, а значить підтримувати багатонитковою обробку, витісняючу багатозадачність, мультипроцессирования, віртуальну пам'ять і найбільш популярні прикладні середовища (UNIX, Windows, MS-DOS, OS / 2). У цьому відношенні мережну ОС NetWare важко віднести до корпоративних продуктів, тому що в ній відсутні майже всі вимоги, які пред'являються до сервера додатків. У той же час хороша підтримка універсальних додатків в Windows NT власне і дозволяє їй претендувати дова на місце в світі корпоративних продуктів.
Довідкова служба. Корпоративна ОС повинна володіти здатністю зберігати інформацію про всіх користувачів і ресурсах таким чином, щоб забезпечувалося управління нею з однієї центральної точки. Подібно великої організації, корпоративна мережа потребує централізованому зберіганні як можна більш повної довідкової інформації про саму себе (починаючи з даних про користувачів, серверах, робочих станціях і закінчуючи даними про кабельну системі). Природно організувати цю інформацію у вигляді бази даних. Дані з цієї бази можуть бути затребувані багатьма мережевими системними додатками, в першу чергу системами управління та адміністрування. Крім цього, така база корисна при організації електронної пошти, систем колективної роботи, служби безпеки, служби інвентаризації програмного і апаратного забезпечення мережі, та й для практично будь-якого великого бізнес-додатки. В ідеалі мережева довідкова інформація повинна бути реалізована у вигляді єдиної бази даних, а не являти собою набір баз даних, що спеціалізуються на зберіганні інформації того чи іншого виду, як це часто буває в реальних операційних системах. Наприклад, в Windows NT є ​​принаймні п'ять різних типів довідкових баз даних. Головний довідник домену (NT Domain Directory Service) зберігає інформацію про користувачів, яка використовується при організації їх логічного входу в мережу. Дані про тих же користувачів можуть міститися і в іншому довіднику, використовуваному електронною поштою Microsoft Mail. Ще три бази даних підтримують дозвіл низькорівневих адрес: WINS - встановлює відповідність Netbios-імен IP-адресами, довідник DNS - сервер імен домену - виявляється корисним при підключенні NT-мережі до Internet, і нарешті, довідник протоколу DHCP використовується для автоматичного призначення IP-адрес комп'ютерів мережі. Ближче до ідеалу знаходяться довідкові служби, що поставляються фірмою Banyan (продукт Streettalk III) та фірмою Novell (NetWare Directory Services), що пропонують єдиний довідник для всіх мережевих додатків. Наявність єдиної довідкової служби для мережевої операційної системи - один з найважливіших ознак її корпоративності.
Безпека. Особливу важливість для ОС корпоративної мережі набувають питання безпеки даних. З одного боку, у великомасштабній мережі об'єктивно існує більше можливостей для несанкціонованого доступу - через децентралізації даних і великий розподіленості "законних" точок доступу, з-за великого числа користувачів, благонадійність яких важко встановити, а також з-за великого числа можливих точок несанкціонованого підключення до мережі. З іншого боку, корпоративні бізнес-додатки працюють з даними, які мають життєво важливе значення для успішної роботи корпорації в цілому. І для захисту таких даних в корпоративних мережах поряд з різними апаратними засобами використовується весь спектр засобів захисту, що надається операційною системою: виборчі або мандатні права доступу, складні процедури аутентифікації користувачів, програмна шифрація.

5.Управленіе пам'яттю
Пам'ять є найважливішим ресурсом, що вимагають ретельного управління з боку мультипрограмній операційної системи. Розподілу підлягає вся оперативна пам'ять, не зайнята операційною системою. Зазвичай ОС розташовується в самих молодших адресах, проте може займати і найстарші адреси. Функціями ОС по управлінню пам'яттю є: відстеження вільної та використаної пам'яті, виділення пам'яті процесам і звільнення пам'яті при завершенні процесів, витіснення процесів з оперативної пам'яті на диск, коли розміри основної пам'яті не достатні для розміщення в ній всіх процесів, і повернення їх в оперативну пам'ять , коли в ній звільняється місце, а також настроювання адрес програми на конкретну область фізичної пам'яті.
Типи адрес
Для ідентифікації змінних і команд використовуються символьні імена (мітки), віртуальні адреси і фізичні адреси (рисунок 5.1). Символьні імена присвоює користувач при написанні програми на алгоритмічній мові або асемблері. Віртуальні адреси виробляє транслятор, що переводить програму на машинну мову. Так як під час трансляції в загальному випадку не відомо, в яке місце оперативної пам'яті буде завантажена програма, то транслятор присвоює змінним і командам віртуальні (умовні) адреси, зазвичай вважаючи за замовчуванням, що програма буде розміщена, починаючи з нульового адреси. Сукупність віртуальних адрес процесу називається віртуальним адресним простором. Кожен процес має власний віртуальний адресний простір. Максимальний розмір віртуального адресного простору обмежується розрядністю адреси, властиві даній архітектурі комп'ютера, і, як правило, не збігається з обсягом фізичної пам'яті, наявними в комп'ютері.

Рис. 5.1. Типи адрес
Фізичні адреси відповідають номерам комірок оперативної пам'яті, де насправді розташовані або будуть розташовані змінні і команди. Перехід від віртуальних адрес до фізичних може здійснюватися двома способами. У першому випадку заміну віртуальних адрес на фізичні робить спеціальна системна програма - переміщає завантажувач. Переміщає завантажувач на підставі наявних у нього вихідних даних про початкову адресу фізичної пам'яті, в яку належить завантажувати програму, та інформації, наданої транслятором про адресно-залежних константах програми, виконує завантаження програми, поєднуючи її з заміною віртуальних адрес фізичними.
Другий спосіб полягає в тому, що програма завантажується в пам'ять в незміненому вигляді у віртуальних адресах, при цьому операційна система фіксує зсув дійсного розташування програмного коду щодо віртуального адресного простору. Під час виконання програми при кожному зверненні до оперативної пам'яті виконується перетворення ВА у фізичну. Другий спосіб є більш гнучким, він допускає переміщення програми під час її виконання, в той час як переміщає завантажувач жорстко прив'язує програму до спочатку виділеного їй ділянки пам'яті. Разом з тим використання переміщує завантажувача зменшує накладні витрати, так як перетворення кожного віртуального адреси відбувається тільки один раз під час завантаження, а в другому випадку - кожен раз при зверненні за даною адресою.
У деяких випадках (звичайно в спеціалізованих системах), коли заздалегідь точно відомо, в якій області оперативної пам'яті буде виконуватися програма, транслятор видає виконуваний код відразу у фізичних адресах.
Методи розподілу пам'яті без використання дискового простору
Всі методи управління пам'яттю можуть бути розділені на два класи: методи, які використовують переміщення процесів між оперативною пам'яттю і диском, і методи, які не роблять цього (малюнок 5.2). Почнемо з останнього, більш простого класу методів.


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

Рис. 5.3. Розподіл пам'яті фіксованими розділами:
а - із загальною чергою;
б - з окремими чергами
Підсистема керування пам'яттю в цьому випадку виконує наступні задачі: порівнюючи розмір програми, що надійшла на виконання, і вільних розділів, вибирає придатний розділ, здійснює завантаження програми і налаштування адрес.
При очевидній перевазі - простоті реалізації - даний метод має істотний недолік - жорсткість. Так як в кожному розділі може виконуватися тільки одна програма, то рівень мультипрограмування заздалегідь обмежений числом розділів не залежно від того, який розмір мають програми. Навіть якщо програма має невеликий обсяг, вона буде займати весь розділ, що призводить до неефективного використання пам'яті. З іншого боку, навіть якщо обсяг оперативної пам'яті машини дозволяє виконати деяку програму, розбиття пам'яті на розділи не дозволяє зробити цього.
Розподіл пам'яті розділами змінної величини
У цьому випадку пам'ять машини не поділяється заздалегідь на розділи. Спочатку вся пам'ять вільна. Кожній знову надходить задачі виділяється необхідна їй пам'ять. Якщо достатній обсяг пам'яті відсутній, то завдання не приймається на виконання і стоїть в черзі. Після завершення завдання пам'ять звільняється, і на це місце може бути завантажена інша задача. Таким чином, в довільний момент часу оперативна пам'ять являє собою випадкову послідовність зайнятих і вільних ділянок (розділів) довільного розміру. На малюнку 2.10 показаний стан пам'яті в різні моменти часу при використанні динамічного розподілу. Так у момент t0 у пам'яті знаходиться тільки ОС, а до моменту t1 пам'ять розділена між 5 завданнями, причому завдання П4, завершуючи, залишає пам'ять. На звільнене після
завдання П4 місце завантажується задача П6, що надійшла в момент t3.

Рис. 5.4. Розподіл пам'яті динамічними розділами
Завданнями операційної системи при реалізації даного методу керування пам'яттю є:
ведення таблиць вільних і зайнятих областей, у яких вказуються початкові адреси і розміри ділянок пам'яті,
при надходженні нової задачі - аналіз запиту, перегляд таблиці вільних областей і вибір розділу, розмір якого достатній для розміщення надійшла завдання,
завантаження завдання у виділений їй розділ і коректування таблиць вільних і зайнятих областей, після завершення завдання коректування таблиць вільних і зайнятих областей.
Програмний код не переміщається під час виконання, тобто може бути проведена одноразова настроювання адрес за допомогою використання переміщує завантажувача.
Вибір розділу для знову надійшла завдання може здійснюватися за різними правилами, таким, наприклад, як "перший-ліпший розділ достатнього розміру", або "розділ, що має найменший достатній розмір", або "розділ, що має найбільший достатній розмір". Всі ці правила мають свої переваги і недоліки.
У порівнянні з методом розподілу пам'яті фіксованими розділами даний метод має набагато більшу гнучкість, але йому властивий дуже серйозний недолік - фрагментація пам'яті. Фрагментація - це наявність великого числа несуміжних ділянок вільної пам'яті дуже маленького розміру (фрагментів). Настільки маленького, що жодна з знову надходять програм не може поміститися в жодній з ділянок, хоча сумарний обсяг фрагментів може скласти значну величину, що набагато перевищує необхідний обсяг пам'яті.
Переміщувані розділи
Одним з методів боротьби з фрагментацією є переміщення всіх зайнятих ділянок у бік старших або у бік молодших адрес, так, щоб вся вільна пам'ять утворювала єдину вільну область (рисунок 5.5). На додаток до функцій, які виконує ОС при розподілі пам'яті змінними розділами, в даному випадку вона повинна ще час від часу копіювати вміст розділів з одного місця пам'яті в інше, коректуючи таблиці вільних і зайнятих областей. Ця процедура називається "стисненням". Стиснення може виконуватися або при кожному завершенні задачі, або тільки тоді, коли для знову надійшла завдання немає вільного розділу достатнього розміру. У першому випадку потрібно менше обчислювальної роботи при коректуванні таблиць, а в другому - рідше виконується процедура стискування. Так як програми переміщаються по оперативної пам'яті в ході свого виконання, то перетворення адрес з віртуальної форми у фізичну повинно виконуватися динамічним способом.

Рис. 5.5. Розподіл пам'яті переміщуваними розділами
Хоча процедура стиску і приводить до більш ефективного використання пам'яті, вона може вимагати значного часу, що часто переважує переваги даного методу.

Методи розподілу пам'яті з використанням дискового простору
Поняття віртуальної пам'яті
Вже досить давно користувачі зіткнулися з проблемою розміщення в пам'яті програм, розмір яких перевищував наявну вільну пам'ять. Рішенням було розбиття програми на частині, звані оверлеями. 0-ой оверлей починав виконуватися першим. Коли він закінчував своє виконання, він викликав інший оверлей. Всі оверлеї зберігалися на диску і переміщувались між пам'яттю і диском засобами операційної системи. Однак розбивка програми на частини і планування їх завантаження в оперативну пам'ять повинен був здійснювати програміст.
Розвиток методів організації обчислювального процесу в цьому напрямку привело до
появи методу, відомого під назвою віртуальна пам'ять. Віртуальним називається ресурс, який користувачеві або користувача програмі представляється володіє властивостями, якими він у дійсності не володіє. Так, наприклад, користувачу може бути надана віртуальна оперативна пам'ять, розмір якої перевершує всю наявну в системі реальну оперативну пам'ять. Користувач пише програми так, як ніби в його розпорядженні є однорідна оперативна пам'ять великого обсягу, але в дійсності всі дані, використовувані програмою, зберігаються на одному або декількох різнорідних ЗП, звичайно на дисках, і при необхідності частинами відображаються в реальну пам'ять.
Таким чином, віртуальна пам'ять - це сукупність програмно-апаратних засобів, що дозволяють користувачам писати програми, розмір яких перевершує наявну операвівную пам'ять; для цього віртуальна пам'ять вирішує наступні завдання:
· Розміщує дані в запам'ятовуючих пристроях різного типу, наприклад, частина програми в оперативній пам'яті, а частина на диску;
· Переміщує по мірі необхідності дані між пристроями, що запам'ятовують різного типу, наприклад, довантажує потрібну частину програми з диска в оперативну пам'ять;
· Перетворює віртуальні адреси у фізичні.
Всі ці дії виконуються автоматично, без участі програміста, тобто механізм віртуальної пам'яті є прозорим по відношенню до користувача.
Найбільш поширеними реалізаціями віртуальної пам'яті є сторінкове, сегментний і сторінково-сегментний розподіл пам'яті, а також свопінг.
Сторінкове розподіл
На малюнку 5.6 показана схема сторінкового розподілу пам'яті. Віртуальний адресний простір кожного процесу поділяється на частини однакового, фіксованого для даної системи розміру, звані віртуальними сторінками. У загальному випадку розмір віртуального адресного простору не є кратним розміру сторінки, тому остання сторінка кожного процесу доповнюється фіктивною областю. Вся оперативна пам'ять машини також ділиться на частини такого ж розміру, називані фізичними сторінками (чи блоками).
Розмір сторінки звичайно вибирається рівним ступеня двійки: 512, 1024 і т.д., це дозволяє спростити механізм перетворення адрес.
При завантаженні процесу частина його віртуальних сторінок поміщається в оперативну пам'ять, а інші - на диск. Суміжні віртуальні сторінки не обов'язково розташовуються в суміжних фізичних сторінках. При завантаженні операційна система створює для кожного процесу інформаційну структуру - таблицю сторінок, в якій встановлюється відповідність між номерами віртуальних і фізичних сторінок для сторінок, завантажених в оперативну пам'ять, або робиться відмітка про те, що віртуальна сторінка вивантажена на диск. Крім того, в таблиці сторінок міститься керуюча інформація, така як ознака модифікації сторінки, ознака невигружаемості (вивантаження деяких сторінок може бути заборонене), ознака звертання до сторінки (використовується для підрахунку числа звернень за певний період часу) та інші дані, формовані і використовувані механізмом віртуальної пам'яті.

Рис. 5.6. Сторінкове розподіл пам'яті
При активізації чергового процесу в спеціальний регістр процесора завантажується адреса таблиці сторінок даного процесу.
При кожному зверненні до пам'яті відбувається зчитування з таблиці сторінок інформації про віртуальну сторінці, до якої відбулося звертання. Якщо дана віртуальна сторінка знаходиться в оперативній пам'яті, то виконується перетворення ВА у фізичну. Якщо ж потрібна віртуальна сторінка в даний момент вивантажена на диск, то відбувається так зване сторінкове переривання. Процес, що переводиться в стан очікування, і активізується інший процес з черги готових. Паралельно програма обробки сторінкового переривання знаходить на диску необхідну віртуальну сторінку і намагається завантажити її в оперативну пам'ять. Якщо в пам'яті є вільна фізична сторінка, то завантаження виконується негайно, якщо ж вільних сторінок немає, то вирішується питання, яку сторінку слід вивантажити з оперативної пам'яті.
У даній ситуації може бути використано багато різних критеріїв вибору, найбільш популярні з них наступні:
· Найдовше не використовувалася сторінка,
· Перша-ліпша сторінка,
· Сторінка, до якої останнім часом було найменше звертань.
У деяких системах використовується поняття робочого безлічі сторінок. Робоче безліч визначається для кожного процесу і являє собою перелік найбільш часто використовуваних сторінок, які повинні постійно перебувати в оперативній пам'яті і тому не підлягають вивантаженні.
Після того, як обрана сторінка, яка має залишити оперативну пам'ять, аналізується її ознака модифікації (з таблиці сторінок). Якщо виштовхується сторінка з моменту завантаження була модифікована, то її нова версія повинна бути переписана на диск. Якщо ні, то вона може бути просто знищена, то є відповідна фізична сторінка оголошується вільною.
Розглянемо механізм перетворення ВА у фізичний при сторінковій організації пам'яті (рисунок 5.7).
Віртуальний адресу при сторінковому розподілі може бути представлений у вигляді пари (p, s), де p - номер віртуальної сторінки процесу (нумерація сторінок починається з 0), а s - зсув у межах віртуальної сторінки. Враховуючи, що розмір сторінки дорівнює 2 в ступені до, зсув s може бути отримано простим відділенням k молодших розрядів у двійковій запису віртуального адреси. Решта старші розряди представляють собою двійковий запис номера сторінки p.

Рис. 5.7. Механізм перетворення віртуальної адреси у фізичний при сторінковій організації пам'яті
При кожному зверненні до оперативної пам'яті апаратними засобами виконуються наступні дії:
1.На підставі початкової адреси таблиці сторінок (вміст регістра адреси таблиці сторінок), номера віртуальної сторінки (старші розряди ВА) і довжини запису в таблиці сторінок (системна константа) визначається адресу потрібного запису в таблиці,
2.З цього запису витягається номер фізичної сторінки,
3.К номером фізичної сторінки приєднується зсув (молодші розряди віртуальної адреси).
Використання в пункті (3) того факту, що розмір сторінки дорівнює ступеню 2, дозволяє застосувати операцію приєднання замість більш тривалої операції додавання, що зменшує час одержання фізичної адреси, а отже підвищує продуктивність комп'ютера.
На продуктивність системи зі сторінкової організацією пам'яті впливають тимчасові витрати, пов'язані з обробкою сторінкових переривань і перетворенням ВА у фізичну. При часто виникаючих сторінкових перериваннях система може витрачати велику частину часу, на свопінг сторінок. Щоб зменшити частоту сторінкових переривань, варто було б збільшувати розмір сторінки. Крім того, збільшення розміру сторінки зменшує розмір таблиці сторінок, а значить зменшує витрати пам'яті. З іншого боку, якщо сторінка велика, значить велика і фіктивна область в останній віртуальній сторінці кожної програми. У середньому на кожній програмі губиться половина обсягу сторінки, що в сумі при великій сторінці може скласти істотну величину. Час перетворення ВА у фізичну у значній мірі визначається часом доступу до таблиці сторінок. У зв'язку з цим таблицю сторінок прагнуть розміщувати в "швидких" ЗП. Це може бути, наприклад, набір спеціальних регістрів чи пам'ять, що використовує для зменшення часу доступу асоціативний пошук і кешування даних.
Сторінкове розподіл пам'яті може бути реалізований в спрощеному варіанті, без вивантаження сторінок на диск. У цьому випадку усі віртуальні сторінки всіх процесів постійно знаходяться в оперативній пам'яті. Такий варіант сторінкової організації хоча і не надає користувачеві віртуальної пам'яті, але майже виключає фрагментацію за рахунок того, що програма може завантажуватися в несуміжні області, а також того, що при завантаженні віртуальних сторінок ніколи не утворюється залишків.
Сегментний розподіл
При сторінковій організації ВАП процесу поділяється механічно на рівні частини. Це не дозволяє диференціювати способи доступу до різних частин програми (сегментами), а ця властивість часто буває дуже корисним. Наприклад, можна заборонити звертатися з операціями запису і читання в кодовий сегмент програми, а для сегмента даних дозволити тільки читання. Крім того, розбивка програми на "осмислені" частини робить принципово можливим поділ одного сегмента декількома процесами. Наприклад, якщо два процеси використовують ту саму математичну підпрограму, то в оперативну пам'ять може бути завантажена тільки одна копія цієї підпрограми.
Розглянемо, яким чином сегментний розподіл пам'яті реалізує ці можливості (рис. 5.8). Віртуальний адресний простір процесу поділяється на сегменти, розмір яких визначається програмістом з урахуванням значення міститься в них. Окремий сегмент може являти собою підпрограму, масив даних і т.п. Іноді сегментація програми виконується по замовчуванню компілятором.
При завантаженні процесу частина сегментів міститься в оперативну пам'ять (при цьому для кожного з цих сегментів ОС підшукує придатний ділянку вільної пам'яті), а частина сегментів розміщається в дискової пам'яті. Сегменти однієї програми можуть займати в ОП несуміжні ділянки. Під час завантаження система створює таблицю сегментів процесу (аналогічну таблиці сторінок), в якій для кожного сегмента вказується початкова фізична адреса сегмента в ОП, розмір сегмента, правила доступу, ознака модифікації, ознака звертання до даного сегмента за останній проміжок часу і деяка інша інформація . Якщо віртуальні адресні простори декількох процесів включають один і той же сегмент, то в таблицях сегментів цих процесів робляться посилання на один і той же ділянку оперативної пам'яті, в який даний сегмент завантажується в єдиному екземплярі.

Рис. 5.8. Розподіл пам'яті сегментами
Система із сегментною організацією функціонує аналогічно системі зі сторінкової організацією: час від часу відбуваються переривання, пов'язані з відсутністю потрібних сегментів у пам'яті, при необхідності звільнення пам'яті деякі сегменти вивантажуються, при кожному зверненні до оперативної пам'яті виконується перетворення ВА у фізичну. Крім того, при зверненні до пам'яті перевіряється, чи дозволений доступ необхідного типу до даного сегменту.
Віртуальний адресу при сегментної організації пам'яті може бути представлений парою (g, s), де g - номер сегмента, а s - зсув у сегменте.Фізіческій адреса виходить шляхом додавання початкової фізичної адреси сегмента, знайденого в таблиці сегментів за номером g, і зміщення s .
Недоліком даного методу розподілу пам'яті є фрагментація на рівні сегментів і більш повільне в порівнянні зі сторінкової організацією перетворення адреси.

Сторінково-сегментний розподіл

Як видно з назви, даний метод являє собою комбінацію сторінкового і сегментного розподілу пам'яті і, внаслідок цього, сполучить у собі достоїнства обох підходів. Віртуальний простір процесу поділяється на сегменти, а кожен сегмент у свою чергу поділяється на віртуальні сторінки, що нумеруються в межах сегмента. Оперативна пам'ять поділяється на фізичні сторінки. Завантаження процесу виконується ОС посторінково, при цьому частина сторінок розміщається в оперативній пам'яті, а частина на диску. Для кожного сегмента створюється своя таблиця сторінок, структура якої цілком збігається зі структурою таблиці сторінок, використовуваної при сторінковому розподілі. Для кожного процесу створюється таблиця сегментів, у якій вказуються адреси таблиць сторінок для всіх сегментів даного процесу. Адреса таблиці сегментів завантажується в спеціальний регістр процесора, коли активізується відповідний процес. На малюнку 2.15 показана схема перетворення ВА у фізичну для даного методу.
Рис. 5.9. Схема перетворення віртуальної адреси у фізичний для сегментно-сторінкової організації пам'яті
Свопінг
Різновидом віртуальної пам'яті є свопінг.
При свопінгу, на відміну від розглянутих раніше методів реалізації віртуальної пам'яті, процес переміщається між пам'яттю і диском цілком, тобто протягом деякого часу процес може повністю відсутні в оперативній пам'яті. Існують різні алгоритми вибору процесів на завантаження і вивантаження, а також різні способи виділення оперативної і дискової пам'яті завантажуваного процесу.
Ієрархія запам'ятовуючих пристроїв. Принцип кешування даних
Пам'ять обчислювальної машини являє собою ієрархію запам'ятовуючих пристроїв (внутрішні регістри процесора, різні типи сверхоперативной і оперативної пам'яті, диски, стрічки), що відрізняються середнім часом доступу і вартістю зберігання даних у розрахунку на один біт.Пользователю хотілося б мати і недорогу і швидку пам'ять. Кеш-пам'ять представляє деякий компромісне вирішення цієї проблеми. Кеш-пам'ять - це спосіб організації спільного функціонування двох типів запам'ятовуючих пристроїв, що відрізняються часом доступу і вартістю зберігання даних, який дозволяє зменшити середній час доступу до даних за рахунок динамічного копіювання в "швидке" ЗУ найбільш часто використовуваної інформації з "повільного" ЗУ.
Кеш-пам'яттю часто називають не тільки спосіб організації роботи двох типів запам'ятовуючих пристроїв, а й один із пристроїв - "швидке" ЗУ. Воно коштує дорожче і, як правило, має порівняно невеликий обсяг. Важливо, що механізм кеш-пам'яті є прозорим для користувача, який не повинен повідомляти жодної інформації про інтенсивність використання даних і не повинен ніяк брати участь у переміщенні даних з ЗУ одного типу в ЗУ іншого типу, все це робиться автоматично системними засобами.
Розглянемо окремий випадок використання кеш-пам'яті для зменшення середнього часу доступу до даних, що зберігаються в оперативній пам'яті. Для цього між процесором і оперативною пам'яттю поміщається швидкий ЗП, зване просто кеш-пам'яттю. У якості такого може бути використана, наприклад, асоціативна пам'ять. Вміст кеш-пам'яті представляє собою сукупність записів про всіх завантажених в неї елементах даних. Кожна запис про елемент даних включає в себе адресу, який цей елемент даних має в оперативній пам'яті, і керуючу інформацію: ознака модифікації й ознака звертання до даних за деякий останній період часу. У системах, оснащених кеш-пам'яттю, кожен запит до оперативної пам'яті виполняетсяв відповідності з наступним алгоритмом:
1.Просматрівается вміст кеш-пам'яті з метою визначення, чи не знаходяться потрібні дані в кеш-пам'яті; кеш-пам'ять не є адресується, тому пошук потрібних даних здійснюється по вмісту - значенню поля "адреса в оперативній пам'яті", взятому із запиту.
2.Якщо дані виявляються в кеш-пам'яті, то вони зчитуються з неї, і результат передається в процесор.
3.Якщо потрібних даних немає, то вони разом зі своєю адресою копіюються з оперативної пам'яті в кеш-пам'ять, і результат виконання запиту передається в процесор. При копіюванні даних може виявитися, що в кеш-пам'яті немає вільного місця, тоді вибираються дані, до яких в останній період було найменше звернень, для витіснення з кеш-пам'яті. Якщо витісняються дані були модифіковані за час знаходження в кеш-пам'яті, то вони переписуються в оперативну пам'ять. Якщо ж ці дані не були модифіковані, то їх місце в кеш-пам'яті оголошується вільним.

6.Современние концепції і технології проектування операційних систем
Вимоги, що пред'являються до ОС 90-х років
Операційна система є серцевиною мережевого програмного забезпечення, вона створює середовище для виконання програм і багато в чому визначає, якими корисними для користувача властивостями ці програми будуть володіти. У зв'язку з цим розглянемо вимоги, яким повинна задовольняти сучасна ОС.
Очевидно, що головною вимогою, що пред'являються до операційної системи, є здатність виконання основних функцій: ефективного управління ресурсами і забезпечення зручного інтерфейсу для користувача і прикладних програм. Сучасна ОС, як правило, повинна реалізовувати мультипрограмній обробку, віртуальну пам'ять, свопінг, підтримувати багатовіконний інтерфейс, а також виконувати багато інших, вкрай необхідні функції. Крім цих функціональних вимог до операційних систем пред'являються не менш важливі ринкові вимоги. До цих вимог належать:
· Розширюваність. Код повинен бути написаний таким чином, щоб можна було легко внести доповнення і зміни, якщо це буде потрібно, і не порушити цілісність системи.
· Переносимість. Код повинен легко переноситися з процесора одного типу на процесор іншого типу і з апаратної платформи (яка включає поряд з типом процесора і спосіб організації всієї апаратури комп'ютера) одного типу на апаратну платформу іншого типу.
· Надійність і відмовостійкість. Система повинна бути захищена як від внутрішніх, так і від зовнішніх помилок, збоїв та відмов. Її дії повинні бути завжди передбачуваними, а додатки не повинні бути в змозі завдавати шкоди ОС.
· Сумісність. ОС повинна мати кошти для виконання прикладних програм, написаних для інших операційних систем. Крім того, користувальницький інтерфейс повинен бути сумісний з існуючими системами і стандартами.
· Безпека. ОС повинна мати засоби захисту ресурсів одних користувачів від інших.
· Продуктивність. Система повинна мати настільки хорошою швидкодією і часом реакції, наскільки це дозволяє апаратна платформа.
Розглянемо більш детально деякі з цих вимог.
Розширюваність
У той час, як апаратна частина комп'ютера застаріває за кілька років, корисна життя операційних систем може вимірюватися десятиліттями. Прикладом може служити ОС UNIX. Тому операційні системи завжди еволюційно змінюються з часом, і ці зміни більш значущі, ніж зміни апаратних засобів. Зміни ОС зазвичай являють собою придбання нею нових властивостей. Наприклад, підтримка нових пристроїв, таких як CD-ROM, можливість зв'язку з мережами нового типу, підтримка багатообіцяючих технологій, таких як графічний інтерфейс користувача або об'єктно-орієнтоване програмне оточення, використання більш ніж одного процесора. Збереження цілісності коду, які б зміни не вносилися в операційну систему, є головною метою розробки.
Розширюваність може досягатися за рахунок модульної структури ОС, при якій програми будуються з набору окремих модулів, взаємодіючих тільки через функціональний інтерфейс. Нові компоненти можуть бути додані в операційну систему модульним шляхом, вони виконують свою роботу, використовуючи інтерфейси, підтримувані існуючими компонентами.
Використання об'єктів для представлення системних ресурсів також покращує розширюваність системи. Об'єкти - це абстрактні типи даних, над якими можна проводити тільки ті дії, які передбачені спеціальним набором об'єктних функцій. Об'єкти дозволяють одноманітно керувати системними ресурсами. Додавання нових об'єктів не руйнує існуючі об'єкти і не вимагає ізмененійсуществующего коду.
Прекрасні можливості для розширення надає підхід до структурування ОС по типі клієнт-сервер з використанням мікроядерної технології. Відповідно до цього підходу ОС будується як сукупність привілейованої керуючої програми і набору непривілейованих послуг-серверів. Основна частина ОС може залишатися незмінною в той час, як можуть бути додані нові сервери або поліпшені старі.
Деякі ОС для поліпшення розширюваності підтримують файли драйвери, які можуть бути додані в систему під час її роботи. Нові файлові системи, пристрої та мережі можуть підтримуватися шляхом написання драйвера пристрою, драйвера файлової системи або транспортного драйвера і завантаження його в систему.
Переносимість
Вимога переносимості коду тісно пов'язане з розширюваністю. Розширюваність дозволяє покращувати операційну систему, в той час як переносимість дає можливість переміщати всю систему на машину, що базується на іншому процесорі або апаратній платформі, роблячи при цьому по можливості невеликі зміни в коді. Хоча ОС часто описуються або як стерпні, або як нестерпні, переносимість - це не бінарне стан. Питання не в тому, чи може бути система перенесена, а в тому, наскільки легко можна це зробити. Написання стерпної ОС аналогічно написання будь-якого стерпного коду - потрібно слідувати деяким правилам.
По-перше, більша частина коду повинна бути написана мовою, який є на всіх машинах, куди ви хочете переносити систему. Зазвичай це означає, що код повинен бути написаний на мові високого рівня, переважно стандартизованому, наприклад, на мові С. Програма, написана на асемблері, не є стерпної, якщо тільки ви не збираєтеся переносити її на машину, яка має командної сумісністю з вашою.
По-друге, слід врахувати, в яке фізичне оточення програма повинна бути перенесена. Різна апаратура потребує різних рішень при створенні ОС. Наприклад, ОС, побудована на 32-бітових адресах, не може бути перенесена на машину з 16-бітових адрес (хіба що з величезними труднощами).
По-третє, важливо мінімізувати або, якщо можливо, виключити ті частини коду, які безпосередньо взаємодіють з апаратними засобами. Залежність від апаратури може мати багато форм. Деякі очевидні форми залежності включають пряме маніпулювання регістрами й іншими апаратними засобами.
По-четверте, якщо апаратно залежний код не може бути повністю виключений, то він повинен бути ізольований у декількох добре локалізуемие модулях. Апаратно-залежний код не повинен бути розподілений по всій системі. Наприклад, можна сховати апаратно-залежну структуру в програмно-задаються дані абстрактного типу. Інші модулі системи будуть працювати з цими даними, а не з апаратурою, використовуючи набір деяких функцій. Коли ОС переноситься, то змінюються тільки ці дані і функції, які ними маніпулюють.
Для легкого перенесення ГР при її розробці повинні бути дотримані такі вимоги:
Стерпний мова високого рівня. Більшість переносимих ОС написано на мові С (стандарт ANSI X3.159-1989). Розробники вибирають З тому, що він стандартизований, і тому, що С-компілятори широко доступні. Асемблер використовується тільки для тих частин системи, які повинні безпосередньо взаємодіяти з апаратурою (наприклад, обробник переривань) або для частин, які потребують максимальної швидкості (наприклад, цілочисельна арифметика підвищеної точності). Однак нестерпний код повинен бути ретельно ізольований всередині тих компонентів, де він іспользуется.Ізоляція процесора. Деякі низькорівневі частини ОС повинні мати доступ до процесорної-залежним структурам даних і регістрів. Проте код, який робить це, повинен бути в невеликих модулях, які можуть бути замінені налогічнимі модулями для інших процесорів. Ізоляція платформи. Залежність від платформи полягає у відмінностях між робочими станціями різних виробників, побудованими на одному і тому ж процесорі (наприклад, MIPS R4000). Повинен бути введений програмний рівень, абстрагується апаратуру (кеші, контролери переривань вводу-виводу і т. п.) разом з шаром низькорівневих програм таким чином, щоб високорівнева код не потребував зміні при переносі з однієї платформи на іншу.
Працює
Одним з аспектів сумісності є здатність ОС виконувати програми, написані для інших ОС чи для більш ранніх версій даної операційної системи, а також для іншої апаратної платформи.
Необхідно розділяти питання двійкової сумісності і сумісності на рівні вихідних текстів програм. Двійкова сумісність досягається в тому випадку, коли можна взяти виконувану програму і запустити її на виконання на інший ОС. Для цього необхідні: сумісність на рівні команд процесора, сумісність на рівні системних викликів і навіть на рівні бібліотечних викликів, якщо вони є динамічно зв'язуваними.
Працює на рівні вихідних текстів вимагає наявності відповідного компілятора у складі програмного забезпечення, а також сумісності на рівні бібліотек і системних викликів. При цьому необхідна перекомпіляція наявних вихідних текстів у новий виконуваний модуль.
Працює на рівні вихідних текстів важлива в основному для розробників додатків, в розпорядженні яких ці вихідні тексти завжди є. Але для кінцевих користувачів практичне значення має тільки двійкова сумісність, тому що тільки в цьому випадку вони можуть використовувати один і той же комерційний продукт, який поставляється у вигляді двійкового виконуваного коду, у різних операційних середовищах і на різних машинах.
Чи володіє нова ОС двійковій сумісністю чи сумісністю вихідних текстів з існуючими системами, залежить від багатьох факторів. Найголовніший з них - архітектура процесора, на якому працює нова ОС. Якщо процесор, на який переноситься ОС, використовує той же набір команд (можливо з деякими доповненнями) і той же діапазон адрес, тоді двійкова сумісність може бути досягнута досить просто.
Набагато складніше досягти двійкової сумісності між процесорами, заснованими на різних архітектурах. Для того, щоб один комп'ютер виконував програми іншого (наприклад, DOS-програму на Mac), цей комп'ютер має працювати з машинними командами, які йому спочатку незрозумілі. Наприклад, процесор типу 680x0 на Mac повинен виконувати двійковий код, призначений для процесора 80x86 в PC. Процесор 80x86 має свої власні дешифратор команд, регістри і внутрішню архітектуру. Процесор 680x0 не розуміє двійковий код 80x86, тому він повинен вибрати кожну команду, декодувати її, щоб визначити, для чого вона призначена, а потім виконати еквівалентну підпрограму, написану для 680x0. Так як до того ж у 680x0 немає в точності таких же регістрів, прапорів і внутрішнього арифметико-логічного пристрою, як в 80x86, він повинен імітувати всі ці елементи з використанням своїх регістрів або пам'яті. І він повинен ретельно відтворювати результати кожної команди, що вимагає спеціально написаних підпрограм для 680x0, які гарантують, що стан імітованому регістрів і прапорів після виконання кожної команди буде в точності таким же, як і на реальному 80x86.
Це проста, але дуже повільна робота, так як мікрокод всередині процесора 80x86 виконується на значно більш швидкодіючому рівні, ніж емулюють його зовнішні команди 680x0. За час виконання однієї команди 80x86 на 680x0, реальний 80x86 може виконати десятки команд. Отже, якщо процесор, що виробляє емуляцію, не настільки швидкий, щоб компенсувати всі втрати при емуляції, то програми, яка крутиться під емуляцією, будуть дуже повільними.
Виходом в таких випадках є використання так званих прикладних середовищ. Враховуючи, що основну частину програми, як правило, становлять виклики бібліотечних функцій, прикладна середу імітує бібліотечні функції цілком, використовуючи заздалегідь написану бібліотеку функцій аналогічного призначення, а інші команди емулює кожну окремо.
Відповідність стандартам POSIX також є засобом забезпечення сумісності програмних і користувацьких інтерфейсів. У другій половині 80-х урядові агентства США почали розробляти POSIX як стандарти й післягарантійне обслуговування при укладанні урядових контрактів в комп'ютерній області. POSIX - це "інтерфейс стерпної ОС, що базується на UNIX". POSIX - збори міжнародних стандартів інтерфейсів ОС в стилі UNIX. Використання стандарту POSIX (IEEE стандарт 1003.1 - 1988) дозволяє створювати програми стилі UNIX, які можуть легко переноситися з однієї системи в іншу.
Безпека
На додаток до стандарту POSIX уряд США також визначило вимоги комп'ютерної безпеки для додатків, що використовуються урядом. Багато хто з цих вимог є бажаними властивостями для будь-якої багатокористувацької системи. Правила безпеки визначають такі властивості, як захист ресурсів одного користувача від інших і встановлення квот по ресурсах для запобігання захоплення одним користувачем усіх системних ресурсів (таких як пам'ять).
Забезпечення захисту інформації від несанкціонованого доступу є обов'язковою функцією мережевих операційних систем. У більшості популярних систем гарантується ступінь безпеки даних, що відповідає рівню С2 у системі стандартів США.
Основи стандартів у галузі безпеки були закладені "Критеріями оцінки надійних комп'ютерних систем". Цей документ, виданий у США в 1983 році національним центром комп'ютерної безпеки (NCSC - National Computer Security Center), часто називають Помаранчевої Книгою.
Відповідно до вимог Помаранчевої книги безпечної вважається така система, яка "за допомогою спеціальних механізмів захисту контролює доступ до інформації таким чином, що тільки мають відповідні повноваження особи чи процеси, що виконуються від їхнього імені, можуть отримати доступ на читання, запис, створення або видалення інформації ".
Ієрархія рівнів безпеки, приведена в Помаранчевій Книзі, позначає нижчий рівень безпеки як D, а вищий - як А.
У клас D попадають системи, оцінка яких виявила їхню невідповідність вимогам всіх інших класів. Основними властивостями, характерними для С-систем, є: наявність підсистеми обліку подій, пов'язаних з безпекою, і виборчий контроль доступа.Уровень З ділиться на 2 підрівня: рівень С1, що забезпечує захист даних від помилок користувачів, але не від дій зловмисників, і більше строгий рівень С2. На рівні С2 повинні бути присутніми кошти секретного входу, що забезпечують ідентифікацію користувачів шляхом введення унікального імені та пароля перед тим, як їм буде дозволений доступ до системи. Виборчий контроль доступу, потрібний на цьому рівні дозволяє власникові ресурсу визначити, хто має доступ до ресурсу і що він може з ним робити. Власник робить це шляхом наданих прав доступу користувача або групи користувачів. Засоби обліку та спостереження (auditing) - забезпечують можливість виявити і зафіксувати важливі події, пов'язані з безпекою, або будь-які спроби створити, одержати доступ чи видалити системні ресурси. Захист пам'яті - полягає в тому, що пам'ять ініціалізується перед тим, як повторно використовується. На цьому рівні система не захищена від помилок користувача, але поведінка його може бути проконтрольовано за записами в журналі, залишеним засобами спостереження і аудітінга.
Системи рівня В засновані на позначених даних і розподілі користувачів по категоріях, тобто реалізують мандатний контроль доступу. Кожному користувачеві привласнюється рейтинг захисту, і він може отримувати доступ до даних тільки відповідно до цього рейтингом. Цей рівень на відміну від рівня С захищає систему від помилкового поводження користувача.
Рівень А є найвищим рівнем безпеки, він вимагає на додаток до усіх вимог рівня В виконання формального, математично обгрунтованого доказу відповідності системи вимогам безпеки.

7.Семейство операційних систем UNIX
Історія та загальна характеристика сімейства операційних систем UNIX
UNIX має довгу й цікаву історію. Розпочавшись як несерйозний і майже "іграшковий" проект молодих дослідників, UNIX став багатомільйонної індустрією, включивши у свою орбіту університети, багатонаціональні корпорації, уряди і міжнародні організації стандартизації.
UNIX зародився в лабораторії Bell Labs фірми AT & T більш 20 років тому. У той час Bell Labs займалася розробкою багатокористувацької системи поділу часу MULTICS (Multiplexed Information and Computing Service) разом з MIT і General Electric, але ця система зазнала невдачі, почасти через занадто амбіційних цілей, які не відповідали рівню комп'ютерів того часу, а почасти й через те, що вона розроблялася на мові PL / 1, а компілятор PL / 1 затримувався і взагалі погано працював після свого запізнілого появи. Тому Bell Labs взагалі відмовилася від участі в проекті MULTICS, що дало можливість одному з її дослідників, Кену Томпсону, зайнятися пошуковою роботою в напрямку поліпшення операційного середовища Bell Labs. Томпсон, а також співробітник Bell Labs Денис Рітчі і деякі інші розробляли нову файлову систему, багато рис якої вели своє походження від MULTICS. Для перевірки нової файлової системи Томпсон написав ядро ​​ОС і деякі програми для комп'ютера GE-645, який працював під управлінням мультипрограмній системи поділу часу GECOS. У Кена Томпсона була написана ним ще за часів роботи над MULTICS гра "Space Travel" - "Космічна подорож". Він запускав її на комп'ютері GE-645, але вона працювала на ньому не дуже добре через невисоку ефективність розділення часу. Крім цього, машинний час GE-645 коштувало дуже дорого. У результаті Томпсон та Рітчі вирішили перенести гру на варту в кутку без діла машину PDP-7 фірми DEC, що має 4096 18-бітних слів, телетайп і хороший графічний дисплей. Але у PDP-7 було неважливе програмне забезпечення, і, закінчивши перенесення гри, Томпсон вирішив реалізувати на PDP-7 ту файлову систему, над який він працював на GE-645. З цієї роботи і виникла перша версія UNIX, хоча вона й не мала в той час ніякого назви. Але вона вже включала характерну для UNIX файлову систему, засновану на індексних дескрипторах inode, мала підсистему керування процесами і пам'яттю, а також дозволяла двом користувачам працювати в режимі поділу часу. Система була написана на асемблері. Ім'я UNIX (Uniplex Information and Computing Services) було дано їй ще одним співробітником Bell Labs, Брайаном Керніганом, що спочатку назвав її UNICS, підкреслюючи її відмінність від розрахованої на багато користувачів MULTICS. Незабаром UNICS почали називати UNIX.
Першими користувачами UNIX'а стали співробітники відділу патентів Bell Labs, що знайшли її зручним середовищем для створення текстів.
Великий вплив на долю UNIX зробив перепис її мовою високого рівня З, розробленого Денисом Рітчі спеціально для цих цілей. Це відбулося в 1973 році, UNIX нараховував до цього часу вже 25 інсталяцій, і в Bell Labs була створена спеціальна група підтримки UNIX.
Широке поширення UNIX одержав з 1974 року, після опису цієї системи Томпсоном і Рітчі в комп'ютерному журналі CACM. UNIX одержав широке поширення в університетах, тому що для них він поставлявся безкоштовно разом з вихідними кодами на С. Широке поширення ефективних C-компіляторів зробило UNIX унікальної для того часу ОС через можливість переносу на різні комп'ютери. Університети внесли значний вклад у поліпшення UNIX і подальшу його популяризацію. Ще одним кроком на шляху одержання визнання UNIX як стандартизованого середовища стала розробка Денисом Рітчі бібліотеки введення-виведення stdio. Завдяки використанню цієї бібліотеки для компілятора З, програми для UNIX стали легко стерпними.
Широке поширення UNIX породило проблему несумісності його численних версій. Очевидно, що для користувача дуже неприємний той факт, що пакет, куплений для однієї версії UNIX, відмовляється працювати на іншій версії UNIX. Періодично робилися і робляться спроби стандартизації UNIX, але вони поки що мали обмежений успіх. Процес зближення різних версій UNIX і їхньої розбіжності носить циклічний характер. Перед лицем нової загрози з боку будь-якої іншої ОС різні виробники UNIX-версій зближають свої продукти, але потім конкурентна боротьба змушує їх робити оригінальні поліпшення і версії знову розходяться. У цьому процесі є і позитивна сторона - поява нових ідей і засобів, що поліпшують як UNIX, так і багато інших операційні системи, що перейняли в нього за довгі роки його існування багато корисного.
Найбільшого поширення набули дві досить несумісні лінії версій UNIX: лінія AT & T - UNIX System V, і лінія університету Berkeley-BSD. Багато фірм на основі цих версій розробили і підтримують свої версії UNIX: SunOS та Solaris фірми Sun Microsystems, UX фірми Hewlett-Packard, XENIX фірми Microsoft, AIX фірми IBM, UnixWare фірми Novell (проданий тепер компанії SCO), і список цей можна ще довго продовжувати.
Найбільший вплив на уніфікацію версій UNIX надали такі стандарти як SVID фірми AT & T, POSIX, створений під егідою IEEE, і XPG4 консорціуму X / Open. У цих стандартах сформульовані вимоги до інтерфейсу між додатками і ОС, що дає можливість додаткам успішно працювати під управлінням різних версій UNIX.
Незалежно від версії, загальними для UNIX рисами є:
· Багатокористувацький режим із засобами захисту даних від несанкціонованого доступу,
· Реалізація мультипрограмній обробки в режимі поділу часу, заснована на використанні алгоритмів витісняючої багатозадачності (divemptive multitasking),
· Використання механізмів віртуальної пам'яті і свопінгу для підвищення рівня мультипрограмування,
· Уніфікація операцій введення-виведення на основі розширеного використання поняття "файл",
· Ієрархічна файлова система, що утворює єдине дерево каталогів незалежно від кількості фізичних пристроїв, використовуваних для розміщення файлів,
· Переносимість системи за рахунок написання її основної частини мовою C, різноманітні засоби взаємодії процесів, в тому числі і через мережу,
· Кешування диска для зменшення середнього часу доступу до файлів.
Управління пам'яттю. Свопінг
У UNIX System V Release 4 реалізована сегментно-сторінкова модель пам'яті в її традиційному вигляді. Поряд з механізмом керування сторінками використовується і механізм свопінгу, коли на диск виштовхуються всі сторінки будь-якого процесу. Свопінг застосовується в "передаварійних" ситуаціях, коли розмір вільної оперативної пам'яті зменшується до деякого заданого порогу, так що робота всієї системи дуже ускладнюється.
Є такі типи віртуальних сегментів:
Текст (text) - містить коди команд виконуваного модуля процесу. Він звичайно позначається "тільки для читання", так щоб ні сам процес, ні інші процеси не могли змінити його кодову частину. Текстовий сегмент може розділятися багатьма процесами, наприклад, всіма користувачами, що працюють з одним редактором.
Дані (data) - містить дані, що використовуються та модифікуються процесом під час виконання. До сегмента даних звичайно дозволяється мати доступ для читання і запису. На відміну від текстового сегмента, сегмент даних ніколи не розділяється іншими процесами.
Стек (stack) - містить стек процесу. Він позначається доступним для читання і запису і, подібно сегменту даних, не може розділятися іншими процесами.
Є ще два типи сегментів:
Колективна пам'ять (shared memory) - область пам'яті, доступна для читання і запису декільком процесам.
Відображений файл (mapped file) - сегменти відображеного файлу використовуються для того, щоб відобразити частини файлів в адресний простір процесу, і використовувати стандартні механізми ОС управління віртуальною пам'яттю для прискорення доступу до файлів.
Кожен сегмент має зв'язок з дисковим простором, на якому зберігаються дані, відображувані в даний сегмент віртуального адресного простору. Це може бути файл чи частина файлу на диску, або ж це може бути область свопінгу, яка файлом не є. Сегмент коду або сегмент ініціалізованих даних зазвичай пов'язаний з файлом, в якому зберігається виконується програма. Під зв'язком з файлом розуміється відображення віртуального сегмента і його сторінок на визначену область диска, з якої завантажуються дані віртуальних сторінок сегмента при їхньому переміщенні в оперативну пам'ять, а також куди містяться дані при витисненні віртуальних сторінок на диск.
Структура фізичної пам'яті
У самих нижніх адресах знаходиться текстовий сегмент ядра, потім розташовується сегмент даних ядра, далі може йти динамічний сегмент даних ядра, в якому відводиться місце для структур ядра, наприклад, для дескрипторів процесів. У решти фізичної пам'яті можуть розташовуватися в загальному випадку кілька областей для зберігання сторінок користувача процесів. Ці області описуються таблицею pageac_table [], кожен елемент якої містить номери початкової і кінцевої сторінки області, покажчики на дескриптори першої та останньої сторінок, розміщених в цій області.
Для кожної фізичної сторінки є дескриптор сторінки - структура page, в якому міститься інформація про те, вільна або зайнята сторінка, завантажена Чи в неї в даний момент віртуальна сторінка, модифіковано чи її вміст, скільки процесів хочуть зберегти цю сторінку в пам'яті й інша інформація. У кожний момент часу дескриптор фізичної сторінки може полягати в одному з наступних списків:
Список хешірованних віртуальних дескрипторів файлу. Кожен відображається або виконуваний файл описується віртуальним дескриптором.
Список вільних сторінок.
Список сторінок, які утворюють кеш сторінок.

8.Сетевие продукти фірми Novell
Історія і версії мережної ОС NetWare
Novell - це найбільша фірма, якій належить, відповідно до різних джерел, від 65% до 75% ринку мережевих операційних систем для локальних обчислювальних мереж. Найбільшу популярність фірма Novell набула завдяки своїм мережевим операційним системам сімейства NetWare. Ці системи реалізовані як системи з виділеними серверами.
Основні зусилля Novell були витрачені на створення високоефективної серверної частини мережевої ОС, яка за рахунок спеціалізації на виконанні функцій файл-сервера забезпечувала б максимально можливу для даного класу комп'ютерів швидкість вилученого доступу до файлів і підвищену безпеку даних. Для серверної частини своїх ОС Novell розробила спеціалізовану операційну систему, оптимізовану на файлові операції і використовує всі можливості, надані процесорами Intel x386 і вище. За високу продуктивність користувачі мереж Novell NetWare розплачуються вартістю - виділений файл-сервер не може використовуватися в якості робочої станції, а його спеціалізована ОС має дуже специфічний API, що вимагає від розробників додаткових серверних модулів особливих знань, спеціального досвіду і значних зусиль.
Для робочих станцій Novell випускає дві власні ОС із вбудованими мережевими функціями: Novell DOS 7 із вхідної в неї мережевий однорангової компонентою Personal Ware, а також ОС UnixWare, що є реалізацією UNIX System V Release 4.2 з вбудованими можливості роботи в мережах NetWare. (Восени цього року права на систему UnixWare продані компанії Santa Cruz Operations.) Для популярних ОС персональних комп'ютерів інших виробників Novell випускає мережеві оболонки з клієнтськими функціями по відношенню до сервера NetWare.
Спочатку операційна система NetWare була розроблена фірмою Novell для мережі Novell S-Net, що має зіркоподібну топологію і патентований сервер з мікропроцесором Motorola MC68000. Коли фірма IBM випустила персональні комп'ютери типу PC XT, Novell вирішила, що NetWare може бути легко перенесена в архітектуру мікропроцесорів сімейства Intel 8088, і тоді вона зможе підтримувати практично всі наявні на ринку мережі персональних комп'ютерів.
Перша версія NetWare була випущена фірмою Novell на початку 1983 року.
У 1985 році з'явилася система Advanced NetWare v1.0, яка розширювала функціональні можливості операційної системи сервера.
Версія 1.2 системи Advanced NetWare, випущена також у 1985 році, стала першою операційною системою для процесора Intel 80286, що працює в захищеному режимі.
Версія 2.0 системи Advanced NetWare, випущена в 1986 році, відрізнялася від попередніх версій більш високою продуктивністю і можливістю об'єднання різнорідних на канальному рівні мереж. Повністю використовуючи можливості захищеного режиму процесора 80286, Advanced NetWare забезпечила таку продуктивність мережі, яка була недоступна операційним системам, що працюють в реальному режимі й обмеженим 640 Кбайтами пам'яті. Версія 2.0 вперше забезпечила можливість підключення до одного сервера до чотирьох мереж з різною топологією, таких як Ethernet, ArcNet і Token Ring.
У 1987 році Novell випустила систему SFT NetWare, у якій були передбачені спеціальні засоби забезпечення надійності системи і розширені можливості керування мережею. Такі засоби, як облік використовуваних ресурсів і захист від несанкціонованого доступу, дозволили адміністраторам мережі визначати, коли і як користувачі здійснюють доступ до інформації і ресурсів мережі. Розробники вперше отримали можливість створювати багатокористувацькі прикладні програми, які можуть виконуватися на сервері як додаткові процесів мережевої операційної системи і використовувати її функціональні можливості.
Операційна система NetWare v2.15 з'явилася на ринку в грудні 1988 року, додавши в NetWare засобу підтримки комп'ютерів сімейства Macintosh. У користувачів Macintosh з'явилася можливість підключати свої комп'ютери як клієнтів серверів NetWare, одержуючи доступ до ресурсів мережі і здійснюючи прозорий пошук і збереження інформації на сервері. При цьому на користувачів Macintosh поширюються всі основні властивості NetWare, включаючи стійкість до збоїв і захист від несанкціонованого доступу.
У вересні 1989 року Novell випустила свою першу версію 32-розрядної операційної системи для серверів з мікропроцесором 80386, що одержала назву NetWare 386 v3.0. Вона володіла значно більш високою продуктивністю в порівнянні з попередніми версіями, удосконаленою системою захисту від несанкціонованого доступу, гнучкістю в застосуванні, а також підтримкою різних мережевих протоколів. Вона відповідала самим передовим вимогам до середовища функціонування розподілених прикладних програм.
У червні 1990 року з'явилася версія NetWare 386 v.3.1, в якій були вдосконалені засоби забезпечення надійності та управління мережею, підвищена продуктивність, поліпшені інструментальні засоби для незалежних розробників.
У 1991 році фірмою Novell операційні системи для процесорів 80286 (SFT, Advanced і ELS NetWare) були замінені на більш могутню і зручну систему NetWare v2.2, функціонально переважаючу попередні версії 2.1x.
Одночасно була випущена система NetWare v3.11, істотно розширила можливості NetWare 386. NetWare v3.11 стала першою мережевою операційною системою, що забезпечує доступ до мережевих ресурсів з робочих станцій DOS, Windows, OS / 2, UNIX і Macintosh.
У 1993 році після тривалих випробувань почалися постачання системи NetWare SFT III v3.11.
NetWare System Fault Tolerance Level III (SFT III) v3.11 - мережева операційна система, розроблена спеціально для використання в системах, що вимагають найвищого рівня надійності. На додаток до засобів підвищення надійності, наявними у складі NetWare v3.11, SFT III забезпечує роботу двох серверів у "дзеркальному" режимі. При цьому один із серверів завжди є активним, а другий знаходиться в гарячому резерві, забезпечуючи в себе такий же стан пам'яті і дисків, як і в основного сервера.
У 1993 році фірма Novell випустила ОС NetWare v4.0, що з'явилася в багатьох відносинах революційно новим продуктом. Ця система була розроблена спеціально для побудови обчислювальних мереж "масштабу підприємства" з декількома файл-серверами, великою кількістю мережевих ресурсів і користувачів. Одним з основних нововведень з'явилася служба каталогів NetWare Directory Services (NDS), що зберігає в розподіленій по декількох серверах базі даних інформацію про всі поділюваних мережевих ресурсах і користувачів, що забезпечило можливість при одному логічному вході в систему отримувати прозорий доступ до всіх ресурсів багатосерверній мережі.
У вересні 1993 року Novell випустила систему NetWare v3.12, що представляє собою удосконалений варіант самої популярної мережевої ОС фірми Novell - NetWare v3.11. У версії NetWare 3.12 були усунені помічені за час експлуатації версії NetWare 3.11 помилки і додані нові засоби: усічена версія електронної пошти Global MHS, засоби підтримки клієнтів Macintosh і клієнтська оболонка для DOS і Windows за технологією VLM, що дозволяє динамічно завантажувати і вивантажувати необхідні для робочої станції мережеві компоненти.
Останньою на сьогодні версією NetWare є орієнтована на корпоративне використання мережева операційна система NetWare v4.1.
Версії 4.0, 4.01 і 4.02
Версії ОС NetWare 4.х істотно відрізняються від версій сімейства 3.х їх очевидною корпоративною спрямованістю. Якщо версії 3.х були розраховані на мережі невеликих і середніх підприємств, то вже перша ОС з нового сімейства - NetWare 4.0 - має багато нових властивостей, спрямованих на забезпечення успішної роботи у великих гетерогенних мережах. Версії 4.01 і 4.02 лише незначно відрізняються від версії 4.0 за рахунок невеликих поліпшень у глобальній службі каталогів, що виявилася у версії 4.0 не занадто зручної для використання, що і привело до досить повільного старту ОС нового покоління. Крім вже зазначеної глобальної служби каталогів, в цих версіях поліпшені:
система управління оперативною пам'яттю - зменшилася фрагментація в процесі динамічної вивантаження і завантаження модулів NLM;
система керування зовнішньою пам'яттю - зменшена фрагментація дисків, а також
з'явилися кошти прозорої компресії дискових розділів і прозорої міграції файлів з диска на стриммер і назад;
система управління мережею;
система безпеки;
транспортна система.
Глобальна служба довідників мережевих ресурсів
Головною відмінністю ОС NetWare v 4.0х від попередніх версій є введення єдиного для всіх файл-серверів мережевого каталогу (довідника мережевих ресурсів) - NetWare Directory Services (NDS), що має ієрархічну деревоподібну структуру і заснованого на міжнародному стандарті X.500. У попередніх версіях NetWare база даних мережевих ресурсів, звана Bindery, була унікальна для кожного файл-сервера. Тому для отримання доступу до потрібних ресурсів користувач повинен був підключатися до надає цей ресурс файл-сервера.
У NetWare v 4.0х всі мережеві ресурси, такі як файли, принтери, прикладні програми і т.д. становлять єдину логічну сутність, яка не залежить від їх фізичного розміщення. Користувачеві достатньо один раз підключитися до мережі, щоб отримати доступ до всіх її ресурсів, якими він має право користуватися. Користувачі та прикладні програми, які звертаються до NDS для отримання доступу до необхідних ресурсів, можуть і не знати, як розподілено ці ресурси з серверів і подсетям (на відміну від попередніх версій, де ці ресурси були жорстко "прив'язані" до серверів). У NetWare 4.02 значно розширена і покращена служба NDS в порівнянні з попередніми версіями NetWare 4.x. Змінено процедуру установки NDS, а для простої або не дуже складної структури опису ресурсів мережі забезпечений автоматичний режим установки.
Управління оперативної і дискової пам'яттю сервера
Нові засоби управління оперативною пам'яттю сервера, використовувані в NetWare 4.0х, значно покращують, в порівнянні з попередніми версіями NetWare, використання оперативної пам'яті сервера. Після вивантаження NLM оперативна пам'ять звільняється більш ефективно, тому багаторазова завантаження і вивантаження NLM в NetWare 4.0х не призводить до накопичення так званого "сміття" в оперативній пам'яті сервера. У NetWare 4.0х забезпечується також захист областей оперативної пам'яті, використовуваної завантажуваними модулями, від спотворення в результаті роботи інших модулів. Таке спотворення може виникнути при використанні некоректно написаних NLM (наприклад, розробляються самим користувачем). Захист оперативної пам'яті сервера дозволяє знизити ймовірність відмов мережі при тестуванні нових NLM.
NetWare 4.0х дозволяє значно економити дисковий простір серверів. Це досягається можливістю автоматичного перенесення рідко використовуваних файлів з дискових накопичувачів на стрічкові та оптичні накопичувачі великої ємності (доступ до файлів при цьому не змінюється). Інша можливість - компресія файлів на дискових накопичувачах, виконуються у фоновому режимі.
У NetWare 3.х інформація записується на диск тільки цілими блоками, мінімальний розмір яких становить 4 К. NetWare 4.0х може розподіляти дисковий простір не тільки цілими блоками, а й подблока розміром 512 байт. Ця функція, звана Disk Suballocation, дозволяє істотно зменшити втрати дискового простору.
NetWare v.4.0х дозволяє підключати накопичувачі великої ємності, такі як CD-ROM, WORM, перезаписувані оптичні диски та інші, безпосередньо до файлової системи NetWare як томів.

9.Семейство мережевих ОС компанії Microsoft
Мережеві продукти Microsoft
У 1984 році Microsoft випустила свій перший мережевий продукт, званий Microsoft Networks, який звичайно неформально називають MS-NET. Деякі концепції, закладені в MS-NET, такі як введення в структуру базових компонент - редиректора і мережевого сервера - успішно перейшли в LAN Manager, а потім і в Windows NT.
Microsoft все ще постачає свою мережну ОС LAN Manager. Велика кількість незалежних постачальників мають ліцензії на цю ОС і підтримують свої власні версії LAN Manager як частину своїх мережних продуктів. У число цих компаній входять такі відомі фірми як AT & T і Hewlett-Packard. LAN Manager вимагає установки на файл-сервері операційної системи OS / 2, робочі станції можуть працювати під DOS, Windows або OS / 2. OS / 2 - це операційна система, що реалізує істинну багатозадачність, що працює в захищеному режимі мікропроцесорів x86 і вище. LAN Manager використовує 32-х бітну версію файлової системи OS / 2, звану HPFS, яка оптимізована для роботи на файл-сервері за рахунок кешування каталогів і даних. LAN Manager - це перша мережна ОС, розроблена для підтримки середовища клієнт-сервер. Ключовими компонентами LAN Manager є редиректор і сервер. Особливо ефективно LAN Manager підтримує архітектуру клієнт-сервер для систем управління базами даних. LAN Manager дозволяє робочим станціям під OS / 2 підтримувати мережний сервіс за технологією "рівний-з-рівним". Це означає, що робоча станція може виконувати функції сервера баз даних, принт-сервера або комунікаційного сервера. Обмеженням є те, що тільки один користувач, крім власника цієї робочої станції, має доступ до такого однорангової сервісу.
Для роботи в невеликій мережі фірма Microsoft пропонує компактну, що не вимагає значних апаратних або програмних витрат операційну систему Windows for Workgroups. Ця операційна система дозволяє організувати мережу по схемі "рівний-з-рівним", при цьому немає необхідності купувати спеціальний комп'ютер для роботи в якості мережного сервера. Ця операційна система особливо підходить для вирішення мережевих завдань в колективах, члени якого раніше широко використовували Windows 3.1. У Windows for Workgroups досягнута висока продуктивність мережної обробки за рахунок того, що всі мережеві драйвери є 32-х розрядними віртуальними драйверами.
З середини 1993 року Microsoft почала випуск нових операційних систем "нової технології" (New Technology - NT) Windows NT.
У вересні 1995 року компанія Microsoft випустила ще одну нову операційну систему Windows 95 (кодова назва Chicago), призначену для заміни Windows 3.1 і Windows for Workgroups 3.11 в настільних комп'ютерах з процесорами Intel x86.
Історія Windows NT
В кінці 88-го року Microsoft доручила Девіду Катлер (David Cutler) очолити новий проект в області програмного забезпечення: створити нову ОС фірми Microsoft для 90-х років. (Девід Катлер - головний консультант фірми DEC, який 17 років пропрацював там, розробляючи ОС і компілятори: VAX / VMS, ОС для MicroVAX I, OS RSX-11M, компілятори VAX PL / 1, VAX C). Він зібрав команду інженерів для розробки ОС нової технології (New Technology - NT).
Спочатку планувалося розробити NT з призначеним для користувача і програмним (API) інтерфейсами в стилі OS / 2, проте OS / 2 погано продавалася, а Windows 3.0 мала великий і постійний успіх на ринку. Побачивши ринкові орієнтири і складності, пов'язані з розвитком і підтримкою двох несумісних систем, Microsoft вирішила змінити свій курс і направити своїх інженерів у бік стратегії єдиної цільної операційної системи. Ця стратегія полягає в тому, щоб розробляти сімейство базуються на Windows операційних систем, які охоплювали б безліч типів комп'ютерів, від самих маленьких ноутбуків до найбільших мультипроцесорних робочих станцій. Windows NT, як було названо наступне покоління Windows-систем, займає найвище місце в сімействі Windows. Вона підтримує графічний інтерфейс (GUI) користувача Windows, а також є першою базується на Windows операційною системою фірми Microsoft, що підтримує Win32 API, 32-х бітний програмний інтерфейс для розробки нових програм. Win32 API робить доступними для додатків поліпшені властивості ОС, такі як багатонитковою процеси, синхронізацію, безпеку, I / O, управління об'єктами.
У липні 1993 року з'явилися перші ОС сімейства NT - Windows NT 3.1 і Windows NT Advanced Server 3.1.
Версії Windows NT
Windows NT 3.1
Операційна система Windows NT з самого початку проектувалася з урахуванням всіх вимог, що пред'являються до сучасних ОС: розширюваності, переносимості, надійності, сумісності, продуктивності. Ці властивості були досягнуті за рахунок застосування передових технологій структурного проектування, таких як клієнт-сервер, мікроядра, об'єкти.
На відміну від Windows, в якій реалізована багатозадачність без витіснення (non-divemptive multitasking), в Windows NT використовується механізм багатозадачності з витісненням (divemptive multitasking).
Windows NT підтримує симетричну багатопроцесорну організацію обчислювального процесу, відповідно до якої ОС може виконуватися на будь-якому вільному процесорі або на всіх процесорах одночасно, розділяючи пам'ять між ними. Враховуючи, що багатозадачність реалізується на рівні ниток, різні частини одного і того ж процесу можуть дійсно виконуватися паралельно. Отже, багатонитковою сервери можуть обслуговувати більше одного клієнта.
Для управління нитками Windows NT Server використовує механізм пріоритетів. У певні моменти проводяться оцінка пріоритетів і перерозподіл ниток по процесорах, в результаті чого послідовні стадії одного потоку програми можуть виконуватися різними процесорами або відкладатися до вивільнення чергового процесора.
Windows NT Server підтримує до 16 паралельних процесорів, що актуально для таких серверів, як Symmetry 750 фірми Sequent з 16 процесорами Intel 486/50 Мгц. Слід, однак, мати на увазі, що реалізація СМП в Windows NT Server націлена на оптимізацію продуктивності і не забезпечує резервування з метою підвищення відмовостійкості. У разі виходу з ладу одного з процесорів система зупиняється.
У Windows NT Server в повній мірі реалізований потенціал масштабованості архітектури СМП. Однопроцесорний систему можна легко розвивати, нарощуючи число процесорів, без заміни версії ОС або додатків.
При управлінні пристроями вводу / виводу Windows NT Server використовує асинхронний підхід. Для завершення процесу і початку виконання нового завдання не потрібно чекати надходження сигналу про закінчення таких операцій, як читання або запис. Кожен процес створюється з використанням однієї нитки, яка служить специфічним відображенням виконання програми процесором. Згодом програма може створювати нові нитки, і Windows NT Server буде розподіляти їх і управляти ними, не привертаючи до цього додатка високого рівня.
Для того, щоб прикладна програма могла використовувати кілька потоків, не потрібно передбачати цього в її алгоритмі. Окремий потік створюється для кожної операції. Наприклад, в одному потоці програма може відтворювати складну графічну форму, а інший використовувати для редагування об'ємного креслення. Кожен з цих потоків (або, з точки зору користувача, операцій) працює на окремому процесорі, не вимагаючи ніяких керуючих втручань з боку додатки. Потоки всередині процесу використовують загальну область пам'яті і, отже, не повинні спеціально обмінюватися даними.
Відповідно до вимоги сумісності, Windows NT забезпечує середовище виконання не тільки для додатків з вихідним програмним інтерфейсом Win32 API. При виконанні на процесорах фірми Intel захищені підсистеми Windows NT забезпечують двійкову сумісність існуючих додатків фірми Microsoft, включаючи MS-DOS, Win16, OS / 2. На MIPS RISC процесорах двійкова сумісність досягається для додатків MS-DOS і 16-бітних Windows-додатків (з використанням емуляції). Windows NT забезпечує також сумісність на рівні початкових текстів для POSIX-додатків, які твердо дотримуються інтерфейсу, визначеного в стандарті IEEE 1003.1.
Крім сумісності програмних інтерфейсів, Windows NT підтримує існуючі файлові системи, включаючи файлову систему MS-DOS (FAT), файлову систему CD-ROM, файлову систему OS / 2 (HPFS) і власну нову файлову систему (NTFS).
На відміну від більшості інших операційних систем, Windows NT спочатку розроблявся з урахуванням можливості роботи в мережі. У результаті цього функції спільного використання файлів, пристроїв і об'єктів вбудовані в інтерфейс з користувачем. Адміністратори можуть централізовано керувати і контролювати роботу мереж у масштабах великих підприємств. Особливо важливо відзначити можливість поширення роботи додатків типу клієнт-сервер на многокомпьютерние системи.
Windows NT 3.5
Версія Windows NT 3.5, як і попередня Windows NT 3.1, розроблена в двох конфігураціях: для робочої станції Windows NT Workstation 3.5 і для сервера - Windows NT Server 3.5. Windows NT 3.5 має численні удосконалення і нововведення в порівнянні з Windows NT 3.1:
Поліпшене автораспознаваніе апаратури, можливість ручного вибору і конфігурування мережевих адаптерів, якщо автоматичне розпізнавання не дає позитивного результату. Вбудована сумісність з NetWare. Можливість виконання ролі шлюзу до мереж NetWare, так що Windows NT-комп'ютери можуть отримувати доступ до файлів, принтерів і серверів додатків NetWare. У Windows NT починаючи з версії 3.5 входить Microsoft Compatible Workstation Service for NetWare, який дозволяє здійснювати доступ до файлів, каталогів і принтерів на сервері Novell NetWare. Транспортний протокол Microsoft NWLink IPX / SPX забезпечує зв'язок між комп'ютером з Windows NT і NetWare файл-сервером і сервером друку. Він підтримує роботу з файлами і з чергами друку на NetWare сервері.
Вбудована підтримка TCP / IP. Нова високопродуктивна Microsoft-реалізація протоколів TCP / IP, яка забезпечує просте, потужне рішення для міжмережевого взаімодейтвія.Microsoft підтримує протокол TCP / IP, починаючи з 1991 року, коли був випущений перший стек для Microsoft LAN Manager 2.1. У Windows NT також є підтримка цього протоколу, починаючи з найпершої версії цієї операційної системи. Крім цього, є базові утиліти, такі як ftp, tftp, telnet, команди r *, arp, route та finger. З виходом версії 3.5 з'явилися нові ключові властивості, які, з одного боку, спростили конфігурування і обслуговування, а з іншого - покращили властивості TCP / IP.
Значні покращення засобів віддаленого доступу RAS, що включають підтримку IPX / SPX і TCP / IP, використання стандартів Point to Point Protocol (PPP) і Serial Line IP (SLIP). Сервер RAS може тепер підтримувати до 256 з'єднань (замість 64 у версії 3.1).
Підтримка довгих імен файлів у файловій системі FAT. Windows NT підтримує роботу з трьома файловими системами: NTFS, FAT і HPFS. Таким чином, якщо до установки Windows NT на комп'ютері були встановлені MS-DOS або OS / 2, то немає ніякої необхідності переформатувати диск. Система перетворює FAT або HPFS в NTFS, зберігши всю інформацію на диску. Зворотне перетворення неможливо. Тут доречно зауважити, що якщо ви хочете встановити NTFS тільки потім, щоб використовувати довгі (до 255 символів) імена файлів, то для цих цілей чудово підійдуть і FAT і HPFS. Якщо для останньої це природна властивість, то можливість використання довгих імен файлів на FAT була введена тільки у версії Windows NT починаючи з 3.5. Можна спокійно називати файли і каталоги іменами, що виходять за межі традиційного для MS-DOS правила "8.3", аніскільки не побоюючись, що ці файли не будуть доступні при роботі в MS-DOS. Для таких файлів і каталогів будуть призначені другі, "короткі" імена.
Повна підтримка зберігання вбудованих об'єктів OLE 2.x і пошуку складових документів. Ці можливості включають скріплення, вбудовування, зв'язування з вбудованими об'єктами, технології "drag-and-drop" і OLE-Automation.
В операційну систему Windows NT 3.5 вбудовані графічні можливості тривимірної графіки OpenGL API. OpenGL - це незалежна від операційної системи промислово-стандартна бібліотека графічних функцій, розроблена фірмою Silicon Graphics для своїх робочих станцій.Технологія OpenGL була ліцензована Microsoft для надання цього потужного 32-розрядного API користувачам Windows NT. Розвинені функції цієї бібліотеки потрібні в тому випадку, коли необхідна візуалізація великих проектів і даних. Типові завдання, що вимагають її використання, - це САПР, системи механічного і промислового дизайну, програми статистичного та наукового аналізу.
Програми, розроблені для MS Windows 3.x і MS-DOS, виконуються більш надійно, тому що кожен додаток тепер працює в своєму адресному просторі.
Доменна організація. У мережах на основі Windows NT Server робочі станції підключаються до виділених серверів. Іменовані зборів серверів можуть бути згруповані в домени. Такий метод організації мережі спрощує централізоване управління мережею і дозволяє використовувати Windows NT Server в якості мережевої операційної системи масштабу підприємства. Якщо адміністратор одного разу завів облікову інформацію про користувача домену, то останній має можливість зареєструватися на будь-якій робочій станції у цьому домені. Для цього достатньо ввести ім'я, ім'я домену і пароль при реєстрації, і Windows NT Workstation пізнає користувача і відтворить його робоче середовище. У серверних мережах, як правило, всі спільно використовувані каталоги розташовуються на виділених серверах, а спільно використовувані принтери підключені до спеціалізованих серверів друку. Однак це жодною мірою не обмежує можливостей користувача з надання ресурсів його робочої станції в спільне використання так, як це зазвичай робиться в однорангових мережах. Windows NT Server надає можливість користувачам різних доменів спільно використовувати ресурси шляхом становлення довірчих відносин між доменами. Якщо домен А і домен Б повністю довіряють один одному, то користувач домену А може зареєструватися в домені Б, а також доступ до ресурсів його сервера. Аналогічно, користувач домену Б може використовувати ресурси будь-якого з серверів домену А.
Клієнтами в мережі з Windows NT Server можуть бути комп'ютери з різними операційними системами. Стандартно підтримуються: MS-DOS, OS / 2, Windows for Workgroups, клони UNIX, Macintosh, Windows NT Workstation. Програмне забезпечення можливих клієнтів включається в стандартну поставку Windows NT Server.
Microsoft є одним з лідерів у встановленні суспільних стандартів на socket-інтерфейси для Windows. Windows Sockets є відкритою специфікацією, визначальною програмний інтерфейс Windows до мережних протоколах. Цей інтерфейс також є частиною Microsoft Windows Open Services Architecture (WOSA). Він вже знайомий мережним програмістам, що працюють під UNIX з розширеннями на базі Windows, і став стандартним методом розробників, що пишуть Windows-додатки для забезпечення віддаленого виклику процедур (RPC) не тільки через TCP / IP, але і через IPX і NetBEUI. У 1993 році Microsoft створив свій Internet FTP сервер, що працює на базі Windows NT Advanced Server.
Взаємодія з UNIX. У Windows NT забезпечується за допомогою підтримки загальних стандартних мережевих протоколів (включаючи TCP / IP), стандартних способів розподіленої обробки, стандартних файлових систем і спільного використання даних, а також завдяки простоті перенесення додатків. Незважаючи на те, що система Windows NT була розроблена для підтримки роботи за схемою клієнт-сервер, для сумісності з UNIX-хостами вбудована емуляція терміналів SNMP. У Windows NT є ​​ряд засобів для інтеграції в системи, що використовують протокол SNMP (Simple Network Management Protocol), що дозволяє виконувати віддалене адміністрування Windows NT з допомогою, наприклад, SUN Net Manager і HP OpenView. Підтримка графічних і текстових терміналів.
У Windows NT входять потужні API гнучкої підтримки середовищ розподілених обчислень:
DCE сумісний RPC (Remote Procedure Call) - критична складова частина, необхідна при побудові розподілених додатків;
Windows Sockets - API, сумісний з сокетами типу Berkeley, популярним в UNIX механізмом розподілених обчислень;
WOSA (Windows Open Services Architecture) - цей набір API дозволяє об'єднувати системи Windows з широким рядом додатків-постачальників даних, що випускаються самими різними виробниками.
Windows NT 4.0
При розробці Windows NT 4.0 Microsoft вирішила пожертвувати стабільністю заради продуктивності. З цією метою були внесені зміни в архітектуру: бібліотеки менеджера вікон і GDI, а також драйвери графічних адаптерів були перенесені з призначеного для користувача режиму в режим ядра. Ця зміна означає деякий відхід від прийнятої в попередніх версіях Windows NT 3.х концепції мікроядра.
Перенесення графічної бібліотеки і драйверів в область ядра підвищує швидкість виконання графічного введення-виведення. Ці зміни особливо позначилися на швидкості виконання додатків Win32, в той час як додатки Windows-16 і DOS-ські графічні додатки працюють приблизно також, як і у версії 3.5.
У той же час описані зміни роблять операційну систему в принципі менш надійною. Дійсно, оскільки програмне забезпечення графічних адаптерів, як правило, розробляється фірмами-виробниками цього обладнання і це програмне забезпечення часто міняється (разом з обладнанням), то від нього важко очікувати тієї надійності, яка потрібно для модулів операційної системи.
Крім архітектурних в Windows NT 4.0 є й інші не менш кардинальні зміни:
Засоби взаємодії з NetWare модифіковані - Gateway і клієнт NCP підтримують тепер NDS.
У стандартну поставку включений Internet Information Server і сервер DNS. DNS взаємодіє з WINS і DHCP-серверами. Ця комбінація реалізує Dynamic DNS, що дозволяє верхні рівні доменного імені і передає ім'я для остаточного дозволу службі WINS.
Підтримка багатопротокольної маршрутізаціі.Сервер може працювати як транслює агент протоколу BOOTP / DHCP, що дозволяє комп'ютеру передавати повідомлення OOTP / DHCP по IP-мережі. Нові адміністративні засоби Windows NT можуть працювати віддалено на клієнтах Windows 95. Крім того, Windows NT Server забезпечує сервіс віддаленого завантаження для клієнтів Windows 95. (Це корисно для бездискових робочих станцій.) Інтерфейс в стилі Windows 95.Подсістема обробки повідомлень Microsoft Windows Messaging Subsystem дозволяє отримувати і відправляти пошту з додатків. У Windows NT 4.0 з'явився емулятор Іntеl'івського процесора для RISC-платформ.
Microsoft додала в Windows NT 4.0 багато технічних засобів, щоб зробити цю операційну систему придатною для використання в якості платформи для Web-сервера.
Області використання Windows NT
Windows NT Workstation, перш за все, може використовуватися як клієнт в мережах Windows NT Server, а також у мережах NetWare, UNIX, Vines. Вона може бути робочою станцією і в однорангових мережах, виконуючи одночасно функції і клієнта, і сервера. Windows NT Workstation може застосовуватися в якості ОС автономного комп'ютера при необхідності забезпечення підвищеної продуктивності, секретності, а також при реалізації складних графічних додатків, наприклад, в системах автоматизованого проектування.
Windows NT Server може бути використаний передусім як сервер в корпоративній мережі. Тут вельми корисною виявляється його можливість виконувати функції контролера доменів, дозволяючи структурувати мережу і спрощувати задачі адміністрування і управління. Він використовується також як файл-сервера, принт-сервера, сервера додатків, сервера вилученого доступу і сервера зв'язку (шлюзу). Крім того, Windows NT Server може бути використаний як платформа для складних мережних додатків, особливо тих, які побудовані з використанням технології клієнт-сервер.
Так, під управлінням Windows NT Server може працювати сервер баз даних Microsoft SQL
Server, а також сервери баз даних інших відомих фірм, такі як Oracle та Sybase, Adabas і InterBase.
На платформі Windows NT Server може бути встановлена ​​нова потужна система адміністрування Microsoft System Management Server, функцією якої є інвентаризація апаратної і програмної конфігурації комп'ютерів мережі, автоматична установка програмних продуктів на робочі станції, видалене управління будь-яким комп'ютером і моніторинг мережі.
Windows NT Server може використовуватися як сервер зв'язку з мейнфреймів. Для цього створено спеціальний продукт Microsoft SNA Server, що дозволяє легко об'єднати в одній мережі IBM PC-сумісні робочі станції і могутні мейнфрейми.
Windows NT Server є платформою для нового продуктивного поштового сервера Microsoft Exchange.
10.Операціонная система OS / 2
Історія розвитку OS / 2 і її місце на ринку
Аналітики, що займаються 32-х бітними операційними системами для персональних комп'ютерів, завжди концентрують свою увагу на битві між Microsoft Windows і IBM OS / 2, припускаючи, що Microsoft має перевагу. Але не всі згодні з такою точкою зору. OS / 2 v.2.0 була першою доступною і працюючою 32-х бітною операційною системою для персональних комп'ютерів. І вона першою почала чергове коло змагань - версія OS / 2 Warp, призначена для клієнтських машин мереж клієнт-сервер і однорангових мереж, з'явилася на ринку раніше Windows 95, позиціонованої аналогічним чином. OS / 2 Warp була також першою системою, що включила набір засобів підтримки Internet, а також коштів об'єктної орієнтації.
OS / 2 - поступові поліпшення
Операційна система OS / 2 починалася як спільна розробка IBM і Microsoft (хоча велику частину роботи повинна була виконати Microsoft). Спочатку вона була задумана як заміна DOS. Вже тоді було ясно, що DOS з її обмеженнями по пам'яті і по можливостях файлової системи не може скористатися обчислювальною потужністю з'являються комп'ютерів. OS / 2 була добре продуманою системою. Вона повинна була підтримувати витісняючу багатозадачність, віртуальну пам'ять, графічний користувальницький інтерфейс, віртуальну машину для виконання DOS-додатків. Фактично вона виходила за межі простої багатозадачності з її концепцією, названої багатонитковою.
Перші версії OS / 2 не зробили значного впливу на ринок. Версія OS / 2 1.0, випущена в 1987 році, містила більшість технічних властивостей, необхідних для багатозадачного ОС. Однак у неї не було менеджера графічного представлення (divsentation manager, PM), а також були відсутні драйвери для багатьох популярних принтерів і інших пристроїв. Версія OS / 2 1.1, що з'явилася в 1989 році, включала рудиментарну версію PM, яка, нарешті, робила можливим використання графічних додатків у декількох вікнах. Однак у цій версії PM не вистачало багатьох властивостей, які притаманні розвиненому графічному інтерфейсу, крім того, по колишньому були відсутні багато драйверів принтерів. Випущена в 1990 році версія 1.2 мала поліпшений PM, хоча він і не слідував загальноприйнятим концепціям графічного інтерфейсу. З'явилися драйвери для більшості принтерів і інших периферійних пристроїв.
Однак дискредитація OS / 2 вже сталася. Версія 1.2 не була істотно краще попередніх версій і все ще пред'являла значні вимоги до апаратури. До цього часу багато користувачів вирішили перейти на нову платформу Windows 3.0 або почекати, поки не з'явиться що-небудь принципово краще. Продажі OS / 2 як і раніше були млявими і ринок не цікавився нею. Це пояснювалося наявністю у OS / 2 ряду істотних недоліків:
Віртуальна машина DOS, яка повинна була б мати здатність виконувати немодифіковані додатки DOS, з самого початку мала технічні вади. Ця віртуальна машина була розроблена на базі віртуальних можливостей процесора i286, який дозволяв виділяти сегмент пам'яті в 640 Кб для окремого DOS-додатки. Проте процесор i286 в цьому віртуальноі режимі працював дуже повільно, тому віртуальна DOS-машина була реалізована на основі реального режиму процесора. При цьому був потрібний перезапуск процесора для перемикання між реальним і захищеним режимами. Хоча ця операція і виконувалася дуже швидко і непомітно для користувача, вона була складною і вносила плутанину. Microsoft і IBM не змогли повною мірою реалізувати концепцію віртуальної обробки в режимі I8086: у цьому режимі DOS-додатки, які безпосередньо читали або писали в апаратні порти, переставали працювати. У зв'язку з цим не могли використовуватися і популярні мережеві операційні системи на базі DOS. Пам'ять в цьому режимі використовувалася нераціонально - якщо користувач конфігурувати OS / 2 з можливістю DOS-сумісності, то 640 КБ пам'яті завжди виділялися для цих цілей і не могли використовуватися для задач OS / 2. Ще одним недоліком була відсутність можливості обміну даними між DOS-і OS/2- додатками. У кожен момент часу могло виконуватися лише одне DOS-додаток, і цей додаток не могло використовувати розширену пам'ять.
У результаті для користувачів OS / 2 багато популярних DOS-додатки виявилися недоступними, а ті, що були доступні, не могли взагалі взаємодіяти з середовищем OS / 2. Час показав, що для користувачів ця обставина виявилася вельми важливою, оскільки багато хто відмовився від покупки OS / 2, залишаючись з перевіреною, хоча і не дуже досконалою DOS.

11.Обзор мережевих операційних систем
Велика розмаїтість типів комп'ютерів, що використовуються в обчислювальних мережах, тягне за собою різноманітність операційних систем: для робочих станцій, для серверів мереж рівня відділу і серверів рівня підприємства в цілому. До них можуть пред'являтися різні вимоги щодо продуктивності і функціональним можливостям, бажано, щоб вони мали властивістю сумісності, яке дозволило б забезпечити спільну роботу різних ОС.
Мережеві ОС можуть бути розділені на дві групи: масштабу відділу і масштабу підприємства. ОС для відділів або робочих груп забезпечують набір мережевих сервісів, включаючи поділ файлів, додатків і принтерів. Вони також повинні забезпечувати властивості відмовостійкості, підтримувати кластерні архітектури. Мережеві ОС відділів звичайно більш прості в установці і управлінні в порівнянні з мережевими ОС підприємства, у них менше функціональних властивостей, вони менше захищають дані і мають слабші можливості по взаємодії з іншими типами мереж, а також гіршу продуктивність.
Мережева операційна система масштабу підприємства перш за все повинна мати основними властивостями будь-яких корпоративних продуктів, у тому числі:
масштабованість, тобто здатністю однаково добре працювати в широкому діапазоні різних кількісних характеристик мережі,
сумісністю з іншими продуктами, тобто здатністю працювати в складному гетерогенному середовищі інтермережі у режимі plug-and-play.
Корпоративна мережева ОС повинна підтримувати більш складні сервіси. Подібно мережевий ОС робочих груп, мережева ОС масштабу підприємства повинна дозволяти користувачам розділяти файли, додатки та принтери, причому робити це для більшої кількості користувачів і об'єму даних і з більш високою продуктивністю. Крім того, мережна ОС масштабу підприємства забезпечує можливість з'єднання різнорідних систем - як робочих станцій, так і серверів. Наприклад, навіть якщо ОС працює на платформі Intel, вона повинна підтримувати робочі станції UNIX, що працюють на RISC-платформах. Аналогічно, серверна ОС, що працює на RISC-комп'ютері, повинна підтримувати DOS, Windows і OS / 2. Мережева ОС масштабу підприємства повинна підтримувати декілька стеків протоколів (таких як TCP / IP, IPX / SPX, NetBIOS, DECne і OSI), забезпечуючи простий доступ до віддалених ресурсів, зручні процедури управління сервісами, включаючи агентів для систем управління мережею.
Важливим елементом мережевої ОС масштабу підприємства є централізована довідкова служба, в якій зберігаються дані про користувачів і поділюваних ресурсах мережі. Така служба, звана також службою каталогів, забезпечує єдиний логічний вхід користувача в мережу і надає йому зручні засоби перегляду всіх доступних йому ресурсів. Адміністратор, при наявності в мережі централізованої довідкової служби, позбавлений необхідності заводити на кожному сервері повторюваний список користувачів, а значить позбавлений від великої кількості рутинної роботи і від потенційних помилок при визначенні складу користувачів і їх прав на кожному сервері.
Важливою властивістю довідкової служби є її масштабованість, що забезпечують розподілене бази даних про користувачів і ресурси.
Такі мережеві ОС, як Banyan Vines, Novell NetWare 4.x, IBM LAN Server, Sun NFS, Microsoft LAN Manager і Windows NT Server, можуть служити в якості операційної системи підприємства, в той час як ОС NetWare 3.x, Personal Ware, Artisoft LANtastic більше підходять для невеликих робочих груп.
Критеріями для вибору ОС масштабу підприємства є такі характеристики:
Органічна підтримка багатосерверній мережі;
Висока ефективність файлових операцій;
Можливість ефективної інтеграції з іншими ОС;
Наявність централізованої масштабованої довідкової служби;
Хороші перспективи розвитку; Ефективна робота віддалених користувачів;
Різноманітні сервіси: файл-сервіс, принт-сервіс, безпека даних і відмовостійкість, архівування даних, служба обміну повідомленнями, різноманітні бази даних та інші; Різноманітні програмно-апаратні хост-платформи: IBM SNA, DEC NSA, UNIX;
Різноманітні транспортні протоколи: TCP / IP, IPX / SPX, NetBIOS, AppleTalk; Підтримка різноманітних операційних систем кінцевих користувачів: DOS, UNIX, OS / 2, Mac; Підтримка мережевого обладнання стандартів Ethernet, Token Ring, FDDI, ARCnet; Наявність популярних прикладних інтерфейсів і механізмів виклику віддалених процедур RPC; Можливість взаємодії з системою контролю і управління мережею, підтримка стандартів управління мережею SNMP.
Звичайно, жодна з існуючих мережевих ОС не відповідає в повному обсязі перерахованим вимогам, тому вибір мережевої ОС, як правило, здійснюється з урахуванням виробничої ситуації і досвіду. У таблиці наведені основні характеристики популярних і доступних в даний час мережних ОС.
Основні характеристики мережевих операційних систем
Novell NetWare 4.1
Спеціалізована операційна система, оптимізована для роботи в якості файлового сервера і принт-сервера
Обмежені кошти для використання в якості сервера додатків: не має коштів віртуальної пам'яті і що витісняє багатозадачності, а підтримка симетричного мультіпроцесcірованія відсутня до самого недавнього часу. Відсутні API основних операційних середовищ, які використовуються для розробки додатків, - UNIX, Windows, OS / 2
Серверні платформи: комп'ютери на основі процесорів Intel, робочі станції RS/6000 компанії IBM під управлінням операційної системи AIX за допомогою продукту NetWare for UNIX Поставляється з оболонкою для клієнтів: DOS, Macintosh, OS / 2, UNIX, Windows (оболонка для Windows NT розробляється компанією Novell в даний час, хоча Microsoft вже реалізувала клієнтську частину NetWare в Windows NT)
Організація однорангових зв'язків можлива за допомогою ОС PersonalWare Має довідкову службу NetWare Directory Services (NDS), що підтримує централізоване управління, розподілену, повністю реплицируемой, автоматично синхронізуються і володіє відмінною масштабованістю
Поставляється із потужною службою обробки повідомлень Message Handling Service (MHS), повністю інтегровану (починаючи з версії 4.1) з довідковою службою
Підтримувані мережні протоколи: TCP / IP, IPX / SPX, NetBIOS, Appletalk Підтримка віддалених користувачів: ISDN, комутовані телефонні лінії, frame relay, X.25 - з допомогою продукту NetWare Connect (поставляється окремо) Безпека: аутентифікація за допомогою відкритих ключів методу шифрування RSA;
Сертифікована за рівнем C2
Хороший сервер комунікацій
Вбудована функція компресії диска
Складне обслуговування
  Banyan VINES 6.0 і ENS (Enterprise Network Services) 6.0
Серверні платформи: ENS for UNIX: працює на RISC-комп'ютерах під управлінням SCO UNIX, HP-UX, Solaris, AIX ENS for NetWare: працює на Intel-платформах під управлінням NetWare 2.x, 3.x, 4.x VINES працює на Intel-платформах.
Клієнтські платформи: DOS, Мacintosh, OS / 2, UNIX, Windows for Workgroups, Windows NT Хороший сервер додатків: підтримуються витісняє багатозадачність, віртуальна пам'ять і симетричне мультипроцессирования у версії VINES і в ENS-версіях для UNIX. Підтримуються прикладні середовища UNIX, OS / 2, Windows. Підтримка однорангових зв'язків - відсутня.
Довідкова служба - Streettalk III, найбільш відпрацьована з наявних на ринку, з централізованим управлінням, повністю інтегрована з іншими мережевими службами, розподілена, реплицируемой і автоматично синхронізуються, відмінно розширювана.
Узгодженість роботи з іншими мережевими ОС: хороша; серверна оболонка працює в середовищах NetWare і UNIX; користувачі NetWare, Windows NT і LAN Server можуть бути об'єктами довідкової служби Streettalk III
Служба повідомлень - Intelligent Messaging, інтегрована з іншими службами.
Підтримувані мережні протоколи: VINES IP, TCP / IP, IPX / SPX, Appletalk
Підтримка віддалених користувачів: ISDN, комутовані телефонні лінії, X.25
Служба безпеки: підтримує електронний підпис (власний алгоритм), виборчі права доступу, шифрацію; не сертифікована
Просте обслуговування
Добре масштабується
Відмінна продуктивність обміну даними між серверами, гірше - при обміні сервер-ПК
Microsoft LAN Manager
широка поширеність
працює під OS / 2 і UNIX
підтримує потужні серверні платформи
один сервер може підтримувати до 2 000 клієнтів
  Microsoft Windows NT Server 3.51 і 4.0
Серверні платформи: комп'ютери на базі процесорів Intel, PowerPC, DEC Alpha, MIPS
Клієнтські платформи: DOS, OS / 2, Windows, Windows for Workgroups, Macintosh
Організація однорангової мережі можлива за допомогою Windows NT Workstation і Windows for Workgroups Windows NT Server являє собою відмінний сервер додатків: він підтримує витісняючу багатозадачність, віртуальну пам'ять і симетричне мультипроцессирования, а також прикладні середовища DOS, Windows, OS / 2, POSIX
Довідкові служби: доменна для управління обліковою інформацією користувачів (Windows NT Domain Directory service), довідкові служби імен WINS і DNS
Хороша підтримка спільної роботи з мережами NetWare: поставляється клієнтська частина (редиректор) для сервера NetWare (версій 3.х і 4.х в режимі емуляції 3.х, довідкова служба NDS підтримується, починаючи з версії 4.0), виконана у вигляді шлюзу в Windows NT Server або як окрема компонента для Windows NT Workstation; недавно Microsoft оголосила про випуск серверної частини NetWare як оболонки для Windows NT Server
Служба обробки повідомлень - Microsoft Mail, заснована на DOS-платформі.
Підтримувані мережні протоколи: TCP / IP, IPX / SPX, NetBEUI, Appletalk
Підтримка віддалених користувачів: ISDN, комутовані телефонні лінії, frame relay, X.25 - за допомогою вбудованої підсистеми Remote Access Server (RAS)
Служба безпеки: потужна, використовує виборчі права доступу і довірчі відносини між доменами; вузли мережі, засновані на Windows NT Server, сертифіковані за рівнем C2
Простота установки і обслуговування
Відмінна масштабованість
IBM LAN Server 4.0
Серверні платформи: операційні системи MVS і VM для мейнфреймів; AS/400 з OS/400, робочі станції RS/6000 з AIX, сервери Intel 486 або Pentium під OS / 2
Поставляється з оболонками для клієнтів: DOS, Macintosh, OS / 2, Windows, Windows NT, Windows for Workgroups
Сервери додатків можуть бути організовані за допомогою LAN Server 4.0 в операційних середовищах MVS, VM, AIX, OS / 2, OS/400. У середовищі OS / 2 підтримуються: витісняє багатозадачність, віртуальна пам'ять і симетричне мультипроцессирования
Організація однорангових зв'язків можлива за допомогою ОС Warp Connect
Довідкова служба - LAN Server Domain, тобто основа на доменному підході
Підтримувані мережні протоколи: TCP / IP, NetBIOS, Appletalk
Безпека - виборчі права доступу, система не сертифікована
Служба обробки повідомлень - відсутня
Висока продуктивність
Недостатня масштабованість
IBM і NCR LAN Manager
LAN Manager for UNIX добре поширена (15% обсягу світових продажів мережевих ОС)
LAN Manager for AIX підтримує RISC комп'ютери System/6000 в якості файлового сервера Працює під UNIX, має всі переваги, пов'язані з використанням цієї ОС.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Творча робота
292кб. | скачати


Схожі роботи:
Основи конфігурування мережевих файлових систем на прикладі NFS
Архітектура операційних систем
Оболонки операційних систем
Огляд операційних систем
Нові можливості операційних систем
Склад операційних систем MS Windows
Принципи побудови інтерфейсів операційних систем
Переваги та недоліки операційних систем Windows
Особливості операційних систем реального часу
© Усі права захищені
написати до нас