Упреждающее чтение

Упреждающее чтение

Упреждающее чтение (read ahead) -- это стратегия организации ввода-вывода в операционной системе или СУБД, при которой запросы на чтение блоков, расположенных за текущей областью чтения выдаются одновременно с запросами на чтение блоков внутри текущей области чтения.

Контроллер ввода-вывода выполняет поиск и чтение блоков данных асинхронно относительно центрального процессора и генерирует прерывания по завершении операции. Если известно, что блоки, расположенные за текущей областью чтения будут впоследствии прочитаны с большой вероятностью, то запросы на их чтение могут быть выданы одновременно с запросами на чтение блоков, располеженных в текущей области чтения.

По завершении упреждающего чтения данные блока помещаются в буфер сверхопертивной памяти (кэш) и сразу же становятся доступны читающему процессу (процессам).

Принцип локальности

  Кэш или подход кэширования мы встречаем повсюду в электронных
  устройствах, архитектуре программного обеспечения: кэш ЦП (первого и
  второго уровня), буферы жесткого диска, кэш операционной системы, буфер
  в автомагнитоле. Чем же определяется такой успех кэширования? Ответ
  лежит в принципе локальности: программе, устройству свойственно в
  определенный промежуток времени работать с некоторым подмножеством
  данных из общего набора. В случае оперативной памяти это означает, что
  если программа работает с данными, находящимися по адресу 100, то с
  большей степенью вероятности следующее обращение будет по адресу 101,
  102 и т.п., а не по адресу 10000, например. То же самое с жестким
  диском: его буфер наполняется данными из областей, соседних по
  отношению к последним прочитанным секторам, если бы наши программы
  работали в один момент времени не с некоторым относительно небольшим
  набором файлов, а со всем содержимым жесткого диска, буферы были бы
  бессмысленны. Буфер автомагнитолы совершает упреждающее чтение с диска
  следующих минут музыки, потому что мы, скорее всего, будем слушать
  музыкальный файл последовательно, чем перескакивать по набору музыки и
  т.п.
  В случае web-проектов успех кэширования определяется тем, что на сайте
  есть всегда наиболее популярные страницы, некоторые данные используются
  на всех или почти на всех страницах, то есть существуют некоторые
  выборки, которые оказываются затребованы гораздо чаще других. Мы
  заменяем несколько обращений к backend'у на одно обращения для
  построения кэша, а затем все последующие обращения будет делать через
  быстро работающий кэш. Кэш всегда лучше, чем исходный источник данных:
  кэш ЦП на порядки быстрее оперативной памяти, однако мы не можем
  сделать оперативную память такой же быстрой, как кэш - это экономически
  неэффективно и технически сложно. Буфер жесткого диска удовлетворяет
  запросы за данными на порядки быстрее самого жесткого диска, однако
  буфер не обладает свойством запоминать данные при отключении питания -
  в этом смысле он хуже самого устройства. Аналогичная ситуация и с
  кэшированием в Web'е: кэш быстрее и эффективнее, чем backend, однако он
  обычно в случае перезапуска или падения сервера не может сохранить
  данные, а также не обладает логикой по вычислению каких-либо
  результатов: он умеет возвращать лишь то, что мы ранее в него положили.

[1]


Ссылки

Морис Дж. Бах. Архитектура операционной системы Unix


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Упреждающее чтение" в других словарях:

  • Google Chrome — Для термина «Chrome» см. другие значения. Эта статья о браузере; об операционной системе см.: Google Chrome OS. Google Chrome …   Википедия

  • Процессоры — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • ЦП — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • ЦПУ — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • Центральное процессорное устройство — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • Центральный процессор — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»