File: [local] / OpenXM_contrib / PHC / Ada / System / unix_resource_usage.ads (download)
Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:34 2000 UTC (23 years, 10 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD Changes since 1.1: +0 -0
lines
Import the second public release of PHCpack.
OKed by Jan Verschelde.
|
with System;
package Unix_Resource_Usage is
type Process_Times is private;
type times_enum is (self, children);
type page_seconds is new integer;
-- expressed in units of pages * clock ticks (1 tick = 1/50 second).
-- The value is calculated by summing the number of shared memory
-- pages in use each time the internal system clock ticks, and then
-- averaging over 1 second intervals.
function Get_Process_Times ( who : times_enum := self ) return Process_Times;
function Total_Time_of ( times: in Process_Times ) return duration;
function User_CPU_Time_Of ( times: in Process_Times ) return duration;
function System_CPU_Time_Of ( times: in Process_Times ) return duration;
function Max_Resident_Set_Size_of ( times: in Process_Times ) return natural;
function Shared_Pages_Value_of ( times: in Process_Times )
return page_seconds;
-- DESCRIPTION :
-- returns the amount of memory used by the text segment which was
-- also shared among other processes.
function Unshared_Data_Pages_Value_of ( times: in Process_Times )
return page_seconds;
-- DESCRIPTION :
-- returns the amount of unshared memory residing in the data segment
-- of the process.
function Stack_Pages_Value_of ( times: in Process_Times ) return page_seconds;
-- DESCRIPTION :
-- returns the amount of unshared memory residing in the stack segment
-- of the process
function Non_IO_Page_Faults_of ( times: in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of page faults serviced without any I/O activity;
-- here I/O activity is avoided by "reclaiming" a page frame from the
-- list of pages awaiting reallocation.
function IO_Page_Faults_of ( times: in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of page faults serviced which required I/O activity.
function Swaps_of ( times : in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of times the process was swapped out of main memory.
function Input_Blocks_of ( times : in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of times the file system had to perform input.
function Output_Blocks_of ( times : in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of times the file system had to perform output.
function Socket_Messages_Sent_of ( times : in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of messages sent over sockets.
function Socket_Messages_Received_of ( times : in Process_Times )
return natural;
-- DESCRIPTION :
-- returns the number of messages received over sockets.
function Signals_Delivered_of ( times : in Process_Times ) return natural;
-- DESCRIPTION :
-- returns the number of signals delivered.
function Voluntary_Context_Switches_of ( times: in Process_Times )
return natural;
-- DESCRIPTION :
-- returns the number of times a context switch resulted due to a process
-- voluntarily giving up the processor before its time slice was completed
-- (usually to await availability of a resource).
function Involuntary_Context_Switches_of ( times: in Process_Times )
return natural;
-- DESCRIPTION :
-- returns the number of times a context switch resulted due to a
-- higher priority process becoming runnable or because the current
-- process exceeded its time slice.
private
type timeval is record
tv_sec : integer; -- Ada integer is C/SunOS long
tv_usec : integer; -- Ada integer is C/SunOS long
end record;
type rusage is record
ru_utime : timeval;
ru_stime : timeval;
ru_maxrss : integer;
ru_ixrss : integer; -- integral shared text memory size
ru_idrss : integer; -- integral unshared data size
ru_isrss : integer; -- integral unshared stack size
ru_minflt : integer; -- page reclaims
ru_majflt : integer; -- page faults
ru_nswap : integer; -- swaps
ru_inblock : integer; -- block input operations
ru_outblock : integer; -- block output operations
ru_msgsnd : integer; -- messages sent
ru_msgrcv : integer; -- messages received
ru_nsignals : integer; -- signals received
ru_nvcsw : integer; -- voluntary context switches
ru_nivcsw : integer; -- involuntary context switches
end record;
type process_times is new rusage;
pragma inline (get_process_times, total_time_of, user_cpu_time_of,
system_cpu_time_of, max_resident_set_size_of,
shared_pages_value_of, unshared_data_pages_value_of,
stack_pages_value_of, non_io_page_faults_of,
io_page_faults_of, swaps_of, input_blocks_of,
output_blocks_of, socket_messages_sent_of,
socket_messages_received_of, signals_delivered_of,
voluntary_context_switches_of,
involuntary_context_switches_of);
end Unix_Resource_Usage;