LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ldes::engine::LnJob Struct Reference

One in-flight request: a reference-task job somewhere in its call tree. More...

#include <line/solvers/ldes/ldes_ln_engine.h>

Collaboration diagram for line::ldes::engine::LnJob:

Public Attributes

std::size_t id = 0
std::size_t ref_task = 0
std::vector< std::size_t > stack
 The activity stack: what this job is executing and what it will return to.
std::vector< std::size_t > act_pos
 next activity of each stacked entry
std::vector< std::size_t > calls_left
 Repetitions of the CURRENT call still to be made, per stack level.
std::vector< std::size_t > call_pos
 next call index of the current activity
std::vector< double > entry_t0
 When each stacked entry was entered, for its response time and occupancy.
std::vector< double > act_t0
 When the current activity of each level began; -1 between activities.
std::vector< std::size_t > repl_of
 Replica of the task owning each stacked entry.
std::vector< std::size_t > thr_slot
 The task thread each stacked entry holds.
std::vector< std::size_t > thr_id
double t_start = 0.0
 when the current top-level invocation began
double host_t0 = 0.0
 When this job last asked its host processor for service – the instant the residence at the host starts, queueing included.
bool holding_thread = false
std::size_t thread_task = 0

Detailed Description

One in-flight request: a reference-task job somewhere in its call tree.

Definition at line 92 of file ldes_ln_engine.h.

Member Data Documentation

◆ act_pos

std::vector<std::size_t> line::ldes::engine::LnJob::act_pos

next activity of each stacked entry

Definition at line 97 of file ldes_ln_engine.h.

◆ act_t0

std::vector<double> line::ldes::engine::LnJob::act_t0

When the current activity of each level began; -1 between activities.

An activity's span runs from the moment it becomes current to the moment its host demand completes, so it CARRIES THE NESTED CALLS it makes – that is what makes it a response time and not a residence.

Definition at line 118 of file ldes_ln_engine.h.

◆ call_pos

std::vector<std::size_t> line::ldes::engine::LnJob::call_pos

next call index of the current activity

Definition at line 108 of file ldes_ln_engine.h.

◆ calls_left

std::vector<std::size_t> line::ldes::engine::LnJob::calls_left

Repetitions of the CURRENT call still to be made, per stack level.

NOTDRAWN means the count has not been sampled yet for this execution of the activity. An LQN call carries a MEAN NUMBER OF CALLS (calls-mean), not a single dispatch, and the count is drawn once when the call is first reached – so A.synchCall(E, 3) blocks on E three times per execution of A, which is three times the callee's demand in the caller's cycle.

Definition at line 107 of file ldes_ln_engine.h.

◆ entry_t0

std::vector<double> line::ldes::engine::LnJob::entry_t0

When each stacked entry was entered, for its response time and occupancy.

Definition at line 110 of file ldes_ln_engine.h.

◆ holding_thread

bool line::ldes::engine::LnJob::holding_thread = false

Definition at line 141 of file ldes_ln_engine.h.

◆ host_t0

double line::ldes::engine::LnJob::host_t0 = 0.0

When this job last asked its host processor for service – the instant the residence at the host starts, queueing included.

A job is at one host at a time, so one scalar carries it.

Definition at line 140 of file ldes_ln_engine.h.

◆ id

std::size_t line::ldes::engine::LnJob::id = 0

Definition at line 93 of file ldes_ln_engine.h.

◆ ref_task

std::size_t line::ldes::engine::LnJob::ref_task = 0

Definition at line 94 of file ldes_ln_engine.h.

◆ repl_of

std::vector<std::size_t> line::ldes::engine::LnJob::repl_of

Replica of the task owning each stacked entry.

A call picks the callee replica once and the request stays on it until it replies, so the whole of one invocation runs on one copy of the callee and its processor.

Definition at line 124 of file ldes_ln_engine.h.

◆ stack

std::vector<std::size_t> line::ldes::engine::LnJob::stack

The activity stack: what this job is executing and what it will return to.

entry indices, innermost last

Definition at line 96 of file ldes_ln_engine.h.

◆ t_start

double line::ldes::engine::LnJob::t_start = 0.0

when the current top-level invocation began

Definition at line 134 of file ldes_ln_engine.h.

◆ thr_id

std::vector<std::size_t> line::ldes::engine::LnJob::thr_id

Definition at line 133 of file ldes_ln_engine.h.

◆ thr_slot

std::vector<std::size_t> line::ldes::engine::LnJob::thr_slot

The task thread each stacked entry holds.

A caller keeps its thread across a synchronous call, so every level of the stack holds one of its own task's threads at once, and that is the layered contention the model represents. NOTHR marks a level whose thread is not yet held (it is queueing, or its thread is powering up) or a level on an infinite-thread task.

Definition at line 132 of file ldes_ln_engine.h.

◆ thread_task

std::size_t line::ldes::engine::LnJob::thread_task = 0

Definition at line 142 of file ldes_ln_engine.h.


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