Результаты (
украинский) 2:
[копия]Скопировано!
Програмна реалізація [ред | правити вікі-текст]
Політика записи при кешуванні [ред | правити вікі-текст]
При читанні даних кеш-пам'ять дає однозначну виграш в продуктивності. При запису даних виграш можна отримати тільки ціною зниження надійності. Тому в різних додатках може бути обрана та чи інша політика записи кеш-пам'яті. Існують дві основні політики записи кеш-пам'яті - наскрізна запис (write-through) і відкладений запис (write-back): Наскрізна запис - запис проводиться безпосередньо в основну пам'ять (і дублюється в кеш), тобто запису не кешируєтся. Відкладений запис - запис даних проводиться в кеш. Запис же в основну пам'ять проводиться пізніше (при витісненні або після закінчення часу), групуючи в одній операції кілька операцій запису в сусідні осередки. Технологія зворотного запису на деякий час робить дані в основний пам'яті неактуальними, для самого ЦП ці неактуальність не помітні, але, перш ніж звертатися до пам'яті іншого провідного системної шини (контролера DMA, bus-master-пристрої шини PCI) кеш повинен бути записаний в пам'ять примусово. При використанні зворотного запису в багатопроцесорної системі кеші різних ЦП повинні бути узгоджені (або процесори повинні використовувати одну кеш-пам'ять). Алгоритм роботи кеша з відкладеним записом [ред | правити вікі-текст] Спочатку все заголовки буферів поміщаються в список вільних буферів. Якщо процес має намір прочитати або модифікувати блок, то він виконує наступний алгоритм: намагається знайти в хеш-таблиці заголовок буфера з заданим номером; в разі, якщо отриманий буфер зайнятий, чекає його звільнення; у разі, якщо буфер не найден в хеш-таблиці, бере перший буфер з хвоста списку вільних; в разі, якщо список вільних буферів порожній, то виконується алгоритм витіснення (див. нижче); в разі, якщо отриманий буфер позначений як «брудний», виконує асинхронний запис вмісту буфера в зовнішню пам'ять. видаляє буфер з хеш-таблиці, якщо він був поміщений в неї; поміщає буфер в хеш-таблицю з новим номером. Процес читає дані в отриманий буфер і звільняє його. У разі модифікації процес перед звільненням позначає буфер як «брудний». При звільненні буфер поміщається в голову списку вільних буферів. Таким чином: якщо процес прочитав деякий блок в буфер, то велика ймовірність, що інший процес при читанні цього блоку знайде буфер в оперативній пам'яті; запис даних у зовнішню пам'ять виконується тільки тоді, коли не вистачає «чистих» буферів, або за запитом. Алгоритм витіснення [ред | правити вікі-текст] Основна стаття: Алгоритми кешування Якщо список вільних буферів порожній, то виконується алгоритм витіснення буфера. Алгоритм витіснення істотно впливає на продуктивність кеша. Існують наступні алгоритми: LRU (англ. Least Recently Used) - витісняється буфер, невикористаний найдовше; MRU (англ. Most Recently Used) - витісняється останній використаний буфер; LFU (англ.) (Англ. Least Frequently Used) - витісняється буфер, використаний рідше всіх; ARC (англ.) (англ. Adaptive Replacement Cache) - алгоритм витіснення, що комбінує LRU і LFU, запатентований IBM. Застосування того чи іншого алгоритму залежить від стратегії кешування даних. LRU найбільш ефективний, якщо дані гарантовано будуть повторно використані в найближчим часом. MRU найбільш ефективний, якщо дані гарантовано не будуть повторно використані в найближчим часом. У разі, якщо додаток явно вказує стратегію кешування для деякого набору даних, то кеш буде функціонувати найбільш ефективно. Кешування, що виконується операційною системою [ред | правити вікі-текст] Кеш оперативної пам'яті складається з наступних елементів: набір сторінок оперативної пам'яті, розділених на буфери, рівні за довжиною блоку даних відповідного пристрою зовнішньої пам'яті; набір заголовків буферів, що описують стан відповідного буфера; хеш-таблиці, що містить відповідність номера блоку заголовку ; списки вільних буферів. Кешування інтернет-сторінок [ред | правити вікі-текст] В процесі передачі інформації по мережі може використовуватися кешування інтернет-сторінок - процес збереження часто запитуваних документів на (проміжних) проксі-серверах або машині користувача, з метою запобігання їх постійного завантаження з сервера-джерела і зменшення трафіку. Таким чином, інформація переміщається ближче до користувача. Управління кешуванням здійснюється за допомогою HTTP-заголовків. Як варіант, кешування веб-сторінок може здійснюватися за допомогою CMS конкретного сайту для зниження навантаження на сервер при великій відвідуваності. Кешування може проводитися як в пам'ять, так і в файловий кеш [9]. Недолік кешування полягає в тому, що зміни, внесені на одному браузері, можуть не відразу відображатися в іншому браузері, в якому дані беруться з кеш-пам'яті.
переводится, пожалуйста, подождите..