Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції_СПр.docx
Скачиваний:
37
Добавлен:
21.08.2019
Размер:
947.09 Кб
Скачать
  1. Особливості написання драйверів для Windows nt.

  2. Сервісні системні виклики.

Навчальна мета: Засвоїти основні поняття та особливості написання драйверів під Windows NT.

Виховна мета: Дати студентам зрозуміти основні відмінності написання драйверів під різні операційні системию

Актуальність: Операційна система Windows NT є основою становлення сучасних ОС і написання драйверів під неї дає розуміння написання драйверів для сімейства мережевих ОС Windows.

Мотивація: Вміння розробляти драйвери під різні ОС є чи не головним пріоритетом для роботодавця при виборі найманого працівника на позицію системного програміста.

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

Система введення-виведення в Windows NT.

Microsoft випускає пакет DDK (Driver Development Kit), призначений саме для створення системних драйверів. Він містить необхідні для розробки програми й бібліотеки, а також документацію й приклади.

В Windows NT драйвера бувають наступних типів:

  • Kernel mode drivers. Основний тип драйвера.

  • Graphics drivers. Драйвера відеокарт. Як правило, створюються одночасно із самою відеокартою. Дуже складні в написанні, тому що повинні враховувати безліч суперечливих вимог і підтримувати безліч стандартів.

  • Multimedia drivers. Драйвери для :

  • Аудіопристроїв – зчитування, відтворення й компресія аудиоданных.

  • пристроїв роботи з відео – захоплення й компресія відеоданих.

  • позиційних пристроїв – джойстики, світлові пера, планшети та ін.

  • Network drivers – робота з мережею й мережними протоколами на всіх рівнях.

  • Virtual DOS Drivers – драйвери для віртуальних машин MS-DOS.

Kernel mode drivers (рис.1).

У такий спосіб ядро системи представляється набором окремих ізольованих модулів із зовнішніми інтерфейсами. Всі драйвери NT мають стандартні методи драйвера

Існує три типи драйверів ядра, кожний тип має чітко певні структуру й функціональність.

  • Device drivers, такі як драйвер клавіатури або дисковий драйвер, що прямо спілкується з дисковим контролером. Ці драйвера також називаються драйверами низького рівня, тому що вони перебувають аж унизу ланцюжка драйверів Windows NT.

  • Intermediate drivers, такі як драйвер віртуального або дзеркального диска. Вони використають драйвери пристроїв для звертання до апаратури.

  • File system drivers (FSDs). Драйвери файлових систем, таких як FAT, NTFS, CDFS, для доступу до апаратур використають Intermediate drivers і Device drivers.

  • Рисунок 1. Головні компоненти операційної системи Windows NT.

Драйвера Windows NT повинні задовольняти наступним вимогам:

  • Переносимими з однієї платформи на іншу.

  • Конфігіруємими програмно.

  • Завжди можуть бути перерваними

  • Підтримувати мультипроцесорні платформи.

  • Об’єктно-орієнтовані

  • Підтримувати пакетне введення-виведення з повторним використанням I/O request packets (IRPs, запити введення-виведення).

  • Підтримувати асинхронне введення-виведення

Кожна операційна система має модель введення-виведення для керування потоками даних до і від периферійних пристроїв. Модель введення-виведення Windows NT має наступні особливості:

Менеджер введення-виведення NT представляє інтерфейс для всіх kernel-mode драйверів, включаючи драйвера фізичних пристроїв, драйвера логічних пристроїв і драйвера файлових систем.

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

Менеджер введення-виведення визначає стандартні процедури, які повинні бути реалізовані розроблювачем драйвера.

Подібно NT у цілому, драйвера мають об'єктну архітектуру. Драйвера, їхні пристрої й системне встаткування представлені як об'єкти Windows NT.

Рис. 2. Прошарки операції введення - виведення

Системні виклики

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

Системні виклики (system calls) – це інтерфейс між операційної системою й користувальницькою програмою. Вони створюють, видаляють і використають різні об'єкти, головні з яких - процеси й файли. Користувальницька програма запитує сервіс в операційної системи, здійснюючи системний виклик. Є бібліотеки процедур, які завантажують машинні регістри певними параметрами й здійснюють переривання процесора, після чого керування передається оброблювачеві даного виклику, що входить у ядро операційної системи. Ціль таких бібліотек - зробити системний виклик схожим на звичайний виклик підпрограми.

