Підсистема вводу/виводу.


Функції вводу/виводу в ОС Unix задаються за допомогою 5 системних викликів, а саме:

· open;

· close;

· read;

· write;

· seek.

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

· якщо читання (запис) відбувається перший раз з певного файлу, то воно відбувається послідовно з першого байту пам’яті;

· якщо перед поточною операцією читання (запису) була попередня операція читання (запису), то буде зчитано (записано) байти з поточної позиції вказівника файлу;

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

Для того щоб завершити операцію вводу/виводу використовується команда close. Ті самі команди вводу/виводу застосовуються для фізичних пристроїв. В Unix всі фізичні пристрої представлені спеціальними файлами в єдиній структурі файлової системи. Це означає, що розробник може написати програму, яка комунікується з пристроями вводу/виводу, яка буде незалежна від них самих шляхом вводу/виводу інформації у відповідний файл. На відміну від інших ОС підсистема вводу/виводу ОС Unix орієнтована на роботу з потоками (stream), а не з записами. Потік в даному контексті, це послідовність байт, яка закінчується спеціальним розділювачем. Використання механізму потоків дозволяє забезпечити незалежність від фізичних пристроїв, уніфікацію файлів і конвеєрів, та гнучкість роботи з операціями вводу/виводу даних.

Однією з яскравих функцій цієї технології є перенаправлення вводу/виводу даних. Ця функція використовується для розширення гнучкості функціонування Unix задач, які виконуються в режимі командної стрічки і які мають змогу зчитувати і записувати інформацію в різні файли не міняючи фактично структури програм. Цей механізм забезпечується такими основними властивостями:

· будь – яка операція вводу/виводу розглядається як запис в файл або зчитування з файлу. Клавіатура або термінал також інтерпретується як файл;

· доступ до будь – якого файлу (пристрою) здійснюється через його дескриптор (номер). Існує декілька стандартних дескрипторів (файл з дескриптором 1 – стандартний ввід, 2 – стандартний вивід, 3 – стандартне повідомлення про помилки);

· задача (чи процес) яка породжується в певному процесі наслідує всі відкриті дескриптори цього батьківського процесу.

Тому для правильного функціонування підсистеми вводу/виводу доцільно при розробці власних програм забезпечити правильне використання системних дескрипторів (1 – stdin, 2 – stdout, 3 – stderr).

 



Дата добавления: 2016-07-27; просмотров: 1265;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.