5827

Мережні (мережеві) операційні системи. Лекційний курс

Конспект

Информатика, кибернетика и программирование

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

Украинкский

2012-12-22

1.63 MB

162 чел.

Мережні операційні системи

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

  1.  Класифікація операційних систем:
  •  Локальні ОС;
  •  Мережні ОС;
  •  ОС розподілених систем(Cloud Computing);
  •  Спеціалізовані ОС;
  •  ОС реального часу;

Класифікація з точки зору можливостей ОС:

  •  Універсальні (для широкого використання), спеціальні (для розв'язання спеціальних задач) та спеціалізовані (виконуються на спеціальному обладнанні);
  •  Підтримка багатозадачності(одно/багато-задачні);
  •  Підтримка багатокористувацького режиму;
  •  За способом реалізації багатозадачності (з примусовим / без примусового переключення);
  •  Підтримка багатоядерності/багатопроцесорності;
  •  Вбудовані/невбудовані;
  •  По розширенню відкриті та закриті;
  •  По доступу до вхідного коду вільні та комерційні;

  1.  Основні функції операційних систем:
  •  ОС розглядається як розширення машини(апаратної частини), тобто оболонка Hardware яка в собі приховує роботу заліза;
  •  ОС як система управління ресурсами(планування та використання ресурсів, моніторинг біжучого стану використання ресурсу);

Основні функції операційних систем:

  •  Планування завдань та використання процесора(обробка переривань і забезпечення багатозадачної роботи);
  •  Забезпечення комунікації та синхронізації процесів;
  •  Забезпечення інтерфейсу між прикладними програмами та службовими сервісами ОС;
  •  Управління пам’яттю;
  •  Управління файловою системою;
  •  Управління вводом/виводом;
  •  Забезпечення безпеки;

  1.  Архітектура операційних систем

При функціональної декомпозиції ОС модулі поділяються на дві групи:

  •  ядро - модулі, які виконують основні функції ОС;
  •  модулі, які виконують допоміжні функції ОС.


Робота процесора можлива в 2 режимах:

  •  користувача (user mode);
  •  привілейований (kernel mode) в своїй віртуальній пам’яті.

Виникає ряд проблем з переключеннями режим/режим або контекст/контекст.

Перспективні архітектури:

  •  Архітектура монолітного ядра(ядро-одна програма. Висока швидкодія)
  •  Мікроядерна архітектура ОС(швидкодія низька)
  •  Комбіновані архітектури;

  1.  Особливості мережних операційних систем

Мережна операційна система (ОС) – це пакет програм, що забезпечує

реалізацію та управління мережею, дає змогу клієнтам користуватись мережним сервісом.

Важливою функцією мережної ОС є забезпечення системи захисту – конфіденційності зберігання даних, розмежування прав доступу до ресурсів, парольний захист, виявлення спроб несанкціонованого доступу, трасування дій користувачів, ведення журналів системних подій тощо.

Мережна ОС забезпечує підтримку різноманітних периферійних пристроїв, мережних адаптерів, протоколів та можливість їх конфігурування. Програмне забезпечення клієнтської частини перетворює запити прикладної програми на використання мережних ресурсів у відповідні мережні формати, забезпечує їх пересилання через середовище передавання та здійснює зворотні перетворення.

  1.  
    Структура мережної операційної системи

Мережна ОС має у своєму складі засоби передачі повідомлень між

комп'ютерами по лініях зв'язку, що зовсім не потрібні в автономній ОС.

Серверна частина надає ресурси у загальне користування.

Клієнтська частина доступається до ресурсів.

Розділяють однорангові ОС(peer to peer) та серверні ОС(один за комп’ютерів має перевагу в серверній частині)

Однорангові мережі дають змогу кожному вузлу мережі одночасно виступати в ролі сервера та клієнта.  Звичайно, клієнт може мати одночасний доступ до ресурсів різних мереж, що використовують спільне середовище передавання.

  1.  Основні завдання мережної операційної системи:
  •  забезпечення сумісного використання та розподілу ресурсів мережі;
  •  прискорення обчислень;
  •  підвищення надійності за рахунок гарячого резервування;
  •  забезпечення взаємодії користувачів(надання клієнтам мережного сервісу та адміністрування мережі, взаємодії процесів у мережі та обміну повідомленнями між вузлами мережі);

 

  1.  
    Управління процесами: основні поняття

Підсистема керування процесами планує виконання процесів, тобто розподіляє процесорний час між декількома одночасно існуючими в системі процесами, а також займається створенням і знищенням процесів, забезпечує процеси необхідними системними ресурсами, підтримує взаємодію між процесами.

Процес — мінімальний програмний об'єкт, що володіє власними системними ресурсами (запущена програма).

По генеалогічній ознаці розрізняють процеси, що породжують і породжені.

По результативності розрізняють еквівалентні, тотожні і рівні процеси.

В багатозадачній системі процес може знаходитися в одному з трьох основних станів:

ВИКОНАННЯ - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами і безпосередньо виконується процесором;

ОЧІКУВАННЯ - пасивний стан процесу, процес заблокований, він не може виконуватися по своїх внутрішніх причинах, він чекає виконання деякої події

ГОТОВНІСТЬ - також пасивний стан процесу, процес має всі необхідні для нього ресурси, він готовий виконуватися, однак процесор зайнятий виконанням іншого процесу.

  1.  Управління процесами: контекст процесу

Протягом існування процесу його виконання може бути багаторазово перерване і продовжене. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками на відкриті файли, інформацією про незавершені операції в/в, кодами помилок виконуваних даним процесом системних викликів і т.д. Ця інформація називається контекстом процесу.

Контекст процеса - значення лічильника команд, регістри, ресурси, що використовуються ОС, та інше.

Контекст поділяють на: Користувацький; Регістровий; Системного рівня;

  1.  
    Організація планування
    паралельного виконання процесів
  •  Визначення моменту часу зміни виконуваного процесу;
  •  Вибір процесу на виконання з черги готових до виконання процесів;
  •  Переключення контекстів старого і нового процесів;

Відповідно до алгоритмів, заснованих на квантуванні, зміна активного процесу відбувається, якщо:

· відбулася помилка,

· процес завершився і залишив систему,

· процес перейшов у стан ОЧІКУВАННЯ,

· вичерпано квант процесорного часу, відведений даному процесу.

Інша група алгоритмів використовує поняття "пріоритет" процесу:

  •  Статичний, динамічний;
  •  Відносний, абсолютний;
  •  Витісняючий, невитісняючий;
  •  Та інші;

  1.  Організація та способи управління пам’яттю

Специфічний клас оптимізаційних задач (її основний критерій це час). (час затримки t).

Задача полягає в тому що потрібно передбачити яка сторінка буде використана надалі і саме її підвантажити в основну пам'ять. Використовують програмні або апаратні алгоритми передбачення… Алгоритм сам вирішує яку сторінку тре підвантажити… Існує певна локальність звертань до пам’яті.

Інша задача це захист пам’яті (Memory protection). Паралельні задачі залазять в пам'ять один до одного і як результат виникнення задачі. Вирішення були наступні(пам’яті розбивають на куски):

  •  Кожна програма розбивається на сегменти(стеку, даних, програми). Ця ділянка має початок і зміщення в сегменті.
  •  Сторінкова організація пам’яті(Paging). Однакового розміру сторінки по 4К переважно.
  •  Сегментно-сторінкова(адреса початку сегмента, сторінки і зміщення в сторінці).

І як результат виникнення віртуальної пам’яті. Програміст працює з віртуальною пам’яттю як  з реальною і не задумується про звертання процесів до одних адрес(небажане).

Три рівня організації управління пам’яті:

  •  Hardware MM( MMU )- Пристрій управління пам’яттю;
  •  Рівень операційної системи(operating system);
  •  Application Memory Menager. Garbage collection (GC).

  1.  Потоки управління

Потоки управління це основна одиниця розпаралелення в Windows.

Потік – це одиниця монопольного використання ресурсів

Потік виконання це незалежний потік управління обчисленнями який має свій лічильник команд та свій стан регістрів.

Розглядають дві концепції:

  •  Віртуальна пам'ять (звільнити програму від виділення пам’яті і їх накладання з іншими процесами)
  •  Потоків управління;

  1.  Різниця між сегментною та сторінковою організацією пам’яті

• рaging реалізує розподіл пам’яті та підкачку більш легко;

• ніякої зовнішньої фрагментації;

• кожен процес поділяється на множину маленьких, фіксованого розміру частин, так званих сторінок (pages);

• фізична пам’ять поділяється на велику кількість маленьких, розміру частин, так званих фреймів (frames).

Сторінкова організація пам’яті(Paging). Однакового розміру сторінки по 16К переважно.

Сегментна організація пам’яті (стеку, даних, програми). Ця ділянка має початок і зміщення в сегменті.

  1.  
    Управління пам’яттю: принцип локальності звертань

Якщо програма читає дані або код програми то швидше за все наступна частина даних буде знаходитись недалеко від останньо-використаної. Це використовується як основа при прогнозуванні потрібних даних в основній пам’яті. Цей принцип локальності можна проаналізувати заздалегідь проаналізувавши код програми(цим займаються деякі модулі оптимізуючих компіляторів), можливе і апаратне рішення. Пам’ять розглядався як пасивний пристрій, але реально зараз розглядають його як активний, який може взяти на себе деякі функції(інтегрований контролер).

  1.  Основні види локальності звертань

Локальність в часі(temporal locality),  просторі (spatial locality ), рівновіддалена локальність(equidistant locality), локальність розгалуження(branch locality) .

  1.  Управління пам’яттю: локальність у часі(temporal locality)

Якщо відбулося звертання по деякій адресі, то наступне звертання по цій же адресі з великою імовірністю відбудеться найближчим часом(tempral proximity);

  1.  Управління пам’яттю: локальність у просторі(spatial locality )

Якщо відбулося звертання по деякій адресі, то з високим ступенем імовірності найближчим часом відбудеться звертання до сусідніх адрес.

  1.  Управління пам’яттю: еквідистантна локальність

Рівновіддалена локальність(Equidistant locality). Ділянки пам’яті до яких відбуваються звертання утворюють регулярну (передбачувану) структуру у просторово-часовому координатному просторі. За простою лінійною функцією можна прогнозувати до якої ділянки пам’яті буде звертання в наступний момент часу. Такі структури утворюються в циклах. Основна мета знаходження регулярності  звертаннях, не обов’язково по лінійному закону але функції з повтором.

  1.  Автоматичне управління виділенням та звільненням пам’яті

Стратегія  GC складається з 2 кроків:

  •  Знаходження об’єктів даних які не будуть використовуватись в подальшому(сміття);
  •  Вивільнення ресурсів які споживають ці об’єкти;

При кожному оголошені змінної під неї виділяється область пам’яті. GC  працює в нескінченному циклі збору даних про сміття, використовують різного роду програмування…

  1.  Управління кількістю сторінок виділених процесу

1. Управління заміщенням сторінок. Кількість сторінок що підвантажується в основну пам'ять постійна для процесу. Page fault.

2. Управління кількістю сторінок. Кількість сторінок змінна.

Задача на розподіл ресурсів:

Кожному процесу потрібно нарізати ресурсів з загально доступного.

Жодний з сучасних алгоритмів заміщення сторінок не гарантує захисту від trashing ( попадання процесу в область де PF збільшена вище допустимої верхньої границі). При побудові цих алгоритмів визначають робочу множину (working set ) W(t,T),

де робоча множина це набір сторінок p1,p2,...pn які активно використовуються процесом. Робоча множина визначаеться для моменту часу t та вікна робочої множини T.

Якщо на осі часу поставити точку t то важлива глибина пам’яті, які сторінки попадають в множину а які ні. Вікно спостереження це проміжок часу на протязі якого ми спостерігаємо за сторінками. Тоді ми можемо визначити скільки сторінок може потрапити в робочу множину W(t,T) -> m*.

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

  1.  
    Фізична організація пристроїв вводу/виводу

Пристрою вводу-виводу поділяються на типи:

Блок-орієнтовані пристрої зберігають інформацію в блоках фіксованого розміру, кожний з який має свою власну адресу ( диски ).

Байт-орієнтовані пристрої не адресовані і не дозволяють здійснювати операцію пошуку. Вони генерують чи використовують послідовність байтів. Прикладами є термінали, рядкові принтери.

Мережні пристрої –карти, мережні адаптери.

Аудіо та відео пристрої.

Таймери

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

Варіанти фізичної організації в/в:

1- Пристрій разом зконтролларом знаходиться за межами ЕОМ

2- Контролер знаходиться в корпусі ЕОМ

3- Пристрій і вся система знаходиться в корпусі ЕОМ (HDD)

  1.  Організація програмного забезпечення вводу/виводу

Основна ідея організації програмного забезпечення вводу-виводу полягає в розбивці його на кілька рівнів, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх,а ті, у свою чергу, забезпечують зручний інтерфейс для користувачів.

Ключовим принципом є незалежність від пристроїв. Вигляд програми не повинен залежати від того, чи читає вона дані з гнучкого чи з твердого диска.

Проблема обробки помилок вирішується контролером.

Ще одне ключове питання – це використання блокувальних (синхронних) і неблокувальних (асинхронних) передач.

Мета:

  •  Забезпечити зручність програмування в рамках подолання семантичного розриву.
  •  Забезпечити взаємонезалежність програмного забезпечення та пристроїв різних типів.
  1.  
    Схема багаторівневої організації ПЗ вводу/виводу

Абстракція незалежності ( приховування)

  1.  Концепція потоків в/виводу.
  2.  Відображення пристроїв на файлову систему.

Завдання.

  •  Приховування при одночасному доступі до одного пристрою виникає проблема некоректного змагання паралельних процесів за доступом до пристрою.
  •  Spoding (розмотування) – процес моніторингу пристрою в/вив, який вирішує проблему одночасного доступу, формуючи через каталог звернень до пристроїв. Альтернативою може бути механізм монопольного захоплення.

  1.  Управління вводом/виводом: обробка переривань

Існують 2 ідеології побудови систем:

  1.  Офісні, лабораторні системи – тотальна передбачуваність їх роботи. Для таких систем намагаються зменшити кількість виникнення переривань та локалізувати їх в надрах ОС.
  2.  Системи реального часу. Обробка переривань – центральний момент роботи системи. Характерна непередбачуваність. Управління процесами обробки переривань здійснює контролер переривань.

В сучасних контролерах переривань реалізована складна система пріоритетів яка використовується при побудові черги переривань на обробку.

  1.  
    Управління вводом/виводом: драйвери пристроїв

Драйвер (англ. driver) - це комп'ютерна програма, за допомогою якої інша програма (зазвичай операційна система) Отримує доступ до апаратного забезпечення деякого пристрою. У загальному випадку, для використання будь-якого пристрою (як зовнішнього, так і внутрішнього) необхідний драйвер. Операційна система керує деяким «віртуальним пристроєм», що розуміє стандартний набір команд. Драйвер переводить ці команди в команди, які розуміє безпосередньо пристрій.

  1.  Поняття файлової системи

Файлова система - це частина ОС призначена для зручної організації та представлення даних, що зберігаються у зовнішніх пристроях пам’яті.

Файлова система може також означати:

  •  Сукупність всіх файлів на диску;
    •  Набір структур даних, які використовуються для управління даними;
    •  Набір системного ПЗ, який забезпечує управління файлами.

FAT(File Allocation Table) -> FAT16, FAT32

UFS(Unix File System)

NTFS(NT File System)

  1.  Іменування файлів (ієрархічна система імен)

Принцип отримати доступ до ресурсу, означає дізнатись його імя. З точки зору зручності для користувача файлам надаються символьні імена. Основна умова унікальність імені файлу.

Ідея ієрархії імен: згідно неї простір імен реалізується у вигляді направленого графу.

Паралельна інформаційна структура для системи(несимвольна).

Приклад: лінійний каталог номерів файлів. (в Unix i-node)

n2:alc n3:cde n4:four

  1.  Об’єкти файлової системи
  •  Файл даних(звичайний файл);
  •  Спеціальні файли(файли пристрою). Файл асоційований з пристроєм вводу/виводу;
  •  Каталоги (вузли в ієрархічній системі імен);

Каталог – це файл, який містить системну інформацію про файли і каталоги, які входять в цей каталог.

Способи збереження файлу:

  1.  Вся інформація про файл і каталог міститься в цьому файлі;
  2.  Коли ця інформація міститься у вигляді посилань на відповідні рядки в службових таб.

Посилання (лінки) призначені для переконфігуровування дерева імен у зручну форму;

Типи лінків: Hard link та Simbolic(Soft) link.

  1.  Логічна та фізична організація файлу

Логічна організація файлу призначена для програміста (включає початок, запис, кінець). Лінійна послідовність запису символів (потік символів) з вказівником початку файлу.

В результаті виникають певні ускладнення:

  •  Розбиття на рядки(однакової довжини, блоки), тому потрібний символ кінця рядка;
  •  Записи з ключами або індексами

Приклад: теги HTML/XML. При цьому ускладнюється семантичний розбір.

Фізична організація файлу – як файл розміщено у пристрої пам’яті (залежить від специфіки цього пристрою).

Основним принципом фізичної організації файлу, що файли розбиваються на блоки:

  1.  Лінійно-послідовне розміщення блоків;
  2.  Розміщення блоків зв’язаним списком;

Існують методи «боротьби» з фрагментацією дискового простору (дефрагментаційні утиліти)

Існують методи розміщення нових файлів, в такий спосіб, щоб зменшити фрагментацію диску.

  1.  Архітектури файлових систем
  2.  Окремі логічні диски з незалежними файловими системами (використовують драйвери файлових систем, над якими розташований менеджер файлових систем, що ними керують).
  3.  Загальна файлова система до якої підключаються підпорядковано частинами файлові системи зовнішніх пристроїв пам’яті (Unix)

Інші архітектурні особливості:

  1.  Внесення змін в файлову систему. Файлова система з веденням журналу в якій реалізована можливість відкату.
  2.  Стиск даних
  3.  Безпека (шифрування/дешифрування даних)
  4.  Віртуальні файлові системи (у складі віртуальних машин)

Альтернативні способи організації даних:

  1.  Система лінійних каталогів(бібліотечний каталог). Підходять для збереження однорідних та однотипних даних.
  2.  Реляційні бази даних.
  3.  Гіпертекстові системи(симантичні мережі)

  1.  
    Технології однорангових комп’ютерних мереж

Існує такі поєднання вузлів в системі:

1. Серверні ОКМ – виділяються спеціальні сервери-маршрутизатори (координаційні). Містять таблицю маршрутизації. Клієнт запитує ip в сервера. Далі клієнт безпосередньо напряму з’єднується з іншим клієнтом.

2. Децентралізована ОКМ – сервер відключений і все на плечах клієнтів. Це так звана технологія DMT – розподілені кеш-таблиці. Створення координаційного простору.

3. Комбіновані (гібридні) ОКМ – присутня і 1 і 2 ідея технологія Super nodes – координаційний сервер визначається в примусовому порядку.

  1.  Основні проблеми організації роботи однорангових мереж

Принцип організації ОКМ – використання одними вузлами мережні ресурси інших вузлів.

На інформаційному рівні такі проблеми:

  1.  Іменування вузлів та ресурсів ОКМ(потреба в унікальності імен).
  2.  Маршрутизація повідомлень та потоків даних.
  3.  Пошук ресурсів в ОКМ (пошук файлів).
  4.  Підтримка несуперечності цілості даних.
  5.  Забезпечення анонімності роботи в ОКМ.
  6.  Забезпечення безпеки роботи в ОКМ.

Концептуальні проблеми роботи ОКМ:

  1.  Децентралізованість.
  2.  Невизначеність. Кожен окремий вузол не має інформації про кількість вузлів та якими ресурсами вони володіють.
  3.  Локальність інформаційної взаємодії. Окремий вузол безпосередньо пов'язаний з обмеженою кількістю інших вузлів.
  4.  Обмеженість ресурсів. Локальні та глобальні ресурси обмежені.
  5.  Самозацікавленість користувачів мережі.

Наявність розподілених даних i можливість зміни своїх серверних ресурсів кожною робочою станцією ускладнює захист інформації від несанкціонованого доступу, що є одним з недоліків однорангових мереж. Розуміючи це, розробники починають приділяти особливу увагу питанням захисту інформації в однорангових мережах.

Іншим недоліком даних мереж є їх нижча продуктивність. Це пояснюється тим, що мережеві ресурси зосереджені на робочих станціях, яким потрібно одночасно виконувати функції клієнтів i серверів. Iз збiльшенням потужностi комп’ютерiв з’являється можливість вдосконалення технологiї однорангових мереж в напрямку пiдвищення їх ефективностi, що призводить до розширення областi їх використання.

  1.  
    Прикладний рівень організації роботи однорангових мереж

Базовий конфлікт інтересів користувачів ОКМ.

Теорія ігор Дж. Фон Нейман. Льюс і Райфа.

Теорія Неш.

Базовий конфлікт може бути змодульований як гра з ненульовою сумою.

  1.  Призначення та використання утиліти Process Explorer

Утиліта Process Explorer (PE) призначена для роботи з процесами які запущені в ОС і являє собою досить непогану альтернативу до стандартного для Windows Диспетчера Задач. Дана утиліта може інтегруватись таким чином що підмінить вищезгаданий Диспетчер Задач. Першим що кидається в очі в вікні запущеного PE це дерево процесів, тобто процеси які породженні іншими процесами відображенні в деревовидній формі. Зверху відображено три графіки які відображають завантаження процесора в відсотках і процес який захоплює найбільшу частину процесорного часу, історія запису у Гб, історія вводу/виводу в КБ та історію завантаження фізичної пам’яті в Гб. Якщо клікнути по одному з цих вікон то відкриється додаткове вікно в якому відобразиться більш детальна інформація щодо цих історій. Використання даної утиліти можливе без інсталяції а лише викликом виконавчого файлу.

  1.  Призначення та використання утиліти Process Monitor

Process Monitor є розширений інструмент моніторингу для Windows та показує, діяльність для систем реального часу файлів, реєстру і процесів / потоків. Можлива робота з фільтрами щодо відображення процесів та її унікальні потужні функції роблять Process Monitor основною утилітою усунення несправностей в системі шкідливих програм.

  1.  Призначення та використання утиліти PsKill

PsKill це утиліта для примусового закінчення виконання процесів, як на локальному комп’ютері так і на віддаленому. Запуск PsKill з ідентифікатором процесу направляє його, щоб вбити процес з цим ідентифікатором на локальному комп'ютері. Якщо ви вкажете ім'я процесу то PsKill вб'є всі процеси, які мають це ім'я.

  1.  Призначення та використання утиліти PsList

Це консольна утиліта. Якщо виконати в консолі pslist exp то буде виведено статистику по всіх процесів, які починаються з "exp", який буде включати Explorer. Крім того утилітам надає можливість відобразити цю статистику з віддаленого комп’ютера.

  1.  
    Призначення та використання утиліти ProcDump

ProcDump це утиліта командного рядка, головною метою якої є моніторинг аплікацій  процесором і створення аварійного дампа під час піків, який адміністратор або розробник може використовувати для визначення причин цих піків. ProcDump також включає в себе вікно моніторингу (з використанням тих же визначень вікна, що використовуються в  Windows Диспетчер завдань). Він також може служити в якості загального процесу dump utility, які можна вставляти в інші сценарії.

  1.  Призначення та використання утиліти DiskExt

Програма DiskExt демонструє дані про розподіл розділів томи по дисках (томи з кількома розділами можуть бути розміщені на декількох дисках) та розміщення розділів на цих дисках.

  1.  Призначення та використання утиліти DiskMon

DiskMon - це програма, яка реєструє і виводить відомості про всі операції з жорстким диском, що здійснюються в системі Windows. Програму DiskMon можна згорнути в значок на панелі завдань, який виконує роль індикатора диска: зелений колір позначає операції читання з диску, а червоний - операції запису.

  1.  Призначення та використання утиліти DiskView

Програма DiskView виводить графічну схему диска, на якій можна визначити місце розташування файлу або дізнатися, який файл займає ті чи інші кластери (для цього потрібно клацнути кластер мишею). Подвійне клацання дозволяє одержати більш докладну інформацію про фото, якому виділений кластер. Програма Diskview працює в ОС Windows NT 4, 2000, XP і Server 2003.

  1.  Призначення та використання утиліти NTFSInfo

NTFSInfo - це невелика програма, що виводить відомості про томи NTFS. У її вихідних даних є відомості про розмір кластерів диска, розташування основних файлів NTFS та обсягу наявних у складі томів файлів метаданих NTFS. Як правило, ця інформація швидше цікава, ніж корисна, але деякі дані, що виводяться NTFSInfo, дійсно варті того, щоб звернути на них увагу. Приміром, ви, напевно, чули про те, що в NTFS є аналог таблиці розміщення файлів, що застосовується у файловій системі FAT. Вона називається основної таблиці файлів (MFT) і складається із записів постійного розміру, які описують розташування всіх файлів і каталогів на диску. Цікаво, що MFT ведеться у вигляді файлу, який нічим не відрізняється від багатьох інших.

  1.  
    Призначення та використання утиліти PsFile

Команда «net file» виводить на екран список файлів, відкритих іншими комп'ютерами в системі, в якій виконується дана команда, однак вона усікаємо довгі імена шляхів і не дозволяє переглядати ці дані для віддалених систем. Службова програма PsFile з інтерфейсом командного рядка виводить на екран список файлів системи, які відкриті віддалено, а також дозволяє закривати відкриті файли по імені або за ідентифікатором файлу.

  1.  Призначення та використання утиліти ShareEnum

При вирішенні питань безпеки комп'ютерних мереж під управлінням операційних систем Windows NT/2000/XP загальних файлових ресурсів часто не приділяється належна увага. Системи безпеки часто мають характерний недолік, пов'язаний з тим, що користувачі надають загальний доступ до файлових ресурсів, не забезпечує достатнього рівня захисту, що дозволяє не мають відповідних прав користувачам переглядати конфіденційні файли. В системі немає вбудованих засобів для формування списків видимих в мережі спільних ресурсів із зазначенням їх параметрів безпеки, але програма ShareEnum заповнює цю прогалину і дозволяє блокувати загальні файлові ресурси мережі.

При запуску програми ShareEnum виконується сканування всіх комп'ютерів, що входять в доступні їй домени, і відображається список загальних файлових ресурсів і ресурсів друку, а також їх параметри безпеки. Для цього програма використовує функції формування списків протоколу NetBIOS. Так як тільки адміністратор домену має можливість переглядати всі мережеві ресурси, програма ShareEnum найбільш ефективна в разі її запуску з обліковим записом адміністратора домену.

  1.  Disk Usage (DU)

Програма Du (disk usage) виводить відомості про використання дискового простору у вказаному каталозі. За умовчанням вона виконує рекурсивний перегляд каталозі і зазначає його загальний розмір, а також розмір його підкаталогів.


Мережна операційна система
(ОС) – це пакет програм, що забезпечує реалізацію та управління мережею, дає змогу клієнтам користуватись мережним сервісом.

Однорангові мережі дають змогу кожному вузлу мережі одночасно виступати в ролі сервера та клієнта.

Процес — мінімальний програмний об'єкт, що володіє власними системними ресурсами (запущена програма).

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

Потоки управління - це основна одиниця розпаралелення в Windows.

Потік виконання - це незалежний потік управління обчисленнями який має свій лічильник команд та свій стан регістрів.

Драйвер (англ. driver) - це комп'ютерна програма, за допомогою якої інша програма (зазвичай операційна система) Отримує доступ до апаратного забезпечення деякого пристрою.

Файлова система - це частина ОС призначена для зручної організації та представлення даних, що зберігаються у зовнішніх пристроях пам’яті.

Каталог – це файл, який містить системну інформацію про файли і каталоги, які входять в цей каталог.

Принцип організації ОКМ – використання одними вузлами мережні ресурси інших вузлів.


Мережні операційні системи (2010)

План-конспект лекцій (Частина 2)

  1.  Організація роботи розподілених систем

Розподілена система – це набір взаємодіючих незалежних обчислювальних машин які розглядаються користувачем як єдина система.

У схемі взаємодії клієнта та сервера в розподіленій системі (рис.1): t2  >> t1, де t1 – затримка в середині машини-клієнта, t2 - затримка обміну інформацією між клієнтом та сервером (як елементами розподіленої системи).

Основні проблеми: неможливо в підсистемі B дізнатися про зміну в підсистемі А в той самий момент, а лише через час t2.

Основні аспекти організації роботи розподілених систем:

  1.  зв'язок – інформаційна взаємодія, обмін даними, обмін повідомленнями та виклик функцій.
  2.  організація – диспетчеризація обчислювальних процесів і розподіл обчислювального навантаження, розподіл мережних ресурсів.
  3.  іменування створення та підтримка єдиного простору імен.
  4.  синхронізація – забезпечення єдиного системного часу (фізичного та логічного) служби точного часу.
  5.  Реплікація та несуперечливість – підтримка достовірності (цілісності спільних даних).
  6.  надійність – стійкість для помилок опрацювання відмов та виключних ситуацій.
  7.  захист – гарантування безпеки при передачі даних і забезпечення санкціонованого доступу до програм і даних.

Рис.1. Схема взаємодії клієнта та сервера в розподіленій системі

  1.  Основні задачі СПЗ розподілених систем:
  2.  Поєднання процесів користувачів з ресурсами (власне виконання тої задачі для якої створена система).

Віддалені ресурси – це обчислювальні машини інших користувачів пристрої збереження даних і інформаційні ресурси і так далі.

  1.  Прозорість – це спрощення механізмів взаємодії користувацьких процесів за рахунок приховування деталей їх функціонування. Від користувацьких процесів приховується той факт що всі обчислювальні процеси та ресурси в системі фізично розподілені між машинами в системі.

Види прозорості:

  •  прозорість доступу (представлення даних);
  •  прозорість місця розташування;
  •  прозорість реплікації (приховує той факт що працюємо з копією, а не самим ресурсом);
  1.  відкритість – надання послуг, сервісів, служб звертання до яких вимагає стандартного синтаксису та семантики. Стандартизовані інтерфейси взаємодії на всіх рівнях моделі OSI.
  2.  масштабованість – здатність до розширення розподіленої системи:
    1.  масштабованість по розміру – легкість підключення нових користувачів та ресурсів;
    2.  географічна масштабованість рознесення користувацьких процесів в просторі;
    3.  адміністративна масштабованість – це легкість управління та збору інформації про розподілену систему;

  1.  
    Обмін повідомленнями в розподілених системах

Зв'язок є ключовим питанням в розподілі системи

Message interface – створює свої структури даних які не залежить від application.

Message interface – повідомлення поставляється в buffer звідки в ОС.

Message router – завдання – якомога оптимальніше передати повідомлення.

Класифікація способу обміну інформацією

І. За часом існування повідомлення в системі:

  •  стійкий зв'язок – повідомлення, що передається, зберігається в системі обміну доти поки воно не надійде утримувачу.
  •  нерезидентний зв'язок – повідомлення зберігається в системі доти, доки виконуються процеси, які відправляють та отримують ці повідомлення.

UDP протокол – є втіленням не резидентного зв’язку.

ІІ. За способом організації відправки/прийому повідомлень:

  •  Асинхронний зв’язок – відправник продовжує роботу відразу після відправки
  •  Синхронний зв’язок - відправник блокується до того моменту, поки його повідомлення не дійде одержувачу.

T,Sде T=0 стійкий, T=1 нерезидентний, S=0 асинхронний, S=1 синхронний.

0,0 Стійкий асинхронний зв’язок (системи електронної пошти).

0,1 Стійкий синхронний зв’язок (вимагає більше ресурсів).

1,0 Нерезидентний асинхронний зв’язок (UDP, RPC).

1,1 Нерезидентний синхронний зв’язок з синхронізацією по отриманню.

1,1 Нерезидентний синхронний зв’язок з синхронізацією по обробці.

1,1 Нерезидентний синхронний зв’язок з синхронізацією по відповіді.

  1.  Стійкий асинхронний зв’язок в розподілених системах
  •  стійкий зв'язок – повідомлення, що передається, зберігається в системі обміну доти поки воно не надійде утримувачу.
  •  асинхронний зв’язок – відправник продовжує роботу відразу після відправки

Приклад: системи електронної пошти.

  1.  
    Стійкий синхронний зв’язок в розподілених системах

Стійкий зв'язок – повідомлення, що передається, зберігається в системі обміну доти поки воно не надійде отримувачу.

Синхронний зв’язок - відправник блокується до того моменту, поки його повідомлення не дійде одержувачу. СС зв'язок потребує найбільше ресурсів (зав. файлів на віддалений   комп’ютер)

  1.  Нерезидентний асинхронний зв’язок в розподілених системах

Нерезидентний зв'язок – повідомлення зберігається в системі доти, доки виконуються процеси, які відправляють та отримують ці повідомлення.

Асинхронний зв’язок – відправник продовжує роботу відразу після відправки.НА звязок(UDP,RPC)

  1.  Нерезидентний синхронний зв’язок в розподілених системах

(з синхронізацією по отримуванню повідомлення)

Нерезидентний зв'язок – повідомлення зберігається в системі доти, доки виконуються процеси, які відправляють та отримують ці повідомлення.

Синхронний зв’язок - відправник блокується до того моменту, поки його повідомлення не дійде одержувачу.

Нерезидентний синхронний зв’язок з синхронізацією по:

  •  отриманню.
  •  обробці.
  •  відповіді (коли відправник повідомлення блокується до отримання квитанції).

  1.  Віддалений виклик процедур (RPC – Remote Procedure Call)

Причина необхідності:

  1.  Відсутність потрібної функціональності.
  2.  Оптимізація обчислюваного процесу.
  3.  Оптимізація комунікаційного навантаження.

Послідовність дій, що реалізує RPC:

  1.  Програма клієнта викликає клієнтську заглушку.
  2.  Клієнтська заглушка створює повідомлення та викликає локальну ОС (назва процедури, що пересилати? куди? які параметри?).
  3.  ОС клієнта відсилає повідомлення віддаленій ОС.
  4.  Віддалена ОС передає повідомлення так званій серверній заглушці.
  5.  Серверна заглушка розпаковує повідомлення і викликає процедуру на сервері.
  6.  Сервер виконує процедуру і повертає результат серверній заглушці.
  7.  Серверна заглушка запаковує результат повідомлення і викликає свою локальну ОС.
  8.  ОС сервера відсилає повідомлення ОС клієнта.
  9.  ОС клієнта отримує повідомлення і передає його клієнтській заглушці.
  10.  Клієнтська заглушка розпаковує результат повідомлення і пересилає їх програмі.

Класичним прикладом є SunRPC I DCE RPC.

  1.  Віддалений виклик методів (RMI)

Цей механізм з’явився разом з ООП.

На відмінну від RPC замість client stub було створено proxy, а замість server stub створено skeleton.

Використовується у DCOM, java RMI, CORBA.

  1.  Поняття реплікації та несуперечливості

Поняття реплікації та несуперечливості включає в себе кешування.

Shared memory – спільна пам’ять.

Репліка (replica) – це копія деяких даних. Як правило кількість копій (реплік) необмежена.

Реплікація – це створення потрібної кількості реплік з метою підвищення продуктивності та надійності роботи системи.

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

Продуктивність: для великої кількості процесів, що звертаються до одних і тих же даних за рахунок створення персональних копій різко зменшується час доступу. Копія даних розміщується поблизу процесу, що їх використовує.

Ціна, яку потрібно заплатити за підвищення надійності і продуктивності це розв’язання проблеми несуперечливості всіх реплік (копій даних).

Несуперечливість – це цілісність даних.

Кожний раз при змінах копії даних вона (копія) починає відрізнятися від усіх інших. Для забезпечення несуперечливості ці зміни треба перенести у всі інші копії. Як і коли треба переносити ці зміни визначає ціну реплікації.

Протиріччя: Реплікація підвищує продуктивність, а забезпечення несуперечливості зменшує.

Основна вимога до реалізації несуперечливості: операція читання повинна давати однаковий результат для кожної реплікації в часі та «просторі» розподіленої системи.

Ключова ідея підтримки несуперечливості: оновлення всіх реплік відбувається як атомарна операція.

  1.   Моделі несуперечливості, орієнтовані на дані

Distributed data store

Модель несуперечливості (consistency model) – це домовленість між процесами та банком даних, яка гарантує несуперечливість даних. Класифікація МН:

  1.  Жорстка несуперечливість (strict). Абсолютна впорядкованість у часі всіх звертань до пам’яті.
  2.  Лінеаризація. Усі процеси спостерігають (бачать) всі звертання до банку даних в одному і  тому самому порядку і ці звертання впорядковані згідно логічного часу.
  3.  Послідовна модель. Аналогічно до 2, але звертання не впорядковані у логічному часі.
  4.  FIFO. Всі процеси бачать операції запису усіх інших процесів  у порядку їх виконання. При цьому різні процеси можуть бачити різні послідовності.
  5.  Причинно-наслідкова.Усі процеси бачать усі звертання пов’язані причинно-наслідковими зв’язками в одному і тому самому порядку.

Жорстка синхронізація найточніша.

Лінеаризація менш жорстка.

Найбільш широко використовується послідовна модель.

FIFO і причинно-наслідкова – ослаблені моделі в яких відсутній глобальний контроль, в якій послідовності які операції виконувати.

  1.  Моделі несуперечливості, орієнтовані на клієнта

Це специфічний випадок, коли система нечутлива до відносно високого ступеня порушення несуперечливості.

Наприклад: корпоративні СУБД, WWW.

Зазвичай в таких системах досить довго не відбувається зміна даних і всі репліки поступово стають несуперечливими. Ця модель називається потенційною несуперечливістю.

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

  1.  Способи організації обчислень в розподілених системах
  2.  модель клієнт-сервер
  3.  віддалені обчислення(аналог клієнт-серверної моделі з універсальним сервером)
  4.  GRID-computing

Однорідні(потужність ~ однакова)

Неоднорідні(різні потужності)

  1.  Модель віртуального обчислення
  2.  Cloud computing

  1.   Паралельна віртуальна машина (PVM)

host pool

  1.  
    Інтерфейс передачі повідомлень (MPI)

1 процес може бути одночасно у декількох групах.

Групи процесів  

Перша версія – 95

Остання версія МРІ – 97р.

  1.  Концепція адаптивного паралелізму

Ідея: програмі передають повноваження

  1.  по створенню необхідної кількості паралельних процесів (з врахуванням ресурсів і задачі)
  2.  по вибору: де і коли запускати ці процеси

master-worker

  1.  Концепція переносу коду

Концепція переносу коду – на противагу переносу даних, це переміщення виконавчого коду з 1 вузла на інший.

Принципи переносу коду:

  1.  Підвищення обчислювальної продуктивності.
  2.  Оптимізація мережного трафіка.
  3.  Забезпечення гнучкості.

В програмі можна розрізнити сегмент коду, сегмент ресурсів, сегмент виконання.

Моделі переносу коду:

  •  Модель слабкої мобільності (переноситься лише сегмент коду java applets)
  •  Модель сильної мобільності (одночасно переносяться сегмент коду та сегмент виконання)
  1.  Перенос коду ініційований відправником

SQL-запит

  1.  Перенос коду, ініційований отримувачем коду.

  1.  Програмні агенти

Програмні агенти (software agents) – це програма, яка діє цілеспрямовано в умовах нестачі інформації або невизначеності.

  1.  
    Синхронізація в розподілених системах: централізовані служби
    часу

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

GMT – Grinwich meridian time

UTC – Universal Coordinated Time

Є механізм корегування показів UTC до астрономічного часу.

International Atomac Time

Узагальнена схама централізованої синхронізації

                        Зовнішній

                       годинник

  1.  Синхронізація в розподілених системах: відмітки часу Лампорта

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

                          а         в

                                                            t

Предекат Лампорта ставить 1 подію перед іншою.

Всі процеси згідні з тим, що з початку відбулася подія а, а пізніше в. В розподіленій системі це означає:

  1.  а і в події, які відбулися в 1 процесі, то

а –>в  істина

  1.  якщо а - це відправка повідомлення, в – отримання цього повідовлення, то

а –> в  істина

Якщо для 2 подій не виконуються умови 1 і 2, то вони називаються паралельними.

Транзитивність:

а –>в  в –>с, то  а –>с  .

Відмітки часу Лампорта – це цілі числа, які ставляться у відповідність події.

Алгоритм Лампорта (присвоєння відміток):

  1.  Будь яким двом подіям в 1 процесі призначаються відмітки, різняться хоча б на 1.
  2.  Кожне повідомлення супроводжується відміткою Лампорта відправника.
  3.  Якщо ця відмітка більша за показ логічного годинника отримувача, то він встановлюється в це значення.

Векторні відмітки часу додатково враховують причинно-наслідкові зв’язки.

  1.   Алгоритми голосування в розподілених системах.

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

Необхідні умови для здійснення голосування:

  1.  кожний вузол знає кількість інших вузлів  N;
  2.  кожний вузол має ідентифікатор (наприклад MAC-адресу);
  3.  всі вузли поєднанні між собою каналами зв’язку;

Приклади алгоритмів голосування в розподілених системах:

  1.  алгоритм забіяки;
  2.  алгоритм голосування на кільці;
  3.  рандомізований алгоритм голосування;

  1.  
    Голосування в розподілених системах: алгоритм забіяки.

Усі вузли мають ID  і знають ID інших вузлів. Схема вузлів кожний з кожним.

Алгоритм:

  1.  Вузол, який претендує на лідерство розсилає усім іншим вузлам, з номерами більшими за його, повідомлення у голосуванні.
  2.  Якщо йому ніхто не відповів то він стає лідером і повідомляє про це усім іншим клієнтам. Інакше, якщо він отримав відповідь «ОК» то він не стає лідером.
  3.  Агент, який отримав повідомлення про голосування, відсилає агенту який прислав повідомлення, відповідь «ОК» і виконує п.п. 1,2

Характеристика: в такий спосіб буде вибрано вузол-лідер (вузол з найбільшим номером) за скінчений час.

  1.   Голосування в розподілених системах: алгоритм голосування на кільці.

Алгоритм:

  1.  Всі вузли мають ID і поєднанні в кільце з 2-ома сусідніми вузлами.
  2.  Якщо номер отриманий від свого сусіда більший за власний, тоді він пересилає його по кільцю. Якщо свій номер більший, тоді пересилає свій номер по кільцю (іншому з двох сусідніх вузлів).
  3.  Якщо вузол отримав свій ID то він лідер в даній групі вузлів і повідомляє інші вузли групи про те що він лідер.

  1.   Голосування в розподілених системах: рандомізований алгоритм голосування

Необхідні умови:

  1.  Вузли не мають ID.
  2.  Всі вузли взаємодіють по одно-направленій кільцевій схемі.
  3.  Кількість вузлів N відома усім вузлам.

Опис алгоритму:

  1.  Кожен вузол може знаходитись в станах S0, SR. Якщо вузол перейшов в стан S0, тоді свій номер рівний 0. Якщо в стан SR, тоді номер вибирається випадково в межах [1,N].
  2.  Алгоритм виконується циклами по N-тактів. В кожному такті вузол передає свій номер та ном. Отр. від сус. вузл, далі до іншого сусіднього вузла.
  3.  Після N-тактів роботи, кожен вузол отримав масив з N-номерів. Якщо в цьому масиві є один номер більший за всі інші номери, тоді вузол під цим номером стає лідером.
  4.  Якщо таких найбільших номерів є декілька, то всі вузли з цим номером залишаються в стані SR, а інші вузли переходять в стан S0. І цикл алгоритму продовжується для вузлів в стані SR.


25.Децентралізована  синхронізація в розподілених системах

Це варіант, коли зовнішній годинник відсутній і треба за скінченну кількість тактів встановити локальний таймер в одне локальне значення.

Як синхронізувати цілком однакові вузли, які не мають затримки:

Задача синхронізації ланцюжку стрільців(Джона Майхілла)

                                                         Децентралізована синхронізація

S0 – початковий стан в якому знаходяться всі вузли; S – стан попередньої готовності.

Агенти між собою обмінюються сигналами  з різною «швидкістю»(з якою затр. вузол який передав сигнал передасть повідомлення іншому вузлу)

Крайній вузол відправляє в ланцюжок одночасно 2 сигнали ”а1” та ”а3” при цьому специфічно поводиться крайній вузол, він їх віддзеркалить (після цього крайній вузол при отриманні сигналу ”а” переходить в стан S1).

Всі інші вузли виконують такий алгоритм:

  •  Якщо отриманий 1 сигнал, то передати його далі по ланцюжку;
  •  Якщо отримано  2-ва сигнали то віддзеркалити їх, і передати далі по ланцюжку, а також перейти в стан S;
  •  Якщо даний вузол і 2 його сусіди знаходяться в стані, S то зробити потрібну дію (зробити «постріл»).

26.Іменування ресурсів в розподілених системах: розподілений простір імен

Розподілений простір імен(name spase) - принцип відокремлення адреси (точки доступу) від імені сутності(entity)

name resolution(резолюція імен) – процедура дозволяє по імені отримати точку доступу. Точку доступу можна змінити, а ім’я лишається тим самим(локальне незалежне ім’я).

Простір імен забезпечує:

  1.  Службу іменування (додавання, видалення, пошуку імен).
  2.  Службу резолюції імен (визначення адреси сутності виходячи з її імені).

Ці дві служби робить так зв. name server (сервер імен)

В розподілених системах внаслідок великої кількості сутностей реалізація простору імен розноситься по декількох серверах.

Як правило створюється ієрархія серверів імен, яку зручно поділити на 3-ри рівні:

а) global – глобальні

