Block scheduling algorithm caching via the longest forward distance policy (offline). More...
#include <block_scheduler.h>


Public Member Functions | |
| block_scheduler_algorithm_offline_lfd (block_scheduler_type &bs) | |
| block_scheduler_algorithm_offline_lfd (block_scheduler_algorithm_type *old) | |
| virtual bool | evictable_blocks_empty () |
|
virtual swappable_block_identifier_type | evictable_blocks_pop () |
| virtual internal_block_type & | acquire (const swappable_block_identifier_type sbid, const bool uninitialized=false) |
| virtual void | release (swappable_block_identifier_type sbid, const bool dirty) |
| virtual void | deinitialize (swappable_block_identifier_type sbid) |
| virtual void | initialize (swappable_block_identifier_type sbid, external_block_type eblock) |
| virtual external_block_type | extract_external_block (swappable_block_identifier_type sbid) |
Protected Types | |
|
typedef block_scheduler < SwappableBlockType > | block_scheduler_type |
|
typedef block_scheduler_algorithm < SwappableBlockType > | block_scheduler_algorithm_type |
|
typedef block_scheduler_type::internal_block_type | internal_block_type |
|
typedef block_scheduler_type::external_block_type | external_block_type |
|
typedef block_scheduler_type::swappable_block_identifier_type | swappable_block_identifier_type |
|
typedef block_scheduler_algorithm_type::time_type | time_type |
|
typedef block_scheduler_type::prediction_sequence_type | prediction_sequence_type |
Protected Member Functions | |
| internal_block_type * | get_free_internal_block () |
| void | return_free_internal_block (internal_block_type *iblock) |
| void | init (block_scheduler_algorithm_type *old_algo) |
Protected Attributes | |
| addressable_priority_queue < swappable_block_identifier_type, priority > | evictable_blocks |
| Holds swappable blocks, whose internal block can be freed, i.e. that are internal but unacquired. | |
| std::deque< std::pair< bool, time_type > > | next_use |
| stores for the sequence of releases extracted from the prediction_sequence: (true, timestamp of the blocks next acquire) if it is acquired next (false, 0) if it is deinitialized next (false, 1) if it is not accessed any more (false, 2) if it is extracted next (false, 3) if it is initialized next | |
Block scheduling algorithm caching via the longest forward distance policy (offline).
addressable_priority_queue<swappable_block_identifier_type, priority> block_scheduler_algorithm_offline_lfd< SwappableBlockType >::evictable_blocks [protected] |
Holds swappable blocks, whose internal block can be freed, i.e. that are internal but unacquired.
std::deque< std::pair<bool, time_type> > block_scheduler_algorithm_offline_lfd< SwappableBlockType >::next_use [protected] |
stores for the sequence of releases extracted from the prediction_sequence: (true, timestamp of the blocks next acquire) if it is acquired next (false, 0) if it is deinitialized next (false, 1) if it is not accessed any more (false, 2) if it is extracted next (false, 3) if it is initialized next
1.7.1