Глава 7. Операційні системи "тонких" клієнтів
7.1 Кишенькові персональні комп'ютери
Під "тонкими" клієнтами розуміють обчислювальні пристрої, що володіють неповною функціональністю. Взагалі кажучи, спектр таких пристроїв досить великий - від спеціалізованих обчислювачів, вбудовуваних в побутову апаратуру, до "Мережевих" комп'ютерів, що володіють практичними всіма апаратними можливостями ПК, крім жорсткого диска. Ми в цій главі розглядаємо в основному клас тонких клієнтів, званих кишеньковими персональними комп'ютерами або PDA - Personal Digital Assistant (персональний цифровий помічник). Такі пристрої використовуються в якості інтелектуальних органайзерів або/та в якості мобільних пристроїв доступу до серверів інформаційних систем. За оцінками деяких експертів число мобільних клієнтів у всьому світі до 2003 р. досягне 80 млн. Виробництво кишенькових ПК є перспективним напрямком, і на цьому напрямку діє велика кількість фірм. Багато хто з них розробляють власні ОС для своїх PDA, проте багато використовують і ОС від інших виробників. Практично кожна фірма - виробник кишенькових ПК надає своїй моделі деякі унікальні властивості, що дають їй якісь конкурентні переваги. Однак все різноманіття кишенькових ПК, по-видимому, можна звести до двох типів: ПК без клавіатури, введення даних в яких - рукописний або з віртуальної клавіатури, в обох випадках - за допомогою світлового пера, і ПК з клавіатурою. Другий тип наближається до настільних ПК, в Зокрема, в його функціональність включається і обробка мультимедійної інформації. Перший тип біднішими (точніше кажучи, специфичнее) по функціональності, однак відрізняється меншими розмірами і енергоспоживанням. Завдання ОС для ПК першого типу - забезпечити максимальну економію ресурсів, задача ОС для ПК другого типу - забезпечити максимальну функціональність. Серед універсальних ОС для кишенькових ПК першого типу лідирує PalmOS, для другого типу - Windows CE.
-->p>
7.2 Операційна система PalmOS
Операційна система PalmOS [31] призначена для управління PDA на базі мікропроцесора Motorolla Dragon Ball VZ, за якими закріпилася назва PalmPilot (хоча правильне назва їх - просто Palm). Однак архітектура пристрою Palm - відкрита, і багато фірм випускають власні PDA, подібні Palm, але з тими чи іншими відзнаками - Sony, HandEra, Kyocera, Symbol та інші. Всі ці PDA працюють під управлінням PalmOS.
Специфіка функціонування додатків в PalmOS, а, отже, і самої PalmOS полягає в наступному:
малий розмір екрану (160х160 точок) не дозволяє додатку мати складний інтерфейс; при проектуванні інтерфейсу слід дотримувати баланс між інформаційною достатністю і перевантаженістю екрану;
додаток повинен мати просту і швидку навігацію, вибір необхідного дії повинен проводитися однією-двома операціями користувача, а не довгим діалогом, як буває в настільних ПК;
ОС і додатки функціонують в умовах дуже обмеженого обсягу ресурсів, перш за все - пам'яті;
одним з найважливіших вимог є ефективне управління живленням.
ОС повинна бути розрахована на швидке зростання обчислювальних можливостей - як власних базових можливостей PDA, так і розширення номенклатури, можливостей і форматів підключаються до PDA карт.
Обов'язковим компонентом платформи Palm є синхронізаційних приставка (cradle), яка забезпечує з'єднання з настільним ПК і синхронізувати дані, що знаходяться на ПК і на PDA. Багато додатків для PalmOS мають аналоги для настільного ПК. Для синхронізації даних, що розділяються ПК і PDA, використовується технологія HotSync, яка передбачає створення спеціальних каналів (conduit) для синхронізації даних. Існують спеціальні інструментальні засоби для програмування таких каналів, і багато популярні програмні продукти (Netscape Communicator, Oracle, IBM DB2, etc.) Мають у своєму складі такі канали.
Архітектура PalmOS показана на малюнку 7.1.
PalmOS базується на мікроядрі. Навколо мікроядра побудовані системні служби - менеджери PalmOS, представляють собою набори модулів, що забезпечують певні функції. До таким менеджерам відносяться, наприклад:
Менеджер Graffiti - система рукописного введення;
Менеджер Подій;
Менеджер Пам'яті;
Менеджер Даних;
Менеджер Ресурсів;
Менеджер Звуку;
і т.д.
Бібліотеки (системні або від інших виробників) забезпечують високорівнева доступ до системних функціям. Хоча для PalmOS і існують стандартні бібліотеки мови C, в системних бібліотеках є власні функціональні аналоги стандартних функцій C, які оптимізовані для PalmOS, тому їх використання переважніше.
Мікроядро і управління завданнями
Само мікроядро НЕ є власністю фірми Palm, використовується мікроядро AMX RTOS [13], розроблене фірмою Kadak. Мікроядро AMX RTOS являє собою мікроядро реального часу, адаптоване для декількох апаратних платформ і пристосоване для розміщення в ПЗУ. Мікроядро забезпечує витісняючу багатозадачність з абсолютними пріоритетами. В кожний момент часу виконується тільки завдання з найвищим пріоритетом. Перемикання завдань може відбуватися
за ініціативою самої завдання - завдання переходить в стан очікування або запраштвает виконання операції, що викликає виконання завдання з більш високим пріоритетом;
по зовнішньому події - перериванню, обробка якого може запустити або "розбудити" завдання з більш високим пріоритетом;
по події таймера, яке також може "розбудити" завдання з більш високим пріоритетом.
Микроядро AMX RTOS оптимізовано з метою мінімізації часу перемикання завдань і мінімізації нереентерабельних ділянок коду. Як правило, переривання можуть оброблятися навіть під час перемикання завдань. Служба обробки переривання мікроядра забезпечує прийом переривання і виклик користувальницької процедури обробки переривання. AMX RTOS забезпечує також вкладену обробку переривань для тих апаратних платформ, на яких вкладені переривання підтримуються процесором.
Мікроядро забезпечує також багаті засоби синхронізації процесів:
події - події можуть утворювати групи до 16 подій, і очікуватися може будь-яка задана конфігурація совершенности подій в групі;
семафори - традиційні загальні семафори, використовувані як лічильники ресурсів;
черги повідомлень - "Поштові скриньки" (одна черга) та "комунікаційні канали" (4 черзі з різними пріоритетами).
Також мікроядро забезпечує ряд сервісних функцій, таких як виділення/звільнення пам'яті, роботу з пулом буферів і роботу зі зв'язними списками.
Микроядро написано на мові C і, отже, може бути реалізовано для будь апаратної платформи. Засоби конфігурування дозволяють включати в мікроядро тільки ті функції, які необхідні замовнику.
Микроядро саме по собі забезпечує багатозадачність. Але за умовами ліцензійної угоди на використання мікроядра API мікроядра є закритим, і розробники не можуть створювати програми, безпосередньо використовують функції мікроядра, у тому числі і багатозадачність. Тому додатка PalmOS - однозадачні. У PalmOS в кожний момент часу може виконуватися тільки одне додаток, що має доступ до інтерфейсу користувача, це додаток - головне, пріоритетне. Паралельно з ним може бути запущено фонове (не має доступу до інтерфейсу) додаток, яке отримує процесорний час тільки, коли головне додаток бездіє. Оскільки головне додаток працює у взаємодії з користувачем, фонове додаток займає майже всі процесорний час, але воно негайно переривається, при появі подій, вимагають активізації головного додатка.
Обробка подій
Інтерфейсні додатка PalmOS управляються подіями. Такий додаток являє собою єдиний цикл, кожна ітерація якого починається з отримання чергового події. Системний виклик EvtGetEvent забезпечує очікування і прийом події. Отримане подія передається ряду обробників в такій послідовності:
обробник с...