Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпори СПОС.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
145.46 Кб
Скачать
  1. Поняття файлу. Типи файлів. Дані та метадані файлу.

Файли – можна визначити як доступні користувачам та прикладним програмам віртуальні сховища даних. Фізично файли відображаються на певні ресурси комп’ютерних систем, найчастіше на певні області дискового простору.

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

Зазвичай ОС дозволяє працювати з декількома типами файлів. В Unix подібних ОС є 6 типів файлів:

  1. Звичайні файли – призначені для довготривалого зберігання будь-яких даних. Зазвичай представляють певну область довготривалої пам’яті.

  2. Каталоги – є вузловими точками імен файлів.

  3. Символічні зв’язки – точки доступу до окремих файлів.

  4. Файли пристроїв – точки доступу до певних пристроїв(принтер,сканер, певний розділ диска)

  5. Іменовані канали – це точки доступу до системних засобів локального обміну даними між задачами.

  6. Сокети – призначені для взаємодії між процесами.

Дані файлу – це інформація, яка міститься в файлі.

Метадані файлу – це кількість жорстких зв’язків між файлом та атрибутами.

Метадані описують характеристики файлу, наприклад, власників,права доступу, тип і розмір файлу, а також містять покажчики на фактичне розташування даних файлу. Метадані файлу зберігаються в структурі inode. Метадані дозволяють операційній системі виконувати операції, замовлені прикладною задачею: відкрити файл, прочитати або записати дані, створити або видалити файл. Зокрема, метадані містять покажчики на дискові блоки збереження даних файлу. Назва файлу у файловій системі є покажчиком на його метадані, в той час як метадані не містять покажчика на ім'я файлу.

  1. Особливості застосування базового інтерфейсу та стандартної бібліотеки введення/виведення.

Базовий інтерфейс введення-виведення в Unix базується на файловій моделі. Файлові операції можуть стосуватись як даних, так і метаданих файлу.

Базовий інтерфейс введення-виведення підтримує 2 способи організаціх файлових операцій:

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

  • Безконтекстний – передбачає неявне виконання дій, які виконуються при відкритті і закритті файлу.

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

Функції стандартної бібліотеки введення/виведення забезпечують введення/виведення і більш зручний стиль програмування. Для використання функцій цієї бібліотеки в програму потрібно включити файл заголовків <stdio.h>.

Замість використання файлового дескриптора бібліотека визначає покажчик на спеціальну структуру даних (структура FILE), що називається потоком або файловим покажчиком. Стандартні потоки введення / виведення позначаються символічними іменами stdout, stderr відповідно для потоків введення, виведення та повідомлень про помилки.

Основною перевагою функцій бібліотеки є буферизація

введення/виведення, що дозволяє мінімізувати число системних викликів read (2).

Бібліотека надає три типи буферизації:

1. Повна буферизація. У цьому випадку операція читання або запису завершується після того, як буде заповнений буфер введення / виводу.

2. Построкова буферизація. У цьому випадку бібліотека виконує фактичне введення / виведення (тобто виробляє системні виклики read (2) або построково при виявленні кінця рядка.

3. Відсутність буферизації. У цьому випадку бібліотека не виробляє ніякої буферизації, фактично є лише програмною оболонкою системних викликів. При цьому досягаються мінімальні затримки операцій читання і запису, необхідні, наприклад, при виведенні повідомлень про помилки.