Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
23 Управління файлами. Загальні концепції.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
92.96 Кб
Скачать

23.6. Буферизація введення-виведення

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

  • усунення невідповідності між розміром логічного запису файла, який визначений в застосуванні, і розміром кластера, який записується на диск;

  • зниження впливу зовнішніх пристроїв на швидкість роботи процесора, яка значно перевищує швидкість роботи зовнішніх пристроїв.

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

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

23.7. Кешування введення-виводу

Розглянемо два сусідні рівні ієрархії пам’яті, які показані на рис. 23.2. При цьому припустимо, що пам’ять верхнього рівня працює швидше, ніж пам’ять нижнього рівня. Вважаємо, що потрібні дані зберігаються в пам’яті нижнього рівня, а механізм управління пам’яттю забезпечує передачу на верхній рівень тих даних, до яких найбільш вірогідне звернення програми користувача. У таких випадках кажуть, що верхній рівень пам’яті працює як кеш по відношенню до нижнього рівня пам’яті. Спочатку цей термін застосовувався тільки до пам’яті найвищого рівня, яка розташовується між регістрами процесора і оперативною пам’яттю. Нині цей термін використовується в ширшому сенсі для позначення випереджуючого введення даних.

Рис. 23.2. Ієрархія пам’яті

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

В ОС Windows кешуванням введення даних з диска займається спеціальна програма ядра ОС, яка називається менеджером кешування (Cash Manager).