Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Подробности операций [ править ]

Иллюстрация раскраски кеша. Слева - области виртуальной памяти , в центре - пространство физической памяти, а справа - кэш ЦП .

Физически индексированный кэш ЦП разработан таким образом, что адреса в соседних блоках физической памяти занимают разные позиции («строки кэша») в кэше, но это не тот случай, когда речь идет о виртуальной памяти; когда выделяются виртуально смежные, но не физически смежные блоки памяти, они потенциально могут занимать одну и ту же позицию в кэше. Раскрашивание - это метод, реализованный в программном обеспечении для управления памятью, который решает эту проблему, выбирая страницы, которые не конкурируют с соседними страницами.

Страницы физической памяти «раскрашены», поэтому страницы с разными «цветами» занимают разные позиции в кэш-памяти ЦП. При выделении последовательных страниц в виртуальной памяти для процессов ядро ​​собирает страницы с разными «цветами» и отображает их в виртуальную память. Таким образом, последовательные страницы в виртуальной памяти не конкурируют за одну и ту же строку кэша.

Реализации [ править ]

Этот код значительно усложняет подсистему распределения виртуальной памяти, но результат стоит затраченных усилий. [1] Раскраска страниц делает виртуальную память такой же детерминированной, как и физическая память, в отношении производительности кеша. Раскраска страниц используется в таких операционных системах , как Solaris , [2] FreeBSD , [1] NetBSD , [3] и Windows NT . [4]

Ссылки [ править ]

  1. ^ a b Мэтью Диллон . «Раскраска страниц» . Элементы дизайна системы FreeBSD VM . Фонд FreeBSD . Проверено 13 января 2007 .
  2. ^ "Что нового в операционной системе Solaris" . Маркетинговые материалы по Solaris . Sun Microsystems, Inc . Проверено 13 января 2007 .
  3. ^ Мэтт Томас . «Улучшение NetBSD / mips» (PDF) . Управление цветами страницы . Фонд NetBSD . Проверено 24 сентября 2012 .
  4. ^ Эдуард Бюньон; Дженнифер М. Андерсон; Тодд С. Моури *; Мендель Розенблюм; Моника С. Лам. «Раскраска страниц, управляемая компилятором для мультипроцессоров» . Стэнфордский университет . Проверено 6 октября 2009 .

Внешние ссылки [ править ]