LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
fj_serialization.h File Reference

Blocking probability and pseudoserver delay of serialization phases. More...

#include <cstddef>
#include <vector>
#include "line/api/fj/fj_types.h"
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for fj_serialization.h:

Go to the source code of this file.

Classes

struct  line::fj::FJSerializationResult< T >
 [P, delay, Rtot] of fj_serialization. More...

Namespaces

namespace  line
namespace  line::fj

Functions

template<class T>
FJSerializationResult< T > line::fj::fj_serialization (const std::vector< T > &Rs, const T &R0, unsigned M, const T &alpha=num_traits< T >::from_double(0.5))
 Blocking probability and pseudoserver delay of serialization phases.

Detailed Description

Blocking probability and pseudoserver delay of serialization phases.

Templated port of matlab/src/api/fj/fj_serialization.m.

A serialization phase is a stretch of execution protected by an exclusive lock, so at most one of the M circulating jobs may occupy it. Treating the other M-1 jobs as independently placed in proportion to the residence times,

P_s(M) = 1 - [ 1 - R_s(M)/R(M) ]^(M-1), R(M) = R_0 + sum_s R_s(M),

and the delay charged at the pseudoserver is alpha R_s(M), with alpha = 1/2 for an arrival uniform in a lightly utilized phase, the regime in which the approximation is stated.

Definition in file fj_serialization.h.