б) administrative – адміністративні

в) managerial – управлінські

 Принцип ієрархії:

  1.  стабільність вмісту скеровуючи таблиць (directory tables) визначає рівень сервера імен.
  2.  Реалізація процесу резолюції імен (name resolution):
    1.  Ітеративна резолюція;
    2.  Рекурсивна резолюція.

27.Ітеративна резолюція імен

ns – name server (сервер імен) 

Переваги:

  •  Висока надійність;
  •  Низьке навантаження на сервер імен.

Недоліки:

  •  Великі витрати на взаємодію клієнт-сервер

28.Рекурсивна резолюція імен

ns – name server (сервер імен)

Переваги:

  •  Значно більш ефективне кешування результатів за рахунок того, що якась резолюція вже відбулася;
  •  Зниження витрат на взаємодію клієнта з серверами імен.

Недоліки:

  •  Велике навантаження на сервери імен (внаслідок цього на практиці на глобальному рівні застосовують тільки ітеративну резолюцію).

29.Простір імен DNS(Domain Name System)

DNS – найбільше централізована розподілена служба іменувань.

2 основних завдання:

  •  Пошук IP-адрес окремих хостів (вузлів);
  •  Пошук поштових серверів.

DNS-сервера підтримують розподілену базу відображень ім’я – адреса окрім таблиць відображення.

