COMPILATION LISTING OF SEGMENT alarm_clock_meters Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/22/85 1517.1 mst Tue Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* This procedure prints out information about the functioning 12* of the simulated alarm clock in the traffic controller. 13* 14* Originally coded by R. J. Feiertag on March 1972. 15* Updated by Alan Bier on March 1974. 16* Last modified, 04/01/80 W. Olin Sibert, to fix zerodivide problems. 17* Modified November 1984 by M. Pandolf to include hc_lock 18* */ 19 20 alarm_clock_meters: acm: proc; 21 22 dcl code fixed bin, /* error code */ 23 time float bin, /* real time metered */ 24 i fixed bin, /* index */ 25 n_simulations fixed bin, /* number of simulations in metering interval */ 26 argptr ptr, /* points to argument */ 27 arglen fixed bin, /* number of chars in argument */ 28 arg char (arglen) based (argptr), /* argument */ 29 (repsw, rsw) bit (1) init ("0"b); /* action indicators */ 30 31 dcl init bit (1) internal static init ("0"b), /* 1 if has been initialized */ 32 unique_index fixed bin internal static, /* unique number for meter_util_ */ 33 (sstp1, sstp2, tcmp1, tcmp2) ptr internal static, /* pointers to ring 0 info */ 34 name char (18) internal static options (constant) init ("alarm_clock_meters"); 35 36 dcl float builtin; 37 38 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin), 39 cu_$arg_count entry returns (fixed bin), 40 meter_util_$get_buffers entry (fixed bin, ptr, ptr, ptr, ptr, fixed bin), 41 meter_util_$fill_buffers entry (fixed bin), 42 meter_util_$time entry (fixed bin, float bin), 43 meter_util_$reset entry (fixed bin), 44 com_err_ entry options (variable), 45 ioa_ entry options (variable); 46 1 1 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 1 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 1 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 1 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 1 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 1 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 1 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 1 8 1 9 dcl tcmp ptr; 1 10 1 11 dcl 1 tcm aligned based (tcmp), 1 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 1 13 2 cid2 fixed bin (18), 1 14 2 cid3 fixed bin (18), 1 15 2 cid4 fixed bin (18), 1 16 2 depth_count fixed bin (18), /* depth last process run */ 1 17 2 loadings fixed bin (18), /* number of process loadings */ 1 18 1 19 2 blocks fixed bin (18), /* number of calls to block */ 1 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 1 21 2 waits fixed bin (18), /* number of calls to wait */ 1 22 2 notifies fixed bin (18), /* number of calls to notify */ 1 23 2 schedulings fixed bin (18), 1 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 1 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 1 26 2 te_wait fixed bin (18), /* times te called from wait */ 1 27 1 28 2 te_block fixed bin (18), /* times te updated from block */ 1 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 1 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 1 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 1 32 2 idle fixed bin (71), /* total idle time */ 1 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 1 34 1 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 1 36 2 zero_idle fixed bin (71), /* zero idle time */ 1 37 2 last_time fixed bin (71), /* last time a process was run */ 1 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 1 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 1 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 1 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 1 42 2 processor_time fixed bin (71), /* total processor time on system */ 1 43 2 response_time fixed bin (71), /* estimate of response time */ 1 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 1 45 2 response_count fixed bin, /* count of response meters */ 1 46 2 eligible_count fixed bin, /* count of eligible meters */ 1 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 1 48 2 loading_idle fixed bin (71), /* loading_idle time */ 1 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 1 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 1 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 1 52 2 notify_check fixed bin, /* obsolete */ 1 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 1 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 1 55 2 end_of_time fixed bin (71), /* very large time */ 1 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 1 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 1 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 1 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 1 60 /* set this to >= half n_ttylines/fnp for safety */ 1 61 1 62 /* 100 octal */ 1 63 1 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 1 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 1 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 1 67 1 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 1 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 1 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 1 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 1 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 1 73 2 gp_done_count fixed bin (18), 1 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 1 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 1 76 2 nto_count fixed bin (18), /* number of times nto detected */ 1 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 1 78 2 nto_event bit (36), /* last event which NTO'd */ 1 79 2 page_notifies fixed bin (18), 1 80 2 notify_nobody_count fixed bin (18), 1 81 2 notify_nobody_event bit (36), 1 82 2 system_type fixed bin, /* used to be tcm.inter */ 1 83 1 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 1 85 1 86 /* 200 octal */ 1 87 1 88 2 wait (8), 1 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 1 90 3 count fixed bin (18), 1 91 1 92 2 ready (8), 1 93 3 time fixed bin (18), /* histogram of times in ready queue */ 1 94 3 count fixed bin (18), 1 95 1 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 1 97* all page faults */ 1 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 1 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 1 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 1 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 1 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 1 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 1 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 1 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 1 106 2 special_offsets unaligned, 1 107 3 apt_offset bit (18), 1 108 3 pad bit (18), 1 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 1 110 2 getwork_count fixed bin (18), /* total times through getwork */ 1 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 1 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 1 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 1 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 1 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 1 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 1 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 1 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 1 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 1 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 1 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 1 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 1 123 1 124 /* 300 octal */ 1 125 1 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 1 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 1 128 2 prds_length fixed bin (18), /* length of PRDS */ 1 129 2 pds_length fixed bin (18), /* length of PDS */ 1 130 2 lock fixed bin (18), /* process id generator lock */ 1 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 1 132 2 system_shutdown fixed bin (18), 1 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 1 134 1 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 1 136 2 last_eligible bit (18), /* last process to gain eligibility */ 1 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 1 138 2 apt_size fixed bin (18), /* number of APT entries */ 1 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 1 140 2 aht_size fixed bin (18), /* APT hash table size */ 1 141 2 itt_size fixed bin (18), /* number of ITT entries */ 1 142 1 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 1 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 1 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 1 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 1 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 1 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 1 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 1 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 1 151 1 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 1 153 2 dst_ptr ptr, /* pointer to device signal table */ 1 154 2 old_user ptr, /* last process to run (apt ptr ) */ 1 155 2 initialize_time fixed bin (71), /* time of initialization */ 1 156 1 157 2 init_event fixed bin (18), /* wait event during initialization */ 1 158 2 oldt fixed bin (18), /* timer reading from previous process */ 1 159 2 newt fixed bin (18), /* timer setting for new process */ 1 160 2 tefirst fixed bin (30), /* first eligible time */ 1 161 2 telast fixed bin (30), /* last eligible time */ 1 162 2 timax fixed bin (35), /* time in queue for lowest level */ 1 163 2 empty_q bit (18), /* thread of empty APT entries */ 1 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 1 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 1 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 1 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 1 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 1 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 1 170 2 min_eligible fixed bin (30), 1 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 1 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 1 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 1 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 1 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 1 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 1 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 1 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 1 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 1 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 1 181 2 max_channels fixed bin (18), /* num special channels per process */ 1 182 1 183 /* 400 octal */ 1 184 1 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 1 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 1 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 1 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 1 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 1 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 1 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 1 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 1 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 1 194 2 max_batch_elig fixed bin (35), 1 195 2 num_batch_elig fixed bin (35), 1 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 1 197 2 credits_scattered fixed bin (35), 1 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 1 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 1 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 1 201 2 mos_polling_interval fixed bin (35), /* for heals */ 1 202 2 mos_polling_time fixed bin (71), /* for heals */ 1 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 1 204 2 vcpu_response_bounds_size fixed bin (35), 1 205 2 meter_response_time_calls fixed bin (35), 1 206 2 meter_response_time_invalid fixed bin (35), 1 207 2 meter_response_time_overhead fixed bin (71), 1 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 1 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 1 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 1 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 1 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 1 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 1 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 1 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 1 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 1 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 1 218 1 219 /* Tuning Parameters for Stack Truncation */ 1 220 1 221 2 stk_truncate bit (1) aligned, 1 222 2 stk_truncate_always bit (1) aligned, 1 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 1 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 1 225 2 lock_error_severity fixed bin, /* syserr severity */ 1 226 1 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 1 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 1 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 1 230 2 volmap_polling_time fixed bin (71), 1 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 1 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 1 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 1 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 1 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 1 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 1 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 1 238 1 239 /* 500 octal */ 1 240 1 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 1 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 1 243 1 244 /* 1000 octal */ 1 245 1 246 2 pad7 (64) fixed bin (35), 1 247 1 248 /* 1100 octal */ 1 249 1 250 2 pad6 (8) fixed bin (35), 1 251 2 work_class_table aligned, /* array of per workclass information */ 1 252 3 wcte (0:16) aligned like wct_entry, 1 253 1 254 /* 3000 octal */ 1 255 1 256 2 apt fixed bin; 1 257 1 258 dcl wctep ptr; 1 259 1 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 1 261 2 thread unaligned, /* Ready list */ 1 262 3 fp bit (18), /* Head of ready list */ 1 263 3 bp bit (18), /* Tail of ready list */ 1 264 2 flags unaligned, 1 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 1 266 3 defined bit (1), 1 267 3 io_priority bit (1), 1 268 3 governed bit (1), 1 269 3 interactive_q bit (1), 1 270 3 pad bit (31), 1 271 2 credits fixed bin (35), /* Current worthiness of group */ 1 272 2 minf fixed bin (35), /* min fraction of cpu */ 1 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 1 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 1 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 1 276 2 resp1 fixed bin (71), 1 277 2 resp2 fixed bin (71), 1 278 2 quantum1 fixed bin (35), 1 279 2 quantum2 fixed bin (35), 1 280 2 rmeter1 fixed bin (71), 1 281 2 rmeter2 fixed bin (71), 1 282 2 rcount1 fixed bin (35), 1 283 2 rcount2 fixed bin (35), 1 284 2 realtime fixed bin (35), 1 285 2 purging fixed bin (35), 1 286 2 maxel fixed bin (35), 1 287 2 nel fixed bin (35), 1 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 1 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 1 290 2 total_think_time fixed bin (71), 1 291 2 total_queue_time fixed bin (71), 1 292 1 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 1 294 1 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 1 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 1 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 1 300 2 pad1 (4) fixed bin (35); 1 301 1 302 1 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 1 304 2 fp bit (18) unal, 1 305 2 bp bit (18) unal, 1 306 2 sentinel bit (36) aligned; 1 307 1 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 1 309 1 310 /* END INCLUDE FILE tcm.incl.pl1 */ 47 2 1 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 2 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 2 3* encourages name conflicts. 2 4* USE HC_FAST_LOCK INSTEAD! 2 5**/ 2 6 2 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 8 2 9 /* format: style3 */ 2 10 2 11 declare lock_ptr pointer; 2 12 declare 1 lock aligned based (lock_ptr), 2 13 2 pid bit (36) aligned, /* holder of lock */ 2 14 2 event bit (36) aligned, /* event associated with lock */ 2 15 2 flags aligned, 2 16 3 notify_sw bit (1) unaligned, 2 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 18 2 19 /* End include file hc_lock.incl.pl1 */ 48 49 /* */ 50 do i = 1 to cu_$arg_count (); 51 call cu_$arg_ptr (1, argptr, arglen, code); /* obtain optional single argument */ 52 if arglen = 0 | code ^= 0 then go to print_out; 53 if arg = "-reset" | arg = "-rs" then rsw = "1"b; 54 else if arg = "-report_reset" | arg = "-rr" then rsw, repsw = "1"b; 55 else call com_err_ (0, name, "unrecognized control argument ""^a"" ignored.", arg); 56 end; 57 58 print_out: if ^rsw then repsw = "1"b; /* report is default value */ 59 if ^init then do; /* must initialize */ 60 call meter_util_$get_buffers (unique_index, sstp1, sstp2, tcmp1, tcmp2, code); 61 /* initialize ring 0 info buffers */ 62 if code ^= 0 then do; 63 call com_err_ (code, name, "tc_data"); 64 return; 65 end; 66 init = "1"b; /* initialization complete */ 67 end; 68 call meter_util_$fill_buffers (unique_index); /* get ring 0 data */ 69 call meter_util_$time (unique_index, time); /* print out metering time */ 70 if repsw then do; 71 n_simulations = tcmp2 -> tcm.clock_simulations - tcmp1 -> tcm.clock_simulations; 72 call ioa_ ("No. alarm clock sims.^7d", n_simulations); 73 if n_simulations > 0 then call ioa_ ("Simulation lag^10x^8.3f msecs.", 74 float (tcmp2 -> tcm.total_clock_lag - tcmp1 -> tcm.total_clock_lag, 27) / 75 (1000e0 * float (n_simulations, 27))); 76 call ioa_ ("Max. lag^16x^8.3f msecs.^/", 77 float (tcmp2 -> tcm.max_clock_lag, 27) / 1000e0); 78 end; 79 80 if rsw then call meter_util_$reset (unique_index); /* copy current ring 0 info */ 81 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/22/85 1307.6 alarm_clock_meters.pl1 >spec>temp>41-5>alarm_clock_meters.pl1 47 1 01/22/85 1321.5 tcm.incl.pl1 >spec>temp>41-5>tcm.incl.pl1 48 2 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. arg based char unaligned dcl 22 set ref 53 53 54 54 55* arglen 000106 automatic fixed bin(17,0) dcl 22 set ref 51* 52 53 53 54 54 55 55 argptr 000104 automatic pointer dcl 22 set ref 51* 53 53 54 54 55 based_sentinel based structure level 1 dcl 1-303 clock_simulations 276 based fixed bin(17,0) level 2 dcl 1-11 ref 71 71 code 000100 automatic fixed bin(17,0) dcl 22 set ref 51* 52 60* 62 63* com_err_ 000036 constant entry external dcl 38 ref 55 63 cu_$arg_count 000024 constant entry external dcl 38 ref 50 cu_$arg_ptr 000022 constant entry external dcl 38 ref 51 float builtin function dcl 36 ref 73 73 76 i 000102 automatic fixed bin(17,0) dcl 22 set ref 50* init 000010 internal static bit(1) initial unaligned dcl 31 set ref 59 66* ioa_ 000040 constant entry external dcl 38 ref 72 73 76 lock based structure level 1 dcl 2-12 max_clock_lag 277 based fixed bin(17,0) level 2 dcl 1-11 ref 76 meter_util_$fill_buffers 000030 constant entry external dcl 38 ref 68 meter_util_$get_buffers 000026 constant entry external dcl 38 ref 60 meter_util_$reset 000034 constant entry external dcl 38 ref 80 meter_util_$time 000032 constant entry external dcl 38 ref 69 n_simulations 000103 automatic fixed bin(17,0) dcl 22 set ref 71* 72* 73 73 name 000000 constant char(18) initial unaligned dcl 31 set ref 55* 63* repsw 000107 automatic bit(1) initial unaligned dcl 22 set ref 22* 54* 58* 70 rsw 000110 automatic bit(1) initial unaligned dcl 22 set ref 22* 53* 54* 58 80 sstp1 000012 internal static pointer dcl 31 set ref 60* sstp2 000014 internal static pointer dcl 31 set ref 60* tcm based structure level 1 dcl 1-11 tcmp1 000016 internal static pointer dcl 31 set ref 60* 71 73 tcmp2 000020 internal static pointer dcl 31 set ref 60* 71 73 76 time 000101 automatic float bin(27) dcl 22 set ref 69* total_clock_lag 274 based fixed bin(71,0) level 2 dcl 1-11 ref 73 73 unique_index 000011 internal static fixed bin(17,0) dcl 31 set ref 60* 68* 69* 80* wct_entry based structure level 1 dcl 1-260 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VCPU_RESPONSE_BOUNDS internal static fixed bin(17,0) initial dcl 1-308 lock_ptr automatic pointer dcl 2-11 tcmp automatic pointer dcl 1-9 wctep automatic pointer dcl 1-258 NAMES DECLARED BY EXPLICIT CONTEXT. acm 000100 constant entry external dcl 20 alarm_clock_meters 000110 constant entry external dcl 20 print_out 000245 constant label dcl 58 ref 52 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 606 650 472 616 Length 1070 472 42 203 113 12 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME acm 124 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 init acm 000011 unique_index acm 000012 sstp1 acm 000014 sstp2 acm 000016 tcmp1 acm 000020 tcmp2 acm STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME acm 000100 code acm 000101 time acm 000102 i acm 000103 n_simulations acm 000104 argptr acm 000106 arglen acm 000107 repsw acm 000110 rsw acm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr ioa_ meter_util_$fill_buffers meter_util_$get_buffers meter_util_$reset meter_util_$time NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000000 aa 141 154 141 162 alar 000001 aa 155 137 143 154 m_cl 000002 aa 157 143 153 137 ock_ 000003 aa 155 145 164 145 mete 000004 aa 162 163 000 000 rs 000005 aa 524000000032 000006 aa 414000000033 000007 aa 524000000036 000010 aa 524000000030 000011 aa 524000000007 000012 aa 526000000000 000013 aa 524000000053 000014 aa 526000000022 000015 aa 404000000005 000016 aa 055 162 162 000 -rr 000017 aa 055 162 163 000 -rs 000020 aa 404000000021 000022 aa 164 143 137 144 tc_d 000023 aa 141 164 141 000 ata 000024 aa 055 162 145 163 -res 000025 aa 145 164 000 000 et 000026 aa 055 162 145 160 -rep 000027 aa 157 162 164 137 ort_ 000030 aa 162 145 163 145 rese 000031 aa 164 000 000 000 t 000032 aa 116 157 056 040 No. 000033 aa 141 154 141 162 alar 000034 aa 155 040 143 154 m cl 000035 aa 157 143 153 040 ock 000036 aa 163 151 155 163 sims 000037 aa 056 136 067 144 .^7d 000040 aa 115 141 170 056 Max. 000041 aa 040 154 141 147 lag 000042 aa 136 061 066 170 ^16x 000043 aa 136 070 056 063 ^8.3 000044 aa 146 040 155 163 f ms 000045 aa 145 143 163 056 ecs. 000046 aa 136 057 000 000 ^/ 000047 aa 123 151 155 165 Simu 000050 aa 154 141 164 151 lati 000051 aa 157 156 040 154 on l 000052 aa 141 147 136 061 ag^1 000053 aa 060 170 136 070 0x^8 000054 aa 056 063 146 040 .3f 000055 aa 155 163 145 143 msec 000056 aa 163 056 000 000 s. 000057 aa 165 156 162 145 unre 000060 aa 143 157 147 156 cogn 000061 aa 151 172 145 144 ized 000062 aa 040 143 157 156 con 000063 aa 164 162 157 154 trol 000064 aa 040 141 162 147 arg 000065 aa 165 155 145 156 umen 000066 aa 164 040 042 136 t "^ 000067 aa 141 042 040 151 a" i 000070 aa 147 156 157 162 gnor 000071 aa 145 144 056 000 ed. BEGIN PROCEDURE acm PROLOGUE SEQUENCE 000072 aa 6 00111 4401 00 sxl0 pr6|73 STATEMENT 1 ON LINE 22 000073 aa 6 00107 4501 00 stz pr6|71 repsw 000074 aa 6 00110 4501 00 stz pr6|72 rsw 000075 aa 6 00111 7201 00 lxl0 pr6|73 000076 aa 000000 7100 10 tra 0,0 MAIN SEQUENCE ENTRY TO acm STATEMENT 1 ON LINE 20 alarm_clock_meters: acm: proc; 000077 da 000104200000 000100 aa 000200 6270 00 eax7 128 000101 aa 7 00034 3521 20 epp2 pr7|28,* 000102 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000103 aa 000000000000 000104 aa 000000000000 000105 aa 777765 7000 04 tsx0 -11,ic 000072 000106 aa 000010 7100 04 tra 8,ic 000116 ENTRY TO alarm_clock_meters STATEMENT 1 ON LINE 20 alarm_clock_meters: acm: proc; 000107 da 000107200000 000110 aa 000200 6270 00 eax7 128 000111 aa 7 00034 3521 20 epp2 pr7|28,* 000112 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000113 aa 000000000000 000114 aa 000000000000 000115 aa 777755 7000 04 tsx0 -19,ic 000072 STATEMENT 1 ON LINE 50 do i = 1 to cu_$arg_count (); 000116 aa 6 00112 3521 00 epp2 pr6|74 000117 aa 6 00116 2521 00 spri2 pr6|78 000120 aa 6 00114 6211 00 eax1 pr6|76 000121 aa 004000 4310 07 fld 2048,dl 000122 aa 6 00044 3701 20 epp4 pr6|36,* 000123 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_count 000124 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 000125 aa 000001 2360 07 ldq 1,dl 000126 aa 6 00102 7561 00 stq pr6|66 i 000127 aa 000000 0110 03 nop 0,du 000130 aa 6 00102 2361 00 ldq pr6|66 i 000131 aa 6 00112 1161 00 cmpq pr6|74 000132 aa 000113 6054 04 tpnz 75,ic 000245 STATEMENT 1 ON LINE 51 call cu_$arg_ptr (1, argptr, arglen, code); 000133 aa 000001 2360 07 ldq 1,dl 000134 aa 6 00113 7561 00 stq pr6|75 000135 aa 6 00113 3521 00 epp2 pr6|75 000136 aa 6 00122 2521 00 spri2 pr6|82 000137 aa 6 00104 3521 00 epp2 pr6|68 argptr 000140 aa 6 00124 2521 00 spri2 pr6|84 000141 aa 6 00106 3521 00 epp2 pr6|70 arglen 000142 aa 6 00126 2521 00 spri2 pr6|86 000143 aa 6 00100 3521 00 epp2 pr6|64 code 000144 aa 6 00130 2521 00 spri2 pr6|88 000145 aa 6 00120 6211 00 eax1 pr6|80 000146 aa 020000 4310 07 fld 8192,dl 000147 aa 6 00044 3701 20 epp4 pr6|36,* 000150 la 4 00022 3521 20 epp2 pr4|18,* cu_$arg_ptr 000151 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 52 if arglen = 0 | code ^= 0 then go to print_out; 000152 aa 6 00106 2361 00 ldq pr6|70 arglen 000153 aa 000072 6000 04 tze 58,ic 000245 000154 aa 6 00100 2361 00 ldq pr6|64 code 000155 aa 000070 6010 04 tnz 56,ic 000245 STATEMENT 1 ON LINE 53 if arg = "-reset" | arg = "-rs" then rsw = "1"b; 000156 aa 6 00104 3735 20 epp7 pr6|68,* argptr 000157 aa 6 00106 7271 00 lxl7 pr6|70 arglen 000160 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000161 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000162 aa 777644 00 0006 desc9a -92,6 000024 = 055162145163 000163 aa 000005 6000 04 tze 5,ic 000170 000164 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000165 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000166 aa 777633 00 0003 desc9a -101,3 000017 = 055162163000 000167 aa 000004 6010 04 tnz 4,ic 000173 000170 aa 400000 2350 03 lda 131072,du 000171 aa 6 00110 7551 00 sta pr6|72 rsw 000172 aa 000051 7100 04 tra 41,ic 000243 STATEMENT 1 ON LINE 54 else if arg = "-report_reset" | arg = "-rr" then rsw, repsw = "1"b; 000173 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000174 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000175 aa 777633 00 0015 desc9a -101,13 000026 = 055162145160 000176 aa 000005 6000 04 tze 5,ic 000203 000177 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000200 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000201 aa 777617 00 0003 desc9a -113,3 000016 = 055162162000 000202 aa 000005 6010 04 tnz 5,ic 000207 000203 aa 400000 2350 03 lda 131072,du 000204 aa 6 00110 7551 00 sta pr6|72 rsw 000205 aa 6 00107 7551 00 sta pr6|71 repsw 000206 aa 000035 7100 04 tra 29,ic 000243 STATEMENT 1 ON LINE 55 else call com_err_ (0, name, "unrecognized control argument ""^a"" ignored.", arg); 000207 aa 6 00106 2361 00 ldq pr6|70 arglen 000210 aa 526000 2760 03 orq 175104,du 000211 aa 6 00113 7561 00 stq pr6|75 000212 aa 6 00132 4501 00 stz pr6|90 000213 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000214 aa 777644 00 0054 desc9a -92,44 000057 = 165156162145 000215 aa 6 00134 00 0054 desc9a pr6|92,44 000216 aa 6 00132 3521 00 epp2 pr6|90 000217 aa 6 00152 2521 00 spri2 pr6|106 000220 aa 777560 3520 04 epp2 -144,ic 000000 = 141154141162 000221 aa 6 00154 2521 00 spri2 pr6|108 000222 aa 6 00134 3521 00 epp2 pr6|92 000223 aa 6 00156 2521 00 spri2 pr6|110 000224 aa 7 00000 3521 00 epp2 pr7|0 arg 000225 aa 6 00160 2521 00 spri2 pr6|112 000226 aa 777567 3520 04 epp2 -137,ic 000015 = 404000000005 000227 aa 6 00162 2521 00 spri2 pr6|114 000230 aa 777564 3520 04 epp2 -140,ic 000014 = 526000000022 000231 aa 6 00164 2521 00 spri2 pr6|116 000232 aa 777561 3520 04 epp2 -143,ic 000013 = 524000000053 000233 aa 6 00166 2521 00 spri2 pr6|118 000234 aa 6 00113 3521 00 epp2 pr6|75 000235 aa 6 00170 2521 00 spri2 pr6|120 000236 aa 6 00150 6211 00 eax1 pr6|104 000237 aa 020000 4310 07 fld 8192,dl 000240 aa 6 00044 3701 20 epp4 pr6|36,* 000241 la 4 00036 3521 20 epp2 pr4|30,* com_err_ 000242 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 56 end; 000243 aa 6 00102 0541 00 aos pr6|66 i 000244 aa 777664 7100 04 tra -76,ic 000130 STATEMENT 1 ON LINE 58 print_out: if ^rsw then repsw = "1"b; 000245 aa 6 00110 2351 00 lda pr6|72 rsw 000246 aa 000003 6010 04 tnz 3,ic 000251 000247 aa 400000 2350 03 lda 131072,du 000250 aa 6 00107 7551 00 sta pr6|71 repsw STATEMENT 1 ON LINE 59 if ^init then do; 000251 aa 6 00044 3701 20 epp4 pr6|36,* 000252 ia 4 00010 2351 00 lda pr4|8 init 000253 aa 000052 6010 04 tnz 42,ic 000325 STATEMENT 1 ON LINE 60 call meter_util_$get_buffers (unique_index, sstp1, sstp2, tcmp1, tcmp2, code); 000254 ia 4 00011 3521 00 epp2 pr4|9 unique_index 000255 aa 6 00152 2521 00 spri2 pr6|106 000256 ia 4 00012 3521 00 epp2 pr4|10 sstp1 000257 aa 6 00154 2521 00 spri2 pr6|108 000260 ia 4 00014 3521 00 epp2 pr4|12 sstp2 000261 aa 6 00156 2521 00 spri2 pr6|110 000262 ia 4 00016 3521 00 epp2 pr4|14 tcmp1 000263 aa 6 00160 2521 00 spri2 pr6|112 000264 ia 4 00020 3521 00 epp2 pr4|16 tcmp2 000265 aa 6 00162 2521 00 spri2 pr6|114 000266 aa 6 00100 3521 00 epp2 pr6|64 code 000267 aa 6 00164 2521 00 spri2 pr6|116 000270 aa 6 00150 6211 00 eax1 pr6|104 000271 aa 030000 4310 07 fld 12288,dl 000272 la 4 00026 3521 20 epp2 pr4|22,* meter_util_$get_buffers 000273 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 62 if code ^= 0 then do; 000274 aa 6 00100 2361 00 ldq pr6|64 code 000275 aa 000025 6000 04 tze 21,ic 000322 STATEMENT 1 ON LINE 63 call com_err_ (code, name, "tc_data"); 000276 aa 777524 2370 04 ldaq -172,ic 000022 = 164143137144 141164141000 000277 aa 6 00172 7571 00 staq pr6|122 000300 aa 6 00100 3521 00 epp2 pr6|64 code 000301 aa 6 00152 2521 00 spri2 pr6|106 000302 aa 777476 3520 04 epp2 -194,ic 000000 = 141154141162 000303 aa 6 00154 2521 00 spri2 pr6|108 000304 aa 6 00172 3521 00 epp2 pr6|122 000305 aa 6 00156 2521 00 spri2 pr6|110 000306 aa 777512 3520 04 epp2 -182,ic 000020 = 404000000021 000307 aa 6 00160 2521 00 spri2 pr6|112 000310 aa 777504 3520 04 epp2 -188,ic 000014 = 526000000022 000311 aa 6 00162 2521 00 spri2 pr6|114 000312 aa 777477 3520 04 epp2 -193,ic 000011 = 524000000007 000313 aa 6 00164 2521 00 spri2 pr6|116 000314 aa 6 00150 6211 00 eax1 pr6|104 000315 aa 014000 4310 07 fld 6144,dl 000316 aa 6 00044 3701 20 epp4 pr6|36,* 000317 la 4 00036 3521 20 epp2 pr4|30,* com_err_ 000320 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 64 return; 000321 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 65 end; STATEMENT 1 ON LINE 66 init = "1"b; 000322 aa 400000 2350 03 lda 131072,du 000323 aa 6 00044 3701 20 epp4 pr6|36,* 000324 ia 4 00010 7551 00 sta pr4|8 init STATEMENT 1 ON LINE 67 end; STATEMENT 1 ON LINE 68 call meter_util_$fill_buffers (unique_index); 000325 ia 4 00011 3521 00 epp2 pr4|9 unique_index 000326 aa 6 00116 2521 00 spri2 pr6|78 000327 aa 6 00114 6211 00 eax1 pr6|76 000330 aa 004000 4310 07 fld 2048,dl 000331 la 4 00030 3521 20 epp2 pr4|24,* meter_util_$fill_buffers 000332 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 69 call meter_util_$time (unique_index, time); 000333 aa 6 00044 3701 20 epp4 pr6|36,* 000334 ia 4 00011 3521 00 epp2 pr4|9 unique_index 000335 aa 6 00122 2521 00 spri2 pr6|82 000336 aa 6 00101 3521 00 epp2 pr6|65 time 000337 aa 6 00124 2521 00 spri2 pr6|84 000340 aa 6 00120 6211 00 eax1 pr6|80 000341 aa 010000 4310 07 fld 4096,dl 000342 la 4 00032 3521 20 epp2 pr4|26,* meter_util_$time 000343 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 70 if repsw then do; 000344 aa 6 00107 2351 00 lda pr6|71 repsw 000345 aa 000113 6000 04 tze 75,ic 000460 STATEMENT 1 ON LINE 71 n_simulations = tcmp2 -> tcm.clock_simulations - tcmp1 -> tcm.clock_simulations; 000346 aa 6 00044 3701 20 epp4 pr6|36,* 000347 ia 4 00020 3735 20 epp7 pr4|16,* tcmp2 000350 aa 7 00276 2361 00 ldq pr7|190 tcm.clock_simulations 000351 ia 4 00016 3715 20 epp5 pr4|14,* tcmp1 000352 aa 5 00276 1761 00 sbq pr5|190 tcm.clock_simulations 000353 aa 6 00103 7561 00 stq pr6|67 n_simulations STATEMENT 1 ON LINE 72 call ioa_ ("No. alarm clock sims.^7d", n_simulations); 000354 aa 777456 2370 04 ldaq -210,ic 000032 = 116157056040 141154141162 000355 aa 6 00120 7571 00 staq pr6|80 000356 aa 777456 2370 04 ldaq -210,ic 000034 = 155040143154 157143153040 000357 aa 6 00122 7571 00 staq pr6|82 000360 aa 777456 2370 04 ldaq -210,ic 000036 = 163151155163 056136067144 000361 aa 6 00124 7571 00 staq pr6|84 000362 aa 6 00120 3521 00 epp2 pr6|80 000363 aa 6 00136 2521 00 spri2 pr6|94 000364 aa 6 00103 3521 00 epp2 pr6|67 n_simulations 000365 aa 6 00140 2521 00 spri2 pr6|96 000366 aa 777422 3520 04 epp2 -238,ic 000010 = 524000000030 000367 aa 6 00142 2521 00 spri2 pr6|98 000370 aa 777430 3520 04 epp2 -232,ic 000020 = 404000000021 000371 aa 6 00144 2521 00 spri2 pr6|100 000372 aa 6 00134 6211 00 eax1 pr6|92 000373 aa 010000 4310 07 fld 4096,dl 000374 la 4 00040 3521 20 epp2 pr4|32,* ioa_ 000375 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 73 if n_simulations > 0 then call ioa_ ("Simulation lag^10x^8.3f msecs.", float (tcmp2 -> tcm.total_clock_lag - tcmp1 -> tcm.total_clock_lag, 27) / (1000e0 * float (n_simulations, 27))); 000376 aa 6 00103 2361 00 ldq pr6|67 n_simulations 000377 aa 000034 6044 04 tmoz 28,ic 000433 000400 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000401 aa 777447 00 0040 desc9a -217,32 000047 = 123151155165 000402 aa 6 00120 00 0040 desc9a pr6|80,32 000403 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000404 aa 024764 4610 03 fmp 10740,du 000405 aa 6 00113 4551 00 fst pr6|75 000406 aa 6 00044 3701 20 epp4 pr6|36,* 000407 ia 4 00020 3735 20 epp7 pr4|16,* tcmp2 000410 aa 7 00274 2371 00 ldaq pr7|188 tcm.total_clock_lag 000411 ia 4 00016 3715 20 epp5 pr4|14,* tcmp1 000412 aa 5 00274 1771 00 sbaq pr5|188 tcm.total_clock_lag 000413 aa 216000 4110 03 lde 72704,du 000414 aa 400000 4750 03 fad 131072,du 000415 aa 6 00113 5651 00 fdv pr6|75 000416 aa 6 00113 4551 00 fst pr6|75 000417 aa 6 00120 3521 00 epp2 pr6|80 000420 aa 6 00136 2521 00 spri2 pr6|94 000421 aa 6 00113 3521 00 epp2 pr6|75 000422 aa 6 00140 2521 00 spri2 pr6|96 000423 aa 777364 3520 04 epp2 -268,ic 000007 = 524000000036 000424 aa 6 00142 2521 00 spri2 pr6|98 000425 aa 777361 3520 04 epp2 -271,ic 000006 = 414000000033 000426 aa 6 00144 2521 00 spri2 pr6|100 000427 aa 6 00134 6211 00 eax1 pr6|92 000430 aa 010000 4310 07 fld 4096,dl 000431 la 4 00040 3521 20 epp2 pr4|32,* ioa_ 000432 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 76 call ioa_ ("Max. lag^16x^8.3f msecs.^/", float (tcmp2 -> tcm.max_clock_lag, 27) / 1000e0); 000433 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000434 aa 777405 00 0034 desc9a -251,28 000040 = 115141170056 000435 aa 6 00120 00 0034 desc9a pr6|80,28 000436 aa 6 00044 3701 20 epp4 pr6|36,* 000437 ia 4 00020 3735 20 epp7 pr4|16,* tcmp2 000440 aa 7 00277 2361 00 ldq pr7|191 tcm.max_clock_lag 000441 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000442 aa 024764 5650 03 fdv 10740,du 000443 aa 6 00113 4551 00 fst pr6|75 000444 aa 6 00120 3521 00 epp2 pr6|80 000445 aa 6 00136 2521 00 spri2 pr6|94 000446 aa 6 00113 3521 00 epp2 pr6|75 000447 aa 6 00140 2521 00 spri2 pr6|96 000450 aa 777335 3520 04 epp2 -291,ic 000005 = 524000000032 000451 aa 6 00142 2521 00 spri2 pr6|98 000452 aa 777334 3520 04 epp2 -292,ic 000006 = 414000000033 000453 aa 6 00144 2521 00 spri2 pr6|100 000454 aa 6 00134 6211 00 eax1 pr6|92 000455 aa 010000 4310 07 fld 4096,dl 000456 la 4 00040 3521 20 epp2 pr4|32,* ioa_ 000457 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 78 end; STATEMENT 1 ON LINE 80 if rsw then call meter_util_$reset (unique_index); 000460 aa 6 00110 2351 00 lda pr6|72 rsw 000461 aa 000010 6000 04 tze 8,ic 000471 000462 aa 6 00044 3701 20 epp4 pr6|36,* 000463 ia 4 00011 3521 00 epp2 pr4|9 unique_index 000464 aa 6 00116 2521 00 spri2 pr6|78 000465 aa 6 00114 6211 00 eax1 pr6|76 000466 aa 004000 4310 07 fld 2048,dl 000467 la 4 00034 3521 20 epp2 pr4|28,* meter_util_$reset 000470 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 81 end; 000471 aa 0 00631 7101 00 tra pr0|409 return END PROCEDURE acm ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved