lang.sections
- class Forker
Bases:
OutputSectionAn output section forking jobs into sibling tasks
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Forker(customerClasses)
SELF = FORKER(CUSTOMERCLASSES)
- Property Summary
- branchProb
Per-destination, per-class branch activation probability. Empty means 1.0: the branch always fires, which is the classic fork.
- tasksPerLink
Nominal tasks emitted on each outgoing link, shared by every link and every class. For a fork whose degree is random this is the MEAN, so a consumer that only knows this field gets E[tasks per link] rather than a number the fork never emits.
- tasksPerLinkByDest
Per-destination, per-class overrides, each a containers-free struct array of (destNodeName, class index, value). Empty means “uniform, use tasksPerLink”. They are kept by DESTINATION NAME rather than by link ordinal because the link order is an artefact of connmatrix traversal and silently renumbers when the model is relinked.
- tasksPerLinkDist
Per-destination, per-class jobs-per-link distributions (DiscreteSampler over a non-negative integer support). Empty means degenerate at the corresponding tasksPerLink entry.
Bases:
ServiceSectionA service section for serving jobs with processor sharing type policies
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
SELF = SHAREDSERVER(CUSTOMERCLASSES)
- class PreemptiveServer
Bases:
ServiceSectionA service section for serving jobs preemptively
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- PreemptiveServer(customerClasses)
SELF = SHAREDSERVER(CUSTOMERCLASSES)
- class CacheClassSwitcher
Bases:
StatefulClassSwitcherA class switcher section based on cache hits and misses
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- CacheClassSwitcher(classes, items, capacity, levels)
SELF = CACHECLASSSWITCHER(CLASSES, ITEMS, CAPACITY, LEVELS)
- Property Summary
- actualDelayedHitProb
delayed-hit fraction per arrival class (retrieval system; filled after solve)
- actualDelayedHitQLen
[1 x items] mean secondary requests waiting on the fetch of each item
- actualDelayedHitQLenFull
[1 x items] as above, including the request that triggered the fetch
- actualHitProb
- actualHitProbList
[classes x lists] per-list (per-level) hit fraction (filled after solve, where available)
- actualItemProb
col 1 = miss, cols 2..end = per-list (filled after solve, where available)
- Type:
[items x (lists+1)] per-item occupancy
- actualListCost
[1 x lists] mean storage cost held by each list (filled after solve when item sizes are set)
- actualMissProb
- actualResidT
expected latency per arrival class (filled after solve)
- cap
- hitClass
- items
- levels
- missClass
- retrievalClasses
[items x classes] -1 where no retrieval class is defined
- Method Summary
- simpleHitMiss(r, s, state, statep)
PROB = SIMPLEHITMISS(R, S, STATE, STATEP)
- class StatefulClassSwitcher
Bases:
ClassSwitcherAn abstract class for a state-dependent class switch
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class Timing
Bases:
ServiceSectionA service tunnel for general nodes
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Timing(name)
SELF = SERVICETUNNEL(NAME)
- class Storage
Bases:
InputSectionAn input section for jobs to wait for service.
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class StatelessClassSwitcher
Bases:
ClassSwitcherA class switch node basic on class switch probabilities
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class ServiceTunnel
Bases:
ServiceSectionA service tunnel for general nodes
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- ServiceTunnel(name)
SELF = SERVICETUNNEL(NAME)
- class ServiceSection
Bases:
SectionAn abstract class for the service section of a node.
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class Server
Bases:
ServiceSectionServer Basic non-preemptive service section for job processing
Server implements a basic service section that processes jobs according to non-preemptive disciplines. It manages service processes for different job classes and coordinates with scheduling sections to provide complete queueing station functionality.
@brief Non-preemptive service section with class-dependent service processes
Key characteristics: - Non-preemptive job service - Class-dependent service time distributions - Single or multiple server support - Load-independent service strategies - Integration with scheduling disciplines
Server features: - Service process management per class - Service time distribution configuration - Server capacity specification - Load-independent operation - Deep copy support for model cloning
Server is used in: - Basic FCFS and LCFS queues - Priority queue service sections - Multi-server queue implementations - Load-independent service modeling - Class-differentiated service systems
Example: @code classes = {OpenClass(model, ‘Class1’), ClosedClass(model, ‘Class2’, 5)}; server = Server(classes); server.setServiceProcess(1, 1, Exp(2.0)); % Class1 service @endcode
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Server(classes)
SERVER Create a basic server section instance
@brief Creates a Server section for non-preemptive job processing @param classes Cell array of JobClass objects to be served @return self Server instance configured for the specified classes
- class Section
Bases:
NetworkElementAn abstract class for sections that define the behavior of a Node
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class RandomSource
Bases:
InputSectionAn input section generating arrivals from the external world at random times
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class PollingServer
Bases:
ServiceSectionA service section for serving input buffers cyclically
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- PollingServer(classes)
SELF = SERVER(CLASSES)
- class OutputSection
Bases:
SectionAn abstract class for the output section of a node.
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Property Summary
- outputStrategy
- class LogTunnel
Bases:
ServiceTunnelA service tunnel for Logger nodes
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- LogTunnel()
SELF = LOGTUNNEL()
- class Linkage
Bases:
OutputSectionAn output section dispatching jobs to a destination
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class Joiner
Bases:
InputSectionAn input section that joins siblings tasks
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Joiner(customerClasses)
SELF = JOINER(CUSTOMERCLASSES)
- Property Summary
- joinJobClasses
- joinRequired
- joinStrategy
- Method Summary
- initJoinJobClasses(customerClasses)
INITJOINJOBCLASSES(CUSTOMERCLASSES)
- setRequired(customerClass, nJobs)
SETREQUIRED(CUSTOMERCLASS, NJOBS)
- setStrategy(customerClass, joinStrat)
SETSTRATEGY(CUSTOMERCLASS, JOINSTRAT)
- class InputSection
Bases:
SectionAn abstract class for the input section of a node.
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Property Summary
- schedPolicy
- class InfiniteServer
Bases:
ServiceSectionA service section to delay jobs without contention
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- InfiniteServer(customerClasses)
SELF = INFINITESERVER(CUSTOMERCLASSES)
- class Firing
Bases:
OutputSectionAn output section for Transitions
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Firing(customerClasses)
SELF = FORKER(CUSTOMERCLASSES)
- class Enabling
Bases:
InputSectionAn input section for jobs to wait for service.
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class Dispatcher
Bases:
OutputSectionDispatcher Output section for routing jobs to downstream destinations
Dispatcher implements an output section that routes completed jobs to their next destinations according to specified routing strategies. It manages class-dependent routing decisions and coordinates job flow through the queueing network topology.
@brief Output section for class-dependent job routing and dispatching
Key characteristics: - Class-dependent routing strategies - Destination selection and job dispatching - Support for various routing policies - Integration with network topology - Probabilistic and deterministic routing
Dispatcher features: - Routing strategy management per class - Destination probability specification - Random, round-robin, and custom routing - Class-based routing differentiation - Network flow coordination
Dispatcher is used in: - Queue output sections for job routing - Router nodes for traffic distribution - Load balancing implementations - Multi-path network routing - Class-based service differentiation
Example: @code classes = {OpenClass(model, ‘WebReq’), OpenClass(model, ‘DBReq’)}; dispatcher = Dispatcher(classes); dispatcher.setStrategy(classes{1}, RoutingStrategy.PROB); @endcode
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- Constructor Summary
- Dispatcher(customerClasses)
SELF = DISPATCHER(CUSTOMERCLASSES)
- Method Summary
- initDispatcherJobClasses(customerClasses)
INITDISPATCHERJOBCLASSES(CUSTOMERCLASSES)
- initDispatcherJobClassesPreservingRouted(customerClasses)
INITDISPATCHERJOBCLASSESPRESERVINGROUTED(CUSTOMERCLASSES) Reset to DISABLED only classes that currently lack a meaningful routing strategy (i.e. empty entries or those already DISABLED). Classes that have been configured before link() runs — e.g. by Cache.setRetrievalSystem’s auto-generated routing on the retrieval ClassSwitch and Queues for retrieval-pending classes that do not appear in P — are preserved.
- setStrategy(customerClasses, strategy)
SETSTRATEGY(CUSTOMERCLASSES, STRATEGY)
- class ClassSwitcher
Bases:
ServiceSectionAn abstract classs for a service section that switches job class
Copyright (c) 2012-2026, Imperial College London All rights reserved.
- class Buffer
Bases:
InputSectionAn input section for jobs to wait for service.
Copyright (c) 2012-2026, Imperial College London All rights reserved.