REFERATUA.ORG.UA — База українських рефератів




на одному вузлі, так і у всій мережі.

У QNX мається кілька інших задач-адміністраторів, що відповідають за доступ до різних ресурсів системи.

4. Особливості виконання задач у QNX.

QNX відрізняється тим, що деяка задача може бути частиною операційної системи і її чи середовища може бути "віртуальною" задачею. Остання має більшість атрибутів локальної задачі, у той час як виконується на інших процесорах (в інших вузлах мережі). Кожна задача, у тому числі і та, котра внутрішньо зв'язана з операційною системою, одержує унікальний ідентифікатор (tid). Щоб передати повідомлення іншій задачі, треба знати неї идентификатор. tid - це два байти, де в нижньому поміщений фактичний номер задачі (індекс, під яким вона поміщена в таблицю задач), а у верхньому - її послідовний номер і віртуальний прапор. Завдяки послідовному номеру, фактичний номер стає унікальним при вході в таблицю задач, якщо для двох різних задач використовується той самий вхід у таблиці. Для "дізнавання" імен (tid) задач у QNX існує два способи: порти і сервери імен.

а) порти - своєрідні крапки рандеву для задач, що позначаються невеликим цілим числом без знака. Типова конфігурація QNX має 28 портів у дійсному режимі і 40 - у захищеному. 16 з них резервуються самою операційною системою. Так, якщо задача - адміністратор бажає ідентифікувати себе для інших програм, вона виконує операцію приєднання до заздалегідь визначеного порту. Програми ж, від'єднуючи від даного порту, одержують tid задач-адміністратора, видаваною операційною системою. (В інших ОС порти називаються ще семафорами). Порти використовуються в QNX і як механізми переривання.

б) сервери імен - це задачі, що створюють список зареєстрованих імен програм і ідентифікаторів - tіd's - зв'язаних з іменами цих програм. Зареєстроване ім'я- це група до 8 символів, що задача за допомогою сервера може помістити в список. Будь-яка програма може довідатися це ім'я шляхом звертання до сервера імен; далі можна посилати повідомлення на це ім'я.

У мережній конфігурації розрізняються локальні і глобальні сервери імен. Глобальний сервер - задача зі своїм списком імен, що діють на одному з вузлів мережі. Зокрема, серед імен може бути ім'я принтера, розміщеного на іншому вузлі мережі. Програми можуть зажадати ім'я цього принтера і потім посилати туди свої файли для висновку, постачивши ці файли різними параметрами. Завдяки "локальній" реєстрації виключається конфлікт імен у мережі. QNX включає спеціальну задачу, що дозволяє створювати розподілену базу даных імен задач.

5. Віртуальні задачі і віртуальні ланцюги.

Завдяки такій властивості QNX, як можливість обміну посланнями між задачами і вузлами мережі, програми не піклуються про конкретне розміщення ресурсів у мережі. Ця властивість додає системі незвичайну гнучкість. Так, вузли можуть довільно додаватися і вилучатися із системи, не торкаючись системні програми. QNX здобуває цю конфігураційну незалежність завдяки застосуванню концепції "віртуальних" задач. У віртуальних задач безпосередній код і дані, будучи на одному з вилучених вузлів, виникають і поводяться так, ніби вони були локальними задачами якогось вузла з всіма атрибутами і привілеями. Програма, що посилає повідомлення в мережі, ніколи не посилає його точно. Спочатку вона відкриває "віртуальний ланцюжок". Віртуальний ланцюжок включає усі віртуальні задачі, зв'язані між собою. На обох кінцях такого зв'язку маються буфери, що дозволяють зберігати найбільше послання з тих, котрі ланцюжок може нести в даному сеансі зв'язку. Мережний адміністратор поміщає в ці буфери всі повідомлення для з'єднаних задач. Віртуальна задача, таким чином, займає усього лише простір, необхідний для буфера і входу в таблиці задач. Щоб відкрити зв'язок, необхідно знати ідентифікатор вузла і задачі, з яким установлюється зв'язок. Для цього необхідно знать ідентифікатор задачі- адміністратора, відповідального за дану чи функцію глобальне ім'я сервера. Не розкриваючи тут докладно механізм обміну посланнями, додамо лише, що наша задача може узагалі виконуватися на іншому вузлі, де, допустимо, мається більш зроблений процесор.

6. Файлова система QNX

Файлова система в QNX, можна сказати, UNIX-подібна в тім, що має деревоподібну структуру каталогів, пдібні угоди по найменуванню файлів і забезпеченню безпеки даних (і т.д.). І взагалі, файлове середовище, з погляду системного програміста, схожа на таку в UNIX. Однак варто виділити внутрішня відмінність (і перевага) файлової системи QNX від UNIX. Це її міцність (живучість), зменшену фрагментарність файлів і збільшену швидкість роботи. Самі файли в QNX організовані за принципом списку ділянок з дублюванням покажчиків. Це дає перевагу в тім, що, якщо вхід у каталог загублений чи ушкоджений, то файл усе рівно може бути відновлений шляхом відшукання хоча б одного з його ділянок. QNX може поділяти той самий диск з іншими операційними системами. На відміну від UNIX, QNX не зв'язує ім'я файлу з його фізичною інформацією. Дані у файлах зберігаються в каталогах поряд з іменами файлів.

Для підтримки авторизованого доступу до інформації QNX має номера груп доступу, як і в інших операційних системах. Ці числа наступні : [ група, член-в-групі ]. Користувач номер групи, що має, 255, є суперкористувачем, що має необмежений доступ до файлової системи. Користувач, що має номер члена групи, рівний 255, є лідером у цій групі і має всі привілеї по роботі з файлами в даній групі. QNX підтримує також механізм закриття записів, наявний у UNIX System V.

Важливої властивістю QNX є те, що в її складі може поставлятися Адміністратор файлової системи MS/DOS, що, будучи запущений як звичайна задача, забезпечує безпосередній доступ до гнучких і твердих дисків системи. Файли на цих дисках можуть редагуватися, виводитися на печатку, компілюватися і т.п., як якби вони знаходилися в стандартній файловій системі MS/DOS.

Ще однією ключовою особливістю QNX, що пояснює гнучкість і ефективність системи, є розподілена система бібліотек. Їхні два типи: бібліотеки, що завантажуються разом з ядром, і бібліотеки монтуємі. Останні можуть створюватися користувачем. Бібліотеки, що завантажуються разом з ядром, виконують по більшій частині системні функції (аналіз імен файлів, забезпечення введення/виводу, форматування повідомлень і т.д.). Важливою функцією поділюваних бібліотек є забезпечення незалежності системи у випадку заміни устаткування.

7. Засоби програмування.

QNX написана мовою високого рівня "С". У системі також мається компілятор BASIC. Обидві мови використовують той самий


 
Загрузка...