Основні розділи файлової системи ОС Android
/boot
/system
/recovery
/data
/cache
/misc
/root
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Відзначимо, що тільки / SDCARD міститься у всіх Android пристроїв, а решта є лише в деяких пристроях. Давайте тепер поглянемо на мету та зміст кожного з цих розділів.
/boot
Це розділ, який дозволяє телефону завантаження , як випливає з назви. Вона включає в себе завантажувач і ядро. Без цього розділу, пристрій просто не зможе завантажитися. Витираючи цей розділ від відновлення повинно бути зроблено тільки в разі крайньої необхідності і колись зробили, пристрій не повинно бути перезавантажений перед установкою нової, яка може бути зроблено шляхом установки диска, який включає / завантажувального розділу.
/system
Цей розділ в основному містить всю операційну систему, крім ядра і завантажувача. Це включає в себе інтерфейс користувача для Android, а також всі системні програми, які поставляються з попередньо встановленою на пристрої. Витираючи цей розділ видалити Android від приладу без робить його не завантажується, і ви все одно можете поставити телефон в режим відновлення завантажувача або для установки нового диска.
/recovery
Відновлення розділу можна розглядати як альтернативний завантажувальний розділ, який дозволяє при завантаженні пристрої в консоль відновлення для проведення передової відновлення і технічного обслуговування на ньому. Щоб дізнатися більше про розділ і його вміст, див. "Про Android відновлення" розділ нашого керівництва з ClockworkMod відновлення .
/data
Також називається користувача даних, дані розділ містить дані користувача - це де ваші контакти, повідомлення, налаштування та додатки, які ви встановили йти. Витираючи цей розділ в основному виконує скидання настройок на Вашому пристрої і відновлення його, як це було при першому завантаженні, або, як це було після останньої офіційної чи вибіркової інсталяції диска. При виконанні стирання даних / скидання від відновлення, саме цей розділ, який ви витираючи.
/cache
Це розділ, де Android зберігає часто використовувані дані і додатки компонентів. Очищення кешу не впливає на ваші особисті дані, а просто позбавляється від наявних даних там, які отримує автоматично відновлений як ви будете продовжувати використовувати пристрій.
/misc
Цей розділ містить різні параметри системи у вигляді включення / вимикання вимикачів. Ці параметри можуть включати CID (Carrier або регіон ID), USB- конфігурації і деякі налаштування апаратного і т.д. Це дуже важливий розділ, і якщо він пошкоджений або відсутній, деякі з функцій пристрою буде не буде нормально функціонувати.
/ SDCARD
Це не поділ на внутрішню пам'ять пристрою, а карти SD. З точки зору використання, це ваше місце для зберігання використовувати на свій розсуд, зберігати ваші засоби масової інформації, документи, диски і т.д. на ньому. Витираючи це абсолютно безпечно, якщо ви резервне копіювання всіх даних, які вимагають від нього, на ваш комп'ютер. Хоча деякі встановлені користувачем програми, зберегти дані і налаштування на карті SD і витираючи цей розділ дозволить Вам втратити всі дані.
На пристроях з обох внутрішньої і зовнішньої карти SD - пристроїв, таких як Samsung Galaxy S і кілька таблетки - / SDCARD розділ завжди використовується для позначення внутрішньої карті пам'яті SD. Для зовнішньої карти SD - якщо є - альтернативний розділ використовується, яке відрізняється від пристрою до пристрою. У разі пристроїв Samsung Galaxy S серії, це / SDCARD / SD в той час як у багатьох інших пристроїв це / sdcard2. На відміну від / SDCARD, жодна система або додаток даних все, що автоматично зберігаються на зовнішню карту пам'яті SD, і все справжнє, як по ньому був доданий туди користувача. Ви можете безпечно знищити його після створення резервної копії всіх даних з нього, що необхідно зберегти.
/sd-ext
Це не стандартний розділ Android, але став популярним в користувальницький сюжет ROM. Це в основному додатковий розділ на вашому SD-карта, яка діє як / даних розділу при використанні з певними диски, які мають особливі функції називається APP2SD + або data2ext включена. Це особливо корисно для пристроїв з невеликим вбудованої пам'яті відведено / дані розділу. Таким чином, користувачі, які хочуть встановити більше програм, ніж у внутрішній пам'яті дозволяє можемо зробити цей розділ і використовувати його з користувацьких дисків з підтримкою цієї функції, щоб отримати додаткові сховища для встановлення своїх додатків. Витираючи цей розділ по суті ж, як і витираючи / даних розділів - ви втратите ваші контакти, SMS, ринок додатків і настройок.
При цьому ми закінчуємо нашу подорож по розділам Android. Тепер при установці диска або мод, який вимагає від вас знищити певні розділи перед установкою, ви повинні бути в кращому становищі, щоб знати, що ви втрачаєте, а що ні і, таким чином, ви будете знати, що для резервного копіювання, а що ні.
Ресурси (Resources) Android-програми
Тип ресурсу
Розміщення
Опис
Кольори
/ Res / values / ім'я_файлу
Ідентифікатор кольору, який вказує на колірний код. ID таких ресурсів виражаються в R.java як R.color .*. XML-сайт: / resources / color
Рядки
/ Res / values / ім'я_файлу
Строкові ресурси. У їх число також входять рядки в форматі java і html. ID таких ресурсів виражаються в R.java як R.string .*. XML-сайт: resources / string. Можна використовувати додаткове форматування за допомогою стандартних html-тегів <b>, <i> і <u>. Методи, які будуть обробляти рядкові ресурси з HTML-форматуванням, повинні вміти обробляти ці теги.
Меню
/ Res / values / ім'я_файлу
Меню в додатку можна задати як XML-ресурси.
Параметри
/ Res / values / ім'я_файлу
Являє собою параметри або розміри різних елементів. Підтримує пікселі, дюйми, міліметри, які не залежать від щільності екрану пікселі (dip) і пікселі, які не залежать від масштабу. ID таких ресурсів виражаються в R.java як R.dimen .*. XML-сайт: resources / dimen
Зображення
/ Res / drawable / ваші_файли
Ресурси-зображення. Підтримує формати JPG, GIF, PNG (самий кращий) та ін Кожне зображення є окремим файлом і отримує власний ідентифікатор, який формується на ім'я файлу без розширення. Такі ID ресурсів представлені у файлі R.java як R.drawable .*. Система також підтримує так звані розтягувати зображення (stretchable image), в яких можна змінювати масштаб окремих елементів, а інші елементи залишати без змін.
Отрісовиваємих кольору
/ Res / values / ваш_файл або / res / drawable / ваші_файли
Представляє кольорові прямокутники, які використовуються в качетве фону основних отрісовиваємих об'єктів, наприклад крапкових малюнків. Підтримка такої функції забезпечується тегом значення drawable, що знаходяться в підкаталозі значень. Такі id ресурсів виражаються у файлі R.java як R.drawable .*. ХМL-сайт для такого файлу: / resources / drawable. В Android за допомогою спеціальних ХМL-файлів, розташованих в / res / drawable, також подорожувати округлені і градієнтні прямокутники. Корнєвим ХМL-тегом для drawable є <shape>. Ідентифікатори таких ресурсів виражаються у файлі R.java як R.drawable .*. У такому випадку, кожне ім'я файлу перетвориться в унікальний id отрісовиваємих об'єкта
Анімація
/ Res / anim / ваш_файл
Android може виконати просту анімацію на графіку або на серії графічних зображень. Анімація включає обертання, поступова зміна, переміщення і протяг.
Довільні XML-файли
/ Res / xml / *. xml
В Android в якості ресурсів можуть використовуватися довільні XML-файли. Вони компілюються в aapt. Ідентифікатори таких ресурсів також виражаються у файлі R.java як R.xml .*
Довільні необроблені ресурси
/ Res / raw / *.*
Будь-які нескомпілірованние виконавчі або текстові файли, наприклад, відео. Кожен файл отримує унікальний id ресурсу. Ідентифікатори таких ресурсів виражаються у файлі R.java як R.raw .*
Довільні необроблені активи
/ Assets /*.*/*.*
Можна використовувати довільні файли в довільно названих каталогах, які знаходяться в підкаталозі / assets. Це не ресурси, а просто необроблені файли. У цьому каталозі, на відміну від / res, підкаталоги можуть розташовуватися на будь-якій глибині. Для таких файлів не створюються ідентифікатори ресурсів. При роботі з ними потрібно використовувати відносне ім'я шляху, починаючи с / assets, але не указиваея цього каталгоа в імені шляху
33. Основні методи android.content.Context для роботи з файлами
openFileInput(String) - Відкрити приватний файл, асоційований з Context цього застосунку (для читання).
openFileOutput(String, int) - Відкрити приватний файл, асоційований з Context цього застосунку (для запису).
deleteFile(String) - Видалити даний приватний файл, асоційований з Context цього застосунку.
getFileStreamPath(String) - Повертає абсолютний шлях на ФС, де даний файл створений openFileOutput зберігаються.
getDir(String, int) - Повертає, створюючи при потребі, нову директорію, де застосунок може зберігати свої файли даних.
getDatabasePath(String name) - Повертає абсолютний шлях на ФС до файлу бази даних, створеної в openOrCreateDatabase.
GetFilesDir() - Повертає абсолютний шлях до директорії на ФС де файли створені через openFileOutput зберігаються.
getExternalFilesDir(String type) - Повертає абсолютний шлях до директорії на зовнішній ФС (external storage), де застосунок може зберігати відносно до власне нього файли.
GetExternalCacheDir() - Повертає абсолютний шлях до директорії на зовнішній ФС, де застосунок може створювати свої кеш-файли.
GetCacheDir() - Повертає абсолютний шлях до директорії, де застосунок може створювати свої кеш-файли.
fileList() - Повертає список приватнийх файлів контексту.
Використання методу openOrCreateDatabase()
SQLiteDatabase openOrCreateDatabase (String name, int mode, SQLiteDatabase. CursorFactory factory, int version)
Де
name - ім'я бази даних, унікальне в рамках програми
mode - константа, для вказівки режиму (MODE_PRIVATE або 0 - за умовчанням, MODE_WORLD_READABLE для читання, MODE_WORLD_WRITEABLE для запису)
factory – фабрика курсорів, яка по замовчуванню повинна бути Null
version – версія БД
Повертає цей метод об'єкт типу SQLiteDatabase.
Переваги: не потрібно вказувати повний шлях до файлу бази даних. Досить тільки її імені. так як шлях до додатка ми вже знаємо виходячи з даних, які надає Context.
34. Використання методу execSQL()
Метод об’єкту типу SQLiteDataBase. виконує SQL команди, які не повертають наборів даних - це INSERT, UPDATE і DELETE але переважно використовується для створення даних типу CREATE.
Приклад: db.execSQL(“query string”);
35 Робота з базами даних в ОС Android: метод insert()
insert () - метод для вставки даних в БД. Повинен повернути щойно вставлений ключ або -1, якщо щось пішло не так.
public long insert (String table, String nullColumnHack, ContentValues values)
параметри
table – таблиця, у яку потрібно вставити рядок
ColumnHack необов'язкове; може бути нульовим. SQL не дозволяє вставити рядок з порожнім значенням повністю, принаймні один стовпець значення. Якщо ваші значення за умови порожні,. Якщо не встановлено в NULL, параметр nullColumnHack надає ім'я
values - значення по замовчуванню
36. Робота з базами даних в ОС Android: метод update()
int update (String table, ContentValues values, String whereClause, String [] whereArgs) - оновити записи, повертається число оновлених записів;
параметри
table - таблиця
ContentValues Нове значення
whereClause додатковий WHERE при оновленні. Передача нульового значення оновить усі рядки.
37. Робота з базами даних в ОС Android: метод delete()
Int delete (String table, String whereClause, String [] whereArgs)
Зручний метод для видалення рядків в базі даних.
Параметри
table - таблиця
whereClause додатковий WHERE при видаленні. Передача нульового значення видалить усі рядки
повертає:
кількість видалених рядків
38. Супутникова система глобальної навігації GPS
GPS - глобальна система позиціонування. Це технологія, де супутники відправляють радіосигналів, які GPS-приймачі використовують для роботи та визначення поточного місцезнаходження (про що свідчать широта, довгота і висота).
GPS працює таким чином: 24 робочих супутника знаходяться на орбіті Землі. Навігатор GPS або GPS-трекер шукає сигнал, принаймні, з трьох супутників.
Приймач вимірює час посилу сигналу, час його отримання, а потім вираховує, як далеко супутник знаходиться від приймача. Отримуючи координати всіх трьох супутників, GPS-приймач використовує результати для обчислення місця розташування на земній кулі. Перший супутник GPS був запущений в 1978 році, і до 1995 року Міністерство оборони США оголосило про функціональність системи. Однак до 2000 року використання GPS навігації було мало функціонально. Завдяки спеціальній частоті (L2), військові можуть отримати координати до міліметрової точності в той час, як автомобільні або ручні GPS-навігатори можуть відхилятися від координати до 100 футів (~ 3 метра).
39. Метод getLatitude()
double getLatitude(). Метод об’єкту класу Location. Повертає широту даного розміщення.
40. Метод getLongitude()
Double getLongitude().Метод об’єкту класу Location. Повертає довготу даного розміщення.
41. Метод getAltitude()
double getAltitude ().Метод об’єкту класу Location. Повертає висоту даного розміщення.
42. Метод distanceTo()
public float distanceTo (Location dest) Повертає приблизну відстань в метрах даним розташуванням та розташуванням яке приймається. Відстань визначається за допомогою WGS84 еліпсоїда.
УПРАВЛІННЯ ПАМ’ЯТТЮ: ПРИНЦИП ЛОКАЛЬНОСТІ ЗВЕРТАНЬ
Якщо програма читає дані або код програми то швидше за все наступна частина даних буде знаходитись недалеко від останньо-використаної. Це використовується як основа при прогнозуванні потрібних даних в основній пам’яті. Цей принцип локальності можна проаналізувати заздалегідь проаналізувавши код програми(цим займаються деякі модулі оптимізуючих компіляторів), можливе і апаратне рішення. Пам’ять розглядався як пасивний пристрій, але реально зараз розглядають його як активний, який може взяти на себе деякі функції(інтегрований контролер).
ОСНОВНІ ВИДИ ЛОКАЛЬНОСТІ ЗВЕРТАНЬ
Локальність в часі(temporal locality), просторі (spatial locality ), рівновіддалена локальність(equidistant locality), локальність розгалуження(branch locality) .
УПРАВЛІННЯ ПАМ’ЯТТЮ: ЛОКАЛЬНІСТЬ У ЧАСІ(TEMPORAL LOCALITY)
Якщо відбулося звертання по деякій адресі, то наступне звертання по цій же адресі з великою імовірністю відбудеться найближчим часом(tempral proximity);
УПРАВЛІННЯ ПАМ’ЯТТЮ: ЛОКАЛЬНІСТЬ У ПРОСТОРІ(SPATIAL LOCALITY )
Якщо відбулося звертання по деякій адресі, то з високим ступенем імовірності найближчим часом відбудеться звертання до сусідніх адрес.
УПРАВЛІННЯ ПАМ’ЯТТЮ: ЕКВІДИСТАНТНА ЛОКАЛЬНІСТЬ
Рівновіддалена локальність(Equidistant locality). Ділянки пам’яті до яких відбуваються звертання утворюють регулярну (передбачувану) структуру у просторово-часовому координатному просторі. За простою лінійною функцією можна прогнозувати до якої ділянки пам’яті буде звертання в наступний момент часу. Такі структури утворюються в циклах. Основна мета знаходження регулярності звертаннях, не обов’язково по лінійному закону але функції з повтором.
АВТОМАТИЧНЕ УПРАВЛІННЯ ВИДІЛЕННЯМ ТА ЗВІЛЬНЕННЯМ ПАМ’ЯТІ
Стратегія GC складається з 2 кроків:
Знаходження об’єктів даних які не будуть використовуватись в подальшому(сміття);
Вивільнення ресурсів які споживають ці об’єкти;
При кожному оголошені змінної під неї виділяється область пам’яті. GC працює в нескінченному циклі збору даних про сміття, використовують різного роду програмування…
УПРАВЛІННЯ КІЛЬКІСТЮ СТОРІНОК ВИДІЛЕНИХ ПРОЦЕСУ
1. Управління заміщенням сторінок. Кількість сторінок що підвантажується в основну пам'ять постійна для процесу. Page fault.
2. Управління кількістю сторінок. Кількість сторінок змінна.
Задача на розподіл ресурсів:
Кожному процесу потрібно нарізати ресурсів з загально доступного.
Жодний з сучасних алгоритмів заміщення сторінок не гарантує захисту від trashing ( попадання процесу в область де PF збільшена вище допустимої верхньої границі). При побудові цих алгоритмів визначають робочу множину (working set ) W(t,T),
де робоча множина це набір сторінок p1,p2,...pn які активно використовуються процесом. Робоча множина визначаеться для моменту часу t та вікна робочої множини T.
Якщо на осі часу поставити точку t то важлива глибина пам’яті, які сторінки попадають в множину а які ні. Вікно спостереження це проміжок часу на протязі якого ми спостерігаємо за сторінками. Тоді ми можемо визначити скільки сторінок може потрапити в робочу множину W(t,T) -> m*.
Формування набору сторінок змінюється в часі, хоча в принципі є досить стабільним.
ФІЗИЧНА ОРГАНІЗАЦІЯ ПРИСТРОЇВ ВВОДУ/ВИВОДУ
Пристрою вводу-виводу поділяються на типи:
Блок-орієнтовані пристрої зберігають інформацію в блоках фіксованого розміру, кожний з який має свою власну адресу ( диски ).
Байт-орієнтовані пристрої не адресовані і не дозволяють здійснювати операцію пошуку. Вони генерують чи використовують послідовність байтів. Прикладами є термінали, рядкові принтери.
Мережні пристрої –карти, мережні адаптери.
Аудіо та відео пристрої.
Таймери
Зовнішній пристрій звичайно складається з механічного (власне пристрій) й електронного компонента (контролером пристрою чи адаптером). Деякі контролери можуть керувати декількома пристроями і мають програмну модель (регістри команд, статусу та даних).
Варіанти фізичної організації в/в:
1- Пристрій разом зконтролларом знаходиться за межами ЕОМ
2- Контролер знаходиться в корпусі ЕОМ
3- Пристрій і вся система знаходиться в корпусі ЕОМ (HDD)
ОРГАНІЗАЦІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ВВОДУ/ВИВОДУ
Основна ідея організації програмного забезпечення вводу-виводу полягає в розбивці його на кілька рівнів, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх,а ті, у свою чергу, забезпечують зручний інтерфейс для користувачів.
Ключовим принципом є незалежність від пристроїв. Вигляд програми не повинен залежати від того, чи читає вона дані з гнучкого чи з твердого диска.
Проблема обробки помилок вирішується контролером.
Ще одне ключове питання – це використання блокувальних (синхронних) і неблокувальних (асинхронних) передач.
Мета:
Забезпечити зручність програмування в рамках подолання семантичного розриву.
Забезпечити взаємонезалежність програмного забезпечення та пристроїв різних типів.
СХЕМА БАГАТОРІВНЕВОЇ ОРГАНІЗАЦІЇ ПЗ ВВОДУ/ВИВОДУ
Абстракція незалежності ( приховування)
Концепція потоків в/виводу.
Відображення пристроїв на файлову систему.
Завдання.
Приховування при одночасному доступі до одного пристрою виникає проблема некоректного змагання паралельних процесів за доступом до пристрою.
Spoding (розмотування) – процес моніторингу пристрою в/вив, який вирішує проблему одночасного доступу, формуючи через каталог звернень до пристроїв. Альтернативою може бути механізм монопольного захоплення.
/
УПРАВЛІННЯ ВВОДОМ/ВИВОДОМ: ОБРОБКА ПЕРЕРИВАНЬ
Існують 2 ідеології побудови систем:
Офісні, лабораторні системи – тотальна передбачуваність їх роботи. Для таких систем намагаються зменшити кількість виникнення переривань та локалізувати їх в надрах ОС.
Системи реального часу. Обробка переривань – центральний момент роботи системи. Характерна непередбачуваність. Управління процесами обробки переривань здійснює контролер переривань.
В сучасних контролерах переривань реалізована складна система пріоритетів яка використовується при побудові черги переривань на обробку.
УПРАВЛІННЯ ВВОДОМ/ВИВОДОМ: ДРАЙВЕРИ ПРИСТРОЇВ
Драйвер (англ. driver) - це комп'ютерна програма, за допомогою якої інша програма (зазвичай операційна система) Отримує доступ до апаратного забезпечення деякого пристрою. У загальному випадку, для використання будь-якого пристрою (як зовнішнього, так і внутрішнього) необхідний драйвер. Операційна система керує деяким «віртуальним пристроєм», що розуміє стандартний набір команд. Драйвер переводить ці команди в команди, які розуміє безпосередньо пристрій.
ПОНЯТТЯ ФАЙЛОВОЇ СИСТЕМИ
Файлова система - це частина ОС призначена для зручної організації та представлення даних, що зберігаються у зовнішніх пристроях пам’яті.
Файлова система може також означати:
Сукупність всіх файлів на диску;
Набір структур даних, які використовуються для управління даними;
Набір системного ПЗ, який забезпечує управління файлами.
FAT(File Allocation Table) -> FAT16, FAT32
UFS(Unix File System)
NTFS(NT File System)
ІМЕНУВАННЯ ФАЙЛІВ (ІЄРАРХІЧНА СИСТЕМА ІМЕН)
Принцип отримати доступ до ресурсу, означає дізнатись його імя. З точки зору зручності для користувача файлам надаються символьні імена. Основна умова унікальність імені файлу.
Ідея ієрархії імен: згідно неї простір імен реалізується у вигляді направленого графу.
Паралельна інформаційна структура для системи(несимвольна).
Приклад: лінійний каталог номерів файлів. (в Unix i-node)
n2:alc n3:cde n4:four
ОБ’ЄКТИ ФАЙЛОВОЇ СИСТЕМИ
Файл даних(звичайний файл);
Спеціальні файли(файли пристрою). Файл асоційований з пристроєм вводу/виводу;
Каталоги (вузли в ієрархічній системі імен);
Каталог – це файл, який містить системну інформацію про файли і каталоги, які входять в цей каталог.
Способи збереження файлу:
Вся інформація про файл і каталог міститься в цьому файлі;
Коли ця інформація міститься у вигляді посилань на відповідні рядки в службових таб.
Посилання (лінки) призначені для переконфігуровування дерева імен у зручну форму;
Типи лінків: Hard link та Simbolic(Soft) link.
ЛОГІЧНА ТА ФІЗИЧНА ОРГАНІЗАЦІЯ ФАЙЛУ
Логічна організація файлу призначена для програміста (включає початок, запис, кінець). Лінійна послідовність запису символів (потік символів) з вказівником початку файлу.
В результаті виникають певні ускладнення:
Розбиття на рядки(однакової довжини, блоки), тому потрібний символ кінця рядка;
Записи з ключами або індексами
Приклад: теги HTML/XML. При цьому ускладнюється семантичний розбір.
Фізична організація файлу – як файл розміщено у пристрої пам’яті (залежить від специфіки цього пристрою).
Основним принципом фізичної організації файлу, що файли розбиваються на блоки:
Лінійно-послідовне розміщення блоків;
Розміщення блоків зв’язаним списком;
Існують методи «боротьби» з фрагментацією дискового простору (дефрагментаційні утиліти)
Існують методи розміщення нових файлів, в такий спосіб, щоб зменшити фрагментацію диску.
АРХІТЕКТУРИ ФАЙЛОВИХ СИСТЕМ
Окремі логічні диски з незалежними файловими системами (використовують драйвери файлових систем, над якими розташований менеджер файлових систем, що ними керують).
Загальна файлова система до якої підключаються підпорядковано частинами файлові системи зовнішніх пристроїв пам’яті (Unix)
Інші архітектурні особливості:
Внесення змін в файлову систему. Файлова система з веденням журналу в якій реалізована можливість відкату.
Стиск даних
Безпека (шифрування/дешифрування даних)
Віртуальні файлові системи (у складі віртуальних машин)
Альтернативні способи організації даних:
Система лінійних каталогів(бібліотечний каталог). Підходять для збереження однорідних та однотипних даних.
Реляційні бази даних.
Гіпертекстові системи(симантичні мережі)
. Іменування ресурсів в розподілених системах
13.1. Розподілений простір імен
13.2. Простір імен DNS
13.3. Служби розподілених каталогів
13.4. Іменування та локалізація мобільних сутностей
13.5. Локалізація сутностей на основі базової точки
13.6. Ієрархічна служба локалізації
13.1. Розподілений простір імен
В основу розподіленого простору імен покладений принцип відокремлення адреси ресурсу (=точки доступу до ресурсу) від його імені. За рахунок цього ресурс з однаковим ім’ям може змінювати свое «розташування» в розподіленій системі без необхідності змінювати його ім’я. Процедура визанаення точки доступу до ресурсу на основі його імені називається резолюцією імен (name resolution). Ця процедура дозволяє дозволяє по імені ресурсу (комп’ютера, файла, бази даних, зовнішноього пристроя і т.п.) отримати доступ до нього. При цьому точку доступу до ресурсу можна змінювати, в той час як ім’я ресурсу лишається тим самим (локальне незалежне ім’я).
Будь яка реалізація розподіленого простору імен передбачає використання двох основних служб (=сервісів):
Службу іменування (додавання, видалення, пошуку імен).
Службу резолюції імен (визначення адреси сутності виходячи з її імені).
Програмна система, яка реалізує ці дві служби/сервіси називається сервер імен (name server). В розподілених системах внаслідок великої кількості сутностей реалізація простору імен розноситься по декількох серверах імен. При цьому, як правило, створюється ієрархія серверів імен, яку зручно поділити на 3-ри рівні:
1) глобальний рівень (global layer) -> root nodes;
2) адміністративний рівень (administrational layer);
3) управлінський рівень (managerial layer).
В основу ієрархії покладений принцип стабільності (незмінності) вмісту скеровуючих таблиць (directory tables): чим більше швидкість змін в таблиці, тим нижчий рівень в ієрархії займає відповідний сервер імен.
Реалізація процесу резолюції імен (name resolution):
1) Ітеративна резолюція імен (iterative name resolution);
2) Рекурсивна резолюція (recursive name resolution).
Ітеративна резолюція імен (рис.1) передбачає послідовне звертання до серверів імен кожного рівня ієрархії в процесі визначення адреси ресурсу (точки доступу до ресурсу) на основі його імені.
Рис.1. Приклад ітеративної резолюції імен
(ns – name server (сервер імен))
Переваги: 1) Висока надійність; 2) Низьке навантаження на сервер імен.
Недоліки: Великі витрати на взаємодію клієнт-сервер.
Рекурсивна резолюція імен (рис.2) передбачає звертання лише до сервера найвищого рівня ієрархії з наступною міжсерверною взаємодією по рекурсивному розбору імені для визначення відповідної адреси (точки доуступу).
Рис.2. Приклад рекурсивної резолюції імен
(ns – name server (сервер імен))
Переваги: 1) Значно більш ефективне кешування результатів за рахунок того, що якась резолюція вже відбулася; 2)Зниження витрат на взаємодію клієнта з серверами імен.
Недоліки: 1) Велике навантаження на сервери імен (внаслідок цього на практиці на глобальному рівні застосовують тільки ітеративну резолюцію).
13.2. Простір імен DNS
DNS (Domain Name System) – система доменних імен – є одною з найбільш популярних розподілених служб іменування (використовюється для резолюції доменних імен у IP-адреси).
DNS вирішує два основних завдання:
1) Пошук IP-адрес окремих хостів (вузлів);
2) Пошук поштових серверів.
Служба DNS використовує в своїй роботі протокол типу «клієнт-сервер», відповідно розрізняють DNS-клієнти та DNS-сервери. DNS-сервери (=сервери імен) підтримують розподілену базу даних відображень «ім’я IP-адреса». DNS-сервери поєднані в жорстку ієрархічну структуру, яка, як правило, відзеркалює простір відповідних доменних імен. Тобто кожному домену ставиться у відповідність свій DNS-сервер. Окрім таблиці відображень «ім’я IP-адреса» DNS-сервер містить посилання (IP-адреси) на DNS-сервери своїх піддоменів (аналог directory tables) та іншу службову інформацію (адреси поштових серверів, зворотнє відображення IP-адрес, довідкову інформацію та ін.).
Для обслуговування кореневого домена (root node) виділено декілька дублюючих один одного DNS серверів, IP-адреси яких широко відомі. В DNS забезпечується повна незалежність іменування від розташування сутностей (хостів і т.д.).
13.3. Служби розподілених каталогів
Служба каталогів – це система організації великих даних про деякі сутності. В розподіленому каталозі різні його частини зберігаються на різних серверах.
Приклад: служба каталогів Х.500 (ISO стек протоколів OSI)
Ці служби розрізняють елемент каталогу:
Атрибути
Скорочення
Значення
A-attr
A
x, y, z
B-attr
B
b
C-attr
C
c
Множина всіх записів формує інформаційну базу каталогів. Унікальне ім’я кожного елементу формується як набір всіх його атрибутів та їх значення.
Основні операції: додавання/знищення елементів та пошук елементів.
В службі каталогів Х.500 – реалізовані функції read (пошук по атрибутах), list (список синівських вузлів до даного вузла).
На основі перекриття атрибутів формують ієрархічний простір імен, який називається інформаційним деревом каталогів (рис.3).
Рис.3. Приклад схеми інформаційного дерева каталогів
13.4. Іменування та локалізація мобільних сутностей
Мобільна сутність – це сутність, яка час від часу змінює свою точку доступу (адресу). Відповідно ускладнюється завдання визначення точки доступу до мобільної сутності, виходячи з її імені. Як правило, ця проблема вирішується на управлінському рівні ієрархії серверів імен.
Безпосереднє рішення задачі локалізації: змінювати відповідним чином відображення пар «ім’я – адреса» в таблицях відображення або додавати відповідні символічні лінки. Недолік цього рішення: на момент зміни відображення можлива втрата зв’язку + втрати у продуктивності (велика кількість модифікацій таблиць).
Альтернативне рішення (яке найбільш часто використовується): застосування проміжного рівня унікальних ідентифікаторів сутностей (Рис.4).
Рис. 4. Порівняння схем безпосереднього та альтернативного рішень
В рамках алтернативного рішення розрізняють дві взаємодоповнюючі служби: 1) служба іменування (відображає імена у ідентифікатори); 2) служба локалізації (визначає де розміщуються сутності із заданими ідентифікаторами, тобто відображає ідентифікатори у адреси (=точки доступу)). Прості рішення задачі локалізації:
- широкомовна розсилка пари «ідентифікатор-адреса» у випадку зміни адреси -> перестає працювати при великому зростанні кількості сутностей;
- передача вказівників -> при переміщення з А в Б, сутність лишає в А вказівник на «нове місце розташування» Б -> ланцюжки вказівників, за якими вионується пошук біжучого значення пари «ідентифікатор-адреса».
13.5. Локалізація сутностей на основі базової точки
Базова точка - фіксоване місце з якого відслідковуються переміщення деякої мобільної сутності. Як правило базова точка – це місце створення або першого підключення мобільної сутності до мережі.
Схема мобільної ІР адресації (рис.5): В ролі ідентифікатора використовується фіксована адреса мобільного хоста. Точкою доступу виступає контрольна ІР адреса.
Рис. 5. Схема мобільної ІР адресації
13.6. Ієрархічна служба локалізації
В ієрархічній службі локалізації замість однієї базової точки використовюється набір базових точок, організованих в ієрархічну структуру по аналогії з доменною системою імен.
Основна ідея: Оптимізація пошуку за рахунок відображення локальності мобільних сутностей в доменну структуру. Локалізація зводиться до пошуку по дереву базових точок (derectory nodes) (рис.6).
Рис. 6. Приклад пошуку в дереві базових точок (derectory nodes)
Кешування вказівників (pointer cashing) – багаторівневе кешування дозволяє пришвидшити пошук мобільної сутності, яка переміщується в межах одного домену, за рахунок використання «географічної» інформації.
13. Іменування ресурсів в розподілених системах
13.1. Розподілений простір імен
13.2. Простір імен DNS
13.3. Служби розподілених каталогів
13.4. Іменування та локалізація мобільних сутностей
13.5. Локалізація сутностей на основі базової точки
13.6. Ієрархічна служба локалізації
13.1. Розподілений простір імен
В основу розподіленого простору імен покладений принцип відокремлення адреси ресурсу (=точки доступу до ресурсу) від його імені. За рахунок цього ресурс з однаковим ім’ям може змінювати свое «розташування» в розподіленій системі без необхідності змінювати його ім’я. Процедура визанаення точки доступу до ресурсу на основі його імені називається резолюцією імен (name resolution). Ця процедура дозволяє дозволяє по імені ресурсу (комп’ютера, файла, бази даних, зовнішноього пристроя і т.п.) отримати доступ до нього. При цьому точку доступу до ресурсу можна змінювати, в той час як ім’я ресурсу лишається тим самим (локальне незалежне ім’я).
Будь яка реалізація розподіленого простору імен передбачає використання двох основних служб (=сервісів):
Службу іменування (додавання, видалення, пошуку імен).
Службу резолюції імен (визначення адреси сутності виходячи з її імені).
Програмна система, яка реалізує ці дві служби/сервіси називається сервер імен (name server). В розподілених системах внаслідок великої кількості сутностей реалізація простору імен розноситься по декількох серверах імен. При цьому, як правило, створюється ієрархія серверів імен, яку зручно поділити на 3-ри рівні:
1) глобальний рівень (global layer) -> root nodes;
2) адміністративний рівень (administrational layer);
3) управлінський рівень (managerial layer).
В основу ієрархії покладений принцип стабільності (незмінності) вмісту скеровуючих таблиць (directory tables): чим більше швидкість змін в таблиці, тим нижчий рівень в ієрархії займає відповідний сервер імен.
Реалізація процесу резолюції імен (name resolution):
1) Ітеративна резолюція імен (iterative name resolution);
2) Рекурсивна резолюція (recursive name resolution).
Ітеративна резолюція імен (рис.1) передбачає послідовне звертання до серверів імен кожного рівня ієрархії в процесі визначення адреси ресурсу (точки доступу до ресурсу) на основі його імені.
Рис.1. Приклад ітеративної резолюції імен
(ns – name server (сервер імен))
Переваги: 1) Висока надійність; 2) Низьке навантаження на сервер імен.
Недоліки: Великі витрати на взаємодію клієнт-сервер.
Рекурсивна резолюція імен (рис.2) передбачає звертання лише до сервера найвищого рівня ієрархії з наступною міжсерверною взаємодією по рекурсивному розбору імені для визначення відповідної адреси (точки доуступу).
Рис.2. Приклад рекурсивної резолюції імен
(ns – name server (сервер імен))
Переваги: 1) Значно більш ефективне кешування результатів за рахунок того, що якась резолюція вже відбулася; 2)Зниження витрат на взаємодію клієнта з серверами імен.
Недоліки: 1) Велике навантаження на сервери