Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft Lecture 04.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.7 Mб
Скачать

Windows як операційна оболонка

Windows запускається на виконання як звичайна програма MS-DOS. Але, після завантаження в основну пам’ять, вона бере на себе майже всі функції керування ОС:

- пам’яттю;

- програмами, що виконуються;

- процесами;

- дисплеєм;

- клавіатурою;

- мишею;

- принтером;

- послідовними портами.

Windows це не ОС оскільки апаратура IBM PC обслуговується як MS-DOS, так і Windows. MS-DOS керує файловою системою. Все інше робить Windows. (Міняючи файлову систему дуже важко було б забезпечити сумісність з існуючим програмним забезпеченням).

Програма в Windows не має права звертатись до пристроїв напряму, а повинна використовувати для цього внутрішні функції Windows (їх > 600).

Це обмеження природне для багатозадачної операційної оболонки, коли всі ресурси комп’ютера розділяються.

Основні функції Windows виконують три системних модуля – kernel.exe, gdi.exe та user.exe. їх функції чітко розділені:

kernel.exe – керує пам’яттю, завантаженням та виконанням програм, а також виконує інші системні функції.

gti.exe – Graphics Devise Interface - інтерфейс з графічними пристроями, відповідає за графіку.

user.exe – робить все інше.

Модулі user.exe та gdi.exe взаємодіють з апаратною IBM PC через драйвери пристроїв Windows. Майже всі драйвери пристроїв Windows фактично виконують функції ROM BIOS MS-DOS, працюючи з пристроями напряму. Виключення – драйвер принтера printer.drv, який звертається до свого пристрою через процедури ROM BIOS. На схемі дещо спрощено.

Модуль gdi.exe та деякі драйвери також можуть викликати функції ядра (kernel.exe), а програми Windows можуть в принципі безпосередньо звернутись до драйвера (на відміну від MS-DOS, де не можна звернутись до драйвера пристрою повз ОС).

Взаємодія програм Windows з MS-DOS (тобто з функціями DOS). Хоча в програмах Windows можна використати багато функцій стандартної бібліотеки ”С”, насправді відбувається звертання не безпосередньо до DOS, а до Windows (точніше до модуля kernel.exe), який відслідковує всі звертання до переривань DOS та BIOS. При звертанні до дозволених функцій DOS середовище Windows забезпечує сумісність виклику DOS з чужою організацією основної пам’яті, а в деяких випадках (при звертаннях до функцій exec, або до функцій роботи з пам’яттю) повністю заміняє виклик на відповідне звертання до пристрою.

Якщо програма Windows викликає невідоме Windows переривання система ”висне”.

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

Обмін даними в Windows

Для користувачів DOS комп’ютер – це деякий ”склад” програмних продуктів, які зовсім не зв’язані один з одним. Дуже часто користувач використовує окремо текстовий та графічний редактори. Альтернатива – це робота громіздких пакетах, які суміщають в собі текстові та графічні можливості. Особливо неприємним в DOS є перевантаження даних з одного продукту в інший. Не дивлячись на існування деяких стандартів, велика кількість DOS-програм зберігає дані в тому вигляді, в якому це захотілося автору. Існують сотні драйверів, які перетворюють дані в різні формати.

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

Clipboard

Буфер проміжного зберігання даних (вбудований). При роботі Windows - Clipboard постійно активний. Він доступний всім Windows-програмам. Обмін даними через Clipboard виконується таким чином.

В продукті-джерелі його власними засобами виділяється необхідні дані. Командою Copy (Ctrl + C) виділений фрагмент заноситься до Clipboard.

Можливе також використання команди Cut (Ctrl + X). Те саме, що Copy, а з тою різницею, що дані вилучаються з оригіналу. Потім переходимо до продукту-приймача і розміщуємо курсор у те місце, куди потрібно встановити дані з Clipboard. Після цього виконується команда Paste (Ctrl + V). Обмін закінчено. Комбінації Ctrl + C, Ctrl + X, Ctrl + V є універсальним стандартом Windows. Команди Cut, Copy, Paste є практично у всіх Windows-продуктах в меню Edit.

Механізм, що забезпечує обмін даними між різними продуктами називається –динамічний обмін даними (DDE – Dynamic Data Exchange).

Той самий порядок дій забезпечує обмін даними і в рамках одного продукту. Тому відпадає необхідність вбудовувати в продукти внутрішні засоби копіювання та переміщення об’єктів при програмування під Windows.