DNS сервер містить посилання на DNS сервери своїх відображень(під доменів)

Для обслуговування кореневого домена виділено декілька дублюючих один одного DNS серверів, адреса яких широко відома.

В DNS забезпечується повна незалежність іменування від розташування сутностей (хостів і т.д.).

30. Служби розподілених каталогів

Служба каталогів – це система організації великих даних про деякі сутності.

В розподіленому каталозі різні його частини зберігаються на різних серверах.

Приклад: служба каталогів Х.500 (ISO стек протоколів OSI)

Ці служби розрізняють елемент каталогу:

Атрибути

Скорочення

Значення

A-attr

A

x, y, z

B-attr

B

b

C-attr

C

c

Множина всіх записів формує інформаційну базу каталогів. Унікальне ім’я кожного елементу формується як набір всіх його атрибутів та їх значення.

Основні операції: додавання/знищення елементів та пошук елементів.

В службі каталогів Х.500 – реалізовані функції read (пошук по атрибутах), list (список синівських вузлів до даного вузла).

На основі  перекриття атрибутів  формують ієрархічний простір імен, який називається інформаційним деревом каталогів.

31.Іменування та локалізація мобільних сутностей в розподілених системах

Мобільна сутність – це сутність, яка змінює час від часу свою точку доступу.

