A cache system allocates memory for storage of data items by defining a
series of small blocks that are uniform in size. The system allocates one
or more blocks from memory and assigns them for storage of a data item. If
the data item exceeds the predetermined block size, more blocks are
assigned for storage. If a residual portion of the data item less than the
predetermined the block size remains, the operating system may allocate an
additional small storage block to store the residual portion of the data
item. The operating system allocates a large number of small blocks with a
plurality of blocks having different sizes where a first plurality of
blocks has one block size and a second plurality of blocks has a different
block size. The large number of blocks allocated by the operating system
avoid contention from multiple users requesting access to the data cache.
The predetermined blocks are allocated by the data cache software itself
and are not allocated by the operating system. In an exemplary embodiment,
the blocks allocated by the data cache software need not be contiguous
within the memory. Rather, each block contains a pointer to the start of
the next block for a particular data item and the last block of the
predetermined size blocks contains a pointer to the residual portion. A
status list contains data indicating whether the particular blocks are
free or used. When allocating blocks for storage of a data item, the
system will use the status list to determine which blocks are free. The
status list is updated to indicate the blocks have been allocated when a
data item is stored within the cache. When a data item is removed from the
cache, the status list is again updated to indicate that the availability
of the blocks.
Система тайника размещает память для хранения деталей данных путем определять серию малых блоков равномерно в размере. Система размещает one or more блоки от памяти и задает их для хранения деталя данных. Если деталь данных превышает предопределенный размер блока, то больше блоков заданы для хранения. Если остаточная предопределенная часть деталя данных чем остатку размера блока, оперативная система может размещать дополнительный малый блок хранения для того чтобы хранить остаточная часть деталя данных. Оперативная система размещает большое количество малых блоков с множественностью блоков имея по-разному размеры где первая множественность блоков имеет один размер блока и вторая множественность блоков имеет по-разному размер блока. The large number of блоков размещанных оперативной системой избегают утверждения от множественных потребителей спрашивая доступ к тайнику данных. Предопределенные блоки размещаны средством программирования самим тайника данных и не размещаны оперативной системой. В примерном воплощении, блоки размещанные средством программирования тайника данных быть сопредельны в пределах памяти. Довольно, каждый блок содержит указатель к старту следующего блока для определенного деталя данных и последний блок предопределенных блоков размера содержит указатель к остаточной части. Список состояния содержит данные показывая ли определенные блоки свободно или используемы. Размещая блоки для хранения деталя данных, система будет использовать список состояния для того чтобы обусловить которые блоки свободно. Список состояния уточнен для того чтобы показать блоки были размещаны когда деталь данных хранится внутри тайник. Когда деталь данных извлекается от тайника, список состояния снова уточнен для того чтобы показать что наличие блоков.