Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

block_scheduler_algorithm_offline_lfd< SwappableBlockType > Class Template Reference

Block scheduling algorithm caching via the longest forward distance policy (offline). More...

#include <block_scheduler.h>

Inheritance diagram for block_scheduler_algorithm_offline_lfd< SwappableBlockType >:
Inheritance graph
[legend]
Collaboration diagram for block_scheduler_algorithm_offline_lfd< SwappableBlockType >:
Collaboration graph
[legend]

List of all members.

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

Detailed Description

template<class SwappableBlockType>
class block_scheduler_algorithm_offline_lfd< SwappableBlockType >

Block scheduling algorithm caching via the longest forward distance policy (offline).


Member Data Documentation

template<class SwappableBlockType >
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.

template<class SwappableBlockType >
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


The documentation for this class was generated from the following file: