Служби використовують для комунікації процесів, ниток І процесів з нитками, що постійно знаходяться на тому самому вузлі. Виділені методи не включають описані в 4.8 специфічні мережні служби, а обмежені методами, доступними для об’єктів, що виконуються усередині ділянки дії одиничної прикладної платформи. Визначають як синхронні, так і асинхронні служби, що містять такі конкретні служби;
створення, видалення, відкривання, закривання, читання І записування у загальнодоступну пам’ять;
створення, видалення, читання і записування прапорців подій;
створення, видалення, установки і очікування на семафорах;
створення, надсилання і приймання сигналів;
створення, видалення, відкривання, закривання, надсилання, відбирання з і керування чергами повідомлень (ІРС);
створення, видалення, надсилання і приймання потоків.
Служба узагальненого вводу-виводу. Використовує застосування для узагальнення операцій на пристроях вводу-виводу. (Часто ввід-вивід забезпечується мовною підтримкою, однак мова Сі є винятком). Служби включають синхронні й асинхронні операції для функцій, що залежать від конкретного пристрою або класу: ініціалізація пристрою, під’єднання пристрою, асинхронне виконання операцій і повідомлення про помилки. Крім того, сюди включають необов’язкові служби, використовувані для звертання безпосередньо до специфічних можливостей пристрою, особливо служби, часто згадувані як первинний ввід-вивід (raw I/O).
Обслуговування сховища файлів. Масова пам’ять у формі ієрархії каталогів, підкаталогів і файлів доступна застосуванню, виконуваному усередині прикладної платформи. Далі описано служби, доступні для створення, виклику, керування І видалення об’єктів масового сховища. Визначено синхронні й асинхронні служби.
Служби іменування й каталогів забезпечують доступ до файлів і каталогів через логічні імена краще, ніж угоди про фактичні Імена апаратних пристроїв. Служби забезпечують спільне використання файлів на різних рівнях. Наприклад, служби можуть не називати як-небудь файли та каталоги загального користування для систем чи можуть дозволяти доступ до загальних файлів за явним чи неявним іменем. Служби каталогу задають подання каталогу для застосування чи кінцевого користувача.
Примітиви модифікації файлу. Служби примітивів для файлів та каталогів забезпечують читання й записування частини файлу; відкриття та закриття доступу до файлу; створення нового файлу і видалення старого; блокування читання й записування на рівні як одиничного запису, так і файлу. Служби можуть бути дуже складними. Наприклад, доступ на читання чи записування може бути прямим (за номером запису), послідовним (один запис у кожен момент часу) чи індексованим (за ключем). Служби також підтримують різні структури файлу, включно зв’язаний, сегментований, безперервний, послідовний і довідковий.
Служба підтримування файлів. Додаткові служби підтримують фізичні пристрої, на яких розміщені файли та каталоги. Служби забезпечують вмикання (mounting) й вимикання (dismounting) пристроїв, їхнє форматування та виділення окремих розділів пристроїв. Файлова оптимізація для служб реального часу надає консультативно-рекомендаційну інформацію про поведінку застосування згідно з даними у файлі. Цю інформацію використовують для оптимізації оброблення спеціальних даних і вона впливає на ефективність інших операцій, одночасно не впливаючи на їхню семантику.
Служба керування подіями, помилками і винятками. Надає загальний засіб для породження і зв’язку асинхронних подій між прикладною платформою і прикладними програмами. Головне застосування служби подій полягає у повідомленні про збійну ситуацію, але також її використовують для Індикації певних станів прикладних програм. Ця служба охоплює таке:
приймання подій і помилок;
розподіл подій і помилок;
керування подіями і помилками, включаючи обрані користувачем варіанти оброблення помилок (фільтрація, повторення, ігнорування, накопичення);
реєстрація подій;
дозвіл і заборона керованих застосуванням переривань;
маскування й демаскування керованих застосуванням переривань.
Служба часу і годинника. Таймери — це статичний чи динамічний ресурс системи, необхідний для ряду стратегій керування та розподілу. Використовують застосування для підтримування різних служб, заснованих на абсолютному та відносному часі. Служба охоплює:
створення і видалення таймера;
ініціалізація виміру довільного проміжку часу;
установка таймера для генерації у реальному часі сигналу, визначеного застосуванням;
зчитування поточного значення таймера;
одночасна ініціалізація таймера з парою значень (початкове значення і значення перезавантаження) та готування таймера;
одночасна ініціалізація таймера з парою значень й запуск таймера.
Служба керування пам’яттю. Процеси і нитки застосування використовують службу керування зайнятим простором пам’яті. Служба виділення процесу додаткової пам’яті та її повернення системі підтримується у більшості мов програмування І, отже, не включена в цей підрозділ. Розглянуто додаткові можливості, пропоновані службами системного ядра для керування потребами застосування у віртуальній й фіксованій пам’яті. Такі потреби включають розподіл файлів у пам’яті та її спільне використання. Розподіл файлів у пам’яті забезпечує механізм, що дозволяє процесам і ниткам безпосередньо звертатися до файлів, включаючи дані файлу в адресному просторі процесу, що призводить до значного зменшення руху даних при вводі-виводі. Спільним використовуваним простором пам’яті звуть ділянки пам’яті, які відображують в адресний простір одного чи більше процесу, що допускає їхнє спільне використання зв’язаної пам’яті. Також маємо службу для блокування сторінок у фізичній пам'яті, для підтримування засобів, що потребують обходу абстракцій, запропонованих системою віртуальної пам’яті.
Служба логічного Іменування забезпечує використання ресурсів за допомогою логічних Імен, що краще за угоду про фактичні імена апаратних пристроїв. Крім того, забезпечує доступ до ресурсів інших процесорних вузлів за допомогою логічних Імен без необхідних відомостей про відносне розташування ресурсу й зміни його розташування за певний час. Логічні імена також використовують служби безпеки для приховування ресурсів від несанкціонованих процесів, дозволяючи тільки уповноваженим процесам знати логічне ім'я, необхідне для використання фізичного ресурсу.
Відношення логічного імені до фізичного може бути "один до багатьох", "багато до одного" чи "багато до багатьох". Часто один фізичний ресурс має множину логічних Імен; аналогічно одне логічне ім’я задається як "банк" доступних фізичних ресурсів. В усіх випадках служба забезпечує відповідний розподіл логічних І фізичних імен.
4.2.4.2 Служби ЕЕІ, Відсутні єдині служби ЕЕІ системного ядра, Існує набір таких важливих стандартів, як специфікації об'єднувальної плати чи периферійних під’єднань з описом Інтерфейсу, що могли б розглядатися як частина ЕЕІ. Приклади специфікацій могли б включати SCSI, мультишину (Multibus) тощо. Однак, виходячи з перспективи розвитку Настанови, якщо специфікації не використовують для інтероперабельності платформи, їх не розглядають як частину ЕЕІ. Такими специфікаціями є РІІ, описані в 3.6.
4.2.5 Стандарти, специфікації та недокументовані служби
Див. таблицю 5.
Таблиця 5 — Стандарти системного ядра
Вид обслуговування |
Тип |
Специфікація |
Підрозділ |
Керування процесами |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Керування нитками |
S |
ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Середовище (прикладна платформа) |
S |
ISO/IEC 9945-1:1996 |
4.2.5.1 |
Внутрішньовузлові комунікації/синхроні- зація |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Узагальнений ввід-винід |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Обслуговування файлового запам'ятовувального пристрою (сховища) |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Події, помилки та виняткові ситуації |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Системний таймер |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Керування пам'яттю |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Логічне іменування |
S |
ISO/IEC 9945-1:1996 |
4.2.5.1 |
Планування |
S |
ISO/IEC 9945-1:1996, ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Асинхронний ввід-вивід |
S |
ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Синхронний ввід-вивід |
S |
ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
Сигнали реального часу (повідомлення асинхронних подій) |
S |
ISO/IEC 9945-2:1993/DAM 1 |
4.2.5.1 |
У таблиці 6 підсумовано використання різних стандартів мов програмування, що підтримують POSIX-OSE.
Таблиця 6 — Мовні прив’язки стандартів системних служб
Стандарт |
LISS |
Ada |
APL |
Basic |
Ci |
C++ |
Лісп |
Фортран |
Модула-2 |
Паскаль |
PL/1 |
Пролог |
Кобол |
ISO/IEC 9945-1:1996 |
E |
S |
|
|
S |
|
|
S |
|
|
|
|
|
IEEE Std 1003.1b-1993 |
|
E |
|
|
S |
|
|
E |
|
|
|
|
|
IEEE Std 1003.ІС-1995 |
|
E |
|
|
S |
|
|
E |
|
|
|
|
|
Примітка. Тут LISS — доступна незалежна від мов специфікація; S — офіційний чинний стандарт; Е — вихідний стандарт або проект стандарту; Р — загальноприйнятий опублікована специфікація; G (дар) — прогалина (відсутність специфікацій).
POSIX-OSE-стандарти. Стандарти, перелічені в цьому підпункті, складають частину POSIX-OSE.
ISO/IEC 9945-1:1996 визначає стандартний Інтерфейс операційної системи для підтримки мобільності застосування на рівні початкового тексту, який ґрунтується на документації операційної системи Unix®. Стандарт призначений для конструкторів систем і розробників прикладного програмного забезпечення. На доповнення до ISO/IEC 9945-1:1996 введено у дію ISO/IEC 13210:1999, що включає вимоги та керівні вказівки до специфіка ції та реалізації методів випробовування для перевірки на відповідність POSIX-стандартам і замінює ідентичний IEEE Std 1003.3-1991. Чинна версія ISO/IEC 13210 — це результат перегляду ISO/IEC 13210:1994.
У таблиці 6 окреслено зміст ISO/IEC 9945-1:1996. Зміни на цей час стосуються:
специфікації незалежних від мов служб;
об’єднаного формату обміну даними;
різних функцій, зазначених у коментарях чинного стандарту.
Опис ISO/IEC 9945-1:1996 прив’язаний до головних реалізацій операційної системи Unix, включно версії System V і BSD. За потреби чітка специфікація поведінки (наприклад, для сигналів) допускає тільки одну поведінку. Однак маємо точки, у яких функції розглядають як необов’язкові І прийнятні два різновиди поведінки. Втім, у багатьох випадках не встановлено чіткий параметр, що визначає переваги одного підходу над іншим. У таких випадках допускають визначення двох характеристик (звичайно в System V та BSD). Це корисно під час написання мобільних застосувань, що допускають обидва типи поведінки у випадку виконання на широкому діапазоні систем. Але це трохи незручно під час написання окремих застосувань, оскільки необхідне оброблення більшої кількості різновидів поведінки.
Таблиця 7 — Функціональні можливості ISO/IEC 9945-1:1996
Система організації файлів та угоди про іменування файлів
Системне конфігурування та характеристики конфігурації файлової системи
Механізми повідомлень про помилки й їхній опис (еггпо — номер помилки)
Інформація про середовище застосування (environment — середовище)
Процеси створення, керування й завершення: ехес() — виконання, fork() — розгалуження, wait() — чекання Дані оточення (середовища) процесу: ідентифікатор користувача, Ідентифікатор процесу, ідентифікатор групи Умови виникнення виняткової ситуації й оброблення (сигналів)
Часові (таймери!) операції
Операції з файлами і каталогами: FIFO files — (first-in, first-out) файли в порядку надходження, pipes — канали, status — стан (статус), open/dose — відкриття і порціювання, read/write — читання/записування
Механізми захисту файлів
Механізми записування та блокування файлів
Специфічні функції пристроїв: Terminal controls — засоби керування терміналом: Processing modes — режими оброблення: echo — відгук, baud rate — швидкість у бодах, modem termination — модем як кінцевий пристрій Специфічні для мови Сі підпрограми: setlocale() — установити локалізацію (місце дії), nonlocal jumps — нело- кальні переходи