Як правило мобільна сутність належить управлінському рівню ієрархії серверів імен.

Вирішення задачі при зміні в мобільній сутності:

1. Змінити відображення пари ім’я – адреса.

2. До тієї пари, яка була додаємо нову пару (додавання символічного лінка).

Недоліки: просте переписання пари, зникає зв'язок в певний момент.

Використання проміжного рівня унікальних ідентифікаторів сутностей.

 

Служба локалізації – визначає де розміщуються сутність з заданим ідентифікатором.

Прості рішення розсилки ідентифікаторі:

  •  широкомовна розсилка (в невеликих мережах)
  •  передача вказівників, це коли при переміщенні з А в В то в А залишається вказівник на В.


32.Локалізація мобільних сутностей на основі базової точки

Базова точка - фіксоване місце з якого відслідковуються переміщення мобільної сутності.

Як правило базова точка – місце створення або підключення мобільної сутності.

Схема мобільної ІР адресації

В ролі ідентифікатора використовується фіксована адреса мобільного хоста. Точкою доступу виступає контрольна ІР адреса.

33. Ієрархічна служба локалізації мобільних сутностей в розподілених системах

Недолік: на основі БТ є зберігання інформації пари фіксована і біжуча адреса.

Замість одної базової точки використовується набір базових точок організованих в ієрархічну структуру по аналогії з доменною системою імен.

