Calculate capacity reserve and label whether the reserve is stable, watch, or tight.

reserve report Fixed capacity and demand values can produce a replay-friendly reserve label before any scheduler acts on it.

Capacity Reserve Reliability Report

demand
capacity_reserve.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $demand = 72;
my $capacity = 100;
my $reserve = $capacity - $demand;
my $reserve_status = "tight";

if ($reserve >= 20) {
    $reserve_status = "stable";
} elsif ($reserve >= 10) {
    $reserve_status = "watch";
}

print "demand=$demand reserve=$reserve status=$reserve_status\n";
use strict;
use warnings;

my $demand = 88;
my $capacity = 100;
my $reserve = $capacity - $demand;
my $reserve_status = "tight";

if ($reserve >= 20) {
    $reserve_status = "stable";
} elsif ($reserve >= 10) {
    $reserve_status = "watch";
}

print "demand=$demand reserve=$reserve status=$reserve_status\n";
use strict;
use warnings;

my $demand = 95;
my $capacity = 100;
my $reserve = $capacity - $demand;
my $reserve_status = "tight";

if ($reserve >= 20) {
    $reserve_status = "stable";
} elsif ($reserve >= 10) {
    $reserve_status = "watch";
}

print "demand=$demand reserve=$reserve status=$reserve_status\n";
  1. $demand ← 72, $capacity ← 100, $reserve ← 28, $reserve_status ← tight

    4my $demand→ 72 = 72; #@demand=88, 955my $capacity→ 100 = 100;6my $reserve→ 28 = $capacity100 - $demand72;7my $reserve_status→ tight = "tight";
  2. $reserve_status ← stable

    9if ($reserve28 >= 20) {10    $reserve_status→ stable = "stable";11} elsif ($reserve >= 10) {
  3. print "demand=$demand reserve=$reserve status=$reserve_status ";

    15print "demand=$demand72 reserve=$reserve28 status=$reserve_statusstable\n";
    outputdemand=72 reserve=28 status=stable
  1. $demand ← 88, $capacity ← 100, $reserve ← 12, $reserve_status ← tight

    4my $demand→ 88 = 88;5my $capacity→ 100 = 100;6my $reserve→ 12 = $capacity100 - $demand88;7my $reserve_status→ tight = "tight";
  2. $reserve_status ← watch

    10    $reserve_status = "stable";11} elsif ($reserve12 >= 10) {12    $reserve_status→ watch = "watch";13}
  3. print "demand=$demand reserve=$reserve status=$reserve_status ";

    15print "demand=$demand88 reserve=$reserve12 status=$reserve_statuswatch\n";
    outputdemand=88 reserve=12 status=watch
  1. $demand ← 95, $capacity ← 100, $reserve ← 5, $reserve_status ← tight

    4my $demand→ 95 = 95;5my $capacity→ 100 = 100;6my $reserve→ 5 = $capacity100 - $demand95;7my $reserve_status→ tight = "tight";89if ($reserve >= 20) {10    $reserve_status = "stable";11} elsif ($reserve >= 10) {12    $reserve_status = "watch";13}1415print "demand=$demand95 reserve=$reserve5 status=$reserve_statustight\n";
    outputdemand=95 reserve=5 status=tight