Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Об'єктно орієнтовне програмування1.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
1.38 Mб
Скачать

12. Створення додатків windows

1. Сім'я операційних систем Windows.

2. Структура додатка Windows.

3. Технологія розробки додатків Windows у різних середовищах.

12.1. Сім'я операційних систем Windows

Операційна система MS DOS надавала програмісту мінімальний набір засобів. Вона включала в себе файлову систему, систему керування пам'яттю, систему керування процесами і незначний набір сервісних функцій, що полегшують, наприклад, виконання операцій вводу/виводу в найпростіших випадках. Разом з цим, будучи однопрограмною і, відповідно, надаючи програмі всі ресурси системи в монопольному режимі, MS DOS давала змогу «прямо», оминаючи операційну систему, керувати технічними засобами (рис. 12.1) При цьому в разі прямого керування в багатьох випадках можна було досягти істотно більшої швидкодії за менших витрат пам'яті. У результаті досить часто програми MS DOS використовують пряме керування пристроями. Наприклад, більшість графічних програм MS DOS прямо працюють з відеопам'яттю, причому частина з них також самостійно підтримує клавіатуру і мишу.

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

1) монопольно використовує пристрої і тому не може виконуватися в мультипрограмному середовищі;

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

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

Операційні системи типу Windows істотно відрізняються від операційної системи MS DOS не тільки з погляду користувача, а й з погляду розроблювача додатків. При їх розробці було максимально враховано недоліки попередньої системи.

Нині найбільш поширені операційні системи — Windows, що дістали спільну назву Win32: Windows'95, Windows'98, WindowsNT.

Від інших Windows ці системи відрізняються тим, що всі вони, щоправда різної мірою, використовують 32-бітну адресацію, що є кроком уперед порівняно з 16-бітною адресацією, використовуваною попередніми версіями Windows. Системи Win32 мають такі відмінності: Windows'95 і Windows'98 є послідовними версіями операційної системи, призначеної для широкого кола користувачів. На відміну від Windows NT, призначеної для користувачів-професіоналів, Windows'95 і Windows'98 не висувають жорстких вимог ні до устаткування, ні до програмного забезпечення, але й не гарантують того ступеня надійності, що його забезпечує Windows NT.

У Windows'98 у порівняно з Windows'95 виправлено виявлені помилки, трохи змінено зовнішній вигляд інтерфейсу, що тепер розрахований на широке використання Інтернету, і додано деякі функції.

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

1. Системна підтримка віртуального простору пам'яті до 4 Гбайт для кожного додатка Win32.

Використання 32-бітних адрес дає змогу адресувати до 4 Гбайт пам'яті. У Win32 передбачається, що кожний додаток Win32 виконується у своєму віртуальному просторі пам'яті розміром 4 Гбайт, в якому, молодші 2 Гбайт зарезервовано за операційною системою, а старші 2 Гбайт — відведено програмі. Віртуальний простір пам'яті організовується за рахунок використання спеціально виділеної області твердого диска, що проектується на реальну оперативну пам'ять посторінково в міру потреби. При сучасній швидкодії технічних засобів це не дуже відчутно гальмує виконання операцій, одночасно дозволяючи програмісту не турбуватися про наявність вільної оперативної пам'яті.

2. Можливість одночасної роботи з кількома додатками або кількома функціями додатків (багатозадачність).

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

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

3. Стандартний графічний інтерфейс із користувачем. Відсутність однакового зручного для користувача ергономічного інтерфейсу, безумовно, було істотним недоліком MS DOS.

Стандартний і досить зручний інтерфейс Windows, в основу якого покладено модель «робочого столу», істотно полегшує користувачеві роботу із системою. При цьому екран дисплея розглядається як поверхня робочого столу, а вікна додатків — як аркуші паперу на ньому. Так само як на робочому столі можна перекладати «папери», поміщаючи одні вікна «поверх» інших. Щоб організувати «робоче місце», користувач може змінювати місце розташування і розміри вікон, забезпечуючи собі максимальні зручності.

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

4. Незалежність програм від апаратури (у тому числі — універсальна графіка).

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

5. Можливість обміну даними між додатками.

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

1) зв'язані — основний документ містить посилання на документ іншого додатка (відповідно, у разі заміни об'єкта його додатком змінюється і складений документі);

2) упроваджені — копія об'єкта стає частиною складеного документа, і ніяка зміна оригіналу об'єкта не переноситься в складений документ.

Використання OLE-механізму дає змогу, наприклад, вставляти в документ Word малюнки, виконані в Paint, чи таблиці Excel.

6. Сумісність із раніше розробленим програмним забезпеченням. Далеко не останньою перевагою системи Windows є те, що вона може виконувати абсолютну більшість програм MS DOS на віртуальній машині MS DOS, що дає змогу не відмовлятися від звичних програмних продуктів, розроблених до появи Windows.

Отже, відповідно до основної концепції, в операційній системі типу Windows програми взаємодіють тільки з операційною системою, не маючи змоги прямо звертатися до апаратури (рис. 12.2). Керування технічними засобами здійснюється через спеціальний інтерфейс API {Application Program Interface — «програмний інтерфейс додатка») — набір з кількох сотень функцій, що виконують усі системно-залежні дії, такі як виділення пам'яті, вивід на екран і т. д. Ці функції також відповідають за поділ ресурсів системи між різними додатками при їх одночасному запуску, автоматично забезпечуючи можливість роботи додатка в мультипрограмному середовищі.

Функції АРІ організовано в динамічно завантажувані і поділювані всіма програмами бібліотеки DLL {Dynamic Link Library — «бібліотеки динамічного зв'язування»), що працюють. Особливість цих бібліотек полягає в тому, що коди використовуваних додатками функцій не включаються в модуль, що виконується. Замість них у модуль включаються зсипання на відповідні функції. У процесі виконання додаток просто передає керування потрібної функції вже завантаженої в пам'ять бібліотеки, визначаючи її адресу за відповідною таблицею. Якщо додаток, що запускається, збирається використовувати функції з відсутньої в оперативній пам'яті бібліотеки, то ця бібліотека завантажується в пам'ять. Невикористовувані бібліотеки з пам'яті вивантажуються.

Застосування DLL дає змогу істотно зменшити обсяг додатків і збільшити ефективність використання оперативної пам'яті.

В основу Windows покладено принцип подвійного керування. Щоб розібратися, що це таке, згадаємо, як організовано обчислювальний процес у MS DOS. При виконанні в MS DOS програма, одержавши керування, далі цілком контролює обчислювальний процес: у міру необхідності запитує дані, виконує розрахунки і виводить результати відповідно до реалізованої нею послідовності обробки (рис. 12.3). При цьому користувач велику частину часу очікує на результати виконання програм.

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

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

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

Про настання тієї чи іншої події, на яке необхідно «зреагувати», додаток інформується надсиланням відповідних повідомлень.

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

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

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

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