Основна ідея: Оптимізація пошуку за рахунок відображення локальності і мобільності сутностей в доменну структуру. Локалізація зводиться до пошуку по дереву.

Кешування вказівникі – багаторівневе кешування, яке дозволяє пришвидшити пошук мобільної сутності за рахунок використання “географічної” інформації.                                   


Лекція 5. Організація обчислень в ОС Android

1. Загальна схема організації обчислень в ОС Android  

- кожна програма стартує як окремий користувач

- схема виконання та взаємодії програм; програмні менеджери

- Dalvik -> Java

- Linux kernel -> NDK -> C

Рис.1. Загальна схема організації обчислень в ОС Android

2. Основні поняття: Context, Activity, Intent, Service

- Context -> контекст виконання програми

- Activity -> робота/завдання

- Intent -> заявка на виконання дії (повідомлення)

- Service -> фонова програма (не використовує інтерфейс користувача)


3. Структура та організація Android-програми

- структура -> набір завдань -> {Activity}

- як правило, кожне завдання прив’язується до кожного окремого стану інтерфейсу користувача (screen view)

- приклад організації Android-програми:

Рис.2. Організація простої Android-гри у вигляді п’яти завдань

- паралельне виконання процесів -> лише один процес + лише одне його завдання захоплює екран -> current foreground Activity