Недолік – неможливість накопичення даних у буфері проміжного зберігання. При розміщенні в Clipboard нового фрагменту, старий автоматично вилучається. Тому, наприклад, при копіюванні трьох об’єктів із різних місць одного документа в одне місце в іншому, треба три рази переключитись між джерелом та приймачем. Є обмеження – десять сторінок тексту або одне повно екранне кольорове графічне зображення (є обмеження за об’ємом).

Головна перевага обміну даними через Clipboard – це можливість об’єднання в одному документі об’єктів з різних продуктів та автоматичне перетворення форматів. Для всіх Windows-продуктів було встановлено ряд стандартів, в яких можуть представлятися дані. Для цих стандартів представлення даних виконується при операціях з Clipboard автоматично і непомітно для користувача.

Наприклад програма Viewer забезпечує:

- перегляд даних в Clipboard в різних форматах;

- запис вмісту Clipboard в файл;

- читання даних в Clipboard з файлу;

- очистку Clipboard.

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

Наприклад, в Microsoft Excel створимо невелику таблицю і запишемо її в деякому файлі. Потім включимо Write, відкриємо в ньому довільний текстовий документ і спробуємо встановити туди цю таблицю за методом DDE. Для цього виділимо цю таблицю в Microsoft Excel і розмістимо її в Clipboard командою Copy. Потім переключимось на Write, але виконаємо не команду Paste, а команду Paste Link із меню Edit. В тексті у вікні редактора Write з’явиться зображення таблиці. Тепер, якщо перейти знову до Microsoft Excel і внести деякі зміни, то виявиться, що ці ж зміни відбудуться і в копії цієї таблиці в редакторі Write. Цей зв’язок зберігається і після закриття продукту. Тобто в довільний момент, коли вносяться зміни в оригінал, можна бути впевненим в тому, що ці зміни відбудуться у всіх документах, пов’язаних з оригіналом.

З одним оригіналом можна зв’язати довільну кількість документів (”зіркоподібний” тип зв’язку). Це дає нові можливості, такі як автоматичне оновлення копій.

Окрім ”зіркоподібного” зв’язку можливе зв’язування ”за ланцюжком”, коли джерелом для наступного зв’язку буде не оригінал, а раніше зв’язаний об’єкт. В цьому випадку не Paste Link, а просто команда Paste.

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

Але користувач хотів би пересувати ланцюжки на екрані так само легко, як це робиться в реальному житті.

Зв’язування та вбудовування об’єктів (Object Linking & Embedding, OLE1)

Для користувачів основне нововведення технології OLE – можливість активації вбудованих об’єктів.

За попередніми технологіями встановлений об’єкт був складовою частиною документа, в якому він розташовувався, відображався в ньому, але внести зміни в цей об’єкт було досить складно. Для цього потрібно запустити продукт, в якому він був створений, відкрити файл даного об’єкту, змінити його певним чином і записати на диск. Потім через Clipboard виправлений об’єкт копіювався на своє місце, а стару версію в документі потрібно було знищити. (При DDE дві останні операції не потрібні ).

Для роботи за технологією OLE необхідна така сама послідовність операцій, як і раніше, при цьому, якщо продукт підтримує OLE, то він сам виконує обмін даними вже за цією технологією. Документ з вбудованими OLE-об’єктами виглядає так само, як і з фрагментами, що встановлені через Clipboard. Але тепер при подвійному натисканні на мишу в полі об’єкту він активується:

- запускається продукт, який породив цей об’єкт;

- об’єкт передається у вікно продукту для редагування, запису і інших операцій, які доступні батьківській програмі.

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

В OLE ”об’єкт” це нове поняття. Раніше об’єкт – це довільний фрагмент, який переноситься з одного продукту в інший. Насправді переносився не сам фрагмент, а тільки його ”екранний образ”, продукт-джерело перетворювало дані із свого внутрішнього формату в один із стандартів Windows і в такому вигляді фрагмент вставлявся в продукт-приймач.

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

В такому вигляді – об’єкт це деяка закінчена структура. При його перенесенні із одного документа в інший він зберігає всі свої особливості незалежно від типу документа, в якому в біжучий момент знаходиться.

Якщо DDE дозволяє вставляти зв’язування тільки об’єкти, які є файловими, то в OLE цього обмеження немає.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]