
23.6. Буферизація введення-виведення
Буфером введення-виведення називається область оперативної пам’яті, призначена для тимчасового зберігання записів файла. Зазвичай довжина буфера вибирається кратній довжині кластера. Буфери введення-виведення призначені для розв’язування двох завдань:
усунення невідповідності між розміром логічного запису файла, який визначений в застосуванні, і розміром кластера, який записується на диск;
зниження впливу зовнішніх пристроїв на швидкість роботи процесора, яка значно перевищує швидкість роботи зовнішніх пристроїв.
Для вирішення цих завдань при виведенні даних файлова система спочатку повністю заповнює буфер логічними записами, а потім дає команду зовнішньому пристрою на запис даних на диск. При введенні даних система управління файлами спочатку заповнює буфер кластерами, а потім управляє читанням логічних записів з буфера в програму користувача.
Для прискорення введення-виведення даних зазвичай використовується декілька буферів введення-виведення, які організовані в кільцеву чергу. Під час роботи процесу користувача з одним буфером файлова система паралельно здійснює введення або виведення даних в інші буфери.
23.7. Кешування введення-виводу
Розглянемо два сусідні рівні ієрархії пам’яті, які показані на рис. 23.2. При цьому припустимо, що пам’ять верхнього рівня працює швидше, ніж пам’ять нижнього рівня. Вважаємо, що потрібні дані зберігаються в пам’яті нижнього рівня, а механізм управління пам’яттю забезпечує передачу на верхній рівень тих даних, до яких найбільш вірогідне звернення програми користувача. У таких випадках кажуть, що верхній рівень пам’яті працює як кеш по відношенню до нижнього рівня пам’яті. Спочатку цей термін застосовувався тільки до пам’яті найвищого рівня, яка розташовується між регістрами процесора і оперативною пам’яттю. Нині цей термін використовується в ширшому сенсі для позначення випереджуючого введення даних.
Рис. 23.2. Ієрархія пам’яті
Кешування введення даних має на увазі, що система виконує випереджуюче читання даних з магнітного диска без очікування наступної команди на читання даних із застосування. Це скорочує час на читання записів файла, якщо вони читаються застосуванням послідовно.
В ОС Windows кешуванням введення даних з диска займається спеціальна програма ядра ОС, яка називається менеджером кешування (Cash Manager).