|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 8053 (0x1f75)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦12c68c704⟧
└─⟦this⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦this⟧
with Machine;
package Scheduler is
subtype Job_Id is Machine.Job_Id;
subtype Cpu_Priority is Natural range 0 .. 6;
subtype Milliseconds is Long_Integer;
procedure Disable (Job : Job_Id);
procedure Enable (Job : Job_Id);
function Enabled (Job : Job_Id) return Boolean;
function Get_Cpu_Priority (Job : Job_Id) return Cpu_Priority;
type Job_Kind is (Ce, Oe, Attached, Detached, Server, Terminated);
function Get_Job_Kind (Job : Job_Id) return Job_Kind;
type Job_State is (Run, Wait, Idle, Disabled, Queued);
function Get_Job_State (Job : Job_Id) return Job_State;
-- returns the current state of job.
-- RUN: the job is currently runnable
-- WAIT: the job is runnable but being withheld by the scheduler.
-- IDLE: the job isn't using cpu time and has no unblocked tasks.
-- DISABLED: an external agent has disabled the job from running.
-- QUEUED: the job is DETACHED and must wait for another to complete.
function Get_Cpu_Time_Used (Job : Job_Id) return Milliseconds;
-- returns the number of milliseconds of cpu time used by the job.
-- belongs on the previous page, put here for compatability reasons
function Disk_Waits (Job : Job_Id) return Long_Integer;
-- returns the number of disk_waits the job has done since last initialized
function Working_Set_Size (Job : Job_Id) return Natural;
-- returns the number of pages in the job's working set.
subtype Load_Factor is Natural;
-- for run queues, number of tasks * 100
procedure Get_Run_Queue_Load (Last_Sample : out Load_Factor;
Last_Minute : out Load_Factor;
Last_5_Minutes : out Load_Factor;
Last_15_Minutes : out Load_Factor);
-- number of runnable tasks * 100
procedure Get_Disk_Wait_Load (Last_Sample : out Load_Factor;
Last_Minute : out Load_Factor;
Last_5_Minutes : out Load_Factor;
Last_15_Minutes : out Load_Factor);
-- number of tasks waiting for a page on the disk wait queue * 100
procedure Get_Withheld_Task_Load (Last_Sample : out Load_Factor;
Last_Minute : out Load_Factor;
Last_5_Minutes : out Load_Factor;
Last_15_Minutes : out Load_Factor);
-- returns the average number of tasks withheld from running by
-- the scheduler * 100. In this call LAST_SAMPLE is the number of tasks
-- held at the last 100ms scheduling cycle.
procedure State;
-- print scheduler state
procedure Display (Show_Parameters : Boolean := True;
Show_Queues : Boolean := True);
-- display current scheduler state and queues
type Job_Descriptor is
record
The_Cpu_Priority : Cpu_Priority;
The_State : Job_State;
The_Disk_Waits : Long_Integer;
The_Time_Consumed : Milliseconds;
The_Working_Set_Size : Natural;
The_Working_Set_Limit : Natural;
The_Milliseconds_Per_Second : Natural;
The_Disk_Waits_Per_Second : Natural;
The_Maps_To : Job_Id;
The_Kind : Job_Kind;
The_Made_Runnable : Long_Integer;
The_Total_Runnable : Long_Integer;
The_Made_Idle : Long_Integer;
The_Made_Wait : Long_Integer;
The_Wait_Disk_Total : Long_Integer;
The_Wait_Memory_Total : Long_Integer;
The_Wait_Cpu_Total : Long_Integer;
The_Min_Working_Set_Limit : Long_Integer;
The_Max_Working_Set_Limit : Long_Integer;
end record;
function Get_Job_Descriptor (Job : Job_Id) return Job_Descriptor;
-- use to get a consistent snapshot of a job's statistics.
generic
with procedure Put (Descriptor : Job_Descriptor);
procedure Traverse_Job_Descriptors (First, Last : Job_Id);
-- use to get a consistent, efficient snapshot of a range of
-- job's statistics.
procedure Set (Parameter : String := ""; Value : Integer);
function Get (Parameter : String) return Integer;
-- Programmatic versions of set and display
-- initial parameters Default Units
-- CPU_Scheduling 1 1 or 0 (true or false)
-- Percent_For_Background 10 %
-- Min_Foreground_Budget -250 milliseconds (-5000..0)
-- Max_Foreground_Budget 250 milliseconds (0..5000)
-- Withhold_Run_Load 130 load * 100
-- Withhold_Multiple_Jobs 0 1 or 0 (true or false)
-- Memory_Scheduling 1 1 or 0 (true or false)
-- Environment_Wsl 11000 pages
-- Min_Ce_Wsl 400 pages
-- Max_Ce_Wsl 1000 pages
-- Min_Oe_Wsl 250 pages
-- Max_Oe_Wsl 2000 pages
-- Min_Attached_Wsl 50 pages
-- Max_Attached_Wsl 2000 pages
-- Min_Detached_Wsl 50 pages
-- Max_Detached_Wsl 4000 pages
-- Min_Server_Wsl 400 pages
-- Max_Server_Wsl 1000 pages
-- Daemon_Wsl 200 pages
-- Wsl_Decay_Factor 50 pages
-- Wsl_Growth_Factor 50 pages
-- Min_Available_Memory 2048 pages
-- Page_Withdrawl_Rate 1 n*640 pages/sec (n in 0..64)
-- Disk_Scheduling 1 1 or 0 (true or false)
-- Max_Disk_Load 250 Load_Factor
-- Min_Disk_Load 200 Load_Factor
-- Foreground_Time_Limit 60 seconds
-- Background_Streams 3
-- Stream_Time N 2,5,20 minutes
-- Stream_Jobs N 3,0,0 jobs
-- Strict_Stream_Policy 0 1 or 0 (true or false)
procedure Set_Job_Attribute (Job : Job_Id;
Attribute : String := "Kind";
Value : String := "Server");
function Get_Job_Attribute
(Job : Job_Id; Attribute : String := "Kind") return String;
-- These interfaces exist to deal with ongoing changes to scheduler
-- characteristics without requiring new procedures.
--
-- The default parameters to Set_Job_Attributes make the indicated job
-- a server.
--
-- See the documentation for other attributes.
procedure Set_Wsl_Limits (Job : Job_Id; Min, Max : Natural);
procedure Get_Wsl_Limits (Job : Job_Id; Min, Max : out Natural);
procedure Use_Default_Wsl_Limits (Job : Job_Id);
-- Each class of job has a default for working set min and max.
-- Set_Parameter lets you change the default value. Set_Wsl_Limits lets
-- you override the default for a specific job. Use_Default_Wsl_Limits
-- restores the values to the defaults, cancelling any prior Set_Wsl_Limits
-- call.
-- Get_Wsl_Limits returns the current values for a specific job.
-- Min and Max specify the range (in number of pages) in which the
-- working set limit is set. The scheduler chooses the working set
-- limit based on prevailing conditions on the machine. If Min and
-- Max are the same, the a fixed limit is specified.
-- Min must be less than or equal to Max and Max less than the memory size.
-- Error messages are sent to an output window in the case of errors.
-- No message of any kind if success.
pragma Subsystem (Os_Commands);
pragma Module_Name (4, 3923);
end Scheduler;