«There can be only one active application visible to the user at a time — specifically, a single application Activity is in the foreground at any given time.»

- Activity stack -> стек завдань

Рис.3. Схема розташування завдань у стеку

- Activities of the application (those on the stack that are paused and the one that is active) share the same VM. They also

share the same memory heap.


- стани Activity: Running, Paused, Stopped

Running: In this state, it is the top-level activity that takes up the screen and directly interacts with the user.

Paused: This happens when the activity is still visible on the screen but partially obscured by either a transparent activity or a dialog, or if the phone screen is locked. A paused activity can be killed by the Android system at any point in time (e.g., due to low memory). Note that the activity instance itself is still alive and kicking in the VM heap and waiting to be brought back to a running state.

Stopped: This happens when the activity is completely obscured by another activity and thus is no longer visible on the screen. Our AndroidBasicsStarter activity will be in this state if we start one of the test activities, for example. It also happens when a user presses the home button to go to the home screen temporarily. The system can again decide to kill the activity completely and remove it from memory if memory gets low.

- зупинка Activity -> In both the paused and stopped states, the Android system can decide to kill the activity at any point in time. It can do so politely, by first informing the activity of that by calling its finished() method, or by being bad and silently killing its process.

4. Життєвий цикл Android Activity

Activity.onCreate(): This is called when our activity is started up for the first time. Here we set up all the UI components and hook into the input system. This will only get called once in the life cycle of our activity.

