- •Лекція 4 «Операційні системи сімейства Unix, MacOs, Windows»
- •Сімейство Microsoft Windows.
- •Підсистеми ядра ос. Інтерфейс ядра операційної системи
- •Підсистема управління введенням-виведенням
- •Підсистема управління оперативною пам'яттю
- •Поняття планувальника операційної системи.
- •Типи планувальників ос.
- •Реалізація планувальників у різних ос.
- •Взаємодія між процесами.
- •Засоби міжпроцесної взаємодії.
- •Поняття Бібліотеки.
- •Статичні та динамічні бібліотеки.
- •Використання бібліотек.
- •Додаткова функціональність ос.
- •Безпека ос.
- •Командний інтерпретатор операційної системи.
- •Характеристики Кожному процесу мають бути виділені наступні ресурси: процесор, пам'ять, доступ до пристроїв вводу-виводу, файли
- •Робочий цикл процесу
- •Виконання процесів
- •Завершення процесів
- •Особливості написання драйверів для Windows nt.
- •Сервісні системні виклики.
- •Система відслідковування та обробки помилок у ос.
- •Види помилок.
- •Робота з відеоадаптером.
- •Структура відеоадаптера.
- •Особливості функціонування відеоадаптера у текстовому та графічному режимах.
- •Отримання та зміна атрибутів.
- •Позиціонування та організація пошуку даних.
- •Основні функції для роботи з bios.
- •Системний реєстр.
- •Функції bios для роботи з консоллю.
- •Функції bios для роботи з клавіатурою.
- •Функції bios для роботи з екраном.
- •Робота з портами.
- •Інтерфейс rs – 232.
- •Отримання та передача даних через порти.
- •Таймер bios.
- •Керування пам’яттю за допомогою функцій biosmemory.
- •Резидентні програми.
- •Структура та особливості тsr –програм.
- •Модульне програмування.
- •Організація інтерфейсу.
- •Зв’язок Асемблера з мовами високого рівня.
- •Структура об’єктного та завантажувального модуля.
- •Зовнішні виклики.
- •Поняття “extern” та компоновка кількох об’єктних модулів.
- •Основні поняття тестування програмного забезпечення.
- •Розробка test-cases, test-suites.
- •Атрибути test-cases, test-suites.
- •1. Процес тестування програмного забезпечення
- •2. Чорна скринька - функціональне тестування
- •3. Розробка test-cases, test-suites. Атрибути test-cases, test-suites.
- •Атрибути тс
- •Атрибути тs
- •Цикли розробки та тестування програмного забезпечення.
- •Особливості та порядок виконання.
- •Класифікація видів тестування програмного забезпечення.
- •Призначення тестування програмного забезпечення.
- •Класифікація видів тестування
- •Методи генерації, методи відбору тестування програмного забезпечення.
- •Виконання процесу тестування.
- •Файлові системи та Бази даних.
- •Технології доступу до даних. Dao, ado, odbc.
- •Архітектура odbc
- •Список зареєстрованих драйверів
- •Створення dsn для бази даних Mіcrosoft sql Server
- •Застосування Structured Query Language (sql).
- •Open DataBase Connectivity (odbc) для доступу до даних.
- •Використання та dao у базах даних.
- •Інтернет – системи з підтримкою бд.
Характеристики Кожному процесу мають бути виділені наступні ресурси: процесор, пам'ять, доступ до пристроїв вводу-виводу, файли
Кожен процес має «батька» (батьківський процес). Він також може мати (але не мусить) «нащадків» (синівські процеси). Таким чином створюється дерево процесів.
Керування процесами здійснює ядро операційної системи. Під час виконання процес може знаходитися в одному із станів:
виконання,
очікування на доступ до ресурсів, які надає операційна система,
готовності до виконання,
щойно створений,
завершений,
зомбі-процес.
Робочий цикл процесу
користувач з допомогою оболонки вказує програму, яку потрібно виконати; оболонка виконує виклик fork, чи аналогічний
операційна система створює адресний простір для процесу і структури, які описують новий процес
заповнюються структури, які описують новий процес
з файлу, який містить виконавчий файл, в адресний простір процесу копіюються код і дані
встановлюється стан процесу «готовий до виконання»
новий процес додається до черги процесів, які очікують на процесор
керування повертається оболонці користувача
Виконання процесів
Процес почне виконуватися в той момент, коли ядро операційної системи перемкне адресний простір на адресний простір даного процесу і, таким чином, почнеться виконання коду процесу. Виконуваний процес може вимагати певних ресурсів, наприклад, додаткової пам'яті. Такий запит оперативно реалізується операційною системою.
Завершення процесів
Процес виконує останню інструкцію програми — повертає операційній системі код завершення. Якщо процес завершився нормально повертається значення 0, інакше повертається значення коду помилки.
операційна система встановлює стан процесу «завершений» і починає звільнення ресурсів, які були виділені процесу під час його виконання
операційна система по-черзі завершує усі синівські процеси даного батьківського
операційна система звільняє адресний простір процесу
операційна система усуває процес з черги готових процесів
процесор виділяється іншому процесу
Контрольні запитання:
Поняття задачі.
Поняття процесу.
Характеристики задачі.
Характеристики процесу.
Робочий цикл процесу.
Виконання процесів.
Завершення процесів
Лекція 15 «Принципи побудови драйверів для пристроїв, що використовують ресурси операційнї системи»
Драйвери пристроїв.
Ідеологія побудови драйверів.
Інтеграція драйверів.
Компонувальник та DDK.
Навчальна мета: Засвоїти основні поняття знаписання драйверів для пристроїв. Вивчити ідеологію побудови драйверів, аспекти інтеграції драйверів та компонувальників DDK.
Виховна мета: Допомогти студентам зрозуміти роль та принципи роботи драйверів операційної системи.
Актуальність: Драйвери завжди були, є і будуть основою роботи операційної системи з пристроями, а отже, і користувачем.
Мотивація: Розробка драйверів є одним із найскладніших завдань і потребує глибоких знань для розробки та впровадження.
Драйвер (driver) - програма, за допомогою якої ОС отримує доступ до керування апаратним забезпеченням. У загальному випадку для використання кожного пристрою, підключеного до комп'ютера, необхідний спеціальний драйвер. Зазвичай з ОС поставляються драйвери для ключових компонентів апаратного забезпечення, без яких система не зможе працювати. Однак для більш специфічних пристроїв (таких, як графічна плата або принтер) можуть знадобитися спеціальні драйвери, зазвичай надавані виробником пристрою.
Ідеологія побудови драйверів
Операційна система управляє деяким "віртуальним пристроєм", що розуміє стандартний набір команд. Драйвер переводить ці команди в команди, які розуміє безпосередньо пристрій. Ця ідеологія називається "абстрагування від апаратного забезпечення". Драйвер складається з декількох функцій, які обробляють певні події операційної системи. Зазвичай це 7 основних подій:
завантаження драйвера. Драйвер реєструється в системі, робить первинну ініціалізацію
вивантаження. Драйвер звільняє захоплені ресурси - пам'ять, файли, пристрої
відкриття драйвера. Початок основної роботи. Зазвичай драйвер відкривається програмою як файл, функціями CreateFile() в Win32 або fopen() в UNIX-подібних системах;
читання;
запис: програма читає або записує дані з/у пристрій, що обслуговує драйвером;
закриття: операція, зворотна відкриттю, звільняє зайняті при відкритті ресурси й знищує дескриптор файлу;
керування вводом-виводом-IO Control-IOCTL. Найчастіше драйвер підтримує інтерфейс вводу-виводу, специфічний для даного пристрою. За допомогою цього інтерфейсу програма може послати спеціальну команду, що підтримує даний пристрій.
Інтеграція драйверів
У міру розвитку систем, що сполучають у собі на одній платі не тільки центральні елементи комп'ютера, але й більшість пристроїв комп'ютерів у цілому, виникло запитання зручності підтримки таких систем, що одержали назву "апаратна платформа", або просто "платформа".
Спочатку виробники платформ поставляли набір окремих драйверів для операційних систем, зібраний на один носій (зазвичай CD), Потім з'явилися установні пакети, що називалися «4-in-1» та «One touch» і дозволяли спростити установку драйверів у систему. Однак єдиного, усталеного терміна довго не було. Сучасний термін, що описує такі набори драйверів пристроїв — Board Support Package, або "пакет підтримки платформи". Крім власне драйверів, він може, як і інші установні пакети, містити модулі операційної системи й програми.
DDK — Driver Development Kit
DDK (від англ. driver Development Kit) — набір із засобів розробки, утиліт і документації, який дозволяє програмістам створювати драйвери для пристроїв за визначеною технологією або для певної платформи (програмної або програмно-аппаратної).
Компонувальник
(також редактор зв'язків, лінкер - від англ. Link editor, англ. linker) - програма, яка виконує компонування - приймає на вхід один або кілька об'єктних модулів і збирає у виконуваний модуль.
Для зв'язування модулів компонувальник використовує таблиці імен ідентифікаторів, створені компілятором в кожному з об'єктних модулів. Такі імена можуть бути двох типів:
Певні або експортовані назви функцій та змінних, визначені в даному модулі і надані для використання іншим модулям
Невизначені або імпортовані імена - функції та змінні, на які посилається модуль, але не визначає їх в середині себе.
Контрольні запитання:
Драйвер. Основні поняття.
Ідеологія побудови драйверів
Інтеграція драйверів
DDK — Driver Development Kit. Основні поняття.
Компонувальники
Лекція 16 «Написання драйверів для операційної системи Windows»