/* BEGIN INCLUDE FILE ... mgt.incl.pl1 */ /* Modified May 1975 by T. Casey to add priority scheduler parameters */ /* Modified Summer '76 RE Mullen to add deadline parameters */ /* Modified by T. Casey, November 1978, to add group parameters: absentee_(max min pct limit). */ /* Modified July 1981 by J. Bongiovanni to add max_pct */ /* At login each user process is placed in that load control group specified in either the project's SAT entry or the user's PDT entry. This group is remembered in the user table entry for that process (ATE, DUTE, AUTE). MGT groups map each process into a set of processes called a work_class as a function of shift and whether or not the process is absentee -- also per group limits on the number of group members are given. The work_class entries in the MGT specify the configuration of the hardcore scheduler on a per shift basis. If a work_class has the realtime attribute, member processes will be given precisely specified response characteristics. If running in deadline_not_percent mode on a given shift then members of other work_classes will be given approximate response characteristics; otherwise other work_classes will be given percentages of whatever cpu time is unused by realtime processes. REM */ dcl MGT_version_3 fixed bin int static init (3); /* versions >= 2 contain work class definitions */ /* versions >= 3 contain deadline info */ /* the mgt is based on mgtp, which is declared as either static or automatic, in each procedure that uses it */ dcl 1 mgt based (mgtp) aligned, /* the Master Group Table defines load control groups and work classes */ %include author; /* the author structure occupies 29 words */ 2 max_size fixed bin, /* maximum size of table */ 2 current_size fixed bin, /* current number of entries */ 2 total_units fixed bin, /* total units allocated */ 2 version_indicator char (8), /* = "VERSION " for version 2 and later (the first version of the mgt had no version number) */ 2 version fixed bin, /* version of the mgt (if version_indicator = "VERSION ") */ 2 switches aligned, 3 wc_initialized bit (1) unaligned, /* = "1"b if work classes >1 have been defined */ 3 prio_sked_enabled bit (1) unaligned, /* if this switch is turned off, the priority scheduler will not be used by the answering service (all processes will be put in work class 1 regardless of what the mgt says) */ 3 prio_sked_on_tape bit (1) unaligned, /* "1"b if a.s. initialization finds the priority scheduler on the system tape */ 3 deadline_mode (0:7) bit (1) unal, /* 0 => %, 1 => deadlines (per shift) */ 3 mgt_pad1 bit (25) unaligned, /* rest of the word */ 2 user_wc_defined (16) bit (1) unaligned, /* current set of defined work classes */ 2 shift_defined (0:7) bit (1) unaligned, /* which shifts are used at this site */ 2 mgt_pad2 bit (12) unaligned, /* rest of the word */ 2 user_wc_min_pct (16) fixed bin, /* current percents for the defined work classes */ /* the above variables occupy a total of 24 words */ 2 mgt_pad3 (11) fixed bin, /* pad the mgt header to 64 words (29 + 24 + 11) */ 2 entry (100), /* array of entries */ 3 fill (32) fixed bin; /* 32 words each */ /* the first 16 are work classes; the rest, load control groups */ dcl mgtep ptr; /* both types of mgt entries are based on this pointer */ dcl 1 group based (mgtep) aligned, /* a single entry in the mgt */ 2 group_id char (8), /* group name */ 2 max_prim fixed bin, /* maximum number of primary units (-1 is special) */ 2 n_prim fixed bin, /* current number of primary units */ 2 n_sec fixed bin, /* current number of secondary units */ 2 n_eo fixed bin, /* current number of edit-only users */ 2 absolute_max fixed bin, /* Absolute maximum number of units (prime and sec) */ 2 minu fixed bin, /* Constant number of units in maxprim */ 2 num fixed bin, /* Numerator of fraction of maxunits given to maxprim */ 2 denom fixed bin, /* Denominator. Usually = normal maxunits */ 2 minamax fixed bin, /* Constant part of abs max */ 2 num1 fixed bin, /* Numerator of abs max fraction */ 2 denom1 fixed bin, /* Denominator of abs max fraction */ 2 int_wc (0:7) fixed bin (17) unaligned, /* interactive work classes, per shift */ 2 abs_wc (0:7) fixed bin (17) unaligned, /* absentee work classes, per shift */ /* used halfwords to avoid using up all the pad - we might need it later */ 2 absentee aligned, /* switches controlling absentee processes in this group */ 3 allowed bit (1) unaligned, /* if off, absentee users must be moved to another group */ 3 default_group bit (1) unaligned, /* if on, this is one of the groups they can be moved to */ 3 default_queue (4) bit (1) unaligned, /* if on, this is the default group for this queue */ /* ed_mgt and up_mgt_ enforce one default group per queue */ 3 mgt_pad4 bit (30) unaligned, /* rest of the word */ 2 absentee_max fixed bin (17) unal, /* max absentees allowed from this group */ 2 absentee_min fixed bin (17) unal, /* min absentees allowed from this group */ 2 absentee_pct fixed bin (17) unal, /* this % of abs_maxu allowed to be occupied by this group */ 2 absentee_limit fixed bin (17) unal, /* result of applying above 3 parameters to current abs_maxu */ 2 n_abs fixed bin (17) unal, /* current number of background absentee users */ 2 mgt_pad5a fixed bin (17) unal, /* rest of the word */ 2 mgt_pad5 (7) fixed bin; /* pad mgt entry to 32 words */ dcl 1 work_class based (mgtep) aligned, 2 wc_name char (8), /* overlays group.group_id, but can only be one of the strings "1" through "16" */ 2 switches aligned, 3 defined (0:7) bit (1) unaligned, /* which shifts this work class is defined on */ 3 absentee_allowed (0:7) bit (1) unaligned, /* "1"b if absentee jobs allowed in this work class and shift */ /* ed_mgt and up_mgt_ enforce consistency between these and the group.absentee switches */ 3 realtime (0:7) bit (1) unaligned, /* "1"b if this work class has realtime deadlines */ 3 mgt_pad6 bit (12) unaligned, /* rest of word */ 2 min_pct (0:7) fixed bin, /* percent, on each shift */ 2 int_response (0:7) fixed bin (17) unal, /* response to interaction(.01sec) */ 2 int_quantum (0:7) fixed bin (17) unal, /* first time slice after interaction(.01sec) */ 2 response (0:7) fixed bin (17) unal, /* time between time slices(.01sec) */ 2 quantum (0:7) fixed bin (17) unal, /* second and following time slices(.01sec) */ 2 max_pct (0:7) fixed bin (17) unal, /* governed percent on each shift (0=>not governed */ 2 mgt_pad7 (1) fixed bin; /* pad mgt entry to 32 words */ /* END INCLUDE FILE ... mgt.incl.pl1 */ */ ----------------------------------------------------------- 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 */