
- •Лекція 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 у базах даних.
- •Інтернет – системи з підтримкою бд.
Система відслідковування та обробки помилок у ос.
Види помилок.
Засоби С++ та Assembler для обробки помилок та виключних ситуацій.
Навчальна мета: Засвоїти основні поняття обробки помилок у ОС.
Виховна мета: Допомогти студентам усвідомити вагому роль застосування відслідковування помилок у ОС.
Актуальність: Донести до відома студентів, що на сьогоднішній день більшість програмного забезпечення має бути перевірене на наявність помилок.
Мотивація: Мотивацією вивчати даний напрямок у курсі ситемного програмування може стати бажання отримати позицію програміста.
Виключні ситуації
Виключні ситуація (exception) – подія, що виникає в результаті спроби виконання програмою команди, що з якихось причин не може бути виконана до кінця. Прикладами таких команд можуть бути спроби доступу до ресурсу при відсутності достатніх привілеїв або звертання до відсутньої сторінки пам'яті. Виняткові ситуації, як і системні виклики, є синхронними подіями, що виникають у контексті поточного завдання. Виняткові ситуації можна розділити на поправні й непоправні.
До поправного ставляться такі виняткові ситуації, як відсутність потрібної інформації в оперативній пам'яті. Після усунення причини поправної виняткової ситуації програма може виконуватися далі. Виникнення в процесі роботи операційної системи поправних виняткових ситуацій уважається нормальним явищем.
Непоправні виняткові ситуації найчастіше виникають у результаті помилок у програмах (наприклад, розподіл на нуль). Звичайно в таких випадках операційна система реагує завершенням програми, що викликала виняткову ситуацію.
Структурна обробки виняткових ситуацій (англ. SEH — Structured Exception Handling) — механізм обробки програмних и апаратних виняткових ситуацій в ОС Microsoft Windows, що дозволяє програмістам контролювати обробку виняткових ситуацій.
Засоби С++. Реалізація.
Механізм підтримується Microsoft тільки на рівні компілятора за допомогою реалізації нестандартних синтаксичних конструкцій _try, _except і _finally. Ключове слово _try використається для виділення ділянки коду, у якому генерація виключення буде оброблена одним або декількома блоками _except. Код, що перебуває в блоці _finally, виконається завжди й незалежно від інших блоків _try і _except.
Приклад використання в мові C/C++
_try {
// захищений код,
// який міститься в SEH-фреймі
}
_except (фільтр виключень) {
// оброблювач виключень
}
_finally {
// код, що виконується в кожному разі
}
Як фільтр виключень можуть виступати звичайні функції, що повертають три константних вирази:
EXCEPTION_EXECUTE_З на можливість даного оброблювача обробити виключення. При одержанні такого значення операційна система припиняє пошук релевантних оброблювачів виключення й, виконавши розкручування стека, передає керування першому, що повернуло значення EXCEPTION_EXECUTE_HANDLER
EXCEPTION_CONTINUE_EXECUTION — указує на виправлення помилки. Система знову передасть керування на інструкцію, що викликала виключення, оскільки передбачається, що цього разу вона не викличе виключення.
EXCEPTION_CONTINUE_SEARCH — указує, що підходящий оброблювач може бути знайдений нагору по стеку. У той же час повернення цього значення може бути свідченням того, що помилка не оброблена.
Контрольні запитання:
Виключні ситуації
Засоби С++. Реалізація.
Приклад використання в мові C/C++
Лекція 19 «Відеоадаптери»