Рівні доступу до пристроїв

Система MS-DOS надає користувачеві можливості доступу до пристроїв на декількох рівнях, що відрізняються ступенем близькості до апаратури. Нижні рівні дозволяють більш повно використовувати тонкі особливості пристроїв, але за це доводиться платити складністю програмування. Верхні рівні більш зручні для вирішення стандартних завдань введення / виводу.

Рівні доступу до пристроїв показані на рис. 2-5.

 

Рис. 1‑5

 

Самий нижній рівень припускає, що програма користувача працює безпосередньо з портами введення / виводу, а також, якщо це необхідно, частково чи повністю бере на себе обробку апаратних переривань, що надходять від пристрою. В принципі, програма користувача може взагалі не використовувати засоби MS-DOS для роботи з пристроями, але при цьому їй доведеться взяти на себе багато нудної роботи.

У роботі MS-DOS широко використовуються можливості, надані BIOS (Basic Input / Output System, базова система введення / виведення) - набором програмних модулів, записаних в постійній пам'яті (ПЗУ) комп'ютера. BIOS за замовчуванням виконує обробку всіх апаратних переривань, якщо цю роботу не бере на себе DOS або прикладна програма. Крім того, BIOS містить процедури обробки ряду програмних переривань вводу / виводу.

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

Драйвери пристроїв не викликаються безпосередньо з програми користувача. Вони викликаються з функцій DOS і виконують задану операцію, зазвичай використовуючи для цього програмні переривання BIOS, хоча можлива і пряма робота драйвера з портами і апаратними перериваннями.

Функції DOS, на відміну від переривань BIOS, працюють не з конкретною апаратурою, а з іменованими пристроями. Імена пристроїв задаються в заголовках відповідних драйверів. Наприклад, для DOS клавіатура й екран об'єднуються драйвером консольного пристрою CON.

Процедури введення / виводу, використовувані в мовах програмування (наприклад, Read і Write в Паскалі, scanf і printf в C), при компіляції реалізуються як відповідні виклики функцій DOS або, в особливих випадках, програмних переривань BIOS.