Кіріспе
Компьютерлік жадының тиімділігін арттыру техникасы. Компьютерлік ғылымда кэшті бояу (немесе бетті бояу) – процессордың кэшінде сақталған беттердің жалпы санын барынша арттыру мақсатында, процессор кэшінің тұрғысынан тікелей жатқан бос беттерді бөлу әрекеті. Кэшті бояу көбінесе операциялық жүйедегі төменгі деңгейдегі динамикалық жадты бөлу кодымен виртуалды жадты физикалық жадқа бейімдеу кезінде қолданылады. Кэшті бояу жоқ виртуалды жад жүйесі кэштің жұмысына қатысты белгілі бір нәтижеге келуде нашар, себебі бір бағдарламадан екінші бағдарламаға беттерді бөлудегі айырмашылықтар бағдарламаның өнімділігінде елеулі өзгерістерге алып келуі мүмкін.
In computer science, cache coloring (also known as page coloring) is the process of attempting to allocate free pages that are contiguous from the CPU cache's point of view, in order to maximize the total number of pages cached by the processor. Cache coloring is typically employed by low level dynamic memory allocation code in the operating system, when mapping virtual memory to physical memory. A virtual memory subsystem that lacks cache coloring is less deterministic with regards to cache performance, as differences in page allocation from one program run to the next can lead to large differences in program performance.
Операциялардың егжей-тегжейі
Физикалық индекстелген CPU кэш-кеші, көршілес физикалық жад блоктарындағы адрестер кэш-кеште әртүрлі орындарда ("кэш-жолдар") болады деп жобаланған, бірақ виртуалды жадқа келгенде бұл жағдай осылай болмайды; виртуалды түрде көршілес, бірақ физикалық түрде көршілес емес жад блоктары бөлінгенде, олар кэш-кеште бірдей орынды алуы мүмкін. "Түсті таңдау" – жадты басқару бағдарламалық құралында іске асырылатын әдіс, ол көршілес беттермен қақтығыспайтын беттерді таңдау арқылы осы мәселені шешеді. Физикалық жад беттері "түстеледі", сондықтан әртүрлі "түстерге" ие беттер CPU кэш жадында әртүрлі орындарда болады. Процестер үшін виртуалды жадтағы тізбектелген беттерді бөліп беру кезінде, ядро әртүрлі "түстерге" ие беттерді жинап, оларды виртуалды жадқа бейімдейді. Осылайша, виртуалды жадтағы тізбектелген беттер бір кэш-жолы үшін бәсекелес болмайды.
Қолданылу
Бұл код виртуалды жадты бөлуге арналған ішкі жүйенің күрделілігін арттырады, бірақ нәтижеге жетуге арналған күш-жігердің өте құнды екенін көрсетеді. Жады беттерін түрлендіру (Page coloring) виртуалды жадты кэштің өнімділігі тұрғысынан физикалық жадтай болжамды етеді. Жады беттерін түрлендіру Solaris, FreeBSD және Windows NT сияқты операциялық жүйелерде қолданылады.