Activity.onRestart(): This is called when the activity is resumed from a stopped state. It is preceded by a call to onStop().

Activity.onStart(): This is called after onCreate() or when the activity is resumed from a stopped state. In the latter case, it is preceded by a call to onRestart().

Activity.onResume(): This is called after onStart() or when the activity is resumed from a paused state (e.g., the screen is unlocked).

Activity.onPause(): This is called when the activity enters the paused state. It might be the last notification we receive, as the Android system might decide to silently kill our application. We should thus save all state we want to persist in this method!

Activity.onStop(): This is called when the activity enters the stopped state. It is preceded by a call to onPause(). This means that before an activity is stopped, it is paused first. As with onPause(), it might be the last thing we get notified of before the Android system silently kills the activity. We could also save persistent state here. However, the system might decide not to call this method and just kill the activity. As onPause() will always be called before onStop() and before the activity is silently killed, we’d rather save all our stuff in the onPause() method.

Activity.onDestroy(): This is called at the end of the activity life cycle when the activity is irrevocably destroyed. It’s the last time we can persist any information we’d like to recover the next time our activity is created anew. Note that this method


Лекція 6. Перенос коду та програмні агенти

14.1. Основні причини переносу коду

14.2. Моделі переносу коду

14.3. Взаємозв’язок переносу коду та локальних ресурсів

14.4. Програмні агенти в розподілених системах

14.5. Система D'Agent (Agent Tcl)

6.1. Основні причини переносу коду

-- перенос коду (code migration) на противагу переносу даних -> ідея оптимального співвідношення (+ автономний пошук цього співвідношення)

-- основні причини:

- підвищення обчислювальної продуктивності за рахунок перерозподілення обчислювальних процесів по хостах (з врахуванням витрат на перенос); основна ідея: збільшення загальної продуктивності розподіленої системи за рахунок міграції процесів з сильно завантажених хостів на слабо завантажені

- оптимізація мережного трафіка -> приклади: 1) взаємодія програми-клієнта з СУБД; 2) узагальнена схема клієнт-сервер; 3) розподілений пошук інформації в глобальній мережі

- забезпечення гнучкості -> розподілена прикладна програма розбивається на частини з подальшим вирішенням де яка частина програми буде виконуватись; за рахунок механізму переносу коду з’являється можливість динамічного (real-time) конфігурування: сервер надає клієнту реалізацію деякої функціональності (у вигляді виконавчого коду) лише тоді, коли це необхідно (взагалі цей код може переноситись до клієнта з сервера "третьої сторони"); наслідок: не треба мати повний ("обтяжливий" + дорогий) комплект програмного забезпечення (майбутнє)

6.2. Моделі переносу коду

С точки зору переносу коду обчислювальний процес можна поділити на три сегменти:

- сегмент коду (набір інструкцій, що складають відповідну програму)

- сегмент ресурсів (посилання на зовнішні ресурси: файли, пристрої, інші процеси і т.п.)

- сегмент виконання (структури даних, в яких зберігається біжучий стан процесу, в тому числі "приховані" дані, стек та лічильник команд)

З урахуванням цього розрізняють:

1. Модель слабкої мобільності (weak mobility) -> допускається лише перенос сегменту коду (можливо з деякими даними ініціалізації) -> перенесений процес завжди запускається з початкового стану; приклад: Java applets.

2. Модель сильної мобільності (strong mobility) -> одночасно переносяться сегмент коду та сегмент виконання -> перенесений процес запускається з тієї точки, в якій він був зупинений до моменту переносу; сильна мобільність значно переважає слабку, але як наслідок потребує більших витрат на реалізацію.

Крім цього розрізняють:

- перенос коду, ініційований відправником коду (upload / server-side computation)

- перенос коду, ініційований отримувачем коду (Java applets)


Для слабкої мобільності також розрізняють:

- перенесений код виконується в приймаючому процесі (приклад: MS Internet Explorer -> Java VM -> Java applets)

 

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

Для сильної мобільності розрізняють:

- міграцію процесу (повний перенос; приклад: Agent Tcl (D'Agent))

- клонування процесу (UNIX fork -> PVM spawn; батьківській процес лишається на машині, а дочірній починає виконуватись віддалено)

6.3. Взаємозв’язок переносу коду та локальних ресурсів

-- Що робити з сегментом ресурсів під час переносу коду?

Розрізняють три типи взаємодії процесу з ресурсами (по спаданню "сили" взаємодії):

  1.  прив’язка по ідентифікатору (binding by identifier) -> найбільш "сильний" зв’язок; приклади: взаємодія з файлом (ім’я файлу, дескриптор файлу), взаємодія з віддаленим ресурсом (URL -> HTTP,FTP)
  2.  прив’язка по значенню (binding by value) -> процесу потрібне лише значення (value) ресурсу; приклад: бібліотеки функцій
  3.  прив’язка по типу (binding by type) -> процесу необхідний ресурс лише заданого типу; приклад: принтер, монітор

При переносі коду з’являється потреба у зміні посилань на ресурси. При цьому змінювати тип взаємодії процесу з ресурсом заборонено. З цієї точки зору розрізняють:

  1.  неприєднанні ресурси (unattached resources) -> ресурси можуть бути легко перенесені з одного хоста на інший; приклад: файли даних
  2.  приєднані ресурси (fastened resources) -> перенос або копіювання ресурсів з одного хоста на інший дуже витратні; приклад: локальні бази даних, web-сайти
  3.  фіксовані ресурси (fixed resources) -> ресурси прив’язані до конкретного хоста і не можуть бути перенесені на інший хост; приклад: локальні пристрої, сокети (кінцеві точки взаємодії)

Усі можливі варіанти проблеми взаємозв’язку переносу коду та локальних ресурсів і способи вирішення цих проблем можна представити у наступному вигляді.

неприєднанні ресурси

приєднані ресурси

фіксовані ресурси

прив’язка по ідентифікатору

MV(GR)

GR(MV)

GR

прив’язка по значенню

CP(MV,GR)

GR(CP)

GR

прив’язка по типу

RB(MV,CP)

RB(GR,CP)

RB(GR)

MV - (move) перенести ресурс

GR - (global reference) організувати глобальне посилання (вказівник) на ресурс

CP - (copy) скопіювати значення ресурсу

RB - (re-binding) виконати нову прив’язку процесу до локального ресурсу


6.4. Програмні агенти в розподілених системах

-- Визначення. Програмний агент (software agent) - це програма здатна самостійно (за власною ініціативою) планувати та виконувати послідовності деяких дій задля досягнення цілей, які поставлені перед нею її розробником.

-- Основний момент: ці послідовності дій плануються ("програмуються") не розробником, а самим програмним агентом (+ ідея самопрограмування (self-programming)). Ініціативність можлива лише в тих ситуаціях, коли є вибір між двома або більше альтернативними варіантами дій. Проблема полягає в тому, що оцінити успішність (ефективність застосування) цих варіантів в деяких випадках можна лише під час їх виникнення (real-time). Саме в таких випадках доцільно використовувати технології програмних агентів та багатоагентних систем.

-- Базова класифікація: мережні агенти + обчислювальні агенти

-- Розширена класифікація:

1) за здатністю до переміщення в мережі:

- мобільні програмні агенти

- програмні агенти не здатні до переміщень

2) за призначенням:

