AK51 02_proj Admin_Feb85 02 Proj Admin Feb85
AK51-02_projAdmin_Feb85 AK51-02_projAdmin_Feb85
User Manual: AK51-02_projAdmin_Feb85
Open the PDF directly: View PDF .
Page Count: 97
Download | |
Open PDF In Browser | View PDF |
MULTICS PROJECT ADMINISTRATOR'S MANUAL SUBJECT Information Needed by Project Administrators for the Management of Multics Projects SPECIAL INSTRUCTIONS This publication supersedes the Multics Administrator's Manual - Project, Order No. AK51-01, dated August 1976 and its associated addenda: Addendum A, dated April 1978, Addendum B, dated February 1979, Addendum C, dated September 1979; Addendum D, dated June 1981, Addendum E; dated July 1982; and Addendum F, dated February 1983. Effective with this edition the document is retitled Multics Project Administrator's Manual. Change bars indicate new and changed information; asterisks denote deletions. See the "Significant Changes" section in the Preface for a description of changed information. SOFrWARESUPPORTED Multics Software Release 11.0 ORDER NUMBER AK51-02 February 1985 Hone)",ell PREFACE Depending upon site policy, there can be f our kinds of administrators who manage Multics system administration facilities: the project administrator, the registration and accounting administrator (referred to as the accounting administrator), the system security administrator. and the system administrator. The project administrator manages Multics projects by controlling the resources allocated to the project and maintaining user accounts on the project. This manual describes those aspects of system administration that are project specific. This includes: • A complete description of the Project Master File (PMF) which contains the list of persons who can log in on a project and project specific "keywords" that assign to a project various system resources based upon the project"s needs • The procedures for petitioning the system administrator to register a new user on the project, and the procedures required to convert and install the PMF into its system usable binary version the Project Definition Table (PDT) • The procedures required to delete a user from a project. or delete a project. • Resource control limits which allows the project administrator to control the overall project budget • Load control which controls a project's access to the system The information and specifications in this document are subject to change without notice. This document contains information about Honeywell products or services that may not be available outside the United States. Consult your HoneyweH Marketing Representative. @ Honeywell Information Systems Inc., 1985 File No.: 1L13, 1U13 AK51-o2 • Notes on tailoring a user environment. allocation of volume quota, and control of master directories. • All of the commands required by a project administrator. Significant Changes -in AKSl- 0-2 An AIM authorization range can now be specified in the PMF for a project iii AK.51-o2 CONTENTS Section 1 1-1 1-1 1-1 Introduction . . . . . . . . . System Administration Project Administration Glossary . . . . . . . . 1-2 Section 2 Directory Structure and Data Bases Contents of the System Control Directory Contents of the Project Directory 2-1 2-1 2-1 Section 3 Project Master File . . . . . . . . . . . . Format of a Project Master File . Keywords and Their Values .. Login and Load Control Keywords Spending Limit Keywords . . . . Special Environment Keywords Keyword Default Values . . . . SAT Limits . . . . . . . . . . . Sample Project Master File . . . . Modifying a Project Master File . . . . 3-1 3-1 3-2 Section 4 Project and User Registration and Deletion New Project Registration . . . Disk Usage . . . . . . . . Funding . . . . . . . . . . Project Registration Form List of Users . . . . . . . New User Registration . . . . Anonymous User Registration User Deletion . . . Project Termination 4-1 4-1 4-1 4-1 4-2 4-2 4-3 4-3 4-4 4-5 Section 5 Resource Control . . . . Resource Limits .. Checking Limits User Resource Usage Reporting Project Resource Usage Reporting Quota Limits . . . . . . . . . . . . . 5-1 5-1 5-2 5-2 5-2 5-3 Section 6 Load Control and Preemption Load Control Group . . . . Work Class . . . . . . . . . 6-1 6-1 6-2 Section 7 Tailoring the User Environment Process Overseers .. process_overseer_ project_start_up_ 7-1 7-2 7-2 7-2 iv 3-2 3-6 3-8 3-9 3-11 3-12 3-14 AK51-02 Creating a project_start_up exec_com Attributes and Exceptions . . . . The Execution Environment . . . . . . Contents of a project_start_up exec_com . . . . . . . . . . . . . . . . . Limited Service Subsystem (LSS) . Del>~ggi!1g_ . start_up exec_corns Closed Subsystems .. . Rings . . . . . . . . . . 7-3 7-3 7-4 7-4 7-4 7-4 7-5 7-5 7-6 Section 8 Logical Volume Quota Manipulation Logical Volume . . . . . . . . . . Logical Volume Quota . . . . . . 8-1 8-1 8-1 Section 9 Master Directory Creation and Deletion . . 9-1 Section 10 Commands Used by a Project Administrator Command Descriptions . . . . . . as_who . . . . . . . . . . . . . cv_pmf . . . . . . . . . . . . delete_volume_quota (dlvq) disk_stat_prin t . . . . . . . . display_accoun t_status (das) enter_Iss . . . . get_dir_quota . . . install . . . . . list_mdir (Imd) load_ctl_status make_commands move_dir~quota .. print_pdt . . . . . proj_usage_report (pur) reconnect_ec_disable . . . reconnect_ec_enable . . . set_mdir_account (smda) . set_mdir_owner (smdo) set_mdir_quota (smdq) .. set_volume_quota (svq) sweep . . . . . . . . . . . work_class_meters (wcm) 10-1 10-1 10-3 Appendix A Sample Forms . . . . . . . . . . . . 10-7 10-9 10-10 10-12 10-15 10-16 10-17 10-19 10-22 10-23 10-25 10-26 10-28 10-30 10-31 10-32 10-33 10-34 10-35 10-36 10-38 A-I i-I Index v AK.51-o2 SECTION 1 INTRODUCTION SYSTEM ADMINISTRATION The overall function of Multics system administration is to provide an operating environment, control usage within that environment, and account for the use of system resources. The system administrator, the system security administrator, the accoun ting administrator, and the project administrator carry out .the tasks necessary to system administration. The responsibilities of the project administrator are described in detail in this manual. PROJECT ADMINISTRATION A project is a set of users grouped together for resource and access control purposes. A project administrator is a registered Multics user in charge of one or more projects. He need not be registered on the project he administers. A single user may be project administrator for many projects and a single project may have up to four project administrators. A project administrator logs in the same way as other users and, after he logs in, a process is created for him in the same way as for other users. A project administrator differs from other 1v1ultics users in that: • A project administrator has access to certain segments to which other users do not The most important of these are the ASCII project master file (PMF), the binary project definition table (PDT), and the project directory of the project • A project administrator uses special programs to manipulate the system-control data bases. (See Section 2, "Directory Structure and Data Bases.") These programs do not make privileged calls; they are ordinary PL/I programs that manipulate data in ordinary ways. However, the data for these programs are accounting records and control segments to which nonadministrative users have no access. • The system grants certain requests for a project administrator that it does not grant for other 1]~rs_ !n particu!a.r. the system control process installs new versions of the PDT of the project at the request of the project administrator. 1-1 AK51-02 A project may be "delegated"; this means that at least one user is listed in the system administrator's table (SAT) entry for the project as the project administrator. Or, a project may be "undelegated," meaning that the system administrator performs the project administration functions for a project. This manual is intended for a project administrator in charge of a project delegated to him by the system administrator. A project administrator maintains the PMF of the project and can install a PDT. He adds and deletes users from his project. He also controls resource usage and generates usage reports showing month-to-date resource consumption for all users on his project. Section 3, "Project Master File," describes the PMF and PDT; Section 4, "Project and User Registration and Deletion," describes the creation and termination of a project and the addition and deletion of users to and from a project; and Section 5, "Resource Control," describes resource control and usage reporting. A project administrator decides which users on his project are guaranteed access to the system at all times and which users are subject to preemption when the primary units of the load control group are full. He also determines the environment of the users registered on his project. Load control groups are described in Section 6, "Load Control and Preemption"; the man-machine interface is described in Section 7, "Tailoring the User Environment." A project administrator may also be assigned the responsibilities of a logical volume administrator. A description of these responsibilities is in Section 8, "Logical Volume Quota ManipUlation," and Section 9, "Master Directory Creation and Deletion." GLOSSARY accounting update The process of computing resource usage for each logged in user, saving it for later use by accounting routines, and logging out any user whose usage exceeds the limit specified by the project administrator. This function is performed by the answering service at an installation-specified interval (every 15 minutes, by default). . anonymous user A user who is not registered as an identifiable person on the Multics system. Projects that allow anonymous users have an asterisk (*) value for a Person_id keyword statement in the PMF. (See "Anonymous User Registration" in Section 4.) answering service The software responsible for conducting the orderly login and logout of Multics users. 1-2 AK51-o2 billing The process of computing the total resource usage of each user and each project, preparing bills and other reports addressed to various administrative personnel, and then resetting the usage figures to zero. Billing is run by the accounting administrator. It is recommended that billing be run at the end of each month, on or beiore the last day of the month. Terminology in documentation and program output (e.g., "month-to-date charges") assumes this recommendation is followed. -_ _--_._-..• . crank The absentee job that performs various accounting functions. The usage figures gathered by the accounting updates are copied. by the crank, into data bases that are used in billing. Month-to-date summaries are produced. Projects past their cutoff limits are cut off (users on these projects are no longer permitted to log in on these projects). The printing of cutoff warning messages is based on the usage figures computed daily by the crank. It is recommended that the crank be run daily near the end of operations. Terminology in documentation and program output (e.g., "daily report") assumes this recommendation is followed. daemon One of several system service processes that perform such tasks as process creation, backup, network control, and printing segments on the line printer. home directory The directory that is the working directory of a user when he first logs in to the system (also known as the initial working directory). Usually this directory has a pathname of: >udd>Project_id>Person_id ini tializer process The first process (Initializer.SysDaemon.z) created during system initialization. Among other things, it runs the answering service, responds to operator commands, and installs system tables, such as the project's PDT. Limited Service Subsystem (LSS) An environment that restricts the set of commands and the amount of CPU time available to the user. The make_commands and enter_Iss commands allow a project administrator to place users in an LSS without having to write a special process overseer. See Section 7 for more information. load control group A group of projects that share a guaranteed access to the system. See the Multics System Administration Procedures manual, Order No. AK50. LSS See Limited Service Subsystem. logical volume A set of physical volumes that are always mounted together. Volume" in Section 8.) 1-3 (See "Logical AK51-o2 master directory A directory whose segments reside on a different logical volume than the segments of its containing directory. (See Section 9, "Master Directory Creation and Deletion. ") master group table (MGT) A segment maintained about the work classes class and load control information in the SAT by the system administrator that contains information and load control groups in use at the site. The work group membership of each user is determined from and PDT. password character string of from one through eight ASCII printing characters including backspace, but excluding space and semicolon. "HELP", "help", "quit", and "7" are interpreted uniquely by the password processor and are therefore unacceptable as password specifications for an interactive login. A password is supplied by a user and known only to him and the software that controls access to the system. It is supplied with the user's Person_id at log-in time to validate the identity of the user. A PDT See project definition table. Person_id A unique name assigned to each user of the system. It is usually some form of the user's name (usually his surname). The name must be from one through 20 characters in length, usually begins with a capital letter, and may not contain punctuation characters. A user has only one Person_id regardless of the number of projects on which he is registered. A password is associated with the Person_id. PIT See process initialization table. PMF See project master file. process A program or group of programs in execution: an address space and an execution point. Each logged-in user has his own process. (See "Process" in Section 1 of the Multics Programmer's Reference Manual, Order No. AG91.) process directory A directory contalnmg those segments that are meaningful only during the life of a process. These segments include the stack(s), free storage, PIT, and various temporary segments. process initialization table (PIT) A segment containing information needed for a process to initialize itself, such as user_id, home directory, attributes, and accounting data. project A set of users grouped together for accounting and access control purposes. 1-4 AK51-02 project administrator A person who has the access to specify spending limits and other attributes for the users on a particular project project definition table (PDT) A compiled project master file (PMF). project -d-irect-o-ry .~. -- -The directory inferior to the >user_dir_dir directory that usually contains the home directories for each user on the project. (See "Contents of the Project Directory" in Section 2.) project master file (PMF) An ASCII segment gIvmg the names, attributes, and account limits of the users of a particular project. It is created and modified using any Multics editor and is compiled into a project definition table (PDT) using the cv_pmf command. Project_id The name assigned to a project. The name must be from one to nine characters long, must begin with a capital letter or a digit, and must be unique within the installation. registration and accounting administrator A system administrator who has limited access to register users and run the billing software only. ring A level of privilege at which programs may execute. Lower numbered rings are of higher privilege than higher numbered ones. The supervisor program runs in ring 0; most user programs run in ring 4. (See Section 6. "Access Control" in the lv1ultics Programrner's Reference lVlanual, Order No. AG91 and "Rings" in Section 7 of this document) SAT See system administrator table. secondary storage quota The amount of secondary storage that a project may occupy. The project administrator may subdivide this quota among directories inferior to the project directory or he may set the quota of directories inferior to the project directory to zero and allow users to charge their usage to the project directory quota. (See "Quota Limits" in Section 5.) system administrator ..A... highly privileged user who maintains system data bases, such as the system administrator table (SAT). that control when and by whom the system can be accessed. The system administrator has access to all M ultics commands, has the ability to alter any operating parameter of the system, and may make emergency repairs. He is also concerned with the basic rules (and prices) for use of system resources. system administrator table (SAT) A binary segment specifying the projects that use the system. the privileges delegated to these projects. and the project administrators. 1-5 AK51-o2 system security administrator A system administrator whose primary responsibility is the integrity of the system and maintenance of the access control mechanisms. system table installation The installation of a system table by the answering service at the request of a system, accounting, or project administrator. The install command sends a table installation request to the answering service. The answering service checks the contents of the new table for validity, then merges them with the contents of the current system copy of the table (if any). and finally replaces the current copy with the merged copy. (The current copy cannot simply be replaced by the new one, since the former contains information about the current state of the system not contained in the latter.) Changes implied by the contents of the new table take effect immediately. time-record product (time-page product) The amount of time that a record is in storage. The time-record product is the basis for charging for disk storage. user A person or logical entity, such as a daemon, who is registered on the Multics system and, therefore, has the ability to log in. Each user is associated with a project and is identified for access control purposes by the concatenation of his Person_id and Project_id. A person may be registered as a user on more than one project; thus one person can be two different users (since a user is identified by the combination of his Person_id and Project_id.) User_id A character string representing a user or group of users. It consists of three components: Person_id.Project_id.tag. A User_id is often used as an argument to a command. Depending on the specific command, sometimes all the components are not specified (for example, the tag component is often omitted). The star convention may be used, also depending on the command being invoked. (Refer to the relevant command description in the Multics Commands and Active Functions manual, Order No. AG92 to see if the command in question accepts these conventions.) volume administrator A user who is given "en access to a logical volume by the owner of the logical volume and, thus, can control who can create master directories on that logical volume. (See "Logical Volume" in Section 8.) work class A group of processes that are guaranteed a specified percentage of the available CPU time. (See "Work Class" in Section 6.) 1-6 AK51-02 SECTION 2 DIRECTORY STRUCTURE AND DATA BASES The data bases that support the Multics system administration facilities are implemented as segments in the Multics storage system. These data bases are organized into a tree-structured directory hierarchy. This section provides a project administrator with all the information he needs to know about these data bases. However, for those interested in more complete information on these data bases, their location in the hierarchy, and their contents, refer to the Multics System Administration Procedures manual, Order No. AK50. CONTENTS OF THE SYSTEM CONTROL DlRECfORY The most important directory for system-administration programs is system_control_I. There is one important directory contained in >system_control_1 of interest to the project administrator. This directory, >system_control_1>pdt, contains a project definition table (PDT) for each registered project. CONTENTS OF THE PROJECT DIRECfORY A project directory, >user_dir_dir>Project_id, usually contains the home directories of all users registered on the project. The project administrator has sma permission on this directory and can, therefore, give himself access to all directories and segments inferior to it. Requests to give users other than the project administrator access to the project directory should be submitted to the system administrator. Requests to add names to the project directory should also be submitted to the system administrator. Names to be added cannot already exist in >user_dir_dir. The project master file (PMF), described in Section 3, may exist anywhere in the storage system. However, it is usually placed in the project directory. 2-1 AK51-02 SECTION 3 PROJECT MASTER FILE _.. _- The list of persons who may log in on a project is contained in a binary table known as the project definition table (PDT), maintained by the system. There is one entry in the PDT for each user; the entry contains the user's attributes and resource usage information for the billing cycle. The PDT is created from an ASCII segment known as the project master file (PMF). A PMF exists for each registered project. It is the basic project-administration data base and contains the project's specification of user attributes. The system references the PDT, not the PMF, when it decides if a user may log in. In order to make a change to the PDT, the project administrator must modify the PMF, convert the PMF into a binary copy of the PDT using the cv_pmf command, and request the system to modify its PDT according to the copy using the install command. (The cv_pmf and install commands are described in Section 10.) FORMAT OF A PROJECT MASTER FILE A PMF consists of lists of statements of the form:: ; A keyword designates the parameter and can be a giobal keyword, which specifies per project default parameters, or a user keyword, which specifies per !L~r parameters. The keyword is followed by a colon (:). The value is either a character string, a pathname, a floating-point number, or a decimal integer,· and is followed by a semicolon (;). The "end;" statement terminates the PMF. A sample PMF is found in "Sample Project Master File" below. At the beginning of a PMF is a list of global keyword statements. Global keywords are spelled the same as user keywords, but begin with a capital letter. They specify default values that apply to all users listed in the PMF, unless overridden by p"er keywords, or by subsequent global keywords. There are global keywords for every user keyword except "personid." Global keywords can be used between user entries as well as at the beginning of the PMF. When used in this way, the new default values apply only to subsequent user entries, since preceding user entries are processed using the previous default values. 3-1 AK51-o2 The first global keyword in each PMF must be "Projectid." This keyword can occur only once per PMF. The value of "Projectid" is a character string beginning with a. capital letter. This character string is the name of the project (Project_id). Projectid, plus the other global keywords and their values, are described in "Keywords and Their Values" below. Following the list of global keyword statements is a user entry for every user registered on the project. The user entry is a "personid" statement followed by an optional list of other user keyword statements. This keyword statement, plus the other user statements and their values, are described in "Keywords and Their Values" below. It should be noted that, for some PDT parameters, the system administrator can impose per-project limits on their values. or grant or deny a project permission to set their values. See "SAT Limits" below, for more details. Keywords and Their Values Listed below are the global and user keywords used in a PMF and their values. Global keywords begin with an uppercase letter; user keywords begin with a lowercase letter. Projectid and personid are the only required keywords. All other keywords have default values assigned by the system whenever they are omitted from a PMF. The default values are described in "Keyword Default Values" below. Values for spending limit keywords include integer values and floating-point values. The floating-point_number value differs from the decimal_integer value only in that it (optionally) ends with a decimal point and a single-digit fraction (tenths), or a two-digit fraction (hundredths). For more information on spending limits. see Section 5, "Resource Control." LOGIN AND LOAD CONTROL KEYWORDS Projectid: character_string; where character_string is the name of the project (Project_id). This name must begin with a capital letter and must be the same as the project name in the SAT. personid: character_string; where character_string is a Multics Person_id or an asterisk (*). An asterisk indicates an anonymous user. (See "Anonymous Users" in Section 4 for more information.) This keyword begins a new user entry. 3-2 AK51-o2 password: character_string; where character_string is the password used by anonymous users when they log in. This keyword can only be specified f or an anonymous user en try and should not be confused with the password assigned to registered users. (See IIAnonymous Users;; in Section 4 for details.) homedir: pathname; Homedir: pathname; where pathname is the absolute pathname of the user's home directory at login. If the user is to have no permanent storage in the storage system hierarchy, this pathname may have the form "[pel] >name", and the home directory is then created for the user at login as a subdirectory of his process directory. initproc: pathname; Initproc: pathname; where pathname is the absolute or relative pathname of the user's process overseer procedure. If the pathname is followed by a comma and the string "direct", the overseer is not called by the initialize_process_ subroutine, but is invoked directly from ring 0 at process creation time; this usage requires very special programming in the overseer procedure, but is useful for finely tuned environments. (See Section 7, "Tailoring the User Environment," for more information.) attributes: character_strings; Attributes: character_strings; where character_strings are attribute names separated by commas. The named attributes are turned on for the user(s). If the attribute name is preceded by a circumflex ("I), the attribute is turned off for the 1J~r(s) even if a default attribute specifies it on. (See "Keyword Default Values" below.) Default attributes are completely replaced each time an Attributes statement is encountered. However, an attributes statement does not replace the default attributes by those specified in the statement; it assigns the user the logical OR of the default attributes with those specified in the statement Thus, it is necessary to explicitly turn off any of the current default attributes that a particular user is not to have. Valid attributes are: nUll, none may be used as the only value in an Attributes statement, to turn off all default attributes; illegal in an attributes statement nobump user not subject to preemption by anyone. guaran teed_login user may use the -force control argument to the login. guar command to bypass load control. nopreempt user not subject to preemption by others in group. 3-3 AK51-Q2 nolist user should not be listed in who tab; others may nevertheless be able to deduce that a user having the nolist attribute is currently logged in. dialok. dial user may accept dial requests. multip, multi_login user may log in more than one process. preempting, bumping user may preempt others in same load control group. brief user is permanently in brief mode (as if -brief had been given in login command), and does not receive the messages associated with a successful login. vinitproc, v_process_overseer user may specify a process overseer or outer module on the login command line; user may also replace his process overseer, outer module, or other procedures by placing a copy in his home directory, because the horne directory is in the search path during process initialization for a user with this attribute. vhomedir, v_home_dir user may specify home directory at login. nostartup, no_start_up user may escape from using his start_up.ec. no_secondary, no_sec user may not have secondary status. no_primary, no_prime user may not have primary status. op_login daemon user may be logged in by operator, via message coordinator. no_warning, nowarn . user is permanently in no_warning mode (as if -no_warning had been given in login command) and never receives system warning messages. igroup user is in an individual load control group. save_pdir save process directory after fatal process error; used for debugging purposes at development sites. 3-4 AK51-02 disconnect_ok user may have saved disconnected processes, i.e., user may use the -save argument to the login command. This attribute must also be on in Ll:le project's SAT entry. to give users on the project permission to use -save. save_on_disconnect. save user~-s--pfecess -is saved- en -disconnection, -by default: -relieves -user from typing -save_on_disconnect at each login; can be overridden by typing -no_save_on_disconnect at login time. If this attribute is on (either individually or because of an Attributes statement) then the disconnect_ok attribute is forced on for the user (but the disconnect_ok attribute must also be on in the project's SAT entry to give users on the project permission to have saved disconnected processes). If the system administrator turns on this attribute in the project's SAT entry. then disconnected processes of all users on the project are saved by default. regardless of the setting of this attribute in the PDT. grace: decimal_integer; Grace: decimal_in teger; where decimal_integer is the number of minutes after login for which the user is protected from preemption by other users. group: character_string; Group: character_strin~ where character_string is the name of a load control group. The group or Group statement is used in conjunction with the igroup attribute. (See "Work Class" in Section 6 for more details.) outer_module: character_string: Outer_module: character_string; where character_string is the name of the terminal device outer module of a user with an interactive process. (The statement has no effect for absentee processes. ) abs_f oreground_cpu_limi t: decimal_in teger; Abs_f oreground_cpu_limi t decimal_in teger; where decimal_integer is the upper CPU time limit in seconds for the user's foreground absentee jobs. A value of zero means no limit. max_background: decimal_integer; Max_background: decimal_integer; where decimal_integer is the maximum number of concurrent background processes that the user may have. A value of zero means no limit. max_f oreground: decimal_integer; Max_f oreground: decimal_integer; where decimal_integer is the maximum number of concurrent foreground processes that the user may have. A value of zero means no limit. 3-5 AK51-02 pdir_quota: decimal_integer; Pdir_quo ta: decimal_in teger; where decimal_integer is the quota to be placed on the user's process directory. If the value is zero, or if no quota is specified, the system default process directory quota is placed on the user's process directory. SPENDING LIMIT KEYWORDS limit: Limit: floating-point_number or "open"; floating-point_number or "open"; where floating-point_number is the absolute dollar limit that the user may spend in any monthly billing period. If the user exceeds this limit, he is automatically logged out and is unable to log in until the end of the month, or until the limit is changed and a new PDT installed. If no limit value is imposed, the character_string "open" is used. shift_limit: floating-point_numbers or "open"; Shift_limit: floating-point_numbers or "open"; where floating-point_numbers are the user's interactive resource limits, separated by commas. on shifts 1. 2. 3, 4, 5, 6, 7. and O. Shifts not listed receive an "open" limit. Absentee and I/O charges, although counted against the total expenditure limit. are not counted against the shift limits. (Shift 0 is listed last, because most installations do not define a shift 0.) cutoff: limit {,date {,incrementl}; Cutoff: limit {,date {,increment}}; where: limit is a floating-point number specifying a dollar value. or the word "open". date is a date in a form acceptable to subroutine, or "now". "open", or "never". the convert_date_to_binary_ increment is one of the following keywords: never do not reset. daily reset monthly reset yearly reset cyear reset fyear reset every day. to beginning of next month. to one year later. to beginning of next year. to July 1 of next year. 3-6 AK.51-G2 The cutoff statement is used to set a cutoff limit on the user; this is different from the monthly spending limit specified by the limit statement (above). The cutoff statement has three different interpretations. depending on whether one. two. or all three arguments are given. If just the limit argument is given, then an absolute spending limit is imposed. When the user's spending reaches this limit, he is logged out and not allowed to log in _(igj3jn UIHU~l p~yv fPT._~Qn~iI1ing a _high~rcut()ffU_Jl1H_J(.).r that user, is installed. The cutoff limit is not reset by monthly billing, and is imposed in addition to the monthly limit. The word "open" causes no cutoff limit to be imposed; this is the default (in the absence of a Cutoff statement). If just the limit and date arguments are given, then in addition to the absolute spending limit described above, a cutoff date is imposed. When that date and time arrives, the user is logged out and not allowed to log in again until a new PDT, containing a later cutoff date for that user, is installed. The word "open" causes no cutoff date to be imposed; this is the default (in the absence of a Cutoff statement). If all three arguments are given, then the meanings of the first two arguments are changed, and a periodic spending limit is imposed. The increment argument specifies the time period after which the user's spending against this limit should be reset to zero. The limit argument specifies how much the user is allowed to spend during the time increment. The date argument specifies the date and time at which the first time period is to end. It is used only at the time the PDT is installed. Each time the cutoff date arrives, a new cutoff date is set, as specified by the increment argument, and the _user's spending against the cutoff limit is reset to zero. When this third type of cutoff limit is imposed, the ~er is logged out as soon as his spending exceeds the cutoff limit, and he is not allowed to log in until the cutoff date arrives. NOTE: It is possible to predate the date argument. When the user next logs in, the periodic spending limit is reset, and a new cutoff date is established based on log-in time and the specified increment. warn_days: decimal_integer; Warn_days: decimal_integer; where decimal_integer is the day threshold for cutoff warning messages. When the project's account has fewer than this many days remaining until its cutoff date, the user receives a warning message to this eff eet at log-in time. warn_percen t: decimal_integer; Warn_percen t: decimal_in teger; where decimal_integer is a number in the range 0 through 100, specifying the percent threshold for cutoff warning messages. When the project's account has less than this percent of its funds remaining, the user receives a warning message to this effect at log-in time. warn_dollars: floating-po in t_num ber; Warn_dollars: floating-poin t_num ber; where floating-point_number is the dollar threshold for cutoff warning messages. When the project's account has less than this amount remaining, the user receives a warning message to this effect at log-in time. This keyword applies to the project's account, not the individual user's spending limit 3-7 AK5l-D2 user_warn_days: decimal_integer; User_warn_days: decimal_integer; where decimal_integer is the day threshold for cutoff warning messages. When the user's account has fewer than this many days remaining until absolute cutoff (cutoff increment is "never"), the user receives a warning message to this effect at log-in time. user_ warn_percen t: decimal_integer; User_ warn_percen t: decimal_integer; where decimal_integer is a number in the range 0 through 100. specifying the percent threshold for cutoff warning messages. When the user's account has less than this percent of funds remaining. the user receives a warning message to this effect at log-in time. This warning may be triggered by any of the specified fields. limit. shift_limit. or cutoff. user _warn_dollars: floatin~poin t_num ber; User_ warn_dollars: floatin~poin t_num ber; where floatin~point_number is the dollar threshold for user spending warning messages. When the user's account has less than this amount remaining. the user receives a warning message to this effect at log-in time. This warning may be triggered by any of the specified fields, limit, shift_limit. or cutoff. SPECIAL ENVIRONMENT KEYWORDS subsystem: pathname; Subsystem: pathnarne; where· pathname is the pathname of a Multics subsystem. (See "Limited Service Subsystems" in Section 7 for more information.) ring: Ring: decimal_integerl, decimal_integer2 {,decimal_integer3}; decimal_integerl. decimal_integer2 {,decimal_integer3}; where decimal_integerl and decimal_integer2 define the mInImUm and maximum values for the ring in which the user can create a process. decimal_integer3 specifies the default initial ring at login. All values must be in the range 1 through 7. decimal_in teger 1 must be less than or equal to decimal_integer2. decimal_integer3 must lie in the range defined by decimal_integer1 and decimal_integer2. If the value of decimal_integer3 is not specified, decimal_integer 1 is used. I ·1 I I I I I I I I authorization: aim_range; Authorization: aim_range; This statement specifies the range of access authorizations at which the user may log in. An access authorization range is of the form: If commas are used (to specify categories), or spaces (to improve readability) the entire range must be enclosed in quotation marks. AK51-02 If neither an Authorization or any authorization statements are present in the PMF. the default authorization is the minimum login authorization allowed to the project by the System Administrator. lot_size: decimal_in teger; Lot_size: decimal_in teger; w-here decimal..jnteger is thesiz-e ef -the user's linkage offset table- (LOT). The LOT is a per-ring array of pointers that point to the linkage information for each procedure segment known in the given ring. kst_size: decimal_integer; Kst_size: decimal_integer; where decimal_integer is the number of segment numbers that are allocated for the user's process. cls_size: decimal_integer; CIs_size: decimal_integer; where decimal_integer is the size of the user's initial combined linkage region. Keyword Default Values The cv_pmf command supplies default values for any global keywords not listed in a PMF. These default values can be overridden by user keyword statements. The global keywords and their default values are: 3-9 AK51-o2 Homedir: Initproc: Attributes: Grace: Group: Outer_module: Limit: Shi ft_l imi t: Cutoff: Warn_days: Warn_percent: Warn dollars: User_warn_days: User_warn_percent: User warn dollars: Subsystem: Ring: Authorization: Lot size: Kst_size: Cls_size: Abs_for.eground_cpu_l imit: Max_background: Max_foreground: Pd i r _quota: >user_dir_dir>Project_id>Person_id; process_overseer_; none; (proj ec t max) ; (proj ec t def au 1t) ; tty_; open; open,open,open,open,open,open,open,open; open, open, never; 10; 10; 10; 10; 10; 10; none; (project mi n), (project max) ; "system low"; (system-default) ; (sys tern def au 1t) ; (s ystem de fa u 1t) ; 0; 0; 0; 0; The user attributes statement either turns on attributes in addition to those turned on with the global Attributes statement or. for those attributes preceded by a circumflex (1\). turns off attributes turned on with the global Attributes statement. The system provides a number known as the maximum grace for each project. An attempt to set the grace to larger than this number, or to leave the grace unspecified for a user. results in the project maximum grace being given to the user. Currently, this maximum is 2880 minutes (48 hours) for all projects. Similarly, the system maintains default values for a lowest initial ring and a highest maximum ring. The system default values are currently (4. 5). That is, no user may begin in any ring num bered less than 4, regardless of the ring brackets on his process overseer procedure. (He may make a call to a lower ring through an appropriate gate.) Since the maximum is 5, the user may execute programs in ring 4 or ring 5, either initially or by making a later outward call. Rings 6 and 7 are not normally used, since a user executing programs in these rings would have no access to any of the normal system library routines, including the operator segment for PL/I and the gates into the supervisor. If a project administrator attempts to violate the project ring limits. the system installs the PDT with a warning, and enforces the project ring limits at login time. 3-10 AK.51-02 SAT Limits Several of the PDT parameters whose values are set by the above keywords have corresponding parameters in the project's SAT entry (which is under the control of the system administrator. For most of these parameters, the value in the SAT entry imposes a limit on the values in the PDT. Violations of these limits are noted at PDT installation time, with a warning message, but the PDT is installed. If the SAT limits are no! subsequently raised, then at login time the limi-tsare enforced, a warning mesSage is -placecr-in-the-answering Service log, aria the---tiSel' is loggoo--iri. (Note,however, that if a user violates a limit imposed by PDT or SAT parameters, by means of a control argument to the login command, then an error message is printed and the user is not logged in.) The PDT parameters that have corresponding SAT parameters are listed below, along with the action taken for each pair of parameters when the PDT and SAT values are in disagreement abs_foreground_cpu_limit The smaller of the two values is used as the limit; except that a value of zero means no limit, so if a value is zero the other one is used, and if both are zero there is no limit attributes Except for the attributes listed below, each attribute is on for a user only if it is on in both the user's PDT entry and the project's SAT entry. guaran teed_login On at login time if on in project's SAT entry and on in user's PDT entry and user gives -force control argument in the login command. anonymous The anonymous attribute is set only in a project's SAT entry, to give the project permission to have anonymous users. Thus it does not appear in the above list of PDT attributes. preempting On at login time if on in project's SAT entry and on in user's PDT entry and user does not give the -no_preempt control argument in the login command. brief On at login time if on in project's SAT entry and on in user's PDT entry, or if user gives -brief control argument in login command (permission is not needed to use -brief). nostartup On at 10gtn time 11 on in project's :SA"! entry and on in user's PDT entry and user gives -no_startup control argument in login command. no_warning On at login time if on in project's SAT entry and on in user's PDT entry. or if user gives -no_warning control argument in login command (permission is not needed to use -no_warning) 3-11 AK.51-Q2 save_on_disconnect On at login time if on in project's SAT entry, or if on in user's PDT entry, or if user gives -save_on_disconnect control argument in login command (but note requirement for the disconnect_ok attribute, described above). authorization The user's maximum authorization is the lowest of: the value in the project's SAT entry, the value in the user's PDT entry. and the value in the person's PNT entry. grace The user's grace time is the smaller of the values in the project's SAT entry and the user's PDT entry. max_background The smaller of the SAT and PDT values is the user's limit, except that a value of zero means no limit, so if one value is zero the other one is used, and if both are zero there is no limit. max_f oreground The smaller of the SAT and PDT values is the user's limit, except that a value of zero means no limit, so if one value is zero the other one is used, and if both are zero there is no limit. pdir_quota The smaller of the SAT and PDT values is the process directory quota assigned to the user, except that a value of zero in either the SAT entry or the PDT entry denies permission to the project or user (respectively) to use the variable size process directory quota feature, causing that user to be given the system default process directory quota (which is specified in the >scl>communications segment). ring The user's initial ring is the larger of the initial ring values in the project's SAT entry and the user's PDT entry. The user's maximum ring is the smaller of the maximum ring values in the project's SAT entry and the user's PDT entry. SAMPLE PROJECT MASTER FILE The following is an example of a PMF with five registered users and an anonymous user: 3-12 AK51-02 Projectid: Grace: Attributes: Alpha; 30; Cutoff: v_process_overseer, v_home_dir, no_start_up; 2000, 01/01/80; personid: Smith; personid: grace: attributes: cutoff: Brown; 2900; preempting; open; personid: cutoff: Black; 20.00, midnight, daily; personid: shift_limit: lim it: Green; 50.00, 200.00, 200.00, 200.00; 800; personid: initproc: personid: initproc: homedir: attributes: lot_size: kst_size: cls_size: shift_limit: Johnson; >user_dir_dir>Alpha>student_overseer_; )'q >user_dir_dir>Alpha>student_overseer_; [pd]>home; brief, Av_process_overseer, AV_home_dir; 200; 200; 512, stack; 0, open, open, open; cnrl· .......... t User Brown might be the project administrator. He is never cut off by the system, he is the only user allowed to bump others in the load control group, and (because his grace is so high) he is never demoted from primary to secondary. Users Smith and Black are permitieo rUll system capaOll1t1es. Smith, and ali the other users in the group, are subject to the default cutoff restriction that they may not spend more than a total of $2000 or log in after 12/31/79. User Black has his own cutoff restrictions. User Green :ilso has limits. He may spend a total and $200 on shifts 2. 3. and jobs and I/O requests.) The of $2000 set by the Cutoff logged out. fun access to the system, but has monthly expenditure of $800 per month. and may only spend $50 on shift 1 4. (He is able to spend the remaining $150 on absentee monthly limit of $800 is in addition to the cutoff limit default keyword; if either limit is exceeded, Green is 3-13 AK51-D2 User Johnson might be the programmer in charge of checking out the system for student use. His default process overseer is the project's special program. student_overseer_: however, Johnson may log in and obtain the full system capabilities by typing: login Johnson -po process_overseer_ since he has the v_process_overseer attribute by default. (See the login command in Multics Commands and Active Functions manual, Order No. AG92 for more details.) The anonymous user entry is the last in this PMF. The attributes listed for anonymous users restrict them to the special overseer. suppress the log-in message. and deny them a permanent home directory. Since no password statement is specified for the anonymous users, they log in without typing a password. The anonymous users are unable to log in on shift 1. and are also subject to the group's standard cutoff of $2000. Because the special overseer for the students has very limited capabilities, the sizes of the system tables have been specified to be smaller than usual, in order to reduce the number of page faults taken by the student processes. The anonymous users have no permanent storage in >udd>Alpha, unless it is provided for them by the subsystem. Their home directories are created for them on each login as subdirectories of their process directories. MODIFYING A PROJECT MASTER FILE The following sequence of Multics commands are used by a project administrator to add the limit keyword statement to user Brown's entry in the PMF. This same procedure is used to change any user attribute or to add and delete users. (For more details on user registration and deletion, see Section 4, "Project and User Registration and Deletion.") In this example. an exclamation point indicates lines typed by the project administrator. 3-14 AK51-02 qedx r Alpha /Brown/ personid: Brown; a 1 i mit: 800; \f w q r 1301 1.2021.548 96 cv_pmf Alpha r 1303 1.433 1.321 82 install Alpha.pdt r 1305 1.702 1.024 31 From In i t i ali zer • SysDaemon (i ns ta 11) 1306.0: installed Alpha.pdt for Brown.Alpha.a In the example, the qedx command is used to add a limit statement for user Brown to the PMF named Alpha described earlier in this section. The cv_pmf command converts the PMF to a PDT named Alpha.pdt. Alpha.pdt is then installed using the install command. 3-15 AK51-o2 SECTION 4 PROJECT AND USER REGISTRATION AND DELETION NEW PROJECT REGISTRATION The following steps outline the usual routine required to set up a new project. These steps may vary slightly at different Multics sites. Some sites may not require the project registration form to be filled out or may substitute a different type of form. 1. Arrange for funding. 2. Choose a Project_id and fill out a project registration form. 3. Decide on an initial list of users. 4. Decide how much disk space the project members must have available to them initially. The system administrator makes this amount of quota available for them to use. 5. Appoint a project administrator. 6. Submit the registration form and any pertinent information to the system administra tor. Disk Usage Quota is an administrative limit on disk record consumption. Disk space is measured in pages; a page contains 1024 36-bit words (4096) characters. Charges are made according to quota used, not quota allocated. For more information. see the Multics Programmer's Reference Manual. Order No. AG91 and the Multics System Administration Procedures manual, Order No. AK50. Funding 1 ne system administrator needs a valid requisition or purchase order in order to set up a project. The requisition states the name of the principal investigator, the requisition amount and termination date, and should give a name and address of the person who receives the bills. 4-1 AK51-02 The requisition amount may be increased later by a change order; it provides a limit stop, checked once a day by the system, which prevents users on the project from logging in once the project funds are exhausted. The requisition amount may be specified as open if the project does not want to be cut off for overexpenditure. The requisition termination date also provides a stop on users of the project It too may be changed by a change order. When a project reaches its termination date, as specified on the requisition, it continues to accumulate storage charges for disk and tape rental until the system administrator receives notification from the project administrator requesting cancellation of the project. By def~ult, when the requisition balance is within ten percent of the requisition amount or less than $10, or when the requisition termination date is less than ten days away, each user on the project receives a warning message each time he logs in. The project administrator can change these percentages and amounts by modifying the PMF. The amount of funding required varies widely, depending on the number of users on the project, the kind of users, and the price. An occasional user of the system might find his charges running about $100/month. A full-time professional programmer can consume as much as $5000/month, but typically between $1000 and $2000, not including disk charges. Consult a knowledgeable person at the Multics site for an estimate of how much money to allocate. Project Registration Form Most Multics sites have a project registration form; a sample form is provided in Appendix A. The project registration form has spaces for a one-line title describing the project, the name and address of the principal investigator. the project supervisor, and the project administrator, and the estimated disk requirement and estimated duration of the project. Also, specify the Person_id and Project_id of the project administrators and the directory into which the new project's PMF should be moved. The disk requirement and estimated duration are included to help the installation plan the expansion of its storage facilities. At most sites, projects are given a small initial quota of 100 records. Then, if storage is available, the quota can be increased whenever the project gets low on disk. List of Users An initial list of users on the new project must be submitted to the system administrator. If these users are already registered on the system, their Person_ids and passwords are already in the system registration files. If any user is new to Multics, fill out a person registration form for him and supply an initial password. A sample initial user list and person registration form is included in Appendix A. Submit all completed forms to the system administrator who then registers the project. At most installations a project can be registered in a few minutes. Unless there is some emergency, however, it is wise to allow at least one working day. 4-2 AK51-02 NEW USER REGISfRATION The following sequence of steps describes the procedure for adding a new user to an already-existing project. fin out a person registration form for, the user and submit it to the system administrator. Clip a small piece of ptiper to the form giving the user'~ initial password. 1. if the user is not personaHy registered on Muliics, 2. Edit the PMF for the project and add the line: personid: 3. Person_id; Convert the PMF to a PDT by typing: cv_pmf pmfname 4. Request installation of the resulting binary PDT by typing: install pmfname.ptd 5. Wait In a short time the system prints: From I nit i ali 2 e r • 5y s 0 a erno n ( ins tal 1) 1527. 0 : installed pmfname.pdt for Person_id.Project_id.tag 6. Delete the PDT by typing: delete pmfname.pdt When the PDT is installed, the new user's home directory is created. ANONYMOUS USER -REGISTRATION Some projects need to allow users not registered on the system to log in under their project This ability is provided by Multics through the 'tanonymous user" mechanism. Anonymous users are not distinguished by the system f or the purposes of access control (which is the reason for the requirement that persons be registered) or billing. 4-3 AK51-Q2 Anonymous users log in to Multics with either the enter or enterp commands depending on whether or not the password statement is given after the anonymous user entry in the PMF. The enter command is used to log in an anonymous user without a password; the enterp command is used to login an anonymous user with a password. These commands are described in the Multics Commands and Active Functions manual, Order No. AG92. An anonymous user has a process created for him when he logs in. Depending on the process overseer specified with the initproc statement, the anonymous user may have access to all Multics facilities (if his process overseer procedure is process_overseer_), or some specialized subsystem (e.g., the Multics FAST subsystem or even a user-written environment specified by a pathname). To set up an anonymous user in the PMF, the project administrator enters the following user keyword statement: personid: ~'c ; This is the only required statement. However, all the user keyword statements, described in Section 3, are valid for anonymous users and can be specified after the personid statement. Global default values apply to anonymous users whenever a user keyword statement is omitted. The cv_pmf command returns a warning message whenever default values are assumed for omitted homedir and initproc keywords. For example, if the project administrator does not specify the homedir statement for the anonymous user entry, a warning message is printed, and anonymous users are given the project directory as a home directory. If the initproc statement is omitted, a warning message is printed stating that the process overseer specified with the global Initproc statement is used by default. Below is a sample anonymous user entry in a PMF: personid: password: initproc: homedir: ..t.- • I' , anon; >udd>Project_id>login_proc; >udd>Project_id>users; Since the password statement is given, all anonymous users who log in under this project must do so via the enterp command and give the "anon" password. These users are subject to a special process overseer. Also, they all share permanent storage in the specified home directory. Global keyword default values apply for the remaining unspecified user keywords. USER DELETION The following sequence of steps describes the procedure for deleting a user from a project: 1. Edit the PMF and delete the user's personid and any other keyword statements for that user. 4-4 AK51-o2 2. Convert the PMF to a PDT by typing: cv_pmf pmfname 3. Install the PDT by typing: install pmfname.pdt 4. Wait In a short time the system prints: From In i t i ali zer. SysDaemon (i ns ta 11) 1539. 1: installed pmfname.pdt for Person_id.Project_id.tag 5. Delete the PDT by typing: delete pmfname.pdt 6. Move segments to be saved to another directory and delete the user's home directory and segments as soon as possible since they continue to accumulate storage charges until deleted. PROJECf TERMINATION When a project is no longer to be used, the project administrator should request that the system administrator delete the project. The project is then removed from the system and all its segments are deleted. Any tapes or disk packs assigned to the project are reassigned. This means that before a project administrator requests the deletion of a project, he should arrange for the preservation of any programs and data that may be required later by punching the information on cards or writing it on a private volume. The system administrator does not automatically delete a terminated project. A project is liable for storage charges until the system administrator receives notice to delete it, even if the project termination date has arrived. 4-5 AK51-Q2 SECTION 5 RESOURCE CONTROL RESOURCE LIMITS The resource limits provided for each user of a project enable the project administrator to control the overall consumption of his project's budget. Remember that the project as a whole is constrained in its total expenditures by the requisition amount By limiting each user of his project to some fraction of the total budget, the project administrator ensures that each user gets a chance to consume some of these resources. For instance, if a project has a budget of $1000 per month, and ten registered users, the project administrator might insert the following line at the top of his PMF: L imi t: 100.00; so that no user could spend more than $100 per month. The above example does not take· into account the fact that the project as a whole, and not the individual user, is charged for storage and registration. It also ignores the possibility that one user might not need an of his $100 allocation while another might need more than the limit. Individual limit keyword statements in some users' entries might be necessary to override the global default value of $100. Per-shift limits may be used to further control the resource consumption of users on a project. In order to save money, a project administrator might choose to lock his users out of shift 1 entirely by adding the statement Shift 1 imit: 0; to the top of his PMF. The cutoff keyword statement can be used to provide "absolute" limits, or to regulate the rate at which a user spends. For instance, the line: cutoff: 100; in a user entry sets a total expenditure limit of $100 for the user. He may spend this amount in a week, or over six months--but when he reaches this limit he is permanently cut off. 5-1 AK51-02 The statement: cutoff: 100, 01/01/80; establishes the same $100 maximum, and in addition cuts off the user after December 31, 1979, whether he has spent his $100 or not. On the other hand. the statement: cutoff: 10,midnight,daily; prevents the user from spending more than $10 in anyone day. If the user overspends his limit. he is logged out automatically and is unable to log in again until midnight (Since the limits are checked only at every 15 minute accounting update. and since I/O requests cannot be stopped by the limit. the user may be able to spend more than $10. When his limit is renewed. the system does not take the overrun into account; the user is given a full $10 for the next day.) Checking Limits The requisition balance, whic·h functions as a per-project resource limit. is checked periodically by the crank; at most sites the crank is run once a day. Each users on the project is warned at login if the project is within the percentage of its limit specified in the warn_percent statement When the limit is exceeded, users of the project are not able to log in until the limit is increased. The per-user limits are checked at every login. every time the user creates a new process, and at every 15 minute accounting update. If a logged-in user exceeds his limit, he is bumped off the system (automatically logged out) with a few minutes warning. Absentee jobs are aborted before they get started if the user's total dollar limit is exceeded. Absentee jobs that have started are not stopped if they exceed the limit while running. I/O daemon requests are allowed to proceed even if the user has exceeded his dollar limit User Resource Usage Reporting A user may discover how much of his resource limit he has consumed by invoking the resource_usage command described in the Multics Commands and Active Functions manual, Order No. AG92. Project Resource Usage Reporting Project administrators may generate a project usage report showing month-to-date resource consumption for all users on a project by typing: One line per user, plus a totals line, is printed. 5-2 AK51-o2 The display_account_status command prints the latest accounting information for the project as a whole. Summarizations of all total dollar charges are printed, including disk. The display_account_status and proj_usage_report commands are described in detail in Section 10. QUOTA LIMITS The project administrator can limit secoildary storage allocation consumed by users on his project. Since he has modify permission on the project directory, he can use the move_quota and get_quota commands to move quota from that directory to users' directories. The sweep and disk_stat_print commands can be used to determine the current distribution of quota. Both commands are described in Section 10. The move_quota and get_quota commands are described in Section 3 of the Multics Commands and Active Functions manual, Order No. AG92. Requests for more disk quota should be submitted by the project administrator to the system administrator. 5-3 AK51-Q2 SECTION 6 LOAD CONTROL AND PREEMPTION WAD CONTROL GROUP A load control group is a group of projects that share a guaranteed access to the system. Each load control group has a quota of primary load units, which represent a guaranteed number of users from the group who are able to be logged in at the same time. A user who attempts to log in is always able to do so if the group's primary quota is not filled. If. on the other hand, the group's primary quota is full but the system is not full. a user who attempts to log in is assigned secondary status. If the system becomes full, secondary users are preempted in order to log in primary users from other groups. If a group's primary quota is full and the system is full, a user from that group is refused login unless he can preempt some other primary user from his group. Each project is assigned to a load control group by the system administrator. The project administrator can control who can have primary status and for what period of time, and who can preempt other primary users. Since several projects are often assigned to the same load control group, project administrators should work cooperatively to determine who from the group may have primary status and for how long. A project administrator may decide that some users of his project should not be subjected to secondary status and its possible consequence of being preempted. To specify that a user should never be secondary--that is, that he should be refused login if he cannot be given primary status-the project administrator adds the following attributes statement to the user entry in the PMF: attributes: no_secondary; This attribute may, of course, be combined with others. The following attributes statement specifies that a user may not be given primary status: attributes: no_primary; This statement ensures that the user is given secondary status only, and does not compete with other users of the group for primary status. He is only able to use the system when it is not full and may be preempted whenever it starts to become full. 6-1 AK.51-o2 If both the no_primary and no_secondary attributes are specified for a user, he is never able to log in. A warning message is printed by the cv_pmf command if such a PMF entry is found; but the PMF is still converted. Preempting within a load control group, to prevent users who get primary status from holding onto the system all day, is controlled by two parameters: who can preempt, and who is preemptable. All users with the statement: attributes: preempting; can preempt other primary users in their group. Primary users, once they attain primary status, are immune from preemption for a period specified by the project administrator. This time period, the grace, controls how long users may monopolize primary status. Each project has a maximum grace, set by the system administrators. The project administrator can set the grace for a particular user with the statement: grace: n; where n is the number of minutes the user may be logged in before he becomes subject to preemption. To set a default value for all users of a project, the project administrator can use the global statement: Grace: n; If the project administrator does not specify either a global or user grace statement, or if he attempts to specify a grace in excess of his project's maximum, the project maximum grace set by the system administrator is used. When a primary user logs out, a secondary user may be promoted to primary status. Whenever the system looks for a secondary user to promote, or for a preemptable user to preempt, it chooses the user who logged in first from the same load control group as the primary user who just logged out or, if that isn't possible, from the same load control group as the user who is doing the preempting. WORK CLASS A work class is a group of processes that are guaranteed a specified percentage of the available virtual CPU time. The work class membership of a process is determined by the load control group of the user owning the process and is under the control of the system administrator who estimates the needs of users is each load control group. Individual users working on high priority assignments may require a high percentage of CPU time. These users can be placed in private work classes. Placing individual users in private work classes is accomplished indirectly. They are first assigned to an individual load control group by the project administrator and then that group is placed in an private work class by the system administrator. 6-2 AK51-02 A project administrator who wants individual users in a private work class should request that the system administrator give the project the individual group (igroup) attribute and' authorize one or more groups to which the project administrator can assign his users. The project administrator then assigns users to any of the authorized groups. using the Group and group keywords and the igroup attribute. When a group statement is specified for a user. the user is automatically assigned the igroup attribute by the cv_pmf command and placed in the specified load control group.- When the -Qroup statement isspecified. any -users who are gi-ven the i-gr-oup attribute (by an attributes or Attributes statement) are placed in the specified load control group. Users with neither a group statement nor the igroup attribute are not assigned an individual group (even if a Group statement is present) and are placed in the project's default group at log-in time. Users placed in individual groups are placed in the corresponding individual work classes, as specified by the system administrator. 6-3 AK51-o2 SECTION 7 TAILORING THE USER ENVIRONMENT This section describes the many means available to the project administrator for providing a different interface to some users on the project from that provided by the standard Multics system. There are many reasons why project administrators may wish to replace or modify the standard system interface. A project may need special facilities not provided by the normal interface, such as: • Restriction of users to a limited set of system 'commands (a limited service subsystem). • Restriction of users to a given rate of CPU consumption per hour logged in. • Complete replacement of the standard command system interface with a set of interface programs simulating some other system. • Isolation of users within a. special-purpose subsystem (a closed subsystem). • Separate accounting for anonymous users, who are lumped together by the system billing procedures. • Additional user identification procedures, such as passwords for anonymous users or the maintenance of project numbers for subdivision of a user's resource accounts. • Specialized accounting beyond those facilities provided by the system. For example, a project might wish to charge by the task completed rather than for the CPU time consumed. • Use of special terminal devices with features not supported by the standard Multics I/O system. • Extension of the user environment by making project-maintained programs appear to be part of the standard system. These facilities and others like them can be provided by the project administrator for users on his project without the necessity of action by the system administrators. In most cases, the changes made by the project administrator take effeet at the next login of a user. The two most important "handles" for the project administrator in modifying the user environment are his ability to specify per-user attributes in the PMF, including the process overseer procedure; and his ability to modify the contents of the storage system hierarchy below the project directory. In order to provide the interface he desires for users on his project, a project administrator may need to be, or have the services of, a reasonably experienced Multics applications programmer. 7-1 AK51-o2 PROCESS OVERSEERS The process overseer sets up the environment during process initialization. initialize_process_ calls the listener to start reading commands, subject to the limitations set up by the procedures described below. process__overseer__ The standard Multics process overseer procedure, process_overseer_. is the initial procedure assigned to a user unless the project administrator specifies otherwise by an initproc or Initproc statement in the project master file (PMF). The system process overseer searches for, and executes. the start_up.ec as described under "start_up exec_corns" later in this section (unless the project administrator has specified otherwise). The process_overseer_ procedure is responsible for the following features of the default environment: 1. It creates an unclaimed signal handler that prints a message and creates a new listener level. 2. It explicitly allows the " .. " escape to command_query_. This allows the user to execute any command before answering a question that is asked using the standard query routines. 3. It creates a handler for the mme2 handler that calls debug. This exists because debug breakpoints work by signalling the mme2 condition. 4. It finds a start_up.ec. It looks for start_up.ec in the home directory. then in the project directory, and finally in >scl. If a start_up.ec is found, then the listener is called with "exec_com Path login_type proctype" as an initial command line, where login_type is either "login" or "new_proc". and proctype is "interactive", "absentee", or "daemon", If there was no start_up.ec, then the listener is called without an initial command line. Another installed process overseer, named project_start_up_. allows a project administrator to provide a project_start_up exec_com. It is identical in function to process_overseer_ except that it executes >udd> Project_id>project_start_up.ec before looking for start_up.ec. 7-2 AK51-02 A project_start_up exec_com allows the project administrator to specify a series of commands that some or all of the project's users will execute at the beginning of each process. The facility allows the administrator to guarantee that the users will execute the project_start_up exec_com, or they can be given the option of circumventing it (by being given the v_init_proc attribute as described below). CREATING A project_start_up exec_com To create a project_start_up exec_com, put the desired exec_com (or a link to it) into the project directory with the name project_start_up.ec. Thus if you are administering the Alpha project, the full pathname would be: >udd>Alpha>project_start_up.ec Give users on the project at least read access to the project_start_up exec_com. To make all of the users on your project execute the exec_com before their personal start_ups, put the following line in the project master file (PMF): ATTRIBUTES AND EXCEPTIONS To except a user from executing the project_start_up exec_com, put the following line in the user's PMF en try: initproc: process_overseer_; If only a few of the users on the project are to execute the project_start_up exec_com, then omit the line "lnitproc: project_start_up_;" from the P!v1F and insert the line "initproc: project_start_up_;" in the PMF entries of those users. The ability of a user to substitute a process overseer for the one specified in the PMF is controlled by the v_init_proc attribute. A user with this attribute can change his process overseer by either specifying the -po argument to the login command, or putting a segment with the same name as the process overseer in the PMF in his home directory. It should be noted that a user with the v_init_proc attribute has almost complete control of his process environment, and can, among other things, avoid executing any of the exec_corns described above, even if he does not have the no_start_up attribute. 7-3 AK51-02 THE EXECUTION ENVIRONMENT When the project_start_up exec_com is called, the environment is slightly different from the normal user environment First, quits are disabled. so that the user cannot quit out of the start_up. Second, the working directory is set to the project directory, for users without v_init_proc. This prevents users from putting copies of programs called· by the project_start_up in their home directories and thereby substituting them for the expected version. A side effect of this is that the project administrator can put commands and exec_coms called by the project_start_up in the project directory. An error handler is created so that errors in the exec_com cause the users to be logged out. The project_start_up exec_com allows the administrator to force the user to execute some commands at each login. Unless the project_start_up exec_com finishes up by putting the user into a restricted environment. however. the user can always undo whatever the exec_com does. The project_start_up exec_com should avoid doing things that the user could do for himself and might want to do differently. unless the user is being put in a limited environment in which he cannot do it for himself. For example. the project_start_up exec_com should not accept messages. since the user might prefer to use -hold or even -call. The proper place for such commands is the default start_up exec_com in the project directory which is executed only if the user lacks a personal start_up exec_com. To enable quits during the execution of the project_start_up exec_com. insert a command line like: io call control user_i/o quit_enable Limited Service Subsystem {LSS} Project administrators can put their users in a limited environment, without having to write a special process overseer, by using the project_start_up_ process overseer and a project_start_up exec_com. together with the make_commands and enter_Iss commands. described in Section 10. The LSS limits the commands and percentage of CPU time available to the user. The project administrator creates a control segment that contains allowable command names and their locations in the system with the make_commands command. Then the -project administrator can insert the enter_Iss command into the project_start_up.ec to specify the LSS control segment to be used by the command processor f or the rest of the process. The command processor compares each command to those in the LSS control segment and accepts only those that are found. If a command is not found in the control segment. it is refused. DEBUGGING Since an error in the project_start_up.ec causes a logout. the exec_com should be debugged by explicitly specifying project_start_up_ to login with a command line like: 7-4 AK51-o2 login Smith Multics -po project_start_up_ This requires the v_init_proc attribute. Almost every feature of the standard Multics system interface can be replaced by providing a user with a specially tailored process overseer· procedure in place of the standard version. A special process overseer can be used to inhibit quit signals (result of pressing the quit key on a terminal. usually marked ATTN. BRK. INTERRUPT. or QUIT). Also. all users can be forced to have an initial home directory of >udd>Project_id. A start_up.ec in this directory can do whatever is needed--including: cwd path The details of writing a process overseer are described in "Subsystem Programming Environment," in the MPM Subsystem Writers' Guide. The start_up exec_com facility is provided to allow users to write a script of commands that will be executed at the beginning of each new process. Start_ups are used to tailor the environment: users can accept messages, reset their search rules. check their mail, and the like. Many projects and sites find that the default environment for a user with no start_up exec_com is deficient. For example, a site or project might believe that all users should accept messages by default, so that consultants or other people can communicate with them. To this' end. if the user does not have a start_up exec_com, the system searches for one first in the project directory (>udd>Project_id) and then in >scl for default start_up exec_corns. Thus if a project wishes to provide a default start_up exec_com. the project administrator needs only to create a segment named start_up.ec in the project directory, and users on the project without start_up exec_corns in their home directories will execute this exec_com instead. Similarly. the site administrator can create a segment named start_up.ec in >scl, and users who lack start_up exec_corns in both their home directory and project directory will execute it. Users must. of course, be given at least read access to the default start_up exec_corns. In addition to default start_up exec_corns a facility is provided for supplying a mandatory exec_com which is always executed before the user's start_up exec_com. The search mechanism described above is still used to find a personal start_up. Thus a project can supply both a mandatory start_up exec_com for some or all of its users, as well as a default start_up exec_com for users without personal start_up exec_corns. CLOSED SUBSYSTEMS Multics supports two subsystems: FAST and DFAST. To set up a Multics FAST user. the project administrator must specify the following keyword statements. Global statements can be used if the entire project is restricted to this subsystem. initproc: attributes: fst_process_overseer_; Avinitproc, Avdim; 7-5 AK51-Q2 To set up a Multics DFAST user, the project administrator must specify the following keyword statements. Global statements can be used if the entire project is restricted to this subsystem. initproc: attributes: dfast_process_overseer_; Avinitproc, Avdim; RINGS The Multics ring structure can be used to provide user environments that even a user with the ability to write and execute arbitrary PL/I programs cannot break out of. By placing the user in an outer ring, and interposing the project subsystem residing in a lower ring between the user and the system, the project administrator can provide a completely controllable interface which still allows the user to use general-purpose compilers. See "Access Control," of the Multics Programmer's Reference Guide, Order No. AG91 for more information concerning the ring mechanism. Also see "Keywords and Their Values" in Section 3 of this book for information on the ring and Ring keyword statements under "Special Environment Keywords". 7-6 AK51-02 SECTION 8 LOGICAL VOLUME QUOTA MANIPULATION LOGICAL VOLUME Segments in the storage system hierarchy are stored on disk volumes. These disk volumes are organized into groups called logical volumes. A logical volume consists of one or more disk volumes used by the storage system to contain segments. Storage is allocated on logical volumes according to the rules described in the Multics Programmer's Reference Manual, Order No. AG91. When a logical volume is created, a registration record is created for it. This record contains the following information: • list of the physical disk volumes comprising the logical volume • owner identification • switch setting, either public or private • list of master directories .. list of users with quota accounts The owner of the logical volume controls the access control segment (ACS) of the volume. Any user who is given "e" access to the logical volume is a volume administrator. Usually, system administrators are volume owners and project administrators are volume administrators. LOGICAL VOLUME QUOTA A volume administrator allocates disk quota on a logical volume to users who need space. The set_volume_quota command, described in Section 10, is used to set a user's quota account on a logical volume. Users with quota accounts on logical volumes can create master directories on these volumes as described in Section 9, "Master Directory Creation and Deletion." The list_mdir command, described in Section 10. is used to print a list of users with logical volume quota accounts. 8-1 AK51-Q2 SECTION 9 MASTER DIRECTORY CREATION AND DELETION A master directory is a directory whose segments reside on a different logical volume than the segments of its containing directory. When a new directory is created, its segments, by default, reside on the same logical volume as the segments of its containing directory. If the segments in the new directory are to reside on some other logical volume, a master directory must be created. (See the Multics Programmer's Reference Manual, Order No. AG91 for more details.) Master directories are created by using the -logical_volume control argument to the create_dir command. Only users with logical volume and master directory quota accounts can create a master directory. The set_mdir_owner command sets the owner of a master directory and the set_mdir_account command sets the quota account of a master directory. Both of these commands can only be issued by a volume administrator. Once the owner and quota account of the master directory are set, either the volume administrator, the user with a quota account, or the owner of. the master directory can set the quota on the master directory with the set_mdir_quota command. The list_mdir command is used to list users with master directory quota accounts and owners of master directories. All of these commands are described in Section 10. 9-1 AK51-o2 SECTION 10 COMMANDS USED BY A PROJECT ADMINISTRATOR COMMAND DESCRIPTIONS This section contains descriptions of the Multics commands used by project administrators. Each description contains the name of the command (including the abbreviated form, if any), discusses the purpose of the command, and shows the correct usage. Notes and examples are included when deemed necessary for clarity. The discussion below briefly describes the content of the various divisions of the command descriptions. Name The "Name" heading lists the full command name and its abbreviated form. The name is usually followed by a discussion of the purpose and function of the command and the expected results from the invocation. Usage This part of the command description first shows a single line that demonstrates the proper format to use when invoking the command and then explains each element in the line. The single line contains the full command name (or its abbreviated form) followed by the valid arguments. Some commands have required arguments; some commands have optional arguments. Most commands have both required and optional arguments; in general. the required arguments precede the optional arguments. Any argument preceded and followed by a curly brace ({}) is an optional argument. Any other argument is a required argument. Anything specifically identified as "control_arg" in the usage line must be preceded by a minus sign in the actual invocation of the command. For example, the usage line: commandname path {-control_arg} {xxx} means that the command has one required argument and two optional arguments. Theref ore. any of the following command lines are valid: commandname commandname command name commandname path path -control_arg path xxx path -control_arg xxx 10-1 AK.51-o2 If a command accepts more than one of a specific type of argument, an "s" is added to the argument name. For example, the usage line: commandname paths {-control_args} means that the user must specify at least one pathname and may specify none, one, or several control arguments. If a command accepts multiple arguments that must be in a specific order, the usage line is as follows: commandname xxxl yyyl •.• xxx~ yyy~ to show that although several xxx and yyy arguments can be given, they must be given in pairs. Notes Comments or clarifications that relate to the command as a whole are given under the "Notes" heading. Also, where applicable, the required access modes, default condition (invoking the command without any arguments), and any special case information are included. Examples The examples show different valid invocations of the command. The results of each example command line are either shown or explained. Other_Headings Additional headings are used in some descriptions, particularly the more lengthy ones, to introduce specific subject matter. These additional headings may appear in place of, or in addition to, the notes. 10-2 AK51-02 as_who Name: as_who SYNTAX AS A COMMAND FUNCTION lists the contents of the answering service's user tables: answer_table, absentee_user_table, and daemon_user_table. in the directory >scl. Access to these segments is usually restricted, preventing most users from using the as_who command. Users lacking access to these tables can use the who command (see the Commands manual) to list the whotab segment in >scl, which is a public list of logged-in users. When invoked as an active function, as_who returns Person_id.Project_id for the processes selected for output, separated by spaces. ARGUMENTS User_ids are access control names of the form: Person_id.Project_id lists all users logged in with the specified Person_id and Project_id. The star convention is allowed in both Person_id and Project_id. Person_id lists all users logged in with the specified Person_id. The star convention is allowed. Project_id lists all users logged in with the specified Project_id. The star convention is allowed. CONTROL ARGUMENTS -absentee, -as prints the ratio of absentee users logged in to the number of absentee slots currently available, and then lists the absentee users. -channel chn_id. -chn chn_id lists only interactive users whose tty source name (e.g., prta, vinc, etc) absentee name (e.g., abs1) matches starname to cause several users to be ID matches chn_id, or daemon users whose matches chn_id, or absentee users whose chn_id. The chn_id argument may be a listed. -cpu shows CPU usage in seconds for the listed processes. argument required access to meterin~ate_ or phcs_. 10-3 Use of this control AK51-02 as_who -daemon, -dmn prints the number of currently active daemon processes and then lists them. -disconnected, -disc prints a list of disconnected processes only. -group {name}, -gp {name} prints a list of users that fall under the specified load control group (see "Notes" below). -idle shows how long in seconds the listed processes have been idle. control argument requires access to meterinLpage_ or phcs_. Use of this -interactive, -ia prints a list of all users having current interactive processes. -long, -lg prints the long form of output including log-in time and tty ID. If this control argument is not given, the command prints the User_id (Person_id.Project_id) and flag for each user (see "Notes" below). -name, -nm sorts the users by name. -no_header, -nhe suppresses column headings and load control heading from the printed output. -pdir_volume {lv_name}, -pdv {lv_namel either includes in the output the name of the logical volume containing the user's process directory segments (if no lv_name argument is given) or prints information about only those users whose process directory segments are on the volume specified by the lv_name argument. -project, -pj sorts the users by project. -secondary, -sc prints a list of all users having currently active secondary user processes (see "Notes" below). NOTES The default sort is by login time. Anonymous users' true log-in names are shown, preceded by a *. Specification of the -long control argument returns time of login, tty ID, weight, device channel, load control group, flags indicating special variables, and a User_id for each user. 10-4 AK51-02 as_who Included in the output next to the User_id are flags, indicating preemption attributes (primary or secondary status), and the current status of that user's process (these attributes vary according to the login instance and the discretion of the project administrator). When this command is invoked with the -long control argument. the column listlng these flags haS the heading "PNDs.-" The flags in thesefouf column positions indicate the user's status with respect to: Preemption, Nolist, Disconnected, and Suspended status. Additionally, if the -idle control argument is specified, Rand W flags can occur. An R flag indicates the process is ready; a W flag indicates the process is waiting for another event. Possible preemption attribute flags are: indicates that the user has primary status. S indicates that the user has secondary status. + the user has the nobump attribute (cannot be preempted). > the user is subject to bumping (preemption) by other members of his project, whose grace period has not yet run out. x the user has been bumped but has not yet logged out. D identifies a daemon user. Possible nolist flags are: <"blank>" the user does not have the nolist attribute. N the user has the nolist attribute. Possible disconnected flags are: the uSer is not disconnected. D the user is disconnected. Possible suspended flags are: the user is not suspended. 10-5 AK51-o2 s the user is suspended. EXAMPLES In the following example, the as_who command is invoked with the -long control argument, and the resulting output is printed: Mu1tics mpp03221; Development Machine. Load = 11.0 out of 70.0 units; users = 11 out of 70 Absentee users = 1 background, 1 foreground; Max background absentee users = 3 Daemon users = 7 1308.3 System up since 04/23/84 Scheduled shutdown at 04/23/84 2300.0 Last shutdown was at 04/22/84 2307.7 TTY Login at 2119.1 2150·3 2200. 1 2207.4 1308.4 1308.6 1308.6 1308.6 1308.7 1308.7 1308.7 Load none 001 Q1 Q FG cord bk prta puna vinc nw ns 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 Chan Group PNDS a.h018 a.h019 abs1 abs2 cord bk prta puna vinc nw ns SysProg Admin Admin SysProg 10 System 10 10 System System > D > 0 0 0 D 0 0 0 User 10 Smith.Mu1tics Jones.SysAdmin Jones.SysAdmin (crank) Doe.Multics (1 oad_ tape) 10.SysDaemon Backup.SysDaemon 10.SysDaemon 10.SysDaemon Volume_Dumper.SysDaemon Network Daemon.Daemon Network Server.Daemon The following example invokes the as_who command to list all users on projects that begin with "Mi". as who .Mi-;': The following example invokes the as_who command to list all users on the CompBar project whose names begin with "A". as_who A~':. CompBar 10-6 AK51-02 cv_pmf cv_pmf Name: cv_pmf SYNTAX AS A COMMAND FUNCTION converts an ASCII project master file (PMF) into a binary project definition table (PDT). ARGUMENTS pmf_path is the pathname of the PMF. If path does not have a suffix of pmf. one is assumed; however, the suffix pmf must be the last component of the name of the source. CONTROL ARGUMENTS -brief, -bf prints error messages in the short format. -long, -lg prin 15 error messages in the long format. -severity N, -sv N causes error messages whose severity is iess ihan N (where N is 0, 1, 2, 3, or 4) not to be written to the user_output switch. If not specified, a severity level of o is assumed; i.e., all error messages are written to the user_output switch. NOTES The newly converted PDT is placed in the current working directory. The entryname of the new PDT is the same as the entryname of its source PMF, with the pmf suffix replaced by pdt. This command associates the following severity values to be used by the severity active function: 10-7 AK51-o2 cv_pmf cv_pmf Value o 1 2 3 4 5 Meaning No compilation yet or no error. Warning. Correctable error. Fatal error. Unrecoverable error. Could not find source. EXAMPLES converts the PMF >udd>Project_id>projfile.pmt and creates a PDT named projfile.pdt in the project administrator's working directory. 10-8 AK.51-o2 Name: delete_volume_quota, dlvq SYNTAX AS A COMMAND dlvq logical_volume account FUNCTION is used to delete a quota account for a logical volume. This command is to be used by volume executives. ARGUMENTS logical_volume is the name of the logical volume from which quota is to be deleted. account is the name of the quota account (in the form Person_id.Project_id.tag) to be deleted. NOTES The quota account cannot be deleted if there are still master directories whose quotas are charged against the account to be deleted. Such directories must either be deleted or transferred to another account (see the set_mdir_account command). ACCESS REQUIRED To use this command, the user must have execute access to the logical volume. It is not necessary that the volume be mounted. 10-9 AK51-o2 SYNTAX AS A COMMAND FUNCTION prints the disk_stat segment that is created by the sweep command. Optional control arguments cause the information to be presented in a variety of ways, to facilitate analysis of disk usage patterns. By default, a header is printed, followed by one line for each directory in the disk_stat segment, and a totals line. ARGUMENTS path is the pathname of the disk_stat file to be printed. If path is not given, the disk_stat segment in the working directory is assumed. CONTROL ARGUMENTS -level L, -lev L summarizes each subtree that begins at level L; prints no lines with level numbers greater than L. The effect of this argument is to make the output appear as if no directories with quotas existed below level L in the hierarchy since the directories below level L have their usage figures included in those of whatever level L directory they are inferior to. The default value for L is 16, causing all directories in disk_stat individually. The root's level is 0; a directory is said to be below level number is greater than L. A value of 2 for L causes the disk project to be displayed in a single line; a value of 3 causes the user to be displayed (provided that the user directories have quotas). to be printed level L if its usage of each usage of each -logical_volume, -Iv prints the name of the logical volume on which segments contained in each directory reside, and the usage figures for each logical volume. An extra column is printed in the directory line, giving the logical volume index (Ivix). This is merely the line number in the table of logical volume totals that is printed after the regular totals lines. An lvix of zero indicates that the subtree summarized by the line contains segments that reside on more than one logical volume; an lvix of -1 indicates a logical volume not known to the system. -subtotal, -stt prints subtotal lines gIvmg the totals for each subtree. Each time a directory is encountered whose level number is less than that of the preceding directory, one or more subtotal lines are printed. This argument causes the maximum amount of subtotal information to be printed. Some users may find the resulting output too cluttered to be easily read. The -level control argument provides an alternative, producing less information, but in an easier to read format. 10-10 AK51-02 -total, -tt does not print a line for each directory; rather prints a totals line (plus any other lines specified by other arguments). NOTES The first date printed in the header is the date of the last billing. It is filled in by charge_disk if the disk_stat file is the one used by the daily disk accounting job. This date is zero in files created separately (e.g., for use in disk usage analysis). Although the output of disk_stat_print is designed to be printed on a line printer (using the file_output and dprint commands, described in the Multics Commands and Active Functions Manual, Order No. AG92), it can be printed on a terminal if the carriage is wide enough. Each line consists of approximately 70 characters followed by a pathname. Pathnames can be up to 168 characters long but are typically less than 50 characters long. EXAMPLES prints one disk usage line for each user on the Alpha project, assuming that the segment Alpha.disk_stat was created as shown in the example under the sweep command. prints a single line giving the disk usage for the entire Alpha project 10-11 AK51-o2 display _account_status Name: display _account_status, das SYNTAX AS A COMMAND das {Project_id} {-control_args} FUNCTION prints the latest accounting information for a project. The information is stored in the PDT of that project and is correct as of the last time the daily accounting job was run; it is usually run every night. ARGUMENTS Project_id is the Project_id of the project. If this argument is not given, the project under which the project administrator is currently logged in is assumed. CONTROL ARGUMENTS -brief. -bf prints a one-line summary of the account information. -long. -lg prints all information found in the projfile (project registration segment) entry and the reqfile (requisition segment) entry. -no_header, -nhe suppresses printing of the header. ACCESS REQUIRED The user must have read access to the PDT to use this command; usually only project administrators have such access. NOTES If neither the -brief nor -long control argument is given, all information about charges is prin ted. See also the proj_usage_report command to get a brief summary of each user's resource consumption and the print_pdt command to get more detailed information about each user. 10-12 AK51-02 display_account_status EXAMPLES The following example illustrates the output of the das command when it is used with the -long control argument: d~.Multics.pdt -long Projectid: REQFILE account: reqno: rate structure: qflag: date on: date off: billing name: billing addr: charge this month: charge this req: req amount: cutoff date: Multics.pdt 12/04/84 0855.3 Account information copied 12/03/84 2130.7 Multics; SYSPROG Multics default 03/13/75 1254.4 est Thu System Administration Accounting Office 57285.74 S S 2414583·92 0.00 balance: S 01/01/99 1254.4 est Fri OPEN PROJFILE title: investigator: inv address: supervisor: sup addr: sup phone: date on: date off: disk page-months: disk quota: disk use: dir disk use: misc charges: # misc charges: Worker Bees John Gi nte 1 1 Right Here eTe There phone no 03/13775 29296, 67538 27329 2214 S 0.00 o 1254.5 est Thu S 87.89 10-13 AK51-02 SAT attributes: ring: ali as: default group: authorized groups: max grace: audit flags: primary_line, guaranteed_login, anonymous, nopreempt, dialok, multip, bumping, brief, vinitproc, vhomedir, nostartup, daemon, igroup, save_pdir, disconnect_ok; 1,5 m SysProg *,Admin 2880 seg_init, dir_init, mc_seg_init, no_access, ipr_fault, acv_mode, acv_ring, no_wakeup, sys_priv system low: system_high authorization: 5143 days to cutoff: 100% percent balance: dollars to cutoff: $ 0.00 The following example illustrates the output of the das command without the -long argument das Multics.pdt Projectid: charge this month: charge this req: req amount: cutoff date: disk page-months: disk quota: disk use: dir disk use: misc charges: # misc charges: Multics.pdt 12/04/84 0857.7 Account information copied 12/03/84 2130.7 Multics; $ 57285.74 2414583.92 0.00 balance: 01/01/99 1254.4 est Fri 29296, $ 87.89 67538 27329 2214 $ 0.00 $ $ OPEN o 10-14 AK51-02 Name: enter_Iss SYNTAX AS A COMMAND enter_lss path FUNCTION causes the command processor to compare each command to a supplied Limited Service Subsystem (LSS) control segment, which was created using the make_commands command. Any command not found in the control segment is refused. Those found are mapped into the command specified by the control segment. ARGUMENTS path is the pathname of the LSS control segment. NOTES The LSS control segment must be previously created with the make_commands command. The command line as shown in the example above is usually included in the project_start_up.ec. See the make_commands command for more details on the LSS facility and the use of the project_start_up exec_com. EXAMPLES To limit users on a project to a subsystem as specl!lea In an LSS control segment named student_commands, place the following command line in their project_start_up.ec: enter lss >udd>Students>student_commands 10-15 AK51-Q2 SYNTAX AS A COMMAND FUNCTION returns information about the directory quota and pages used by inferior directories. For more information on directory quota see the Multics Programmer's Reference Manual, Order No. AG91. ARGUMENTS paths are the names of the directories for which directory quota information is desired. If one of the paths is -wd or -wdir, the working directory is used. If no paths are given, the working directory is assumed. The star convention can be used to obtain directory quota information about several directories. CONTROL ARGUMENTS -long -lg specifies that the long form of output is to be used. This control argument may appear anywhere on the command line. NOTES The short form of output (the default case) prints the number of pages of directory quota assigned to the directory and the number of pages used by the directories contained in that directory and any other inferior directories that are charging against that quota. The output is prepared in tabular format, with a total, when more than one pathname is specified. When only one pathname is specified, a single line of output is printed. The long form of output gives the directory quota and records-used information provided in the short output. In addition, it prints information about the number of immediately inferior directories with nonzero quotas. It also shows the time-record product in units of record-days, along with the date that this number was last updated. Thus, a user can see what secondary storage charges his accounts are accumulating. If the user has inferior directories with nonzero quotas, he has to print this product for all these directories in order to obtain the charge. 10-16 AK51-o2 install install Name: install SYNTAX AS A COMMAND install path {-control_args} FUNCTION requests installation of a system control table. The request is transmitted to the system control process which validates the request and performs the installation. A message from the system control process indicates successful installation or rejection of the table. A project administrator can install a PDT only; a system administrator can also install a number of additional tables. ARGUMENTS path is the relative or absolute pathname of the PDT to be installed. The PDT must have previously been produced by the cv_pmf command. The pdt suffix must be given. CONTROL ARGUMENTS -all, -a installs all attributes. -attributes. -attr installs only nonsecurity related attributes. argumen ts are specified. This is the default if no control -authorization, -auth installs only security related attributes. NOTES The install command reports PDT parameters that exceed limits specified for the project in the SAT, but it allows the PDT to be installed. If the SAT limits are not subsequently raised, they are enforced at login time and a message to that effect is logged. This is done for the initial ring, max ring, grace time, and pdir quota parameters. 10-17 AK51-o2 install install EXAMPLES install alpha.pdt -auth installs the security related attributes in the PDT named alpha.pdt found in the project administrator's working directory. instali >udd>Demo>demo.pdt installs the PDT named demo.pdt found in the Demo project directory. A message of the following form is sent to the project administrator when the installation has been completed: From I nit i ali z e r • Sy s Da erno n • z ( ins tall) 132 1 • 0 : installed Demo.pdt for Jones.Demo.a. 10-18 AK51-02 Name: list_mdir, lmd SYNTAX AS A COMMAND lmd volume names {-control_args} FUNCTION prints logical volume and master directory quotas. ARGUMENTS volume_names are the names of the logical volumes. CONTROL ARGUMENTS -account User_ids specifies a list of quota account names for which information is desired, where each User_id is of the form Person_id.Project_id. Asterisks (*) may not be used when specifying quota account names. Asterisks in account names only match quota account names that contain asterisks. -all, -a prints information about all users of the logical volume. -brief, -bf suppresses header and shortens the lines. -directory, -dr prints only master directory information. -long, -lg prints additional information, including the quota account for each directory. -owner User_ids specifies a list of directory owners for which information is desired, where each User_id is of the form Person_id.Project_id. (An asterisk (*) can be used when specifying either component of an owner name.) If this control argument is omitted, information is printed only for directories owned by the user issuing the command. -quota prints only quota information. (See "Examples" below.) ACCESS REQUIRED The user must have "e" access to the logical volume to use the -owner, -account, and -all control arguments. 10-19 AK51-o2 NOTES If neither the -quota nor the -directory control argument is specified. information about both quotas and directories is printed. It is not necessary that the logical volume be mounted to use this command. If the -all control argument is specified. the -owner and -account control arguments cannot be given. If both the -owner and -account control arguments are specified. information is printed only for directories that match both conditions. EXAMPLES In the example below. the user with Person_id Jones on the Fed project requests information on the logical volume named work. The system responds with information about Jones' master directories. In this example and the examples that follow, an exclamation point indicates lines typed by the user. lmd work QUOTA PATHNAME 100 250 350 >udd>Fed>Jones>sub >udd>Fed>Jones>subl>sub2 records of quota assigned, 500 available. In the example below, Jones requests brief information on the logical volume named work. The system responds with information about Jones' master directories. lmd work -bf >udd>Fed>Jones>sub >udd>Fed>Jones>subl>sub2 Quota=500, used=350. In the example below. Jones requests brief, quota information about the logical volume named work. lmd work -quota -bf Quota=500, used=350. In the example below. Jones requests information about all users of the logical volume named work. The use of the -all control argument requires "e" access on the 'logical volume. 10-20 AK51-02 lmd work -all OWNER Jones.Fed Jones. Fed Sm i th. Fed ACCOUNT Smi th. Fed ~':. Fed QUOTA 100 250 900 PATHNAME >udd>Fed>Jones>sub >udd>Fed>Jones>subl>sub2 >udd>Fed>Smith>work USED 900 350 VOLUME QUOTA 1000 500 Total volume quota: 1500 Total quota used: 1250 10-21 AK.51-o2 SYNTAX AS A COMMAND FUNCTION prints the current status of the system load control groups. It does this by printing selected items from the system copy of the master group table (MGT). ARGUMENTS group if specified, prints only the header and the line for the group named; otherwise, prints one line for each group in the MGT. Each line gives the maximum number of primary load units, the current number of primary load units, the current number of secondary load units, and, if the group has an absolute maximum, the total and maximum number of units. Also, the group's current load, as a percent of the total allowable system load, is given. CONTROL ARGUMENTS -long, -lg requests a long format header. -total, -tt requests that only a header be printed. NOTES If the priority scheduler is enabled, then each line gives, in addition, the interactive and absentee work class of the group, and the header contains two additional lines giving the defined work classes and their percents, for the current shift 10-22 AK51-02 Name: make_commands SYNTAX AS A COMMAND FUNCTION creates a Limited Service Subsystem (LSS) control segment from an ASCII input segment. The control segment is referenced by the Limited Service System (LSS) when it is limiting the commands and percentage of CPU time of a user (see also the enter_Iss command). The input segment consists of a series of statements. Each statement is composed of two parts. The first part is the name of the command to be transformed; i.e., the command that is to be typed by the user in a limited system. If there is more than one name for the command. they should all be enclosed in parentheses and separated from each other by one or more blanks. The name field is terminated by a colon preceded by any number of blanks. The second part of each statement is the pathname (which may be a relative pathname) of the command to be executed when the user types one of the names in the first part. If a relative pathname is used, it is relative to the current working directory. If only an entryname is given, the standard system search rules are applied. It is followed by any number of blanks and terminated by a semicolon. If the pathname is omitted (semicolon still required), it is assumed to be the same as the last name in the name field. The first and second parts of each statement may be separated from each other by any number of blanks or tabs. Newlines are ignored and are allowed anywhere. Comments enclosed between "/*" and "* /" are allowed and are treated as blanks. If the first two statements have as their first part the names "ratio" and "interval", respectively, the second parts of the two statements are assumed to be decimal integers to be assigned to the ratio and interval_length variables of the LSS control segment. Otherwise, the two variables are set to zero. The ratio and interval variables control the amount of CPU time used by the process. The LSS forces the process to use no more than (interval/ratio) virtual CPU seconds in each (interval) real second(s) (see "Examples" below). If it attempts to do so, the process is rendered inactive for the remainder of the interval. ARGUMENTS path_name is the pathname of an ASCII input segment that has the name path_name.ct. (The .ct suffix is assumed if it is not included.) The output segment has the same entryname as the input segment with the .ct suffix removed, and is placed in the working directory. 10-23 AK51-02 make_commands make_commands EXAMPLES A project administrator wants to create a limited command environment for a project consisting of student users. The first step is to create the segment >udd>Students>student_commands.ct. with the following contents: /* set the ratio and interval */ ratio: 60; interval: 120; /* define the commands */ (list ls): logout: edit: bsys; start: hold: (pr print): >abc>special$list; Then. to convert this segment to an LSS control segment. type: make_commands student_commands.ct The command then creates an output segment named student_commands, which can be put to use with the enter_Iss command. In the above example. the ratio is set to 60, and the interval is set to 120, indicating that no more than 2 virtual CPU seconds are allowed per 120 real seconds. NOTES See the enter_Iss command for additional information. 10-24 AK51-o2 SYNTAX AS A COMMAND {pathN quota_changeN} FUNCTION allows a user to move records of directory quota between two directories, one immediately inferior to the other. ARGUMENTS pathi is the pathname of a directory. The quota change takes place between this directory and its containing directory. A pathi of -wd or -wdir specifies the working directory. The star convention cannot be used. quota_changei is the number of records to be subtracted from the contalnmg directory's directory quota and added to the directory quota on pathi. If this number is negative, records are added to the containing directory's directory quota and subtracted from the directory quota on pathi. ACCESS REQUIRED The user must have modify permission on both the directory specified by pathi and its containing directory. NOTES After the change, the directory quota must be greater than or equal to the number of records used by directories in pathi unless the change would make the quota zero. If the change would make the directory quota on pathi zero, there must be no immediately inferior directory with nonzero quota. When the directory quota is changed to zero, the records used and the time-record product for pathi is reflected up to the superior directory. EXAMPLES move_dir_quota >udd>Demo>Smith>l dir 1000 >udd>Demo>Smirh>1_dir>2_dir -50 adds 1000 records to the directory quota on >udd> Demo>Smith> l_dir and tracts 1000 records from the directory quota on >udd>Demo>Smith. It then tracts 50 records from the directory quota on >udd>Demo>Smith>1_dir>2_dir and adds 50 records to the directory quota on >udd>Demo>Smith> l_dir. 10-25 AK51-o2 Name: print_pdt SYNTAX AS A COMMAND print_pdt path {Person_ids} {-control_args} FUNCTION The print_pdt command prints a listing of a project definition table (PDT). ARGUMENTS path is the pathname of the PDT segment to be printed. If the pdt suffix is not given, it is assumed. If the pathname given does not start with a greater-than or less-than character, it is interpreted as a project name and the PDT in the directory containing PDTs (>scl>pdt) is used. Person_ids are the Person_ids about whom information is desired. If this argument is omitted, information is printed for all users listed in the PDT. CONTROL ARGUMENTS -brief. -bf prints small amount of information about each user. -long. -lg prints all data items in the PDT. -no_header, -nhe suppresses printing of the header. -pmf prints the PDT in project master file (PMF) format. The file_output command (described in the Multics Commands and Active Functions manual, Order No. AG92) can be used to place the printed PDT in a segment for daemon printing or for subsequent use as a PMF (see "Notes" below). 10-26 AK51-02 NOTES If no control arguments are given with this command, all PMF-specifiable attributes and the total amount spent are printed. The user m-US-t- have read access to the PDT; usually only project administrators have such access. The following command line is recommended to make a PMF from a PDT: fo Project_id;print_pdt Project_id -pmf;ro See also the proj_usage_report command to get a brief summary of each user's resource consumption and the display_account_status command to obtain the charges accrued to the account. 10-27 AK51-o2 Name: proLusage_report, pur SYNTAX AS A COMMAND pur {Project_id} {-control_args} FUNCTION prints a project usage report for the current billing period. ARGUMENTS Project_id is the Project_id of the project. If this argument is not given, the project under which the project administrator is currently logged in is assumed. CONTROL ARGUMENTS -brief, -bf prin ts reports in one short line per user. -long, -lg prints detailed information about per shift, per absentee, per device, and I/O daemon queue usage. -no_header, -nhe suppresses printing of the header. -pathname path, -pn path is the pathname of a PDT. The pdt suffix must be given. This control argument is used to print a PDT not currently being used by the answering service. If this control argument is specified, the Project_id argument may not be given. -reverse, -rev reverses the order of the sort. -sort XX sorts output according to XX. where XX can be the string: name usage rem 1 imit fraction_used to specify users' names, usage, remainder, limits, or entries in order of ratio between usage and limit. Only one string may be specified. The default prints the PDT as is. 10-28 AK51-o2 -total, -tt does not print a line for each lL..~r; rather prints a totals line (plus any other lines specified by other arguments). -user Person~id prints information on only the user specified by Person_id. ACCESS REQUIRED The user must have read access on the PDT; usually only project administrators have such access. NOTES If neither the -brief nor -long control argument is given, the report printed contains one detail summary line for each user. See also the print_pdt command to get more detailed information about each user and the dispiay_account_status command to obtain a summary of the charges accrued to the project. 10-29 AK.51-o2 reconnect_ec_disable SYNTAX AS A COMMAND FUNCTION suppresses any attempt to find or invoke the reconnect.ec segment upon reconnection to a disconnected process. NOTES The reconnect_ec_disable command reverses the effect of the reconnect_ec_enable command. which is the default setting when the standard process overseer procedure process_overseer_ is used. See Section 7 of the MAM -- Project Administrator Manual. Order No. AK51 for a discussion of process overseers and their use. 10-30 AK.51-02 reconnect_ec_enable SYNTAX AS A COMMAND FUNCTION invokes a search for the reconnect.ec segment upon reconnection to a disconnected process. The search begins in the home directory, continues through the project directory, and then through >sc1 until the segment is located, at which time the command "exec_com >DIRECfORY_NAME>reconnect.ec" is executed. NOTES The reconnect_ec_enable command reverses the effect of the reconnect_ec_disable command. Use of reconnect.ec is enabled automatically by the standard process overseer procedure process_overseer_. Invocation of reconnect.ec is not automatically enabled by the project_start_up_ process overseer (see Section 7 of the MAM -- Project Administrator Manual, Order No. AK51). Thus, when using project_start_up_, the project administrator may enable invocation of reconnect.ec at any point in the project_start_up.ec. The current command processor is used to execute the command. Thus, if the user is using the abbrev command processor, any applicable abbreviation will be executed. 10-31 AK51-02 Name: set_mdir_account, smda SYNTAX AS A COMMAND smda path {User_id} FUNCTION sets the quota account of a master directory. (See the Multics Programmer's Reference Manual, Order No. AG91 for an explanation of master directories.) ARGUMENTS path is the pathname of the master directory whose quota account is to be changed. User_id is the name of the new quota account of the master directory, specified as Person_id.Project_id. If omitted, the -Person_id and Project_id of the user issuing the command are used. ACCESS REQUIRED The user must have "e" access on the logical volume containing the master directory. The volume need not be mounted. NOTES The quota for the master directory is returned to the old quota account and is withdrawn from the new quota account The new quota account must have sufficient quota to allow this. 10-32 AK51-o2 set_mdir_owner SYNTAX AS A COMMAND smdo path {User_id} FUNCTION sets the owner of a master directory. (See the Multics Programmer's Reference Manual, Order No. AG91 for an explanation of master directories.) ARGUMENTS path is the pa thname of the master directory to be changed. User_id is the Person_id.Project_id of the new owner of the master directory. If omitted, the Person_id and Project_id of the user issuing the command are used. ACCESS REQUIRED The user must have "e" access on the logical volume containing the master directory. The volume need not be mounted. 10-33 AK51-o2 Name: set_mdir_quota, smdq SYNTAX AS A COMMAND smdq path 1 change 1 .•• {pathN changeN} FUNCTION sets the quota on a master directory. ARGUMENTS pathi is the pathname of a master directory whose quota is to be changed. changei is the amount of quota, or amount of quota change. and can be specified as follows: +n -n n add n records of quota to pathi subtract n records of quota from pathi set the quota on pathi to n records ACCESS REQUIRED The user must have modify permIssIon on the master directory, and must be the owner of the master directory, be a volume administrator. or have the same quota accoun t as the master directory. NOTES If the quota is being increased. the master directory's quota account must have sufficient volume quota to satisfy the request The quota of a master directory can never be zero, and it can never be set less than the current number of records being charged against the master directory. 10-34 AK.51-02 SYNTAX AS A COMMAND svq logical_volume change {account} FUNCTION sets a quota account's volume quota on a logical volume. This command is to be used by volume administrators. ARGUMENTS logical_volume is the name of the logical volume for which quota is to be set. change is the amount of quota, or the amount of quota change, and can be specified as follows: +n -n n add n records to the quota subtract n records from the quota set the quota to n records account is the Person_id.Project_id of the user with a quota account for the logical volume. If omitted, the Person_id and Project_id of the user issuing the command are used. ACCESS REQUIRED To use this command. the user must have "e" access to the logical volume. It is not necessary that the volume be mounted. NOTES If the volume quota is set less than the quota account's current quota used, the quota is changed as directed, but a warning message is printed. 10-35 AK51-o2 sweep sweep Name: sweep SYNTAX AS A COMMAND sweep {path} {-control_args} FUNCTION obtains the disk usage figures for the hierarchy, or any specified subtree, and places them in a segment for subsequent use by accounting and disk usage analysis tools. By default, the segment is named disk_stat It is not an ASCII segment, and the disk_stat_print command must be used to print its contents. ARGUMENTS path is the pathname of the directory at which the sweep is to start. The usage figures for this directory, and for the entire subtree beneath it are recorded. If path is omitted, the sweep begins at the root directory. See "Notes" below. CONTROL ARGUMENTS -brief. -bf does not print an error message when unable to force access to a directory to read its usage figures. This is the default. -long, -1g prints an error message if unable to force access to a directory. -output_file XX, -of XX places the output in the specified segment XX rather than in the default segment. named disk_stat. in the working directory. -pdd do not exlude >pdd from the sweep. By default. a sweep that starts at the root deliberately omits >pdd. This argument is not used in the accounting application of this program, but it may be used during an analysis of disk space usage, when complete and accurate total page usage figures are desired. The initializer process must first be used to give sma access to >pdd to the process that win run the sweep. NOTES The figures recorded in disk_stat are the quota, records used, and time-record product (trp). These figures are recorded separately for segment pages and directory pages. 10-36 AKS1-o2 sweep sweep Since directories with zero quotas have their record usage and trp figures included in those of the first superior directory with nonzero quota, it is not necessary fOT sweep to walk the entire hierarchy. Instead, whenever it encounters a directory with a zero quota, it goes no further down in that particular branch, but instead goes on to the next directory at the same level. This applies separately to· segment and directory quotas. Therefore. any directory whose usage figures are to be recorded separately for purposes of accounting or disk usage analysis must be given nonzero segment and directory quotas. It is recommended that at least all directories immediately inferior to the root and all project directories under >udd be given nonzero segment and directory quotas. Project administrators may use this command to obtain detailed information about the disk usage of a project's users by executing sweep with the project directory pathname as the first argument. This is possible, however, only if the users' home directories have nonzero quotas. EXAMPLES sweep >udd>Alpha -output_file Alpha.disk_stat -long places disk usage information for the Alpha project directory and all directories beneath it with quotas in the segment Alpha. disk_stat, and prints an error message if unable to force access to any directory. Alpha.disk_stat can then be printed using the disk_stat_print command. 10-37 AK51-o2 SYNTAX AS A COMMAND FUNCTION prints certain information from the tc_data segment about each work class currently defined. CONTROL ARGUMENTS -reset, -rs resets the metering interval for the invoking process so that the interval begins at the last call with -reset specified. If -reset has never been given in a process, it is equivalent to having been specified at system initialization time. -report_reset, -rr generates a full report and then performs the reset operation. NOTES If the work_class meters command is given with no control argument, it prints a full report. When the scheduler is operating in percent mode, percentages are computed against two different base CPU quantItIes. It is necessary to understand the differences between these quantities in order to interpret the output of work_class_meters. One base quantity is the total system CPU time. This is simply the total realtime all CPUs have been active doing anything (including running an idle process). In any interval of time when there was no reconfiguration of CPUs, the total system CPU time is the product of the length of the interval and the number of CPUs. Another base quantity is nonidle CPU time. This is the total CPU time expended by all CPUs except when running an idle process. It is given by the total system CPU time minus the sum of all idle time reported by total_time_meters (MP Idle, Non-MP Idle, and Zero Idle). 10-38 AK51-o2 When the scheduler is operating in percent mode, it distributes CPU resources among contendL.'1g work. classes according to their guaranteed percentages. These percentages are percentages of total nonidle CPU time. So, if there are two work classes. each with a guarantee of 50 percent. and the system is 50 percent idle, each work class gets -25 percent of total system CPU time (assuming- that there is enough demand for this to be possible). In this example, each work class is getting 50 percent of the non idle CPU time, but only 25 percent of the total system CPU time. Another way of viewing this is that the guaranteed percentages define a relationship among work classes according to the ratio of percentages. That is, a work class with a guaranteed percentage of 10 percent gets about half as much CPU time as a work class with a guaranteed percentage of 20 percent, assuming sufficient demand by both. Further, this ratio is independent of the system load. The system administrator can limit the CPU resources consumed by a work class to a fixed percentage of the total system CPU time. The scheduler enforces this limitation. even at the expense of going idle. That is. a work class with a maximum percentage of 10 percent gets no more than 10 percent of the total CPU time in any interval. regardless of load. Excess CPU time is distributed among work classes with no maximum percentage. according to their guaranteed percentages. If this cannot be done, the excess CPU time becomes idle time. At any time one or more work classes may be a realtime work class with specified response time and quanta. A process in such a work class is low priority until its deadline arrives. at which time it is made eligible regardless of any other constraints. The remainder of the work classes are scheduled either by percentage of CPU time (percentage mode) or by soft deadlines (deadline mode). The following parameters are always displayed for each work class. we is the number of the work class. %GUAR is the percentage of nonidle CPU time guaranteed to the work class if the scheduler is being operated in percent mode and if there is sufficient demand by the work class for this to be possible. %MAX is the maximum percentage of total CPU time allowed by the system administrator to be consumed by this work class. This field is blank if the work class has no limitation on CPU consumption. %TCPU is the ~rcentage of total CPU time actually received by this work class in the metering interval. V /ELIG is the average amount of CPU time used per eligibility quantum. PW is the pin weight, or number of free laps for pages brought into memory. 10-39 AK51-o2 The following parameters are always displayed for realtime work classes, and are displayed for other work classes only if the scheduler is operating in deadline mode. lRESP is the response time (in seconds) specified for the work class after an interaction. IQUANT is the initial quantum (in seconds) for the work class after an interaction. RESP is the specified delay (in seconds) between subsequent quanta. QUANT is the value (in seconds) of subsequent quanta. The following parameters are displayed when the scheduler is operating in either deadline or percentage mode. p if printed, members of the work class are post purged. M is the max_eligible limit per work class. A zero means the work class has no particular limit. R if printed. the members of the work class are scheduled in realtime mode. They are made eligible at or before their deadlines. LeG are the load control groups that are placed in the work class. If the LCG name is parenthesized, only the absentee processes in the LCG are placed in the work class. 10-40 AK51-o2 EXAMPLES The following is an example of the information printed when the work_class_meters command is invoked with no control argument The scheduler is operating in percentage mode. Total metering time WC %GUAR %MAX 0 1 2 3 4 5 6 0:35:59 %TCP V!ELIG PW IRESP I QUANT RESP QUANT 3. 0.63 0.00 0.00 0.34 0.00 0.00 0.00 1 19 0.00 3 0 0 0 0 0 0 0.26 2.10 0.26 2.10 1• o. o. 31 • 5. 5. o. o. o. 8 9 10 5. 5. 14. 5. 10. 11 5. o. 12 10. O. 7 16 10. o. 20. 13. e 9. o. 18 6. 0.43 0.00 0.00 0.00 o. 0·30 0.10 0.30 0.10 0.00 0.50 2.00 1 .00 0.05 0.05 0.05 0.05 0 a LCG R Init Cl C2 P P P P P P P P P P P 0 R 10 p R P 0 p 0 0 0 0 0 P M R 0 0 0 0 0 0 0 0 0 0 0 0 SysProg Other R Admin Absl Abs234 System TCPU percents (%GUAR) control non-realtime work_classes. 10-41 AK51-o2 APPENDIX A SAMPLE FORMS The three forms included in this appendix are samples of forms that have been used at various Multics sites. They are: Preject Registration Form Initial List of Users Form Person Registration Form Persons requesting registration of new projects on Multics may be required to fill out forms similar to these. A-I AK5I-02 PROJECT REGISTRATION FOR MULTICS SYSTEM Project Title ______________________________________________________________ Principal Investigator Address ------------------------------------------------------ Project Supervisor Address ____________ ~ ________________________________________ Phone Each project is assigned a Project_id (1-9 characters long. beginning with a capital letter) for identification and access control purposes. Please suggest a Project_id for your project: Initial disk quota _______________________________________ records (default 25) Acct No. Requisition or P.O. If you wish to administer your project online. please supply the following information: Directory for PMF Project Administrator (Person_id.Project_id) Project_id assigned ----------------------------Date -----------------------By A-2 AK51-o2 INITIAL LIST OF USERS ON NEW PROJECT Please give the full name of all users to be registered on your project If these users are already regis~red on the Multics system. give their assigned Person_ids. List of Users Last First Middle Last First Middle Last First Middle Last First Middle Last First Middle Last First Middle Last First Middle Last First Middle A-3 Person id AK51-o2 PERSON REGISTRATION FOR MULTICS SYSTEM This form is only needed for people who have never been registered on Multics before. Name ________________________________~------------------------------------Last First Middle Mailing address Telephone _____________________________ (if any) Programmer number Each person registered on the Multics system is assigned a "Person_id" (1-22 characters long), which is unique at this installation. The Person_id is usually the last name (beginning with a capital letter) if possible; if someone else with the same name is already registered, the Person_id will be the last name with initials prefixed (e.g., Smith, JSmith, JRSmith). Default Project_id Registered persons must also be authorized to use a particular project by the project administra tor for the projec t. Please attach a slip of paper with a personal password. The password may be 1-8 characters long (letters and digits only). You may change your default Project_id or your password online any time you wish; consul t the login command description in the MPM Commands. Please return this form to: (Supply appropriate accounting address) If you have any problems with your registration. please contact (Supply appropriate accounting phone number). Person_id assigned _________________________________ Date _______________________ By A-4 AK51-02 INDEX command descriptions (cont) set_mdir_quota, smdq 10-34 set_volume_quota, svq 10-35 sweep 10-36 A anonymous user registration 4-3 cv_pmf command attributes 10-7 3-3 o c delegated project command descriptions 10-1 as_who 10-3 cv_pmf 10-7 delete_volume_quota 10-9 disk_stat_print 10-10 display_account_status, das 10-12 enter_lss 10-15 get_dir_quota 10-16 ins ta 1 1 10-17 list_mdir, lmd 10-19 load ctl status 10-22 make_commands 10-23 move_dir_quota 10-25 print_pdt lU-~b proj_usage_report, pur 10-28 reconnect_ec_disable 10-30 reconnect_ec_enable 10-31 set_mdir_account, smda 10-32 set_mdir_owner, smdo 10-33 1-2 directory structure and data bases 2-1 project directory 2-1 system control directory 2-1 E enter lss 10-15 see Limited Service Subsystem G global keyword glossary i -1 3-1 1-2 AK51-02 4-3 new user registration introduction 1-1 P PDT see project difinition table L Limited Service Subsystem 1-3, 7-4 PMF see project master file see enter_lss see make_commands process_overseer_ load control and preemption 7-2 project administration }-1 6-1 load control group work class 6-2 logical volume quota manipulation 8-1 logical volume 8-1 logical volume quota 6-1 project difinition table (PDT) 10-7 project master file 3-1 format 3-1 keywords 3-2 default values 3-9 login and load control 3-2 special environment 3-8 spending limit 3-6 SAT 1 imi ts 3-11 modifying a project master fi le 3-14 sample project master file 3-12 8-1 LSS see Limited Service Subsystem M make_commands 10-23 see Limited Service Subsystem project master file (PMF) 10-7 master directory creation and deletion 9-1 project termination 4-5 project_start_up_ 7-2 attributes and exceptions 7-3 contents of a project_start_up exec_com 7-4 creating a project_start_up exec com 7-3 debugging 7-4 execution environment 7-4 N new project registration 4-1 disk usage 4-1 funding 4-1 list of users 4-2 project registration form 4-2 i-2 AK51-02 work_class_meters (wcm) command 10-38 R resource control 5-1 quota limits 5-3 resource limits 5-1 checking limits 5-2 project resource usage reporting 5-2 user resource usage reporting 5-2 S sample forms A-I start_up exec_corns 7-5 project_start_up_ 7-2 system administration 1-1 T tailoring the user environment 7-1 Limited Service Subsystem 7-4 process overseers Rings 7-6 subsystems 7-5 7-2 u undelegated project user deletion 1-2 4-4 w work class work_class_meters 10-38 i-3 AK51-02 I I I I HONEYWELL INFORMATION SYSTEMS Technical Publications Remarks Form ,., ORDER TITLE w ~~------------~ Z DATED ....J t:J Z o ....J No.1 AK51-02 MULTICS PROJECT ADMINISTRATOR'S MANUAL I FEBRUARY 1985 ERRORS IN PUBLICATION Z o ...J « ~ ::::> u I·~ PLEASE FOLD AND TAPENOTE: U. S. Postal Service will not deliver stapled forms I ::J I l.:> I Z ...... 0 JI....J « o ...J 111111 o NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES U. BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 39531 WALTHAM. MA02154 POSTAGE WILL BE PAID BY ADDRESSEE HONEYWELL INFORMATION SYSTEMS 200 SMITH STREET WALTHAM, MA 02154 ATTN: PUBLICATIONS, MS486 ( I I I I I I I I I I• UJ Z ...J l.:> Z ~o Honeywell I ~ ! 0 I 0 I u. ! I. I I I 1,I I I I I I I I "I -':1 I I I I I I Together, we can find the answers. Honeywell II C! A ~~OnneX~~~IJ!"f?}~~~~t6i~~~~~~mte~~ "".SA c.. ""to V."".rl •. V \JIIIILI. ~L., IVI"", ,VVCULlICl II, IVII"'\ U'::'I Cot Canada: 155 Gordon Baker Rd., Willowdale, ON M2H 3N7 U.K.: Great West Rd., Brentford, Middlesex TW8 90:: Italy: 32 Via Pirelli, 20124 Milano Mexico: Avenida Nuevo Leon 250, Mexico 11, D.F. Japan: 2-2 Kanda Jimbo-cho, Chiyoda-ku, Tokyo Australia: 124 Walker St., North Sydney, N.S.W. 2060 S.E. Asia: Mandarin Plaza, Tsimshatsui East, H.K. 42807, 2.5C585, Printed in U.S.A. AK51-02
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Producer : Adobe Acrobat 9.55 Paper Capture Plug-in Modify Date : 2014:11:12 20:46:22-08:00 Create Date : 2014:11:12 20:46:22-08:00 Metadata Date : 2014:11:12 20:46:22-08:00 Format : application/pdf Document ID : uuid:e26d0e4c-5fbd-1348-b762-5a4d94ecd61c Instance ID : uuid:87a6cd71-616f-3240-bee5-4cba60ef3ef2 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 97EXIF Metadata provided by EXIF.tools