
- •Тема 1: Основні поняття обчислювальних систем Призначення та склад системного програмного забезпечення
- •Основні концепції операційних систем
- •Типи операційних систем
- •Основні етапи розвитку операційних систем
- •Функціональні компоненти операційних систем
- •Керування процесами й потоками
- •Керування ресурсами
- •Керування введенням-виведенням
- •Керування файлами та файлові системи
- •Мережна підтримка
- •Тема 2: Архітектура операційних систем Основні принципи побудови операційних систем
- •Принцип модульності
- •Принцип функціональної вибірковості
- •Принцип здатності до генерування
- •Принцип функціональної надмірності
- •Принцип віртуальності
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •Принцип забезпечення безпеки обчислень
- •Базові поняття архітектури операційних систем
- •Ядро операційної системи
- •Монолітні системи
- •Багаторівневі системи
- •Системи з мікроядром
- •Концепція віртуальних машин
- •Засоби апаратної підтримки операційних систем
- •Інтерфейс прикладного програмування
- •Варіанти реалізації api
- •Особливості архітектури unix і Linux
- •Особливості побудови ос Linux
- •Особливості архітектури Windows xp
- •Компоненти режиму ядра
- •Компоненти режиму користувача
- •Об’єктна архітектура Windows xp
- •Тема 3: Процеси та потоки
- •Базові поняття процесів та потоків
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 8. Основи організації ms-dos
- •Будова та функції основних складових дос
- •Керування пам’яттю
- •Відображена пам’ять
- •Розширена пам’ять
- •Висока пам’ять
- •Верхня пам’ять
- •Драйвери верхньої та розширеної пам’яті
- •Завантажувані модулі com та exe – файли
- •Логічна структура диску в ms-dos
- •Формат елементів таблиці розділів
- •Запис завантаження (boot)
- •Використання boot-сектору
- •Визначення формату fat
- •Формат fat
- •Файли та каталоги
- •Недоліки ms-dos
- •Переваги які надає користувачам Windows
- •Windows як операційна оболонка
- •Обмін даними в Windows
- •Зв’язування чи вбудовування
- •Первинність повідомлень: механізм повідомлень
- •Незалежна (preemptive) багатозадачність
- •Взаємодія 32– та 16–розрядних кодів
- •Робота з 16–розрядними продуктами
- •Робота з dos–продуктами
- •Робота 32–розрядних Windows–продуктів
- •Вдосконалення розподілу системних ресурсів
- •Vcache – 32–розрядний дисковий кеш
- •Варіанти модифікацій ос Windows xp
- •Нові характеристики реалізовані в Windows xp
- •Продуктивність
- •Лекція 8. Ос unix
- •Ядро ос unix
- •Генерування ос
- •Процеси
- •Початкове завантаження. Процеси 0 та 1
- •Файлова система unix
- •Будова файлової системи unix
- •Каталоги
- •Тема 1: Основні поняття обчислювальних систем 1
- •Тема 2: Архітектура операційних систем 9
- •Тема 3: Процеси та потоки 25
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 цього обмеження немає.