Мережеві операційні системи
Віктор Анатолієвич Мельник
Лекція №1
Відпускають нас))
Лекція №2
Тема: початок
Операційна Система – це комплекс системних програмних засобів, який в першу чергу забезпечує ефективну взаємодію користувача або оператора із обчислювальною машиною і, по друге, забезпечує ефективний розподіл та використання системних ресурсів.
Перша обчислювальна машина була створена в 1981р., Charles Babage ще у 19му столітті законцептував таку можливість, але оскільки не було засобів... Перша електронна машина – фон Неймана.
Спочатку не було ОС, це були програми пакетної обробки інформації.
В 50х роках виникло друге покоління комп’ютерів, на напівпровідниках, вдалося зменшити розмір, підвищити швидкодію і вони мали тепер можливість виконувати складніші завдання.
В 70х роках IBM360 – перша ЕОМ, яка мала ос з назвою TSS/360. Займала 8Мбайт.
Ключовою подією цього періоду була реалізація мультипрограмування. До цього часу всі види ОС передбачали, що ОС виконують одну програму в будь-який момент часу. В зв’язку з тим, що ресурси ОС були збільшені, тобто підвищилась продуктивність обробки інформації і збільшився об’єм даних, які треба було в цю машину завантажити. Принцип мультипрограмування передбачає паралельне виконаня декількох програм. Він був реалізований у двох варіантах:
Системи пакетної обробки програм. Це коли оператор був розвантажений від постійного введення одних і тих самих даних. Достатньо треба було ввести інфу і запустити програму монітор, яка по черзі виконувала програму.
За розподілом часу. Кожен із операторів мав ілюзію, що він працює за своєю власною ОС. Ідея полягала в тому, що для кожного терміналу виділяється певний квант часу процесора, наприклад, 5 мс.
Багатотермінальний режим використосувався в системах пакетної обробки. Це були системи віддаленого завантаження завдання. Відстань від терміналу до ОС в таких системах могла бути досить значною, при чому в 60х-80х роках. Фактично ця технологія була праобразом сучасних локальних мереж
З появою мулььтипрограмування апаратні засоби комп’ютера зазнали суттєвих змін. В першу чергу це стосується центрального процесора. В ЦП було введено два режими – режим адміністратора(привілегійований) і режим користувача.
В привілегіованому процесор міг виконувати всі команди, в тому числі такі, які дозволяли виділяти і розприділяти ресурси обчислювальної системи, що не було дозволено в стандартному режимі. В цей самий час ОС позбавила оператора прямої взаємодії з апаратурою обчислювальної системи. Інша проблема – це запис програм і запис пам’яті. В апаратуру ЦП були введені регістри запису пам’яті, які унеможливлювали(запобігали) випадковому або навмисному пошкодженню даних однієї програми іншою(мова йде про програми, які одночасно знаходяться в оперативній пам’яті комп’ютера). В цей же час з’явилися перші системи обробки переривань і власне сигнали переривань були реалізовані процесором. Тоді ж і перші файлові системи з’явилися. Unix – перша багатокористувацька система, DOS – однокористувацька.
Наступним етапом розвитку була поява на початку 80х років персональних комп’ютерів.
2010-03-10
Лекція №2
Продовжуємо, Бодька всеодно спізнився!!! Я тричі переможець! Юхуу! Хай відмазується, не відмажеться)))
Створювалися і перші мережі, ARPANET – вона була праобразом Інтернету. Ця мережа була розділена на дві частини – Intranet & Internet. Вона могла об’єднювати компи з різними типологіями
У 80х роках був прийнятий формат Ethernet, було стандартизовано топологію мереж (у 85му технологія Token Ring, потім FDDI), це дозволило забезпечити сумісність мережевих ОС на нижніх рівнях.
В 90х роках практично всі ОС стали мережеві, такими, які здатні підтримувати роботу різного рівня (клієнтів і серверів). З’явилися спеціалізовані ОС, призначені для виконання телекомунікаційних завдань, наприклад ОС IOS, від фірми Cisco, яка працювала для маршрутизаторів.
Розвиваються ОС, для яких характерна висока масштабованість, підтримка роботи в мережі, розвинуті засоби забезпечення надійності зберігання та пересилання інформації, наявні засоби централізованого адміністрування і керування.
Тема: Операційна система як віртуальна машина
Однією з функцій операціних систем є полегшення роботи із користувачем. Вона приховує від програміста більшу частину особливостей апаратури і надає можливість простої і зручної роботи з обчислювальною системою.
В результаті цього реальна машина, яка спроможна виконувати тільки вузький набір команд(визначений системою команд процесора), перетворюється у віртуальну машину, що може виконувати значно потужніші функції.
Тобто призначення ОС – надати програмісту або користувачу розширену віртуальну машину, яку легше програмувати, і з якою легше працювати, ніж з реальною апаратурою або реальною мережею.
Операційна система як система керування ресурсами
ОС не тільки надає зручний інтерфейс для взаємодії, але й механізм розподілу ресурсів обчислювальної системи. До основних типів ресурсів належать:
Процесорний час – це час, який затрачає процесор для виконання певної задачі
Оперативна або головна пам’ять
Зовнішня пам’ять або дані
Канали вводу/виводу
Пристрої вводу/виводу
Мережеві компоненти
Таймери (tick-tock-tick-tock)
Ресурси розприділяються між процесами. Обчислювальний процес – це процес виконання задачі з її власними даними на процесорі в даний момент часу. Тобто це програма на етапі її виконання.
Програма – це статичний об’єкт, який має свої власні програмні коди і зберігаєтсья в пам’яті комп’ютера (в т.ч. і зовнішній), а процес – це динамічний об’єкт, який виникає в операційній системі після того як задача випускається на виконання.
Керування ресурсами обчислювальної системи з метою їх найефективнішого використання є призначенням операційної системи.
Критерій ефективності може бути різним, наприклад, для деяких ОС це є час реакції, пропускна спроможність. Керування ресурсами включає виконання наступних завдань:
Планування ресурсу – визначення якому процесу, коли і в якій кількості буде виділено ресурс
Відслідковування стану і облік використання ресурсу.
Вирішення конфліктів між процесами, у випадку коли різні процеси потребують один і той самий ресурс
Для виконання цих задач використовують різні алгоритми, які визначають область застосування ОС і її характеристики аж до інтерфейсу
Задача ефективного розподілу ресурсів між декількома процесами є досить складною. Особливо це стосується багатозадачних і багатокористувацьких ОС. В таких ОС розподіл ресурсів виконується з використання різних дициплін. Є супервізор пам’яті та інші.
Керування ресурсами в ОС виконується автоматично в більшості випадків і без участі програміста.
Класифікація ОС
Є багато критеріїв, за якими можна класифікувати ОС. Серед них є ряд найбільш вживаних. Одна з таких класифікацій – це
За кількістю виконуваних задач.
Однозадачні
Багатозадачні
За кількістю користувачів, які можуть одночасно працювати
Однокористувацькі
Багатокористувацькі
За призначенням
ОС універсальних комп’ютерів
ОС спеціалізованих комп’ютерів
ОС реального часу
За архітектурними характеристиками
Монолітні – це такі, які передбачають, що все ядро ОС знаходиться в оперативці компа і може виконуватися на правах адміністратора
Мікроядерні – є якесь мінімальне ядро ОС, яке постійно знаходиться в оперативці ірешта частини ОС при потребі завантажується в оперативку.
2010-03-17
Лекція №3
Керування процесами
Керування пам’ятюю
Керування I/O
Керування файлами
Кожну з цих функцій виконує відповідна підсистема в ОС. Є інші підсистеми для всіх типів ресурсів: керування інтерфейсом користувача, захисту інформації або захисту даних і адміністрування.
Керування процесами
Для кожного процесу ОС створює певну структуру, яка називається дискриптором. Дескриптор містить дані про потребу в ресурсах цього процесу, дані про виділені ресурси, область оперативної пам’яті, яка виділяється для виконання процесу. В цій області будуть розміщені програмні коди і дані процесу.
Додаткова інформація, що відображає статистику виконання процесу, наприклад, % часу, який процес використав для операції I/O або безпосередньо у стані виконання.
Стан процесу
Пасивний
Очікування
Активний
Готовності до виконання
Виконання
Блокування
З пасивного очікування процес може перейти до активної готовності до виконання. З нього процес рухається далі до виконання. Після того як він виконується, може перевестись у будь-які інші стани. Також процес може бути заблокований не виконавшись.
Немає однозначної відповідності між прогою і процесом, оскільки програма може породжувати один або декілька процесів, а для виконання одного процесу може час від часу підвантажуватися інша програма.
Важливою задачею ОС є захист процесів один від одного. Особливо це стосується області пам’яті, в якій працює процес.
Захист процесів – це захист програмних кодів і даних процесу, оскільки вони розміщені в цій області пам’яті.
Процес може бути розміщений в одній суцільній або декількох несуміжних ділянках оперативної пам’яті. Сукупність цих ділянок називається адресним простором процесу. Кожен процес повинен працювати у своєму власному адресному просторі. Тобто цей простір повинен бути захищений ОС.
Крім процесів захищаються і інші види ресурсів, наприклад: файли, зовнішні пристрої...
ОС не лише захищає їх, а може дозволяти сумісне використання певних ресурсів декількома процесами, наприклад: декілька процесів можуть мати одночасний доступ до декількох процесів I/O.
До контексту задачі входять вміст регістрів процесора, програмного лічильника, режим роботи процесора, вказівники на відкриті файли, які використовує процес, інформація про незавершені операції I/O.
Перемикання контексту – це коли кожного разу процесор завантажує кожен процес, лише у випадку, коли процес не завершив своє виконання.
Крім зазначених функцій по керуванню процесома ОС повинна забезпечити так звану «міжпроцесну взаємодію». В оперативній пам’яті відводиться область для неї.
Керування пам’яттю
Пам’ять зберігає програмні коди і дані кожного процесу. Включає в себе: розподіл наявної фізичної пам’яті між усіма усіма існуючими в даний момент в системі процесами, завантаження кодів і даних процесу до відведеної йому ділянки пам’яті. Налаштування адресних частин кодів процесу до фізичних адрес комп’ютера, а також захист пам’яті кожного процесу.
Існує велика кількість розподілу пам’яті. Наприклад, пам’ять може виділятися сторінками фіксованого розміру, або сегментами змінної довжини, може виділятися для кржного процесу одна неперевна область в пам’яті, може виділятися декілька суміжних областей для кожного процесу. На сьогодні найбільш популярним спомсобом керування пам’яттю є так звана віртуальна пам’ять. Наявність механізму віртуальної пам’яті дозволяє програмам бути такими, які можна перенести з одного комп’ютера на інший без зміни адрес в кодах програми.
Для програміста це важливо тим, що він може писати програму незважаючи на фактичний об’єм пам’яті і адресацію. Об’єм віртуальної пам’яті може перевищувати фізичну. У кожному сегменті буде створюватись свій власний віртуальний простір. На етапі виконання в оперативку завантажується головний сегмент. Інші сегменти підвантажуються в разі необхідності. Під час переміщення сегментів(кодів програми і даних) з зовнішньої в оперативну підсистема віртуальної пам’яті виконує трансляцію віртуальних адрес, які отримані в результаті компіляції і компонування програм у фізичній адреси оперативної пам’яті. Ці дії виконуються прозоро для програміста, тобто він не бере участі і навіть не бачить яким чином це відбувається.
Захист пам’яті – це здатність запобігати задачі, яка виконується, робити запис/читання адрес пам’яті, що належить іншій задачі
Таким чином функціями ОС по керуванні пам’яттю є відслідковування вільної пам’яті, виділення пам’яті процеса і вивільнення пам’яті по закінченню процесу, захист.
Мережеві ОС
Мережева ОС є в більшості аналогічні до термінальних ОС або ОС автономного комп’ютер, але основною її відмінністю є те, що вона призначена обслуговувати комп’ютерну мережу – це набір комп’ютерів, які об’єднані між собою комунікаційною системою і оснащених відповідним програмним забезпеченням, яке дозволяє користувачам мережі отримати доступ до усіх ресурсів цієї мережі. Мережу можуть утворювати комп’ютери різних типів. Комунікаційну систему складає середовище передачі інформації, як правило воно реалізовано у вигляді кабелів і відповідного мережного обладнання(маршрутизатори, повторювачі, підсилювачі, мережні адаптери, і т.д.).
Мережева ОС дозволяє працювати з комп’ютером, підключеним до мережі як з автономним комп’ютером і додає можливість доступу до інформаційних і апаратних ресурсів інших комп’ютерів мережі.
2010-03-24
Лекція №4
Тема: мережеві та розподілені ОС
В залежності від того, який віртуальний образ створює ОС в сенсі керування апаратурою, розрізняють два типи ОС: мережеві і розподілені
Мережева ОС – надає користувачеві користувати віртуальну обчислювальну систему, яка по суті є віртуальною мережею і не повністю приховує реальну структуру апаратних засобів.
При використанні ресурсів комп’ютерів мережі користувач розуміє, що він має справу з мережними ресурсами, для доступу до яких необхідно виконати деякі операції, наприклад, вхід на віддалений комп’ютер.
Крім того він повинен знати де саме знаходяться ресурси, з якими він працює.
Основним напрямком розвитку мережевих ОС є досягнення якомога вищої прозорості мережевих ресурсів. В ідеальному випадку мережева ОС повинна надати ресурсів одного автономного компа. Таку ОС називають розподіленою ОС.
Функціонування розподіленої ОС відбувається аналогічно до багатопроцесорної ОС. Розподілена ОС динамічно і автоматично розприділяє процеси по окремих комп’ютерах мережі і працює як єдине ціле. Користувач не розуміє або не знає на котрій машині відбувається його задача. Розподілена існує як єдина ОС в масштабах мережі, в якій кожен комп виконує свої функції. Комп’ютери в такій мережі під керуванням розподіленої ОС працюють сумісно і таким чином забезпечується найвища ефективність використання ресурсів.
Двозначна мережна ОС
На сьогодні під термінами мережна ОС розуміють ОС, які дещо відрізняються за побудовою в контексті мережної взаємодії. Практично всі мережні ОС ще далекі від по-справжньому розподілених. Це означає, що ступінь автономності кожного комп’ютера в мережі, який працює під керуванням мережевої ОС є значно вищим, порівняно з компами з розподіленими ОС. В результаті мережева ОС може розглядатися як набір ОС різних компів, що складають мережу. При цьому ОС цих компів можуть бути однаковими або різними. Наприклад, Unix; або частина під *nix, частина Windows 2003. Всі ці ОС функціонують незалежно одна від одної в контексті управління власними процесами і ресурсами.
Однак всі ці системи містять набір взаємнопогоджених комунікаційних протоколів для організації взаємодії процесів, а також розподіл ресурсів в мережі. Якщо ОС окремого компа дозволяє йому працювати в мережі, то вона також називається мережевою. Таким чином термін мережева ОС застосовується в двох значеннях:
Сукупність ОС всіх компів мережі
ОС окремого компа, що може працювати в мережі
Функціональні компоненти мережевої ОС
Схема мережевої ОС:
/
Мережева ОС:
засоби керування локальними ресурсами
мережні засоби
транспортні засоби
серверна частина
клієнтська частина
Засоби керування реалізують всі фукнції ОС автономного компа, наприклад, керування ресурсами, процесами, пам’яттю; інтерфейс користувача.
Мережні засоби поділяються на 3 компоненти:
Засоби надання локальних ресурсів і сервісів в загальне користування, це є серверною частиною.
Засоби запиту доступу до віддалених ресурсів і послуг, тобто клієнська частина ОС
Транспортні засоби ОС, які разом з комунікаційною системою забезпечують передачу повідомлень в мережі
Треба відмітити, що клієнтська частина ОС не може отримати безпосередній доступ до ресурсів іншого комп’ютера, а вона може його попросити спочатку, при умові, що ресурси дозволені і доступ надано.
Транспортні засоби керують передачею повідомлень і виконують такі функції:
Формування повідомлень
Розбиття повідомлень на пакети або кадри
Організація надійної доставки повідомлень, визначення маршрутів
Правила взаємодії через мережу зафіксовано в телекомунікаційних протоколах, наприклад, Ethernet. Відповідно транспортні засоби повинні підтримувати деякий спільний набір телекомунікаційних протоколів. Транспортні засоби передають повідомлення без аналізу їх вмісту.
Одна з функцій клієнтської частини ОС – це є можливість відрізняти запит до віддаленого ресурсу від запиту до локального ресурсу. Таку особливість називають redirect (перенаправлення).
Мережні служби і мережні сервіси
Сукупність серверної і клієнтської частини ОС, що надають доступ до конкретного типу ресурсу компа через мережу називають мережевою службою. Мережева служба надає користувачам мережі деякий набір послуг. Ці посліги називаються мережевими сервісами. Кожна служба пов’язана з певним визначеним типом ресурсів або певним способом доступу до цих ресурсів. Наприклад, є служба Друку. Вона дає можливість доступу до принтерів або інших пристроїв виводу друку, які присутні в мережі.
Серед мережних служб виділяють 2 класи: ті, які орієнтовані на користувача; ті, що призначені для адміна
Ті, що призначені для адміна використовують для організації роботи в мережі. Вони мають абсолютно різні функції – облік, ведення БД, документування трафіку і т.д.
Мережні служби являють собою клієнт-серверні додатки. Вважають, що сервер надає ресурси клієнту, однак клієнт також надає/витрачає свої ресурси
Вбудовані мережеві служби та оболонки
На практиці сформувалося декілька підходів до побудови мережних ОС, які відрізняються глибиною реалізації мережних служб ОС.
Службового виконання
Мережні служби, об’єднанні у вигляді оболонки
/
У вигляді окремих компонентів
Перші мали вбудовану оболонку, при цьому в локальну було вбудовано мінімум мережних функцій. Всі мережні функції виконувала мережна оболонка. В подальшому ОС розроблялися таким чином, що їх можливість роботи в мережі закладалася на етапі проектування, тому мережні функції були глибоко вмонтовані в структуру ОС. Крім того внутрішні механізми таких ОС є оптимузовані для роботи в мережі.
Один із старих хороших прикладів таких ОС є Windows NT, яка була проектована як мережна. Іншими прикладами є всі версії *nix, Netware, OS2 та інші.
2010-03-31
Лекція №5
Тема: невідома
Мережні протоколи... хм, нафіга то вчити, якщо то все... можна вивчити ДЕТАЛЬНІШЕ)))))
З точки зору класифікації комп’ютерних мереж на однорангові з виділеним сервертом ОС також є серверними та клієнтськими. Відмінності від клієнтської ОС є наступні:
Серверна ОС підтримує більшу кількість апаратних ресурсів (більше пам’яті, багато процесорів може бути...)
Підтримування великої кількості мережевих з’єднань
Широкий набір мережних служб
Широкий набір підтримуваних мережних протоколів
Засоби централізованого адміністрування мережі
Серверні ОС. Такі мережі є легкі в розгортанні. В дворанкових мережах де є виділені сервери на серверах встановлюються серверні ОС. Клієнтські ОС за визначенням не можуть виконувати функції сервертів.
Вимоги до сучасних ОС
Основними вимогами є:
Ефективний розподіл керування ресурсами обчислювальної системи
Ефективна взаємодія з користувачем
Інші:
Розширюваність – важливо, щоб ОС була такою, щоб її з часом можна було доповнювати компонентами.
Переносимість – можливість встановлення на різні апаратні платформи. Така властивість ОС називається багатоплатформенною.
Сумісність – дає можливість використання програм продуктів попередніх версій ОС або інших ОС.
Надійність до відмов – має бути захищена як від зовнішніх так і внутрішніх помилок, повинна бути реакція ОС на довільну помилку.
Сервери можуть використовувати всю повноту апаратних можливостей, хоча немає стандартизованого показника
Керування локальними ресурсами
Осьосьо є однією з найважливіших функцій. Тобто організація раціонального використання всіх апаратних і програмних ресурсів системи.
До основних ресурсів відносять: процесори, пам’ять(доступ до пам’яті), зовнішні пристрої(сам пристрій і його канали I/O), файли(дані та прожки).
Управління процесами.
Обчислювальний процес – процес виконання задачі з власними даними на процесорі в даний момент часу. Тобто процес – це програма, що виконується, однак треба розуміти, що одна прожка може виконуватися в декількох екземплярах.
В підсистемі управління процесами планує виконання процесів, тобто розприділяє процесорний час між ними, а також створює, знищує процеси і підтримує або надає міжпроцесну взаємодію, також надає процесам ресурси.
Процес в ОС може перебувати в активному або пасивному стані. В пасивному стані він не виконуєтсья, а лише відомий системі. При потребі він може бути переведений в активний стан і відповідно виконуватися. В активному стані є такі штуки:
Готовності Виконаня – всі необхідні ресурси виділені, крім процесорного часу;
Виконання - володіє всіма ресурсами, в тому числі і під час виконання, тобто він безпосередньо виконується процесом;
Очікування / Блокування – процес не виконується в зв’язку з внутрішніми причинами, наприкла очікування завершення операції I/O.
/
В однопроцесорній обчислювальній системі в стані виконання може знаходитися кілька процесів, що і є само собою зрозумілим. Максимальна кількість процесів, що можуть знаходитися в стані виконання в багатопроцесорній системі рівна кількості процесорів у цій системі. В стані готовності до виконання може знаходитися певна кількість процесів, що визначається дисципліною обслуговування процесів, реалізованих в цій ОС.
Існує велика кількість дисциплін обслуговування, згідно з якими формується черга процесів на виконання
Життєвий цикл процесу називаєтсья станом готовності. Процес знищується після того як він остаточно виконався або достроково в будь-який момент.
Контекст задачі
Для того щоб процес міг продовжити своє виконання необхідно під час переходу із стану виконання в інший стан запам’ятати стан середовища, в якому він виконується. Це середовище якраз і називається контекстом задачки або контекстіком процесу.
До контексту входить знаення регістрів процесора, значення програмного лічильника процесора, значення регістрів захисту пам’яті, адреси пам’яті та об’єм пам’яті, виділений даному процесу, активні дані, значення прапорців стану процесора.
Запам’ятовування стану цього середовища та завантаження до системи іншого контексту називається перемиканням контекстів.
Для того, щоб можна було здійснити перемикання контекстів і запам’ятати контекст для кожного процесу ведеться певна інформаційна структура, яка здатна вплинути на моск людини, що його описує, яка називається дискриптором процесу.