Основна відмінність полягає в тому, що при системному виклику завдання переходить у привілейований режим або режим ядра (kernel mode).

Тому системні виклики іноді ще називають програмними перериваннями, на відміну від апаратних переривань, які частіше називають просто перериваннями.

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

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

Переривання

Переривання (hardware interrupt) – це подія, що згенерована зовнішнім (стосовно процесора) пристроєм. За допомогою апаратних переривань апаратури або інформує центральний процесор про те, що відбулася яка-небудь подія, що вимагає негайної реакції (наприклад, користувач нажав клавішу), або повідомляє про завершення асинхронної операції введення-виведення (наприклад, закінчене читання даних з диска в основну пам'ять). Важливий тип апаратних переривань - переривання таймера, які генеруються періодично через фіксований проміжок часу. Переривання таймера використаються операційною системою при плануванні процесів. Кожний тип апаратних переривань має власний номер, що однозначно визначає джерело переривання. Апаратне переривання - це асинхронна подія, тобто воно виникає поза залежністю тому, який код виконується процесором у цей момент. Обробка апаратного переривання не повинна враховувати, який процес є поточним.

Контрольні запитання:

  1. Система введення-виведення в Windows NT

  2. Kernel mode drivers

  3. Типи драйверів ядра

  4. Драйвера Windows NT

  5. Системні виклики

  6. Переривання

Лекція 17 «Утиліти операційної системи»

  1. Утиліти обслуговування системи.

  2. Дефрагментатори.

  3. Утиліти з контролю помилок і пошкоджень структури розділів та SMART-ревізори.

  4. Контроль цілісності системи.

  5. Утиліти розширення функціональності.

Навчальна мета: Засвоїти основні поняття застосування утиліт обслуговування систем, дефрагментаторів, структури дисків, SMART-ревізорів.

Виховна мета: Допомогти студентам усвідомити вагому роль контролю цілісності системи.

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

Мотивація: Мотивацією вивчати даний напрямок у курсі ситемного програмування може стати бажання отримати позицію системного програміста.

Утилі́та (англ. Utility program, utility) — сервісна програма, що допомагає управляти файлами, одержувати інформацію про комп'ютер, діагностувати й усувати проблеми, забезпечувати ефективну роботу системи. Утилі́та (в програмуванні) — невеличка прикладна програма.

Утиліти обслуговування системи

До УОС відносяться всі види сервісних програм, такі як утиліти для: дефрагментації, перевірки і виправленню структури розділів жорсткого диска, виправленню системних помилок, тонкого налаштуванню системи і т. д. Оскільки типовий набір необхідних УСО приблизно однаковий для всіх користувачів ПК, то великого поширення набули заздалегідь зібрані пакети утиліт, найбільш яскравим прикладом яких може послужити пакет від компанії Norton Utilities (що входить в Norton System Works).

Дефрагментатори

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

Утиліти з контролю помилок і пошкоджень структури розділів та SMART-ревізори

S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технологія самоконтролю, аналізу і звітності) — технологія оцінки стану жорсткого диску вбудованою апаратурою самодіагностики, а також механізм передбачення часу виходу його з ладу.

Ці утиліти перевіряють на наявність помилок файлову систему, і пристрій зберігання даних (жорсткий диск, пристрій на основі Flash-пам'яті, дискету). Також можуть звертатися до SMART-модулю жорсткого диска для контролю його службової інформації.

Утиліти контролю цілісності системи

Сканують конфігураційні файли, символьні посилання і/або ярлики з метою пошуку некорректних записів, а також видалених або переміщених файлів - Norton WinDoctor, RegCleaner, CCleaner.

Утиліти розширення функціональності

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

Основні види утиліт розширення функціональності

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

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

Утиліти резервного копіювання

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

Утиліти по роботі розділами диска

Утиліти тонкого налаштування займаються тонким (розширеним) налаштуванням існуючих програм або ОС.

Інформаційні утиліти - Включають монітори, бенчмарки, і утиліти загальної (статичною) інформації.

Контрольні запитання:

  1. Утиліти обслуговування системи

  2. Дефрагментатори

  3. Утиліти з контролю помилок і пошкоджень структури розділів та SMART-ревізори

  4. Утиліти контролю цілісності системи

  5. Утиліти розширення функціональності

  6. Основні види утиліт розширення функціональності

  7. Утиліти резервного копіювання

  8. Утиліти по роботі розділами диска

Лекція 18 «Помилки та виключні ситуації у середовищі операційної системи»