- мережні агенти

- активні мережі (active networks)

- адаптивна маршрутизація пакетів (packet adaptive routing)

- однорангові мережі (p2p networks)

- системи управління мережею

- обчислювальні агенти

 - розподіл навантаження (load balancing)

 - автоматичне розпаралелення задач (automatic parallelization)

 - розподілені обчислення (distributed computing)

- дослідницькі агенти (моделювання колективної поведінки)

- розважальні агенти (комп'ютерні ігри, комп'ютерна анімація)

- інтерфейсні агенти (приклад: MS Agent)

- віруси та антивіруси

-- Приклади програмних платформ для створення та використання програмних агентів: Agent Tcl (D'Agent), Java Aglets (Sun Java), Zeus (BT) та багато інших.

-- Термінологія:

mobile agent -> мобільний агент - програма здатна за власною ініціативою переміщуватись з одного хоста на інший

collaborative agent -> кооперативний агент; приклад: агент он-лайн конференції або агент системи електронної комерції; основна функція: представлення інтересів власника (користувача) в процесі взаємодії з такими самими агентами

interface (personal) agent -> інтерфейсний агент; основна функція: підтримка користувача, забезпечення універсальних інтерфейсних функцій, навчання вподобанням користувача (профілі вподобання); приклад: MS Agent

information agent -> інформаційний агент; основна функція: управління інформацією з декількох джерел

-- Стандартизація: FIPA (Foundation for Intelligent Physical Agents), www.fipa.org


6.5. Система D'Agent (Agent Tcl)

Tcl -> Tool Command Language - командна мова утиліт - скриптова мова, яка дозволяє інтегрувати різні програми, об’єкти та пристрої (розробник: корпорація Sun; найбільш відомий спосіб застосування: Tcl/Tk - створення віконних інтерфейсів в системах типу XWindows)

-- Визначення. D'Agent (Agent Tcl) - програмна платформа проміжного рівня, яка підтримує різні форми переносу коду, базуючись на ідеї програмного агента. Відповідно під агентом в цій системі розуміється програма здатна переміщуватись з одного хоста на інший. Агенти в системі D'Agent (Agent Tcl) пишуться на мовах, що інтерпретуються (базова мова - Tcl, взагалі агент може бути написаним на будь якій мові, що інтерпретуються). Агент виконується в процесі, що запущений інтерпретатором відповідної мови програмування.

-- Типи переносу коду, які підтримує система D'Agent (Agent Tcl):

1) ініційована відправником слабка мобільність (agent_submit)

2) сильна мобільність з переносом процесів (agent_jump)

3) сильна мобільність з клонуванням процесів (agent_fork)

-- приклад програмного агента D'Agent на мові Tcl, який переміщається з хоста на хост та виконує команду who UNIX-системи

proc all_users machines {

set list ""    # створити порожній список

foreach m $machines {  # для кожного з заданих хостів

agent_jump $m   # переміститись на наступний хост

set users[exec who]  # виконати команду who

append list $users  # додати результат до списку

}

return $list    # по закінченню повернути список

}

set machines …    # ініціалізувати набір машин

set this_machine …    # вказати хост, з якого буде стартувати агент

# створити агента та запустити його на виконання на машині this_machine

agent_submit $this_machine -procs all_users -vars machines\

-script {all_users $machines}

agent_receive …    # отримати результат

-- реалізація системи D'Agent (Agent Tcl)

Система D'Agent складається з п’яти рівнів:

5

Агенти

4

інтерпретатор

Tcl

інтерпретатор

Scheme

інтерпретатор

Java

3

Узагальнений агент

2

Сервер D'Agent

1

TCP/IP

E-mail

1 -> необхідні для роботи D'Agent складові операційної системи

2 -> управління агентами, авторизація, переміщення агентів та зв’язок між агентами

3 -> незалежна від мови програмування реалізація основних моделей агентів (основна функціональність агентів)

4 -> інтерпретатори мов програмування, що використовують функціональність з третього рівня

5 -> програмні агенти, що написані на мовах програмування з четвертого рівня


користувач

Прикладне ПЗ

Службові процеси ОС

hardware

ОС kernel

host1

worker()

master ()

retread()

worker()

host2

worker()

Piranha – одна із перших реалізацій

host n

worker()

n1

n2

n3


 

А также другие работы, которые могут Вас заинтересовать

39605. ФОРМИРОВАНИЕ СТРУКТУР КРЕМНИЙ-НА-ИЗОЛЯТОРЕ 3.21 MB
  Цель работы исследование существующих методов формирования структру КремнийНаИзоляторе а так же оптимизация режимов формирования КНИ пластин с целью уменьшения дефектов рабочего слоя кремния и уменьшения дозы имплантируемых ионов. Нами были выполнены работы по отработке и развитию технологии изготовления КНИ пластин по мотивам метода SmartCut.5 ВВЕДЕНИЕ В КНИ СТРУКТУРЫ Основные преимущества КНИ структур .6 Структура КНИ пластины.
39606. Методические указания к лабораторным работам по дисциплине «Информационное моделирование» 558.5 KB
  Выделение и описание сущностей Целью данной работы является умение использовать метод моделирования сущностьсвязь на практике на шаге работы с сущностями умение доказательно выделять все сущности из конкретного описания предметной области. Из выполненного описания предметной области выделить все сущности. Необходимо доказать что в данной предметной области описаны именно выделенные студентом сущности. Основные концепции модели сущностьсвязь русское название метода ERдиаграмм включают понятие типа сущности или сущность.
39607. Информационно-справочная система «Путеводитель по торговым объектам Гродненской области» на языке программирования C# 2.6 MB
  Всё это обусловлено тем, что не все учебные пособия отражают ту специфику, все те необходимые аспекты, которые зависят от предметной области и требований преподавателя. К тому же постоянно возникают новые задачи
39608. Эффективность использования компьютерных систем бронирования в индустрии гостеприимства «Fidelio Front Office» 427.5 KB
  В третьей главе рассматриваются передовые технологии резервирования, основанные на применении компьютерных средств. Подробно описано влияние электронной коммерции на индустрию гостеприимства. Автором исследуется резервирование через всемирную компьютерную сеть Internet, являющееся одним из ведущих направлений развития технологий бронирования.
39609. Улучшение условий получения медицинской помощи беременными женщинами и роженицами с патологиями 4.81 MB
  В роддоме существует специальное помещение выписная комната. Рекомендуемый состав помещений родильного отделения составлен с учетом требований методических рекомендаций 173ПД 707 Центральная входная группа № Наименование структурного подразделения и помещения Площадь м2 1 Вестибюль для посетителей 5колво кабинетов ведущих прием 2 Аптечный киоск 3 Гардероб для посетителей 18 4 Регистратура с картохранилищем 1612 5 Справочная с комнатой приема передач 6 6 Помещение охраны 8 7 Санитарный узел с местом для хранения уборочного инвентаря...
39610. КОДИРОВАНИЕ ИНФОРМАЦИИ С ИСПОЛЬЗОВАНИЕМ ХАОТИЧЕСКИХ ПРОЦЕССОВ 1.01 MB
  Криптография — прикладная наука, она использует самые последние достижения фундаментальных наук и, в первую очередь, математики. С другой стороны, все конкретные задачи криптографии существенно зависят от уровня развития техники и технологии, от применяемых средств связи и способов передачи информации.
39611. Электронный обмен данными 11.46 MB
  Электронный обмен данными - это реальность, с которой сегодня сталкивается практически каждый. Информационные системы, компьютерные сети, электронная почта - вот далеко не полный перечень тех средств, с помощью которых происходит обмен данными в электронном виде.
39612. Выбор структурной схемы системы видеонаблюдения 2.27 MB
  ЭЛЕКТРИЧЕСКИЙ РАСЧЁТ ОСНОВНЫХ ТЕХНИЧЕСКИХ ПАРАМЕТРОВ СИСТЕМЫ ВИДЕОНАБЛЮДЕНИЯ. ОЦЕНКА ЗАТРА НА ПРОЕКТИРОВАНИЕ И ВНЕДРЕНИЕ СИСТЕМЫ ВИДЕОНАБЛЮДЕНИЯ ПРОСТРАНСТВЕННО РАЗНЕСЁННЫХ ОБЪЕКТОВ. ВВЕДЕНИЕ За последние годы видеонаблюдение стало неотъемлемой частью комплексной системы безопасности объекта поскольку современные системы видеонаблюдения позволяют не только наблюдать и записывать видео но и программировать реакцию всей системы безопасности при возникновении тревожных событий или ситуаций.