MULTICS DESIGN DOCUMENT                                   MDD-003


To:       MDD Distribution

From:     W. Olin Sibert

Date:     July 1, 1975

Subject:  Overview of the Multics TCB


Abstract:

Overview of the Multics Virtual  Memory System, Metering, and the
Supervisor.


Revisions:

         REVISION  DATE           AUTHOR
         initial   85-07-01       W. Olin Sibert



























_________________________________________________________________

Multics Design Documents are  the official design descriptions of
the Multics Trusted Computing Base.  They are internal documents,
which may be released outside  of Multics System Development only
with the approval of the Director.


                                i
MDD-003                               Overview of the Multics TCB



                             CONTENTS
                                                             Page

     Topic I       Multics Design Philosophy . . . . . . . . .  1-1
                       Major Design Goals . . . . . . . . . . . 1-1
                       Virtual Memory Organization . . . . . .  1-3
                       Selective, Controlled Sharing . . . . .  1-5
                       Security. . . . . . . . . . . . . . . .. 1-6
                       Open-Ended, Modular System. . . . . . .  1-10
                       Decentralized Administration. . . . . .  1-11
                       Flexible User Interfaces.. . . . . . . . 1-13
                       Continuous Operation.. . . . . . . . . . 1-14
                       Reliable File System.. . . . . . . . . . 1-15
                       Remote Access .. . . . . . . . . . . . . 1-16
                       Efficient Service to Large/Small Users . 1-17

     Topic II      Overview of the Operating System.. . . . . . 2-1
                       Structure of the Operating System .. . . 2-1
                       What is the Multics Supervisor.. . . . . 2-3
                       The Major Supervisor Subsystems .. . . . 2-5
                       Name Space/Address Space Management .. . 2-9
                       Directory Control .. . . . . . . . . . . 2-13
                       Volume Management .. . . . . . . . . . . 2-15
                       Segment Control .. . . . . . . . . . . . 2-19
                       Page Control.. . . . . . . . . . . . . . 2-21
                       Traffic Control .. . . . . . . . . . . . 2-27
                       Fault and Interrupt Handling.. . . . . . 2-28
                       System Initialization .. . . . . . . . . 2-31
                       File System Salvagers .. . . . . . . . . 2-34
                       Metering & Tuning .. . . . . . . . . . . 2-37
                       Initializer.SysDaemon .. . . . . . . . . 2-39

     Topic III     The Multics Environment .. . . . . . . . . . 3-1
                       What is a Process .. . . . . . . . . . . 3-1
                       Cooperating Processes .. . . . . . . . . 3-4
                       The PL/I Operators.. . . . . . . . . . . 3-7
                       Interfaces to System Modules.. . . . . . 3-9
                       Deadlock Prevention .. . . . . . . . . . 3-10
                       Types of Locks.. . . . . . . . . . . . . 3-16

     Topic IV      Name Space and Address Space Management .. . 4-1
                       Name/Address Space Overview .. . . . . . 4-1
                       Name/Address Space Terminology.. . . . . 4-5
                       Name/Address Space Concepts .. . . . . . 4-7
                       Name/Address Space Data Bases .. . . . . 4-12
                           Reference Name Table (RNT).. . . . . 4-12
                           Known Segment Table (KST) .. . . . . 4-13
                           Descriptor Segment (DSEG) .. . . . . 4-14





                                ii                        MDD-003
Overview of the Multics TCB                               MDD-003


                       Typical Address Space .. . . . . . . . . 4-16
                       Name/Address Space Meters .. . . . . . . 4-32
                           system_link_meters.. . . . . . . . . 4-32
                           link_meters .. . . . . . . . . . . . 4-33
                       Name/Address Space Commands .. . . . . . 4-34
                           display_kst_entry .. . . . . . . . . 4-34

     Topic V       Directory Control .. . . . . . . . . . . . . 5-1
                       Directory Control Overview.. . . . . . . 5-1
                       Directory Control Terminology .. . . . . 5-3
                       Directory Control Data Bases.. . . . . . 5-6
                           Directory Segments.. . . . . . . . . 5-6
                           Directory Header.. . . . . . . . . . 5-9
                           Directory Entries .. . . . . . . . . 5-12
                       Directory Control Commands.. . . . . . . 5-16
                           display_branch.. . . . . . . . . . . 5-16

     Topic VI      Volume Management .. . . . . . . . . . . . . 6-1
                       Volume Management Overview.. . . . . . . 6-1
                       The New Storage System.. . . . . . . . . 6-4
                       Volume Management Terminology .. . . . . 6-13
                       Volume Management Data Bases.. . . . . . 6-16
                           Volume Label.. . . . . . . . . . . . 6-16
                           Volume Map.. . . . . . . . . . . . . 6-20
                           Dumper Bit Map.. . . . . . . . . . . 6-23
                           VTOC Map.. . . . . . . . . . . . . . 6-25
                           Physical Volume Table (PVT) .. . . . 6-26
                           Logical Volume Table (LVT).. . . . . 6-29
                           Physical Volume Hold Table.. . . . . 6-32
                       Volume Management Operations.. . . . . . 6-34
                           Acceptance of Physical Volumes.. . . 6-35
                           Demounting of Physical Volumes.. . . 6-37
                           Logical Volume Management .. . . . . 6-39
                       Volume Management Commands.. . . . . . . 6-40
                           print_configuration_deck.. . . . . . 6-40
                           list_vols .. . . . . . . . . . . . . 6-42
                           display_label .. . . . . . . . . . . 6-44
                           display_pvte.. . . . . . . . . . . . 6-46
                       Volume Management Meters.. . . . . . . . 6-48
                           disk_meters .. . . . . . . . . . . . 6-48
                           device_meters .. . . . . . . . . . . 6-49
                           disk_queue.. . . . . . . . . . . . . 6-50

     Topic VII     Segment Control .. . . . . . . . . . . . . . 7-1
                       Segment Control Overview.. . . . . . . . 7-1
                       Segment Control Terminology .. . . . . . 7-4
                       Segment Control Data Bases.. . . . . . . 7-5
                           Volume Table of Contents (VTOC) .. . 7-5
                           Active Segment Table (AST).. . . . . 7-11





                               iii                        MDD-003
MDD-003                               Overview of the Multics TCB


                       Services of Segment Control .. . . . . . 7-25
                           Creating Segments .. . . . . . . . . 7-25
                           Segment Fault .. . . . . . . . . . . 7-28
                           Segment Activation.. . . . . . . . . 7-29
                           Segment Trailers.. . . . . . . . . . 7-30
                           Boundsfault Handling.. . . . . . . . 7-32
                           Segment Deactivation.. . . . . . . . 7-35
                           Summary of Major Services .. . . . . 7-37
                           Encacheability.. . . . . . . . . . . 7-38
                           Truncating Segments .. . . . . . . . 7-38
                           Deleting Segments .. . . . . . . . . 7-40
                           Other Services.. . . . . . . . . . . 7-42
                       Segment Control Meters.. . . . . . . . . 7-44
                           file_system_meters.. . . . . . . . . 7-44
                           vtoc_buffer_meters.. . . . . . . . . 7-46
                       Segment Control Commands.. . . . . . . . 7-47
                           print_aste_ptp.. . . . . . . . . . . 7-47
                           dump_vtoce.. . . . . . . . . . . . . 7-48

     Topic VIII    Page Control.. . . . . . . . . . . . . . . . 8-1
                       Page Control Overview .. . . . . . . . . 8-1
                       Page Control Terminology.. . . . . . . . 8-5
                       Page Control Data Bases .. . . . . . . . 8-6
                           Page Tables .. . . . . . . . . . . . 8-6
                           Core Map.. . . . . . . . . . . . . . 8-9
                           System Segment Table (SST) Header .. 8-11
                           Other Data Bases.. . . . . . . . . . 8-13
                       Services of Page Control.. . . . . . . . 8-15
                           Page Fault Handling .. . . . . . . . 8-15
                           Post Purging.. . . . . . . . . . . . 8-27
                       Page Control Meters .. . . . . . . . . . 8-28
                           file_system_meters.. . . . . . . . . 8-28

     Topic IX      Traffic Control .. . . . . . . . . . . . . . 9-1
                       Traffic Control Overview.. . . . . . . . 9-1
                       Traffic Control Terminology .. . . . . . 9-3
                       Traffic Control Data Bases.. . . . . . . 9-5
                           tc_data .. . . . . . . . . . . . . . 9-5
                       Services of Traffic Control .. . . . . . 9-8
                           Wait Locks.. . . . . . . . . . . . . 9-8
                           Processor Multiplexing.. . . . . . . 9-9
                       Traffic Control Meters.. . . . . . . . . 9-18
                           total_time_meters .. . . . . . . . . 9-18
                           traffic_control_meters.. . . . . . . 9-19
                           traffic_control_queue .. . . . . . . 9-21
                           work_class_meters .. . . . . . . . . 9-23
                           respons_meters.. . . . . . . . . . . 9-24
                           post_purge_meters .. . . . . . . . . 9-26






                                iv                        MDD-003
Overview of the Multics TCB                               MDD-003


                       Traffic Control Commands.. . . . . . . . 9-27
                           print_tuning_parameters .. . . . . . 9-27
                           print_apt_entry .. . . . . . . . . . 9-28

     Topic X       Fault and Interrupt Handling.. . . . . . . . 10-1
                       Fault and Interrupt Handling Overview .. 10-1
                       Fault and Interrupt Data Bases.. . . . . 10-4
                           Fault and Interrupt Vectors .. . . . 10-4
                           Fault Data Save Areas .. . . . . . . 10-6
                           Important Types of Faults .. . . . . 10-8
                       Fault/Interrupt Meters.. . . . . . . . . 10-13
                           fim_meters.. . . . . . . . . . . . . 10-13
                           interrupt_meters.. . . . . . . . . . 10-14

     Topic XI      System Initialization/Shutdown.. . . . . . . 11-1
                       System Initialization Overview.. . . . . 11-1
                       System Initialization Terminology .. . . 11-4
                       Initialization Data Bases .. . . . . . . 11-7
                       Environment Passed to Initialization.. . 11-10
                       Collection 0.. . . . . . . . . . . . . . 11-11
                       Collection 1.. . . . . . . . . . . . . . 11-12
                       Collection 2.. . . . . . . . . . . . . . 11-14
                       Collection 3.. . . . . . . . . . . . . . 11-16
                       Normal Shutdown .. . . . . . . . . . . . 11-17
                       File System Shutdown.. . . . . . . . . . 11-18
                       Emergency Shutdown.. . . . . . . . . . . 11-20

     Topic XII     File System Salvagers .. . . . . . . . . . . 12-1
                       Overview of Salvagers .. . . . . . . . . 12-1
                       Directory Salvager.. . . . . . . . . . . 12-4
                       Quota Salvaging .. . . . . . . . . . . . 12-7
                       Physical Volume Scavenger .. . . . . . . 12-9
                       Physical Volume Salvager.. . . . . . . . 12-11
                       sweep_pv.. . . . . . . . . . . . . . . . 12-12

     Topic XIII    The Initializer.SysDaemon Process .. . . . . 13-1
                       Initializer Overview . . . . . . . . . . 13-1
                       Services of Initializer .. . . . . . . . 13-3

     Topic XIV     Metering and Tuning .. . . . . . . . . . . . 14-1
                       Meter and Tuning Overview .. . . . . . . 14-1
                       Analyzing Performance Problems.. . . . . 14-3
                       Detailed Problem Analysis .. . . . . . . 14-6
                       Output From Metering Commands .. . . . . 14-8
                           total_time_meters .. . . . . . . . . 14-8
                           interrupt_meters.. . . . . . . . . . 14-9
                           file_system_meters.. . . . . . . . . 14-10







                                v                         MDD-003
MDD-003                               Overview of the Multics TCB


                           file_system_meters.. . . . . . . . . 14-12
                           device_meters .. . . . . . . . . . . 14-14
                           disk_meters .. . . . . . . . . . . . 14-15
                           disk_queue.. . . . . . . . . . . . . 14-16
                           print_configuration_deck.. . . . . . 14-17
                           list_vols .. . . . . . . . . . . . . 14-19
                           traffic_control_queue .. . . . . . . 14-21
                           traffic_control_meters.. . . . . . . 14-23
                           print_tuning_parameters .. . . . . . 14-25
                           work_class_meters .. . . . . . . . . 14-26
                           respons_meters.. . . . . . . . . . . 14-27
                           system_performance_graph.. . . . . . 14-29
                           meter_gate.. . . . . . . . . . . . . 14-31

     Topic XV      Evolution of Memory Addressing/Management .. 15-1
                       Conventional Memory .. . . . . . . . . . 15-1
                           Structure .. . . . . . . . . . . . . 15-1
                           Address Formation .. . . . . . . . . 15-1
                           Characteristics .. . . . . . . . . . 15-2
                           Problems.. . . . . . . . . . . . . . 15-4
                       Single Virtual Memory .. . . . . . . . . 15-7
                           Structure .. . . . . . . . . . . . . 15-7
                           Address Formation .. . . . . . . . . 15-7
                           Characteristics .. . . . . . . . . . 15-7
                           Solved Problems .. . . . . . . . . . 15-9
                           Problems.. . . . . . . . . . . . . . 15-11
                       Multiple Virtual Memories .. . . . . . . 15-12
                           Structure .. . . . . . . . . . . . . 15-12
                           Address Formation .. . . . . . . . . 15-11
                           Characteristics .. . . . . . . . . . 15-13
                           Solved Problems .. . . . . . . . . . 15-14
                           Problems.. . . . . . . . . . . . . . 15-15
                       Multics Virtual Memory.. . . . . . . . . 15-16
                           Structure .. . . . . . . . . . . . . 15-16
                           Address Formation .. . . . . . . . . 15-16
                           Characteristics .. . . . . . . . . . 15-17
                           Solved Problems .. . . . . . . . . . 15-18
                           Problems.. . . . . . . . . . . . . . 15-20
















                                vi                        MDD-003
Overview of the Multics TCB                               MDD-003


                               TOPIC I

                       Multics Design Philosophy

                                                                Page

                  Major Design Goals. . . . . . . . . . . . . . 1-1
                  Virtual Memory Organization . . . . . . . . . 1-3
                  Selective, Controlled Sharing . . . . . . . . 1-5
                  Security. . . . . . . . . . . . . . . . . . . 1-6
                  Open-Ended, Modular System. . . . . . . . . . 1-10
                  Decentralized Administration. . . . . . . . . 1-11
                  Flexible User Interfaces. . . . . . . . . . . 1-13
                  Continuous Operation. . . . . . . . . . . . . 1-14
                  Reliable File System. . . . . . . . . . . . . 1-15
                  Remote Access . . . . . . . . . . . . . . . . 1-16
                  Efficient Service to Large or Small Users . . 1-17





































                               1-i                        MDD-003





























                                   .

                          _M_A_J_O_R__D_E_S_I_G_N__G_O_A_L_S







ox  _M_U_L_T_IPLEXED _INFORMATION AND _COMPUTING _SERVICE (MULTICS)





ox  MULTICS  WAS ONE OF  THE FIRST OPERATING  SYSTEMS TO BE  THOROUGHLY
   DESIGNED FROM THE TOP DOWN.  THE DEVELOPERS:



   []  STARTED WITH A SET OF GOALS



   []  CREATED A SYSTEM WHICH WOULD SATISFY THESE GOALS



   []  DEVELOPED  GENERAL  SOLUTIONS   INSTEAD  OF  SPECIFIC  SOLUTIONS
      (MAKING THE PRODUCT EXTENDABLE)



   []  PRODUCED A VIABLE AND MARKETABLE PRODUCT























Not To Be Reproduced              1-1                          MDD-003
                          _M_A_J_O_R__D_E_S_I_G_N__G_O_A_L_S







ox  THESE GOALS WERE CAREFULLY CHOSEN TO CHARACTERIZE A 'UTILITY-GRADE'
   COMPUTER SYSTEM, AND ARE OUTLINED BELOW:



   []  VIRTUAL MEMORY ORGANIZATION



   []  SELECTIVE, CONTROLLED SHARING



   []  SECURITY



   []  OPEN-ENDED, MODULAR SYSTEM



   []  DECENTRALIZED ADMINISTRATION



   []  FLEXIBLE USER INTERFACES, END-USER ORIENTATION



   []  CONTINUOUS OPERATION



   []  RELIABLE FILE SYSTEM



   []  REMOTE ACCESS



   []  EFFICIENT SERVICE TO LARGE AND SMALL USER






Not To Be Reproduced              1-2                          MDD-003
                      _V_I_R_T_U_A_L__M_E_M_O_R_Y__O_R_G_A_N_I_Z_A_T_I_O_N







ox  MOTIVATION



   []  INFORMATION STORED ON-LINE IN  LARGE INFORMATION UTILITIES OFTEN
      EXCEEDS THE SIZE OF AVAILABLE MAIN MEMORY



   []  THIS   INFORMATION  SHOULD    BE  DIRECTLY   (AND  CONTINUOUSLY)
      ACCESSIBLE BY THE USER COMMUNITY



   []  THE SIZE OF MAIN MEMORY  SHOULD ONLY AFFECT PROCESSING TIME, NOT
      PROCESSING CAPABILITY



   []  MAIN  MEMORY  MANAGEMENT  SHOULD  BE  A  TASK  FOR THE OPERATING
      SYSTEM, NOT THE PROGRAMMER





ox  IMPLEMENTATION



   []  ALL ON-LINE INFORMATION IS _P_R_O_C_E_S_S_O_R__A_D_D_R_E_S_S_A_B_L_E



   []  _A_L_L INFORMATION  (PROCEDURE AND DATA) IS  COMPARTMENTALIZED INTO
      UNITS CALLED  "SEGMENTS" ALLOWING THE ASSOCIATION  OF ATTRIBUTES
      WITH EACH SEGMENT(1)




______________________________________________________________________

(1) THROUGHOUT THIS DOCUMENT, GENERIC REFERENCES TO "SEGMENTS" INCLUDE
    DIRECTORIES AS  WELL, SINCE DIRECTORIES ARE SIMPLY  A SPECIAL KIND
    OF SEGMENT


Not To Be Reproduced              1-3                          MDD-003
                      _V_I_R_T_U_A_L__M_E_M_O_R_Y__O_R_G_A_N_I_Z_A_T_I_O_N





   []  SEGMENTS ARE MADE _P_R_O_C_E_S_S _A_D_D_R_E_S_S_A_B_L_E AS THEY ARE REFERENCED



   []  ALL SEGMENTS  ARE DIVIDED INTO  AN INTEGRAL NUMBER  OF 1024 WORD
      PAGES.  THESE PAGES ARE BROUGHT INTO  MAIN MEMORY IF AND ONLY IF
      THEY ARE REFERENCED (NEEDED)-AT THE  TIME THEY ARE REFERENCED BY
      ANY PROCESS



   []  THE MULTICS HARDWARE INTERPRETS  ALL ADDRESSES AS OFFSETS WITHIN
      A SPECIFIED SEGMENT (SEGNO|OFFSET)



   []  THE  HARDWARE MAKES  NO DISTINCTION  BETWEEN PROCEDURE  AND DATA
      SEGMENTS.  BOTH ARE PAGED IN THE SAME MANNER, BOTH ARE ADDRESSED
      IN THE SAME MANNER



   []  ALL COMPILERS PRODUCE LOAD MODULES - _N_O MODIFICATION IS REQUIRED
      TO EXECUTE PROCEDURE CODE


























Not To Be Reproduced              1-4                          MDD-003
                     _S_E_L_E_C_T_I_V_E_,__C_O_N_T_R_O_L_L_E_D__S_H_A_R_I_N_G







ox  MOTIVATION



   []  USERS SHOULD BE  ABLE TO USE COMMON PROCEDURE  AND DATA SEGMENTS
      DIRECTLY (NOT COPIES)



   []  USERS SHOULD BE ABLE TO SHARE PRIVATE CODE IN A SELECTIVE MANNER





ox  IMPLEMENTATION



   []  PURE,  REENTRANT  CODE  IS  ALWAYS  GENERATED  BY  THE COMPILERS
      (ALLOWING   SHARING  OF   PROCEDURE  CODE   IN  A  MULTI-PROCESS
      ENVIRONMENT)



   []  EVERYTHING  THE USER  TOUCHES (EXECUTE  OR REFERENCE)  WILL BE A
      SEGMENT HAVING ITS OWN ATTRIBUTES



   []  THE  ACCESS ATTRIBUTES  OF EACH  SEGMENT ARE  ESTABLISHED BY THE
      OWNER OF THAT SEGMENT
















Not To Be Reproduced              1-5                          MDD-003
                               _S_E_C_U_R_I_T_Y







ox  MOTIVATION



   []  IN AN ENVIRONMENT OF SEVERAL COEXISTING PROCESSES, USERS MUST BE
      PROTECTED  FROM ACCIDENTALLY  OR INTENTIONALLY  INTERFERING WITH
      EACH OTHER



   []  THE SUPERVISOR MUST BE PROTECTED FROM DAMAGE BY USERS



   []  CHANGES IN ACCESS TO INFORMATION MUST BE IMMEDIATELY EFFECTIVE



   []  DISCLOSURE OF  INFORMATION SHOULD BE ALLOWED IN  A SELECTIVE AND
      CONTROLLED MANNER (VERSUS ALL-OR-NONE APPROACH)



   []  UNWARRANTED DENIAL OF ACCESS TO INFORMATION MUST BE PROHIBITED





ox  IMPLEMENTATION



   []  PER-SEGMENT ACCESS  CONTROL LIST (ACL) - SPECIFYING  BY WHOM AND
      HOW THE SEGMENT MAY BE ACCESSED



   []  RING PROTECTION MECHANISM - ISOLATES SEGMENTS AND PROCESSES



   []  ACCESS ISOLATION  MECHANISM (AIM) - ISOLATES  SEGMENTS ACCORDING
      TO CATEGORIES AND SECURITY LEVELS




Not To Be Reproduced              1-6                          MDD-003
                               _S_E_C_U_R_I_T_Y





   []  PASSWORDS AND AUDIT TRAILS

















































Not To Be Reproduced              1-7                          MDD-003
                               _S_E_C_U_R_I_T_Y

























                  ==================================
                  INSERT Access Control DIAGRAM HERE
                  ==================================



























Not To Be Reproduced              1-8                          MDD-003
                      _O_P_E_N_-_E_N_D_E_D_,__M_O_D_U_L_A_R__S_Y_S_T_E_M







ox  MOTIVATION



   []  SOFTWARE SHOULD BE EASY TO MODIFY AND EXTEND



   []  THE OPERATING  SYSTEM SHOULD BE MODULAR, AND  THE MODULES SHOULD
      BE COMPREHENSIBLE





ox  IMPLEMENTATION



   []  MODULAR DESIGN OF OPERATING SYSTEM AND USER PROGRAMS (COMPILERS,
      PROGRAMMING ENVIRONMENT ENCOURAGE MODULAR DESIGN)



   []  UNIFORM  PROGRAMMING CONVENTIONS   ARE FOLLOWED  THROUGHOUT MOST
      SYSTEM CODE



   []  MORE  THAN 92%  OF THE  OPERATING SYSTEM  OBJECT CODE ORIGINATED
      FROM PL/I SOURCE



   []  DYNAMIC   LINKING  (ELIMINATES  RE-COMPILING,   RE-EDITING  WHEN
      UN-BOUND MODULES ARE REPLACED)



   []  ON-LINE MODIFICATION, TESTING AND INSTALLATION OF SYSTEM MODULES
      (MULTICS INSTALLATION FACILITY - MIS)



   []  PATCH-FREE SYSTEM



Not To Be Reproduced              1-9                          MDD-003
                      _O_P_E_N_-_E_N_D_E_D_,__M_O_D_U_L_A_R__S_Y_S_T_E_M





   []  LIBRARY MANAGEMENT TOOLS AND LIBRARY CONVENTIONS

















































Not To Be Reproduced             1-10                          MDD-003
                     _D_E_C_E_N_T_R_A_L_I_Z_E_D__A_D_M_I_N_I_S_T_R_A_T_I_O_N







ox  MOTIVATION



   []  SYSTEM RESOURCES MUST BE EFFECTIVELY ADMINISTERED



   []  RESOURCE ALLOCATION, ACCOUNTING,  REGISTRATION, BILLING, ETC, IS
      TOO MUCH FOR SINGLE INDIVIDUAL



   []  DIFFERENT GROUPS OF USERS HAVE DIFFERENT ADMINISTRATIVE NEEDS





ox  IMPLEMENTATION



   []  GROUPING OF USERS, BY FUNCTION OR MANAGEMENT, INTO PROJECTS



   []  THREE-LEVEL HIERARCHY OF ADMINISTRATION


      []  SYSTEM  ADMINISTRATOR:   DISTRIBUTES  RESOURCES  AND  ASSIGNS
         ATTRIBUTES TO PROJECTS


      []  PROJECT  ADMINISTRATORS:  DISTRIBUTES  RESOURCES AND  ASSIGNS
         ATTRIBUTES TO USERS


      []  USERS:  HAS  FULL CONTROL OVER ALLOCATED  RESOURCES, MODIFIED
         BY ASSIGNED ATTRIBUTES



   []  THE PROJECT ADMINISTRATOR MAY PASS DOWNWARD ONLY THOSE RESOURCES
      AND ATTRIBUTES THAT HAVE BEEN GIVEN TO THE PROJECT



Not To Be Reproduced             1-11                          MDD-003
                     _D_E_C_E_N_T_R_A_L_I_Z_E_D__A_D_M_I_N_I_S_T_R_A_T_I_O_N

























                      ===========================
                      INSERT SAT/PDT DIAGRAM HERE
                      ===========================



























Not To Be Reproduced             1-12                          MDD-003
                       _F_L_E_X_I_B_L_E__U_S_E_R__I_N_T_E_R_F_A_C_E_S







ox  MOTIVATION



   []  THE   STANDARD   USER    ENVIRONMENT   SHOULD   BE   EXTENSIVELY
      USER-MODIFIABLE



   []  THE  CAPABILITY  SHOULD  EXIST  TO  DEVELOP  AND  IMPOSE  CLOSED
      SUBSYSTEMS WHICH CAN PROVIDE ANY DESIRED ENVIRONMENT





ox  IMPLEMENTATION



   []  USER HAS  ABILITY TO CHANGE  OR REPLACE CONTROL  PROGRAMS IN THE
      USER'S RING



   []  PROJECT ADMINISTRATOR CAN IMPOSE  A CLOSED SUBSYSTEM ENVIRONMENT
      OR A DIFFERENT process_overseer ON USERS



   []  start_up.ec,   ABBREV   PROCESSOR,   general_ready,   ready_off,
      add_search_rules, CONDITION HANDLING, ETC.



   []  OTHER   TOOLS  PROVIDE   SIMULATION,  ENCAPSULATION   CAPABILITY
      (enter_lss, project_start_up_)



   []  STANDARD INTERFACE FOR  INTERACTIVE SUBSYSTEMS (ssu_) ENCOURAGES
      UNIFORM, FAMILIAR BEHAVIOUR OF USER SUBSYSTEMS.






Not To Be Reproduced             1-13                          MDD-003
                         _C_O_N_T_I_N_U_O_U_S__O_P_E_R_A_T_I_O_N







ox  MOTIVATION



   []  UTILITY CONCEPT:   SYSTEM SHOULD BE  AVAILABLE ON DEMAND  AT ALL
      TIMES





ox  IMPLEMENTATION



   []  ON-LINE SOFTWARE INSTALLATION



   []  ON-LINE  MAINTENANCE:  MOVE  MORE AND  MORE BOS  CAPABILITY INTO
      MULTICS (EG:  RE-BOOT FNP FROM MULTICS)



   []  ON-LINE FILE BACKUP AND RECOVERY



   []  ON-LINE ACCOUNTING AND BILLING



   []  DYNAMIC RECONFIGURATION



   []  DYNAMIC FAILSOFT DECONFIGURATION OF FAILING HARDWARE



   []  UNATTENDED SERVICE



   []  AUTOMATIC REBOOT



Not To Be Reproduced             1-14                          MDD-003
                         _R_E_L_I_A_B_L_E__F_I_L_E__S_Y_S_T_E_M







ox  MOTIVATION



   []  MUST PROVIDE USERS SOME ASSURANCE THAT THEIR ON-LINE INFORMATION
      IS SAFE



   []  MUST PROVIDE CHECKPOINT CAPABILITY  FOR RECOVERY FROM USER ERROR
      OR SYSTEM DISASTER





ox  IMPLEMENTATION



   []  AUTOMATIC BACKUP/RETRIEVAL FACILITY



   []  CONSOLIDATED STORAGE SYSTEM DUMPS



   []  PHYSICAL AND LOGICAL SAVE/RESTORE



   []  ALL STORAGE SYSTEM RECOVERY PROCEDURES RUN WHILE SYSTEM IS UP



   []  DAMAGE RECOVERY RUN AUTOMATICALLY FOLLOWING SYSTEM FAILURE











Not To Be Reproduced             1-15                          MDD-003
                             _R_E_M_O_T_E__A_C_C_E_S_S







ox  MOTIVATION



   []  UTILITY CONCEPT:   FULL ACCESS FROM  ANY PHONE IN  THE WORLD VIA
      ANY REMOTE DEVICE



   []  WISH  TO PROVIDE  _O_N_E "COMMAND  LANGUAGE", TO  SERVE ALL  USERS,
      WHETHER LOCAL OR REMOTE, INTERACTIVE OR BATCH





ox  IMPLEMENTATION



   []  MULTICS COMMUNICATION SYSTEM (MCS)



   []  _I_N__P_R_I_N_C_I_P_L_E, ANY REMOTE DEVICE/TERMINAL IS CONNECTABLE



   []  SINGLE COMMAND LANGUAGE



   []  REMOTE JOB ENTRY (RJE) AND BULK I/O CAPABILITIES



   []  DIRECT ATTACHMENTS TO PUBLIC DATA NETWORKS VIA X.25











Not To Be Reproduced             1-16                          MDD-003
               _E_F_F_I_C_I_E_N_T__S_E_R_V_I_C_E__T_O__L_A_R_G_E__O_R__S_M_A_L_L__U_S_E_R_S







ox  MOTIVATION



   []  UTILITY  CONCEPT:  SYSTEM SHOULD  BE AVAILABLE FOR,  AND CAPABLE
      OF, ANY SIZE TASK



   []  RUNNING BOTH  LARGE AND SMALL  TASKS TOGETHER SHOULD  NOT IMPACT
      THE EFFICIENCY OF EITHER





ox  IMPLEMENTATION



   []  DYNAMIC  RESOURCE  ALLOCATION  (DON'T  HAVE  TO  PRE-ALLOCATE OR
      GUESS-TIMATE RESOURCES REQUIRED)



   []  SERVICE ON DEMAND



   []  DYNAMIC SYSTEM TUNING TO ACCOMMODATE CHANGING SYSTEM WORKLOADS


















Not To Be Reproduced             1-17                          MDD-003
               _E_F_F_I_C_I_E_N_T__S_E_R_V_I_C_E__T_O__L_A_R_G_E__O_R__S_M_A_L_L__U_S_E_R_S


                                     TOPIC II

                         Overview of the Operating System

                                                                      Page

                        Structure of the Operating System . . . . . . 2-1
                        What is the Multics Supervisor. . . . . . . . 2-3
                        The Major Supervisor Subsystems . . . . . . . 2-5
                        Name Space/Address Space Management . . . . . 2-9
                        Directory Control . . . . . . . . . . . . . . 2-13
                        Volume Management . . . . . . . . . . . . . . 2-15
                        Segment Control . . . . . . . . . . . . . . . 2-19
                        Page Control. . . . . . . . . . . . . . . . . 2-21
                        Traffic Control . . . . . . . . . . . . . . . 2-27
                        Fault and Interrupt Handling. . . . . . . . . 2-28
                        System Initialization . . . . . . . . . . . . 2-31
                        File System Salvagers . . . . . . . . . . . . 2-34
                        Metering & Tuning . . . . . . . . . . . . . . 2-37
                        Initializer.SysDaemon . . . . . . . . . . . . 2-39


































                                  2-i                          MDD-003
                   _S_T_R_U_C_T_U_R_E__O_F__T_H_E__O_P_E_R_A_T_I_N_G__S_Y_S_T_E_M







ox  THE MULTICS  OPERATING SYSTEM IS A HIGHLY  STRUCTURED COLLECTION OF
   SOME 5050 MODULES SUMMING TO MORE  THAN SIX MILLION WORDS OF OBJECT
   CODE



   []  MORE THAN  92% OF THIS  OBJECT CODE ORIGINATED  FROM PL/I SOURCE
      (1,930,000 LINES)



   []  THE  REMAINDER IS  WRITTEN  IN  MULTICS ASSEMBLER  LANGUAGE, ALM
      (310,000 LINES)





ox  THE  MULTICS  OPERATING  SYSTEM  CONSISTS  OF  THE  FOLLOWING MAJOR
   COMPONENTS:



   []  THE SUPERVISOR (THE PRINCIPAL TARGET OF THIS COURSE)


      []  FREQUENTLY CALLED "HARDCORE" - BUT DOES NOT NECESSARILY IMPLY
         WIRED IN CORE.  IF MULTICS WAS NOT A VIRTUAL SYSTEM, THEN THE
         TERM "HARDCORE" WOULD PROPERLY DEFINE THE SUPERVISOR


      []  CONSIST  OF MORE  THAN 750  SEGMENTS AND  USES MORE  THAN 380
         INCLUDE FILES



   []  USER COMMANDS AND ACTIVE FUNCTIONS (600)


      []  DESCRIBED  IN THE  MPM  MANUAL  "Multics Commands  and Active
         Functions" (AG92)







Not To Be Reproduced              2-1                          MDD-003
                   _S_T_R_U_C_T_U_R_E__O_F__T_H_E__O_P_E_R_A_T_I_N_G__S_Y_S_T_E_M





   []  SUBROUTINES (550)


      []  DESCRIBED IN THE MPM MANUALS "Multics Subroutines" (AG93) AND
         "Subsystems  Writer's  Guide"  (OFTEN  ABBREVIATED  AS "SWG")
         (AK92)



   []  TOOLS (220)


      []  DESCRIBED  IN THE  MPM  MANUAL  "Multics Commands  and Active
         Functions" (AG92)



   []  ADMINISTRATIVE ROUTINES (200)


      []  DESCRIBED IN  THE MAM MANUALS "System  Administrator" (AK50),
         "Registration  & Accounting  Administrator" (AS68),  "Project
         Administrator" (AK51)



   []  OPERATOR COMMANDS (150)


      []  DESCRIBED IN THE MANUAL "Operator's Handbook" (AM81)




















Not To Be Reproduced              2-2                          MDD-003
                    _W_H_A_T__I_S__T_H_E__M_U_L_T_I_C_S__S_U_P_E_R_V_I_S_O_R







ox  WHAT IS THE MULTICS SUPERVISOR?



   []  A  COLLECTION OF  MANY  LOGICAL  SUBSYSTEMS WHICH  IMPLEMENT THE
      FUNCTIONS OF MULTICS



   []  THE PRIMARY PURPOSE OF MULTICS  IS TO RUN PROGRAMS, WHICH ACCESS
      DATA, AND THUS THE MAJOR PURPOSE OF THE MULTICS SUPERVISOR IS TO
      MAKE THAT DATA ACCESSIBLE



   []  THESE SUBSYSTEMS FALL INTO FOUR MAJOR GROUPS:


      []  THE FILE SYSTEM


      []  SUPPORT SERVICES FOR THE FILE SYSTEM


      []  MISCELLANEOUS SUPERVISOR SERVICES


      []  SUBSYSTEMS  RELATED   TO,  BUT  NOT  STRICTLY   PART  OF  THE
         SUPERVISOR



   []  THESE DIVISIONS ARE SOMEWHAT  ARTIFICIAL, BECAUSE THE SUBSYSTEMS
      ARE  ALL  INTIMATELY  RELATED  TO  EACH  OTHER.   THE  DIVISIONS
      REPRESENT A PARTICULAR VIEWPOINT OF SYSTEM FUNCTION.



   []  A MULTICS SUBSYSTEM  IS A SET OF PROGRAMS  PERFORMING A SPECIFIC
      SERVICE FOR  THE USER COMMUNITY  - AND FOR  THE OPERATING SYSTEM
      ITSELF



   []  TOGETHER, ALL THESE SUBSYSTEMS IMPLEMENT THE FUNCTIONS DESCRIBED



Not To Be Reproduced              2-3                          MDD-003
                    _W_H_A_T__I_S__T_H_E__M_U_L_T_I_C_S__S_U_P_E_R_V_I_S_O_R


      IN THE  MPM SUBROUTINES AND  SWG MANUALS, (ESSENTIALLY  hcs_ AND
      THE VIRTUALS MEMORY).



















































Not To Be Reproduced              2-4                          MDD-003
                    _T_H_E__M_A_J_O_R__S_U_P_E_R_V_I_S_O_R__S_U_B_S_Y_S_T_E_M_S







ox  MAJOR  MULTICS SUPERVISOR  SUBSYSTEMS:  FOUR  GROUPS OF  ABOUT FOUR
   SUBSYSTEMS EACH



   []  THE  FILE SYSTEM  - THOSE  SUBSYSTEMS WHICH  ARE CONCERNED  WITH
      STORING DATA,  MANAGING DATA, AND MAKING IT  AVAILABLE TO USERS.
      FIVE MAJOR COMPONENTS:


      []  NAME SPACE / ADDRESS SPACE CONTROL


      []  DIRECTORY CONTROL


      []  VOLUME MANAGEMENT


      []  SEGMENT CONTROL


      []  PAGE CONTROL



   []  SERVICES  TO  SUPPORT  THE  FILE  SYSTEM,  WHICH  MULTIPLEX  ITS
      FACILITIES BETWEEN DIFFERENT USERS,  AND ENSURE ITS RELIABILITY.
      FOUR MAJOR COMPONENTS:


      []  TRAFFIC CONTROL


      []  FAULT AND INTERRUPT HANDLING


      []  SYSTEM INITIALIZATION


      []  THE FILE SYSTEM SALVAGERS







Not To Be Reproduced              2-5                          MDD-003
                    _T_H_E__M_A_J_O_R__S_U_P_E_R_V_I_S_O_R__S_U_B_S_Y_S_T_E_M_S





   []  MISCELLANEOUS SUPERVISOR SERVICES - THESE ARE THINGS DONE IN THE
      SUPERVISOR FOR  REASONS OF ACCESS  CONTROL AND SHARING,  BUT NOT
      DIRECTLY RELATED TO THE FILE SYSTEM



   []  BECAUSE THEY ARE NOT DIRECTLY  RELATED, THEY WILL NOT BE COVERED
      IN ANY DETAIL


      []  MULTICS COMMUNICATIONS SYSTEM


      []  RESOURCE CONTROL


      []  USER DEVICE I/O - ioi_


      []  LOW LEVEL SUPERVISOR I/O


      []  RECONFIGURATION


      []  SYSTEM ERROR HANDLING (syserr / verify_lock)



   []  RELATED  SUBSYSTEMS  -  THESE  ARE  NOT  ACTUALLY  PART  OF  THE
      SUPERVISOR, BUT ARE CLOSELY RELATED


      []  METERING AND TUNING


      []  THE Initializer.SysDaemon





ox  THE  MULTICS SUPERVISOR  IS DESIGNED  AROUND THE  "LAYERED MACHINE"
   CONCEPT






Not To Be Reproduced              2-6                          MDD-003
                    _T_H_E__M_A_J_O_R__S_U_P_E_R_V_I_S_O_R__S_U_B_S_Y_S_T_E_M_S





   []  CONSTRUCT  A SIMPLE  SET OF  OPERATIONS CALLED  A "KERNEL" WHICH
      IMPLEMENTS THE MOST FUNDAMENTAL (PRIMITIVE) OPERATIONS REQUIRED



   []  CONSTRUCT A SLIGHTLY MORE  SOPHISTICATED SET OF OPERATIONS WHICH
      ASSUMES AND  RELIES ON THE  CORRECT FUNCTIONING OF  THE KERNEL -
      ANOTHER "LAYER"



   []  CONSTRUCT A MORE SOPHISTICATED LAYER WHICH ASSUMES AND RELIES ON
      THE CORRECT FUNCTIONING OF THE PREVIOUS MACHINES



   []  ETC





ox  THE "LAYERS" OF THE MULTICS SUPERVISOR PARTIALLY MAP INTO THE ABOVE
   SUBSYSTEMS





ox  THE FOLLOWING DIAGRAM REPRESENTS THIS MAPPING:




















Not To Be Reproduced              2-7                          MDD-003
                    _T_H_E__M_A_J_O_R__S_U_P_E_R_V_I_S_O_R__S_U_B_S_Y_S_T_E_M_S

























                ======================================
                INSERT Multics Supervisor DIAGRAM HERE
                ======================================



























Not To Be Reproduced              2-8                          MDD-003
                  _N_A_M_E__S_P_A_C_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_A_N_A_G_E_M_E_N_T







ox  FUNCTION



   []  IMPLEMENT THE PER PROCESS VIRTUAL MEMORY





ox  BASIC PHILOSOPHY



   []  AS A NEWLY  LOGGED IN USER ATTEMPTS TO TOUCH  VARIOUS SEGMENTS A
      CONSIDERABLE   AMOUNT   OF   MANAGEMENT   INFORMATION   MUST  BE
      (TRANSPARENTLY)   FOUND  AND/OR   COMPUTED  BEFORE   THE  USER'S
      REFERENCE IS ACTUALLY ACCOMPLISHED



   []  FOR EVERY SEGMENT REFERENCED BY THE USER, THE SUPERVISOR:


      []  ASSIGNS A SEGMENT NUMBER (FOR REASON OF HARDWARE ADDRESSING),
         AND


      []  RECORDS (REMEMBERS) THE MANAGEMENT INFORMATION (FOR REASON OF
         SOFTWARE EFFICIENCY AND CONTROL)



   []  SUCH SEGMENTS ARE SAID TO BE "KNOWN TO THE PROCESS"



   []  THE MANAGEMENT INFORMATION IS MAINTAINED  ON A PER PROCESS BASIS










Not To Be Reproduced              2-9                          MDD-003
                  _N_A_M_E__S_P_A_C_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_A_N_A_G_E_M_E_N_T


      IN THREE COMPLEMENTING AREAS:  DSEG, KST, AND RNT



   []  MANAGES TWO DISTINCT SETS OF INFORMATION:


      []  ADDRESS  SPACE -  CORRESPONDENCE BETWEEN  SEGMENT NUMBERS AND
         THE SEGMENTS THEMSELVES


      []  NAME SPACE - CORRESPONDENCE BETWEEN SEGMENT NUMBERS AND NAMES
         THE USER REFERS TO THEM BY



   []  CALLS DIRECTORY CONTROL TO LOCATE SEGMENTS INITIALLY



   []  NAME SPACE  / ADDRESS SPACE MANAGEMENT IS  INVOKED BY SUBROUTINE
      CALLS, AND BY LINKAGE FAULTS (THE "DYNAMIC LINKER")





ox  PRINCIPAL USER INTERFACES



   []  COMMAND LEVEL


      []  initiate, terminate, terminate_segno, terminate_ref_name,
         terminate_single_ref_name, list_ref_name


      []  THE COMMAND  PROCESSOR ITSELF - WHICH USES  THESE SERVICES TO
         LOCATE COMMANDS



   []  SUBROUTINE LEVEL


      []  hcs_$initiate, hcs_$initiate_count_, hcs_$terminate_file,
         hcs_$terminate_seg, hcs_$terminate_name,
         hcs_$terminate_noname, term_




Not To Be Reproduced             2-10                          MDD-003
                  _N_A_M_E__S_P_A_C_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_A_N_A_G_E_M_E_N_T







ox  MAJOR DATA BASES



   []  DESCRIPTOR SEGMENT (DSEG) - ONE PER PROCESS


      []  SEGMENT DESCRIPTOR WORD (SDW) - ONE PER KNOWN SEGMENT


      []  DEFINES THE USER'S ADDRESS SPACE TO THE HARDWARE



   []  KNOWN SEGMENT TABLE (KST) - ONE PER PROCESS


      []  KNOWN  SEGMENT TABLE  ENTRY (KSTE)  - ONE  PER KNOWN  SEGMENT
         (EXCEPT SUPERVISOR SEGMENTS)


      []  DEFINES THE  USER'S ADDRESS SPACE  TO THE SUPERVISOR  AND THE
         USER


      []  EACH KSTE ASSOCIATES A USER'S SEGMENT NUMBER WITH THE SEGMENT
         CONTROL ATTRIBUTES OF THAT SEGMENT


      []  THE  SEARCH  FOR  AN  AVAILABLE  KSTE  DETERMINES A SEGMENT'S
         NUMBER



   []  REFERENCE NAME TABLE (RNT) - ONE PER EACH RING IN EACH PROCESS


      []  NOT A  SEGMENT - KEPT AS  A REGION ALLOCATED IN  THE "LINKAGE
         AREA" FOR EACH RING


      []  REFERENCE NAME TABLE ENTRY (RNTE) - ONE PER REFERENCE NAME






Not To Be Reproduced             2-11                          MDD-003
                  _N_A_M_E__S_P_A_C_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_A_N_A_G_E_M_E_N_T




      []  USED    BY   THE    DYNAMIC   LINKER    TO   IMPLEMENT    THE
         "initiated_segments" SEARCH RULE


      []  DEFINES THE USER'S NAME SPACE TO THE USER


      []  NAME SPACE  MAY BE DIFFERENT  IN DIFFERENT RINGS  OF THE SAME
         PROCESS










































Not To Be Reproduced             2-12                          MDD-003
                           _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L







ox  FUNCTION



   []  DIRECTORY CONTROL  IS A SET OF HARDCORE  MODULES RESPONSIBLE FOR
      THE MAINTENANCE  OF THE MULTICS DIRECTORY STRUCTURE  -- IE:  THE
      HIERARCHY



   []  ITS  TASKS INCLUDE  CREATING, MANIPULATING  AND INTERPRETING THE
      CONTENTS OF DIRECTORY SEGMENTS, TO INCLUDE:


      []  ACCESS  CONTROL LISTS (ACL'S),  NAMES, AND VTOCE  POINTERS OF
         ENTRIES DESCRIBED THEREIN



   []  ONLY  DIRECTORY CONTROL  IS ALLOWED   TO ALTER  THE CONTENTS  OF
      DIRECTORY SEGMENTS



   []  DIRECTORY CONTROL  IMPLICITLY RELIES UPON THE  SERVICES OF OTHER
      SUBSYSTEMS SUCH  AS SEGMENT CONTROL  AND PAGE CONTROL,  AND ALSO
      INVOKES THEM DIRECTLY BY SUBROUTINE CALL


      []  DIRECTORIES ARE SIMPLY SEGMENTS TO THESE SUBSYSTEMS



   []  DIRECTORY CONTROL IS INVOKED ONLY BY SUBROUTINE CALLS





ox  PRINCIPAL USER INTERFACES








Not To Be Reproduced             2-13                          MDD-003
                           _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L





   []  COMMAND LEVEL


      []  create, create_dir, link, set_acl, delete_acl, status, list,
         add_name, rename



   []  SUBROUTINE LEVEL


      []  hcs_$append_branch, hcs_$add_acl_entries, hcs_$append_link,
         hcs_$delete_acl_entries, hcs_$status_, hcs_$chname_file





ox  MAJOR DATA BASES



   []  DIRECTORY SEGMENTS


      []  CONTAIN  THE  ATTRIBUTES  AND  OTHER  INFORMATION ABOUT THEIR
         SEGMENTS (NEEDED TO FIND SEGMENTS, RETURN STATUS INFORMATION,
         AND BUILD VTOCE'S AT SEGMENT CREATION)



   []  THE DIRLOCKT_SEG


      []  SEGMENT WHERE DIRECTORY LOCKING IS MANAGED















Not To Be Reproduced             2-14                          MDD-003
                           _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T







ox  FUNCTION



   []  VOLUME MANAGEMENT IS RESPONSIBLE  FOR THE MANAGEMENT OF PHYSICAL
      AND LOGICAL VOLUMES



   []  ITS TASKS INCLUDE:


      []  ACCEPTANCE AND DEMOUNTING OF PHYSICAL VOLUMES


      []  MAINTAINING THE ASSOCIATION BETWEEN PHYSICAL VOLUMES, LOGICAL
         VOLUMES, AND DISK DRIVES


      []  ENSURING THE INTEGRITY OF VOLUME CONTENTS


      []  MAKING VOLUME CONTENTS ACCESSABLE TO PAGE CONTROL (PAGES) AND
         SEGMENT CONTROL (VTOC ENTRIES)



   []




















Not To Be Reproduced             2-15                          MDD-003
                           _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T


      VOLUME MANAGEMENT IS INVOKED ONLY BY SUBROUTINE CALLS





ox  MAJOR DATA BASES



   []  PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM


      []  PHYSICAL VOLUME TABLE ENTRY (PVTE) - ONE PER DISK DRIVE KNOWN
         TO THE SYSTEM


      []  EACH PVTE IDENTIFIES A DRIVE'S DEVICE NUMBER, SUBSYSTEM NAME,
         DEVICE  TYPE,  AND  INFORMATION  ABOUT  THE  PHYSICAL  VOLUME
         CURRENTLY MOUNTED


      []  USED  TO MAP  REFERENCES TO   PAGES OF  SEGMENTS INTO  AN I/O
         REQUEST TO THE CORRECT DISK DRIVE



   []  LOGICAL VOLUME TABLE (LVT) - ONE PER SYSTEM


      []  LOGICAL VOLUME  TABLE ENTRY (LVTE) - ONE  PER MOUNTED LOGICAL
         VOLUME


      []  EACH LVTE CONTAINS THE LOGICAL  VOLUME ID, POINTERS TO MEMBER
         PVTE'S, AIM CLASS LIMITS, ETC.


      []  USED  TO  DETERMINE  A  USER'S  ACCESS  TO  A  LOGICAL VOLUME
         (PRIVATE OR PUBLIC) AND TO LOCATE MEMBER PHYSICAL VOLUMES



   []  VOLUME HEADER - ONE PER PACK


      []  VOLUME LABEL (REGISTRATION AND ACCEPTANCE INFORMATION)






Not To Be Reproduced             2-16                          MDD-003
                           _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T




      []  VOLUME MAP (OCCUPIED/VACANT INFORMATION FOR VOLUME CONTENTS)



   []  RECORD STOCKS - ONE PER MOUNTED VOLUME


      []  ONLINE CACHE  OF INFORMATION ABOUT  USED / UNUSED  RECORDS ON
         THE VOLUME


      []  THIS  INFORMATION IS  DERIVED FROM  THE VOLUME  MAP, BUT KEPT
         ONLINE TO AVOID THE NECESSITY  OF REFERRING TO THE VOLUME MAP
         ON DISK EVERY TIME A RECORD IS ALLOCATED OR FREED


      []  WHEN THE  CACHE BECOMES COMPLETELY EMPTY  OR COMPLETELY FULL,
         IT MUST BE UPDATED FROM/TO DISK - A PROTOCOL ENSURES THAT THE
         COPY ON DISK IS ALWAYS CONSISTENT


      []  PROVIDED BY VOLUME MANAGEMENT, BUT USED BY PAGE CONTROL



   []  VTOCE STOCKS - ONE PER VOLUME


      []  SIMILAR  TO RECORD  STOCKS, BUT  MAINTAINS INFORMATION  ABOUT
         USED / UNUSED VTOC ENTRIES ON THE VOLUME


      []  PROVIDED BY VOLUME MANAGEMENT, BUT USED BY SEGMENT CONTROL



   []  PHYSICAL VOLUME HOLD TABLE (PVHT) - ONE PER SYSTEM


      []  RECORDS  THE COMMENCEMENT OF  COMPOUND I/O OPERATIONS  UPON A
         PHYSICAL VOLUME


      []  THIS INFORMATION PREVENTS A VOLUME FROM BEING DEMOUNTED WHILE
         SUCH AN OPERATION IS IN PROGRESS






Not To Be Reproduced             2-17                          MDD-003
                            _S_E_G_M_E_N_T__C_O_N_T_R_O_L







ox  FUNCTION



   []  SEGMENT  CONTROL IS  RESPONSIBLE FOR  THE MANAGEMENT  OF _L_O_G_I_C_A_L
      _M_E_M_O_R_Y



   []  ITS TASKS INCLUDE:


      []  MAINTAINING  THE DISK RESIDENT  MAPS OF SEGMENTS  (IE:  THEIR
         VTOCE'S)


      []  SEGMENT CREATION, TRUNCATION AND DELETION


      []  SEGMENT ACTIVATION AND DEACTIVATION (ASTE MULTIPLEXING)



   []  SEGMENT CONTROL CAN BE INVOKED  EITHER BY SUBROUTINE CALLS OR BY
      SEGMENT FAULTS





ox  BASIC PHILOSOPHY OF ACTIVATION/DEACTIVATION



   []  OF  ALL SEGMENTS RESIDENT  WITHIN THE SYSTEM'S  MOUNTED PHYSICAL
      VOLUMES, ONLY A  SMALL SUBSET WILL REQUIRE ACCESSING  AT ANY ONE
      TIME.  SUCH SEGMENTS WILL BE CALLED "ACTIVE SEGMENTS"



   []  A PART OF MAIN MEMORY,  CALLED THE "ACTIVE SEGMENT TABLE" (AST),
      WILL BE RESERVED TO HOLD MANAGEMENT INFORMATION FOR THESE ACTIVE
      SEGMENTS (IDENTITY, PVT INDEX, LOCATION OF PAGES, ETC.)





Not To Be Reproduced             2-18                          MDD-003
                            _S_E_G_M_E_N_T__C_O_N_T_R_O_L





   []  AS SEGMENTS FALL INTO  DISUSE, THEIR "MANAGEMENT INFORMATION" IN
      THE  AST WILL  BE REPLACED  WITH INFORMATION  OF OTHER  SEGMENTS
      REQUIRING ACTIVATION





ox  USER INTERFACE



   []  COMMAND LEVEL


      []  create, delete, truncate, etc.



   []  SUBROUTINE LEVEL


      []  hcs_$append_branch, hcs_$append_branchx, hcs_$delentry_seg,
         hcs_$delentry_file, hcs_$truncate_seg, hcs_$truncate_file,
         hcs_$force_write, etc





ox  MAJOR DATA BASES



   []  SYSTEM SEGMENT  TABLE (SST) -  ONE PER SYSTEM,  SHARED WITH PAGE
      CONTROL.  ONE MAJOR COMPONENT IS "OWNED" BY SEGMENT CONTROL:


      []  ACTIVE SEGMENT TABLE (AST) - ONE PER SYSTEM


      []  THE AST IS A LIST OF ACTIVE (CURRENTLY BEING USED) SEGMENTS


      []  ACTIVE SEGMENT TABLE ENTRY (ASTE) - ONE PER ACTIVE SEGMENT

         []  ASTES  CONTAIN  PHYSICAL  VOLUME  ID'S  (PVID'S)  AND VTOC



Not To Be Reproduced             2-19                          MDD-003
                            _S_E_G_M_E_N_T__C_O_N_T_R_O_L


            INDEX'S (VTOCX'S) OF SEGMENTS.   NEEDED BY SEGMENT CONTROL
            TO FIND THE SEGMENT ON DISK (HARDWARE)



   []  AST HASH TABLE


      []  ALLOWS EFFICIENT SEARCHING OF ASTE'S


      []  LOGICALLY  PART  OF  THE  AST,  BUT  ELSEWHERE FOR HISTORICAL
         REASONS



   []  DIRECTORY SEGMENTS


      []  CONTAIN  LOCATIONS  AND  ATTRIBUTES  OF  SEGMENTS.   LOCATION
         INFORMATION  FROM DIRECTORY  SEGMENTS IS  PROVIDED TO SEGMENT
         CONTROL BY DIRECTORY CONTROL



   []  VOLUME TABLE OF CONTENTS (VTOC) - ONE PER PHYSICAL VOLUME


      []  VOLUME   TABLE  OF   CONTENTS   ENTRY   (VTOCE)  -   ONE  PER
         DISK-RESIDENT SEGMENT


      []  EACH VTOCE CONTAINS THE  SEGMENT'S UNIQUE ID, CURRENT LENGTH,
         FILE MAP, ETC (NEED TO BUILD ASTE'S AND PT'S)


      []  VTOCES ARE READ AND WRITTEN ONLY BY SEGMENT CONTROL



   []  VTOCE STOCKS - FROM VOLUME MANAGEMENT


      []  USED WHEN CREATING AND DELETING VTOCES FOR SEGMENTS









Not To Be Reproduced             2-20                          MDD-003
                             _P_A_G_E__C_O_N_T_R_O_L







ox  FUNCTION



   []  PAGE  CONTROL  IS  RESPONSIBLE  FOR  THE  MANAGEMENT OF _P_H_Y_S_I_C_A_L
      _M_E_M_O_R_Y TO  INCLUDE THE MULTIPLEXING  OF MAIN MEMORY  FRAMES, AND
      THE MANAGEMENT OF DISK STORAGE



   []  ITS TASKS INCLUDE:


      []  TRANSFERRING  THE  PAGES  OF   SEGMENTS  BETWEEN  THE  MEMORY
         DEVICES, AND  RECORDING THE LOCATION  OF "THE" COPY  OF THESE
         PAGES


      []  REPORTING  THE STATUS  AND FILE  MAPS OF  SEGMENTS TO SEGMENT
         CONTROL



   []  PAGE  CONTROL IS  LARGELY  CODED  IN MULTICS  ASSEMBLER LANGUAGE
      (ALM)



   []  PAGE  CONTROL CAN BE  INVOKED EITHER BY  SUBROUTINE CALLS OR  BY
      PAGE FAULTS



   []














Not To Be Reproduced             2-21                          MDD-003
                             _P_A_G_E__C_O_N_T_R_O_L


      THERE ARE NO EXPLICIT USER INTERFACES TO PAGE CONTROL





ox  BASIC PHILOSOPHY



   []  OF ALL THE SEGMENTS ACTIVE AT  A GIVEN TIME, ONLY A SMALL SUBSET
      OF THEIR TOTAL PAGES WILL BE REQUIRED FOR ACCESSING



   []  PAGES WILL BE READ INTO MAIN MEMORY AS THEY ARE REQUIRED



   []  THE READING OF  A PAGE INTO MAIN MEMORY  WILL (PROBABLY) REQUIRE
      THE EVICTION OF A PREVIOUSLY REQUIRED PAGE



   []  THE CHOICE OF A PAGE FOR EVICTION WILL BE BASED ESSENTIALLY UPON
      A "LEAST RECENTLY USED" CRITERIA



   []  AN  EVICTED PAGE  NEED BE  WRITTEN BACK  TO DISK  _O_N_L_Y IF IT WAS
      MODIFIED DURING ITS RESIDENCY IN MAIN MEMORY





ox  MAJOR DATA BASES



   []  PHYSICAL  VOLUME TABLE  (PVT) -   ONE PER  SYSTEM.  PROVIDED  BY
      VOLUME MANAGEMENT


      []  PHYSICAL  VOLUME TABLE  ENTRY (PVTE)   - ONE  PER DISK  DRIVE
         CONFIGURED


      []  EACH PVTE CONTAINS:




Not To Be Reproduced             2-22                          MDD-003
                             _P_A_G_E__C_O_N_T_R_O_L



         []  THE DEVICE ID  (DISK DRIVE ID) AND THE ID  OF THE PHYSICAL
            VOLUME (DISK PACK) CURRENTLY MOUNTED

         []  THE  NUMBER OF  RECORDS LEFT  UNALLOCATED ON  THE PHYSICAL
            VOLUME, POINTER TO THE RECORD STOCK, ETC



   []  RECORD  STOCKS -  ONE PER  MOUNTED PHYSICAL  VOLUME, PROVIDED BY
      VOLUME MANAGEMENT


      []  CONTAINS AN  IN-MEMORY CACHE OF THE IN-USE  STATUS OF RECORDS
         ON THE VOLUME,  FROM THE VOLUME MAP, USED  WHEN ALLOCATING OR
         FREEING PAGES


      []  ACCESSED BY  A COMPLEX MECHANISM  WHICH USES NORMAL  PAGE I/O
         BUT HAS A PROTOCOL TO ENSURE SYNCHRONIZATION OF DISK CONTENTS
         AND RECORD STOCK CONTENTS



   []  SYSTEM  SEGMENT  TABLE  (SST)  -  ONE  PER  SYSTEM.  SHARED WITH
      SEGMENT CONTROL.  CONTAINS THE FOLLOWING FIVE DATA BASES USED BY
      PAGE CONTROL:


      []  SYSTEM SEGMENT TABLE (SST) HEADER - ONE PER SYSTEM

         []  CONTAINS A LARGE NUMBER OF  COUNTERS AND POINTERS VITAL TO
            THE MAINTENANCE AND METERING OF THE STORAGE SYSTEM

         []  CONTAINS  LOCKWORDS USED  TO SYNCHRONIZE  PAGE CONTROL AND
            SEGMENT CONTROL OPERATIONS


      []  CORE MAP - THE core_map SEGMENT - ONE PER SYSTEM

         []  CORE  MAP ENTRY  (CME) -   ONE PER  FRAME (1024  WORDS) OF
            CONFIGURED MAIN MEMORY

         []  EACH CME REPRESENTS A FRAME  OF MAIN MEMORY AND IDENTIFIES
            THE CURRENT OCCUPANT OF THAT FRAME

         []






Not To Be Reproduced             2-23                          MDD-003
                             _P_A_G_E__C_O_N_T_R_O_L


            NOT PART OF  THE SST SEGMENT ANY MORE,  BUT LOGICALLY PART
            OF THE SST


      []  ACTIVE SEGMENT TABLE (AST) - ONE PER SYSTEM

         []  ACTIVE SEGMENT TABLE ENTRY (ASTE) - ONE PER ACTIVE SEGMENT

         []  LIST OF ACTIVE (CURRENTLY BEING USED) SEGMENTS


      []  PAGE TABLES (PT) - ONE PER  ACTIVE SEGMENT, THE OTHER HALF OF
         EACH ASTE

         []  PAGE TABLE WORD (PAGE PTW) -  EITHER 4, 16, 64, OR 256 PER
            PAGE TABLE

         []  EACH  PTW DEFINES THE  CURRENT LOCATION OF  A PAGE OF  THE
            SEGMENT:  DISK, MAIN MEMORY ADDRESS, OR NULL


































Not To Be Reproduced             2-24                          MDD-003
                             _P_A_G_E__C_O_N_T_R_O_L















                    ===============================
                    INSERT File System DIAGRAM HERE
                    ===============================





































Not To Be Reproduced             2-25                          MDD-003
                            _T_R_A_F_F_I_C__C_O_N_T_R_O_L







ox  FUNCTION



   []  TRAFFIC CONTROL (OR THE "TRAFFIC CONTROLLER") IS RESPONSIBLE FOR
      MANAGING  THE  ASSIGNMENT  OF  PHYSICAL  PROCESSORS  TO  MULTICS
      PROCESSES   AND  IMPLEMENTING   THE  SYSTEM'S   WAIT/NOTIFY  AND
      INTERPROCESS COMMUNICATION PRIMITIVES



   []  THE  FUNCTIONS ASSUMED  BY THE  TRAFFIC CONTROLLER  ARE KNOWN AS
      MULTIPROGRAMMING,   MULTIPROCESSING,  SCHEDULING,   DISPATCHING,
      PROCESSOR MANAGEMENT, AND INTERPROCESS COMMUNICATION.



   []  ITS MAJOR FUNCTION IS ALLOWING PROCESSES TO AWAIT THE COMPLETION
      OF FILE SYSTEM OPERATIONS, SUCH AS PAGE I/O



   []  TRAFFIC  CONTROL   CAN  BE  INVOKED  BY   SUBROUTINE  CALLS  AND
      INTERRUPTS



   []  THERE ARE NO IMPORTANT USER SUBROUTINE INTERFACES, BUT THERE ARE
      PRIVILEGED   SUBROUTINE   INTERFACES   FOR   PROCESS   CREATION,
      ADJUSTMENT OF SCHEDULING PARAMETERS, ETC.





ox  MAJOR DATA BASES



   []  TC_DATA SEGMENT  - ONE PER SYSTEM.  CONTAINS  THE FOLLOWING FOUR
      DATA BASES:


      []  TC_DATA HEADER - ONE PER SYSTEM




Not To Be Reproduced             2-26                          MDD-003
                            _T_R_A_F_F_I_C__C_O_N_T_R_O_L



         []  CONTAINS VARIOUS METERS, COUNTERS AND POINTERS USED BY THE
            TRAFFIC CONTROLLER


      []  ACTIVE PROCESS TABLE (APT) - ONE PER SYSTEM

         []  ACTIVE  PROCESS  TABLE  ENTRY  (APTE)  -  ONE OCCUPIED PER
            ACTIVE PROCESS (TOTAL NUMBER IS DETERMINED BY CONFIG DECK)

         []  EACH APTE CONTAINS VARIOUS ATTRIBUTES OF AN ACTIVE PROCESS
            INCLUDING  THE  PROCESS  ID,   STATE,  THE  VALUE  OF  ITS
            DESCRIPTOR BASE REGISTER (DBR), SCHEDULING PARAMETERS, AND
            A POINTER TO THE PROCESS'S ITT ENTRIES

         []  THE APTE CONTAINS ALL  INFORMATION THE SUPERVISOR NEEDS TO
            KNOW ABOUT A PROCESS WHEN THE PROCESS IS NOT RUNNING


      []  INTERPROCESS TRANSMISSION TABLE (ITT) - ONE PER SYSTEM

         []  ITT ENTRY - ONE OCCUPIED PER OUTSTANDING IPC WAKEUP

         []  A  QUEUE FOR  TEMPORARILY STORING  IPC WAKEUP  INFORMATION
            (CHANNEL NAME, RANDOM DATA, PROCESS ID, ETC)


      []  WORK CLASS TABLE (WCT) - ONE PER SYSTEM

         []  WORK CLASS TABLE ENTRY (WCTE) - ONE PER WORKCLASS

         []  EACH WCTE CONTAINS ADMINISTRATOR DEFINED PARAMETERS OF THE
            WORKCLASS, VARIOUS METERS AND POINTERS




















Not To Be Reproduced             2-27                          MDD-003
                     _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G







ox  FUNCTION



   []  RESPONSIBLE  FOR  HANDLING  ALL  EXCEPTIONS  IN  A  CPU  WHETHER
      INTERNAL TO  THE PROCESSOR (REFERRED  TO AS _F_A_U_L_T_S)  OR EXTERNAL
      (REFERRED TO AS _I_N_T_E_R_R_U_P_T_S)



   []  ESTABLISHES  THE SUPERVISOR  ENVIRONMENT AT  FAULT AND INTERRUPT
      TIME.   SAVES  THE  MACHINE  CONDITIONS  AND  TRANSFERS  TO  THE
      APPROPRIATE HANDLER



   []  MAJOR COMPONENTS:  THE FAULT INTERCEPT MODULE (fim), WIRED-FAULT
      INTERCEPT    MODULE   (wired_fim),    I/O   INTERRUPT    HANDLER
      (io_interrupt), sys_trouble, page_fault





ox  MAJOR DATA BASES



   []  INTERRUPT VECTORS - ONE SET PER SYSTEM (WIRED)


      []  INTERRUPT  PAIR  (2  INSTRUCTIONS)  -  ONE  PAIR  PER DEFINED
         INTERRUPT TYPE


      []  LOCATED  AT ABSOLUTE ADDRESS  0.  A HARDWARE  RECOGNIZED DATA
         BASE


      []  DESCRIBE WHERE TO SAVE THE  CONTEXT, AND WHERE TO TRANSFER TO
         TO PROCESS THE INTERRUPT (ALWAYS io_interrupt)







Not To Be Reproduced             2-28                          MDD-003
                     _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G





   []  FAULT VECTORS - ONE SET PER SYSTEM (WIRED)


      []  VECTOR  PAIR (2  INSTRUCTIONS) -  ONE PAIR  PER DEFINED FAULT
         TYPE


      []  LOCATED AT ABSOLUTE ADDRESS 100 (OCTAL) IMMEDIATELY ABOVE THE
         INTERRUPT VECTORS.  A HARDWARE RECOGNIZED DATA BASE


      []  DESCRIBE WHERE TO SAVE THE  CONTEXT, AND WHERE TO TRANSFER TO
         TO PROCESS THE FAULT (fim, wired_fim, page_fault)



   []  _P_R_O_C_E_S_S  DATA  SEGMENT  (PDS)  -  ONE  PER  PROCESS  (WIRED WHEN
      ELIGIBLE)


      []  CONTAINS PROCESS  RELEVANT INFO SUCH AS PROCESS  ID, USER ID,
         HOME/WORKING/PROCESS DIRECTORIES, AIM CLASSIFICATION, INITIAL
         RING, ETC


      []  CONTAINS  ALL INFORMATION  ABOUT  THE  PROCESS NEEDED  BY THE
         SUPERVISOR CODE WHEN THE PROCESS IS RUNNING


      []  CONTAINS  SAVE  AREAS  FOR  CONTEXT  INFORMATION ABOUT FAULTS
         WHICH CAN  RESULT IN GIVING  UP THE PROCESSOR:   PAGE FAULTS,
         SEGMENT FAULTS, AND ALL FAULTS NOT HANDLED BY THE SUPERVISOR



   []  _P_R_O_C_E_S_S_O_R DATA SEGMENT (PRDS) - ONE PER CONFIGURED CPU (WIRED)


      []  SERVES  AS  RING-ZERO  STACK  FOR  PAGE  CONTROL  AND TRAFFIC
         CONTROL


      []  ALSO CONTAINS SAVE AREAS FOR CONTEXT INFORMATION ABOUT FAULTS
         WHICH USUALLY  DO NOT MEAN GIVING UP  THE PROCESSOR:  CONNECT
         FAULTS AND INTERRUPTS.





Not To Be Reproduced             2-29                          MDD-003
                     _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G





   []  FIM_TABLE


      []  A TABLE IN  THE FIM PROGRAM WHICH DESCRIBES THE  ACTION TO BE
         TAKEN FOR VARIOUS TYPES OF FAULTS













































Not To Be Reproduced             2-30                          MDD-003
                         _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N







ox  FUNCTION



   []  PREPARE THE SYSTEM TO OPERATE,  STARTING FROM A COMPLETELY EMPTY
      MACHINE



   []  READS  IN  SUPERVISOR  PROGRAMS  FROM  SYSTEM  TAPE, SNAPS LINKS
      BETWEEN SUPERVISOR COMPONENTS, VERIFIES AND INITIALIZES HARDWARE
      CONFIGURATION, SETS UP SYSTEM  DATABASES, ACCEPTS STORAGE SYSTEM
      DISKS AND PREPARES THEM FOR USE BY THE FILE SYSTEM



   []  MOST  PROGRAMS  IN  SYSTEM   INITIALIZATION  ARE  DELETED  AFTER
      INITIALIZATION IS COMPLETE.



   []  SUPERVISOR PROGRAMS  ARE LOADED IN THREE  "COLLECTIONS", EACH OF
      WHICH DEPENDS ON THE MECHANISMS SET UP BY THE PREVIOUS ONE





ox  MAJOR DATA BASES



   []  THESE  DATA   BASES  ARE  ALL   BUILT  DURING  THE   PROCESS  OF
      INITIALIZATION  (EXCEPT  FOR  THE  CONFIG  DECK)  AND KEPT AFTER
      INITIALIZATION IS FINISHED



   []  SEGMENT LOADING TABLE (>sl1>slt)


      []  CONTAINS AN  ENTRY DESCRIBING THE ATTRIBUTES  OF EACH SEGMENT
         IN THE SUPERVISOR





Not To Be Reproduced             2-31                          MDD-003
                         _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N





   []  NAME TABLE (>sl1>name_table)


      []  CONTAINS  A LIST  OF NAMES  FOR EACH  OF THE  SEGMENTS IN THE
         SUPERVISOR



   []  DEFINITIONS SEGMENT (>sl1>definitions_)


      []  CONTAINS THE DEFINITIONS SECTIONS FOR ALL THE SEGMENTS IN THE
         SUPERVISOR, WHICH ARE USED IN ORDER TO SNAP LINKS BETWEEN THE
         SUPERVISOR MODULES



   []  CONFIG DECK (>sl1>config_deck)


      []  CONTAINS  A  DESCRIPTION  OF  THE  HARDWARE CONFIGURATION AND
         CERTAIN SOFTWARE PARAMETERS


      []  PROVIDED TO SYSTEM INITIALIZATION BY BOS





ox  SHUTDOWN -- TERMINATES  THE ACTIVITIES OF THE SYSTEM  IN AN ORDERLY
   FASHION



   []  TWO TYPES OF SHUTDOWN:


      []  NORMAL  -- REQUESTED  BY THE  INITIALIZER, RUNS  IN THE USUAL
         SUPERVISOR ENVIRONMENT


      []  EMERGENCY  -- USED  AFTER A  CRASH, MUST  MAKE THE SUPERVISOR
         ENVIRONMENT OPERABLE BEFORE PROCEEDING






Not To Be Reproduced             2-32                          MDD-003
                         _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N





   []  BOTH TYPES EXIST PRIMARILY TO SHUT  DOWN THE FILE SYSTEM -- THAT
      IS, TO WRITE ALL DATA IN MEMORY INTO ITS PROPER HOME ON DISK


      []  INCLUDES PAGES OF SEGMENTS, VTOCES, VOLUME AND VTOC MAPS



   []  SHUTDOWN ESSENTIALLY RUNS THE STEPS OF INITIALIZATION BACKWARDS,
      BUT WITH A LOT OF SHORTCUTS








































Not To Be Reproduced             2-33                          MDD-003
                         _F_I_L_E__S_Y_S_T_E_M__S_A_L_V_A_G_E_R_S







ox  FUNCTION



   []  ENSURE THE CONSISTENCY OF THE  FILE SYSTEM DATABASES AND PERFORM
      PERIODIC PREVENTIVE MAINTENANCE OPERATIONS



   []  THERE ARE SEVERAL SALVAGERS, EACH WITH A DIFFERENT FUNCTION



   []  BECAUSE OF THE COMPLICATED INTERACTIONS  THEY HAVE WITH THE REST
      OF  THE  FILE  SYSTEM,  THE   SALVAGERS  ARE  PERHAPS  THE  MOST
      COMPLICATED SINGLE PROGRAMS IN THE SUPERVISOR



   []  SOME SALVAGING IS DONE AUTOMATICALLY, WHEN THE SYSTEM DETECTS AN
      INCONSISTENCY.    OTHER   SALVAGE   OPERATIONS   ARE  EXPLICITLY
      REQUESTED, BY PRIVILEGED USERS.



   []  EXCEPT  FOR SUPERVISOR  BUGS, THE  ONLY TIME  DAMAGE OCCURS THAT
      REQUIRES  SALVAGING TO  FIX IS   AFTER A  CRASH WHERE  EMERGENCY
      SHUTDOWN FAILS





ox  THE SALVAGERS:



   []  DIRECTORY SALVAGER


      []  CORRECTS INCONSISTENCIES IN  DIRECTORY SEGMENTS BY REBUILDING
         THEM






Not To Be Reproduced             2-34                          MDD-003
                         _F_I_L_E__S_Y_S_T_E_M__S_A_L_V_A_G_E_R_S




      []  THIS  IS  THE  ONLY  SALVAGER  INVOKED  AUTOMATICALLY IN USER
         PROCESSES:  ANY  ATTEMPT TO LEAVE RING ZERO  WITH A DIRECTORY
         LOCKED FOR WRITING WILL CAUSE IT TO BE SALVAGED


      []  DIRECTORY  SALVAGING  ALSO  RECLAIMS   WASTED  SPACE  IN  THE
         DIRECTORY, AND IS RUN PERIODICALLY TO COMPACT DIRECTORIES



   []  QUOTA SALVAGER


      []  CORRECTS INCONSISTENCIES IN THE QUOTA SYSTEM



   []  PHYSICAL VOLUME SCAVENGER


      []  RECONSTRUCTS  RECORD  AND  VTOCE  STOCK  INFORMATION FROM THE
         VTOCES ON A VOLUME, THEREBY  RECLAIMING ANY RECORDS OR VTOCES
         WHICH MIGHT HAVE BEEN LOST


      []  RUNS ENTIRELY ONLINE WHILE THE SYSTEM IS UP FOR USERS (NEW IN
         MR10.1)


      []  THIS  TYPE  OF  DAMAGE  IS  USUALLY  BENIGN,  SO  RUNNING THE
         SCAVENGER CAN BE DELAYED.



   []  PHYSICAL VOLUME SALVAGER


      []  RECONSTRUCTS RECORD AND VTOCE STOCK INFORMATION


      []  RUNS ONLY  DURING INITIALIZATION, AND THEREFORE  DELAYS CRASH
         RECOVERY


      []  NOW USED ONLY  FOR RARE CASES WHERE THERE IS  NOT ENOUGH FREE
         SPACE LEFT FOR THE SCAVENGER TO RUN.  IN THESE RARE CASES, IT
         IS INVOKED AUTOMATICALLY BY SYSTEM INITIALIZATION.




Not To Be Reproduced             2-35                          MDD-003
                         _F_I_L_E__S_Y_S_T_E_M__S_A_L_V_A_G_E_R_S





   []  SWEEP_PV


      []  DELETES  UNUSED VTOC  ENTRIES WHICH  HAVE NO  DIRECTORY ENTRY
         POINTING TO THEM


      []  RUNS ENTIRELY IN USER RING,  EXCEPT FOR ACTUALLY READING VTOC
         ENTRIES AND DIRECTORY ENTRIES


      []  PURELY A HOUSEKEEPING FUNCTION, AND RUN ONLY RARELY.






































Not To Be Reproduced             2-36                          MDD-003
                           _M_E_T_E_R_I_N_G__&__T_U_N_I_N_G







ox  WHILE NOT A  SUBSYSTEM ITSELF, METERING AND TUNING IS  A POLICY AND
   CAPABILITY COMMON TO ALL OF THE SUPERVISOR'S SUBSYSTEMS





ox  FUNCTION



   []  METERING (CONSISTS OF THREE ACTIVITIES)


      []  ACCUMULATING   DATA:   THIS   IS  PERFORMED   THROUGHOUT  THE
         SUPERVISOR BY CODE WHICH

         []  RECORDS  THE  NUMBER  OF  TIMES  AN  EVENT  HAPPENS  OR  A
            PARTICULAR PIECE OF CODE IS EXECUTED; AND/OR

         []  RECORDS THE TIME REQUIRED TO PERFORM A TASK

         []  SUCH  DATA IS  STORED IN  AREAS REFERRED  TO AS  "METERING
            CELLS"


      []  EXTRACTING  DATA:   THIS  IS  PERFORMED  BY NUMEROUS METERING
         COMMANDS WHICH (WHEN INVOKED)

         []  READ  AND STORE  THE CURRENT  VALUES OF  RELEVANT METERING
            CELLS


      []  REPORTING THE DATA:  THIS IS  PERFORMED BY THE METER COMMANDS
         WHICH (WHEN INVOKED)

         []  COMPARE CURRENT METERING CELL  VALUES WITH PREVIOUSLY READ
            VALUES

         []  PERFORM THE  APPROPRIATE ARITHMETIC COMPUTATIONS  UPON THE
            DATA IN ORDER TO ARRIVE AT THE DESIRED STATISTIC

         []  ARRANGE THE DATA IN A  USEFUL FORMAT (A REPORT OR DIAGRAM)
            AND PRINT IT




Not To Be Reproduced             2-37                          MDD-003
                           _M_E_T_E_R_I_N_G__&__T_U_N_I_N_G





   []  TUNING


      []  CHANGING    THE   SYSTEM'S   OPERATING    PARAMETERS   AND/OR
         CONFIGURATION  BASED  UPON  THE  DATA  AND  INSIGHTS FROM THE
         SYSTEM'S METERS





ox  MAJOR DATA BASES



   []  SST HEADER, TC_DATA HEADER, ETC.


































Not To Be Reproduced             2-38                          MDD-003
                         _I_N_I_T_I_A_L_I_Z_E_R_._S_Y_S_D_A_E_M_O_N







ox  FUNCTION



   []  THE SYSTEM'S INITIALIZATION,  ADMINISTRATIVE AND CONTROL PROCESS
      (Initializer.SysDaemon.z), RESPONSIBLE FOR:


      []  INITIALIZING  THE  OPERATING  SYSTEM  AT  BOOTLOAD, FOLLOWING
         SUCCESSFUL INITIALIZATION OF THE SUPERVISOR


      []  ANSWERING SERVICE (login and logout)


      []  PROCESS CREATION AND DESTRUCTION


      []  MESSAGE COORDINATOR (DAEMON COORDINATION)


      []  SYSTEM ADMINISTRATION FUNCTIONS


      []  SYSTEM ACCOUNTING FUNCTIONS





ox  MAJOR DATA BASES, ALL KEPT IN >sc1



   []  ANSWER_TABLE



   []  ABSENTEE_USER_TABLE



   []  DAEMON_USER_TABLE





Not To Be Reproduced             2-39                          MDD-003
                         _I_N_I_T_I_A_L_I_Z_E_R_._S_Y_S_D_A_E_M_O_N





   []  MASTER GROUP TABLE (MGT)



   []  CHANNEL DEFINITION TABLE (CDT)



   []  SYSTEM ADMINISTRATION TABLE (SAT)



   []  PERSON NAME TABLE (PNT)



   []  PROJECT DEFINITION TABLES (PDT'S)




                                     TOPIC III

                              The Multics Environment
                                                                      Page

                        What is a Process . . . . . . . . . . . . . . 3-1
                        Cooperating Processes . . . . . . . . . . . . 3-4
                        The PL/I Operators. . . . . . . . . . . . . . 3-7
                        Interfaces to System Modules. . . . . . . . . 3-9
                        Deadlock Prevention . . . . . . . . . . . . . 3-10
                        Types of Locks. . . . . . . . . . . . . . . . 3-16



















                                  3-i                          MDD-003

































                                   .

                           _W_H_A_T__I_S__A__P_R_O_C_E_S_S







ox  A MULTICS  PROCESS IS A  WELL DEFINED COLLECTION  OF SEGMENTS, EACH
   WITH DEFINED ACCESS, OVER WHICH A SINGLE EXECUTION POINT IS FREE TO
   ROAM (I.E., FETCH INSTRUCTIONS AND MAKE DATA REFERENCES)





ox  THE  ADDRESS  SPACE  OF  A  PROCESS  IS  THE  ABOVE  "COLLECTION OF
   SEGMENTS".  SUCH SEGMENTS ARE SAID TO BE KNOWN TO THE PROCESS





ox  EVERY LOGGED IN USER HAS A PROCESS





ox  VERY IMPORTANT CONCEPT:  THE MULTICS  SUPERVISOR RUNS IN THE _U_S_E_R_'_S
   PROCESS (IE:  IN THE USER'S ADDRESS SPACE), BUT IN A DIFFERENT RING





ox  A  PROCESS TAKES ON  THE IDENTITY OF  THE SOFTWARE IT  IS EXECUTING
   WHERE EVER IT GOES



   []  WHEN A USER WISHES TO CREATE A SEGMENT, IT IS THE USER'S PROCESS
      WHICH  EXECUTES THE  SUPERVISOR CODE  hcs_$append, CREATING  THE
      SEGMENT





ox  A  PROCESS  CAN  BE  VIEWED   AS  A  CONTINUAL  FLOW  OF  EXECUTION
   FLUCTUATING BETWEEN DIFFERENT RINGS:   PRIMARILY RING FOUR AND RING
   ZERO




Not To Be Reproduced              3-1                          MDD-003
                           _W_H_A_T__I_S__A__P_R_O_C_E_S_S


             =============================================
             INSERT Process Flow of Execution DIAGRAM HERE
             =============================================















ox  ALL PROCEDURE  CODE (WHETHER SUPERVISOR  OR USER CODE)  MUST HAVE A
   STACK FRAME CONTAINING ITS ARGUMENTS AND ENVIRONMENT DATA





ox  FOR  REASONS OF SECURITY,  MULTICS REQUIRES ONE  STACK PER RING  OF
   EXECUTION.  WHEN EXECUTING RING "N"  PROCEDURES, THERE WILL EXIST A
   RING "N" STACK CONTAINING STACK FRAMES FOR THESE PROCEDURES

























Not To Be Reproduced              3-2                          MDD-003
                           _W_H_A_T__I_S__A__P_R_O_C_E_S_S

























                  ==================================
                  INSERT Stack per Ring DIAGRAM HERE
                  ==================================



























Not To Be Reproduced              3-3                          MDD-003
                         _C_O_O_P_E_R_A_T_I_N_G__P_R_O_C_E_S_S_E_S







ox  ALL ACTIVE PROCESSES (INTERACTIVE, ABSENTEE, AND DAEMONS) APPEAR TO
   BE AUTONOMOUS AND INDEPENDENT OF ONE ANOTHER





ox  IN  REALITY, ALL  PROCESSES ARE  CONTINUALLY COOPERATING, COMPETING
   AND SHARING



   []  EXAMPLES OF COOPERATION


      []  VOLUNTARY

         []  THE SENDING AND ACCEPTING OF MESSAGES AND MAIL


      []  PREPLANNED BY SYSTEM PROGRAMMERS

         []  EVERY PROCESS,  BEFORE RELINQUISHING A  PROCESSOR, CHOOSES
            THE MOST DESERVING REPLACEMENT AND EXECUTES THE CODE WHICH
            DISPATCHES THE CHOSEN PROCESS

         []  EVERY PROCESS,  WHEN RUNNING, WILL SERVICE  ALL INTERRUPTS
            FIELDED BY ITS PROCESSOR.   THESE INTERRUPTS ARE GENERALLY
            THE REPLIES  TO THE REQUESTS OF _O_T_H_E_R  PROCESSES (IE:  THE
            ARRIVAL OF A PAGE REQUESTED SOME TIME EARLIER)


      []  PREPLANNED BY APPLICATION PROGRAMMERS

         []  THE  MULTICS  TRANSACTION  PROCESSOR  IS  COMPOSED OF MANY
            COOPERATING, INTER-DEPENDENT PROCESSES



   []  EXAMPLES OF COMPETITION


      []  ALL  PROCESSES COMPETE  FOR  PROCESSOR  TIME AND  MAIN MEMORY
         RESOURCES




Not To Be Reproduced              3-4                          MDD-003
                         _C_O_O_P_E_R_A_T_I_N_G__P_R_O_C_E_S_S_E_S




      []  THIS  COMPETITION  IS  HIGHLY  REGULATED  IN  ORDER  FOR  ALL
         PROCESSES TO BE TREATED FAIRLY


      []  THE COMPETITION  IS ALSO SUBJECT TO  VERSATILE ADMINISTRATIVE
         CONTROLS



   []  EXAMPLES OF SHARING


      []  BY  DESIGN, A SIGNIFICANT  PART OF THE  ADDRESS SPACE OF  ALL
         PROCESSES IS _I_D_E_N_T_I_C_A_L (THE SUPERVISOR SEGMENTS)


      []  BY  DEFAULT,  REFERENCES  TO  SEGMENT  foo  BY  TWO DIFFERENT
         PROCESSES  WILL  RESULT  IN  REFERENCES  TO  THE _S_A_M_E SEGMENT
         (LOGICALLY, PHYSICALLY, ACTUALLY AND ABSOLUTELY)





ox  THERE  IS NO  SEPARATE ENTITY  IN MULTICS  LIKE AN  EXECUTIVE DOING
   THINGS ON BEHALF OF THE USER.  THE Initializer.SysDaemon IS _N_O_T THE
   TIME-SHARE EXECUTIVE OF MULTICS
























Not To Be Reproduced              3-5                          MDD-003
                         _C_O_O_P_E_R_A_T_I_N_G__P_R_O_C_E_S_S_E_S

























               =========================================
               INSERT Cooperating Processes DIAGRAM HERE
               =========================================



























Not To Be Reproduced              3-6                          MDD-003
                          _T_H_E__P_L_/_I__O_P_E_R_A_T_O_R_S







ox  OPERATORS  ARE LANGUAGE  DEPENDENT PIECES  OF CODE  WHICH IMPLEMENT
   HARDWARE  OR OPERATING-SYSTEM  DEPENDENT FUNCTIONS  SUCH AS CALLING
   AND SIGNALLING





ox  CURRENTLY THERE ARE OPERATORS FOR  PL/I, COBOL, AND BASIC.  ALM AND
   FORTRAN SHARE THE PL/I OPERATORS





ox  ALL OPERATORS IN MULTICS ARE PURE, SHARED AND RE-ENTRANT ALM CODE





ox  OPERATORS COULD  BE GENERATED BY  THE COMPILERS AND  PLACED IN LINE
   WITH OTHER CODE, HOWEVER, THERE ARE DISADVANTAGES:



   []  SOME OPERATORS ARE TOO BULKY TO  BE INCLUDED WITH EACH USE (SUCH
      AS COMPLICATED I/O STATEMENTS)



   []  SOME  OPERATORS MIGHT CHANGE  IN THE FUTURE  (SUCH AS ENTRY  AND
      RETURN SEQUENCES)





ox  OPERATORS  ARE SIMILAR  TO QUICK  INTERNAL PROCEDURES  IMPLEMENTING
   WHAT IS OFTEN CALLED "LIBRARY FUNCTIONS" IN OTHER OPERATING SYSTEMS








Not To Be Reproduced              3-7                          MDD-003
                          _T_H_E__P_L_/_I__O_P_E_R_A_T_O_R_S







ox  INSTEAD OF  PASSING ARGUMENT LIST, ARGUMENTS ARE  USUALLY PASSED TO
   THE OPERATORS IN THE CPU'S REGISTERS





ox  INSTEAD  OF BEING  CALLED BY  A PROCEDURE  CALL, A  SINGLE TRANSFER
   INSTRUCTION IS USED (tsx0 or tsp3)





ox  THE  PL/I OPERATORS  IMPLEMENT THE  SUPPORT FUNCTIONS  FOR THE PL/I
   ENVIRONMENT





ox  SINCE A MULTICS  PROCESS IS A PL/I ENVIRONMENT,  THE PL/I OPERATORS
   ARE VITAL TO THE MULTICS SUPERVISOR (AND ANY OTHER PROGRAMS WRITTEN
   IN PL/I)
























Not To Be Reproduced              3-8                          MDD-003
                     _I_N_T_E_R_F_A_C_E_S__T_O__S_Y_S_T_E_M__M_O_D_U_L_E_S







ox  UNLIKE OTHER SUPERVISORS, THE  MULTICS SUPERVISOR IS _N_O_T SEQUENTIAL
   - THAT IS, THE CONCEPT OF "JOB FLOW" DOES NOT REALLY APPLY



   []  INSTEAD, THE SUBSYSTEMS  PERFORM ASYNCHRONOUSLY, BEING 'INVOKED'
      BY THOSE PROCESSES WHO REQUIRE THEIR SERVICES



   []  THESE  SUBSYSTEMS ARE INVOKED  BY THE USER'S  PROCESS IN ONE  OF
      THREE WAYS:


      []  EXPLICITLY - VIA A SUBROUTINE CALL OR A COMMAND


      []  IMPLICITLY - VIA A FAULT


      []  IMPLICITLY - VIA AN INTERRUPT











                     ============================
                     INSERT Triangle DIAGRAM HERE
                     ============================













Not To Be Reproduced              3-9                          MDD-003
                          _D_E_A_D_L_O_C_K__P_R_E_V_E_N_T_I_O_N







ox  WHAT IS DEADLOCK?



   []  DEADLOCK CAN OCCUR IN ANY MULTI-PROGRAMMING ENVIRONMENT WHEN TWO
      OR  MORE  PROCESSES  COMPETE   RANDOMLY  FOR  SERIALLY  REUSABLE
      RESOURCES



   []  THE CLASSIC EXAMPLE OF DEADLOCK IS THE "DEADLY EMBRACE"
















                  ==================================
                  INSERT Deadly Embrace DIAGRAM HERE
                  ==================================


















Not To Be Reproduced             3-10                          MDD-003
                          _D_E_A_D_L_O_C_K__P_R_E_V_E_N_T_I_O_N







ox  DEADLOCK SOLUTIONS



   []  DETECTION AND UNLOCKING


      []  SOME  SYSTEMS EMPLOY SCHEMES  WHICH DETECT THE  OCCURRENCE OF
         DEADLOCK AND "UNTANGLE" THE INVOLVED PROCESSES


      []  DETECTION  SCHEMES  ARE  USUALLY  DIFFICULT  TO IMPLEMENT AND
         EXPENSIVE IN TERMS OF OVERHEAD


      []  THE ACT OF UNTANGLING  THE INVOLVED PROCESSES USUALLY RESULTS
         IN AT LEAST  ONE OF THEM LOSING RESOURCES,  PRIORITY, OR EVEN
         ITS LIFE



   []  PREVENTION


      []  MOST  SYSTEMS  ADOPT  SOME  FORM  OF  PREVENTION  INSTEAD  OF
         DETECTION


      []  PREVENTION SCHEMES NORMALLY TAKE ONE OF TWO FORMS:

         []  CHECKING:  WHEREBY REQUESTS FOR RESOURCES ARE SCREENED FOR
            DEADLOCK POTENTIAL PRIOR TO ACCEPTANCE

         []  IMPOSED  POLICY:   WHEREBY  REQUESTS  FOR  MORE  THAN  ONE
            RESOURCE _M_U_S_T BE MADE:

            []  TOGETHER  AS  ONE  TOTAL  REQUEST  BEFORE  THE "JOB" OR
               "JOB-STEP" COMMENCES (ALL OR NOTHING); OR

            []  SERIALLY, IN A FIXED, PRE-DEFINED ORDER








Not To Be Reproduced             3-11                          MDD-003
                          _D_E_A_D_L_O_C_K__P_R_E_V_E_N_T_I_O_N







ox  MULTICS,  IN  GENERAL,  ADOPTS  THE  FOLLOWING  DEADLOCK PREVENTION
   SCHEME:



   []  USER  ASSIGNABLE RESOURCES (SUCH  AS TAPE DRIVES,  CARD PUNCHES,
      ETC)


      []  WHEN THE USER IS INTERACTIVE NO POLICY IS ENFORCED.  THE USER
         IS INFORMED IF THE RESOURCE IS  BUSY AND MAY EITHER TRY AGAIN
         OR GIVE UP


      []  WHEN  THE  USER  IS  NOT  INTERACTIVE,  THE  "ALL"  OR "NONE"
         APPROACH  SHOULD BE USED.   THE AVAILABILITY OF  ALL REQUIRED
         RESOURCES  BECOMES THE  DETERMINING FACTOR  IN SCHEDULING THE
         USER (SEE THE "RESOURCE CONTROL PACKAGE")


      []  SHOULD  A NON-INTERACTIVE  USER ATTEMPT  SERIAL REQUESTS  FOR
         RESOURCES, A  DEADLOCK SITUATION COULD POTENTIALLY  ARISE AND
         EXIST UNTIL THE AUTOMATIC LOGOUT DUE TO INACTIVITY OCCURS



   []  USER ACCESSIBLE RESOURCES (SUCH AS FILES, DATA BASES, ETC)


      []  IN GENERAL,  USER SEGMENTS IN THE HIERARCHY  POSE NO DEADLOCK
         PROBLEM SINCE THEY ARE  A SIMULTANEOUSLY USABLE RESOURCE (IE:
         THERE  IS NO  DEFAULT CONCURRENCY  MECHANISM ASSOCIATED  WITH
         USER SEGMENTS)


      []  SEGMENTS MAY BE PROTECTED FROM POTENTIAL CONCURRENCY PROBLEMS
         THROUGH USE OF LOCK WORDS  AND THE set_lock_ MECHANISM.  THIS
         REQUIRES MUTUAL AGREEMENT AMONG  ALL PROCESSES ACCESSING SUCH
         SEGMENTS


      []  SOME  SEGMENTS SUCH AS  THOSE USED BY  THE MULTICS DATA  BASE






Not To Be Reproduced             3-12                          MDD-003
                          _D_E_A_D_L_O_C_K__P_R_E_V_E_N_T_I_O_N


         MANAGER (MDBM), USE A "COMMITMENT/ROLLBACK" SCHEME



   []  SUPERVISOR RESOURCES (SUCH AS HARDCORE DATABASE)


      []  LOCKWORDS  (OR  SIMPLY  "LOCKS")   ARE  USED  IN  MULTICS  TO
         IMPLEMENT  CONCURRENT  ACCESS  CONTROL  IN  THE MULTI-PROCESS
         ENVIRONMENT










                  ===================================
                  INSERT Locking Concept DIAGRAM HERE
                  ===================================












      []  THE SUPERVISOR  LOCKS ARE ARRANGED  IN A PARTIAL  ORDER AND A
         CODING CONVENTION  PREVENTS WAITING ON A LOCK  _I_F THE PROCESS
         HAS A HIGHER LOCK LOCKED


      []  THIS  PARTIAL  ORDER  IS  DETERMINED  BY  AN  ANALYSIS OF THE
         OPERATING  SYSTEM'S  BEHAVIOR.   FOR  EXAMPLE:   SINCE A PAGE
         FAULT  MAY PROPERLY  OCCUR WHILE   A PROCESS  HAS THE  ACTIVE
         SEGMENT TABLE (AST) LOCKED,  AND PAGE FAULT HANDLING REQUIRES
         THE LOCKING OF THE PAGE TABLE  LOCK, THE PAGE TABLE LOCK MUST
         BE PLACED "HIGHER" IN THE PARTIAL ORDER THAN THE AST LOCK


      []  TO THE  DEGREE THAT THE SYSTEM PROGRAMMERS  OBEY THIS PARTIAL
         ORDER,  A  DEADLY  EMBRACE  CANNOT  OCCUR  WITHIN THE MULTICS
         SUPERVISOR


Not To Be Reproduced             3-13                          MDD-003
                          _D_E_A_D_L_O_C_K__P_R_E_V_E_N_T_I_O_N

























                 =====================================
                 INSERT Locking Hierarchy DIAGRAM HERE
                 =====================================



























Not To Be Reproduced             3-14                          MDD-003
                            _T_Y_P_E_S__O_F__L_O_C_K_S







ox  LOCKS WITHIN MULTICS:



   []  ARE  36  BIT  WORDS  CONTAINING  EITHER  ZERO  (UNLOCKED)  OR  A
      PROCESS_ID (LOCKED)



   []  CONTROL PROCESSES, _N_O_T PROCESSORS



   []  ARE MUTUALLY EXCLUSIVE LOCKS



   []  THE HARDWARE  SUPPORTS SEVERAL INDIVISIBLE INSTRUCTIONS  USED IN
      IMPLEMENTING THE LOCKING PRIMITIVES.  FOR EXAMPLE:



   []  STAC (_S_TORE _A _CONDITIONAL)


      []  IF C(Y)=0 THEN C(A) -> C(Y)


      []  TYPICAL USE:  LOCKING.  IF THE  LOCKWORD (Y) IS UNLOCKED (=0)
         THEN LOCK THE LOCK BY STORING  THE PROCESS_ID (WHICH IS IN A)
         INTO THE LOCKWORD


      []  SPECIAL  HARDWARE  PROHIBITS   SIMILAR  REFERENCES  BY  OTHER
         PROCESSORS DURING THE TEST AND DATA TRANSFER WINDOW



   []  ALSO STACQ (_S_TORE _A _CONDITIONAL ON  _Q), LDAC (_LOA_D _A AND _CLEAR),
      LDQC (_LOA_D _Q AND _CLEAR), SZNC (_SET _Z AND _N AND _CLEAR)








Not To Be Reproduced             3-15                          MDD-003
                            _T_Y_P_E_S__O_F__L_O_C_K_S







ox  WITHIN  THE MULTICS  SUPERVISOR EXISTS  TWO TYPES  OF LOCKS:   LOOP
   LOCKS AND WAIT LOCKS



   []  LOOP LOCKS







                    ==============================
                    INSERT Loop Locks DIAGRAM HERE
                    ==============================









      []  SIMPLIFIED PL/I ANALOGY:

         do while (lockword ^=0);
         end;
         lockword = process_id;
         <update data>
         lockword = 0;


      []  LOOP LOCKS ARE  USED WHEN IT WOULD NOT BE  ACCEPTABLE TO GIVE
         UP THE PROCESSOR BEFORE LOCKING THE LOCK.


      []  LOOP  LOCKS TYPICALLY  PROTECT THE  LOWEST LEVEL  OF CRITICAL
         SUPERVISOR DATABASES:  TRAFFIC CONTROL, PAGE CONTROL, ETC.








Not To Be Reproduced             3-16                          MDD-003
                            _T_Y_P_E_S__O_F__L_O_C_K_S





   []  WAIT LOCKS







              ===========================================
              INSERT Wait Locks (Simplified) DIAGRAM HERE
              ===========================================









      []  SIMPLIFIED PL/I ANALOGY:

         do while (lockword ^=0);
            <GIVE UP PROCESSOR>
            <WAIT FOR NOTIFICATION>
         end;
         Lockword = process_id;
         <update data>
         Lockword = 0
         <SEND NOTIFICATION>


      []  MOST SUPERVISOR LOCKS ARE WAIT LOCKS


      []  IN  GENERAL, A PROCESS  IS ALLOWED TO  GIVE UP ITS  PROCESSOR
         WHEN IT HAS WAIT LOCKS LOCKED


      []  THE WAIT LOCK  MECHANISM WILL BE DESCRIBED IN  MORE DETAIL IN
         TOPIC 9









Not To Be Reproduced             3-17                          MDD-003
                            _T_Y_P_E_S__O_F__L_O_C_K_S


                                        TOPIC IV

                           Name Space and Address Space Management

                                                                         Page

                           Name/Address Space Overview . . . . . . . . . 4-1
                           Name/Address Space Terminology. . . . . . . . 4-5
                           Name/Address Space Concepts . . . . . . . . . 4-7
                           Name/Address Space Data Bases . . . . . . . . 4-12
                               Reference Name Table (RNT). . . . . . . . 4-12
                               Known Segment Table (KST) . . . . . . . . 4-13
                               Descriptor Segment (DSEG) . . . . . . . . 4-14
                           Typical Address Space . . . . . . . . . . . . 4-16
                           Name/Address Space Meters . . . . . . . . . . 4-32
                               system_link_meters. . . . . . . . . . . . 4-32
                               link_meters . . . . . . . . . . . . . . . 4-33
                           Name/Address Space Commands . . . . . . . . . 4-34
                               display_kst_entry . . . . . . . . . . . . 4-34



































                                  4-i                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  IMPLEMENT THE PER PROCESS VIRTUAL MEMORY





ox  BASIC PHILOSOPHY



   []  AS A NEWLY  LOGGED IN USER ATTEMPTS TO TOUCH  VARIOUS SEGMENTS A
      CONSIDERABLE   AMOUNT   OF   MANAGEMENT   INFORMATION   MUST  BE
      (TRANSPARENTLY)   FOUND  AND/OR   COMPUTED  BEFORE   THE  USER'S
      REFERENCE IS ACTUALLY ACCOMPLISHED



   []  FOR EVERY SEGMENT REFERENCED BY THE USER, THE SUPERVISOR:


      []  ASSIGNS A SEGMENT NUMBER (FOR REASON OF HARDWARE ADDRESSING),
         AND


      []  RECORDS (REMEMBERS) THE MANAGEMENT INFORMATION (FOR REASON OF
         SOFTWARE EFFICIENCY AND CONTROL)



   []  SUCH SEGMENTS ARE SAID TO BE "KNOWN TO THE PROCESS"



   []  THE MANAGEMENT INFORMATION IS MAINTAINED  ON A PER PROCESS BASIS










Not To Be Reproduced              4-1                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__O_V_E_R_V_I_E_W


      IN THREE COMPLEMENTING AREAS:  DSEG, KST, AND RNT



   []  MANAGES TWO DISTINCT SETS OF INFORMATION:


      []  ADDRESS  SPACE -  CORRESPONDENCE BETWEEN  SEGMENT NUMBERS AND
         THE SEGMENTS THEMSELVES


      []  NAME SPACE - CORRESPONDENCE BETWEEN SEGMENT NUMBERS AND NAMES
         THE USER REFERS TO THEM BY



   []  CALLS DIRECTORY CONTROL TO LOCATE SEGMENTS INITIALLY



   []  NAME SPACE  / ADDRESS SPACE MANAGEMENT IS  INVOKED BY SUBROUTINE
      CALLS, AND BY LINKAGE FAULTS (THE "DYNAMIC LINKER")





ox  PRINCIPAL USER INTERFACES



   []  COMMAND LEVEL


      []  initiate, terminate, terminate_segno, terminate_ref_name,
         terminate_single_ref_name, list_ref_name


      []  THE COMMAND  PROCESSOR ITSELF - WHICH USES  THESE SERVICES TO
         LOCATE COMMANDS



   []  SUBROUTINE LEVEL


      []  hcs_$initiate, hcs_$initiate_count_, hcs_$terminate_file,
         hcs_$terminate_seg, hcs_$terminate_name,
         hcs_$terminate_noname, term_




Not To Be Reproduced              4-2                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__O_V_E_R_V_I_E_W







ox  MAJOR DATA BASES



   []  DESCRIPTOR SEGMENT (DSEG) - ONE PER PROCESS


      []  SEGMENT DESCRIPTOR WORD (SDW) - ONE PER KNOWN SEGMENT


      []  DEFINES THE USER'S ADDRESS SPACE TO THE HARDWARE



   []  KNOWN SEGMENT TABLE (KST) - ONE PER PROCESS


      []  KNOWN  SEGMENT TABLE  ENTRY (KSTE)  - ONE  PER KNOWN  SEGMENT
         (EXCEPT SUPERVISOR SEGMENTS)


      []  DEFINES THE  USER'S ADDRESS SPACE  TO THE SUPERVISOR  AND THE
         USER


      []  EACH KSTE ASSOCIATES A USER'S SEGMENT NUMBER WITH THE SEGMENT
         CONTROL ATTRIBUTES OF THAT SEGMENT


      []  THE  SEARCH  FOR  AN  AVAILABLE  KSTE  DETERMINES A SEGMENT'S
         NUMBER



   []  REFERENCE NAME TABLE (RNT) - ONE PER EACH RING IN EACH PROCESS


      []  NOT A  SEGMENT - KEPT AS  A REGION ALLOCATED IN  THE "LINKAGE
         AREA" FOR EACH RING


      []  REFERENCE NAME TABLE ENTRY (RNTE) - ONE PER REFERENCE NAME






Not To Be Reproduced              4-3                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__O_V_E_R_V_I_E_W




      []  USED    BY   THE    DYNAMIC   LINKER    TO   IMPLEMENT    THE
         "initiated_segments" SEARCH RULE


      []  DEFINES THE USER'S NAME SPACE TO THE USER


      []  NAME SPACE  MAY BE DIFFERENT  IN DIFFERENT RINGS  OF THE SAME
         PROCESS










































Not To Be Reproduced              4-4                          MDD-003
                    _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__T_E_R_M_I_N_O_L_O_G_Y







SEGMENT DESCRIPTOR WORD (SDW):

               A TWO WORD PAIR USED BY THE HARDWARE WHEN REFERENCING A
               SEGMENT.





DESCRIPTOR SEGMENT (DSEG):

               THE MOST FUNDAMENTALLY IMPORTANT  SEGMENT IN A PROCESS.
               CONTAINS AN  ARRAY OF SDW'S DEFINING  THE ADDRESS SPACE
               OF THE PROCESS





ADDRESS SPACE:
               THE SET OF ALL SEGMENTS  (PROCEDURE AND DATA) FOR WHICH
               THE  PROCESS HAS A  SEGMENT NUMBER AND  A CORRESPONDING
               SDW.  THE ADDRESS SPACE  EXPANDS AND CONTRACTS DURING A
               SEGMENT'S LIFE





SEGMENT NUMBER:

               AN  OCTAL  NUMBER   0-1777  (0-1023  DECIMAL)  ASSIGNED
               UNIQUELY  TO A  SEGMENT.  USED  BY THE  HARDWARE AS  AN
               OFFSET  INTO  THE  ARRAY  OF  SDW'S  WHEN REFERENCING A
               SEGMENT





MAKING KNOWN:
               THE  ACT OF  ASSIGNING A  SEGMENT NUMBER  TO A SEGMENT,
               THEREBY ADDING IT TO  THE ADDRESS SPACE.  SEGMENTS MUST
               BE MADE KNOWN BEFORE THEY CAN BE REFERENCED




Not To Be Reproduced              4-5                          MDD-003
                    _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__T_E_R_M_I_N_O_L_O_G_Y







NAME SPACE:
               THE  SET OF ALL  SEGMENTS FOR WHICH  THE PROCESS HAS  A
               REFERENCE  NAME.  THE  REFERENCE NAME  MAY BE DIFFERENT
               THAN THE  SEGMENTS ACTUAL NAME (ITS  ENTRYNAME).  SINCE
               SOME  SEGMENTS IN THE  ADDRESS SPACE HAVE  NO REFERENCE
               NAME, THE NAME SPACE IS  A PROPER SUBSET OF THE ADDRESS
               SPACE









































Not To Be Reproduced              4-6                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_N_C_E_P_T_S







ox  A MULTICS PROCESS IS A  WELL DEFINED COLLECTION OF UNIQUE SEGMENTS,
   EACH WITH  DEFINED ACCESS, OVER  WHICH A SINGLE  EXECUTION POINT IS
   FREE TO ROAM (I.E., FETCH INSTRUCTIONS AND MAKE DATA REFERENCES)





ox  THE  ADDRESS  SPACE  OF  A  PROCESS  IS  THE  ABOVE  "COLLECTION OF
   SEGMENTS".  SUCH SEGMENTS ARE SAID TO BE KNOWN TO THE PROCESS



   []  ALL  SUPERVISOR (RING  0) SEGMENTS  ARE PLACED  INTO THE ADDRESS
      SPACE AT PROCESS  CREATION TIME.  THIS ADDRESS SPACE  IS SAID TO
      BE "CLONED" FROM THE INITIALIZER ADDRESS SPACE


      []  THE RING ZERO ADDRESS SPACE IN ANY PROCESS IS THE SAME AS THE
         INITIALIZER'S RING  ZERO ADDRESS SPACE, EXCEPT  FOR THE DSEG,
         KST, PDS, PRDS, AND STACK_0


      []  THE RING ZERO ADDRESS SPACE HAS  NO RNT, BECAUSE IT IS SET UP
         DURING SYSTEM INITIALIZATION, AND DOES NOT CHANGE



   []  OTHER SEGMENTS ARE MADE KNOWN AND UNKNOWN DURING THE LIFE OF THE
      PROCESS


      []  IMPLICITLY BY THE DYNAMIC LINKER  (LINKAGE FAULT) OR A SYSTEM
         COMMAND

                   print my_dir>my_seg

                   tester


      []  EXPLICITLY BY COMMANDS OR SUBROUTINES THAT MANAGE THE ADDRESS
         SPACE

                   initiate my_prog call hcs_$terminate_segno




Not To Be Reproduced              4-7                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_N_C_E_P_T_S





   []  MAKING A SEGMENT  KNOWN IS SIMILAR TO DECLARING A  VARIABLE IN A
      PL/I PROGRAM.  IT SIGNIFIES INTENT, BUT NOT USAGE



   []  THE PRESENCE  OF ONE OR MORE  PAGES OF A SEGMENT  IN MAIN MEMORY
      IMPLIES THAT THE  SEGMENT IS KNOWN TO (AND IS  BEING USED BY) AT
      LEAST ONE USER



   []  BEING KNOWN DOES NOT IMPLY PRESENCE IN MAIN MEMORY





ox  NOTE  THAT  THIS  SET  OF  SEGMENTS,  THE  EXECUTION POINT, AND THE
   REGISTERS  AND INDICATORS  OF THE  PROCESSOR, UNIQUELY  DEFINES THE
   STATE OF THE PROCESS






























Not To Be Reproduced              4-8                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_N_C_E_P_T_S















              ==========================================
              INSERT N/A Space Manipulation DIAGRAM HERE
              ==========================================





































Not To Be Reproduced              4-9                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_N_C_E_P_T_S

























               ========================================
               INSERT NS and AS Management DIAGRAM HERE
               ========================================



























Not To Be Reproduced             4-10                          MDD-003
                      _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_N_C_E_P_T_S

























         ====================================================
         INSERT Multics Virtual Memory Structure DIAGRAM HERE
         ====================================================



























Not To Be Reproduced             4-11                          MDD-003
                     _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__D_A_T_A__B_A_S_E_S

                      _R_E_F_E_R_E_N_C_E__N_A_M_E__T_A_B_L_E__(_R_N_T_)














               ========================================
               INSERT Reference Name Table DIAGRAM HERE
               ========================================




































Not To Be Reproduced             4-12                          MDD-003
                     _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__D_A_T_A__B_A_S_E_S

                       _K_N_O_W_N__S_E_G_M_E_N_T__T_A_B_L_E__(_K_S_T_)














                =======================================
                INSERT Known Segment Table DIAGRAM HERE
                =======================================




































Not To Be Reproduced             4-13                          MDD-003
                     _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__D_A_T_A__B_A_S_E_S

                       _D_E_S_C_R_I_P_T_O_R__S_E_G_M_E_N_T__(_D_S_E_G_)














                ======================================
                INSERT Descriptor Segment DIAGRAM HERE
                ======================================




































Not To Be Reproduced             4-14                          MDD-003
                     _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__D_A_T_A__B_A_S_E_S

                       _D_E_S_C_R_I_P_T_O_R__S_E_G_M_E_N_T__(_D_S_E_G_)
























       ========================================================
       INSERT States of Segments and Pages (short) DIAGRAM HERE
       ========================================================


























Not To Be Reproduced             4-15                          MDD-003
                         _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E







ox  COLLECTION ZERO



   []  SEGMENTS  WHICH MUST BE  PRESENT TO RUN  THE VERY FIRST  LOADING
      PROGRAM



   []  SEGMENTS WHICH  HAVE FIXED ABSOLUTE ADDRESSES  TO INTERFACE WITH
      HARDWARE



   []  ALL DESCRIBED IN template_slt_.cds



   0  [pd]>dseg                                        (ring 0)
        The  descriptor  segment.   The  Initializer's  dseg
        comes  from  the  system  tape  and  is built during
        system  initialization; all   others are  created by
        process creation.

   1  fault_vector                                     (ring 0, perm-wired)
        Contains the interrupt vector, fault vector, and the
        ITS pairs for SCU  and TRA instructions.  Located at
        absolute locations 0-577.  Used by the CPU hardware.

   2  iom_mailbox                                      (ring 0, perm-wired)
        Mailboxes  (communications  areas)  for  up  to four
        IOMs.   Located  at  locations  1200-3377  absolute.
        Used by the IOM hardware.

   3  >sl1>config_deck                                 (ring 0, deciduous)
        The online  copy of the config deck.   This is built
        from the  config deck provided by  BOS during system
        initialization, but it is  not the copy BOS actually
        uses.

   4  dn355_mailbox                                    (ring 0)
        Mailboxes  (communications areas)   for up  to eight
        FNPs.   Located  at  absolute  locations  3400-6377.
        Used by the FNP hardware.




Not To Be Reproduced                4-16                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


   5  bos_toehold                                      (ring 0, perm-wired)
        The  segment  containing  the  tiny  program used to
        switch  between  Multics  and  BOS  at  crash  time.
        Located at absolute locations 10000-11777.

   6  flagbox                                          (ring 0, perm-wired)
        A  region inside  the bos_toehold  segment (yes,  it
        really  overlaps  the  toehold)  used  to access the
        BOS/Multics communication region.

   7  >sl1>slt                                         (ring 0, deciduous)
  10  >sl1>name_table                                  (ring 0, deciduous)
        The two primary  databases of system initialization.
        The  SLT  contains  one  entry  for every supervisor
        segment read  from the system boot  tape, containing
        all its attributes.  The separate name_table is used
        to  hold the  names, because  each segment  may have
        several

This marks the end of Collection Zero.  All the rest of the segments in the
address space are  either read from the system tape or  found in the online
system.































Not To Be Reproduced                4-17                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E







ox  COLLECTION ONE



   []  FIRST BATCH OF SEGMENTS READ FROM SYSTEM TAPE



   []  ALL THE PROGRAMS AND DATABASES NEEDED TO MAKE PAGING RUN



   []  ALL SEGMENTS  WHICH MUST BE "perm-wired" --  PERMANENTLY ALLOCATED IN
      LOW MEMORY, WITHOUT PAGE TABLES



  11  lot                                              (ring 0)
        The supervisor's linkage offset table.  Used to find
        linkage sections.  Built as the segments are read in
        from tape.

  12  as_linkage                                       (ring 0)
  13  ws_linkage                                       (ring 0)
        The  permanent supervisor combined  linkage regions.
        The  names  mean  "Active  Supervisor  Linkage"  and
        "Wired   Supervisor  Linkage",   respectively.   The
        linkage   sections  of   all  permanent   supervisor
        segments are put in one of these as the segments are
        read from the tape.

  14  >sl1>definitions_                                (ring 0, deciduous)
        The segment containing  all the definitions sections
        of  supervisor programs.   The definitions  sections
        are placed  here as the  programs are read  from the
        tape, and used by the hardcore prelinker.

  15  sst_seg                                          (ring 0, perm-wired)
        The  segment containing  all ASTEs  and page tables.
        Covered  in under  Page and  Segment Control.   This
        segment  is allocated  at the  very top  end of  the
        bootload SCU.

  16  core_map                                         (ring 0, perm-wired)
        All  the  core  map  entries,  describing all system
        memory.  Covered  under Page Control.  This  used to


Not To Be Reproduced                4-18                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


        be part of  the SST, but was moved out  to make more
        room for page tables.

  17  abs_seg                                          (ring 0, abs-seg)
        An abs-seg used for  complex call-side operations in
        page    control,    such     as    evict_page    and
        reconfiguration.

  20  abs_seg1                                         (ring 0, abs-seg)
        An  abs-seg used only  by page control  for checking
        page  frame contents  for zeros,  and zeroing  newly
        allocated page frames.

  21  backup_abs_seg                                   (ring 0, abs-seg)
        An abs-seg  used to access the  segment being dumped
        in  a Volume  Dumper process.   It is  given an  SDW
        which  refers to  any ordinary  segment.  This  is a
        very  special  hardcore   segment,  because  it  has
        trailer  entries,  and  it  is  special-cased by the
        trailer  manipulation  program,  setfaults.   Normal
        hardcore segments never receive trailers, since they
        are never activated or deactivated.

  22  fim_abs_seg                                      (ring 0, abs-seg)
        An abs-seg  used by the  FIM to scan  the cache when
        attempting to diagnose cache parity errors.

  23  isolts_abs_seg                                   (ring 0, abs-seg)
        An  abs-seg used  by ISOLTS,  which gives  it an SDW
        describing  the low  64K of  the SCU  being used for
        ISOLTS testing.

  24  volmap_abs_seg                                   (ring 0, abs-seg)
        An  abs-seg used  by page  control to  access record
        stocks.  It  is given the SDW  of whichever volume's
        stock is needed.

  25  bound_active_1                                   (ring 0)
  26  bound_disk_util                                  (ring 0)
  27  bound_disk_util_wired                            (ring 0, perm-wired)
  30  bound_error_active                               (ring 0)
  31  bound_error_wired                                (ring 0, perm-wired)
  32  bound_interceptors                               (ring 0, perm-wired)
        This is where the FIM lives.

  33  bound_io_wired                                   (ring 0, perm-wired)
  34  bound_iom_support                                (ring 0, perm-wired)
  35  bound_page_control                               (ring 0, perm-wired)
  36  bound_priv_1                                     (ring 0, perm-wired)
  37  >sl1>bound_sss_wired_                            (ring 0, deciduous)
        This  is where  pl1_operators_ and  a whole  host of


Not To Be Reproduced                4-19                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


        other miscellaneous  subroutines live.  It  is wired
        in  a  very  special  way,  because  not  all of its
        contents  need  to  be  wired.   In particular, only
        about half of pl1_operators_  needs to be wired, and
        there is a special  hack in make_sdw.pl1 which finds
        the definition in the middle of pl1_operators_ which
        marks  the end  of the  wired portion,  and makes an
        ASTE for bound_sss_wired_ which has all its pages up
        to and including that definition wired, and the rest
        unwired.

  40  bound_tc_priv                                    (ring 0, perm-wired)
  41  bound_tc_wired                                   (ring 0, perm-wired)
  42  bound_unencacheable                              (ring 0, perm-wired)
  43  dir_seg                                          (ring 0, abs-seg)
        An abs-seg now used only at process termination time
        to loop  through the dead process's KST  in order to
        flush any trailers it had for active segments.

  44  disk_post_queue_seg                              (ring 0, perm-wired)
        The segment where the core address queue lives:  see
        core_queue_man.alm.   This is  discussed under  Page
        Control.

  45  disk_seg                                         (ring 0, perm-wired)
        The  segment containing   the disk  DIM's databases:
        device table, channel table, and I/O queues.

  46  dn355_data                                       (ring 0, perm-wired)

        The   segment  containing   software  communications
        regions for the FNPs.  This is not where FNP buffers
        are kept,  but only the mailboxes  that describe the
        buffers, and some control information.

  47  ds_seg                                           (ring 0, abs-seg)
        The segment used by setfaults when accessing another
        process's  DSEG  in  order   to  remove  a  trailer.
        Covered under Segment Control.

  50  emergency_shutdown                               (ring 0, perm-wired)
        The procedure segment which starts  an ESD.  It is a
        separate segment because BOS has  to be able to find
        it and transfer to it.

  51  hardcore_sct_seg                                 (ring 0)
        The  segment containing  the static  condition table
        for ring zero; it's just  like the one which is kept
        in  an outer  ring  stack  header.  The  only static
        handlers in  ring zero are those used  to invoke the
        copy_on_write mechanism.


Not To Be Reproduced                4-20                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


  52  idle_dsegs                                       (ring 0, perm-wired)
  53  idle_pdses                                       (ring 0, perm-wired)
        Two similar segments:  they contain the DSEG and PDS
        segments for  all the idle processes, all  in a row.
        When  an idle process  is constructed, the  SDWs for
        its DSEG and PDS are set up to point into the middle
        of one of these segments.

  54  init_processor                                   (ring 0)
  55  inzr_stk0                                        (ring 0)
        The  stack segment  used by  the Initializer  during
        initialization   and    shutdown.    During   normal
        operation, the Initializer  participates in ordinary
        ring zero stack sharing.

  56  iobm_data                                        (ring 0, perm-wired)
        The database of iobm.pl1, the I/O Buffer Manager.

  57  ioi_abs_seg                                      (ring 0, abs-seg)
        The  abs-seg used  by ioi_interrupt.pl1  to access a
        user  ioi_  buffer  at  interrupt  time, for storing
        status information.

  60  ioi_data                                         (ring 0, perm-wired)
        The   database    for   ioi_   --    describes   all
        user-accessable,   or  potentially   user-accessable
        devices.   See the  programs in  bound_io_active and
        bound_io_wired.

  61  iom_data                                         (ring 0, perm-wired)
        Describes  the   configuration  of  the   IOMs,  and
        software  information about IOM  channels.  Contains
        assignment   information,   software   status  queue
        location, and metering cells.

  62  oc_data                                          (ring 0, perm-wired)
        The  database for  the ring  zero operator's console
        mechanism.  This is used by syserr in ring zero, and
        by  the Initializer to  write on the  system console
        (but not message coordinator consoles).

  63  [pd]>pds                                         (ring 0, deciduous)
        The  Process Data  Segment.  This  contains all  the
        miscellaneous  information  that   makes  a  process
        unique  to the supervisor,  and need not  be readily
        accessable  to  other  processes.   Most per-process
        variables  are  referenced   symbolically,  such  as
        pds$processid,      pds$page_fault_data     (machine
        conditions for last page fault), etc.




Not To Be Reproduced                4-21                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


  64  >sl1>prds                                        (ring 0, deciduous)
        Like the PDS, but  per-processor.  Contains the same
        sort of miscellaneous information,  and is also used
        as the  ring zero stack for certain  types of faults
        (page faults,  connects, and timer runouts)  and all
        interrupts.   There is  a PRDS  per processor, named
        >sl1>cpu_A.prds, cpu_B.prds, etc.   The PRDS segment
        in ring zero is changed at LDBR time to indicate the
        actual  PRDS of  the processor  that the  process is
        going to run on; thus, it's sort of an abs-seg.  All
        PRDS's are wired, but have page tables.

  65  >sl1>pvt                                         (ring 0, deciduous)
        The Physical  Volume Table.  Described  under Volume
        Management and Page Control.

  66  rdisk_seg                                        (ring 0, abs-seg)
        A PTW-type abs-seg (the only  one where the PTW ever
        changes).  Used only by the program read_disk, which
        does  I/O  to  arbitrary  pages  on  any  disk,  its
        aste.pvtx  and PTW  are switched  around to indicate
        the right page, which is  faulted on and (if needed)
        written back out by pc$cleanup.

  67  restart_fault                                    (ring 0)
  70  return_to_ring_0_                                (ring 0)
        These  two  procedures  are  used  to  implement the
        restarting  of faults (such  as a QUIT  signal) from
        the  user ring.   When a  fault occurs,  a frame  is
        pushed on the user ring stack, with its owner set to
        be  return_to_ring_0_.   Additionally,  the  machine
        conditions for the fault are  saved in ring zero (in
        the  PDS) so  that when  restart_fault is  called to
        restart  a possibly  modified set  of conditions, it
        can compare and validate.

  71  scas                                             (ring 0, abs-seg)
        The  System  Controller  Addressing  Segment.   This
        segment  has a  page overlaid   on a  page of  every
        system controller.  No data is ever accessed through
        this segment; its page table is not even in the SST,
        but  in  the  SCS.   It  is  used  only  for certain
        privileged  instructions which require  an effective
        address in an particular SCU in order to read or set
        control registers in the SCU.

  72  scs                                              (ring 0, perm-wired)
        The System Configuration Segment.  It describes most
        of the hardware  configuration, and contains various
        control    words   used   by    privileged   control
        instructions.


Not To Be Reproduced                4-22                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


  73  signaller                                        (ring 0)
        The  procedure  which  implements  user  ring  fault
        signalling.

  74  >sl1>sst_names_                                  (ring 0, deciduous)
        The SST name table.  This is a debugging feature; it
        contains   (when   in    use)   the   primary   name
        corresponding to  every segment in the  AST.  It can
        be maintained online, by use of the PARM ASTK config
        card, but usually is not.  It is always filled in by
        FDUMP after a crash if it was not already in use.

  75  stack_0_data                                     (ring 0, perm-wired)
        Data segment  describing the available  segments for
        use  in ring  zero stack  sharing.  These  segments,
        seen later on as segment  230, are recorded here and
        multiplexed among eligible processes.

  76  stock_seg                                        (ring 0, perm-wired)
        The segment containing all  in-core record and VTOCE
        stocks for use by  page control and segment control,
        and covered under those topics.

  77  >sl1>sys_boot_info                               (ring 0, deciduous)
        A data segment containing  information about the I/O
        devices (tape and disk) used during bootload.

 100  >sl1>sys_info                                    (ring 0, deciduous)
        Contains assorted global wired information shared by
        the  user ring and  supervisor.  Some is  set during
        bootload,  and  some  comes  off  the  tape; none is
        modified after initialization is complete.

 101  syserr_data                                      (ring 0, perm-wired)
        Data  segment for  the  lowest  level of  the syserr
        mechanism.   Syserr messages   are built  and queued
        here, and sent to the console.  They are also copied
        out by the syserr  logger hardcore process, into the
        syserr_log.

 102  syserr_log                                       (ring 0, abs-seg)
        This  segment  overlays  the  LOG  partition on some
        disk,  which  is  used   to  reliably  store  syserr
        messages   until  they   can  be   copied  into  the
        perm_syserr_log maintained in the Hierarchy.

 103  tc_data                                          (ring 0)
        The  traffic  control  data  segment;  contains  all
        traffic   control  data.    Covered  under   Traffic
        Control.



Not To Be Reproduced                4-23                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


 104  wired_hardcore_data                              (ring 0, perm-wired)
        Miscellaneous data used by the wired supervisor.



















































Not To Be Reproduced                4-24                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E







ox  COLLECTION TWO



   []  THE UNWIRED PORTION OF THE SUPERVISOR



   []  READ  IN  BY  COLLECTION   ONE,  DIRECTLY  INTO  PAGED
      SEGMENTS IN THE HARDCORE PARTITIONS



 105  >sl1>active_all_rings_data                       (ring 0, deciduous)
        Miscellaneous   data  shared  between   the  unwired
        supervisor and the outer rings.

 106  active_hardcore_data                             (ring 0)
        Miscellaneous  data used  by the  unwired portion of
        the  supervisor:  system-wide locks,  size constants
        for directory control, system  search rule info, and
        metering  for  directory  control  and  the  dynamic
        linker.

 107  >sl1>admin_gate_                                 (ring 0, deciduous)
 110  ast_lock_meter_seg                               (ring 0)
        A  segment  used  to   collect  AST  lock  metering,
        normally  off  (enabled   by  the  ast_lock_metering
        tuning parameter).

 111  >sl1>audit_gate_                                 (ring 0, deciduous)
 112  bound_355_wired                                  (ring 0)
 113  bound_file_system                                (ring 0)
 114  bound_hc_backup                                  (ring 0)
 115  bound_hc_reconfig                                (ring 0)
 116  bound_hc_tuning                                  (ring 0)
 117  bound_imp_dim_                                   (ring 0)
 120  bound_imp_status                                 (ring 0)
 121  bound_io_active                                  (ring 0)
 122  bound_mcs_util                                   (ring 0)
 123  bound_priv_mpx                                   (ring 0)
 124  bound_network0_                                  (ring 0)
 125  bound_priv_procs                                 (ring 0)
 126  bound_process_creation                           (ring 0)
 127  bound_salvager                                   (ring 0)
 130  bound_scavenger                                  (ring 0)


Not To Be Reproduced                4-25                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


 131  >sl1>bound_sss_active_                           (ring 0, deciduous)
 132  bound_system_faults                              (ring 0)
 133  bound_tty_active                                 (ring 0)
 134  bound_vtoc_man                                   (ring 0)
 135  bound_x25_mpx                                    (ring 0)
 136  dbm_seg                                          (ring 0)
        The  segment used  to hold  the dumper  bit maps for
        volumes being  volume-dumped.  The bitmaps  are read
        from  the  volume  header  when  a  dump begins, and
        written back when finished.

 137  dirlockt_seg                                     (ring 0)
        The  segment used  to  keep  track of  all directory
        locks.   Directory locks  are kept  in a  supervisor
        segment, rather than in directories themselves.

 140  >sl1>dm_hcs_                                     (ring 0, deciduous)
 141  >sl1>dm_journal_seg_                             (ring 0, deciduous)
 142  >sl1>error_table_                                (ring 0, deciduous)
 143  fnp_dump_seg                                     (ring 0)
        Segment  used for  data  buffering  by FNP  dump and
        patch operations (but not bootload).

 144  hasp_mpx                                         (ring 0)
 145  >sl1>hc_backup_                                  (ring 0, deciduous)
 146  >sl1>hcs_                                        (ring 0, deciduous)
 147  >sl1>hphcs_                                      (ring 0, deciduous)
 150  ibm3270_mpx                                      (ring 0)
 151  imp_data                                         (ring 0)
 152  imp_dim_buf_                                     (ring 0)
 153  imp_tables                                       (ring 0)
 154  imp_wired_buffers                                (ring 0)
        These four  segments were used by the  ring zero IMP
        DIM (part  of the ARPAnet support),  which has since
        been decomissioned.

 155  initializer_abs_seg                              (ring 0, abs-seg)
        An abs-seg used solely in  order to copy a process's
        stack_0  segment  into   its  process  directory  on
        process termination.

 156  >sl1>initializer_gate_                           (ring 0, deciduous)
 157  io_page_tables                                   (ring 0)
        The segment which contains  page tables used for I/O
        if  the  IOM  is  operating  in  Paged  mode.  It is
        initialized by ioi_init and used only for ioi_ I/O.

 160  ioat                                             (ring 0)
        The  I/O attach table.   This is a  largely obsolete
        database,  the  relic  of   an  earlier  I/O  device



Not To Be Reproduced                4-26                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


        attachment scheme.  It is  now used only for loading
        and dumping FNPs.

 161  >sl1>ioi_                                        (ring 0, deciduous)
  62  [pd]>kst_seg                                     (ring 0, deciduous)
        The  Known  Segment  Table.   Described  in  Name  &
        Address Space Management.

 163  lvt                                              (ring 0)
        The  Logical  Volume  Table.   Described  in  Volume
        Management.

 164  >sl1>mhcs_                                       (ring 0, deciduous)
 165  ncp_tables_                                      (ring 0)
        Another  part of   the now-decommissioned  ring zero
        ARPAnet support, no longer used.

 166  >sl1>net_ring0_admin_                            (ring 0, deciduous)
 167  >sl1>net_ring0_sys_                              (ring 0, deciduous)
 170  >sl1>net_ring0_user_                             (ring 0, deciduous)
 171  >sl1>phcs_                                       (ring 0, deciduous)
 172  polled_vip_mpx                                   (ring 0)
 173  pv_salv_seg                                      (ring 0)
        This  data segment  is created  in order  to run the
        physical  volume  salvager  (now  rarely  used).  It
        contains various databases used by the salvager.  It
        is created (by  calling grab_aste.pl1) and destroyed
        for each  volume salvage, in each  process running a
        salvage, rather than being a shared segment.

 174  salv_abs_seg_00                                  (ring 0, abs-seg)
 175  salv_abs_seg_01                                  (ring 0, abs-seg)
 176  salv_abs_seg_02                                  (ring 0, abs-seg)
 177  salv_abs_seg_03                                  (ring 0, abs-seg)
 200  salv_abs_seg_04                                  (ring 0, abs-seg)
        These five segments are used  to overlay the VTOC of
        a  volume  being  salvaged,   and  are  set  up  and
        referenced by vm_vio.pl1.  Covered under File System
        Salvagers.

 201  salv_dir_space                                   (ring 0)
 202  salv_data                                        (ring 0)
 203  salv_temp_dir                                    (ring 0)
        These  three  segments  are  used  by  the directory
        salvager  when invoked  as the  online salvager,  in
        response to a crawlout  or bad_dir_ condition.  Only
        one instance  of the online salvager  may be running
        at  a  time,  and  this  is  ensured  by  a  lock on
        salv_data.  The  online salvager does  not interfere
        with  demand directory  salvages, however.   Covered
        under File System Salvagers.


Not To Be Reproduced                4-27                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


 204  scavenger_data                                   (ring 0)
        The segment containing the  tables used when running
        the  online volume  scavenger.  As  many volumes  as
        tables can be fit here may be scavenged at one time.
        The in-use  portion of the segment is  wired while a
        scavenge is  being done.  Covered under  File System
        Salvagers.

 205  >sl1>shcs_                                       (ring 0, deciduous)
 206  str_seg                                          (ring 0)
        The segment  trailer segment.  The trailers  in this
        segment record  which processes have an  SDW for any
        particular    non-supervisor   segment,    and   the
        backup_abs_seg  (see above).  Covered  under Segment
        Control.

 207  syserr_daemon_dseg                               (ring 0)
 210  syserr_daemon_pds                                (ring 0)
 211  syserr_daemon_stack                              (ring 0)
        The  DSEG, PDS,  and ring  zero stack  of the syserr
        logging daemon.  They are  filled in when the daemon
        processs  (which  runs  entirely  in  ring  zero) is
        created.   They  are  in  the  global system address
        space  primarily  for  debugging  and  recordkeeping
        purposes.

 212  >sl1>system_privilege_                           (ring 0, deciduous)
 213  >sl1>tandd_                                      (ring 0, deciduous)
 214  template_pds                                     (ring 0)
        A  template  for  the  PDS,  used  when  creating  a
        process.   It is  a copy  of the  pds template which
        came  off the  system tape,  but which  was used  to
        create the Initializer's PDS.

 215  tty_area                                         (ring 0)
        An unwired database used by ring zero communications
        system,   used   primarily    for   saved   metering
        information on each channel.

 216  tty_buf                                          (ring 0)
        The   important    segment   in   the    ring   zero
        communications system.  Contains the logical channel
        table,  all  communications  I/O  buffers,  and  all
        multiplexer databases.

 217  tty_tables                                       (ring 0)
        An unwired database used by ring zero communications
        system to keep the tables  used for input and output
        translation/conversion.




Not To Be Reproduced                4-28                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


 220  vtoc_buffer_seg                                  (ring 0)
        The segment containing all buffers for VTOC I/O, and
        a  small  amount  of  control  information.  Covered
        under Segment Control.

 221  <<unused>>
 222  <<unused>>
 223  <<unused>>
 224  <<unused>>
 225  <<unused>>
 226  <<unused>>
 227  <<unused>>
        These segments  are unused, since the  first segment
        after the supervisor address  space is the ring zero
        stack, and its segment number must be zero mod 8.

 230  >sl1>stack_0.016                                 (ring 0, deciduous)
        The ring  zero stack.  One is allocated  from a pool
        (>sl1>stack_0.NNN)   whenever   a   process  becomes
        eligible.  When a process  is not eligible (blocked,
        usually), it has no ring  zero context, and needs no
        ring zero stack.

 231  [pd]>stack_1
 232  <<not                                            used>>
 232  <<not                                            used>>
 234  [pd]>stack_4
        The rest  of the stacks.   There would be  others if
        other rings were being used.  A stack is created for
        each  ring as  it is  needed; the  segment number is
        automatically  generated  by  the  CALL6 instruction
        (from DBR.stack), and when a segment fault occurs on
        a stack  not yet extant (pds$stacks(ring)  is null),
        seg_fault.pl1 calls makestack.pl1 to create one.



















Not To Be Reproduced                4-29                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E







ox  NON-SUPERVISOR SEGMENTS



   []  REMAINDER OF A PROCESS ADDRESS SPACE.



   []  BUILT BY THE NORMAL  NAME AND ADDRESS SPACE MANAGEMENT
      MECHANISMS AS THE PROCESS GETS GOING AND RUNS



   []  DIFFERENT  IN  DIFFERENT  PROCESSES;  THIS  IS ONLY AN
      EXAMPLE



 240  >                                                (the ROOT)
        The  ROOT directory.   The recursive  nature of  the
        initiate/segment  fault mechanism ensures  that this
        will  be  the  first  non-supervisor  segment in the
        address space.

 241  >pdd                                             (directory)
 242  >pdd
 243  >sss>bound_process_init_
 244  >udd                                             (directory)
 245  >udd>MED                                         (directory)
 246  >udd>MED>Sibert                                  (directory)
 247  [pd]>!BBBMjzKmkcngb.area.linker
 250  >sss                                             (directory)
 251  >unb                                             (directory)
 252  >sl1                                             (directory)
 253  >tools                                           (directory)
 254  >am                                              (directory)
 255  >sl1>bound_sss_active_
 256  >sl1>operator_pointers_
 257  >sl1>bound_sss_wired_
 260  >sl1>bound_process_env_
 261  >sl1>hcs_
 262  [pd]>pit
 263  >sl1>bound_error_handlers_
 264  >sl1>bound_ipc_
 265  >sss>bound_as_requests_
 266  >sss>bound_info_rtns_


Not To Be Reproduced                4-30                            MDD-003
                           _T_Y_P_I_C_A_L__A_D_D_R_E_S_S__S_P_A_C_E


 267  >sc1                                             (directory)
 270  >sc1>whotab
 271  >sc1installation_parms
 272  >sl1>sys_info
 273  >sss>bound_command_loop_
 274  >sc1>command_usage_counts
 275  >sc1>command_usage_counts>command_usage_list_
 276  >sc1>command_usage_counts>command_usage_totals_
 277  >sss>bound_exec_com_
 300  >sl1>error_table_











































Not To Be Reproduced                4-31                            MDD-003
                         _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_E_T_E_R_S

                             _s_y_s_t_e_m__l_i_n_k__m_e_t_e_r_s







ox  SYSTEM_LINK_METERS - RECORDS CPU TIME AND PAGING INFORMATION USED BY THE
   DYNAMIC LINKER IN ALL PROCESSES



Linkage Meters:
CPU Metering time                          4:58:57

Total time in linker                       0:50:53
Average time per link                     6.01 msec.
Percentage of real time in linker        17.03
Percentage of CPU time in linker          4.66

Time slot (msec)           <25          25-50          50-75            >75

Calls                   498469           8357            414           1100
Total time in slot     0:42:03        0:04:16        0:00:24        0:04:09
Percent total time       82.63           8.40           0.81           8.16
Percent total calls      98.06           1.64           0.08           0.22
Average time              5.06          30.68          59.63         226.59
Average page faults       0.18           2.29           6.34           5.65

Segment Search
 Average time             2.58          25.13          53.15           8.70
 Average page faults      0.04           0.95           3.53           0.22
 Percent time in slot    57.06          82.58          86.46           3.80

Get Linkage
 Average time             0.84           4.08           7.16         219.16
 Average page faults      0.06           0.62           0.93           5.33
 Percent time in slot    18.54          13.41          11.64          95.71

Definition Search
 Average time             0.24           0.24           0.23           0.20
 Average page faults      0.02           0.11           0.24           0.00
 Percent time in slot     5.26           0.80           0.37           0.09










Not To Be Reproduced                4-32                            MDD-003
                         _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__M_E_T_E_R_S

                                _l_i_n_k__m_e_t_e_r_s







ox  LINK_METERS  -  RECORDS  CPU  TIME  AND  PAGING  INFORMATION USED BY THE
   DYNAMIC LINKER IN THE PROCESS RUNNING IT



        Linkage Meters:
        slot    calls  avg time  avg pf  tot time  % time

        <25      1245     4.689     0.3     5.838    76.1
        25-50      34    30.201     2.9     1.027    13.4
        50-75       6    62.226     6.2     0.373     4.9
        >75         2   216.545     6.0     0.433     5.6
                -----  --------   -----   -------
        Total    1287     5.961     0.4     7.671
































Not To Be Reproduced                4-33                            MDD-003
                        _N_A_M_E_/_A_D_D_R_E_S_S__S_P_A_C_E__C_O_M_M_A_N_D_S

                             _d_i_s_p_l_a_y__k_s_t__e_n_t_r_y







ox  DISPLAY_KST_ENTRY - DISPLAYS INFORMATION FROM A KST



        ! display_kst_entry >udd>Multics>Sibert



          segno:    246  at  162|270
          usage:    7, 0, 0, 0, 0, 0, 0, 0
          entryp:   245|20750
          uid:      102401170050
          dtbm:     446556324757
          mode:     7 (0, 0, 0)
          ex mode:  70000000000 (7, 7, 7)
          infcount: 3
          hdr:      4
          flags:    dirsw write tms




                                         TOPIC V

                                    Directory Control

                                                                          Page

                            Directory Control Overview. . . . . . . . . . 5-1
                            Directory Control Terminology . . . . . . . . 5-3
                            Directory Control Data Bases. . . . . . . . . 5-6
                                Directory Segments. . . . . . . . . . . . 5-6
                                Directory Header. . . . . . . . . . . . . 5-9
                                Directory Entries . . . . . . . . . . . . 5-12
                            Directory Control Commands. . . . . . . . . . 5-16
                                display_branch. . . . . . . . . . . . . . 5-16











                                    5-i                             MDD-003



































                                   .

                      _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  DIRECTORY CONTROL  IS A SET OF HARDCORE  MODULES RESPONSIBLE FOR
      THE MAINTENANCE  OF THE MULTICS DIRECTORY STRUCTURE  -- IE:  THE
      HIERARCHY



   []  ITS  TASKS INCLUDE  CREATING, MANIPULATING  AND INTERPRETING THE
      CONTENTS OF DIRECTORY SEGMENTS, TO INCLUDE:


      []  ACCESS  CONTROL LISTS (ACL'S),  NAMES, AND VTOCE  POINTERS OF
         ENTRIES DESCRIBED THEREIN



   []  ONLY  DIRECTORY CONTROL  IS ALLOWED   TO ALTER  THE CONTENTS  OF
      DIRECTORY SEGMENTS



   []  DIRECTORY CONTROL  IMPLICITLY RELIES UPON THE  SERVICES OF OTHER
      SUBSYSTEMS SUCH  AS SEGMENT CONTROL  AND PAGE CONTROL,  AND ALSO
      INVOKES THEM DIRECTLY BY SUBROUTINE CALL


      []  DIRECTORIES ARE SIMPLY SEGMENTS TO THESE SUBSYSTEMS



   []  DIRECTORY CONTROL IS INVOKED ONLY BY SUBROUTINE CALLS





ox  PRINCIPAL USER INTERFACES








Not To Be Reproduced              5-1                          MDD-003
                      _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W





   []  COMMAND LEVEL


      []  create, create_dir, link, set_acl, delete_acl, status, list,
         add_name, rename



   []  SUBROUTINE LEVEL


      []  hcs_$append_branch, hcs_$add_acl_entries, hcs_$append_link,
         hcs_$delete_acl_entries, hcs_$status_, hcs_$chname_file





ox  MAJOR DATA BASES



   []  DIRECTORY SEGMENTS


      []  CONTAIN  THE  ATTRIBUTES  AND  OTHER  INFORMATION ABOUT THEIR
         SEGMENTS (NEEDED TO FIND SEGMENTS, RETURN STATUS INFORMATION,
         AND BUILD VTOCE'S AT SEGMENT CREATION)



   []  THE DIRLOCKT_SEG


      []  SEGMENT WHERE DIRECTORY LOCKING IS MANAGED















Not To Be Reproduced              5-2                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y

























                     =============================
                     INSERT Directory DIAGRAM HERE
                     =============================



























Not To Be Reproduced              5-3                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







UNIQUE ID (UID):
               A 36-BIT  ID (SERIAL NUMBER) ASSIGNED  TO EVERY SEGMENT
               WHEN CREATED





SON:           OF A DIRECTORY.   AN IMMEDIATELY INFERIOR (SUBORDINATE)
               SEGMENT





SON'S LVID:    OF A DIRECTORY.  THE ID  OF THE LOGICAL VOLUME ON WHICH
               THE DIRECTORY'S SONS RESIDE (AND WILL RESIDE)





GRANDSON:      OF A  DIRECTORY.  A SEGMENT  INFERIOR BY MORE  THAN ONE
               HIERARCHICAL LEVEL





PARENT:        OF A SEGMENT.  THE "CONTAINING" DIRECTORY SEGMENT





ANCESTOR:      OF  A SEGMENT.   THE PARENT,  OR GRANDPARENT,  OR GREAT
               GRANDPARENT, ETC.











Not To Be Reproduced              5-4                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







BROTHER:       OF A SEGMENT.  ANOTHER SEGMENT HAVING THE SAME PARENT





BRANCH (1):    _I_N  A  DIRECTORY.   A  DATA  STRUCTURE,  CONTAINED IN A
               DIRECTORY   SEGMENT,  THAT  DESCRIBES   AN  IMMEDIATELY
               INFERIOR SEGMENT OR DIRECTORY (BUT NOT A LINK)





BRANCH (2):    _O_F  A  DIRECTORY.   REFERS  TO  THE  ACTUAL  SEGMENT OR
               DIRECTORY IMMEDIATELY INFERIOR TO THE DIRECTORY





ENTRY (1):     _I_N A DIRECTORY.  SAME AS BRANCH (1) BUT INCLUDES LINKS





ENTRY (2):     _O_F A DIRECTORY.  SAME AS BRANCH (2) BUT INCLUDES LINKS






            ==============================================
            INSERT Storage System Terminology DIAGRAM HERE
            ==============================================











Not To Be Reproduced              5-5                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                          _D_I_R_E_C_T_O_R_Y__S_E_G_M_E_N_T_S














                =======================================
                INSERT Directory Structure DIAGRAM HERE
                =======================================




































Not To Be Reproduced              5-6                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                          _D_I_R_E_C_T_O_R_Y__S_E_G_M_E_N_T_S







ox  DIRECTORY SEGMENTS ARE DISK RESIDENT (RLV) DATA BASES MAINTAINED BY
   DIRECTORY CONTROL



   []  ONE DIRECTORY SEGMENT PER DIRECTORY IN THE HIERARCHY





ox  DIRECTORY SEGMENTS CONTAIN A  CATALOG OF STORAGE SYSTEM INFORMATION
   ABOUT OTHER SEGMENTS, DIRECTORIES AND LINKS





ox  ALL DIRECTORY  SEGMENTS, BY CONVENTION, RESIDE ON  THE ROOT LOGICAL
   VOLUME (RLV)





ox  DIRECTORY SEGMENTS ARE CREATED BY  append MUCH LIKE NORMAL SEGMENTS
   ARE CREATED





ox  DIRECTORY   SEGMENTS  CONTAIN   MANY  INTER-RELATED   COMPLEX  DATA
   STRUCTURES  TO INCLUDE  THE FOLLOWING  (NOT NECESSARILY CONTIGUOUS)
   REGIONS:



   []  DIRECTORY HEADER


      []  CONTAINS   SELF  DESCRIPTIVE    INFORMATION  LIKE   UID,  AIM
         CLASSIFICATION, ETC; AND POINTERS TO OTHER REGIONS



Not To Be Reproduced              5-7                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                          _D_I_R_E_C_T_O_R_Y__S_E_G_M_E_N_T_S





   []  HASH TABLE


      []  USED TO QUICKLY LOCATE AN ENTRY, GIVEN ITS NAME



   []  ENTRY LIST


      []  CONTAINS ONE  DESCRIPTIVE DATA STRUCTURE (AN  ENTRY) FOR EACH
         SEGMENT,  DIRECTORY,  OR  LINK  IMMEDIATELY  INFERIOR  TO THE
         DIRECTORY (I.E.  ALL ENTRIES)



   []  PERSON_ID AND PROJECT_ID NAME LISTS


      []  CONTAINS  ALL PERSON_ID'S/PROJECT_ID'S  REQUIRED TO  DESCRIBE
         THE ACL,  THE AUTHOR, ETC.   OF ALL SEGMENTS  AND DIRECTORIES
         IMMEDIATELY INFERIOR TO THE DIRECTORY (I.E.  ALL BRANCHES)



   []  NAME LIST (ONE PER ENTRY)


      []  CONTAINS ALL NAMES CURRENTLY ASSIGNED TO THE ENTRY

         []  PRIMARY  NAME  IS  ACTUALLY  CONTAINED  IN ENTRY STRUCTURE
            ITSELF



   []  ACCESS CONTROL LIST (ONE PER ENTRY)


      []  CONTAINS ALL ACL ENTRIES CURRENTLY ASSOCIATED WITH THE ENTRY









Not To Be Reproduced              5-8                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__H_E_A_D_E_R














                 ====================================
                 INSERT Directory Header DIAGRAM HERE
                 ====================================




































Not To Be Reproduced              5-9                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__H_E_A_D_E_R







ox  THE DIRECTORY HEADER IS A DISK  RESIDENT DATA BASE CONTAINED AT THE
   BEGINNING OF A DIRECTORY SEGMENT



   []  ONE DIRECTORY HEADER PER DIRECTORY SEGMENT





ox  THE DIRECTORY HEADER CONTAINS SELF DESCRIPTIVE INFORMATION SUCH AS:



   []  THE  PROCESS ID  OF THE   LAST PROCESS  TO MODIFY  THE DIRECTORY
      SEGMENT'S CONTENTS



   []  THE   DIRECTORY'S  UID,   LVID,  PVID,   VTOC  INDEX,   AND  AIM
      CLASSIFICATION



   []  RELATIVE POINTERS  TO THE BEGINNING  AND END OF  THE ENTRY LIST,
      PERSON_ID LIST, PROJECT_ID LIST, AND THE HASH TABLE



   []  HIERARCHY DEPTH OF THE DIRECTORY SEGMENT



   []  UID OF THE MASTER DIRECTORY AND THE PARENT DIRECTORY



   []  SON'S LVID  - THE ID OF  THE LV ON WHICH  INFERIOR NON-DIRECTORY
      SEGMENTS RESIDE (AND WILL RESIDE)






Not To Be Reproduced             5-10                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__H_E_A_D_E_R







ox  THE  DIRECTORY HEADER  IS ACCESSED  AT THE  BEGINNING OF  DIRECTORY
   QUERY AND UPDATE OPERATIONS












































Not To Be Reproduced             5-11                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__E_N_T_R_I_E_S














                   ================================
                   INSERT Branch Entry DIAGRAM HERE
                   ================================




































Not To Be Reproduced             5-12                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__E_N_T_R_I_E_S














                    ==============================
                    INSERT Link Entry DIAGRAM HERE
                    ==============================




































Not To Be Reproduced             5-13                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__E_N_T_R_I_E_S







ox  THE DIRECTORY  ENTRY IS A  DISK RESIDENT (RLV)  DATA BASE CONTAINED
   WITHIN A DIRECTORY SEGMENT



   []  ONE  DIRECTORY  ENTRY  (IN   THE  DIRECTORY  SEGMENT)  FOR  EACH
      IMMEDIATELY INFERIOR ENTRY IN THE HIERARCHY





ox  EACH DIRECTORY ENTRY IS A  DATA STRUCTURE DESCRIBING THE ATTRIBUTES
   OF A SEGMENT, DIRECTORY OR LINK





ox  DIRECTORY ENTRIES COME IN TWO FLAVORS:



   []  LINK ENTRY, (38 OR 72 WORDS) CONTAINING:


      []  DATE TIME  MODIFIED AND DUMPED (BY THE  HIERARCHY DUMPER, NOT
         VOLUME DUMPER)


      []  RELATIVE POINTERS TO THE ENTRY'S  NAME LIST AND AUTHOR'S USER
         ID


      []  ABSOLUTE PATHNAME OF THE LINK'S TARGET


      []  UID OF PARENT DIRECTORY








Not To Be Reproduced             5-14                          MDD-003
                     _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _D_I_R_E_C_T_O_R_Y__E_N_T_R_I_E_S





   []  BRANCH ENTRY, (38 WORDS) CONTAINING:


      []  DATE TIME  MODIFIED AND DUMPED (BY THE  HIERARCHY DUMPER, NOT
         VOLUME DUMPER)


      []  RELATIVE POINTERS TO THE ENTRY'S  NAME LIST AND AUTHOR'S USER
         ID


      []  BRANCH'S UID, PVID, AND VTOC INDEX


      []  AIM  CLASSIFICATION, ENTRY  POINT BOUND,  RING BRACKETS,  AND
         RELATIVE POINTERS TO THE ACL


      []  BRANCH'S BIT COUNT AND BIT COUNT AUTHOR


      []  SON'S LVID (IF A DIRECTORY) AND PARENT'S UID


      []  FLAGS DESCRIBING  VARIOUS STATES AND PROPERTIES  OF THE ENTRY
         SUCH  AS:   DIRECTORY,  MASTER  DIRECTORY,  SECURITY  OUT  OF
         SERVICE, COPY AND SAFETY SWITCH, ETC





















Not To Be Reproduced             5-15                          MDD-003
                      _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _d_i_s_p_l_a_y__b_r_a_n_c_h







ox  DISPLAY_BRANCH - DISPLAYS BRANCHES IN THE DIRECTORY HIERARCHY



   []  OFTEN USEFUL ON CONJUNCTION WITH DUMP_VTOCE



    ! display_branch >udd>Multics>Sibert


                Branch for Sibert in >udd>Multics at 245|20742

      UID 102401170050, is vtocx 63 on root4 (of log vol. root)
      Sibert is a directory.
      Ring brackets (0 0 0)
      Entry modified 02/23/83  1912.1 est Wed
      Dumped 03/20/83  0955.6 est Sun
      9 names.





ox  DISPLAY IS  NOT COMPLETE, SO A  RING_ZERO_DUMP OF THE SAME  DATA IS
   INCLUDED



    ! ring_zero_dump >udd>Multics 20742 46 -ch


020742 021310020604 000004000046 102401170050 446556324757 .......&B.x(....
020746 400000000011 020752021152 001720000532 172000000000 .......j....z...
020752 021010000000 000006000016 020742000233 000000000000 ................
020756 123151142145 162164040040 040040040040 040040040040 Sibert

020762 040040040040 040040040040 040040040040 040040040040
020766 000000000000 102401170050 446752147026 000000000000 ....B.x(..g.....
020772 135240026001 000063000000 400000000000 000000000000 ]....3..........
020776 000000000000 000770000012 021170021300 001720000532 .........x......

021002 172000000000 225072707470 000000000000 000000000000 z....:..........
021006 033023254650 000000000000                           ........



                                  6-i                          MDD-003
                      _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _d_i_s_p_l_a_y__b_r_a_n_c_h


                               TOPIC VI

                          Volume Management

                                                                Page

                  Volume Management Overview. . . . . . . . . . 6-1
                  The New Storage System. . . . . . . . . . . . 6-4
                  Volume Management Terminology . . . . . . . . 6-13
                  Volume Management Data Bases. . . . . . . . . 6-16
                      Volume Label. . . . . . . . . . . . . . . 6-16
                      Volume Map. . . . . . . . . . . . . . . . 6-19
                      Dumper Bit Map. . . . . . . . . . . . . . 6-23
                      VTOC Map. . . . . . . . . . . . . . . . . 6-25
                      Physical Volume Table (PVT) . . . . . . . 6-26
                      Logical Volume Table (LVT). . . . . . . . 6-29
                      Physical Volume Hold Table. . . . . . . . 6-32
                  Volume Management Operations. . . . . . . . . 6-34
                      Acceptance of Physical Volumes. . . . . . 6-35
                      Demounting of Physical Volumes. . . . . . 6-37
                      Logical Volume Management . . . . . . . . 6-39
                  Volume Management Commands. . . . . . . . . . 6-40
                      print_configuration_deck. . . . . . . . . 6-40
                      list_vols . . . . . . . . . . . . . . . . 6-42
                      display_label . . . . . . . . . . . . . . 6-44
                      display_pvte. . . . . . . . . . . . . . . 6-46
                  Volume Management Meters. . . . . . . . . . . 6-48
                      disk_meters . . . . . . . . . . . . . . . 6-48
                      device_meters . . . . . . . . . . . . . . 6-49
                      disk_queue. . . . . . . . . . . . . . . . 6-50






















                                  6-i                          MDD-003
                      _D_I_R_E_C_T_O_R_Y__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _d_i_s_p_l_a_y__b_r_a_n_c_h







ox  FUNCTION



   []  VOLUME MANAGEMENT IS RESPONSIBLE  FOR THE MANAGEMENT OF PHYSICAL
      AND LOGICAL VOLUMES



   []  ITS TASKS INCLUDE:


      []  ACCEPTANCE AND DEMOUNTING OF PHYSICAL VOLUMES


      []  MAINTAINING THE ASSOCIATION BETWEEN PHYSICAL VOLUMES, LOGICAL
         VOLUMES, AND DISK DRIVES


      []  ENSURING THE INTEGRITY OF VOLUME CONTENTS


      []  MAKING VOLUME CONTENTS ACCESSABLE TO PAGE CONTROL (PAGES) AND
         SEGMENT CONTROL (VTOC ENTRIES)



   []


















Not To Be Reproduced              6-0                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_V_E_R_V_I_E_W


      VOLUME MANAGEMENT IS INVOKED ONLY BY SUBROUTINE CALLS





ox  MAJOR DATA BASES



   []  PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM


      []  PHYSICAL VOLUME TABLE ENTRY (PVTE) - ONE PER DISK DRIVE KNOWN
         TO THE SYSTEM


      []  EACH PVTE IDENTIFIES A DRIVE'S DEVICE NUMBER, SUBSYSTEM NAME,
         DEVICE  TYPE,  AND  INFORMATION  ABOUT  THE  PHYSICAL  VOLUME
         CURRENTLY MOUNTED


      []  USED  TO MAP  REFERENCES TO   PAGES OF  SEGMENTS INTO  AN I/O
         REQUEST TO THE CORRECT DISK DRIVE



   []  LOGICAL VOLUME TABLE (LVT) - ONE PER SYSTEM


      []  LOGICAL VOLUME  TABLE ENTRY (LVTE) - ONE  PER MOUNTED LOGICAL
         VOLUME


      []  EACH LVTE CONTAINS THE LOGICAL  VOLUME ID, POINTERS TO MEMBER
         PVTE'S, AIM CLASS LIMITS, ETC.


      []  USED  TO  DETERMINE  A  USER'S  ACCESS  TO  A  LOGICAL VOLUME
         (PRIVATE OR PUBLIC) AND TO LOCATE MEMBER PHYSICAL VOLUMES



   []  VOLUME HEADER - ONE PER PACK


      []  VOLUME LABEL (REGISTRATION AND ACCEPTANCE INFORMATION)






Not To Be Reproduced              6-1                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_V_E_R_V_I_E_W




      []  VOLUME MAP (OCCUPIED/VACANT INFORMATION FOR VOLUME CONTENTS)



   []  RECORD STOCKS - ONE PER MOUNTED VOLUME


      []  ONLINE CACHE  OF INFORMATION ABOUT  USED / UNUSED  RECORDS ON
         THE VOLUME


      []  THIS  INFORMATION IS  DERIVED FROM  THE VOLUME  MAP, BUT KEPT
         ONLINE TO AVOID THE NECESSITY  OF REFERRING TO THE VOLUME MAP
         ON DISK EVERY TIME A RECORD IS ALLOCATED OR FREED


      []  WHEN THE  CACHE BECOMES COMPLETELY EMPTY  OR COMPLETELY FULL,
         IT MUST BE UPDATED FROM/TO DISK - A PROTOCOL ENSURES THAT THE
         COPY ON DISK IS ALWAYS CONSISTENT


      []  PROVIDED BY VOLUME MANAGEMENT, BUT USED BY PAGE CONTROL



   []  VTOCE STOCKS - ONE PER VOLUME


      []  SIMILAR  TO RECORD  STOCKS, BUT  MAINTAINS INFORMATION  ABOUT
         USED / UNUSED VTOC ENTRIES ON THE VOLUME


      []  PROVIDED BY VOLUME MANAGEMENT, BUT USED BY SEGMENT CONTROL



   []  PHYSICAL VOLUME HOLD TABLE (PVHT) - ONE PER SYSTEM


      []  RECORDS  THE COMMENCEMENT OF  COMPOUND I/O OPERATIONS  UPON A
         PHYSICAL VOLUME


      []  THIS INFORMATION PREVENTS A VOLUME FROM BEING DEMOUNTED WHILE
         SUCH AN OPERATION IS IN PROGRESS






Not To Be Reproduced              6-2                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M















                        =======================
                        INSERT NSS DIAGRAM HERE
                        =======================





































Not To Be Reproduced              6-3                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M







ox  SINCE RELEASE  4.0, THE MULTICS  STORAGE SYSTEM HAS  BEEN ORGANIZED
   INTO PHYSICAL AND LOGICAL VOLUMES HAVING THE FOLLOWING PROPERTIES



   []  A  PHYSICAL  VOLUME  (PV)  IS  A  DISK  PACK  (MOUNTED  OR  NOT)
      CONTAINING:


      []  A LABEL  IDENTIFYING ITSELF - INCLUDING A  PHYSICAL VOLUME ID
         (PVID)


      []  A VOLUME MAP DESCRIBING WHICH PAGES and VTOCES ARE IN USE AND
         WHICH ARE FREE.


      []  A VOLUME  TABLE OF CONTENTS (VTOC)  DESCRIBING WHICH SEGMENTS
         ARE  RESIDENT THEREIN  - AND  THE EXACT  LOCATION OF  EACH OF
         THEIR PAGES


      []  THE PAGES  OF RESIDENT SEGMENTS (ASSIGNED TO  RECORDS OF 1024
         WORDS IN SIZE)


      []  AND  OPTIONALLY:  CONTIGUOUS  REGIONS CALLED  PARTITIONS, SET
         ASIDE FOR SPECIAL USE (FDUMP IMAGES, HARDCORE PAGING, ETC)



   []  ALL PAGES OF A SEGMENT RESIDE ON A GIVEN PHYSICAL VOLUME


      []  THAT IS:   EACH NON-ZERO PAGE OF  A SEGMENT IS ASSIGNED  TO A
         RECORD OF THE PHYSICAL VOLUME



   []  THE PAIR  OF PHYSICAL VOLUME  ID (PVID) AND  VTOC INDEX UNIQUELY
      IDENTIFIES ANY SEGMENT IN THE STORAGE SYSTEM HIERARCHY







Not To Be Reproduced              6-4                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M





   []  A LOGICAL VOLUME (LV) CONSISTS  OF ONE OR MORE PHYSICAL VOLUMES,
      WHICH ARE:


      []  GIVEN ONE LOGICAL VOLUME ID (LVID)


      []  ALWAYS MOUNTED AS A SET



   []  OFFSPRING  (SONS,  GRANDSONS,  ETC)  OF  A  DIRECTORY (NORMALLY)
      RESIDE WITHIN A GIVEN LOGICAL VOLUME


      []  IN OTHER WORDS, A SUB-TREE  (NORMALLY) SPANS NO MORE THAN ONE
         LOGICAL VOLUME



   []  DIRECTORY  SEGMENTS  ARE  AN  EXCEPTION  TO  THE  ABOVE  AS  ALL
      DIRECTORY SEGMENTS ARE ASSIGNED TO A LOGICAL VOLUME OF THEIR OWN
      CALLED THE "ROOT LOGICAL VOLUME" (RLV)


      []  THE PHYSICAL  VOLUME CONTAINING THE ROOT  DIRECTORY IS CALLED
         "THE ROOT PHYSICAL VOLUME" (RPV)


      []  THE RLV IS SPECIAL BECAUSE IT  MUST ALWAYS BE MOUNTED, AND IT
         CONTAINS ALL  DIRECTORY SEGMENTS, BUT IT  ALSO CONTAINS OTHER
         SEGMENTS



   []  SHOULD  THE GROWING  OF A   SEGMENT CAUSE  A PHYSICAL  VOLUME TO
      BECOME FULL, A "SEGMENT MOVE" IS AUTOMATICALLY INITIATED


      []  THIS  IS  ONE  OF  THE  MOST  COMPLEX  AND EXPENSIVE SERVICES
         PERFORMED BY THE SYSTEM - BUT HAPPENS VERY INFREQUENTLY









Not To Be Reproduced              6-5                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M





   []  SHOULD A LOGICAL VOLUME BECOME FULL:


      []  USER AND SYSTEM ERROR MESSAGES ARE GENERATED


      []  SPACE MUST BE  OBTAINED ON THE LOGICAL VOLUME  BY ADDING MORE
         PHYSICAL VOLUMES  OR BY DELETING OR MOVING  SEGMENTS FROM THE
         LOGICAL VOLUME


      []  BECAUSE IT CONTAINS ALL DIRECTORY  SEGMENTS, SPACE ON THE RLV
         IS CRITICAL:  IF IT IS USED UP, THE SYSTEM MAY NOT BE ABLE TO
         CONTINUE OPERATION.



   []  THE  CHOICE OF  WHICH PHYSICAL   VOLUME TO  USE WHEN  CREATING A
      SEGMENT IS MADE IN SUCH A WAY AS TO TRY TO BALANCE THE ALLOCATED
      SPACE ON ALL THE PHYSICAL VOLUMES OF A LOGICAL VOLUME






























Not To Be Reproduced              6-6                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M















                     =============================
                     INSERT PV Format DIAGRAM HERE
                     =============================





































Not To Be Reproduced              6-7                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M















              ==========================================
              INSERT Hierarchy to SS Maping DIAGRAM HERE
              ==========================================





































Not To Be Reproduced              6-8                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M







ox  IF  ONE KNOWS  WHERE THE  ROOT DIRECTORY  IS, ALL  SEGMENTS IN  THE
   MULTICS HIERARCHY  CAN BE FOUND  (ASSUMING THE AVAILABILITY  OF ALL
   REQUIRED PHYSICAL VOLUMES)





ox  MAJOR DESIGN POINT



   []  MANY DISK RESIDENT DATA BASES (TO INCLUDE THE PAGES OF SEGMENTS)
      ARE  COPIED INTO MAIN  MEMORY AND WRITTEN  BACK TO DISK  AT SUCH
      TIMES AS:


      []  SYSTEM START-UP/SHUT-DOWN


      []  PHYSICAL VOLUME MOUNTING/DEMOUNTING


      []  SEGMENT ACTIVATION/DEACTIVATION


      []  PAGE FAULTS



   []  WHILE IN MAIN MEMORY, THE  MEMORY RESIDENT COPY IS CONSIDERED TO
      BE _T_H_E COPY



   []  WHILE IN MAIN MEMORY, THE DISK RESIDENT COPY IS CONSIDERED TO BE
      (AND OFTEN IS) WHOLLY INVALID











Not To Be Reproduced              6-9                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M















                  ===================================
                  INSERT Disk Statistics DIAGRAM HERE
                  ===================================





































Not To Be Reproduced             6-10                          MDD-003
                        _T_H_E__N_E_W__S_T_O_R_A_G_E__S_Y_S_T_E_M















                ======================================
                INSERT LV/MD Relationship DIAGRAM HERE
                ======================================





































Not To Be Reproduced             6-11                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__T_E_R_M_I_N_O_L_O_G_Y







MOUNT:         TO PHYSICALLY PLACE A DISK PACK ON A DRIVE AND CYCLE UP
               THE  DRIVE.    (PERFORMED  BY  THE  OPERATOR,   NOT  BY
               SOFTWARE)





ACCEPT:        AFTER  MOUNTING,  TO  ESTABLISH  IN  THE SUPERVISOR THE
               BINDING  BETWEEN  THE  DRIVE  AND  THE  PHYSICAL VOLUME
               MOUNTED





PUBLIC:        A LOGICAL  VOLUME ATTRIBUTE INDICATING THAT  THE VOLUME
               IS ATTACHED TO ALL PROCESSES (BY DEFAULT) WHEN ACCEPTED





PRIVATE:       A LOGICAL  VOLUME ATTRIBUTE INDICATING THAT  THE VOLUME
               IS  ATTACHED ONLY  TO REQUESTING  PROCESSES (SUBJECT TO
               ACCESS CONTROLS)





PARTITION:     A REGION WITHIN A PHYSICAL VOLUME SET ASIDE FOR SPECIAL
               USE





RECORD:        A LOGICAL UNIT OF DISK  SPACE, 1024 CONTIGUOUS WORDS IN
               SIZE.  (NUMBERED/ADDRESSED FROM ZERO)





SECTOR:        A LOGICAL  UNIT OF DISK  SPACE, 64 CONTIGUOUS  WORDS IN


Not To Be Reproduced             6-12                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__T_E_R_M_I_N_O_L_O_G_Y


               SIZE.  THE SMALLEST ADDRESSABLE  UNIT OF DISK SPACE.  A
               RECORD CONTAINS 16 SECTORS



















































Not To Be Reproduced             6-13                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__T_E_R_M_I_N_O_L_O_G_Y







PAGE:          A  1024 WORD  EXTENT OF  DATA STARTING  AT A  1024 WORD
               BOUNDARY  OF A  SEGMENT.  SEGMENTS  MUST BE  AN INTEGER
               NUMBER OF PAGES  IN SIZE.  A PAGE CAN RESIDE  IN ONE OR
               MORE OF THE FOLLOWING LOCATIONS:


                    MAIN MEMORY FRAME

                    DISK RECORD







































Not To Be Reproduced             6-14                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                             _V_O_L_U_M_E__L_A_B_E_L














                  ==================================
                  INSERT Volume Label 1 DIAGRAM HERE
                  ==================================




































Not To Be Reproduced             6-15                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                             _V_O_L_U_M_E__L_A_B_E_L














                  ==================================
                  INSERT Volume Label 2 DIAGRAM HERE
                  ==================================




































Not To Be Reproduced             6-16                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                             _V_O_L_U_M_E__L_A_B_E_L







ox  THE VOLUME LABEL  IS A DISK RESIDENT DATA BASE  OCCUPYING THE FIRST
   MULTICS RECORD OF EACH STORAGE SYSTEM PHYSICAL VOLUME



   []  ONE VOLUME LABEL PER PHYSICAL VOLUME





ox  THE  LABEL IS GENERATED  BY init_disk_pack (init_empty_root  IF RPV
   LABEL) AND CONTAINS REGISTRATION AND STATUS INFORMATION





ox  THE LABEL IS INSPECTED WHEN THE VOLUME IS ACCEPTED AND UPDATED WHEN
   DEMOUNTED





ox  THE LABEL IS DIVIDED INTO SIX SECTORS



   []  GCOS REGION (SECTORS 0 TO 4)


      []  SKIPPED  OVER BY MULTICS  TO AVOID ACCIDENTAL  OVERWRITING OF
         GCOS PACKS AND ALLOW FOR FUTURE COMPATABILITY



   []  PERMANENT REGION (SECTOR 5)


      []  CONTAINS  PERMANENT  PER-PV  INFORMATION  (EG:  MANUFACTURERS
         SERIAL NUMBER)




Not To Be Reproduced             6-17                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                             _V_O_L_U_M_E__L_A_B_E_L





   []  DYNAMIC INFORMATION REGION (SECTOR 6)


      []  CONTAINS INFORMATION RELATING TO  THE MOST RECENT MOUNTING OF
         THE PV (EG:  LAST MOUNT TIME)


      []  ALLOWS THE STORAGE SYSTEM TO ENSURE THE INTEGRITY OF THE PV



   []  ROOT INFORMATION REGION (SECTOR 7)


      []  DEFINED ONLY FOR THE ROOT PHYSICAL VOLUME


      []  CONTAINS DYNAMIC INFORMATION ABOUT  THE ENTIRE STORAGE SYSTEM
         (EG:  SHUT DOWN STATE, PAGING DEVICE STATE, ETC)



   []  PARTITION MAP (SECTOR 8)


      []  IDENTIFIES THE LOCATION AND LENGTH OF ANY RESIDENT PARTITIONS



   []  UNUSED (SECTORS 9 TO 13)


















Not To Be Reproduced             6-18                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                              _V_O_L_U_M_E__M_A_P


















                    ==============================
                    INSERT Volume Map DIAGRAM HERE
                    ==============================
































Not To Be Reproduced             6-19                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                              _V_O_L_U_M_E__M_A_P







ox  THE VOLUME MAP IS A DISK RESIDENT DATA BASE



   []  OCCUPIES RECORDS  1, 2, AND 3, IMMEDIATELY  FOLLOWING THE VOLUME
      LABEL



   []  ONE VOLUME MAP PER PHYSICAL VOLUME





ox  THE  VOLUME MAP  IDENTIFIES THE  EXTENT OF  THE PAGING  REGION, THE
   NUMBER OF VACANT RECORDS, AND  THE STATE (VACANT/OCCUPIED) OF EVERY
   RECORD IN THE VOLUME'S PAGING REGION



   []  THIS INFORMATION IS ALSO DERIVABLE  FROM AN ANALYSIS OF THE VTOC
      (AT  CONSIDERABLE EXPENSE)  - THIS  IS DONE  WHEN THE  VOLUME IS
      SCAVENGED OR SALVAGED.





ox  RECORDS ARE TAKEN  FROM THE VOLUME MAP DURING  OPERATION AND PLACED
   IN THE RECORD STOCK



   []  RECORDS ARE ALLOCATED BY PAGE CONTROL FROM THE RECORD STOCK



   []  VOLUME MAP ON DISK IS ALWAYS CONSISTENT


      []  RECORDS MARKED  FREE ON DISK  ARE GUARANTEED TO  BE FREE, AND
         SAFE TO RE-USE



Not To Be Reproduced             6-20                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                              _V_O_L_U_M_E__M_A_P




      []  RECORDS MARKED AS ALLOCATED MAY  NOT ACTUALLY BE IN-USE, IF A
         CRASH OCCURRED AND DESTROYED THE STOCK CONTENTS


      []  THIS  SITUATION IS  BENIGN, AND  CORRECTED BY  A SCAVENGE  OR
         SALVAGE AT SOME CONVENIENT TIME



   []  RECORDS FREED ARE PLACED BACK IN THE STOCK


      []  IF STOCK FILLS, IT IS WRITTEN BACK TO THE VOLUME MAP



   []  CONSISTENCY IS ENSURED BY COMPLEX PROTOCOL IN PAGE CONTROL



   []  RECORD  STOCK MECHANISM  REPLACES FSMAP  SEGMENTS IN  PRE-MR10.0
      SYSTEMS



























Not To Be Reproduced             6-21                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                            _D_U_M_P_E_R__B_I_T__M_A_P

















                  ==================================
                  INSERT Dumper Bit Map DIAGRAM HERE
                  ==================================

































Not To Be Reproduced             6-22                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                            _D_U_M_P_E_R__B_I_T__M_A_P







ox  THE DUMPER BIT  MAP DESCRIBES WHICH VTOCES ON THE  VOLUME HAVE BEEN
   VOLUME DUMPED



   []  ONE PER PHYSICAL VOLUME



   []  OCCUPIES RECORDS 4 AND 5, IMMEDIATELY FOLLOWING VOLUME MAP



   []  SEPARATE BIT MAPS FOR INCREMENTAL AND CONSOLIDATED VOLUME DUMPS
































Not To Be Reproduced             6-23                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                               _V_T_O_C__M_A_P







ox  THE  VTOC MAP  DESCRIBES THE  LOCATION AND  SIZE OF  THE VTOC,  AND
   CONTAINS A BIT MAP OF VTOC ALLOCATIONS



   []  OCCUPIES RECORD 6, IMMEDIATELY FOLLOWING THE DUMPER BIT MAP


      []  VTOC FOLLOWS, STARTING AT RECORD 8


      []  RECORD 7 IS UNUSED





ox  VTOCES ARE TAKEN FROM THE VTOCE MAP AND PLACED IN AN ONLINE STOCK



   []  VTOCE STOCK IS LIKE RECORD STOCK, BUT LESS CRITICAL


      []  VTOCES ARE SELF-IDENTIFYING AS TO  WHETHER THEY ARE IN USE OR
         NOT, SO  IT IS NOT NECESSARY TO  MAINTAIN PERFECT CONSISTENCY
         IF A CRASH OCCURS


      []  VTOCE MAP IS ALSO REBUILT BY SCAVENGE OR SALVAGE OPERATIONS



   []  VTOCE MAP REPLACES VTOCE FREE LIST IN PRE-MR10.0 SYSTEMS












Not To Be Reproduced             6-24                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_P_V_T_)
























                        =======================
                        INSERT PVT DIAGRAM HERE
                        =======================


























Not To Be Reproduced             6-25                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_P_V_T_)







ox  THE PHYSICAL  VOLUME TABLE (PVT)  IS A HARDCORE,  WIRED, PAGED DATA
   BASE MAINTAINED BY VOLUME MANAGEMENT



   []  ONE PVT PER SYSTEM





ox  THE PVT IS  THE MOST IMPORTANT DATA BASE OF  VOLUME MANAGEMENT, AND
   CONTAINS AN ARRAY OF PHYSICAL VOLUME TABLE ENTRIES (PVTE'S)



   []  ONE PVTE PER DISK DRIVE KNOWN TO THE SYSTEM





ox  EACH PVTE DESCRIBES:



   []  A DISK DRIVE CONFIGURED TO THE SYSTEM


      []  INCLUDING THE DEVICE NUMBER,  DEVICE TYPE, SUBSYSTEM NAME AND
         OTHER INFORMATION NEEDED BY THE DISK DIM



   []  THE PHYSICAL VOLUME CURRENTLY MOUNTED ON THE DISK DRIVE


      []  INCLUDING  THE PVID, LVID,  AND OTHER INFORMATION  TAKEN FROM
         THE VOLUME  HEADER, VOLUME MAP  AND VTOC MAP,  NEEDED BY PAGE
         AND SEGMENT CONTROL (THE PV & LV NAMES ARE _N_O_T RECORDED HERE)






Not To Be Reproduced             6-26                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_P_V_T_)




      []  RECORD AND VTOCE STOCKS ARE LOCATED FROM THE PVT, BUT KEPT IN
         THE stock_seg















































Not To Be Reproduced             6-27                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _L_O_G_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_L_V_T_)














                        =======================
                        INSERT LVT DIAGRAM HERE
                        =======================




































Not To Be Reproduced             6-28                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _L_O_G_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_L_V_T_)







ox  THE  LOGICAL VOLUME  TABLE (LVT)   IS A  HARDCORE, PAGED  DATA BASE
   MAINTAINED BY VOLUME CONTROL



   []  ONE LVT PER SYSTEM





ox  THE LVT CONTAINS AN ARRAY OF LOGICAL VOLUME TABLE ENTRIES (LVTE'S)



   []  ONE LVTE FOR EACH MOUNTED LOGICAL VOLUME





ox  EACH LVTE DESCRIBES THE LOGICAL VOLUME TO INCLUDE:



   []  LVID AND AIM CLASSIFICATION



   []  RELATIVE POINTER  TO THE THREAD  OF PVTE'S OF  ACCEPTED PHYSICAL
      VOLUMES THAT ARE MEMBERS OF THE LOGICAL VOLUME















Not To Be Reproduced             6-29                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _L_O_G_I_C_A_L__V_O_L_U_M_E__T_A_B_L_E__(_L_V_T_)







ox  THE LVT IS REQUIRED AT THE FOLLOWING TIMES:



   []  SEGMENT CREATION



   []  SEGMENT MOVING TIME



   []  VOLUME MOUNTING AND DEMOUNTING



   []  INITIATION AND SEGMENT FAULT TIME (FOR PUBLIC/PRIVATE CHECK)





























Not To Be Reproduced             6-30                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__H_O_L_D__T_A_B_L_E


                  ==================================
                  INSERT PVT Hold Table DIAGRAM HERE
                  ==================================












ox  THE  PHYSICAL VOLUME  HOLD TABLE   (PVHT) IS  A HARDCORE  DATA BASE
   MAINTAINED BY VOLUME MANAGEMENT



   []  ONE PVHT PER SYSTEM





ox  THE  PVHT IDENTIFIES  THE PHYSICAL   VOLUME AND  THE PROCESS  ID OF
   PROCESS  THAT HAS  STARTED (AND   HAS NOT  YET COMPLETED)  COMPOUND
   OPERATIONS UPON THE PHYSICAL VOLUME





ox  THIS INFORMATION PREVENTS A VOLUME  FROM BEING DEMOUNTED WHILE SUCH
   AN OPERATION IS IN PROGRESS















Not To Be Reproduced             6-31                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__D_A_T_A__B_A_S_E_S

                      _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__H_O_L_D__T_A_B_L_E







ox  INTERRUPTION OF A COMPOUND OPERATION CAUSES THE VOLUME TO BE MARKED
   AS CONTAINING AN INCONSISTENCY





ox  FOR CRASH ANALYSIS, sst.pvthp CONTAINS A POINTER TO THIS TABLE






































Not To Be Reproduced             6-32                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                    _A_C_C_E_P_T_A_N_C_E__O_F__P_H_Y_S_I_C_A_L__V_O_L_U_M_E_S







ox  THE  ACCEPTANCE  OF  PHYSICAL  VOLUMES  IS  THE  MOST IMPORTANT AND
   FUNDAMENTAL OPERATION OF VOLUME MANAGEMENT





ox  PHYSICAL   VOLUME    ACCEPTANCE   IS   ACCOMPLISHED    BY   CALLING
   initializer_gate_$accept_fs_disk





ox  THE  ROOT PHYSICAL VOLUME  (RPV) IS ACCEPTED  IN A SPECIAL  FASHION
   DURING COLLECTION 2 OF BOOTLOAD



   []  THE RPV IS THE ONLY PV  REQUIRED TO BOOTLOAD THE SYSTEM (MORE OF
      THE RLV WILL BE ACCEPTED BY RING ZERO DURING BOOTLOAD IF POINTED
      TO BY THE "ROOT" CONFIGURATION CARD)





ox  ACCEPTANCE INCLUDES:



   []  VALIDATE THAT THE DISK PACK MOUNTED IS THE PACK REQUESTED BY THE
      OPERATOR OR REQUESTING PROCESS VIA label.pvid



   []  DETERMINE THAT THE DISK PACK MOUNTED IS IN FACT A MEMBER OF _T_H_I_S
      HIERARCHY VIA label.root_pvid








Not To Be Reproduced             6-33                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                    _A_C_C_E_P_T_A_N_C_E__O_F__P_H_Y_S_I_C_A_L__V_O_L_U_M_E_S





   []  INITIALIZING  THE APPROPRIATE  PVTE  WITH  DATA FROM  THE LABEL,
      VOLUME MAP, AND VTOC MAP



   []  INITIALIZING THE INITIAL CONTENTS OF  THE RECORD STOCK AND VTOCE
      STOCKS



   []  DETERMINING  IF  ANY  VOLUME  INCONSISTENCIES  ARE  PRESENT, AND
      LOGGING THIS INFORMATION


      []  VOLUME  INCONSISTENCIES ARE CAUSED  BY EVENTS WHICH  MAY MEAN
         THAT THE DISK RESIDENT COPY OF  THE VOLUME MAP OR VTOC MAP IS
         INCONSISTENT:

         []  A CRASH WITHOUT ESD  - INDICATED BY label.time_map_updated
            and   label.time_unmounted  BEING  UNEQUAL,   DETECTED  AT
            ACCEPTANCE TIME

         []  AN INCONSISTENCY DETECTED ONLINE,  SUCH AS AN INVALID VTOC
            BIT MAP OR A REUSED ADDRESS

         []  AN  I/O ERROR  WHEN WRITING   THE VOLUME  MAP OR  VTOC MAP
            DURING NORMAL OPERATION


      []  A COUNT IS KEPT IN THE LABEL, AND UPDATED AS NECESSARY


      []  NORMALLY, INCONSISTENCIES ARE MERELY LOGGED, AND LEFT FOR THE
         SITE TO TAKE CARE OF AT SOME CONVENIENT TIME

         []  IF AN RLV  VOLUME CLAIMS ONLY A VERY SMALL  NUMBER OF FREE
            PAGES, A  VOLUME SALVAGE IS  DONE AUTOMATICALLY TO  TRY TO
            RECOVER ANY  LOST DUE TO  THE INCONSISTENCY, SINCE  A FULL
            RLV WILL CAUSE SYSTEM CRASHES









Not To Be Reproduced             6-34                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                    _A_C_C_E_P_T_A_N_C_E__O_F__P_H_Y_S_I_C_A_L__V_O_L_U_M_E_S





   []  WRITING OUT THE LABEL TO UPDATE label.time_map_updated.


      []  NOTE:   label.time_map_updated  AND  label.time_unmounted ARE
         NOW UNEQUAL


      []  THIS INEQUALITY IMPLIES THAT THE VOLUME HAS _N_O_T BEEN PROPERLY
         SHUT DOWN, AND WILL BE  MARKED INCONSISTENT IF ACCEPTED AGAIN
         IN THIS STATE



   []  MARKING THE PVTE AS "IN USE" (LAST STEP)


































Not To Be Reproduced             6-35                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                    _D_E_M_O_U_N_T_I_N_G__O_F__P_H_Y_S_I_C_A_L__V_O_L_U_M_E_S







ox  THE DEMOUNTING  OF PHYSICAL VOLUMES  INVOLVES REVERSING ALL  OF THE
   STEPS TAKEN AT ACCEPTANCE TIME





ox  DEMOUNTING IS COMPLICATED BY THE FACT THAT  THE PV MAY BE IN USE AT
   THE TIME





ox  DEMOUNTING IS ACCOMPLISHED BY CALLING demount_pv ("THE DEMOUNTER")





ox  ALL VOLUMES ARE DEMOUNTED AT SHUTDOWN TIME





ox  DEMOUNTING INCLUDES:



   []  TURNING  ON pvte.being_demounted  AND WAITING  FOR ALL  COMPOUND
      OPERATIONS TO TERMINATE



   []  DEACTIVATING ALL  SEGMENTS FROM THE  PV WHICH ARE  ACTIVE.  THIS
      INCLUDES:


      []  FLUSHING MAIN  MEMORY AND PAGING  DEVICE (IF PRESENT)  OF ALL
         RELEVANT PAGES





Not To Be Reproduced             6-36                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                    _D_E_M_O_U_N_T_I_N_G__O_F__P_H_Y_S_I_C_A_L__V_O_L_U_M_E_S




      []  UPDATING THE VTOCE'S FROM THE ASTE'S AND PAGE TABLES



   []  FLUSHING  THE  VTOC  MANAGER'S  BUFFER  SEGMENT  OF ALL RELEVANT
      VTOCE-PARTS



   []  EMPTYING THE  RECORD AND VTOCE  STOCKS BACK INTO  THE VOLUME MAP
      AND VTOC MAP



   []  UPDATING THE VOLUME LABEL FROM THE PVTE, PARTICULARLY


      []  label.time_unmounted, label.time_map_updated, AND
         label.inconsistency_count



   []  PHYSICALLY CYCLING DOWN THE DISK DRIVE


      []  NOT DONE AT SYSTEM SHUTDOWN, HOWEVER





ox  ONLY ONE PV MAY BE DEMOUNTED AT A TIME

















Not To Be Reproduced             6-37                          MDD-003
                     _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__O_P_E_R_A_T_I_O_N_S

                       _L_O_G_I_C_A_L__V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T







ox  LOGICAL VOLUME MANAGEMENT INCLUDES:



   []  MAINTAINING THE LOGICAL VOLUME TABLE  (LVT) TO REFLECT THE STATE
      OF THE LOGICAL VOLUMES



   []  MAINTAINING, IN THE KNOWN SEGMENT TABLE (KST) OF EACH PROCESS, A
      TABLE OF PRIVATE LOGICAL VOLUMES MOUNTED TO THE PROCESS



   []  ANSWERING THE QUESTION OF WHETHER  OR NOT A GIVEN LOGICAL VOLUME
      IS MOUNTED TO THE CALLING PROCESS


      []  OR, IF A PUBLIC LV, MOUNTED AT ALL (TO THE SYSTEM)



   []  PROVIDING  THE HEAD  OF THE  PVT CHAIN  FOR A  GIVEN LV, FOR THE
      SEGMENT CREATION FUNCTION






















Not To Be Reproduced             6-38                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                       _p_r_i_n_t__c_o_n_f_i_g_u_r_a_t_i_o_n__d_e_c_k







ox  PRINT_CONFIGURATION_DECK   -   DISPLAYS   >sl1>config_deck,   WHICH
   CONTAINS INFORMATION ABOUT DISK LOCATIONS, THE RLV, AND PARTITIONS



   []  ONLY THE PART  OF THE CONFIG DECK RELEVANT  TO VOLUME MANAGEMENT
      AND DISK CONFIGURATION IS SHOWN HERE



       root  dska  16.  dskb  25.  dskb  23.  dskb  24.  dska  8.

       part  bos  dska  16.
       part  dump  dska  16.
       part  log  dska  16.

       prph  dska  a  20.  2  451.  16.
       chnl  dska  a  26.  2  b  24.  2  b  22.  2

       prph  dskb  b  20.  2  0  16.  451.  16.
       chnl  dskb  b  26.  2  a  24.  2  a  22.  2

       prph  dskc  a  28.  2  501.  32.
       chnl  dskc  a  30.  2  b  30.  2  b  28.  2

       prph  dske  b  32.  2  451.  8.
       chnl  dske  b  34.  2

       prph  dskf  a  32.  2  501.  16.
       chnl  dskf  a  34.  2

       mpc  mspa  451.  a  20.  4  a  24.  4
       mpc  mspb  451.  b  20.  4  b  24.  4
       mpc  mspc  607.  a  28.  4
       mpc  mspd  607.  b  28.  4
       mpc  mspe  451.  b  32.  4
       mpc  mspf  607.  a  32.  4









Not To Be Reproduced             6-39                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                       _p_r_i_n_t__c_o_n_f_i_g_u_r_a_t_i_o_n__d_e_c_k







ox  DISK CONFIGURATION CONFIG CARDS



   []  ROOT


      []  IDENTIFIES  THOSE VOLUMES  IN THE  ROOT LOGICAL  VOLUME WHICH
         HAVE  HC PARTITIONS,  USED BY  THE SUPERVISOR  FOR PAGING  OF
         SUPERVISOR SEGMETNS



   []  PART


      []  IDENTIFIES THE LOCATIONS OF CERTAIN IMPORTANT PARTITIONS


      []  ONLY   PARTITIONS  NECESSARY   FOR  MULTICS   OPERATIONS  ARE
         IDENTIFIED, NOT ALT PARTITIONS


      []  HC PARTITIONS ARE LOCATED BY THE ROOT CARD



   []  PRPH DSK_n, CHNL


      []  IDENTIFY PHYSICAL I/O CHANNEL PATHS FOR ACCESSING DISK DRIVES



   []  MPC


      []  IDENTIFY   PHYSICAL  CONNECTIONS   TO  MICROPROGRAMMED   DISK
         CONTROLLERS







Not To Be Reproduced             6-40                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                               _l_i_s_t__v_o_l_s







ox  LIST_VOLS - DISPLAYS A TABLE OF ONLINE VOLUMES, THEIR LOCATION, AND
   SPACE UTILIZATION



Drive    Records   Left  %  VTOCEs Left  %  Avg   PV      PB/PD   LV Name
                                            Size Name

dskc_17    64504  54730  85  13440 11356 84   4  alpha01  pb pd   Alpha
dskc_18    64504  55389  86  13440 11352 84   4  alpha02  pb pd   Alpha
dska_05    36428   5305  15   8400 2662  32   5  mul03    pb pd   Multics_Pubs
dska_06    36428   4323  12   8400 2365  28   5  mul01    pb pd   Multics_Pubs
dskb_19    36428   4632  13   8400 2813  33   5  mul02    pb pd   Multics_Pubs
dskb_26    36429  13690  38   8400 4326  52   5  mul05    pb pd   Multics_Pubs
dskb_27    36429   4672  13   8400 2333  28   5  mul04    pb pd   Multics_Pubs
dska_01    36308   4680  13   9000  450   5   3  pub01    pb pd   Public
dska_03    36268   3588  10   9200 1017  11   3  pub07    pb pd   Public
dska_04    36268   4500  12   9200  884  10   3  pub04    pb pd   Public
dska_09    36268   4816  13   9200  864   9   3  pub02    pb pd   Public
dskb_17    36269   4281  12   9200 1002  11   3  pub05    pb pd   Public
dskb_18    36268   3840  11   9200  539   6   3  pub08    pb pd   Public
dskc_13    64504    294   0  13440 5539  41   8  rel01            Release
dskc_14    64504    269   0  13440 5214  39   7  rel02            Release
dskc_01    64503  43631  68  13440 10032 75   6  xpub01   pb      Xpublic
dskc_02    64503  45502  71  13440 9838  73   5  xpub02   pb      Xpublic
dskc_03    64503  42374  66  13440 9839  73   6  xpub03   pb      Xpublic
dskc_04    64503  43591  68  13440 9785  73   5  xpub04   pb      Xpublic
dskc_09    64504  58010  90  13440 12394 92   6  xpub05   pb      Xpublic
dskc_10    64504  56786  88  13440 12407 92   7  xpub06   pb      Xpublic
dskc_21    64503  23947  37  13440 6446  48   5  ypub01   pb      Ypublic
dskc_22    64503  23744  37  13440 6194  46   5  ypub02   pb      Ypublic
dskc_29    64503  23794  37  13440 6185  46   5  ypub05   pb      Ypublic
dskc_30    64503  24111  37  13440 6481  48   5  ypub06   pb      Ypublic
dskc_07    64503  11723  18  13440 6149  46   7  zpub01   pb pd   Zpublic
dskc_08    64503  11665  18  13440 6429  48   7  zpub02   pb pd   Zpublic
dskc_23    64504   9777  15  13440 6094  45   7  zpub03   pb pd   Zpublic
dskc_24    64504  11805  18  13440 6141  46   7  zpub04   pb pd   Zpublic
dskc_25    64504  11514  18  13440 7407  55   8  zpub05   pb pd   Zpublic
dskc_26    64504  12958  20  13440 7149  53   8  zpub06   pb pd   Zpublic
dske_06    37089   8053  22   5100 3797  74  22  list01   pb pd   list_1
dska_12    37562   6046  16   2735  957  35  17  list02   pb      list_2
dska_07    37309   6825  18   4000 2107  53  16  list03   pb      list_3
dska_08    36209   3827  11   7000  491   7   4  root5    pb      root
dska_11    36209   8597  24   7000 4181  60   9  root6    pb      root


Not To Be Reproduced             6-41                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                               _l_i_s_t__v_o_l_s


dska_16    31283   2892   9   9000 3476  39   5  rpv      pb      root
dskb_23    36208   4888  13   7000  455   7   4  root3    pb      root
dskb_24    36209   3097   9   7000  238   3   4  root4    pb      root
dskb_25    36350   4483  12   7000  223   3   4  root2    pb      root















































Not To Be Reproduced             6-42                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                             _d_i_s_p_l_a_y__l_a_b_e_l







ox  DISPLAY_LABEL -  DISPLAYS THE LABEL  OF A STORAGE  SYSTEM VOLUME BY
   READING IT FROM DISK



   []  USED /  FREE INFORMATION IS COPY  ON DISK, AND THEREFORE  OUT OF
      DATE WITH RESPECT TO THE PVTE



Label for Multics Storage System Volume rpv on dska_01 d451
          PVID                220531524345
          Serial              rpv
          Logical Volume      root
            LVID              220531524466

          Registered          01/28/81  1249.5
          Dismounted          03/15/83  0741.9
          Map Updated         03/15/83  0744.6
          Salvaged            10/01/82  0300.3
          Bootload            03/15/83  0743.5
          Reloaded            01/28/81  1510.1
          Dumped
            Incremental       03/17/83  2153.0
            Consolidated      03/16/83  2359.3
            Complete          03/15/83  2353.0

          Inconsistencies            0

          Minimum AIM         0:000000
          Maximum AIM         7:777777

          Volume contains Root (>) at vtocx 0
            disk_table_ at vtocx 100 (uid 033022210261)

Volume Map from Label

          First Rec   (Octal)      Size
                 0         0         8      Label  Region
                 8        10      2000      VTOC   Region
              2008      3730      2008      hc     Partition
              4016      7660     33901      Paging Region
             37917    112035       200      bos    Partition



Not To Be Reproduced             6-43                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                             _d_i_s_p_l_a_y__l_a_b_e_l


             38117    112345       141      alt    Partition
                                 38258      Total  Size

















































Not To Be Reproduced             6-44                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                             _d_i_s_p_l_a_y__p_v_t_e







ox  DISPLAY_PVTE - DISPLAYS THE PVT ENTRY OF A STORAGE SYSTEM VOLUME



   []  PARTITION INFORMATION IS NOT DETAILED IN THE PVTE, BUT USED/FREE
      INFORMATION IS COMPLETELY UP TO DATE



PVTE for Multics Storage System Volume rpv on dska_01 d451 at pvt|50
          PVID                220531524345
          LVID                220531524466

          VTOCEs
            Number               10000
            Left                  3323

          Records
            Number               33901
            Left                  3796
          Inconsistencies            0

          Volume Map
            volmap_seg ASTE    15|4420
            record stock        76|100
            Page 0 - Base         7660
                     Free         3364
            Page 1 - Base       103660
                     Free         3740
            Page 2 - Base       203660
                     Free            0
            vtoce stock        76|2400

          ON:        storage_system permanent hc_part_used

          OFF:       being_mounted being_demounted being_demounted2
                     scav_check_address device_inoperative vacating
                     dmpr_in_use(incr) dmpr_in_use(cons) dmpr_in_use(comp)

Volume Map from PVTE

          First Rec   (Octal)      Size
                 0         0         8      Label  Region
                 8        10      2000      VTOC   Region


Not To Be Reproduced             6-45                          MDD-003
                      _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__C_O_M_M_A_N_D_S

                             _d_i_s_p_l_a_y__p_v_t_e


              2008      3740      2008      Partitions
              4016      7660     33901      Paging Region
             37917    112035       199      Partitions
                                 38258      Total  Size















































Not To Be Reproduced             6-46                          MDD-003
                       _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__M_E_T_E_R_S

                              _d_i_s_k__m_e_t_e_r_s







ox  DISK_METERS - DISPLAYS I/O ACTIVITY TO DISK DRIVES



   []  ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE



   Total metering time   0:20:12

   Subsystem dska       Count     Waits    %Waits   Avg. Wait(ms.)

   call locks           26005       217      0.83     0.259
   run locks              112         0      0.00     0.000
   interrupt locks      25998       239      0.92     0.208
   allocations          26001         0      0.00     0.000

   Drive      Reads    Writes      Seek        ATB      ATB         ATB
                                 Distance     Reads    Writes       I/O

    1           269        67       214        4508     18102      3609
    3           362       243       109        3350      4991      2004
    4           309       131       184        3925      9258      2756
    5           547       165       180        2217      7350      1703
    6           631       165       161        1922      7350      1523
    7             0         0         0           0         0         0
    8          5843      2187       122         207       554       151
    9           366       116       153        3313     10455      2516
   11          3501      1431       200         346       847       245
   12             0         0         0           0         0         0
   16          7158      2508       135         169       483       125















Not To Be Reproduced             6-47                          MDD-003
                       _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__M_E_T_E_R_S

                             _d_e_v_i_c_e__m_e_t_e_r_s







ox  DEVICE_METERS  - DISPLAYS  SUMMARY OF   I/O ACTIVITY  FOR ALL  DISK
   SUBSYSTEMS



   Total metering time    0:20:13

                           dska        dskb        dskc        dskd

   Prior Page I/O         18571       17743         462        1273
   ATB                   65.334      68.383    2626.240     953.121
   Other Page I/O          6525        5135          16         696
   ATB                  185.949     236.284   75832.692    1743.280
   ATB Page I/O          48.347      53.034    2538.332     616.212
   Prior VTOCE I/O          934         895          38         304
   ATB                 1299.061    1355.668   31929.554    3991.194
   ATB I/O               46.612      51.037    2351.401     533.798
   % Busy                    76          74           0           4
   Avg. Page Wait        47.289      46.197      20.341      24.666
   Avg. Page ^Wait      176.082     101.023      36.996      61.704
   Avg VTOCE Wait        41.138      37.610      38.595      29.090
   Avg. Page I/O T       35.619      38.314      20.050      22.482
   Avg. VTOCE I/O T      31.139      32.277      37.060      26.606
   EDAC Corr. Errs            0           0           0           0
   Errors                     0           0           0           1
   Fatal Errors               0           0           0           0




















Not To Be Reproduced             6-48                          MDD-003
                       _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__M_E_T_E_R_S

                              _d_i_s_k__q_u_e_u_e







ox  DISK_QUEUE - DISPLAYS I/O QUEUE FOR A DISK SUBSYSTEM



   []  ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE



     Connects = 2604781, 1359725, 677321, 309367,
                123430, 40159, 10227, 1969.

     P  RW VP DV   SECTOR      MEM

     0  W  P  24  1350330  27304000
     0  W  P   9  1020150   4432000
     0  W  P  16  1204130  36246000
     0  W  P  16   314370  27306000
     0  W  P  16   314430  34166000




                                    TOPIC VII


                                                                     Page

                       Segment Control Overview. . . . . . . . . . . 7-1
                       Segment Control Terminology . . . . . . . . . 7-4
                       Segment Control Data Bases. . . . . . . . . . 7-5
                           Volume Table of Contents (VTOC) . . . . . 7-5
                           Active Segment Table (AST). . . . . . . . 7-11
                       Services of Segment Control . . . . . . . . . 7-25
                           Creating Segments . . . . . . . . . . . . 7-25
                           Segment Fault . . . . . . . . . . . . . . 7-28
                           Segment Activation. . . . . . . . . . . . 7-29
                           Segment Trailers. . . . . . . . . . . . . 7-30
                           Boundsfault Handling. . . . . . . . . . . 7-32
                           Segment Deactivation. . . . . . . . . . . 7-35
                           Summary of Major Services . . . . . . . . 7-37
                           Encacheability. . . . . . . . . . . . . . 7-38
                           Truncating Segments . . . . . . . . . . . 7-38
                           Deleting Segments . . . . . . . . . . . . 7-40
                           Other Services. . . . . . . . . . . . . . 7-42
                       Segment Control Meters. . . . . . . . . . . . 7-44


                                  7-i                          MDD-003
                       _V_O_L_U_M_E__M_A_N_A_G_E_M_E_N_T__M_E_T_E_R_S

                              _d_i_s_k__q_u_e_u_e


                           file_system_meters. . . . . . . . . . . . 7-44
                           vtoc_buffer_meters. . . . . . . . . . . . 7-46
                       Segment Control Commands. . . . . . . . . . . 7-47
                           print_aste_ptp. . . . . . . . . . . . . . 7-47
                           dump_vtoce. . . . . . . . . . . . . . . . 7-48















































                                  7-i                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  SEGMENT  CONTROL IS  RESPONSIBLE FOR  THE MANAGEMENT  OF _L_O_G_I_C_A_L
      _M_E_M_O_R_Y



   []  ITS TASKS INCLUDE:


      []  MAINTAINING  THE DISK RESIDENT  MAPS OF SEGMENTS  (IE:  THEIR
         VTOCE'S)


      []  SEGMENT CREATION, TRUNCATION AND DELETION


      []  SEGMENT ACTIVATION AND DEACTIVATION (ASTE MULTIPLEXING)



   []  SEGMENT CONTROL CAN BE INVOKED  EITHER BY SUBROUTINE CALLS OR BY
      SEGMENT FAULTS





ox  BASIC PHILOSOPHY OF ACTIVATION/DEACTIVATION



   []  OF  ALL SEGMENTS RESIDENT  WITHIN THE SYSTEM'S  MOUNTED PHYSICAL
      VOLUMES, ONLY A  SMALL SUBSET WILL REQUIRE ACCESSING  AT ANY ONE
      TIME.  SUCH SEGMENTS WILL BE CALLED "ACTIVE SEGMENTS"



   []  A PART OF MAIN MEMORY,  CALLED THE "ACTIVE SEGMENT TABLE" (AST),
      WILL BE RESERVED TO HOLD MANAGEMENT INFORMATION FOR THESE ACTIVE
      SEGMENTS (IDENTITY, PVT INDEX, LOCATION OF PAGES, ETC.)





Not To Be Reproduced              7-1                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W





   []  AS SEGMENTS FALL INTO  DISUSE, THEIR "MANAGEMENT INFORMATION" IN
      THE  AST WILL  BE REPLACED  WITH INFORMATION  OF OTHER  SEGMENTS
      REQUIRING ACTIVATION





ox  USER INTERFACE



   []  COMMAND LEVEL


      []  create, delete, truncate, etc.



   []  SUBROUTINE LEVEL


      []  hcs_$append_branch, hcs_$append_branchx, hcs_$delentry_seg,
         hcs_$delentry_file, hcs_$truncate_seg, hcs_$truncate_file,
         hcs_$force_write, etc





ox  MAJOR DATA BASES



   []  SYSTEM SEGMENT  TABLE (SST) -  ONE PER SYSTEM,  SHARED WITH PAGE
      CONTROL.  ONE MAJOR COMPONENT IS "OWNED" BY SEGMENT CONTROL:


      []  ACTIVE SEGMENT TABLE (AST) - ONE PER SYSTEM


      []  THE AST IS A LIST OF ACTIVE (CURRENTLY BEING USED) SEGMENTS


      []  ACTIVE SEGMENT TABLE ENTRY (ASTE) - ONE PER ACTIVE SEGMENT

         []  ASTES  CONTAIN  PHYSICAL  VOLUME  ID'S  (PVID'S)  AND VTOC



Not To Be Reproduced              7-2                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W


            INDEX'S (VTOCX'S) OF SEGMENTS.   NEEDED BY SEGMENT CONTROL
            TO FIND THE SEGMENT ON DISK (HARDWARE)



   []  AST HASH TABLE


      []  ALLOWS EFFICIENT SEARCHING OF ASTE'S


      []  LOGICALLY  PART  OF  THE  AST,  BUT  ELSEWHERE FOR HISTORICAL
         REASONS



   []  DIRECTORY SEGMENTS


      []  CONTAIN  LOCATIONS  AND  ATTRIBUTES  OF  SEGMENTS.   LOCATION
         INFORMATION  FROM DIRECTORY  SEGMENTS IS  PROVIDED TO SEGMENT
         CONTROL BY DIRECTORY CONTROL



   []  VOLUME TABLE OF CONTENTS (VTOC) - ONE PER PHYSICAL VOLUME


      []  VOLUME   TABLE  OF   CONTENTS   ENTRY   (VTOCE)  -   ONE  PER
         DISK-RESIDENT SEGMENT


      []  EACH VTOCE CONTAINS THE  SEGMENT'S UNIQUE ID, CURRENT LENGTH,
         FILE MAP, ETC (NEED TO BUILD ASTE'S AND PT'S)


      []  VTOCES ARE READ AND WRITTEN ONLY BY SEGMENT CONTROL



   []  VTOCE STOCKS - FROM VOLUME MANAGEMENT


      []  USED WHEN CREATING AND DELETING VTOCES FOR SEGMENTS









Not To Be Reproduced              7-3                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







MULTIPLEXING:  CONTROLLED SHARING OF A REUSABLE RESOURCE





VTOC:          VOLUME  TABLE OF  CONTENTS (ONE  PER PV).   AN ARRAY OF
               VTOCE'S  IDENTIFYING  ALL   SEGMENTS  RESIDENT  ON  THE
               PHYSICAL VOLUME





VTOCE:         VOLUME  TABLE  OF  CONTENTS  ENTRY  (ONE  PER  RESIDENT
               SEGMENT).    CONTAINS    IDENTIFICATION   AND   LOCATOR
               INFORMATION  ABOUT   A  SEGMENT  RESIDENT   WITHIN  THE
               PHYSICAL VOLUME





SEGMENT:       A COLLECTION OF INFORMATION (PROCEDURE OR DATA) GROUPED
               TOGETHER  UNDER THE   SAME ACCESS  CONTROL CONSTRAINTS.
               EACH  SEGMENT  IS  GIVEN  ONE   OR  MORE  NAMES  AND  A
               COLLECTION  OF  ATTRIBUTES   INCLUDING  LENGTH,  ACCESS
               PERMISSIONS, ETC





SEMI-PERMANENT ACTIVATION:
               ACTIVATING  A SEGMENT  AND  TURNING  ON ITS  ENTRY HOLD
               SWITCH  (aste.ehs) PREVENTING NORMAL  (ASTE CONTENTION)
               DEACTIVATION











Not To Be Reproduced              7-4                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)














                     =============================
                     INSERT VTOCE (1) DIAGRAM HERE
                     =============================




































Not To Be Reproduced              7-5                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)














                     =============================
                     INSERT VTOCE (2) DIAGRAM HERE
                     =============================




































Not To Be Reproduced              7-6                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)







ox  THE "VOLUME TABLE OF CONTENTS" (VTOC)  IS A DISK RESIDENT DATA BASE
   CONTAINING (OF INTEREST HERE) AN  ARRAY OF ENTRIES KNOWN AS "VOLUME
   TABLE OF CONTENTS ENTRIES" (VTOCE'S)



   []  ONE VTOC PER PHYSICAL VOLUME



   []  ONE VTOCE PER SEGMENT





ox  EACH  VTOCE  CONTAINS  RESIDENCY  INFORMATION  (AND  SOME ATTRIBUTE
   INFORMATION) OF A PARTICULAR SEGMENT





ox  EACH VTOCE IS ADDRESSED BY INDEXING INTO THE ARRAY OF VTOCE'S



   []  CONSEQUENTLY,  THE   PAIR  OF  PVID  AND   VTOC  INDEX  UNIQUELY
      IDENTIFIES ANY SEGMENT IN THE STORAGE SYSTEM HIERARCHY





ox  EACH  VTOCE IS  192 WORDS  LONG AND  IS DIVIDED  INTO THREE LOGICAL
   PARTS:



   []  ACTIVATION INFORMATION (16 WORDS)






Not To Be Reproduced              7-7                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)




      []  CONTAINS ALL  INFORMATION (EXCLUDING THE FILE  MAP) NEEDED TO
         _U_S_E THE SEGMENT, OR MORE TECHNICALLY, TO ACTIVATE THE SEGMENT

         []  INCLUDES:   UID,  CURRENT  LENGTH,  RECORDS  USED, MAXIMUM
            LENGTH, RECORDS USED, ETC


      []  ALL INFORMATION LIKELY TO CHANGE BECAUSE OF THE ACTIVATION

         []  INCLUDES:  DATE TIME MODIFIED AND  USED, QUOTA CELLS (IF A
            DIRECTORY), ETC



   []  FILE MAP (128 WORDS)


      []  AN  ARRAY OF  256 RECORD  ADDRESS OR  NULL ADDRESS  DETAILING
         WHERE EACH PAGE OF THE SEGMENT RESIDES


      []  A _N_U_L_L ADDRESS  (NOT TO BE CONFUSED WITH A  _N_U_L_L_E_D ADDRESS --
         DISCUSSED LATER)  INDICATES THAT NO  RECORD OF THE  VOLUME IS
         ASSIGNED TO THAT PAGE OF THE SEGMENT


      []  A  RECORD ADDRESS IS  THE ADDRESS OF  THE RECORD ASSIGNED  TO
         THAT PAGE OF THE SEGMENT (I.E., THE DISK RESIDENT HOME OF THE
         PAGE)


      []  NOTE:   PAGE  CONTROL  _E_N_S_U_R_E_S  THAT  NO  RECORD ADDRESS _E_V_E_R
         APPEARS (OR REMAINS) IN THE FILE MAP _U_N_L_E_S_S THE PAGE _A_C_T_U_A_L_L_Y
         APPEARS ON THE VOLUME



   []  PERMANENT INFORMATION (48 WORDS)


      []  CONTAINS ATTRIBUTES WHICH RARELY (IF EVER) CHANGE SUCH AS:

         []  UID'S  OF SUPERIOR  DIRECTORIES, AIM  CLASSIFICATION, DATE
            TIME DUMPED (BY PHYSICAL VOLUME DUMPER)





Not To Be Reproduced              7-8                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)







ox  EACH VTOCE IS ALSO DIVIDED INTO THREE PHYSICAL PARTS:



   []  FIRST SECTOR (WORDS 0-63):


      []  CONTAINS ALL  "ACTIVATION INFORMATION" AND THE  FIRST PORTION
         OF THE FILE MAP



   []  SECOND SECTOR (WORDS 64-127):


      []  CONTAINS THE BULK OF THE FILE MAP



   []  THIRD SECTOR (WORDS 128-191):


      []  CONTAINS  THE  END  OF  THE   FILE  MAP  AND  ALL  "PERMANENT
         INFORMATION"






















Not To Be Reproduced              7-9                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                    _V_O_L_U_M_E__T_A_B_L_E__O_F__C_O_N_T_E_N_T_S__(_V_T_O_C_)







ox  VTOCE I/O



   []  USING RECORD I/O (IN UNITS OF 1024 WORDS) TO ACCESS A VTOCE (192
      WORDS) WOULD HAVE EXCESSIVE OVERHEAD FOR BUFFERS



   []  FURTHERMORE,  BECAUSE  MOST  SEGMENTS   ARE  SMALL,  MOST  VTOCE
      ACCESSING IS ONLY CONCERNED  WITH ACTIVATION INFORMATION AND THE
      FIRST PORTION OF THE FILE MAP, I.E., THE FIRST SECTOR (64 WORDS)



   []  TO  TAKE ADVANTAGE  OF THESE   FACTS, VTOCE'S  ARE ACCESSED  VIA
      SECTOR I/O, NOT RECORD I/O



   []  A LARGE MECHANISM KNOWN AS  THE VTOC MANAGER (vtoc_man) EXIST TO
      EFFICIENTLY MANAGE THIS SECTOR I/O AND ITS BUFFERING



   []  VTOCE I/O IS THE ONLY NON-PAGE I/O DONE TO DISK



   []  VTOCE I/O IS DONE IN PARTS (SECTORS)


      []  FOR A  SEGMENT, OR A DIRECTORY WITHOUT  TERMINAL QUOTA, PARTS
         ONE AND TWO CAN BE  WRITTEN ENTIRELY FROM INFORMATION DERIVED
         FROM THE ASTE, AND NEED NOT BE READ IN FIRST


      []  PART THREE MUST ALWAYS BE  READ BEFORE BEING WRITTEN, AS MUST
         PART ONE FOR A DIRECTORY WITH QUOTA


      []  ALL THREE PARTS OF A VTOCE  ARE ALWAYS READ WHENEVER ANY PART
         IS REQUESTED, IN CASE THE OTHERS ARE NEEDED SOON AFTERWARDS



Not To Be Reproduced             7-10                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)














                      ===========================
                      INSERT ASTE/PT DIAGRAM HERE
                      ===========================




































Not To Be Reproduced             7-11                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  THE ACTIVE SEGMENT TABLE (AST)  IS A HARDCORE, WIRED, UNPAGED, DATA
   BASE LOCATED WITHIN THE _SYSTEM _SEGMENT _TABLE (SST), AND CONSISTS OF
   AN ARRAY  OF PAIRED ENTRIES  KNOWN AS ACTIVE  SEGMENT TABLE ENTRIES
   (ASTE'S) AND PAGE TABLES (PT'S)



   []  ONE AST PER SYSTEM



   []  ONE ASTE/PT PAIR PER ACTIVE SEGMENT





ox  IN  ORDER FOR  A SEGMENT  TO BE  ACCESSED VIA  THE HARDWARE,  VTOCE
   INFORMATION MUST BE BROUGHT INTO MAIN MEMORY





ox  THE 12 WORD ASTE (AND ITS  ASSOCIATED PAGE TABLE) CAN BE THOUGHT OF
   AS THE MAIN MEMORY RESIDENT IMAGE OF THE VTOCE



   []  SPECIFICALLY, THE ASTE CONTAINS:


      []  THE  VTOCE'S "ACTIVATION  INFORMATION" SUCH  AS THE  SEGMENTS
         UID, CURRENT LENGTH, MAX LENGTH, DTU, DTM, QUOTA DATA


      []  AND  NON-VTOCE INFORMATION SUCH  AS:  PVT INDEX,  VTOC INDEX,
         VARIOUS FLAGS AND POINTERS








Not To Be Reproduced             7-12                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)





   []  THE  PAGE TABLE  CONTAINS THE   RECORD ADDRESS  (TAKEN FROM  THE
      VTOCE'S "FILE MAP") OF EACH NONZERO PAGE OF THE SEGMENT





ox  A SEGMENT HAVING AN ASTE AND A PAGE TABLE IS SAID TO BE ACTIVE



   []  "ACTIVATING" A SEGMENT IS THE PROCESS OF ALLOCATING (AND FILLING
      IN) AN ASTE AND A PAGE TABLE FOR THE SEGMENT



   []  CONVERSELY, "DEACTIVATING"  A SEGMENT INVOLVES FREEING  ITS ASTE
      AND PAGE TABLE FOR FURTHER USE



   []  BEING ACTIVE DOES NOT IMPLY THAT  THE SEGMENT IS ACTUALLY IN USE
      BY ANY PROCESS





ox  SINCE THE AST  IS A PART OF A SINGLE  SEGMENT (HAVING FINITE SIZE),
   THE NUMBER OF ASTE/PT PAIRS IS FINITE, IMPLYING:



   []  ONLY A FINITE NUMBER OF SEGMENTS MAY BE ACTIVE AT ONE TIME



   []  WHEN A NON-ACTIVE  SEGMENT IS REFERENCED, AND THERE  ARE NO FREE
      ASTE'S AVAILABLE, SOME SEGMENT MUST BE DEACTIVATED


      []  THIS  ASTE/PT  MULTIPLEXING  IS  THE  PRIME RESPONSIBILITY OF
         SEGMENT CONTROL





Not To Be Reproduced             7-13                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)





   []  BEING A FINITE  (AND A CRITICAL) SYSTEM RESOURCE,  THE NUMBER OF
      ASTE/PT  PAIRS  CAN  DRAMATICALLY  AFFECT  THE  COMPETITION  FOR
      ASTE'S, AND CONSEQUENTLY SYSTEM PERFORMANCE


      []  TOO FEW ASTE/PT PAIRS WILL CAUSE "SEGMENT THRASHING"


      []  TOO MANY  ASTE/PT PAIRS WILL  OCCUPY MAIN MEMORY  FRAMES THAT
         MIGHT BETTER  BE UTILIZED FOR NORMAL  PAGING TRAFFIC, PERHAPS
         LEADING TO "PAGE THRASHING"


      []  CONSEQUENTLY,  THE  NUMBER  OF  ASTE/PT  PAIRS  IS A CRITICAL
         SYSTEM PARAMETER (SET ON THE SST CONFIG CARD)

         []  OF THE TWO POSSIBILITIES, TOO MANY  OR TOO FEW, TOO FEW IS
            BY FAR THE WORSE






























Not To Be Reproduced             7-14                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)














                =======================================
                INSERT Connecting Segments DIAGRAM HERE
                =======================================




































Not To Be Reproduced             7-15                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  IN ORDER TO MAXIMIZE THE NUMBER OF ASTE/PT PAIRS WITHIN AN AST OF A
   GIVEN SIZE, ASTE/PT PAIRS COME IN FOUR FIXED SIZES:



   []  ASTE + A 4 WORD PAGE TABLE (16 WORDS TOTAL)


      []  FOR 0-4K SEGMENTS



   []  ASTE + A 16 WORD PAGE TABLE (28 WORDS TOTAL)


      []  FOR 5-16K SEGMENTS



   []  ASTE + A 64 WORD PAGE TABLE (76 WORDS TOTAL)


      []  FOR 17-64K SEGMENTS



   []  ASTE + A 256 WORD PAGE TABLE (268 WORDS TOTAL)


      []  FOR 65-256K SEGMENTS
















Not To Be Reproduced             7-16                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)














                     ============================
                     INSERT AST Pool DIAGRAM HERE
                     ============================




































Not To Be Reproduced             7-17                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  THE SIZE  OF EACH OF  THE FOUR ASTE  POOLS IS DETERMINED  AT SYSTEM
   INITIALIZATION  BY THE  SST CONFIG  CARD AND  IS A  CRITICAL SYSTEM
   TUNING PARAMETER





ox  SINCE THE FREQUENCY OF SMALL  SEGMENTS IS HIGHER THAN THE FREQUENCY
   OF  LARGE  SEGMENTS,  THE  DISTRIBUTION  OF  ASTE'S  IS NORMALLY AS
   FOLLOWS:



   []  4K > 16K > 64K > 256K



   []  ON SYSTEM-M, IN  PHOENIX, A 6 CPU, 8MW MEMORY,  200 USER SYSTEM,
      THE ASTE DISTRIBUTION IS NORMALLY:

      3500 1500 750 250

      ON MIT-MULTICS, A 3 CPU, 3.5MW MEMORY, 110 USER SYSTEM, THE ASTE
      DISTRIBUTION IS NORMALLY:

      1700 600 220 75





ox  A SEGMENT  NORMALLY REMAINS ACTIVE (FOR >200  SECONDS) UNTIL FORCED
   TO GIVE UP ITS ASTE/PT PAIR TO ANOTHER SEGMENT (DEACTIVATION)












Not To Be Reproduced             7-18                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  THIS DEACTIVATION CONSISTS OF:



   []  MAKING THE SEGMENT INACCESSIBLE TO USER PROCESSES


      []  DONE BY "CUTTING TRAILERS", IN THE PROGRAM setfaults.pl1


      []  A LIST  OF ALL SEGMENTS  CONNECTED TO (USING)  THE SEGMENT IS
         KEPT FOR THIS PURPOSE



   []  EVICTING ALL PAGES OF THE SEGMENT FROM MAIN MEMORY


      []  ONLY MODIFIED PAGES MUST BE WRITTEN BACK TO DISK.  UNMODIFIED
         PAGES ARE SIMPLY OVERWRITTEN



   []  UPDATING THE VTOCE BY WRITING THE (POSSIBLY MODIFIED) ACTIVATION
      INFORMATION BACK TO THE VTOCE



   []  FREEING THE ASTE/PT PAIR





ox  SINCE ACTIVATING/DEACTIVATING SEGMENTS IS  EXPENSIVE, THE CHOICE OF
   A SEGMENT FOR DEACTIVATION IS IMPORTANT, AND BELONGS TO THE SEGMENT
   REQUIRING ACTIVATION FURTHEST IN THE FUTURE









Not To Be Reproduced             7-19                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  THE ALGORITHM  WHICH CHOOSES A  "BEST" SEGMENT FOR  DEACTIVATION IS
   IMPLEMENTED IN THE PROGRAM get_aste, AND CONSIDERS SUCH FACTORS AS:



   []  THE PRESENCE OF ACTIVE INFERIORS (IF A DIRECTORY)



   []  THE  NUMBER OF  PAGES CURRENTLY  IN MAIN  MEMORY (SINCE  WORK IS
      REQUIRED  TO  EVICT  THE  MODIFIED  FRACTION  OF  SUCH PAGES AND
      BECAUSE THIS INDICATES "USED RECENTLY" IN SOME SENSE)



   []  IT LOOKS FIRST FOR A SEGMENT  WITH NO INFERIORS, AND NO PAGES IN
      MEMORY, AND ALMOST  ALWAYS SUCCEEDS - BUT IF IT  FAILS, IT TRIES
      TO  MAKE  A  "GOOD  CHOICE",  AND  DEACTIVATES INFERIORS, AND/OR
      FLUSHES PAGES TO DISK IF NECESSARY



























Not To Be Reproduced             7-20                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)
























                 =====================================
                 INSERT Typical Used List DIAGRAM HERE
                 =====================================


























Not To Be Reproduced             7-21                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  NOTE:  WHILE INSPECTING THE ASTE'S,  OPPORTUNITY IS TAKEN TO NOTICE
   ASTE'S WHOSE FILE MAPS HAVE CHANGED AND TO UPDATE THEIR VTOCE'S



   []  KNOWN AS "AST TRICKLE"



   []  THIS  IS DONE  TOTALLY AS  A HEDGE  AGAINST A  FATAL CRASH, AS A
      SUCCESSFUL SHUTDOWN UPDATES ALL VTOCE'S OF ACTIVE SEGMENTS



   []  THIS  IS NOT  DONE FOR  PROCESS DIRECTORY  SEGMENTS, SINCE THEIR
      CONTENTS ARE OF LITTLE USE AFTER A CRASH



   []  THE "AST TRICKLE" IS ALSO  FORCED TO OCCUR EVERY FIFTEEN MINUTES
      WHEN  THE SYSTEM  IS  LIGHTLY  LOADED, BECAUSE  OTHERWISE VTOCES
      MIGHT REMAIN UNUPDATED FOR HOURS
























Not To Be Reproduced             7-22                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)







ox  AST HIERARCHY



   []  MIRRORS A SUBSET OF THE STORAGE SYSTEM HIERARCHY



   []  THE ROOT DIRECTORY (>) CANNOT BE DEACTIVATED



   []  NO SEGMENT (EXCEPT THE ROOT) MAY  BE ACTIVE UNLESS ITS PARENT IS
      ACTIVE.  THE REASONS FOR THIS ARE:


      []  PARENT MUST BE ACTIVATED IN ORDER TO FIND THE SON


      []  ACTIVATION  OF OTHER  SONS IS  EASIER IF  THE PARENT  REMAINS
         ACTIVE


      []  THE QUOTA ACCOUNT AGAINST  WHICH AN ACTIVE SEGMENT'S "RECORDS
         USED"  IS  TALLIED  SHOULD  BE  IMMEDIATELY  AVAILABLE WHEN A
         SEGMENT CHANGES SIZE.   THE QUOTA ACCOUNT IS FOUND  IN ONE OF
         THE ANCESTORS' ASTES


      []  DATE TIME  MODIFIED (DTM) FOR A  DIRECTORY _I_S THE DTM  OF THE
         LAST MODIFIED SEGMENT IN THE  SUBTREE.  DTM OF ALL ANCESTOR'S
         SHOULD BE  IMMEDIATELY AVAILABLE WHEN A  SEGMENT IS MODIFIED.
         DTM  IS FOUND  IN THE  ASTE OF  THE ANCESTORS.   (USED BY THE
         HIERARCHY DUMPER)



   []  SUCH  UPDATES TO  THE ASTE'S  OF PARENTS  ARE PERFORMED  BY PAGE
      CONTROL



   []  EACH  ASTE HAS  A POINTER  TO ITS  PARENT'S ASTE  FOR THE  ABOVE



Not To Be Reproduced             7-23                          MDD-003
                      _S_E_G_M_E_N_T__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                      _A_C_T_I_V_E__S_E_G_M_E_N_T__T_A_B_L_E__(_A_S_T_)


      REASONS.  (THIS POINTER IMPLEMENTS THE AST HIERARCHY)





ox  ASTE'S  MAY BE  THREADED ONTO  ONE OF  SIX LISTS  VIA THE  RELATIVE
   POINTERS aste.fp and aste.bp



   []  FOUR  USED LISTS:   THREADS ALL  FREE AND  REPLACEABLE ASTE'S OF
      EACH POOL  SIZE (sst.level.ausedp POINTS TO THE  FIRST FREE ASTE
      IN THE LIST)



   []  INIT AND  TEMP LISTS:  USED AT SYSTEM  INITIALIZATION TO RECEIVE
      (AND DELETE) INITIALIZATION AND TEMPORARY SEGMENTS





ox  THERE ALSO  EXIST SEVERAL AUXILIARY  LISTS SUCH AS  THE HASH THREAD
   AND FATHER-SON, AND BROTHERS LISTS





ox  ALL ACTIVE SEGMENTS  IN THE HIERARCHY ARE IN THE  FOUR USED LISTS -
   EXCEPT   FOR  SEGMENTS  IN   THE  HARDCORE  PARTITION   (THE  PAGED
   SUPERVISOR),  AND  A  SMALL  CLASS  OF  SEGMENTS  WHICH  MAY NOT BE
   DEACTIVATED



   []  SEGMENTS   ARE  SOMETIMES   UNTHREADED  FROM   THEIR  USED  LIST
      TEMPORARILY  IN  ORDER  TO  KEEP  THEM  OUT  OF REACH WHILE SOME
      COMPLEX OPERATION IS PERFORMED










Not To Be Reproduced             7-24                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _C_R_E_A_T_I_N_G__S_E_G_M_E_N_T_S







ox  SEGMENT CREATION IS PERFORMED BY THE PROCEDURE create_vtoce



   []  INPUT:  A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT



   []  OUTPUT:  PVID AND VTOC INDEX OF THE CREATED SEGMENT





ox  create_vtoce MAY  BE CALLED BY append (NORMAL  SEGMENT CREATION) OR
   segment_mover (DUE TO PACK OVERFLOW)





ox  PRINCIPAL STEPS OF create_vtoce:



   []  CREATE A LOCAL IMAGE OF THE VTOCE TO BE CREATED


      []  FILL  IN MOST ACTIVATION  AND PERMANENT INFORMATION  FROM THE
         BRANCH ENTRY


      []  CREATE A NULL FILE MAP


      []  DETERMINE THE UID PATH (UID'S OF SUPERIOR DIRECTORIES)










Not To Be Reproduced             7-25                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _C_R_E_A_T_I_N_G__S_E_G_M_E_N_T_S





   []  SELECT  AN  APPROPRIATE  PV  WITHIN  THE  LV  SPECIFIED  BY  THE
      sons_lvid OF THE DIRECTORY IN WHICH THE BRANCH ENTRY APPEARS


      []  SELECTION GOAL IS TO EVENLY DISTRIBUTE SEGMENTS OVER ALL PV'S
         OF THE LV, THEREBY REDUCING DISK CONTENTION


      []  SELECTION     ALGORITHM    WALKS    THE     CHAIN    (THROUGH
         pvte.brother_pvtx)  OF PV'S  IN THE   LV AND  SELECTS THE  PV
         HAVING THE HIGHEST _P_E_R_C_E_N_T_A_G_E OF UNUSED RECORDS IN ITS PAGING
         REGION


      []  NO  PV IS  ACCEPTED IF  pvte.vacating IS  ON, SIGNIFYING THAT
         sweep_pv IS  TRYING TO VACATE, OR INHIBIT  CREATION UPON, THE
         PV


      []  AN   EXCEPTION    IS   MADE   FOR   PER    PROCESS   SEGMENTS
         (entry.per_process IS ON)

         []  SINCE SUCH  SEGMENTS ARE ALL  HEAVILY USED, A  ROUND ROBIN
            ALGORITHM  EVENLY DISTRIBUTES   THESE SEGMENTS  ACROSS ALL
            PV'S IN THE LV



   []  INVOKE   THE  VTOC  MANAGER   (vtoc_man$alloc_and_put_vtoce)  TO
      ALLOCATE AND WRITE THE VTOCE IMAGE ON THE SELECTED PV


      []  VTOC_MAN ATTEMPTS  TO ALLOCATE A  VTOCE FROM THE  VTOCE STOCK
         FOR THE VOLUME

         []  IF THE STOCK IS EMPTY, IT REFILLS IT FROM THE VTOCE MAP ON
            DISK (SEE vtoce_stock_man.pl1)

         []  BECAUSE  IT IS  PERMISSIBLE TO   TAKE PAGE  FAULTS IN  THE
            VTOC_MAN ENVIRONMENT, THE VTOCE  STOCK IS ACCESSED WITHOUT
            ANY SPECIAL PAGE CONTROL PROTOCOLS


      []  RETURNS THE VTOC INDEX OF THE ALLOCATED VTOCE




Not To Be Reproduced             7-26                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _C_R_E_A_T_I_N_G__S_E_G_M_E_N_T_S





   []  RETURN THE PVID AND VTOC INDEX  OF THE NEW SEGMENT TO THE CALLER
      (WHO RECORDS SAME IN entry.pvid AND entry.vtocx)














































Not To Be Reproduced             7-27                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                          _S_E_G_M_E_N_T__A_C_T_I_V_A_T_I_O_N







ox  SEGMENT ACTIVATION IS PERFORMED BY THE PROCEDURE "activate"



   []  INPUT:  A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT



   []  OUTPUT:  AN ASTE POINTER





ox  activate IS PRINCIPALLY CALLED  BY seg_fault (OF ADDRESS/NAME SPACE
   MANAGEMENT) WHO  HAS LOCATED THE SEGMENT'S  BRANCH ENTRY, VALIDATED
   THE USER'S ACCESS, AND CHECKED THE PRESENCE OF THE LV





ox  PRINCIPAL STEPS OF activate:



   []  LOCK THE  AST LOCK AND CHECK  IF THE SEGMENT IS  ALREADY ACTIVE.
      IF SO, UNLOCK THE AST AND RETURN ITS ASTE POINTER



   []  IF THE  SEGMENT IS NOT  ACTIVE, UNLOCK THE  AST AND READ  IN ALL
      REQUIRED  PARTS OF  THE VTOCE  AND COMPARE  UID'S FOR CONNECTION
      FAILURE (IN WHICH CASE, DO NOT ACTIVATE AND RETURN AN ERROR)



   []  ENSURE THAT THE SEGMENT'S PARENT IS ACTIVE


      []  THIS  IS DONE  BY REFERENCING  THE PARENT  DIRECTORY (PERHAPS
         CAUSING A RECURSIVE SEGMENT FAULT AND ACTIVATION) AND SETTING
         THE  aste.ehs  BIT  FOR  IT  TEMPORARILY  WHILE ACTIVATION IS
         TAKING PLACE


Not To Be Reproduced             7-28                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                          _S_E_G_M_E_N_T__A_C_T_I_V_A_T_I_O_N




      []  NOTE  THAT THE  _O_N_L_Y EXPLICIT  ACTION TAKEN  TO ACTIVATE  THE
         PARENT  IS TO  REFERENCE IT;  THE POSSIBLE  RECURSIVE SEGMENT
         FAULT TAKES  CARE OF EVERYTHING AND ALLOWS  THAT REFERENCE TO
         PROCEED



   []  OBTAIN AN  ASTE FOR THE  SEGMENT BY CALLING  get_aste.  THIS MAY
      INVOLVE DEACTIVATING SOME OTHER SEGMENT  - BUT HOPEFULLY NOT THE
      PARENT!  (ENSURED BY THE aste.ehs BEING ON)



   []  THREAD  THE ASTE  INTO THE  INFERIOR LIST  OF THE  PARENT'S ASTE
      (THIS WILL KEEP HIM ACTIVE), AND RESET THE PARENT'S aste.ehs



   []  FILL  IN THE  ASTE WITH  THE VTOCE'S  ACTIVATION INFORMATION AND
      INITIAL FLAG VALUES



   []  CALL  pc$fill_page_table  (PASSING  THE  VTOCE'S  FILE  MAP)  TO
      INITIALIZE THE PAGE TABLE AND OTHER PAGE CONTROL INFORMATION



   []  PLACE THE UID IN THE ASTE AND HASH IT INTO THE AST HASH TABLE


      []  AFTER A SYSTEM FAILURE, ESD USES A ZERO UID AS A CUE THAT THE
         ASTE IS INVALID,  AND DOES NOT INVOKE A VTOCE  UPDATE FOR THE
         ASTE















Not To Be Reproduced             7-29                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _S_E_G_M_E_N_T__T_R_A_I_L_E_R_S







ox  WHEN A PROCESS IS USING A SEGMENT,  AND IT HAS A VALID SDW FOR THAT
   SEGMENT, A  RECORD MUST BE KEPT  IN CASE IT IS  NECESSARY TO REVOKE
   THAT SDW  (WHEN THE SEGMENT IS  DELETED, WHEN THE ASTE  IS RE-USED,
   ETC)



   []  THIS IS DONE BY THE SEGMENT TRAILER MECHANISM


      []  EACH  PROCESS WHICH  HAS A  VALID  SDW  FOR A  SEGMENT HAS  A
         "TRAILER ENTRY" WHICH RECORDS  ITS PROCESS IDENTIFICATION AND
         THE SEGMENT NUMBER IT IS USING FOR THE SEGMENT


      []  TRAILER ENTRIES  ARE KEPT IN THE str_seg,  A PAGED SUPERVISOR
         SEGMENT


      []  THERE IS A  LINKED LIST OF TRAILER ENTRIES  FOR EACH SEGMENT;
         THE HEAD IS POINTED TO BY aste.strp



   []  TRAILERS ARE  ONLY KEPT FOR  SEGMENTS WHICH MAY  BE DEACTIVATED:
      ORDINARY SEGMENTS AND DIRECTORIES, BUT NOT SUPERVISOR SEGMENTS



   []  A TRAILER IS  ATTACHED FOR A SEGMENT BY  seg_fault.pl1 BEFORE IT
      PLACES THE SDW INTO THE DSEG FOR THE PROCESS



   []  TRAILERS ARE USED LATER BY setfaults.pl1 FOR:


      []  DEACTIVATION - THE SDW IS ENTIRELY REVOKED (ZEROED)


      []  ACCESS CHANGES, DELETION  - THE SDW IS MADE  INVALID, BUT ITS
         PAGE   TABLE  ADDRESS   IS  LEFT   UNCHANGED,  INDICATING  TO
         seg_fault.pl1 THAT ALL IT MUST DO IS RECALCULATE THE ACCESS



Not To Be Reproduced             7-30                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _S_E_G_M_E_N_T__T_R_A_I_L_E_R_S




      []  PROCESS TERMINATION -  ALL SDWS A PROCESS HAD  ARE REVOKED AT
         TERMINATION


      []  CACHE CONTROL - WHEN THE  ENCACHABILITY OF A SEGMENT CHANGES,
         THE SDWS WHICH REFER TO IT MUST HAVE THEIR CACHE CONTROL BITS
         UPDATED



   []  TRAILERS  ARE ONLY  REMOVED WHEN  THE ASSOCIATED  SDW IS REVOKED
      COMPLETELY





































Not To Be Reproduced             7-31                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                         _B_O_U_N_D_S_F_A_U_L_T__H_A_N_D_L_I_N_G














                   ================================
                   INSERT Bounds Fault DIAGRAM HERE
                   ================================




































Not To Be Reproduced             7-32                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                         _B_O_U_N_D_S_F_A_U_L_T__H_A_N_D_L_I_N_G







ox  THE BOUNDSFAULT HANDLER IS  THE PROCEDURE "boundsfault", INVOKED BY
   THE FAULT INTERCEPTER MODULE, FIM, WHEN THE BOUNDSFAULT IS DETECTED
   BY THE APPENDING UNIT HARDWARE





ox  BASIC STEPS OF BOUNDSFAULT



   []  USING THE SEGMENT NUMBER IN THE (SAVED) MACHINE CONDITIONS, FIND
      AND LOCK THE PARENT DIRECTORY, AND FIND THE BRANCH ENTRY



   []  LOCK    THE   AST    AND   FIND    THE   SEGMENT'S    ASTE   VIA
      get_ptrs_$given_segno.   IF ATTEMPTED   REFERENCE IS  BEYOND THE
      MAXIMUM  LENGTH  (aste.msl)  THEN  CAUSE  "out_of_bounds"  TO BE
      SIGNALLED



   []  MAKE THE SEGMENT INACCESSIBLE TO USERS BY "CUTTING TRAILERS"



   []  TURN ON THE PARENT'S aste.ehs BIT  AND CALL get_aste TO OBTAIN A
      LARGER ASTE



   []  CALL  PAGE  CONTROL'S  pc$move_page_table  TO  MOVE  ALL ASTE/PT
      INFORMATION TO THE NEW ASTE



   []  RETHREAD ALL INFERIOR LIST AND PARENT POINTERS AFFECTED AND TURN
      OFF THE PARENT'S aste.ehs BIT






Not To Be Reproduced             7-33                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                         _B_O_U_N_D_S_F_A_U_L_T__H_A_N_D_L_I_N_G




      []  NOTE:  IF THE SEGMENT IS  A DIRECTORY, ALL FATHER POINTERS OF
         INFERIOR SEGMENTS MUST BE UPDATED


      []  THIS IS THE ONLY REASON FOR THE EXISTENCE OF INFERIOR LIST IN
         THE AST



   []  REMOVE THE OLD ASTE FROM THE AST HASH TABLE AND HASH IN THE NEW



   []  CALL put_aste TO FREE THE OLD ASTE



   []  UNLOCK THE AST AND RETURN A ZERO STATUS CODE TO THE FIM































Not To Be Reproduced             7-34                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                         _S_E_G_M_E_N_T__D_E_A_C_T_I_V_A_T_I_O_N







ox  SEGMENT DEACTIVATION IS PERFORMED BY THE PROCEDURE "deactivate"



   []  INPUT:  POINTER TO AN ASTE





ox  deactivate MAY BE CALLED BY:



   []  get_aste  WHEN AN  ASTE MUST  BE FREED  TO MAKE  ROOM FOR  A NEW
      SEGMENT



   []  delete_vtoce AS PART OF SEGMENT DELETING



   []  demount_pv IN  ORDER TO UPDATE  THE VTOCE'S (AND  SEGMENTS) OF A
      DISK BEING DEMOUNTED





ox  PRINCIPAL STEPS OF deactivate:



   []  MAKE THE SEGMENT INACCESSIBLE TO USERS BY "CUTTING TRAILERS"



   []  CALL  pc$cleanup TO REMOVE  ALL PAGES OF  THE SEGMENT FROM  BULK
      STORE AND MAIN MEMORY, WRITING ALL MODIFIED PAGES TO DISK






Not To Be Reproduced             7-35                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                         _S_E_G_M_E_N_T__D_E_A_C_T_I_V_A_T_I_O_N





   []  UPDATE THE VTOCE FROM THE NOW QUIESCENT ASTE



   []  THREAD THE  ASTE OUT OF PARENT'S  INFERIOR LIST, AND OUT  OF THE
      AST HASH TABLE



   []  CALL  put_aste TO  CLEAR AND  INITIALIZE THE  ASTE/PT PAIR,  AND
      THREAD THE ASTE AT THE HEAD OF THE APPROPRIATE USED LIST





































Not To Be Reproduced             7-36                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                       _S_U_M_M_A_R_Y__O_F__M_A_J_O_R__S_E_R_V_I_C_E_S
























                    ==============================
                    INSERT Life Cycle DIAGRAM HERE
                    ==============================


























Not To Be Reproduced             7-37                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                          _T_R_U_N_C_A_T_I_N_G__S_E_G_M_E_N_T_S







ox  SEGMENT  TRUNCATION  (IE:   PAGE   REMOVAL)  IS  PERFORMED  BY  THE
   PROCEDURE truncate_vtoce



   []  INPUT:  A  POINTER TO THE  BRANCH ENTRY IN  A DIRECTORY SEGMENT,
      AND A PAGE NUMBER FROM WHICH TO START TRUNCATING





ox  truncate_vtoce IS CALLED BY:



   []  truncate (DIRECTORY CONTROL) WHO HAS LOCATED THE SEGMENTS BRANCH
      ENTRY AND VALIDATED THE USER'S ACCESS



   []  delete_vtoce  (SEGMENT CONTROL)   WHO REQUIRES  TRUNCATION (FROM
      PAGE #0) PRIOR TO VTOCE DELETION





ox  PRINCIPAL STEPS OF truncate_vtoce:



   []  IF  SEGMENT IS  ACTIVE, CALL  pc$truncate WHO  MARKS THE  DEVICE
      ADDRESS OF ALL PAGES ABOVE THE PAGE NUMBER SPECIFIED AS "NULLED"
      ADDRESSES (DISCUSSED IN "PAGE CONTROL" TOPIC)



   []  IF SEGMENT IS NOT ACTIVE:


      []  READ IN ALL REQUIRED PARTS OF THE VTOCE AND COMPARE UID'S FOR
         CONNECTION FAILURE (RETURN AN ERROR IF SO)



Not To Be Reproduced             7-38                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                          _T_R_U_N_C_A_T_I_N_G__S_E_G_M_E_N_T_S




      []  CALL  get_pvtx$hold_pvtx TO PREVENT  A DEMOUNT (IF  CALLED BY
         truncate)


      []  COPY ALL ADDRESSES OF PAGES TO BE TRUNCATED FROM THE FILE MAP
         AND REPLACE THEM WITH "NULL" ADDRESSES


      []  FABRICATE  A NEW VTOCE  AND WRITE THE  VTOCE BACK BY  CALLING
         vtoc_man$put_vtoce


      []  IF ANY  REAL ADDRESSES WERE  COPIED FROM THE  FILE MAP, AWAIT
         THE  SUCCESSFUL  COMPLETION  OF  THE  VTOCE  WRITE BY CALLING
         vtoc_man$await_vtoce


      []  CALL  pc$deposit_list  TO  DEPOSIT  (FREE)  THESE REAL RECORD
         ADDRESSES


      []  CALL  get_pvtx$release_pvtx TO   AGAIN PERMIT  DEMOUNTING (IF
         CALLED BY  truncate).  THIS CREATES  AN ENTRY IN  THE PV HOLD
         TABLE (SEE TOPIC 6, VOLUME MANAGEMENT)

























Not To Be Reproduced             7-39                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _D_E_L_E_T_I_N_G__S_E_G_M_E_N_T_S







ox  SEGMENT DELETION IS PERFORMED BY THE PROCEDURE delete_vtoce



   []  INPUT:  A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT





ox  delete_vtoce IS CALLED BY delentry  (OF DIRECTORY CONTROL FAME) WHO
   HAS  LOCATED THE  SEGMENT'S BRANCH  ENTRY AND  VALIDATED THE USER'S
   ACCESS





ox  PRINCIPAL STEPS OF delete_vtoce:



   []  CALL  get_pvtx$hold_pvtx  TO  PREVENT  A  VOLUME  DEMOUNT IN THE
      MIDDLE OF THE DELETION



   []  IF ACTIVE, MAKE THE SEGMENT  INACCESSIBLE TO USERS (SEE "ADDRESS
      AND NAME SPACE MANAGEMENT", TOPIC 5)



   []  TRUNCATE THE  SEGMENT TO ZERO LENGTH  (SEE "TRUNCATING SEGMENTS"
      IN THIS  TOPIC), FREEING ALL  DISK, BULK STORE,  AND MAIN MEMORY
      PAGES OCCUPIED BY THE SEGMENT



   []  IF THE  SEGMENT IS A  DIRECTORY SEGMENT HAVING  A QUOTA ACCOUNT,
      CALL  THE QUOTA  MOVE  PRIMITIVE  (quotaw$mq) TO  RELINQUISH THE
      QUOTA TO ITS SUPERIOR





Not To Be Reproduced             7-40                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                           _D_E_L_E_T_I_N_G__S_E_G_M_E_N_T_S




      []  NOTE:   DIRECTORY  CONTROL  IS  RESPONSIBLE  FOR DELETING ALL
         INFERIOR SEGMENTS BEFORE REQUESTING DELETION OF THE DIRECTORY
         -  ENSURING  A  CONSISTENT  HIERARCHY  AND  RECOVERY  OF  ALL
         INFERIOR QUOTA ACCOUNTS



   []  IF THE SEGMENT IS ACTIVE, DEACTIVATE IT, RELEASING ITS ASTE



   []  FREE THE VTOCE WITH A CALL TO vtoc_man$free_vtoce



   []  CALL get_pvtx$release_pvtx TO AGAIN PERMIT VOLUME DEMOUNTING

































Not To Be Reproduced             7-41                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                            _O_T_H_E_R__S_E_R_V_I_C_E_S







ox  OTHER SERVICES PERFORMED BY SEGMENT CONTROL INCLUDE:



   []  SEGMENT MOVING


      []  REQUIRED WHEN AN ATTEMPT IS MADE  TO GROW A SEGMENT AND THERE
         IS NO MORE ROOM ON THE PHYSICAL VOLUME


      []  THE  ENTIRE SEGMENT MUST  BE MOVED TO  ANOTHER PV WITHIN  THE
         SAME LV --- TRANSPARENT TO THE USER AND DIRECTORY CONTROL


      []  THIS  IS THE  SINGLE MOST  INVOLVED AND  ESOTERIC SERVICE  OF
         SEGMENT CONTROL



   []  SEMI-PERMANENT ACTIVATION


      []  ACTIVATING A SEGMENT INTO AN ASTE OF A GIVEN SIZE AND TURNING
         ON ITS aste.ehs (DONE BY grab_aste)



   []  SERVICES FOR sweep_pv


      []  LISTING THE VTOC  OF A PACK (IE:  REPORTING  THE PATHNAMES OF
         ALL SEGMENTS OWNING VTOCE'S)


      []  THE  LOCATING AND  DELETING  OF  ORPHAN VTOCE'S  (VTOCE'S NOT
         DESCRIBED IN ANY BRANCH)


      []  REBALANCING OR VACATING PACKS VIA DEMAND SEGMENT MOVING






Not To Be Reproduced             7-42                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__S_E_G_M_E_N_T__C_O_N_T_R_O_L

                            _O_T_H_E_R__S_E_R_V_I_C_E_S





   []  SERVICES AT DEMOUNT/SHUTDOWN TIME


      []  DEACTIVATION  OF ALL SEGMENTS  ON THE VOLUME  BEING DEMOUNTED
         AND WRITING OUT THE LABEL, ETC



   []  SERVICES FOR ADDRESS/NAME SPACE MANAGEMENT (SEE TOPIC 4)


      []  _DESCRIPTOR  _S_E_GMENT (DSEG),  _PROCESS _DATA  _SEGMENT (PDS)  AND
         _KNOWN _SEGMENT _TABLE (KST) MANAGEMENT


      []  SEGMENT FAULT HANDLING (seg_fault), CREATION, ENTRY HOLDING
































Not To Be Reproduced             7-43                          MDD-003
                        _S_E_G_M_E_N_T__C_O_N_T_R_O_L__M_E_T_E_R_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s







ox  FILE_SYSTEM_METERS  - DISPLAYS  MISCELLANEOUS METERING  INFORMATION
   FOR THE FILE SYSTEM



   []  ONLY PARTS RELEVANT TO SEGMENT  CONTROL INCLUDED HERE; SEE TOPIC
      8 (PAGE CONTROL) FOR THE REST



        Total metering time            0:20:02


                               #                   ATB

        Activations          1043       1.153 sec.
           segfault           969       1.241 sec.  92.905% of all
           makeknown           74      16.251 sec.   7.095% of all
           directories         96      12.527 sec.   9.204% of all
        Deactivations        1056       1.139 sec.
        Demand deactivate
           attempts             3     400.857 sec.
        Seg Faults           5080       0.237 sec.
           fault             4311       0.279 sec.  84.862% of Seg Faults
           call               769       1.564 sec.  15.138% of Seg Faults
           activations        969       1.241 sec.  19.075% of Seg Faults
        Bound Faults          220       5.466 sec.
        Setfaults            4484     268.191 msec.
           access              42      28.633 sec.   0.937% of setfaults
        ASTE Trickle          139       8.652 sec.
        Steps                4279     281.040 msec.
        Skips                3016       0.399 sec.  70.484% of Steps
           ehs                271       4.438 sec.   8.985% of Skips
           mem               1083       1.110 sec.  35.909% of Skips
           init              1662       0.724 sec.  55.106% of Skips
        Searches                0       0.000 sec.
        Cleanups                   1056       1.139 sec.   0.1 % of real time
        Force writes            3     400.857 sec.
           pages written        3     400.857 sec.
        Lock AST            18422       0.065 sec.






Not To Be Reproduced             7-44                          MDD-003
                        _S_E_G_M_E_N_T__C_O_N_T_R_O_L__M_E_T_E_R_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s


                             AVE/lock       %
        AST locked          4.833 msec.   7.4
        AST lock waiting    1.601 msec.   2.5

        AST Sizes             4        16        64       256
        Number             1701       601       221        74
        Need                819       202       208        34
        Steps              2341       645      1139       154
        Ave Steps           2.9       3.2       5.5       4.5
        Lap Time(sec)     873.8    1120.5     233.3     577.9









































Not To Be Reproduced             7-45                          MDD-003
                        _S_E_G_M_E_N_T__C_O_N_T_R_O_L__M_E_T_E_R_S

                          _v_t_o_c__b_u_f_f_e_r__m_e_t_e_r_s







ox  VTOC_BUFFER_METERS - DISPLAYS VTOC BUFFER MANAGER ACTIVITY



Total metering time:            65:21:12

Routine                    # calls ATB(sec)

get_vtoce                   1346752     0.17
put_vtoce                        0     0.00
alloc_and_put_vtoce          77378     3.04
free_vtoce                   75664     3.11
await_vtoce                  93370     2.52
GET_BUFFERS                 2732265     0.09 1656952 Hits     ( 60.6% of calls)
WAIT                        946437     0.25 946435 TC Waits (100.0% of calls)

Buffer Allocation
                                 # ATB(sec)

Steps                       1354279     0.17
Skips                       278866     0.84  20.6% of steps
  os                        240348     0.98  86.2% of skips
  hot                            0     0.00   0.0% of skips
  wait                       38518     6.11  13.8% of skips

Disk I/Os
                                 # ATB(sec)

Reads                       836941     0.28
Writes                      548573     0.43
















Not To Be Reproduced             7-46                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _p_r_i_n_t__a_s_t_e__p_t_p







ox  PRINT_ASTE_PTP - DISPLAYS INFORMATION FROM AN ASTE



          ASTE for >udd>Multics>Sibert at 115244 in sst_seg
           077550100664 041540056140 165706076310 102401170050
           315015000063 640000044000 446736250032 446736250272
           003720000000 003164000110 006200006000 073770000102

          uid = 102401170050, vtocx = 63 on pvtx 15 (root4 = dskd_13)
          max len 205, 6 recs used, 0 in core, cur len 6 (decimal)
          Used 03/18/83  0116.0 est Fri
          Modified 03/18/83  0116.2 est Fri
          Par astep = 76310, Son = 56140, brother = 41540
          Trailer thread = 165706
          Aste for a directory.
               Quota (S D) = (2000 0)
               QUsed (S D) = (1652 72)

          Flags: usedf init seg-tqsw fms

          PAGE      PT        DEVADD

             0  063540200041   63540
             1  063546200041   63546
             2  063547200041   63547
             3  063550200041   63550
             4  063567200041   63567
             5  063571200041   63571
             6  377020000001   null
          ====
            17  377020000001   null














Not To Be Reproduced             7-47                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                              _d_u_m_p__v_t_o_c_e







ox  DUMP_VTOCE - READS A VTOCE FROM DISK AND DISPLAYS ITS CONTENTS



vtoce Sibert (Directory), vtocx 63 on pvtx 15 (root4)-03/18/83  0116.7 est Fri

Uid = 102401170050, msl/csl/rec = 205   6   6
     Quota (S D) = (2000 0)
     Quota used (S D) = (1423 44)
     Quota received (S D) = (2000 0)
Created    08/16/81  1204.0 est Sun
Dumped     03/18/83  0106.7 est Fri
Used       03/17/83  1737.8 est Thu
Modified   03/15/83  2138.3 est Tue

Switches:  fm_checksum_valid

Activation information:

   0 000000000000 102401170050 315006006000 446734564570
   4 446723404647 001000400000 063560063567 003720000000
  10 002617000054 003720000000 000000000000 015364402005
  14 000000000000 000652154327 446734634556 445673737671

File map:

  20 063540063546 063547063550 063567063571 777020777020
  24 777020777020 777020777020 777020777020 777020777020
  30 777776777776 777776777776 777776777776 777776777776
======
 214 777776777776 777776777776 777776777776 777776777776

Permanent information:

 220 000000000000 000000000000 000000000000 000000000000
======
 230 000000000000 000000000000 000000000000 446736227316
 234 126104000547 126104000525 126104000764 000000000000
 240 777777777777 033022237767 033023254650 000000000000
 244 000000000000 000000000000 000000000000 000000000000
======
 260 123151142145 162164040040 040040040040 040040040040
 264 040040040040 040040040040 040040040040 040040040040



Not To Be Reproduced             7-48                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                              _d_u_m_p__v_t_o_c_e


 270 441200557477 135240026001 004370027106 000000000000
 274 000000000000 000000000000 000000000000 000000000000






                               TOPIC VIII

                              Page Control

                                                                Page

                  Page Control Overview . . . . . . . . . . . . 8-1
                  Page Control Terminology. . . . . . . . . . . 8-5
                  Page Control Data Bases . . . . . . . . . . . 8-6
                      Page Tables . . . . . . . . . . . . . . . 8-6
                      Core Map. . . . . . . . . . . . . . . . . 8-9
                      System Segment Table (SST) Header . . . . 8-11
                      Other Data Bases. . . . . . . . . . . . . 8-13
                  Services of Page Control. . . . . . . . . . . 8-15
                      Page Fault Handling . . . . . . . . . . . 8-15
                      Post Purging. . . . . . . . . . . . . . . 8-27
                  Page Control Meters . . . . . . . . . . . . . 8-28
                      file_system_meters. . . . . . . . . . . . 8-28


























                                  8-1                          MDD-003
                       _S_E_G_M_E_N_T__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                              _d_u_m_p__v_t_o_c_e







ox  FUNCTION



   []  PAGE  CONTROL  IS  RESPONSIBLE  FOR  THE  MANAGEMENT OF _P_H_Y_S_I_C_A_L
      _M_E_M_O_R_Y TO  INCLUDE THE MULTIPLEXING  OF MAIN MEMORY  FRAMES, AND
      THE MANAGEMENT OF DISK STORAGE



   []  ITS TASKS INCLUDE:


      []  TRANSFERRING  THE  PAGES  OF   SEGMENTS  BETWEEN  THE  MEMORY
         DEVICES, AND  RECORDING THE LOCATION  OF "THE" COPY  OF THESE
         PAGES


      []  REPORTING  THE STATUS  AND FILE  MAPS OF  SEGMENTS TO SEGMENT
         CONTROL



   []  PAGE  CONTROL IS  LARGELY  CODED  IN MULTICS  ASSEMBLER LANGUAGE
      (ALM)



   []  PAGE  CONTROL CAN BE  INVOKED EITHER BY  SUBROUTINE CALLS OR  BY
      PAGE FAULTS



   []












Not To Be Reproduced              8-0                          MDD-003
                         _P_A_G_E__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W


      THERE ARE NO EXPLICIT USER INTERFACES TO PAGE CONTROL





ox  BASIC PHILOSOPHY



   []  OF ALL THE SEGMENTS ACTIVE AT  A GIVEN TIME, ONLY A SMALL SUBSET
      OF THEIR TOTAL PAGES WILL BE REQUIRED FOR ACCESSING



   []  PAGES WILL BE READ INTO MAIN MEMORY AS THEY ARE REQUIRED



   []  THE READING OF  A PAGE INTO MAIN MEMORY  WILL (PROBABLY) REQUIRE
      THE EVICTION OF A PREVIOUSLY REQUIRED PAGE



   []  THE CHOICE OF A PAGE FOR EVICTION WILL BE BASED ESSENTIALLY UPON
      A "LEAST RECENTLY USED" CRITERIA



   []  AN  EVICTED PAGE  NEED BE  WRITTEN BACK  TO DISK  _O_N_L_Y IF IT WAS
      MODIFIED DURING ITS RESIDENCY IN MAIN MEMORY





ox  MAJOR DATA BASES



   []  PHYSICAL  VOLUME TABLE  (PVT) -   ONE PER  SYSTEM.  PROVIDED  BY
      VOLUME MANAGEMENT


      []  PHYSICAL  VOLUME TABLE  ENTRY (PVTE)   - ONE  PER DISK  DRIVE
         CONFIGURED


      []  EACH PVTE CONTAINS:




Not To Be Reproduced              8-1                          MDD-003
                         _P_A_G_E__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W



         []  THE DEVICE ID  (DISK DRIVE ID) AND THE ID  OF THE PHYSICAL
            VOLUME (DISK PACK) CURRENTLY MOUNTED

         []  THE  NUMBER OF  RECORDS LEFT  UNALLOCATED ON  THE PHYSICAL
            VOLUME, POINTER TO THE RECORD STOCK, ETC



   []  RECORD  STOCKS -  ONE PER  MOUNTED PHYSICAL  VOLUME, PROVIDED BY
      VOLUME MANAGEMENT


      []  CONTAINS AN  IN-MEMORY CACHE OF THE IN-USE  STATUS OF RECORDS
         ON THE VOLUME,  FROM THE VOLUME MAP, USED  WHEN ALLOCATING OR
         FREEING PAGES


      []  ACCESSED BY  A COMPLEX MECHANISM  WHICH USES NORMAL  PAGE I/O
         BUT HAS A PROTOCOL TO ENSURE SYNCHRONIZATION OF DISK CONTENTS
         AND RECORD STOCK CONTENTS



   []  SYSTEM  SEGMENT  TABLE  (SST)  -  ONE  PER  SYSTEM.  SHARED WITH
      SEGMENT CONTROL.  CONTAINS THE FOLLOWING FIVE DATA BASES USED BY
      PAGE CONTROL:


      []  SYSTEM SEGMENT TABLE (SST) HEADER - ONE PER SYSTEM

         []  CONTAINS A LARGE NUMBER OF  COUNTERS AND POINTERS VITAL TO
            THE MAINTENANCE AND METERING OF THE STORAGE SYSTEM

         []  CONTAINS  LOCKWORDS USED  TO SYNCHRONIZE  PAGE CONTROL AND
            SEGMENT CONTROL OPERATIONS


      []  CORE MAP - THE core_map SEGMENT - ONE PER SYSTEM

         []  CORE  MAP ENTRY  (CME) -   ONE PER  FRAME (1024  WORDS) OF
            CONFIGURED MAIN MEMORY

         []  EACH CME REPRESENTS A FRAME  OF MAIN MEMORY AND IDENTIFIES
            THE CURRENT OCCUPANT OF THAT FRAME

         []






Not To Be Reproduced              8-2                          MDD-003
                         _P_A_G_E__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W


            NOT PART OF  THE SST SEGMENT ANY MORE,  BUT LOGICALLY PART
            OF THE SST


      []  ACTIVE SEGMENT TABLE (AST) - ONE PER SYSTEM

         []  ACTIVE SEGMENT TABLE ENTRY (ASTE) - ONE PER ACTIVE SEGMENT

         []  LIST OF ACTIVE (CURRENTLY BEING USED) SEGMENTS


      []  PAGE TABLES (PT) - ONE PER  ACTIVE SEGMENT, THE OTHER HALF OF
         EACH ASTE

         []  PAGE TABLE WORD (PAGE PTW) -  EITHER 4, 16, 64, OR 256 PER
            PAGE TABLE

         []  EACH  PTW DEFINES THE  CURRENT LOCATION OF  A PAGE OF  THE
            SEGMENT:  DISK, MAIN MEMORY ADDRESS, OR NULL


































Not To Be Reproduced              8-3                          MDD-003
                       _P_A_G_E__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







PAGING:        THE PROCESS OF TRANSFERRING  PAGES OF DATA BETWEEN DISK
               STORAGE AND MAIN MEMORY (CORE) TO ACHIEVE THE EFFECT OF
               ALL DATA BEING IN MEMORY ALL THE TIME





CORE:          AN  OBSOLETE  TERM  USED  FREQUENTLY  TO  REFER TO MAIN
               MEMORY (WHICH IS MOS TECHNOLOGY, NOT CORE TECHNOLOGY)





PAGE FAULT:    AN  EXCEPTION  CONDITION   DETECTED  BY  THE  PROCESSOR
               HARDWARE  (IN THE  APPENDING UNIT)  WHEN AN  ATTEMPT IS
               MADE TO  USE A PTW SPECIFYING  THAT ITS PAGE IS  NOT IN
               MAIN MEMORY





























Not To Be Reproduced              8-4                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                              _P_A_G_E__T_A_B_L_E_S


                    ==============================
                    INSERT Page Table DIAGRAM HERE
                    ==============================



















ox  THE PAGE TABLES (PT'S) ARE HARDCORE (SST), UNPAGED, DATA BASES EACH
   CONSISTING OF AN ARRAY OF PAGE TABLE WORDS (PTW'S)



   []  ONE PAGE TABLE PER ACTIVE SEGMENT



   []  4, 16, 64, OR 256 PTW PER PAGE TABLE



















Not To Be Reproduced              8-5                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                              _P_A_G_E__T_A_B_L_E_S







ox  ALL PAGE TABLES ARE ASSOCIATED WITH, AND IMMEDIATELY FOLLOW AN ASTE
   IN THE AST REGION OF THE SST





ox  EACH PTW DESCRIBES THE STATUS OF  ONE PAGE OF THE SEGMENT CURRENTLY
   IN POSSESSION OF THE ASSOCIATED ASTE, INCLUDING:



   []  THE DEVICE ADDRESS OF _T_H_E COPY OF THE PAGE



   []  PTW VALID INDICATOR AND FAULT NUMBER (FAULT #1)



   []  FLAGS INDICATING VARIOUS STATES AND  PROPERTIES OF THE PAGE SUCH
      AS I/O IN PROGRESS, WIRED, USED, MODIFIED





ox  THE ADDRESS PORTION  OF EACH PTW IS INITIALIZED  FROM THE SEGMENT'S
   VTOCE FILE MAP AT SEGMENT ACTIVATION TIME

















Not To Be Reproduced              8-6                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                              _P_A_G_E__T_A_B_L_E_S














              ==========================================
              INSERT Page Table Device ADDR DIAGRAM HERE
              ==========================================




































Not To Be Reproduced              8-7                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                               _C_O_R_E__M_A_P


                  ==================================
                  INSERT Core Map Entry DIAGRAM HERE
                  ==================================

















ox  THE CORE MAP IS A PERMANENTLY WIRED, UNPAGED, SEGMENT CONTAINING AN
   ARRAY OF CORE MAP ENTRIES (CME'S)



   []  ONE CORE MAP PER SYSTEM



   []  ONE CME PER ADDRESSABLE MAIN MEMORY FRAME


      []  IF  THE  CONFIGURATION  HAS   HOLES  IN  THE  MEMORY  ADDRESS
         ASSIGNMENTS, OR MEMORIES WHICH ARE TURNED OFF, THOSE CMES ARE
         PRESENT ANYWAY (BUT UNUSED) (0 TO HIGHEST FRAME ADDRESS)
















Not To Be Reproduced              8-8                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                               _C_O_R_E__M_A_P







ox  EACH  CME DESCRIBES  THE STATUS  OF ONE  PAGE FRAME  IN MAIN MEMORY
   INCLUDING:



   []  THE DISK ADDRESS OF THE PAGE CURRENTLY OCCUPYING THE FRAME



   []  ADDRESS OF THE ASTE AND PTW OF THE OCCUPANT



   []  FLAGS INDICATING VARIOUS STATES AND  PROPERTIES OF THE FRAME AND
      ITS  OCCUPANT SUCH AS  I/O IN PROGRESS,  NOTIFICATION REQUESTED,
      AND PIN WEIGHT





ox  THE CME'S ARE KEPT IN A DOUBLE-THREADED CIRCULAR LIST POINTED TO BY
   sst.usedp



   []  CME'S FOR FRAMES UNDERGOING I/O  ARE TEMPORARILY THREADED OUT OF
      THE LIST



   []  CME'S FOR FRAMES CONFIGURED BUT  NOT PHYSICALLY PRESENT ARE ALSO
      THREADED OUT BUT WITH THREAD WORD "777777777777" OCTAL



   []  THE REMAINING CME'S REPRESENT MAIN MEMORY FRAMES ACTIVELY IN USE
      - _A_N_D SUBJECT TO EVICTION BY THE PAGE REPLACEMENT ALGORITHM








Not To Be Reproduced              8-9                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                   _S_Y_S_T_E_M__S_E_G_M_E_N_T__T_A_B_L_E__(_S_S_T_)__H_E_A_D_E_R







ox  THE  FIRST 512   WORDS OF  THE SST  IS CALLED   THE SST  HEADER AND
   CONTAINS:



   []  A LARGE NUMBER OF GLOBAL VARIABLES VITAL TO THE OPERATION OF THE
      STORAGE SYSTEM AND ITS SUBSYSTEMS



   []  NUMEROUS CELLS USED TO METER THE STORAGE SYSTEM





ox  AMONG THOSE OF INTEREST TO PAGE CONTROL ARE THE FOLLOWING:



   []  GLOBAL VARIABLES:


      []  PAGE TABLE LOCK (sst.ptl)


      []  NUMBER OF MAIN MEMORY  FRAMES AVAILABLE FOR PAGING ACTIVITIES
         (sst.nused) AND NUMBER WIRED (sst.wired)


      []  POINTERS TO THE  BASE OF THE CME ARRAY AND TO  THE CME OF THE
         "BEST" CANDIDATE PAGE FOR REPLACEMENT


      []  PVT INDEX OF THE RPV (USED DURING INITIALIZATION)



   []  METERS


      []  THRASHING, POST-PURGE-TIME, PAGE  FAULTS ON DIRECTORIES, RING
         0 PAGE FAULTS, LOOP LOCK TIME, SEGMENT MOVES



Not To Be Reproduced             8-10                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                   _S_Y_S_T_E_M__S_E_G_M_E_N_T__T_A_B_L_E__(_S_S_T_)__H_E_A_D_E_R




      []  PAGING METERS  REPORTED BY file_system_meters SUCH  AS STEPS,
         NEEDS, CEILING, SKIPS















































Not To Be Reproduced             8-11                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _O_T_H_E_R__D_A_T_A__B_A_S_E_S







ox  ALTHOUGH BASICALLY  DATA BASES OF VOLUME  MANAGEMENT, THE FOLLOWING
   CONTAIN INFORMATION REQUIRED BY PAGE CONTROL (AS INDICATED)





ox  PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM



   []  INFORMATION REQUIRED BY THE DISK DIM FOR I/O



   []  INFORMATION  USED  BY   THE  DISK  RECORD  ALLOCATOR/DEALLOCATOR
      (free_store) SUCH AS:


      []  THE NUMBER OF UNALLOCATED RECORDS LEFT ON THE VOLUME


      []  THE LOCATION OF THE RECORD STOCK FOR THE VOLUME





ox  RECORD STOCKS



   []  RECORD STOCKS ARE KEPT IN A WIRED SEGMENT:  stock_seg



   []  THE RECORD STOCK  FOR A VOLUME IS A LIST OF  SOME OF THE RECORDS
      WHICH ARE FREE ON THE VOLUME


      []  WHEN THERE ARE NO MORE ENTRIES  AVAILABLE IN THE STOCK, IT IS
         UPDATED FROM THE VOLUME MAP




Not To Be Reproduced             8-12                          MDD-003
                        _P_A_G_E__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                           _O_T_H_E_R__D_A_T_A__B_A_S_E_S




      []  IF THE STOCK BECOMES FULL, SOME OF ITS ENTRIES ARE UPDATED TO
         THE VOLUME MAP AND REMOVED FROM THE STOCK


      []  A COMPLEX  MECHANISM (SEE volmap.alm,  volmap_page.alm) MAKES
         IT  POSSIBLE   TO  REFERENCE  THE  VOLUME   MAP  PAGES  WHILE
         SATISFYING A PAGE FAULT










































Not To Be Reproduced             8-13                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G







ox  WITHIN ANY  DEMAND PAGING ENVIRONMENT  THE CHOICE OF  WHICH PAGE TO
   EVICT IS CRUCIAL TO SYSTEM PERFORMANCE





ox  ONE OF THE BETTER CHOICES FOR EVICTION IS THE "LEAST RECENTLY USED"
   PAGE....OR (BECAUSE OF EFFICIENCY),  THE "LEAST RECENTLY _N_O_T_I_C_E_D AS
   BEING USED" PAGE.





ox  THE  MULTICS  PAGE  REPLACEMENT   ALGORITHM  (PRA),  KNOWN  IN  THE
   LITERATURE AS THE "CLOCK" ALGORITHM WAS ONE OF THE FIRST EVER TO BE
   IMPLEMENTED





ox  THE VERSION AS IT EXISTS TODAY  IS A DIRECT DESCENDANT OF Corbato's
   ORIGINAL ALGORITHM  (SEE SECTION 5  OF THE "MULTICS  STORAGE SYSTEM
   PLM", AN61, FOR A BIBLIOGRAPHY)





ox  PAGES ARE KEPT IN A CIRCULAR  LIST, THE CORE USED LIST, IMPLEMENTED
   BY THE DOUBLY THREADED CME'S





ox  A POINTER, MAINTAINED IN THE SST, (sst.usedp) POINTS TO THE LOGICAL
   HEAD OF THIS LIST AS FOLLOWS:






Not To Be Reproduced             8-14                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














                  ===================================
                  INSERT Clock Algorithm DIAGRAM HERE
                  ===================================




































Not To Be Reproduced             8-15                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G







ox  PAGE FAULT HANDING IS THE MOST  VISIBLE AND CRUCIAL SERVICE OF PAGE
   CONTROL





ox  A PAGE FAULT  OCCURS WHEN A USER REFERENCES A  PAGE OF SOME SEGMENT
   THAT IS NOT IN MAIN MEMORY



   []  OR  MORE SPECIFICALLY:   HARDWARE ATTEMPTS   TO USE  A PTW  THAT
      INDICATES ITS PAGE IS NOT IN THE MAIN MEMORY





ox  PAGE FAULT  HANDLING IS IMPLEMENTED  IN THE ALM  PROGRAM page_fault
   WHICH IS INVOKED  _D_I_R_E_C_T_L_Y BY THE FAULT VECTOR  CODE (page_fault _I_S
   THE FAULT INTERCEPTOR FOR PAGE FAULTS)





ox  THE PRINCIPAL STEPS OF page_fault ARE:



   []  SAVE  ALL  MACHINE  CONDITIONS,  MASK  AGAINST  INTERRUPTS,  AND
      ESTABLISH  A  STACK  FRAME  ON  THE  BASE  OF THE _P_ROCESSOR _DATA
      _SEGMENT (PRDS),  WHICH IS USED  AS THE STACK  FOR INTERRUPTS AND
      PAGE FAULTS



   []  CHECK FOR ILLEGAL CONDITIONS AND CRASH IF SO







Not To Be Reproduced             8-16                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G





   []  ATTEMPT  TO  LOCK  THE  PAGE  TABLE  LOCK  (sst.ptl) AND WAIT IF
      UNSUCCESSFUL



   []  LOCATE THE RESPONSIBLE PTW AND ITS ASTE.  THIS IS OFTEN THE MOST
      DIFFICULT TASK


      []  IT IS DIFFICULT BECAUSE IT REQUIRES FETCHING THE SDW FROM THE
         DSEG, WHICH  IS, ITSELF, PAGED,  AND NOT GUARANTEED  TO BE IN
         MEMORY



   []  CHECK  FOR TWO  WINDOW SITUATIONS  INVOLVING SOME  OTHER PROCESS
      HANDLING A PAGE FAULT FOR THE SAME PAGE:


      []  IF  PAGE IS  NOW IN,  THEN UNLOCK  THE LOCK  AND RESTART  THE
         MACHINE CONDITIONS


      []  IF PAGE IS BEING READ IN  NOW, DEVELOP THE WAIT EVENT FOR THE
         PTW AND SKIP THE NEXT THREE STEPS



   []  INVOKE read_page  TO FIND THE LEAST RECENTLY  (NOTICED AS BEING)
      USED  MAIN MEMORY  FRAME, _B_E_G_I_N  THE PAGE-READING  FUNCTION, AND
      DEVELOP THE WAIT EVENT



   []  EXECUTE  THE  REPLACEMENT  ALGORITHM'S  WRITE-BEHIND  (PURIFIER)
      FUNCTION, CAUSING PASSED OVER WRITE REQUESTS TO BE QUEUED



   []  METER THE PAGE FAULT TO  INCLUDE:  TIME SPENT; MAIN MEMORY USAGE
      OF THIS PROCESS; RING ZERO, DIRECTORY, AND PER-PROCESS FAULTS







Not To Be Reproduced             8-17                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G





   []  TRANSFER TO  THE TRAFFIC CONTROLLER,  WHO PLACES THE  PROCESS IN
      THE WAIT  STATE, UNLOCKS THE  PAGE TABLE LOCK,  AND ABANDONS THE
      ENVIRONMENT (SEE "TRAFFIC CONTROL", TOPIC 10)





ox  WHEN THE  PAGE READING I/O IS  COMPLETE, THE EVENT WILL  BE POSTED.
   THE WAITING PROCESS  WILL BE GIVEN THE PROCESSOR  AGAIN AND TRAFFIC
   CONTROLLER    WILL    TRANSFER     THE    FAULTING    PROCESS    TO
   page_fault$wait_return TO RESTART THE MACHINE CONDITIONS




































Not To Be Reproduced             8-18                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














            ===============================================
            INSERT Page Fault Scenario Scene 1 DIAGRAM HERE
            ===============================================




































Not To Be Reproduced             8-19                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














            ===============================================
            INSERT Page Fault Scenario Scene 2 DIAGRAM HERE
            ===============================================




































Not To Be Reproduced             8-20                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














            ===============================================
            INSERT Page Fault Scenario Scene 3 DIAGRAM HERE
            ===============================================




































Not To Be Reproduced             8-21                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














           ================================================
           INSERT Page Fault Scenario Scene 4A DIAGRAM HERE
           ================================================




































Not To Be Reproduced             8-22                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














           ================================================
           INSERT Page Fault Scenario Scene 5A DIAGRAM HERE
           ================================================




































Not To Be Reproduced             8-23                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














           ================================================
           INSERT Page Fault Scenario Scene 4B DIAGRAM HERE
           ================================================




































Not To Be Reproduced             8-24                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                          _P_A_G_E__F_A_U_L_T__H_A_N_D_L_I_N_G














           ================================================
           INSERT Page Fault Scenario Scene 5B DIAGRAM HERE
           ================================================




































Not To Be Reproduced             8-25                          MDD-003
                       _S_E_R_V_I_C_E_S__O_F__P_A_G_E__C_O_N_T_R_O_L

                             _P_O_S_T__P_U_R_G_I_N_G







ox  POST PURGING IS PERFORMED BY THE PROCEDURE post_purge





ox  POST  PURGING IS  AN OPTIONAL   SERVICE USED  TO OPTIMIZE  THE PAGE
   REPLACEMENT ALGORITHM





ox  POST PURGING:



   []  _F_A_V_O_R_S THE REPLACING  OF PAGES USED BY A PROCESS  WHICH HAS JUST
      LOST ELIGIBILITY (SEE "TRAFFIC CONTROL", TOPIC 9)



   []  IS A WORK CLASS SETTABLE ATTRIBUTE





ox  POST PURGING IS LARGELY USELESS  TODAY, BECAUSE MAIN MEMORY SIZE IS
   SO MUCH GREATER
















Not To Be Reproduced             8-26                          MDD-003
                          _P_A_G_E__C_O_N_T_R_O_L__M_E_T_E_R_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s







ox  FILE_SYSTEM_METERS  - DISPLAYS  MISCELLANEOUS METERING  INFORMATION
   FOR THE FILE SYSTEM



   []  ONLY PARTS RELEVANT  TO PAGE CONTROL INCLUDED HERE;  SEE TOPIC 7
      (SEGMENT CONTROL) FOR THE REST



        Total metering time    0:20:02

                         #            ATB

        Needc          62654      19.194 msec.
        Ring 0 faults             16.639 %
        PDIR faults               50.607 %
        Level 2 faults            21.556 %
        DIR faults                 7.645 %
        New Pages                 14.661 %
        Volmap_seg         0       0.000 msec.
        Zero pages       770    1561.779 msec.
        Laps             105      11.453 sec.
        Steps         361483       3.327 msec.
        Skip          322555       3.728 msec.  89.231% of Steps
           wired       11057     108.761 msec.   3.428% of Skip
           used       109719      10.960 msec.  34.016% of Skip
           mod        140336       8.569 msec.  43.508% of Skip
           fc pin      37717      31.884 msec.  11.693% of Skip
           cl pin      23726      50.686 msec.   7.356% of Skip

        3419 pages, 139 wired.
        Average steps        5.770




                                       TOPIC IX

                                    Tarffic Control

                                                                        Page

                          Traffic Control Overview. . . . . . . . . . . 9-1
                          Traffic Control Terminology . . . . . . . . . 9-3


                                  9-i                          MDD-003
                          _P_A_G_E__C_O_N_T_R_O_L__M_E_T_E_R_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s


                          Traffic Control Data Bases. . . . . . . . . . 9-5
                              tc_data . . . . . . . . . . . . . . . . . 9-5
                          Services of Traffic Control . . . . . . . . . 9-8
                              Wait Locks. . . . . . . . . . . . . . . . 9-8
                              Processor Multiplexing. . . . . . . . . . 9-9
                          Traffic Control Meters. . . . . . . . . . . . 9-18
                              total_time_meters . . . . . . . . . . . . 9-18
                              traffic_control_meters. . . . . . . . . . 9-19
                              traffic_control_queue . . . . . . . . . . 9-21
                              work_class_meters . . . . . . . . . . . . 9-23
                              respons_meters. . . . . . . . . . . . . . 9-24
                              post_purge_meters . . . . . . . . . . . . 9-26
                          Traffic Control Commands. . . . . . . . . . . 9-27
                              print_tuning_parameters . . . . . . . . . 9-27
                              print_apt_entry . . . . . . . . . . . . . 9-28





































                                  9-i                          MDD-003
                       _T_R_A_F_F_I_C__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  TRAFFIC CONTROL (OR THE "TRAFFIC CONTROLLER") IS RESPONSIBLE FOR
      MANAGING  THE  ASSIGNMENT  OF  PHYSICAL  PROCESSORS  TO  MULTICS
      PROCESSES   AND  IMPLEMENTING   THE  SYSTEM'S   WAIT/NOTIFY  AND
      INTERPROCESS COMMUNICATION PRIMITIVES



   []  THE  FUNCTIONS ASSUMED  BY THE  TRAFFIC CONTROLLER  ARE KNOWN AS
      MULTIPROGRAMMING,   MULTIPROCESSING,  SCHEDULING,   DISPATCHING,
      PROCESSOR MANAGEMENT, AND INTERPROCESS COMMUNICATION.



   []  ITS MAJOR FUNCTION IS ALLOWING PROCESSES TO AWAIT THE COMPLETION
      OF FILE SYSTEM OPERATIONS, SUCH AS PAGE I/O



   []  TRAFFIC  CONTROL   CAN  BE  INVOKED  BY   SUBROUTINE  CALLS  AND
      INTERRUPTS



   []  THERE ARE NO IMPORTANT USER SUBROUTINE INTERFACES, BUT THERE ARE
      PRIVILEGED   SUBROUTINE   INTERFACES   FOR   PROCESS   CREATION,
      ADJUSTMENT OF SCHEDULING PARAMETERS, ETC.





ox  MAJOR DATA BASES



   []  TC_DATA SEGMENT  - ONE PER SYSTEM.  CONTAINS  THE FOLLOWING FOUR
      DATA BASES:


      []  TC_DATA HEADER - ONE PER SYSTEM




Not To Be Reproduced              9-1                          MDD-003
                       _T_R_A_F_F_I_C__C_O_N_T_R_O_L__O_V_E_R_V_I_E_W



         []  CONTAINS VARIOUS METERS, COUNTERS AND POINTERS USED BY THE
            TRAFFIC CONTROLLER


      []  ACTIVE PROCESS TABLE (APT) - ONE PER SYSTEM

         []  ACTIVE  PROCESS  TABLE  ENTRY  (APTE)  -  ONE OCCUPIED PER
            ACTIVE PROCESS (TOTAL NUMBER IS DETERMINED BY CONFIG DECK)

         []  EACH APTE CONTAINS VARIOUS ATTRIBUTES OF AN ACTIVE PROCESS
            INCLUDING  THE  PROCESS  ID,   STATE,  THE  VALUE  OF  ITS
            DESCRIPTOR BASE REGISTER (DBR), SCHEDULING PARAMETERS, AND
            A POINTER TO THE PROCESS'S ITT ENTRIES

         []  THE APTE CONTAINS ALL  INFORMATION THE SUPERVISOR NEEDS TO
            KNOW ABOUT A PROCESS WHEN THE PROCESS IS NOT RUNNING


      []  INTERPROCESS TRANSMISSION TABLE (ITT) - ONE PER SYSTEM

         []  ITT ENTRY - ONE OCCUPIED PER OUTSTANDING IPC WAKEUP

         []  A  QUEUE FOR  TEMPORARILY STORING  IPC WAKEUP  INFORMATION
            (CHANNEL NAME, RANDOM DATA, PROCESS ID, ETC)


      []  WORK CLASS TABLE (WCT) - ONE PER SYSTEM

         []  WORK CLASS TABLE ENTRY (WCTE) - ONE PER WORKCLASS

         []  EACH WCTE CONTAINS ADMINISTRATOR DEFINED PARAMETERS OF THE
            WORKCLASS, VARIOUS METERS AND POINTERS




















Not To Be Reproduced              9-2                          MDD-003
                      _T_R_A_F_F_I_C__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







PROCESS:
               AN  ADDRESS SPACE  AND AN  EXECUTION POINT  WITHIN THAT
               ADDRESS SPACE





MULTIPROGRAMMING:

               PERTAINING TO  THE _C_O_N_C_U_R_R_E_N_T EXECUTION OF  TWO OR MORE
               PROGRAMS BY INTERLEAVING THEIR EXECUTION





MULTIPROCESSING:

               PERTAINING TO THE _S_I_M_U_L_T_A_N_E_O_U_S EXECUTION OF TWO OR MORE
               PROGRAMS   BY   A   MULTIPROCESSOR   SYSTEM   (PARALLEL
               PROCESSING)





ELIGIBLE:
               AN   ADJECTIVE  DESCRIBING  THOSE   PROCESSES  ACTIVELY
               COMPETING  FOR A  PROCESSOR.  ALL  PROCESSES ARE EITHER
               ELIGIBLE OR INELIGIBLE





SCHEDULING:
               PERTAINS  TO  THE  ACT  OF  CHOSING  AND  PROMOTING  AN
               "INELIGIBLE" PROCESS TO "ELIGIBLE" STATUS









Not To Be Reproduced              9-3                          MDD-003
                      _T_R_A_F_F_I_C__C_O_N_T_R_O_L__T_E_R_M_I_N_O_L_O_G_Y







DISPATCHING:
               PERTAINS TO THE ACT OF  CHOSING AND PLACING AN ELIGIBLE
               PROCESS   IN  THE   "RUNNING"  STATE   (IE:   EXECUTING
               INSTRUCTIONS ON A PROCESSOR)





WORK CLASS:    A WELL DEFINED SET OF USERS (USUALLY CONSISTING

               OF  ONE  OR  MORE  PROJECTS)  HAVING COMMON PERFORMANCE
               PARAMETERS.  THE USER COMMUNITY  MAY BE DIVIDED INTO NO
               MORE THAN 16 WORK CLASSES





WORKING SET:
               THE  SET OF  PAGES A   PROCESS TOUCHES  DURING A  GIVEN
               INTERVAL.   THE  SIZE  OF  A  CURRENT  WORKING  SET  IS
               PREDICTIVE OF FUTURE MEMORY REQUIREMENTS

























Not To Be Reproduced              9-4                          MDD-003
                      _T_R_A_F_F_I_C__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                                _T_C__D_A_T_A














                      ===========================
                      INSERT tc_data DIAGRAM HERE
                      ===========================




































Not To Be Reproduced              9-5                          MDD-003
                      _T_R_A_F_F_I_C__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                                _T_C__D_A_T_A














                      ===========================
                      INSERT APTE #1 DIAGRAM HERE
                      ===========================




































Not To Be Reproduced              9-6                          MDD-003
                      _T_R_A_F_F_I_C__C_O_N_T_R_O_L__D_A_T_A__B_A_S_E_S

                                _T_C__D_A_T_A














                      ===========================
                      INSERT APTE #2 DIAGRAM HERE
                      ===========================




































Not To Be Reproduced              9-7                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                              _W_A_I_T__L_O_C_K_S
























                    ==============================
                    INSERT wait locks DIAGRAM HERE
                    ==============================


























Not To Be Reproduced              9-8                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G







ox  SINCE THE  NUMBER OF ACTIVE PROCESSES GENERALLY  EXCEEDS THE NUMBER
   OF PROCESSORS (OFTEN 50:1) THE PROCESSORS MUST BE MULTIPLEXED





ox  PROCESSOR MULTIPLEXING IS THE PRIMARY RESPONSIBILITY OF THE TRAFFIC
   CONTROLLER





ox  THE MULTICS ARCHITECTURE DICTATES THE FOLLOWING AXIOMS:



   []  ALL PROCESSORS ARE SYMMETRICAL


      []  AN INTERRUPT IS SEEN BY ALL PROCESSORS AND IS SERVICED BY THE
         PROCESSOR THAT CLAIMS IT FIRST

         []  NOT ACTUALLY TRUE, DUE TO HARDWARE CONNECTION LIMITATIONS


      []  THERE ARE  NO MASTER OR  SLAVE PROCESSORS.  ONLY  A PROCESSOR
         DESIGNATED  TO PERFORM  BOOTLOAD AND  SHUTDOWN (THE "BOOTLOAD
         PROCESSOR")

         []  BOOTLOAD PROCESSOR  CAN BE CHANGED AT ANY  TIME BY DYNAMIC
            RECONFIGURATION



   []  A PROCESSOR MAY BE "IN" AT MOST ONE PROCESS AT A TIME



   []  A PROCESS MAY  EXECUTE ON ONE AND ONLY ONE  PROCESSOR AT A TIME.
      THE PROCESS MAY, HOWEVER,  "RANDOMLY" MIGRATE FROM ONE PROCESSOR
      TO ANOTHER



Not To Be Reproduced              9-9                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G





   []  A PROCESSOR WILL, AT ALL TIMES, BE "IN" A PROCESS





ox  PROCESSES  MAY  EXIST  IN  ONE  OF  SIX  STATES  -  ONE OF WHICH IS
   "RUNNING" (IE:  EXECUTING ON A PROCESSOR)





ox  THE TRAFFIC CONTROLLER CODE PERFORMS  ALL STATE CHANGES.  THE STATE
   CHANGES  FALL INTO  TWO  CATEGORIES:   SELF IMPOSED  AND EXTERNALLY
   IMPOSED.



   []  SELF IMPOSED STATE CHANGES (THE PROCESS MUST HAVE A PROCESSOR)


      []  RUNNING -> READY (#1 -> #2)

         []  THE  PROCESS WAS  TOLD (BY   EITHER A  CONNECT FAULT  FROM
            ANOTHER  PROCESSOR  OR  A  TIMER  RUNOUT)  TO  GIVE UP ITS
            PROCESSOR

         []  THE PROCESS  IS NOW WAITING  FOR NO OTHER  RESOURCE THAN A
            PROCESSOR


      []  RUNNING -> WAITING (#1 -> #3)

         []  THE PROCESS ISSUED A REQUEST  FOR A "SYSTEM EVENT" (EG:  A
            PAGE FAULT OR A WAIT LOCK)

         []  "SYSTEM EVENTS" OCCUR AFTER  A PREDICTABLY SHORT PERIOD OF
            TIME AND ARE HANDLED BY THE WAIT/NOTIFY MECHANISM

         []  THE  PROCESS IS  NOW WAITING  FOR A  NOTIFY INDICATING THE
            COMPLETION OF THE  EVENT (EG:  THE ARRIVAL OF  THE PAGE IN
            MAIN MEMORY)





Not To Be Reproduced             9-10                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G




      []  RUNNING -> PAGE TABLE LOCK WAITING (#1 -> #6)

         []  THE  PROCESS ATTEMPTED  TO  LOCK  THE PAGE-TABLE  LOCK AND
            FOUND IT ALREADY LOCKED

         []  THE  PROCESS IS  NOW WAITING  FOR A  NOTIFY INDICATING THE
            UNLOCKING (A SYSTEM EVENT)


      []  RUNNING -> BLOCKED (#1 -> #4)

         []  THE PROCESS  ISSUED A REQUEST  FOR A "USER  EVENT" (EG:  A
            READ FROM THE TERMINAL)

         []  "USER  EVENTS" OCCUR  AFTER A  PREDICTABLY LONG  PERIOD OF
            TIME AND ARE HANDLED BY THE BLOCK/WAKEUP MECHANISM

         []  THE PROCESS  IS NOW WAITING  FOR A WAKE_UP  INDICATING THE
            COMPLETION  OF THE  EVENT  (EG:   A LINE_FEED  GENERATES A
            WAKE_UP) ARE HANDLED BY THE BLOCK/WAKE_UP MECHANISM

         []  A PROCESS GOING BLOCKED GIVES UP ITS RING ZERO STACK


      []  RUNNING -> STOPPED (#1 -> #5)

         []  THE  PROCESS  EXECUTED  THE  logout  OR  new_proc COMMAND,
            EVENTUALLY CALLING hcs_$stop_process

         []  THE  PROCESS IS  PROHIBITED  FROM  RUNNING AGAIN  AND WILL
            QUICKLY BE DESTROYED BY THE INITIALIZER


















Not To Be Reproduced             9-11                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G





   []  EXTERNALLY  IMPOSED  STATE  CHANGES  (THE  STATE  IS  CHANGED BY
      ANOTHER PROCESS)


      []  READY -> RUNNING (#2 -> #1)

         []  THE PROCESS (WHICH WAS WAITING  FOR NO OTHER RESOURCE THAN
            A  PROCESSOR)  WAS  CHOSEN   AS  SUCCESSOR  BY  A  PROCESS
            RELINQUISHING A PROCESSOR

         []  THE PROCESS IS NOW EXECUTING


      []  BLOCKED -> READY (#4 -> #2)

         []  SOME OTHER PROCESS SENT A WAKEUP INDICATING THE COMPLETION
            OF THE EVENT  THIS PROCESS WAS WAITING ON,  AND CHANGE THE
            STATE OF THIS PROCESS

         []  THE PROCESS  IS NOW WAITING  FOR NO OTHER  RESOURCE THAN A
            PROCESSOR


      []  WAITING -> READY (#6 -> #2)
         PTL-WAITING -> READY (#3 -> #2)

         []  SOME OTHER PROCESS SENT A NOTIFY INDICATING THE COMPLETION
            OF THE EVENT THIS PROCESS  WAS WAITING ON, AND CHANGED THE
            STATE OF THIS PROCESS

         []  THE PROCESS  IS NOW WAITING  FOR NO OTHER  RESOURCE THAN A
            PROCESSOR
















Not To Be Reproduced             9-12                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G














              ==========================================
              INSERT Traffic Control States DIAGRAM HERE
              ==========================================




































Not To Be Reproduced             9-13                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G
























                  ==================================
                  INSERT TC Scenario #1 DIAGRAM HERE
                  ==================================


























Not To Be Reproduced             9-14                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G
























                  ==================================
                  INSERT TC Scenario #2 DIAGRAM HERE
                  ==================================


























Not To Be Reproduced             9-15                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G
























             =============================================
             INSERT Working Sets and Trashing DIAGRAM HERE
             =============================================


























Not To Be Reproduced             9-16                          MDD-003
                      _S_E_R_V_I_C_E_S__O_F__T_R_A_F_F_I_C__C_O_N_T_R_O_L

                        _P_R_O_C_E_S_S_O_R__M_U_L_T_I_P_L_E_X_I_N_G
























                  ===================================
                  INSERT Idle Categories DIAGRAM HERE
                  ===================================


























Not To Be Reproduced             9-17                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                           _t_o_t_a_l__t_i_m_e__m_e_t_e_r_s







ox  TOTAL_TIME_METERS  -  OVERVIEW  OF  HOW  THE  SYSTEM  IS  USING ITS
   RESOURCES, ALSO MEASURED AGAINST NON-IDLE TIME



               Total metering time    0:20:36

                                   %     %NI      AVE

               Page Faults       6.55   7.19    2130.424
                PC Loop Locks    0.39   0.43    1993.209
               PC Queue          0.86   0.94     348.946
               Seg Faults        1.74   1.90    9579.170
               Bound Faults      0.15   0.16   17426.208
               Interrupts        9.02   9.89    1713.504
               Other Fault       8.45   9.27
                Getwork          4.54   4.98     660.550
                TC Loop Locks    0.20   0.22     247.788
                Post Purging     0.36   0.39    1407.132
               MP Idle           0.70   0.77
               Work Class Idle   0.98   1.08
               Loading Idle      0.16   0.17
               NMP Idle          8.84
               Zero Idle         0.00
               Other Overhead    0.03   0.04
               Virtual CPU Time 62.53  68.59




















Not To Be Reproduced             9-18                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                        _t_r_a_f_f_i_c__c_o_n_t_r_o_l__m_e_t_e_r_s







ox  TRAFFIC_CONTROL_METERS - DISPLAY THE STATE OF THE SCHEDULER



   []  OUTPUT COMES IN THREE PARTS, SHOWN OUT OF ORDER HERE:


      []  QUEUE LENGTHS AND RESPONSE TIME - THESE ARE WEIGHTED AVERAGES
         OVER THE LAST FIFTEEN SECONDS.


      []  ACTIVITIES VERSUS DEPTH - HOW DEEP THE TRAFFIC CONTROLLER HAD
         TO SEARCH TO FIND A SCHEDULABLE PROCESS


      []  MISCELLANEOUS COUNTERS AND FREQUENCIES OF VARIOUS EVENTS



          Total metering time    0:20:34

          Ave queue length    16.52
          Ave eligible        13.31
          Response time        0.264 sec

           DEPTH   %PF   TBPF   %GTW   TBS   %CPU

             1     12.0  22.8   10.8   11.6   8.1
             2     11.8  21.0    9.2   12.2   7.4
             3     10.8  24.9    8.7   14.1   8.0
             4     10.2  27.9    8.5   15.2   8.4
             5      9.5  29.8    8.3   15.5   8.4
             6      8.4  33.5    7.8   16.5   8.4
             7      7.4  36.3    7.3   16.8   8.0












Not To Be Reproduced             9-19                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                        _t_r_a_f_f_i_c__c_o_n_t_r_o_l__m_e_t_e_r_s


            COUNTER          TOTAL         ATB       #/INT

          Interactions        7977      0.155 sec
          Loadings           12161      0.102 sec    1.525
          Blocks             14082      0.088 sec
          Wakeups            36078      0.034 sec
          Schedulings        12591      0.098 sec    1.578
          Lost priority          1   1234.756 sec
          Priority boosts        0      0.000 sec
          I/O boosts           578      2.136 sec
          Wait Page         127040      9.719 msec  15.926
          Wait PTL           75691     16.313 msec   9.489
          Wait Other         31912     38.693 msec   4.001
          Total Waits       234643      5.262 msec  29.415
          Notify Page       128954      9.575 msec
          Notify PTL         75691     16.313 msec
          Notify Other       25330     48.747 msec
          Total Notifies    229975      5.369 msec
          Get Processor     245856      5.022 msec
          Pre-empts          94235     13.103 msec  11.813
          Getwork           338802      3.644 msec
          Retry getwork       4988      0.248 sec
          Extra notifies      2949      0.419 sec
           Last EN event    000000000071
           Last NTO event   033022237767





ox  ALARM_CLOCK_METERS  -  DISPLAYS  INFORMATION  ABOUT  THE USER ALARM
   TIMER FACILITY (HARDCORE INTERFACE FOR timer_manager_)



          Total metering time    0:20:31

          No. alarm clock sims.   2171
          Simulation lag             5.245 msecs.
          Max. lag                 1.7340314e4 msecs.











Not To Be Reproduced             9-20                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                         _t_r_a_f_f_i_c__c_o_n_t_r_o_l__q_u_e_u_e







ox  TRAFFIC_CONTROL_QUEUE  -  DISPLAYS  THE  CURRENT  CONTENTS  OF  THE
   SCHEDULER  QUEUES, USEFUL  FOR GETTING   AN IDEA  OF WHAT  THE USER
   PROCESSES ARE DOING



   []  FIRST PART OF OUTPUT IS ELIGIBLE QUEUE:



avq = 13, elapsed time = 1247 sec, 64 active last 15 sec.
flags    dtu    dpf temax   te    ts    ti    tssc event d  ws wc process
rWLE(d)  148   6946  2097   37     0     0  -0.001     0 0   6  0 Initializer
xLED(c)   15   1111  1000  910  2012  1897   0.001     0 0  11  6 Sibert
rLE(d)    14   1370   500   89     0     0  -0.009     0 0   0  4 Diaz
rLE(d)    15    823   500   13     0     0  -0.009     0 0  64  8 JCrow
wLE(d)    13    634   500  422     0     0   0.018 316537 0   3  3 Gintell
xWLED(a)   6    108  1000  495  2054  2004   0.010     0 0  13  6 Brunelle
wLE(d)    16    864  1000   85     0   510   0.016 504031 0  46  6 WPeck
wWLE(b)  468   2734  1000  315  3010  8000   0.013 224641 0   4  3 Spratt
wLE(d)    17    686   500   60     0     0   0.007 165111 0   3  4 RTowle
wLE(b)    12    520   500   50     0     0   0.005    71 0   3  3 Kress
wLE(d)    69   1895   500   21     0     0   0.001 177022 0   0  2 OPCTL
xLED(b)   12    872   500   85     0     0   0.005     0 0   0  3 Pandolf
rLE(d)    67   3279   500    0     0     0  -0.006     0 0   0  3 Lackey





















Not To Be Reproduced             9-21                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                         _t_r_a_f_f_i_c__c_o_n_t_r_o_l__q_u_e_u_e





   []  SECOND PART IS REALTIME, INTERACTIVE, AND ALL WORKCLASS QUEUES:



REALTIME QUEUE:

INTERACTIVE QUEUE:

WORKCLASS  2 QUEUE: credits =   576 ms.

WORKCLASS  3 QUEUE: credits =   242 ms.
r        289   5326  1000    0     0   503   0.218     0 0  22  3 Dupuis
r        131   2513  1000    0  4010  8000   0.128     0 0   0  3 Falksenj

WORKCLASS  4 QUEUE: credits =  2601 ms.

WORKCLASS  5 QUEUE: credits =  4000 ms.

WORKCLASS  6 QUEUE: credits =  -563 ms.

WORKCLASS  7 QUEUE: credits =  3962 ms.
rW         5    166   500    0     0     0   0.192     0 0   2  7 Saccuci

WORKCLASS  8 QUEUE: credits =  3934 ms.

WORKCLASS  9 QUEUE: credits =  2216 ms.

WORKCLASS 10 QUEUE: credits =  4000 ms.

WORKCLASS 11 QUEUE: credits =  4000 ms.


















Not To Be Reproduced             9-22                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                           _w_o_r_k__c_l_a_s_s__m_e_t_e_r_s







ox  WORK_CLASS_METERS -  DISPLAY THE VARIOUS WORKCLASS  PARAMETERS, AND
   SHOW WHAT RESOURCES EACH WORKCLASS IS CONSUMING.



Total metering time    0:20:38

WC %GUAR %MAX %TCP V/ELIG PW  IRESP IQUANT   RESP QUANT P M R I LCG

 0              3.   0.12  3   0.26  2.10    0.26  2.10 P 0 R I Init
 1              3.   0.09  1   0.25  0.75    0.50  1.00 P 0 R I RTime
 2    7.       15.   0.44  1                            P 0   I System SysAdm OPR FED
 3   32.       44.   0.49  1                            P 0   I SysProg SysDev
 4    9.  14.   4.   0.26  1                            P 0     SEngr
 5   20.        2.   0.46  1                            P 0   I HEngr
 6   12.  16.   8.   0.25  1                            P 0     MktUS MktFor MktEd
 7    3.   7.   4.   0.36  1                            P 0     DS-CC
 8    6.        0.   0.18  1                            P 0   I OffAuto
 9    4.   8.   2.   0.62  1                            P 0     Misc Mfg
10    3.        0.   0.55  1                            P 0   I Other
11    4.        2.   0.16  1                            P 0   I Special

TCPU percents (%GUAR) control non-realtime work_classes.























Not To Be Reproduced             9-23                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                            _r_e_s_p_o_n_s__m_e_t_e_r_s







ox  RESPONSE_METERS  -  DISPLAYS  RESPONSE   TIME,  BASED  ON  TERMINAL
   INTERACTIONS, ON A PER-WORKCLASS BASIS



Total metering time    0:20:36

WC  ---Thinks/--    ----Response Times by VCPU Range----  Load Control Group
    ---Queues---    -VCPU Range-     #  Avg   Avg   Resp
         #  Avg      From    To    Int  VCPU   RT   Fact

  0     86  2.70     0.00  0.50    113  0.04  0.42  9.34  Init
        92  0.15     0.50  1.00      3  0.55  5.51 10.00
                     1.00 10.00      3  2.43 14.96  6.15
                    ----- -----    119  0.12  0.91  7.76

  1     35 11.78     0.00  0.50     34  0.11  0.96  8.74  RTime
        39  0.21     0.50  1.00      2  0.83  4.06  4.87
                    ----- -----     36  0.15  1.13  7.55

  2    593 14.90     0.00  0.50    620  0.05  0.49 10.50  System SysAdm OPR FED
       612  0.15     0.50  1.00     28  0.71  3.61  5.10
                     1.00 10.00     39  1.77  8.39  4.74
                    ----- -----    687  0.17  1.07  6.22

  3   2496  6.38     0.00  0.50   2993  0.08  0.66  7.96  SysProg SysDev
      2622  0.17     0.50  1.00    117  0.68  4.22  6.16
                     1.00 10.00     66  2.46 13.47  5.49
                    10.00 99.99     10 56.85 99.99  3.33
                    ----- -----   3186  0.33  1.65  4.96

  4    581 15.82     0.00  0.50    663  0.05  0.71 12.94  SEngr
       590  0.26     0.50  1.00     13  0.64  4.64  7.30
                     1.00 10.00      8  3.47 32.07  9.24
                    ----- -----    684  0.11  1.15 10.88

  5    133 29.51     0.00  0.50    148  0.06  0.83 12.95  HEngr
       141  0.17     0.50  1.00      3  0.69  4.64  6.70
                     1.00 10.00      5  3.15 10.24  3.25
                    10.00 99.99      2 26.69 48.84  1.83
                    ----- -----    158  0.51  1.81  3.55





Not To Be Reproduced             9-24                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                            _r_e_s_p_o_n_s__m_e_t_e_r_s


  6   1180 11.65     0.00  0.50    977  0.05  1.13 20.91  MktUS MktFor MktEd
      1211  0.58     0.50  1.00     24  0.64  4.95  7.74
                     1.00 10.00     16  1.89 11.88  6.29
                    ----- -----   1017  0.10  1.39 14.38

  7    259 14.65     0.00  0.50    292  0.08  1.53 20.17  DS-CC
       287  0.98     0.50  1.00      9  0.71  9.03 12.66
                     1.00 10.00     17  2.04 14.76  7.24
                    10.00 99.99      1 12.22 99.99  9.45
                    ----- -----    319  0.24  2.81 11.86

  8     73  2.69     0.00  0.50     79  0.06  0.31  5.45  OffAuto
        74  0.05     0.50  1.00      2  0.60  6.40 10.62
                     1.00 10.00      1  3.20  6.73  2.10
                    ----- -----     82  0.11  0.54  4.94

  9     94 41.91     0.00  0.50     80  0.11  1.23 11.07  Misc Mfg
        96  0.30     0.50  1.00     11  0.69  4.74  6.91
                     1.00 10.00     13  2.99 12.82  4.30
                    ----- -----    104  0.53  3.05  5.74

 10      7 99.99     0.00  0.50     10  0.11  1.45 13.82  Other
         8  0.21     1.00 10.00      1  3.88 39.11 10.09
                    ----- -----     11  0.45  4.88 10.89

 11    417 12.71     0.00  0.50    445  0.03  0.50 15.32  Special
       420  0.16     0.50  1.00      5  0.57  3.61  6.29
                     1.00 10.00      4  1.65 11.40  6.90
                    ----- -----    454  0.05  0.63 11.93

All   5954 11.13     0.00  0.50   6454  0.07  0.77 11.40
      6192  0.29     0.50  1.00    217  0.68  4.54  6.70
                     1.00 10.00    173  2.31 13.11  5.68
                    10.00 99.99     13 48.77 99.99  3.32
                    ----- -----   6857  0.24  1.51  6.39

     86797 calls to meter_response_time        283 invalid transitions.
           Overhead =   0.09% (  0.052 ms./call)













Not To Be Reproduced             9-25                          MDD-003
                        _T_R_A_F_F_I_C__C_O_N_T_R_O_L__M_E_T_E_R_S

                           _p_o_s_t__p_u_r_g_e__m_e_t_e_r_s







ox  POST_PURGE_METERS - DISPLAY THE STATE OF POST-PURGE ACTIVITY.



   []  CONSIDERABLY MORE DETAILED METERS ARE KEPT BY RING ZERO, BUT NOT
      REPORTED AND NOT PARTICULARLY INTERESTING.



          Total metering time    0:20:29

          Post purge time         1.41 msec. (0.36% of system)
          Ave list size          17.76 entries
          Ave working set         5.59 pages
          Working set factor      0.50
          Working set addend         0
          Thrashing percentage    1.34 %
          Ave post in core       10.65       (59.94 %)




























Not To Be Reproduced             9-26                          MDD-003
                       _T_R_A_F_F_I_C__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                        _p_r_i_n_t__t_u_n_i_n_g__p_a_r_a_m_e_t_e_r_s







ox  PRINT_TUNING_PARAMETERS   -  PRINT    VALUES  FOR   SYSTEM  CONTROL
   PARAMETERS.  MOST CONTROL THE SCHEDULER



                    Current system tuning parameters:

                    tefirst                    0.5 seconds
                    telast                     1. seconds
                    timax                      8. seconds
                    priority_sched_inc         80. seconds
                    min_eligible               2.
                    max_eligible               20.
                    max_batch_elig             0
                    working_set_factor         0.5
                    working_set_addend         0
                    deadline_mode              off
                    int_q_enabled              on
                    post_purge                 on
                    pre_empt_sample_time       0.04 seconds
                    gp_at_notify               off
                    gp_at_ptlnotify            off
                    process_initial_quantum    2. seconds
                    quit_priority              0.
                    gv_integration             4. seconds
                    realtime_io_priority       on
                    realtime_io_deadline       0. seconds
                    realtime_io_quantum        0.005 seconds
                    notify_timeout_interval    30. seconds
                    notify_timeout_severity    0
                    write_limit                724



   []  THESE ARE  "INTERNAL", NORMALLY NEVER CHANGED,  AND ONLY PRINTED
      IF THE -all CONTROL ARGUMENT IS GIVEN


                    stack_truncation           on
                    stack_truncation_always    off
                    stk_trunc_block_avg_factor 0.25
                    trap_invalid_masked        off
                    meter_ast_locking          off
                    checksum_filemap           on


Not To Be Reproduced             9-27                          MDD-003
                       _T_R_A_F_F_I_C__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _p_r_i_n_t__a_p_t__e_n_t_r_y







ox  PRINT_APT_ENTRY - INTERPRETS AND DUMPS AN APT ENTRY



    ! print_apt_entry Sibert -dump


      Sibert.Multics.a b.h126 at 10300 in tc_data, >pdd>!BblCpbBbBBBBBB
      PID:010300356001 TRM:000447007410 407777000460
      Running for 0.067825 (since 01:28:53).
      Usage: cpu 8:40.8; vcpu 6:04.6; pf 23622.
      te/s/i/x: 0.411 0.000 0.647 32.000.
      Flags: loaded,eligible,mbz11,dbr_loaded.
      Alarm in 31.244 (at 01:29:24).

        0  005400003000 014225000001 000000056106 010300356001
        4  000001443141 000000000000 000002356631 000172044000
       10  000000000000 000000000000 005200013740 000000002076
       14  003000777777 115641364232 000000000000 003702747134
       20  000000000000 001360000002 000000111567 457572337662
       24  000000000000 000000000000 011700111567 457761705103
       30  000447007410 407777000460 000000000000 000001720440
       34  000000111567 457736532472 003322000000 000000000000
       40  000000000000 000004325430 000000000000 000000000000
       44  035117540004 001775100023 000000000000 002556711030
       50  000000000000 000000000000 000000000004 000000004441
       54  000000111567 457572506651 000000000000 014274070015
       60  000000000000 002557051053 000001720440 776000000000
       64  000000000000 000000000000 000000000000 000000000000
       70  000000000000 000000000000 000000000000 000000000000
       74  000000000000 000000000000 000000000000 000000000000




                                     TOPIC X

                         Fault and Interrupt Handling



                                                                      Page

                        Fault and Interrupt Handling Overview . . . . 10-1
                        Fault and Interrupt Data Bases. . . . . . . . 10-4


                                 10-i                          MDD-003
                       _T_R_A_F_F_I_C__C_O_N_T_R_O_L__C_O_M_M_A_N_D_S

                            _p_r_i_n_t__a_p_t__e_n_t_r_y


                            Fault and Interrupt Vectors . . . . . . . 10-4
                            Fault Data Save Areas . . . . . . . . . . 10-6
                            Important Types of Faults . . . . . . . . 10-8
                        Fault/Interrupt Meters. . . . . . . . . . . . 10-13
                            fim_meters. . . . . . . . . . . . . . . . 10-13
                            interrupt_meters. . . . . . . . . . . . . 10-14














































                                 10-i                          MDD-003





























                                   .

                 _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  RESPONSIBLE  FOR  HANDLING  ALL  EXCEPTIONS  IN  A  CPU  WHETHER
      INTERNAL TO  THE PROCESSOR (REFERRED  TO AS _F_A_U_L_T_S)  OR EXTERNAL
      (REFERRED TO AS _I_N_T_E_R_R_U_P_T_S)



   []  ESTABLISHES  THE SUPERVISOR  ENVIRONMENT AT  FAULT AND INTERRUPT
      TIME.   SAVES  THE  MACHINE  CONDITIONS  AND  TRANSFERS  TO  THE
      APPROPRIATE HANDLER



   []  MAJOR COMPONENTS:  THE FAULT INTERCEPT MODULE (fim), WIRED-FAULT
      INTERCEPT    MODULE   (wired_fim),    I/O   INTERRUPT    HANDLER
      (io_interrupt), sys_trouble, page_fault





ox  MAJOR DATA BASES



   []  INTERRUPT VECTORS - ONE SET PER SYSTEM (WIRED)


      []  INTERRUPT  PAIR  (2  INSTRUCTIONS)  -  ONE  PAIR  PER DEFINED
         INTERRUPT TYPE


      []  LOCATED  AT ABSOLUTE ADDRESS  0.  A HARDWARE  RECOGNIZED DATA
         BASE


      []  DESCRIBE WHERE TO SAVE THE  CONTEXT, AND WHERE TO TRANSFER TO
         TO PROCESS THE INTERRUPT (ALWAYS io_interrupt)







Not To Be Reproduced             10-1                          MDD-003
                 _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G__O_V_E_R_V_I_E_W





   []  FAULT VECTORS - ONE SET PER SYSTEM (WIRED)


      []  VECTOR  PAIR (2  INSTRUCTIONS) -  ONE PAIR  PER DEFINED FAULT
         TYPE


      []  LOCATED AT ABSOLUTE ADDRESS 100 (OCTAL) IMMEDIATELY ABOVE THE
         INTERRUPT VECTORS.  A HARDWARE RECOGNIZED DATA BASE


      []  DESCRIBE WHERE TO SAVE THE  CONTEXT, AND WHERE TO TRANSFER TO
         TO PROCESS THE FAULT (fim, wired_fim, page_fault)



   []  _P_R_O_C_E_S_S  DATA  SEGMENT  (PDS)  -  ONE  PER  PROCESS  (WIRED WHEN
      ELIGIBLE)


      []  CONTAINS PROCESS  RELEVANT INFO SUCH AS PROCESS  ID, USER ID,
         HOME/WORKING/PROCESS DIRECTORIES, AIM CLASSIFICATION, INITIAL
         RING, ETC


      []  CONTAINS  ALL INFORMATION  ABOUT  THE  PROCESS NEEDED  BY THE
         SUPERVISOR CODE WHEN THE PROCESS IS RUNNING


      []  CONTAINS  SAVE  AREAS  FOR  CONTEXT  INFORMATION ABOUT FAULTS
         WHICH CAN  RESULT IN GIVING  UP THE PROCESSOR:   PAGE FAULTS,
         SEGMENT FAULTS, AND ALL FAULTS NOT HANDLED BY THE SUPERVISOR



   []  _P_R_O_C_E_S_S_O_R DATA SEGMENT (PRDS) - ONE PER CONFIGURED CPU (WIRED)


      []  SERVES  AS  RING-ZERO  STACK  FOR  PAGE  CONTROL  AND TRAFFIC
         CONTROL


      []  ALSO CONTAINS SAVE AREAS FOR CONTEXT INFORMATION ABOUT FAULTS
         WHICH USUALLY  DO NOT MEAN GIVING UP  THE PROCESSOR:  CONNECT
         FAULTS AND INTERRUPTS.





Not To Be Reproduced             10-2                          MDD-003
                 _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__H_A_N_D_L_I_N_G__O_V_E_R_V_I_E_W





   []  FIM_TABLE


      []  A TABLE IN  THE FIM PROGRAM WHICH DESCRIBES THE  ACTION TO BE
         TAKEN FOR VARIOUS TYPES OF FAULTS













































Not To Be Reproduced             10-3                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                      _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__V_E_C_T_O_R_S







ox  ALL FAULTS AND INTERRUPTS ARE HANDLED IN A CENTRALIZED FASHION



   []  FOR EACH FAULT OR INTERRUPT, THERE ARE TWO INSTRUCTIONS:


      []  AN  scu INSTRUCTION, TO  STORE THE ABSOLUTELY  ESSENTIAL DATA
         NEEDED TO RESTART FROM THE FAULT


      []  A tra  INSTRUCTION, TO TRANSFER  TO TO THE  APPROPRIATE FAULT
         HANDLER



   []  ASSOCIATED WITH EACH OF THESE INSTRUCTIONS, THERE IS A POINTER


      []  AN  SCU DATA POINTER,  POINTING TO ONE  OF SIX REGIONS  WHERE
         FAULT DATA GOES


      []  A  FAULT HANDLER  POINTER, INDICATING  ONE OF  THE PROCEDURES
         USED TO HANDLE FAULTS



   []  THESE INSTRUCTIONS AND POINTERS ARE STORED IN THE fault_vector



   []  THE DATA  STORED BY scu IS  ONLY THE "CONTROL UNIT  DATA" - EACH
      HANDLER MUST IMMEDIATELY SAVE THE PROGRAM VISIBLE REGISTERS, THE
      EIS POINTER  & LENGTH DATA, AND  SO FORTH.  THIS DATA  IS ALWAYS
      STORED  IN THE  SAME  FORMAT,  THE MACHINE  CONDITIONS STRUCTURE
      (mc.incl.pl1)









Not To Be Reproduced             10-4                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                      _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__V_E_C_T_O_R_S
























            ===============================================
            INSERT Fault and Interrupt Vectors DIAGRAM HERE
            ===============================================


























Not To Be Reproduced             10-5                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                         _F_A_U_L_T__D_A_T_A__S_A_V_E__A_R_E_A_S







ox  THERE ARE SIX REGIONS WHERE MACHINE CONDITIONS ARE STORED.



   []  THEY  ARE SELECTED TO  MINIMIZE THE NUMBER  OF TIMES WHEN  FAULT
      DATA MUST BE MOVED.  USUALLY, ONCE FAULT DATA HAS BEEN STORED IN
      A PARTICULAR PLACE, IT CAN  BE RESTORED DIRECTLY FROM THERE, BUT
      SOMETIMES IT MUST BE MOVED TO ANOTHER PLACE


      []  prds$interrupt_data - USED FOR INTERRUPTS, ONLY


      []  prds$fim_data - USED FOR FAULTS SUCH AS CONNECT FAULTS, WHICH
         WILL  BE HANDLED  ENTIRELY USING  THE WIRED  RING ZERO  STACK
         (PRDS)


      []  prds$sys_trouble_data -  USED FOR THE FAULT  THAT CRASHED THE
         SYSTEM.  NO MACHINE CONDITIONS ARE EVER STORED HERE DIRECTLY,
         ONLY MOVED HERE.


      []  pds$fim_data - USED FOR FAULTS  WHICH WILL BE HANDLED IN RING
         ZERO, USING THE  RING ZERO STACK, WHERE PAGE  FAULTS MIGHT BE
         TAKEN WHILE THE OTHER FAULT IS BEING HANDLED


      []  pds$page_fault_data - USED FOR  PAGE FAULTS AND TIMER RUNOUTS
         (WHICH INDICATE THE END OF A QUANTUM) - BOTH ARE EVENTS WHICH
         ALMOST ALWAYS  RESULT IN GIVING  UP THE PROCESSOR,  BUT WHICH
         ARE HANDLED ON THE WIRED RING ZERO STACK (PRDS)


      []  pds$signal_data - USED FOR FAULTS WHICH WILL BE SIGNALLED OUT
         FOR THE USER  RING TO HANDLE.  IF AN  ERROR OCCURS PROCESSING
         SOME FAULT IN RING ZERO, ITS  FAULT DATA IS MOVED HERE BEFORE
         SIGNALLING








Not To Be Reproduced             10-6                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                         _F_A_U_L_T__D_A_T_A__S_A_V_E__A_R_E_A_S





   []  THERE ARE ALSO SPECIAL STACK FRAMES  CREATED BY THE FIM USED FOR
      FAULT SIGNALLING, AND THE MACHINE CONDITIONS ARE COPIED THERE.














































Not To Be Reproduced             10-7                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                       _I_M_P_O_R_T_A_N_T__T_Y_P_E_S__O_F__F_A_U_L_T_S







ox  CERTAIN  FAULTS DESERVE  SPECIAL DISCUSSION,  AS THEY  ARE USED  TO
   IMPLEMENT IMPORTANT SUPERVISOR SERVICES



   []  LINKAGE FAULT


      []  OCCUR WHEN A POINTER CONTAINING 46  OCTAL IN THE LOW SIX BITS
         OF THE FIRST WORD IS USED


      []  USED  TO IMPLEMENT  DYNAMIC LINKING  (SEE NAME/ADDRESS  SPACE
         MANAGEMENT, TOPIC 4)


      []  USES  pds$fim_data,  IS  HANDLED  BY  fim.alm,  WHICH INVOKES
         link_man.pl1, HANDLED ENTIRELY ON THE stack_0



   []  SEGMENT FAULT


      []  OCCURS WHEN AN NON-ACTIVE  SEGMENT IS REFERENCED (SEE SEGMENT
         CONTROL, TOPIC 7)


      []  USES  pds$fim_data,  IS  HANDLED  BY  fim.alm,  WHICH INVOKES
         seg_fault.pl1, HANDLED ENTIRELY ON THE stack_0


      []  A SEGMENT FAULT MAY OCCUR WHILE ANOTHER IS BEING HANDLED, AND
         IT WILL BE HANDLED RECURSIVELY



   []  PAGE FAULT


      []  OCCURS  WHEN A  PAGE NOT  IN MEMORY  IS REFERENCED  (SEE PAGE
         CONTROL, TOPIC 8)




Not To Be Reproduced             10-8                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                       _I_M_P_O_R_T_A_N_T__T_Y_P_E_S__O_F__F_A_U_L_T_S




      []  USES    pds$page_fault_data,   IS    HANDLED   DIRECTLY    BY
         page_fault.alm, AND IS HANDLED ENTIRELY ON THE PRDS.



   []  TIMER RUNOUT


      []  OCCURS WHEN  THE TIMER REGISTER IS  DECREMENTED THROUGH ZERO,
         INDICATING  THAT THE RUNNING  PROCESS HAS NOW  OVERSTAYED ITS
         WELCOME, AND SHOULD LOSE ELIGIBILITY

         []  TIMER  RUNOUT FAULTS  ARE  ALSO  USED INTERNAL  TO TRAFFIC
            CONTROL  TO IMPLEMENT  "PRE-EMPT" SAMPLING;  IN THIS MODE,
            NOW THE DEFAULT, THE TIMER GOES OFF EVERY FEW MILLISECONDS
            AND THE  PROCESS CHECKS TO  SEE WHETHER A  HIGHER PRIORITY
            PROCESS  WANTS  THE  PROCESSOR;  THIS  DOES  NOT  MAKE THE
            RUNNING  PROCESS INELIGIBLE,  HOWEVER, UNLESS  ITS QUANTUM
            HAS ALSO RUN OUT

         []  A  PROCESS  RUNNING  IN  RING  ZERO  NEED  NEVER  GIVE  UP
            ELIGIBILITY -  WHEN A TIMER RUNOUT  HAPPENS, IT REMEMBERS,
            AND SETS THE RING ALARM  REGISTER, WHICH WILL CAUSE A RING
            ALARM FAULT LATER ON WHEN IT LEAVES RING ZERO


      []  USES  pds$page_fault_data, IS  HANDLED DIRECTLY  BY pxss.alm,
         AND IS HANDLED ENTIRELY ON THE PRDS.



   []  RING ALARM FAULT


      []  OCCURS WHEN A PROCESS RETURNS TO  AN OUTER RING FROM AN INNER
         RING, AND THE RING ALARM REGISTER HAS BEEN SET


      []  (1) USED TO DEFER ACTION  ON TIMER RUNOUTS AND CONNECT FAULTS
         (SEE BELOW) UNTIL A PROCESS LEAVES RING ZERO


      []  (2) USED  TO ENSURE THAT  THE SOFTWARE VALIDATION  LEVEL (SET
         WITH cu_$level_set) IS NEVER LOWER THAN THE RING OF EXECUTION
         -  SETTING THE  VALIDATION LEVEL   ALSO SETS  THE RING  ALARM
         REGISTER,  AND THE  RING  ALARM  FAULT CAUSES  THE VALIDATION
         LEVEL TO BE RESET


Not To Be Reproduced             10-9                          MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                       _I_M_P_O_R_T_A_N_T__T_Y_P_E_S__O_F__F_A_U_L_T_S




      []  USES    pds$page_fault_data,   IS    HANDLED   DIRECTLY    BY
         ring_alarm.alm AND IS HANDLED ENTIRELY ON THE PRDS.


      []  IS ACTUALLY A SUBTYPE OF ACCESS VIOLATION



   []  CONNECT FAULT


      []  OCCURS WHEN ONE PROCESSOR SENDS A "connect" TO ANOTHER, USING
         A cioc INSTRUCTION

         []  RESEMBLES   A   SOFTWARE   SENDABLE   INTERRUPT;  ALTHOUGH
            PROCESSORS CAN SEND INTERRUPTS  TO EACH OTHER, LIMITATIONS
            OF THE HARDWARE MAKE CONNECT FAULTS EASIER TO USE


      []  USED FOR ALL INTERPROCESSOR SIGNALLING -

         []  (1)  TO CAUSE ANOTHER  PROCESSOR TO SELECTIVELY  CLEAR ITS
            CACHE OR ASSOCIATIVE MEMORY

         []  (2)  TO PRE-EMPT  A PROCESS  RUNNING ON  ANOTHER CPU (WHEN
            PRE-EMPT SAMPLING IS _N_O_T IN USE)

         []  (3)  TO  INFORM  ANOTHER  PROCESSOR  THAT  THE  SYSTEM  IS
            CRASHING

         []  (4) TO  INFORM ANOTHER PROCESSOR THAT IT  IS BEING REMOVED
            FROM THE CONFIGURATION


      []  USES  prds$fim_data, IS  SOMETIMES HANDLED  BY wired_fim.alm,
         AND IS HANDLED ENTIRELY ON THE PRDS.

         []  FOR TYPE  1 CONNECTS (CACHE  CLEAR), THE FAULT  IS HANDLED
            VERY  SPECIALLY BY  CODE WHICH  IS ACTUALLY  EXECUTED FROM
            WITHIN  THE  PRDS  (SEE  fast_connect_init.alm),  AND RUNS
            SOMEWHAT  FASTER.   THE  COMPLICATED  CASES  ARE  LEFT  TO
            WIRED_FIM


      []  CELLS  IN  THE  scs  ARE  USED  TO  DISTINGUISH  BETWEEN  THE
         DIFFERENT  TYPES  OF  CONNECT  FAULTS;  A  PROCESSOR SETS THE
         APPROPRIATE CELLS BEFORE SENDING THE CONNECT.


Not To Be Reproduced             10-10                         MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                       _I_M_P_O_R_T_A_N_T__T_Y_P_E_S__O_F__F_A_U_L_T_S





   []  OTHER FAULTS


      []  PARITY - RUN AUTOMATIC PARITY ERROR LOGGING AND DIAGNOSIS (TO
         CHIP LEVEL, FOR CACHE) ROUTINES


      []  OP_NOT_COMPLETE, COMMAND, SHUTDOWN, STARTUP, STORE, TROUBLE -
         RUN HARDWARE ERROR LOGGING ROUTINES


      []  OVERFLOW, UNDERFLOW  - CAN BE  SET UP TO  AUTOMATICALLY SET A
         SPECIFIED  (VERY  LARGE  OR  VERY  SMALL)  VALUE  AND RESTART
         WITHOUT INTERRUPTING THE RUNNING PROGRAM


      []  DERAIL  -  USED  WHEN  CRASHING  THE  SYSTEM  OR  VOLUNTARILY
         RETURNING  TO BOS  TO BEGIN  EXECUTION IN  BOS.  AN  ORDINARY
         SIGNALLABLE FAULT  AT ALL OTHER  TIMES (AND USED  THAT WAY BY
         THE gtss EMULATOR)


      []  EXECUTE - USED TO FORCE A SYSTEM CRASH


      []  ACCESS  VIOLATION -  CAN AUTOMATICALLY  LOG ACCESS VIOLATIONS
         FOR SECURITY AUDITS


      []  OTHERS -  HANDLED BY fim.alm, WHICH MAPS  THE HARDWARE FAULTS
         ONTO THE MULTICS ENVIRONMENT CONDITION NAMES

         []  CONSIDERABLE  INTERPRETATION  IS  SOMETIMES  REQUIRED; FOR
            INSTANCE,  A NULL  POINTER  IS  ACTUALLY SIGNALLED  BY THE
            HARDWARE AS  AN ACCESS VIOLATION,  OUT OF BOUNDS  ON DSEG,
            FAULT



   []  INTERRUPT


      []  INTERRUPTS  ARE USED  TO ANNOUNCE  THE COMPLETION  OF ALL I/O
         OPERATIONS,   AND   ALSO   (RARELY)   USED   DURING   DYNAMIC
         RECONFIGURATION TO START PROCESSORS



Not To Be Reproduced             10-11                         MDD-003
                    _F_A_U_L_T__A_N_D__I_N_T_E_R_R_U_P_T__D_A_T_A__B_A_S_E_S

                       _I_M_P_O_R_T_A_N_T__T_Y_P_E_S__O_F__F_A_U_L_T_S




      []  USES    prds$interrupt_data,   IS    HANDLED   DIRECTLY    BY
         iom_interrupt.alm  OR  init_processor.alm,   AND  IS  HANDLED
         ENTIRELY ON THE PRDS.














































Not To Be Reproduced             10-12                         MDD-003
                        _F_A_U_L_T_/_I_N_T_E_R_R_U_P_T__M_E_T_E_R_S

                              _f_i_m__m_e_t_e_r_s







ox  FIM_METERS - COUNTS FOR ALL FAULT PROCESSING



        Total metering time:             0:20:28

        fault type                                   count

        shutdown                                         0
        store                                            0
        mme1                                             0
        fault_tag_1                                      2
        timer_runout                                 12907
        command                                          5
        derail                                           0
        lockup                                           0
        connect                                     742501
        parity                                           0
        illegal_procedure                                0
        op_not_complete                                  0
        startup                                          0
        overflow                                         0
        divide_check                                     0
        execute                                          0
        segment_fault                                 6697
        page_fault                                  151772
        directed_fault_2                                 0
        directed_fault_3                                 0
        access_violation                             21120
        mme2                                             0
        mme3                                             0
        mme4                                             0
        linkage_fault                                21058
        fault_tag_3                                      0
        trouble                                          0











Not To Be Reproduced             10-13                         MDD-003
                        _F_A_U_L_T_/_I_N_T_E_R_R_U_P_T__M_E_T_E_R_S

                           _i_n_t_e_r_r_u_p_t__m_e_t_e_r_s







ox  INTERRUPT_METERS - COUNTS & TIMING FOR ALL I/O INTERRUPTS


        Total metering time    0:20:28

         IOM Ch     Int  Avg Time  % CPU  Name

         A   6.      11   2.043     0.00  IOM A special
         A  10.     379   1.553     0.01  prtb
         A  13.    9253   3.436     0.65  fnp c
         A  14.      19   0.788     0.00  opc
         A  16.   26248   1.347     0.72  tapa
         A  17.     128   1.328     0.00  tapa
         A  18.   13097   5.383     1.43  fnp b
         A  20.   21041   0.860     0.37  dska
         A  21.    2881   0.860     0.05  dska
         A  22.    8486   0.877     0.15  dskb
         A  23.     257   0.964     0.01  dskb
         A  24.   17896   0.895     0.33  dskb
         A  25.    2573   0.943     0.05  dskb
         A  26.   10486   0.857     0.18  dska
         A  27.     255   0.899     0.00  dska
         A  28.   24717   0.845     0.43  dskc
         A  29.    2319   0.849     0.04  dskc
         A  30.    9915   0.845     0.17  dskc
         A  31.     215   0.767     0.00  dskc
         B  14.     236   0.877     0.00  fnp d
         B  15.    6917   3.351     0.47  fnp f
         B  18.    3547   3.543     0.26  fnp a
         B  19.   13667   3.435     0.96  fnp e
         B  20.   22013   0.881     0.39  dskb
         B  21.    4745   0.863     0.08  dskb
         B  22.    6054   0.861     0.11  dska
         B  23.      60   0.925     0.00  dska
         B  24.   15946   0.867     0.28  dska
         B  25.     989   0.841     0.02  dska
         B  26.   12757   0.863     0.22  dskb
         B  27.    1020   0.903     0.02  dskb
         B  28.    5178   0.838     0.09  dskc
         B  29.      30   0.653     0.00  dskc
         B  30.   16582   0.823     0.28  dskc
         B  31.     825   0.841     0.01  dskc
         B  32.    1764   0.825     0.03  dske



Not To Be Reproduced             10-14                         MDD-003
                        _F_A_U_L_T_/_I_N_T_E_R_R_U_P_T__M_E_T_E_R_S

                           _i_n_t_e_r_r_u_p_t__m_e_t_e_r_s


        Chan     262506   1.464     7.82
        Ovhd     258932   0.230     1.21
        Total    258932   1.713     9.03




                                       TOPIC XI

                           System Initialization/Shutdown

                                                                        Page

                          System Initialization Overview. . . . . . . . 11-1
                          System Initialization Terminology . . . . . . 11-4
                          Initialization Data Bases . . . . . . . . . . 11-7
                          Environment Passed to Initialization. . . . . 11-10
                          Collection 0. . . . . . . . . . . . . . . . . 11-11
                          Collection 1. . . . . . . . . . . . . . . . . 11-12
                          Collection 2. . . . . . . . . . . . . . . . . 11-14
                          Collection 3. . . . . . . . . . . . . . . . . 11-16
                          Normal Shutdown . . . . . . . . . . . . . . . 11-17
                          File System Shutdown. . . . . . . . . . . . . 11-18
                          Emergency Shutdown. . . . . . . . . . . . . . 11-20




























                                 11-i                          MDD-003
                        _F_A_U_L_T_/_I_N_T_E_R_R_U_P_T__M_E_T_E_R_S

                           _i_n_t_e_r_r_u_p_t__m_e_t_e_r_s







ox  FUNCTION



   []  PREPARE THE SYSTEM TO OPERATE,  STARTING FROM A COMPLETELY EMPTY
      MACHINE



   []  READS  IN  SUPERVISOR  PROGRAMS  FROM  SYSTEM  TAPE, SNAPS LINKS
      BETWEEN SUPERVISOR COMPONENTS, VERIFIES AND INITIALIZES HARDWARE
      CONFIGURATION, SETS UP SYSTEM  DATABASES, ACCEPTS STORAGE SYSTEM
      DISKS AND PREPARES THEM FOR USE BY THE FILE SYSTEM



   []  MOST  PROGRAMS  IN  SYSTEM   INITIALIZATION  ARE  DELETED  AFTER
      INITIALIZATION IS COMPLETE.



   []  SUPERVISOR PROGRAMS  ARE LOADED IN THREE  "COLLECTIONS", EACH OF
      WHICH DEPENDS ON THE MECHANISMS SET UP BY THE PREVIOUS ONE





ox  MAJOR DATA BASES



   []  THESE  DATA   BASES  ARE  ALL   BUILT  DURING  THE   PROCESS  OF
      INITIALIZATION  (EXCEPT  FOR  THE  CONFIG  DECK)  AND KEPT AFTER
      INITIALIZATION IS FINISHED



   []  SEGMENT LOADING TABLE (>sl1>slt)


      []  CONTAINS AN  ENTRY DESCRIBING THE ATTRIBUTES  OF EACH SEGMENT
         IN THE SUPERVISOR



Not To Be Reproduced             11-0                          MDD-003
                    _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N__O_V_E_R_V_I_E_W





   []  NAME TABLE (>sl1>name_table)


      []  CONTAINS  A LIST  OF NAMES  FOR EACH  OF THE  SEGMENTS IN THE
         SUPERVISOR



   []  DEFINITIONS SEGMENT (>sl1>definitions_)


      []  CONTAINS THE DEFINITIONS SECTIONS FOR ALL THE SEGMENTS IN THE
         SUPERVISOR, WHICH ARE USED IN ORDER TO SNAP LINKS BETWEEN THE
         SUPERVISOR MODULES



   []  CONFIG DECK (>sl1>config_deck)


      []  CONTAINS  A  DESCRIPTION  OF  THE  HARDWARE CONFIGURATION AND
         CERTAIN SOFTWARE PARAMETERS


      []  PROVIDED TO SYSTEM INITIALIZATION BY BOS





ox  SHUTDOWN -- TERMINATES  THE ACTIVITIES OF THE SYSTEM  IN AN ORDERLY
   FASHION



   []  TWO TYPES OF SHUTDOWN:


      []  NORMAL  -- REQUESTED  BY THE  INITIALIZER, RUNS  IN THE USUAL
         SUPERVISOR ENVIRONMENT


      []  EMERGENCY  -- USED  AFTER A  CRASH, MUST  MAKE THE SUPERVISOR
         ENVIRONMENT OPERABLE BEFORE PROCEEDING






Not To Be Reproduced             11-1                          MDD-003
                    _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N__O_V_E_R_V_I_E_W





   []  BOTH TYPES EXIST PRIMARILY TO SHUT  DOWN THE FILE SYSTEM -- THAT
      IS, TO WRITE ALL DATA IN MEMORY INTO ITS PROPER HOME ON DISK


      []  INCLUDES PAGES OF SEGMENTS, VTOCES, VOLUME AND VTOC MAPS



   []  SHUTDOWN ESSENTIALLY RUNS THE STEPS OF INITIALIZATION BACKWARDS,
      BUT WITH A LOT OF SHORTCUTS








































Not To Be Reproduced             11-2                          MDD-003
                   _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N__T_E_R_M_I_N_O_L_O_G_Y







CONFIG DECK:   A  SET  OF  CARDS  OR  CARD  IMAGES  USED TO INFORM THE
               SOFTWARE  ABOUT   THE  OPERATIONAL  READINESS   OF  THE
               HARDWARE PRESENT, SWITCH SETTINGS AND SPECIFICATIONS OF
               SOME SOFTWARE DATA BASES (SIZE, LOCATION, ETC)





BOS:           THE  _BOOTLOAD  _OPERATING  _SYSTEM.   A  SIMPLE OPERATING
               SYSTEM (A  ONE CPU, UNPAGED ENVIRONMENT)  OF 8 SEGMENTS
               OCCUPYING THE FIRST 16K OF MAIN MEMORY.  BOS RESIDES IN
               THE BOS PARTITION WHEN "MULTICS" IS RUNNING





MST:           THE  _MULTICS  _SYSTEM  _TAPE  CONTAINS  PRECISELY  ENOUGH
               INFORMATION (PROCEDURES AND DATA BASES) TO BRING A BARE
               HARDWARE  SYSTEM TO   MULTICS COMMAND  LEVEL (ACTUALLY,
               ONLY ENOUGH OF COMMAND LEVEL TO PERFORM A RELOAD)





BOOT:          THE OPERATIONAL PROCEDURE OF  READING THE SEGMENTS FROM
               THE MST AND EXECUTING THE PROCEDURE/SEGMENTS THEREIN





WARM/COLD BOOT:
               BOOTING THE SYSTEM WITH/WITHOUT A HIERARCHY PRESENT





HARDCORE PARTITION:
               A  RLV PARTITION  FOR PAGING  HARDCORE SEGMENTS CREATED
               DURING BOOTLOAD




Not To Be Reproduced             11-3                          MDD-003
                   _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N__T_E_R_M_I_N_O_L_O_G_Y







DECIDUOUS SEGMENT:
               A  SEGMENT READ  IN AS  PART OF  THE BOOTLOAD  TAPE AND
               PLACED INTO THE HIERARCHY.  DECIDUOUS SEGMENTS ARE PART
               OF THE INITIALIZER'S HARDCORE  ADDRESS SPACE AND RESIDE
               ENTIRELY IN THE HARDCORE  PARTITION.  THEY ARE PUT INTO
               THE HIERARCHY (>sl1) IN ORDER TO BE ACCESSIBLE FROM THE
               USER RINGS





NON DECIDUOUS HARDCORE SEGMENT:
               A PAGED HARDCORE SEGMENT NOT IN THE HIERARCHY (AND THUS
               HAS NO PATHNAME)

































Not To Be Reproduced             11-4                          MDD-003
                   _S_Y_S_T_E_M__I_N_I_T_I_A_L_I_Z_A_T_I_O_N__T_E_R_M_I_N_O_L_O_G_Y

























              ==========================================
              INSERT Segment Classification DIAGRAM HERE
              ==========================================



























Not To Be Reproduced             11-5                          MDD-003
                       _I_N_I_T_I_A_L_I_Z_A_T_I_O_N__D_A_T_A__B_A_S_E_S







ox  THE TERM  INITIALIZATION REFERS TO  THE ACTIONS REQUIRED  TO CREATE
   THE  MULTICS ENVIRONMENT  GIVEN  THE  EXISTENCE OF  A CONFIGURATION
   DECK, AND HARDWARE CONTAINING NO OTHER DATA THAN FIRMWARE AND BOS





ox  INITIALIZATION IS ACCOMPLISHED BY AN ORDERLY LOADING AND PROCESSING
   OF THE SEGMENTS RESIDING ON THE MULTICS SYSTEM TAPE (MST)





ox  THE SEGMENTS OF THE MST MAY BE DIVIDED INTO THREE CATEGORIES:



   []  INITIALIZATION SEGMENTS


      []  PROCEDURES  USED  ONLY  FOR  INITIALIZATION  AND SUBSEQUENTLY
         DISCARDED



   []  SUPERVISOR SEGMENTS


      []  DATA BASES USED DURING  INITIALIZATION THAT ULTIMATELY BECOME
         DATA BASES OF Initializer.SysDaemon.z


      []  PROCEDURES  AND DATA  BASES THAT  CONSTITUTE MULTICS HARDCORE
         SUPERVISOR IN ITS ENTIRETY



   []  NON-SUPERVISOR SEGMENTS


      []  THE   SEGMENTS  OF   COLLECTION  THREE   ARE  PRECISELY   THE
         NON-SUPERVISOR  SEGMENTS  OF  THE  MST.   THESE  SEGMENTS ARE
         LOADED DIRECTLY  INTO >system_library_1, AND ARE  NOT PART OF
         THE RING ZERO SUPERVISOR


Not To Be Reproduced             11-6                          MDD-003
                       _I_N_I_T_I_A_L_I_Z_A_T_I_O_N__D_A_T_A__B_A_S_E_S







ox  BOOTLOAD PROCESSOR



   []  ONE PROCESSOR (THE BOOTLOAD  CPU) PERFORMS ALL OF INITIALIZATION
      RUNNING EXCLUSIVELY IN RING ZERO



   []  IN  THE  MOST  OF  INITIALIZATION  (COLLECTION  ONE  AND MOST OF
      COLLECTION  TWO),   THERE  ARE  NO  PROCESSES,   AS  SUCH.   THE
      ENVIRONMENT   WHICH   RUNS    THERE   EVENTUALLY   BECOMES   THE
      Initializer.SysDaemon PROCESS



   []  NOTE:  SINCE THE Initializer.SysDaemon DOES NOT LOGIN LIKE OTHER
      USERS, IT DOES NOT APPEAR IN THE NORMAL USER TABLE, CONSEQUENTLY
      IS NOT VISIBLE TO THE who COMMAND





ox  STRATEGY OF INITIALIZATION:  BOOTSTRAPPING



   []  THE  FIRST  PROCEDURES  RUN  IN  AN  ENVIRONMENT  DEVOID  OF ALL
      SOFTWARE ASSISTANCE



   []  EACH  NEW  MECHANISM  (SEGMENTATION,  STACKS,  SYMBOLIC LINKING,
      PAGING, ETC) IS MADE OPERATIVE AS SOON AS POSSIBLE TO ENRICH THE
      ENVIRONMENT IN WHICH FURTHER MECHANISMS ARE MADE OPERATIVE



   []  MANY  MECHANISMS HAVE  SUBSYSTEMS  THAT  CONTROL THEM  AND THESE
      SUBSYSTEMS ARE  NORMALLY INITIALIZED BY CALLING  A SPECIAL ENTRY
      POINT IN THE SUBSYSTEM WHICH PERFORM SUCH TASKS AS:






Not To Be Reproduced             11-7                          MDD-003
                       _I_N_I_T_I_A_L_I_Z_A_T_I_O_N__D_A_T_A__B_A_S_E_S




      []  CREATING TABLES WHOSE SIZES  ARE DETERMINED BY DATA SPECIFIED
         IN THE "CONFIG" DECK


      []  THREADING OF RELEVANT LISTS



   []  SEGMENTS  ON THE  MST ARE  ARRANGED IN  SUCH AN  ORDER THAT  THE
      EARLIER SEGMENTS ALLOW AS MANY MECHANISMS AS POSSIBLE TO BE USED
      IN LOADING AND PROCESSING OF THE LATER SEGMENTS



   []  FOR THIS PURPOSE (AND BECAUSE THE SIZE OF THE MST IS POTENTIALLY
      LARGER  THAN MAIN MEMORY),  THE MST IS  DIVIDED INTO FOUR  PARTS
      KNOWN AS COLLECTION ZERO, ONE, TWO AND THREE



   []  INITIALIZATION CAN  BE VIEWED AS  THE LOADING AND  PROCESSING OF
      COLLECTION ONE, COLLECTION TWO, AND COLLECTION THREE, IN TURN





ox  THE  ADDRESS  SPACE  OF  INITIALIZATION  (MINUS  THE INITIALIZATION
   SEGMENTS) BECOMES THE GLOBAL SUPERVISOR ADDRESS SPACE OF MULTICS



   []  THIS  ADDRESS SPACE  IS "CLONED"  TO BECOME  THE INITIAL ADDRESS
      SPACE OF NEWLY CREATED PROCESSES BY DUPLICATING THE DSEG

















Not To Be Reproduced             11-8                          MDD-003
                 _E_N_V_I_R_O_N_M_E_N_T__P_A_S_S_E_D__T_O__I_N_I_T_I_A_L_I_Z_A_T_I_O_N







ox  THE  FIRST   SEGMENT  OF  COLLECTION  ONE  IS   THE  BOUND  SEGMENT
   bound_bootload_1





ox  AT  THE TIME  CONTROL IS   TRANSFERRED TO  bound_bootload_1, IT  IS
   REQUIRED THAT BOS HAS INITIALIZED MAIN MEMORY AS FOLLOWS:



   []  THE IOM MAILBOX MUST BE AT LOCATION 1400 AND CONTAIN THE CHANNEL
      AND DEVICE NUMBER OF THE TAPE DRIVE ON WHICH THE MST IS MOUNTED



   []  THE  CONFIG DECK (AS  PRODUCED BY BOS)  MUST RESIDE AT  LOCATION
      14000 THRU 15777



   []  THE BOS TOEHOLD AND FLAGBOX MUST BE AT LOCATION 10000 THRU 11777


      []  THIS ONE  PAGE CONSTITUTES ALL KNOWLEDGE THAT  MULTICS HAS OF
         BOS


      []  TRANSFERRING  CONTROL TO  THE START  OF THE  BOS TOEHOLD WILL
         CAUSE:

         []  FIRST  64K OF  MAIN MEMORY  TO BE  FLUSHED OUT  TO THE BOS
            PARTITION

         []  THE BOS OPERATING SYSTEM TO BE  READ INTO THE FIRST 64K OF
            MAIN MEMORY

         []  CONTROL GIVEN TO BOS



   []  THE REMAINDER OF MAIN MEMORY MUST CONTAIN ZEROES





Not To Be Reproduced             11-9                          MDD-003
                             _C_O_L_L_E_C_T_I_O_N__0







ox  THIS CONSISTS  OF THE SEGMENTS WHICH  ARE DEFINED TO BE  PRESENT IN
   THE INITIAL ADDRESS SPACE



   []  THESE SEGMENTS  ARE EMPTY, AND OVERLAY SPECIFIC  REGIONS OF MAIN
      MEMORY.  THEY ARE DEFINED SO THAT bound_bootload_1 CAN KNOW WHAT
      SEGMENT NUMBERS TO USE FOR WHAT DATA



   []  THE   COLLECTION   ZERO   SEGMENTS   ARE   dseg,   fault_vector,
      iom_mailbox,  config_deck, dn355_mailbox,  bos_toehold, flagbox,
      slt, and name_table


      []  SEE  SECTION 5,  NAME /  ADDRESS SPACE  MANAGEMENT, FOR THEIR
         DESCRIPTIONS






























Not To Be Reproduced             11-10                         MDD-003
                             _C_O_L_L_E_C_T_I_O_N__1







ox  COLLECTION  1  CONTAINS  ALL  OF  THE  PROCEDURES  AND  DATA  BASES
   NECESSARY TO MAKE PAGING OPERATIVE





ox  BASIC STEPS OF COLLECTION 1 LOADING AND INITIALIZATION:



   []  bound_bootload_1 GAINS  CONTROL FROM BOS, IN  ABSOLUTE MODE, AND
      PERFORMS THE FOLLOWING:


      []  LOADS THE REMAINDER OF ITSELF INTO MAIN MEMORY


      []  ESTABLISHES INTERIM FAULT AND INTERRUPT VECTORS


      []  INITIALIZES  THE INITIALIZATION   DSEG, AND  ENTERS APPENDING
         MODE


      []  READS  THE  REMAINDER  OF   COLLECTION  1  INTO  MAIN  MEMORY
         (INCLUDING A SEGMENT NAMED bootstrap2)


      []  bound_bootload_1 TRANSFERS TO bootstrap2



   []  bootstrap2 PERFORMS THE FOLLOWING:


      []  CREATES A STACK FRAME IN THE SEGMENT "inzr_stk0"


      []  CALL  THE APPROPRIATE PROCEDURES  TO PRELINK THE  SEGMENTS OF
         COLLECTION 1


      []  SETS  UP  THE  PL/I  ENVIRONMENT  AND  CALLS  THE  FIRST PL/I
         PROCEDURE "initializer"



Not To Be Reproduced             11-11                         MDD-003
                             _C_O_L_L_E_C_T_I_O_N__1




      []  initializer   (A   SUPERVISOR    SEGMENT),   ACTUALLY   CALLS
         real_initializer  TO  DO  THE  REAL  WORK.   ALL  THE REST OF
         INITIALIZATION TAKES PLACE VIA CALLS IN real_initializer

         []  FOR   DEBUGGING  PURPOSES,   THERE  IS   A  MECHANISM   IN
            real_initializer WHICH CAN BE USED TO STOP AT ANY OF THOSE
            CALLS BY SETTING A VALUE IN THE PROCESSOR SWITCHES



   []  THE  MAJOR INITIALIZATIONS PERFORMED  IN THE REST  OF COLLECTION
      ONE ARE:


      []  INITIALIZE  THE  SCU,  CLOCK,  AND  CPU  CONTROL  MECHANISMS,
         CHECKING THE SWITCHES AND THE ADDRESSABILITY OF MEMORY


      []  INITIALIZE  FAULT AND  INTERRUPT PROCESSING.   INITIALIZE THE
         CONSOLE AND SYSERR MECHANISMS


      []  INITIALIZE  PRIMITIVE   TRAFFIC  CONTROL  (WAIT   FOR  SINGLE
         EVENTS).  INITIALIZE THE SST


      []  INITIALIZE AND CHECK THE  DISK CONFIGURATION.  AT THIS POINT,
         IT BECOMES POSSIBLE TO TAKE PAGE FAULTS, AND ALL FURTHER DISK
         I/O IS DONE BY PAGING


      []  CHECK  THE  ROOT  VOLUMES  SPECIFIED  ON  THE  ROOT CARD, AND
         INITIALIZE  THE  HARDCORE  PARTITION  MECHANISM.   THIS  ALSO
         INCLUDES CREATING THE PARTITIONS AND VTOC IN A COLD BOOT


      []  MAKE SEGMENTS  PAGED -- AT  THIS POINT, ALL  PAGED SUPERVISOR
         SEGMENTS ARE COPIED INTO THE HARDCORE PARTITION, AND ACCESSED
         BY THE NORMAL PAGE FAULT MECHANISM.  COLLECTION ONE ENDS HERE












Not To Be Reproduced             11-12                         MDD-003
                             _C_O_L_L_E_C_T_I_O_N__2







ox  COLLECTION TWO - THE REST OF SUPERVISOR INITIALIZATION



   []  READ  IN  THE  REST  OF  THE  SUPERVISOR  SEGMENTS FROM TAPE AND
      INITIALIZE THE REST OF THE SUPERVISOR DATABASES



   []  WHEN COLLECTION TWO IS  FINISHED, THE INITIALIZATION ENVIRONMENT
      HAS _B_E_C_O_M_E Initializer PROCESS, AND IT  CALLS OUT TO RING ONE TO
      START UP THE ANSWERING SERVICE



   []  THE FOLLOWING MAJOR STAGES TAKE PLACE IN COLLECTION TWO:


      []  COLLECTION  TWO IS  READ FROM   TAPE (STILL  USING A  SPECIAL
         PROCEDURE, tape_reader, WHICH DOUBLE-BUFFERS)


      []  THE   AND  CONDITION   SIGNALLING  AND   HIGHER  LEVEL  FAULT
         MECHANISMS ARE INITIALIZED


      []  HIGH LEVEL FILE SYSTEM  MECHANISMS ARE INITIALIZED:  THE VTOC
         MANAGER, VOLUME DUMPER BIT  MAP, SCAVENGER, SEGMENT TRAILERS,
         LOGICAL VOLUME MANAGEMENT, DIRECTORY LOCKING


      []  TRAFFIC CONTROL  IS FURTHER INITIALIZED, AND  AN IDLE PROCESS
         IS CREATED FOR THE RUNNING CPU


      []  SYSERR LOGGING (TO THE SYSERR PARTITION) IS INITIALIZED.  ALL
         SYSERR MESSAGES GENERATED AFTER THIS POINT WILL GO IN THE LOG


      []  THE  FILE  SYSTEM  ON  THE  RPV  IS  "ACCEPTED", AND THE ROOT
         DIRECTORY INSPECTED (OR CREATED, IF THIS IS A COLD BOOT)

         []  AFTER THIS POINT, THE  CONTENTS OF THE HARDCORE PARTITIONS
            ARE FIXED,  AND ALL FURTHER RECORD  ALLOCATION AND FREEING
            IS DONE FROM THE PAGING REGIONS OF THE FILE SYSTEM VOLUMES



Not To Be Reproduced             11-13                         MDD-003
                             _C_O_L_L_E_C_T_I_O_N__2




      []  DECIDUOUS SEGMENTS ARE SPLICED INTO THE HIERARCHY


      []  STACK SHARING IS INITIALIZED


      []  THE  REST OF THE  SEGMENTS, COMPRISING COLLECTION  THREE, ARE
         READ, DIRECTLY INTO THEIR PLACES IN THE HIERARCHY (>sl1)


      []  THE   USER  VISIBLE   SUPERVISOR  I/O   MECHANISM  (ioi)   IS
         INITIALIZED, AND  THE SPECIAL SUPERVISOR TAPE  READER IS SHUT
         DOWN


      []  TRAFFIC  CONTROL  IS  FULLY   INITIALIZED  BY  CREATING  IDLE
         PROCESSES FOR THE OTHER CPUS AND STARTING THEM


      []  ALL INITIALIZATION  SEGMENTS ARE NOW DISCARDED,  AND WHAT HAS
         BECOME THE Initializer.SysDaemon  PROCESS CALLS init_proc AND
         BEGINS EXECUTION IN RING ONE


      []  AT THIS POINT, SUPERVISOR INITIALIZATION IS FINISHED


























Not To Be Reproduced             11-14                         MDD-003
                             _C_O_L_L_E_C_T_I_O_N__3







ox  COLLECTION THREE IS NOT PROPERLY A  "COLLECTION" AT ALL, BUT JUST A
   TERM USED  TO DESCRIBE THE  BEGINNING OF Initializer  AND ANSWERING
   SERVICE INITIALIZATION



   []  MANY THINGS  HAPPEN BETWEEN FIRST LEAVING RING  ZERO AND LOGGING
      IN  THE FIRST  USER.  MOST  HAVE  NOTHING  TO DO  WITH THE  FILE
      SYSTEM.  THE FEW MOST INTERESTING ONES ARE:


      []  VOLUME  ACCEPTANCE - THE  NON-ROOT VOLUMES ARE  INSPECTED AND
         ACCEPTED  INTO  THE  HIERARCHY.   THEIR  CONFIGURATION CAN BE
         CHANGED BY USE OF OPERATOR COMMANDS


      []  delete_old_pdds  -   THE  PROCESS  DIRECTORY   AND  DECIDUOUS
         SEGMENTS LEFT OVER FROM THE PREVIOUS BOOTLOAD(S) ARE DELETED

         []  THIS MUST BE DONE AFTER  THE HIERARCHY IS FULLY AVAILABLE,
            SINCE NON-RLV VOLUMES MAY HAVE BEEN USED FOR PROCESS DIRS


      []  VOLUME SCAVENGER AND QUOTA  SALVAGER PROCESSES MAY BE STARTED
         AT THIS  TIME, IF THERE ARE INCONSISTENCIES  IN THE HIERARCHY
         CAUSED BY PREVIOUS CRASHES






















Not To Be Reproduced             11-15                         MDD-003
                            _N_O_R_M_A_L__S_H_U_T_D_O_W_N







ox  WHEN THE SYSTEM IS SHUT DOWN, IT MUST BE DONE IN AN ORDERLY MANNER



   []  THIS  IS ACCOMPLISHED,  MORE OR  LESS, BY  RUNNING THE  STEPS IN
      INITIALIZATION BACKWARDS:



      []  CRAWLOUTS  ARE DISABLED.  ONCE  SHUTDOWN BEGINS, IT  CAN'T BE
         STOPPED


      []  THE  Initializer SWITCHES  TO  RUNNING  ON THE  BOOTLOAD CPU,
         TRAFFIC CONTROL  IS DISABLED, AND THE OTHER  CPUS ARE STOPPED
         AND DELETED.

         []  LOCKING IS DISABLED AT THIS POINT, SINCE THERE IS NOW ONLY
            ONE PROCESS AND ONE PROCESSOR RUNNING


      []  ALL THE  DISK DRIVES ARE  EXERCISED, TO DETERMINE  IF ANY ARE
         BROKEN AND CANNOT BE SHUT DOWN


      []  ANY VOLUME SCAVENGES IN PROGRESS ARE STOPPED AND ABANDONED



   []  AT THIS  POINT, NORMAL SHUTDOWN IS  READY TO SHUT DOWN  THE FILE
      SYSTEM,  AND  ALL  THE  NORMAL  MECHANISMS  ARE  ASSUMED  TO  BE
      OPERATING.



   []  THE Initializer SWITCHES TO inzr_stk0 (WHERE IT ALL STARTED) AND
      CALLS shutdown_file_system











Not To Be Reproduced             11-16                         MDD-003
                         _F_I_L_E__S_Y_S_T_E_M__S_H_U_T_D_O_W_N







ox  FILE SYSTEM SHUTDOWN CONSISTS OF FORCING  ALL DATA OUT OF MEMORY TO
   ITS HOME ON DISK:



   []  ALL PAGES ARE WRITTEN



   []  SEGMENTS ARE DEACTIVATED, AND THEIR VTOCES UPDATED



   []  VOLUMES ARE DEMOUNTED, AND THEIR LABELS UPDATED



   []  FILE SYSTEM SHUTDOWN TAKES THE FOLLOWING STEPS:


      []  ALL MODFIED PAGES ARE WRITTEN  TO DISK.  THIS IS DONE SEVERAL
         TIMES DURING THE COURSE OF SHUTDOWN


      []  STACK_0 SEGMENTS ARE DEACTIVATED AND DISCARDED


      []  THE deactivate_for_demount PROCEDURE  IS CALLED TO DEACTIVATE
         ALL OTHER SEGMENTS AND UPDATE THEIR VTOCES

         []  THIS IS DONE BY WALKING  THE AST HIERARCHY FROM THE BOTTOM
            UP, DEACTIVATING A SEGMENT, ITS SIBLINGS, AND ITS PARENTS,
            ETC.

         []  THIS IS  DONE TO ENSURE CONSISTENT QUOTA  VALUES IN VTOCES
            AFTER  SHUTDOWN, BECAUSE  QUOTA MUST  BE UPDATED  FROM THE
            BOTTOM UP


      []  ALL VOLUMES ARE DEMOUNTED, THEIR VOUME AND VTOC MAPS UPDATED,
         AND LABELS CHANGED TO INDICATE SUCCESSFUL DEMOUNT

         []  THE ORDER IS NOT IMPORTANT, EXCEPT THAT THE RPV GOES LAST





Not To Be Reproduced             11-17                         MDD-003
                         _F_I_L_E__S_Y_S_T_E_M__S_H_U_T_D_O_W_N




      []  MEMORY IS FLUSHED AGAIN


      []  IF ANY  DRIVES WERE INOPERATIVE,  THIS IS ANNOUNCED,  AND THE
         RPV IS _N_O_T DEMOUNTED

         []  THIS MAKES IT  POSSIBLE TO FIX THE BROKEN DRIVE  AND DO AN
            EMERGENCY SHUTDOWN TO FINISH SHUTDOWN


      []  IF THERE WERE NO PROBLEMS, THE RPV IS DEMOUNTED AND MEMORY IS
         FLUSHED ONE  LAST TIME.  ALL  RELEVANT INFORMATION IS  NOT ON
         DISK



   []  AT  THE END OF  FILE SYSTEM SHUTDOWN,  ALL CONSOLE MESSAGES  ARE
      ALLOWED TO COMPLETE, AND THE SYSTEM RETURNS TO BOS

































Not To Be Reproduced             11-18                         MDD-003
                          _E_M_E_R_G_E_N_C_Y__S_H_U_T_D_O_W_N







ox  EMERGENCY SHUTDOWN IS DONE AFTER A CRASH OR SHUTDOWN FAILURE



   []  LIKE  NORMAL SHUTDOWN, THE  MISSION OF ESD  IS TO SHUT  DOWN THE
      FILE  SYSTEM, AND IT  DOES THIS BY  MAKING THE SYSTEM  WORK WELL
      ENOUGH TO CALL shutdown_file_system



   []  UNLIKE NORMAL SHUTDOWN, IT  CANNOT ASSUME THAT NORMAL MECHANISMS
      ARE OPERATIONAL, AND MUST MAKE THEM WORK FIRST



   []  AFTER  THE SUPERVISOR  IS MADE  OPERATIONAL, EMERGENCY  SHUTDOWN
      TRANSFERS TO THE NORMAL FILE SYSTEM SHUTDOWN



   []  THE FOLLOWING STEPS ARE TAKEN TO REANIMATE THE SUPERVISOR:


      []  EMERGENCY SHUTDOWN STARTS OUT RUNNING IN ABSOLUTE MODE


      []  IT ENTERS APPENDING MODE, FINDS THE PRDS FOR THE PROCESSOR IT
         IS RUNNING ON, SETS IT UP AS ITS STACK


      []  ALL CRITICAL  LOCKS (PAGE TABLE, APT)  ARE FORCIBLY UNLOCKED.
         TRAFFIC  CONTROL IS DISABLED.   THE PROCESSOR RUNNING  IS NOW
         THE ONLY ONE, AND LOCKS ARE UNNECESSARY


      []  THE CONSOLE AND SYSERR MECHANISMS ARE RESET


      []  SUPERVISOR  I/O  SUPPORT,  IN  PARTICULAR  THE  DISK  DIM, IS
         REINITIALIZED


      []  THE STATE OF PAGE TABLES AND THE CORE MAP IS MADE CONSISTENT

         []  THIS  IS  DONE  BY  pc_recover_sst  AND  CAN  BE DONE ONLY



Not To Be Reproduced             11-19                         MDD-003
                          _E_M_E_R_G_E_N_C_Y__S_H_U_T_D_O_W_N


            BECAUSE ALL  OF PAGE CONTROL IS CODED  TO FOLLOW PROTOCOLS
            ABOUT THE ORDER IN WHICH TO UPDATE RELATED DATA

         []  BECAUSE  OF THIS,  IF PAGE  CONTROL IS  INTERRUPTED AT ANY
            POINT, IT IS  POSSIBLE TO DETERMINE WHAT IT  WAS DOING AND
            COMPLETE THE OPERATION

         []  THIS  STEP IS CRUCIAL  TO BEING ABLE  TO TAKE PAGE  FAULTS
            LATER IN SHUTDOWN


      []  BECAUSE THERE IS NO GUARANTEE  THAT THE PROCESS WHICH CRASHED
         THE SYSTEM (AND THUS, THE ADDRESS SPACE WHERE ESD IS RUNNING)
         IS NOT DEFECTIVE, ESD REBUILDS ITS PDS FROM THE template_pds


      []  ESD SWITCHES TO THE inzr_stk0 AND CALLS wired_shutdown

         []  ALL THE ABOVE STEPS WERE DONE IN ALM.  wired_shutdown IS A
            PL/I PROCEDURE


      []  THE VTOC BUFFER IS CHECKED TO SEE WHETHER ANY OPERATIONS WERE
         IN PROGRESS.  IF SO, THOSE VOLUMES ARE MARKED (IN THE PVT) TO
         INDICATE THAT THEY MAY HAVE INCONSISTENCIES


      []  MEMORY IS FLUSHED


      []  THE VTOC MANAGER IS REINITIALIZED


      []  AT THIS  POINT, THE SUPERVISOR SHOULD BE  WORKING WELL ENOUGH
         TO RUN shutdown_file_system.  FROM NOW ON, EMERGENCY SHUTDOWN
         FOLLOWS THE SAME PATH AS NORMAL SHUTDOWN



   []  IF EMERGENCY  SHUTDOWN FAILS, FOR  TAKING A FAULT  OR SOME OTHER
      REASON, IT CAN BE RETRIED INDEFINITELY



   []  SHUTDOWN IS MARKED COMPLETE IN  VOLUME LABELS, AND THESE ARE NOT
      UPDATED  UNTIL  THE  VERY  END.   THUS,  NO  HARM  CAN COME FROM
      RETRYING ARBITRARILY






Not To Be Reproduced             11-20                         MDD-003
                          _E_M_E_R_G_E_N_C_Y__S_H_U_T_D_O_W_N




      []  ESD  TRIES TO  CORRECT ALL   THE PROBLEMS  THAT MIGHT  ARISE.
         BECAUSE  OF THE  COMPLEXITY OF  THE SUPERVISOR,  IT DOES  NOT
         ALWAYS GET ALL OF THEM




                                        TOPIC XII

                                 File System Salvagers

                                                                         Page

                           Overview of Salvagers . . . . . . . . . . . . 12-1
                           Directory Salvager. . . . . . . . . . . . . . 12-4
                           Quota Salvaging . . . . . . . . . . . . . . . 12-7
                           Physical Volume Scavenger . . . . . . . . . . 12-9
                           Physical Volume Salvager. . . . . . . . . . . 12-11
                           sweep_pv. . . . . . . . . . . . . . . . . . . 12-12

































                                 12-i                          MDD-003
                          _E_M_E_R_G_E_N_C_Y__S_H_U_T_D_O_W_N







ox  FUNCTION



   []  ENSURE THE CONSISTENCY OF THE  FILE SYSTEM DATABASES AND PERFORM
      PERIODIC PREVENTIVE MAINTENANCE OPERATIONS



   []  THERE ARE SEVERAL SALVAGERS, EACH WITH A DIFFERENT FUNCTION



   []  BECAUSE OF THE COMPLICATED INTERACTIONS  THEY HAVE WITH THE REST
      OF  THE  FILE  SYSTEM,  THE   SALVAGERS  ARE  PERHAPS  THE  MOST
      COMPLICATED SINGLE PROGRAMS IN THE SUPERVISOR



   []  SOME SALVAGING IS DONE AUTOMATICALLY, WHEN THE SYSTEM DETECTS AN
      INCONSISTENCY.    OTHER   SALVAGE   OPERATIONS   ARE  EXPLICITLY
      REQUESTED, BY PRIVILEGED USERS.



   []  EXCEPT  FOR SUPERVISOR  BUGS, THE  ONLY TIME  DAMAGE OCCURS THAT
      REQUIRES  SALVAGING TO  FIX IS   AFTER A  CRASH WHERE  EMERGENCY
      SHUTDOWN FAILS





ox  THE SALVAGERS:



   []  DIRECTORY SALVAGER


      []  CORRECTS INCONSISTENCIES IN  DIRECTORY SEGMENTS BY REBUILDING
         THEM






Not To Be Reproduced             12-0                          MDD-003
                         _O_V_E_R_V_I_E_W__O_F__S_A_L_V_A_G_E_R_S




      []  THIS  IS  THE  ONLY  SALVAGER  INVOKED  AUTOMATICALLY IN USER
         PROCESSES:  ANY  ATTEMPT TO LEAVE RING ZERO  WITH A DIRECTORY
         LOCKED FOR WRITING WILL CAUSE IT TO BE SALVAGED


      []  DIRECTORY  SALVAGING  ALSO  RECLAIMS   WASTED  SPACE  IN  THE
         DIRECTORY, AND IS RUN PERIODICALLY TO COMPACT DIRECTORIES



   []  QUOTA SALVAGER


      []  CORRECTS INCONSISTENCIES IN THE QUOTA SYSTEM



   []  PHYSICAL VOLUME SCAVENGER


      []  RECONSTRUCTS  RECORD  AND  VTOCE  STOCK  INFORMATION FROM THE
         VTOCES ON A VOLUME, THEREBY  RECLAIMING ANY RECORDS OR VTOCES
         WHICH MIGHT HAVE BEEN LOST


      []  RUNS ENTIRELY ONLINE WHILE THE SYSTEM IS UP FOR USERS (NEW IN
         MR10.1)


      []  THIS  TYPE  OF  DAMAGE  IS  USUALLY  BENIGN,  SO  RUNNING THE
         SCAVENGER CAN BE DELAYED.



   []  PHYSICAL VOLUME SALVAGER


      []  RECONSTRUCTS RECORD AND VTOCE STOCK INFORMATION


      []  RUNS ONLY  DURING INITIALIZATION, AND THEREFORE  DELAYS CRASH
         RECOVERY


      []  NOW USED ONLY  FOR RARE CASES WHERE THERE IS  NOT ENOUGH FREE
         SPACE LEFT FOR THE SCAVENGER TO RUN.  IN THESE RARE CASES, IT
         IS INVOKED AUTOMATICALLY BY SYSTEM INITIALIZATION.




Not To Be Reproduced             12-1                          MDD-003
                         _O_V_E_R_V_I_E_W__O_F__S_A_L_V_A_G_E_R_S





   []  SWEEP_PV


      []  DELETES  UNUSED VTOC  ENTRIES WHICH  HAVE NO  DIRECTORY ENTRY
         POINTING TO THEM


      []  RUNS ENTIRELY IN USER RING,  EXCEPT FOR ACTUALLY READING VTOC
         ENTRIES AND DIRECTORY ENTRIES


      []  PURELY A HOUSEKEEPING FUNCTION, AND RUN ONLY RARELY.






































Not To Be Reproduced             12-2                          MDD-003
                          _D_I_R_E_C_T_O_R_Y__S_A_L_V_A_G_E_R







ox  THE  DIRECTORY SALVAGER  IS USED   FOR TWO  MAIN PURPOSES:   DAMAGE
   CORRECTION AND STORAGE RECLAIMATION





ox  DIRECTORY DAMAGE



   []  DAMAGE CAN OCCUR IN A DIRECTORY FOR SEVERAL REASONS:


      []  DISK I/O ERROR WRITING BAD DATA TO A DIRECTORY SEGMENT


      []  SUPERVISOR BUG


      []  CRASH WITHOUT  ESD, WHERE THE DIRECTORY WAS  UPDATED, BUT NOT
         FULLY WRITTEN TO DISK



   []  ACTUAL DAMAGE TO DIRECTORIES IS COMPARATIVELY RARE, BUT:


      []  IF A FAULT OCCURS FOR ANY REASON WHILE A USER HAS A DIRECTORY
         LOCKED, THE  SYSTEM ASSUMES THE DIRECTORY COULD  BE AT FAULT,
         AND SALVAGES


      []  THIS  SORT  OF  SALVAGING  IS  DONE  BY  THE  online_salvager
         PROGRAM,  WHICH IS  INVOKED DYNAMICALLY  BY verify_lock  IF A
         PROCESS  ATTEMPTS TO  LEAVE RING  ZERO ("CRAWL  OUT") WITH  A
         DIRECTORY LOCKED


      []  ORDINARILY,  THERE IS  NOTHING WRONG,  AND THE  SALVAGER JUST
         CHECKS OVER THE DIRECTORY


      []  IF  THE DIRECTORY  IS DAMAGED,  IT IS  "REPAIRED" AS  WELL AS
         POSSIBLE



Not To Be Reproduced             12-3                          MDD-003
                          _D_I_R_E_C_T_O_R_Y__S_A_L_V_A_G_E_R



         []  UNFORTUNATELY, THE MOST COMMON FORMS OF DAMAGE DESTROY THE
            DIRECTORY HEADER  SO THAT NO  REPAIR IS POSSIBLE,  AND THE
            DIRECTORY MUST BE REINITIALIZED AS EMPTY





ox  STORAGE RECLAIMATION



   []  DIRECTORY  SPACE  CANNOT  ALWAYS  BE  EFFICIENTLY  RE-USED,  AND
      UNUSABLE SPACE ACCUMULATES AS ENTRIES ARE CREATED AND DELETED


      []  IT  IS NOT  PRACTICAL FOR  THE SYSTEM  TO COMPACT DIRECTORIES
         WHEN  THIS HAPPENS,  SINCE  THIS  COULD CAUSE  MAJOR RESOURCE
         CONSUMPTION, AND CAUSE EXPENSE FOR RANDOM PROCESSES


      []  INSTEAD,  THE  DIRECTORY  SALVAGER  IS  PERIODICALLY  RUN  IN
         Salvager.SysDaemon PROCESSES  TO REBUILD ALL  THE DIRECTORIES
         IN THE HIERARCHY, COLLECTING ALL FREE SPACE

         []  THIS IS DONE BY CALLS TO hphcs_$salv_directory


      []  IF THE  Salvager PROCESSES DETECT DAMAGE, IT  IS CORRECTED AS
         WELL


      []  DEMAND DIRECTORY SALVAGING IS USUALLY ALSO INSTRUCTED TO LOOK
         FOR AND CORRECT "CONNECTION FAILURES"

         []  A CONNECTION FAILURE IS A DIRECTORY BRANCH WHICH INDICATES
            A  FREE VTOCE, OR  A VTOCE WITH  A DIFFERENT UID  THAN THE
            BRANCH.   THIS  MEANS  THAT  THE  DIRECTORY  AND  VTOC ARE
            INCONSISTENT

         []  CONNECTION   FAILURES  ARE   USUALLY  DELETED   BY  DEMAND
            SALVAGING (THIS IS AN OPTION)

         []  ONLINE  SALVAGING  DOES  NOT  DELETE  CONNECTION  FAILURES
            BECAUSE  IT  IS  NOT  ALWAYS  POSSIBLE  TO  IDENTIFY  THEM
            PROPERLY DURING AN ONLINE SALVAGE






Not To Be Reproduced             12-4                          MDD-003
                          _D_I_R_E_C_T_O_R_Y__S_A_L_V_A_G_E_R





   []  DEMAND   DIRECTORY  SALVAGING  CAN   ALSO  BE  USED   BY  SYSTEM
      MAINTENANCE PERSONNEL WHEN THERE APPEAR TO BE DIRECTORY PROBLEMS
















































Not To Be Reproduced             12-5                          MDD-003
                            _Q_U_O_T_A__S_A_L_V_A_G_I_N_G







ox  QUOTA  SALVAGING  CORRECTS  INCONSISTENCIES  IN  THE  HIERARCHY  OF
   QUOTA-USED VALUES



   []  THESE INCONSISTENCIES ARISE AFTER A CRASH WHERE ESD FAILS:


      []  A SEGMENT (>udd>a>b) IS DELETED, FREEING PAGES, AND THE ASTES
         OF  ITS PARENT  (>udd>a) AND  ITS PARENT'S  PARENT (>udd) ARE
         UPDATED TO REFLECT THIS DECREASE IN QUOTA USED


      []  THE  VTOCE  FOR  >udd>a  IS  WRITTEN  TO  DISK  DURING NORMAL
         OPERATION.  THE VTOCE FOR >udd IS NOT


      []  THE SYSTEM CRASHES, AND NO ESD IS PERFORMED


      []  WHEN  THE  SYSTEM  COMES  BACK  UP,  THE  VTOCE  FOR  >udd IS
         INACCURATE:  IT CLAIMS THAT RECORDS ARE STILL IN USE, WHEN IN
         FACT THEY WERE FREED


      []  IF A NEW SEGMENT (>udd>a>c) IS NOW CREATED, IT MAY SPURIOUSLY
         CAUSE A RECORD QUOTA OVERFLOW ON >udd.



   []  QUOTA SALVAGING  IS PERFORMED ENTIRELY ONLINE,  WHILE THE SYSTEM
      IS RUNNING, USUALLY IN A Salvager.SysDaemon PROCESS


      []  THE FUNDAMENTAL  PRINCIPLE BEHIND THE QUOTA  SALVAGER IS THAT
         QUOTA INCONSISTENCIES  CANNOT ARISE DURING  NORMAL OPERATION:
         IF QUOTA IS CONSISTENT, OR INCONSISTENT BY _n RECORDS, IT WILL
         STAY THAT WAY UNLESS EXPLICITLY CORRECTED


      []  THE  QUOTA  SALVAGER  PROCESS  WALKS  THE  HIERARCHY FROM THE
         BOTTOM UP, USING do_subtree,  CORRECTING INCONSISTENCIES IN A
         DIRECTORY AND ALL ITS SIBLINGS,  THEN IN THEIR PARENT, AND SO
         ON UP




Not To Be Reproduced             12-6                          MDD-003
                            _Q_U_O_T_A__S_A_L_V_A_G_I_N_G




      []  AN hphcs_ ENTRY  IS CALLED TO CORRECT EACH  DIRECTORY, ON THE
         ASSUMPTION THAT ALL ITS CHILDREN ARE CONSISTENT

         []  THE  ACTUAL  CORRECTION   MECHANISM  INVOLVES  COMPLICATED
            MANIPULATION  OF  VARIOUS  LOCKS.   REFER  TO  THE Multics
            Storage System PLM (AN61) FOR A DESCRIPTION













































Not To Be Reproduced             12-7                          MDD-003
                       _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__S_C_A_V_E_N_G_E_R







ox  THIS IS ALSO PRIMARILY USEFUL AFTER A CRASH WITHOUT ESD



   []  IT  REBUILDS  THE  VOLUME  MAP  AND  VTOC  MAP  FOR  A VOLUME BY
      EXAMINING ALL THE VTOCES AND ASTES FOR SEGMENTS ON THE VOLUME



   []  IT RUNS WHILE THE VOLUME IS IN USE BY USERS, AND NO INTERRUPTION
      OF SERVICE OCCURS



   []  DAMAGE  TO THE  MAPS OCCURS  AFTER A  CRASH WHEN  THE STOCKS, IN
      MEMORY, DO NOT GET PROPERLY UPDATED TO THE MAPS ON DISK


      []  BECAUSE  OF THE  STOCK  MANAGEMENT  POLICIES, THIS  IS ALWAYS
         BENIGN:  RECORDS MAY BE MARKED IN-USE THAT ARE NOT, BUT IT IS
         NOT  POSSIBLE  FOR  THE  MAP  TO  INDICATE  A  RECORD AS FREE
         (REUSABLE) WHEN IT BELONGS TO A SEGMENT ON THE VOLUME



   []  FOR  RECONSTRUCTING THE  VOLUME MAP,  THE SCAVENGER  WORKS BY AN
      INTERACTION WITH THE PAGE CONTROL RECORD ALLOCATION MECHANISM


      []  IT BUILDS A MAP, IN scavenger_data, THAT SAYS WHAT VTOCE OWNS
         EACH   RECORD  ON   THE   VOLUME,   AND  THEN   RESOLVES  THE
         INCONSISTENCIES BETWEEN THAT AND THE MAP ON DISK

         []  THE DATABASE  IS WIRED FOR  THE DURATION OF  THE SCAVENGE,
            AND CAN BE QUITE LARGE (64K FOR AN MSU0501)

         []  WHILE  A  SCAVENGER  IS  RUNNING,  PAGE  CONTROL KEEPS THE
            DATABASE UP TO DATE AS IT ALLOCATES AND FREES RECORDS



   []  FOR  VTOCES, THE PROBLEM  IS MUCH SIMPLER:   THE VTOC IS  SIMPLY
      SCANNED, AND ALL IN-USE VTOCES ARE RECORDED





Not To Be Reproduced             12-8                          MDD-003
                       _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__S_C_A_V_E_N_G_E_R




      []  vtoc_man  ALSO KEEPS  THE TABLE  UP TO  DATE AS  IT FREES AND
         ALLOCATES VTOCES ON THE VOLUME


      []  A VTOCE  THAT APPEARS IN-USE  MAY NOT NECESSARILY  BE PART OF
         THE HIERARCHY -- sweep_pv IS RUN TO TAKE CARE OF THAT



   []  AFTER THE NEW MAPS ARE CONSTRUCTED, THEY ARE WRITTEN TO DISK


      []  THE SCAVENGE RUNS ENTIRELY IN RING ZERO, BUT IT CAN BE SAFELY
         INTERRUPTED AND RESTARTED FROM THE BEGINNING AT ANY TIME

         []  THE SCAVENGER ACCESSES THE VTOC USING vtoc_man



   []  THE SCAVENGER  TAKES ABOUT FIFTEEN  MINUTES PER VOLUME,  BUT THE
      SYSTEM IS UP WHILE IT DOES SO






























Not To Be Reproduced             12-9                          MDD-003
                       _P_H_Y_S_I_C_A_L__V_O_L_U_M_E__S_A_L_V_A_G_E_R







ox  THIS DOES THE SAME JOB AS THE  SCAVENGER, BUT CAN RUN ONLY WHEN THE
   VOLUME IS UNAVAILABLE TO USERS



   []  BECAUSE IT HAS THE VOLUME ALL TO ITSELF, IT IS MUCH SIMPLER:


      []  IT SCANS THE VTOC, BUILDING THE SAME SORT OF DATABASES AS THE
         SCAVENGER


      []  WHEN  FINISHED, IT  RESOLVES INCONSISTENCIES,  AND WRITES THE
         MAPS BACK TO DISK

         []  THE    VOLUME   SALVAGER    ACCESSES   THE    VTOC   USING
            salv_abs_seg_NN



   []  THE VOLUME SALVAGER TAKES ABOUT A  MINUTE AND A HALF PER VOLUME,
      BUT ALL VOLUMES MUST BE SALVAGED BEFORE THE SYSTEM CAN RUN AGAIN


      []  AFTER A CRASH WITHOUT ESD, _A_L_L VOLUMES MOUNTED AT THE TIME OF
         THE CRASH ARE PRESUMED TO BE INCONSISTENT



   []  THE VOLUME  SALVAGER IS LARGELY OBSOLETE TODAY.   IT IS RETAINED
      TO DEAL WITH  RARE SITUATIONS WHICH MAKE IT  IMPOSSIBLE TO BRING
      THE  SYSTEM UP  FAR ENOUGH  TO RUN  THE SCAVENGER  WITHOUT FIRST
      REBUILDING THE FILE MAP TO FREE UNUSED SPACE















Not To Be Reproduced             12-10                         MDD-003
                               _S_W_E_E_P__P_V







ox  sweep_pv ELIMINATES ORPHAN VTOCES



   []  AN  ORPHAN  VTOCE  IS  ONE  WHICH  APPEARS  TO  DESCRIBE A VALID
      SEGMENT, BUT DOES NOT APPEAR IN ANY DIRECTORIES


      []  ORPHANS  ARE USUALLY CREATED  BY CRASHES OR  DIRECTORY DAMAGE
         WHERE THE DIRECTORY COULD NOT BE REPAIRED


      []  ORPHANS  ARE   ALSO  SOMETIMES  CALLED   "REVERSE  CONNECTION
         FAILURES"



   []  sweep_pv  WORKS  BY  INSPECTING  EVERY  VTOCE  ON  A VOLUME, AND
      ATTEMPTING TO FIND ITS PARENT


      []  THERE  IS A  "UID PATHNAME"  IN PART  3 OF  ALL VTOCES  WHICH
         CONTAINS THE UIDS OF ALL ITS PARENT DIRECTORIES


      []  BY STARTING  FROM THE ROOT,  AND SEARCHING EACH  DIRECTORY IN
         THE PATH FOR THE UID OF THE NEXT ONE, THE VTOCE CAN BE FOUND

         []  IF  IT  CAN'T  BE  FOUND,  IT  IS  AN ORPHAN, AND SWEEP_PV
            DELETES IT



   []  IT IS POSSIBLE TO "ADOPT" ORPHANS  INTO A DIFFERENT PLACE IN THE
      HIERARCHY IF  IT IS IMPORTANT  TO RECOVER THEIR  CONTENTS, USING
      THE adopt_seg TOOL



   []  THE UID PATHNAME OF A VTOCE CAN BE INTERPRETED MANUALLY BY USING
      THE vtoc_pathname TOOL




                                     TOPIC XIII



                                 13-i                          MDD-003
                               _S_W_E_E_P__P_V


                          The Initializer.SysDaemon Process

                                                                      Page

                        Initializer Overview. . . . . . . . . . . . . 13-1
                        Services of Initializer . . . . . . . . . . . 13-3
















































                                 13-i                          MDD-003
                         _I_N_I_T_I_A_L_I_Z_E_R__O_V_E_R_V_I_E_W







ox  FUNCTION



   []  THE SYSTEM'S INITIALIZATION,  ADMINISTRATIVE AND CONTROL PROCESS
      (Initializer.SysDaemon.z), RESPONSIBLE FOR:


      []  INITIALIZING  THE  OPERATING  SYSTEM  AT  BOOTLOAD, FOLLOWING
         SUCCESSFUL INITIALIZATION OF THE SUPERVISOR


      []  ANSWERING SERVICE (login and logout)


      []  PROCESS CREATION AND DESTRUCTION


      []  MESSAGE COORDINATOR (DAEMON COORDINATION)


      []  SYSTEM ADMINISTRATION FUNCTIONS


      []  SYSTEM ACCOUNTING FUNCTIONS





ox  MAJOR DATA BASES, ALL KEPT IN >sc1



   []  ANSWER_TABLE



   []  ABSENTEE_USER_TABLE



   []  DAEMON_USER_TABLE





Not To Be Reproduced             13-1                          MDD-003
                         _I_N_I_T_I_A_L_I_Z_E_R__O_V_E_R_V_I_E_W





   []  MASTER GROUP TABLE (MGT)



   []  CHANNEL DEFINITION TABLE (CDT)



   []  SYSTEM ADMINISTRATION TABLE (SAT)



   []  PERSON NAME TABLE (PNT)



   []  PROJECT DEFINITION TABLES (PDT'S)

































Not To Be Reproduced             13-2                          MDD-003
                        _S_E_R_V_I_C_E_S__O_F__I_N_I_T_I_A_L_I_Z_E_R







ox  THE   Initializer.SysDaemon  PROCESS   PERFORMS  VARIOUS   SERVICES
   NECESSARY FOR  THE SUPERVISOR.  MANY  OF THEM ARE  PERFORMED BY THE
   INITIALIZER  PRIMARILY  FOR  CONVENIENCE,  SINCE  IT  IS  EASIER TO
   CONTROL  RESOURCES IN  A CONTROLLED  ENVIRONMENT SUCH  AS A  SINGLE
   PROCESS  THAN  TO  CREATE  A  MECHANISM  WHICH  CAN  BE  RUN IN ALL
   PROCESSES



   []  SYSTEM INITIALIZATION AND SHUTDOWN


      []  THE Initializer PROCESS IS  CREATED FROM THE ENVIRONMENT THAT
         INITIALIZES THE SUPERVISOR


      []  WHEN THE SYSTEM IS SHUT DOWN, THE Initializer COORDINATES THE
         ORDERLY    CESSATION   OF    SYSTEM   ACTIVITY    AND   CALLS
         hphcs_$shutdown TO SHUT DOWN THE SUPERVISOR



   []  LOGICAL VOLUME MANAGEMENT


      []  THE  Initializer  PROCESS  HANDLES  ALL  REQUESTS  FROM  USER
         PROCESSES TO MOUNT AND UNMOUNT PRIVATE LOGICAL VOLUMES


      []  IT ALSO  MAKES THE NECESSARY  CHECKS TO ACCEPT  A VOLUME INTO
         THE HIERARCHY OR REMOVE IT FOR DEMOUNTING



   []  RESOURCE CONTROL


      []  THE Initializer DOES ALL  THE CONTROL, ASSIGNMENT, AND ACCESS
         CHECKING OF RESOURCES (SUCH AS I/O DEVICES) CONTROLLED BY RCP



   []  PROCESS CREATION AND DESTRUCTION





Not To Be Reproduced             13-3                          MDD-003
                        _S_E_R_V_I_C_E_S__O_F__I_N_I_T_I_A_L_I_Z_E_R




      []  THE Initializer CREATES AND DESTROYS ALL PROCESSES, SCHEDULES
         ABSENTEE  PROCESSES, AND  HANDLES "CONSOLE"  I/O FROM  DAEMON
         PROCESSES


      []  AN  IMPORTANT SERVICE  OF PROCESS  MANAGEMENT IS  PROCESS DIR
         VOLUME MANAGEMENT, IN WHICH THE Initializer PICKS THE LOGICAL
         VOLUMES USED FOR PROCESS DIRECTORIES


      []  THE Initializer ALSO HANDLES  ALL PROCESS ACCOUNTING AND LOAD
         CONTROL



   []  COMMUNICATIONS


      []  THE  Initializer  MANAGES  LOADING  /  DUMPING  OF  FNPs  AND
         SOFTWARE COMMUNICATIONS MULTIPLEXERS


      []  IT  ALSO HANDLES  ALLOCATION OF  COMMUNICATION CHANNELS, BOTH
         FOR   PROCESSES  LOGGING   IN  AND   REQUESTS  MADE   THROUGH
         dial_manager_



   []  DYNAMIC RECONFIGURATION


      []  THE  Initializer RUNS  THE DYNAMIC  RECONFIGURATION SOFTWARE,
         AND  UPDATES THE  SYSTEM LOAD  LIMITS WHEN  THE CONFIGURATION
         CHANGES


      []  ACTUALLY,  ANY  PROCESS  WITH   hphcs_  ACCESS  CAN  USE  THE
         RECONFIGURATION COMMANDS,  BUT ONLY THE Initializer  CAN KEEP
         ALL THE ACCOUNTING DATABASES UP TO DATE




                                        TOPIC XIV

                                   Metering and Tuning

                                                                         Page




                                 14-i                          MDD-003
                        _S_E_R_V_I_C_E_S__O_F__I_N_I_T_I_A_L_I_Z_E_R


                           Meter and Tuning Overview . . . . . . . . . . 14-1
                           Analyzing Performance Problems. . . . . . . . 14-3
                           Detailed Problem Analysis . . . . . . . . . . 14-6
                           Output From Metering Commands . . . . . . . . 14-8
                               total_time_meters . . . . . . . . . . . . 14-8
                               interrupt_meters. . . . . . . . . . . . . 14-9
                               file_system_meters. . . . . . . . . . . . 14-10
                               file_system_meters. . . . . . . . . . . . 14-12
                               device_meters . . . . . . . . . . . . . . 14-14
                               disk_meters . . . . . . . . . . . . . . . 14-15
                               disk_queue. . . . . . . . . . . . . . . . 14-16
                               print_configuration_deck. . . . . . . . . 14-17
                               list_vols . . . . . . . . . . . . . . . . 14-19
                               traffic_control_queue . . . . . . . . . . 14-21
                               traffic_control_meters. . . . . . . . . . 14-23
                               print_tuning_parameters . . . . . . . . . 14-25
                               work_class_meters . . . . . . . . . . . . 14-26
                               respons_meters. . . . . . . . . . . . . . 14-27
                               system_performance_graph. . . . . . . . . 14-29
                               meter_gate. . . . . . . . . . . . . . . . 14-31


































                                 14-i                          MDD-003





























                                   .

                       _M_E_T_E_R__A_N_D__T_U_N_I_N_G__O_V_E_R_V_I_E_W







ox  WHILE NOT A  SUBSYSTEM ITSELF, METERING AND TUNING IS  A POLICY AND
   CAPABILITY COMMON TO ALL OF THE SUPERVISOR'S SUBSYSTEMS





ox  FUNCTION



   []  METERING (CONSISTS OF THREE ACTIVITIES)


      []  ACCUMULATING   DATA:   THIS   IS  PERFORMED   THROUGHOUT  THE
         SUPERVISOR BY CODE WHICH

         []  RECORDS  THE  NUMBER  OF  TIMES  AN  EVENT  HAPPENS  OR  A
            PARTICULAR PIECE OF CODE IS EXECUTED; AND/OR

         []  RECORDS THE TIME REQUIRED TO PERFORM A TASK

         []  SUCH  DATA IS  STORED IN  AREAS REFERRED  TO AS  "METERING
            CELLS"


      []  EXTRACTING  DATA:   THIS  IS  PERFORMED  BY NUMEROUS METERING
         COMMANDS WHICH (WHEN INVOKED)

         []  READ  AND STORE  THE CURRENT  VALUES OF  RELEVANT METERING
            CELLS


      []  REPORTING THE DATA:  THIS IS  PERFORMED BY THE METER COMMANDS
         WHICH (WHEN INVOKED)

         []  COMPARE CURRENT METERING CELL  VALUES WITH PREVIOUSLY READ
            VALUES

         []  PERFORM THE  APPROPRIATE ARITHMETIC COMPUTATIONS  UPON THE
            DATA IN ORDER TO ARRIVE AT THE DESIRED STATISTIC

         []  ARRANGE THE DATA IN A  USEFUL FORMAT (A REPORT OR DIAGRAM)
            AND PRINT IT




Not To Be Reproduced             14-1                          MDD-003
                       _M_E_T_E_R__A_N_D__T_U_N_I_N_G__O_V_E_R_V_I_E_W





   []  TUNING


      []  CHANGING    THE   SYSTEM'S   OPERATING    PARAMETERS   AND/OR
         CONFIGURATION  BASED  UPON  THE  DATA  AND  INSIGHTS FROM THE
         SYSTEM'S METERS





ox  MAJOR DATA BASES



   []  SST HEADER, TC_DATA HEADER, ETC.


































Not To Be Reproduced             14-2                          MDD-003
                    _A_N_A_L_Y_Z_I_N_G__P_E_R_F_O_R_M_A_N_C_E__P_R_O_B_L_E_M_S







ox  MULTICS IS VERY HEAVILY INSTRUMENTED WITH MANY METERING COMMANDS



   []  MOST SOLVABLE PERFORMANCE PROBLEMS SHOW UP QUITE DIRECTLY IN THE
      METERS



   []  IF  THE SYSTEM  IS TOO  SLOW, THERE  ARE GOOD  RULES OF THUMB TO
      FOLLOW TO LOOK FOR WHEN PROBLEM



   []  NO TWO  SYSTEMS ARE IDENTICAL  - THE MOST  IMPORTANT INFORMATION
      YOU HAVE IS HOW THE METERS  ARE _D_I_F_F_E_R_E_N_T FROM THE WAY THEY WERE
      WHEN THE SYSTEM WAS WORKING BETTER



   []  NOT ALL TUNING PROBLEMS CAN BE RESOLVED WITH SOFTWARE.  OFTEN IT
      SIMPLY INDICATES THAT THERE IS  NOT ENOUGH MEMORY, OR NOT ENOUGH
      DISK CAPACITY.  IT IS OFTEN DIFFICULT TO DETERMINE WHAT HARDWARE
      CHANGES WOULD BE MOST COST-EFFECTIVE





ox  total_time_meters - THE FIRST STEP



   []  total_time_meters MAY  INDICATE EXCESSIVE TIME SPENT  IN SEVERAL
      AREAS:


      []  PAGE FAULTS  - TOO MANY  PAGE FAULTS MEAN  NOT ENOUGH MEMORY,
         TOO  MANY  ELIGIBLE  PROCESSES  (max_eligible),  WHICH  CAUSE
         THRASHING,   INSUFFICIENT  DISK   CAPACITY,  OR   INEFFICIENT
         APPLICATIONS

         []  LOOK TO file_system_meters, device_meters, AND disk_meters
            FOR MORE HELP




Not To Be Reproduced             14-3                          MDD-003
                    _A_N_A_L_Y_Z_I_N_G__P_E_R_F_O_R_M_A_N_C_E__P_R_O_B_L_E_M_S




      []  SEGMENT  FAULTS - TOO  MANY ALMOST ALWAYS  MEAN THAT THE  AST
         POOLS (sst CONFIG CARD) ARE TOO SMALL

         []  LOOK TO file_system_meters (AST  Pool grace time) FOR MORE
            HELP


      []  INTERRUPT - USUALLY MEANS EXCESSIVE INTERRUPT ACTIVITY EITHER
         FOR  FNPS OR  BECAUSE OF  EXCESSIVE PAGING,  BUT MAY INDICATE
         HARDWARE PROBLEMS

         []  LOOK   TO  interrupt_meters   TO  LOCALIZE   IT,  THEN  TO
            file_system_meters and system_comm_meters


      []  OTHER FAULT  - GENERALLY INDICATES TOO MANY  CONNECT OR TIMER
         RUNOUTS FAULTS, INDICATING EXCESSIVE TRAFFIC CONTROL ACTIVITY

         []  LOOK    TO    THE     TUNING    PARAMETERS    (ptp)    AND
            traffic_control_meters FOR MORE HELP


      []  MP  IDLE  -  INDICATES  TOO  MUCH  TRAFFIC  CONTROL ACTIVITY,
         USUALLY  BECAUSE  THERE  ARE   TOO  MANY  ELIGIBLE  PROCESSES
         (max_eligible) AND/OR NOT ENOUGH MEMORY

         []  LOOK TO  THE TUNING PARAMETERS  (ptp), file_system_meters,
            device_meters, disk_meters, AND traffic_control_meters FOR
            MORE HELP


      []  WORK CLASS  IDLE - THIS  IS CPU TIME  WASTED BECAUSE GOVERNED
         WORKCLASSES WERE NOT PERMITTED TO USE IT, AND NO OTHER TAKERS
         WANTED IT

         []  FREQUENTLY  NOT A  PROBLEM, BUT   MAY INDICATE  A NEED  TO
            READJUST WORKCLASSES (work_class_meters)


      []  NMP  IDLE, ZERO  IDLE -  INDICATE THAT  CPU TIME  HAS GONE TO
         WASTE BECAUSE  NO PROCESSES WANTED  IT.  NMP IDLE  MEANS THAT
         THERE ARE MORE PROCESSORS THAN  PROCESSES THAT WANT CPU TIME,









Not To Be Reproduced             14-4                          MDD-003
                    _A_N_A_L_Y_Z_I_N_G__P_E_R_F_O_R_M_A_N_C_E__P_R_O_B_L_E_M_S


         AND ZERO IDLE MEANS THERE ARE NO PROCESSES AT ALL


      []  NORMALLY  INSIGNIFICANT QUANTITIES   - THE  FOLLOWING NUMBERS
         SHOULD ALWAYS BE VERY SMALL; LARGE VALUES PROBABLY INDICATE A
         HARDWARE OR SOFTWARE PROBLEM

                   PC LOOP LOCKS
                   BOUND FAULTS
                   TC LOOP LOCKS
                   POST PURGING
                   LOADING IDLE
                   OTHER OVERHEAD








































Not To Be Reproduced             14-5                          MDD-003
                       _D_E_T_A_I_L_E_D__P_R_O_B_L_E_M__A_N_A_L_Y_S_I_S







ox  THE  MORE DETAILED  METERING COMMANDS  CAN BE  USED TO  PIN DOWN  A
   PROBLEM



   []  DETAILED  DESCRIPTIONS  CAN  BE  FOUND  IN  THE Multics Metering
      Manual (AN52)



   []  THE  DETAILED  METERS  SHOULD  ALSO  BE  CHECKED  IF THERE IS NO
      OBVIOUS PROBLEM SHOWN BY total_time_meters



   []  AGAIN,  THE REALLY  IMPORTANT THING   IS TO  BE ABLE  TO COMPARE
      AGAINST PREVIOUS DATA FOR YOUR SITE





ox  SOME GOOD PLACES TO LOOK ARE:



   []  interrupt_meters


      []  UNUSUALLY LONG DISK INTERRUPTS  MAY INDICATE LOCKING PROBLEMS
         - SEE disk_meters


      []  TOO MUCH TOTAL TIME SPENT  WITH DISK INTERRUPTS USUALLY MEANS
         TOO MANY PAGE  FAULTS, WHICH WILL BE SHOWN IN  MORE DETAIL BY
         file_system_meters


      []  FNP  INTERRUPTS ARE TYPICALLY  MUCH LONGER THAN  OTHERS.  TOO
         MUCH FNP INTERRUPT TIME _M_A_Y INDICATE A BAD FRONT END CHANNEL,
         BUT THIS IS RARE







Not To Be Reproduced             14-6                          MDD-003
                       _D_E_T_A_I_L_E_D__P_R_O_B_L_E_M__A_N_A_L_Y_S_I_S





   []  file_system_meters


      []  A  SHORT PAGE LAP  TIME MEANS THAT  PAGES ARE NOT  STAYING IN
         MEMORY LONG ENOUGH; THAT IS, THERE IS NOT ENOUGH MEMORY


      []  FREQUENT PAGE CLAIM RUNS INDICATE THAT THE WRITE LIMIT IS TOO
         LOW


      []  IF THE AVERAGE PAGE FAULT DURATION  IS HIGH, IT CAN MEAN THAT
         THE WRITE LIMIT  IS TOO HIGH, AND THAT  DISK ALLOCATION LOCKS
         ARE A LIMITATION; SEE disk_meters TO CHECK


      []  SHORT AST POOL  GRACE TIMES MEANS THAT THE  POOL SIZES SHOULD
         BE INCREASED.  THIS  IS USUALLY ALSO INDICATED BY  TOO HIGH A
         FREQUENCY OF SEGMENT FAULTS



   []  disk_meters


      []  WHEN  THE ATB  I/O FOR  A DRIVE  IS TOO  LOW, THE  DRIVE IS A
         SERIOUS BOTTLENECK.

         []  THIS OFTEN HAPPENS FOR RLV DRIVES, BECAUSE OF DIRECTORIES

         []  IF PARM DIRW IS ON, IT SHOULD BE TURNED OFF


      []  TOO HIGH  A PERCENTAGE OF ALLOCATION LOCKS  INDICATE THAT TOO
         MANY  WRITES ARE BEING  QUEUED SIMULTANEOUSLY, AND  MAKING IT
         IMPOSSIBLE TO GET A QUEUE ENTRY FOR READING

         []  THIS USUALLY MEANS THAT WRITE_LIMIT IS TOO HIGH



   []  device_meters


      []  IF  THE SUBSYSTEM BUSY  PERCENTAGE IS TOO  CLOSE TO THE  DISK
         CHANNEL  CAPACITY, IT  USUALLY MEANS  THAT THERE  ARE TOO FEW
         PHYSICAL DISK CHANNELS



Not To Be Reproduced             14-7                          MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                           _t_o_t_a_l__t_i_m_e__m_e_t_e_r_s







ox  TOTAL_TIME_METERS  -  OVERVIEW  OF  HOW  THE  SYSTEM  IS  USING ITS
   RESOURCES, ALSO MEASURED AGAINST NON-IDLE TIME



               Total metering time    0:20:36

                                   %     %NI      AVE

               Page Faults       6.55   7.19    2130.424
                PC Loop Locks    0.39   0.43    1993.209
               PC Queue          0.86   0.94     348.946
               Seg Faults        1.74   1.90    9579.170
               Bound Faults      0.15   0.16   17426.208
               Interrupts        9.02   9.89    1713.504
               Other Fault       8.45   9.27
                Getwork          4.54   4.98     660.550
                TC Loop Locks    0.20   0.22     247.788
                Post Purging     0.36   0.39    1407.132
               MP Idle           0.70   0.77
               Work Class Idle   0.98   1.08
               Loading Idle      0.16   0.17
               NMP Idle          8.84
               Zero Idle         0.00
               Other Overhead    0.03   0.04
               Virtual CPU Time 62.53  68.59




















Not To Be Reproduced             14-8                          MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                           _i_n_t_e_r_r_u_p_t__m_e_t_e_r_s







ox  INTERRUPT_METERS - COUNTS & TIMING FOR ALL I/O INTERRUPTS


        Total metering time    0:20:28

         IOM Ch     Int  Avg Time  % CPU  Name

         A   6.      11   2.043     0.00  IOM A special
         A  10.     379   1.553     0.01  prtb
         A  13.    9253   3.436     0.65  fnp c
         A  14.      19   0.788     0.00  opc
         A  16.   26248   1.347     0.72  tapa
         A  17.     128   1.328     0.00  tapa
         A  18.   13097   5.383     1.43  fnp b
         A  20.   21041   0.860     0.37  dska
         A  21.    2881   0.860     0.05  dska
         A  22.    8486   0.877     0.15  dskb
         A  23.     257   0.964     0.01  dskb
         A  24.   17896   0.895     0.33  dskb
         A  25.    2573   0.943     0.05  dskb
         A  26.   10486   0.857     0.18  dska
         A  27.     255   0.899     0.00  dska
         A  28.   24717   0.845     0.43  dskc
         A  29.    2319   0.849     0.04  dskc
         A  30.    9915   0.845     0.17  dskc
         A  31.     215   0.767     0.00  dskc
         B  14.     236   0.877     0.00  fnp d
         B  15.    6917   3.351     0.47  fnp f
         B  18.    3547   3.543     0.26  fnp a
         B  19.   13667   3.435     0.96  fnp e
         B  20.   22013   0.881     0.39  dskb
         B  21.    4745   0.863     0.08  dskb
         B  22.    6054   0.861     0.11  dska
         B  23.      60   0.925     0.00  dska
         B  24.   15946   0.867     0.28  dska
         B  25.     989   0.841     0.02  dska
         B  26.   12757   0.863     0.22  dskb
         B  27.    1020   0.903     0.02  dskb
         B  28.    5178   0.838     0.09  dskc
         B  29.      30   0.653     0.00  dskc
         B  30.   16582   0.823     0.28  dskc
         B  31.     825   0.841     0.01  dskc
         B  32.    1764   0.825     0.03  dske



Not To Be Reproduced             14-9                          MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                           _i_n_t_e_r_r_u_p_t__m_e_t_e_r_s


        Chan     262506   1.464     7.82
        Ovhd     258932   0.230     1.21
        Total    258932   1.713     9.03
















































Not To Be Reproduced             14-10                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s







ox  FILE_SYSTEM_METERS  - DISPLAYS  MISCELLANEOUS METERING  INFORMATION
   FOR THE FILE SYSTEM



   []  ONLY PARTS RELEVANT TO SEGMENT  CONTROL INCLUDED HERE; SEE TOPIC
      8 (PAGE CONTROL) FOR THE REST



        Total metering time            0:20:02


                               #                   ATB

        Activations          1043       1.153 sec.
           segfault           969       1.241 sec.  92.905% of all
           makeknown           74      16.251 sec.   7.095% of all
           directories         96      12.527 sec.   9.204% of all
        Deactivations        1056       1.139 sec.
        Demand deactivate
           attempts             3     400.857 sec.
        Seg Faults           5080       0.237 sec.
           fault             4311       0.279 sec.  84.862% of Seg Faults
           call               769       1.564 sec.  15.138% of Seg Faults
           activations        969       1.241 sec.  19.075% of Seg Faults
        Bound Faults          220       5.466 sec.
        Setfaults            4484     268.191 msec.
           access              42      28.633 sec.   0.937% of setfaults
        ASTE Trickle          139       8.652 sec.
        Steps                4279     281.040 msec.
        Skips                3016       0.399 sec.  70.484% of Steps
           ehs                271       4.438 sec.   8.985% of Skips
           mem               1083       1.110 sec.  35.909% of Skips
           init              1662       0.724 sec.  55.106% of Skips
        Searches                0       0.000 sec.
        Cleanups                   1056       1.139 sec.   0.1 % of real time
        Force writes            3     400.857 sec.
           pages written        3     400.857 sec.
        Lock AST            18422       0.065 sec.






Not To Be Reproduced             14-11                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s


                             AVE/lock       %
        AST locked          4.833 msec.   7.4
        AST lock waiting    1.601 msec.   2.5

        AST Sizes             4        16        64       256
        Number             1701       601       221        74
        Need                819       202       208        34
        Steps              2341       645      1139       154
        Ave Steps           2.9       3.2       5.5       4.5
        Lap Time(sec)     873.8    1120.5     233.3     577.9









































Not To Be Reproduced             14-12                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                          _f_i_l_e__s_y_s_t_e_m__m_e_t_e_r_s







ox  FILE_SYSTEM_METERS  - DISPLAYS  MISCELLANEOUS METERING  INFORMATION
   FOR THE FILE SYSTEM



   []  ONLY PARTS RELEVANT  TO PAGE CONTROL INCLUDED HERE;  SEE TOPIC 7
      (SEGMENT CONTROL) FOR THE REST



        Total metering time    0:20:02

                         #            ATB

        Needc          62654      19.194 msec.
        Ring 0 faults             16.639 %
        PDIR faults               50.607 %
        Level 2 faults            21.556 %
        DIR faults                 7.645 %
        New Pages                 14.661 %
        Volmap_seg         0       0.000 msec.
        Zero pages       770    1561.779 msec.
        Laps             105      11.453 sec.
        Steps         361483       3.327 msec.
        Skip          322555       3.728 msec.  89.231% of Steps
           wired       11057     108.761 msec.   3.428% of Skip
           used       109719      10.960 msec.  34.016% of Skip
           mod        140336       8.569 msec.  43.508% of Skip
           fc pin      37717      31.884 msec.  11.693% of Skip
           cl pin      23726      50.686 msec.   7.356% of Skip

        3419 pages, 139 wired.
        Average steps        5.770













Not To Be Reproduced             14-13                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                             _d_e_v_i_c_e__m_e_t_e_r_s







ox  DEVICE_METERS  - DISPLAYS  SUMMARY OF   I/O ACTIVITY  FOR ALL  DISK
   SUBSYSTEMS



   Total metering time    0:20:13

                           dska        dskb        dskc        dskd

   Prior Page I/O         18571       17743         462        1273
   ATB                   65.334      68.383    2626.240     953.121
   Other Page I/O          6525        5135          16         696
   ATB                  185.949     236.284   75832.692    1743.280
   ATB Page I/O          48.347      53.034    2538.332     616.212
   Prior VTOCE I/O          934         895          38         304
   ATB                 1299.061    1355.668   31929.554    3991.194
   ATB I/O               46.612      51.037    2351.401     533.798
   % Busy                    76          74           0           4
   Avg. Page Wait        47.289      46.197      20.341      24.666
   Avg. Page ^Wait      176.082     101.023      36.996      61.704
   Avg VTOCE Wait        41.138      37.610      38.595      29.090
   Avg. Page I/O T       35.619      38.314      20.050      22.482
   Avg. VTOCE I/O T      31.139      32.277      37.060      26.606
   EDAC Corr. Errs            0           0           0           0
   Errors                     0           0           0           1
   Fatal Errors               0           0           0           0




















Not To Be Reproduced             14-14                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _d_i_s_k__m_e_t_e_r_s







ox  DISK_METERS - DISPLAYS I/O ACTIVITY TO DISK DRIVES



   []  ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE



   Total metering time   0:20:12

   Subsystem dska       Count     Waits    %Waits   Avg. Wait(ms.)

   call locks           26005       217      0.83     0.259
   run locks              112         0      0.00     0.000
   interrupt locks      25998       239      0.92     0.208
   allocations          26001         0      0.00     0.000

   Drive      Reads    Writes      Seek        ATB      ATB         ATB
                                 Distance     Reads    Writes       I/O

    1           269        67       214        4508     18102      3609
    3           362       243       109        3350      4991      2004
    4           309       131       184        3925      9258      2756
    5           547       165       180        2217      7350      1703
    6           631       165       161        1922      7350      1523
    7             0         0         0           0         0         0
    8          5843      2187       122         207       554       151
    9           366       116       153        3313     10455      2516
   11          3501      1431       200         346       847       245
   12             0         0         0           0         0         0
   16          7158      2508       135         169       483       125















Not To Be Reproduced             14-15                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _d_i_s_k__q_u_e_u_e







ox  DISK_QUEUE - DISPLAYS I/O QUEUE FOR A DISK SUBSYSTEM



   []  ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE



     Connects = 2604781, 1359725, 677321, 309367,
                123430, 40159, 10227, 1969.

     P  RW VP DV   SECTOR      MEM

     0  W  P  24  1350330  27304000
     0  W  P   9  1020150   4432000
     0  W  P  16  1204130  36246000
     0  W  P  16   314370  27306000
     0  W  P  16   314430  34166000




























Not To Be Reproduced             14-16                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                       _p_r_i_n_t__c_o_n_f_i_g_u_r_a_t_i_o_n__d_e_c_k







ox  PRINT_CONFIGURATION_DECK   -   DISPLAYS   >sl1>config_deck,   WHICH
   CONTAINS INFORMATION ABOUT DISK LOCATIONS, THE RLV, AND PARTITIONS



   []  ONLY THE PART  OF THE CONFIG DECK RELEVANT  TO VOLUME MANAGEMENT
      AND DISK CONFIGURATION IS SHOWN HERE



       root  dska  16.  dskb  25.  dskb  23.  dskb  24.  dska  8.

       part  bos  dska  16.
       part  dump  dska  16.
       part  log  dska  16.

       prph  dska  a  20.  2  451.  16.
       chnl  dska  a  26.  2  b  24.  2  b  22.  2

       prph  dskb  b  20.  2  0  16.  451.  16.
       chnl  dskb  b  26.  2  a  24.  2  a  22.  2

       prph  dskc  a  28.  2  501.  32.
       chnl  dskc  a  30.  2  b  30.  2  b  28.  2

       prph  dske  b  32.  2  451.  8.
       chnl  dske  b  34.  2

       prph  dskf  a  32.  2  501.  16.
       chnl  dskf  a  34.  2

       mpc  mspa  451.  a  20.  4  a  24.  4
       mpc  mspb  451.  b  20.  4  b  24.  4
       mpc  mspc  607.  a  28.  4
       mpc  mspd  607.  b  28.  4
       mpc  mspe  451.  b  32.  4
       mpc  mspf  607.  a  32.  4









Not To Be Reproduced             14-17                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                       _p_r_i_n_t__c_o_n_f_i_g_u_r_a_t_i_o_n__d_e_c_k







ox  DISK CONFIGURATION CONFIG CARDS



   []  ROOT


      []  IDENTIFIES  THOSE VOLUMES  IN THE  ROOT LOGICAL  VOLUME WHICH
         HAVE  HC PARTITIONS,  USED BY  THE SUPERVISOR  FOR PAGING  OF
         SUPERVISOR SEGMETNS



   []  PART


      []  IDENTIFIES THE LOCATIONS OF CERTAIN IMPORTANT PARTITIONS


      []  ONLY   PARTITIONS  NECESSARY   FOR  MULTICS   OPERATIONS  ARE
         IDENTIFIED, NOT ALT PARTITIONS


      []  HC PARTITIONS ARE LOCATED BY THE ROOT CARD



   []  PRPH DSK_n, CHNL


      []  IDENTIFY PHYSICAL I/O CHANNEL PATHS FOR ACCESSING DISK DRIVES



   []  MPC


      []  IDENTIFY   PHYSICAL  CONNECTIONS   TO  MICROPROGRAMMED   DISK
         CONTROLLERS







Not To Be Reproduced             14-18                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                               _l_i_s_t__v_o_l_s







ox  LIST_VOLS - DISPLAYS A TABLE OF ONLINE VOLUMES, THEIR LOCATION, AND
   SPACE UTILIZATION



Drive    Records   Left  %  VTOCEs Left  %  Avg   PV      PB/PD   LV Name
                                            Size Name

dskc_17    64504  54730  85  13440 11356 84   4  alpha01  pb pd   Alpha
dskc_18    64504  55389  86  13440 11352 84   4  alpha02  pb pd   Alpha
dska_05    36428   5305  15   8400 2662  32   5  mul03    pb pd   Multics_Pubs
dska_06    36428   4323  12   8400 2365  28   5  mul01    pb pd   Multics_Pubs
dskb_19    36428   4632  13   8400 2813  33   5  mul02    pb pd   Multics_Pubs
dskb_26    36429  13690  38   8400 4326  52   5  mul05    pb pd   Multics_Pubs
dskb_27    36429   4672  13   8400 2333  28   5  mul04    pb pd   Multics_Pubs
dska_01    36308   4680  13   9000  450   5   3  pub01    pb pd   Public
dska_03    36268   3588  10   9200 1017  11   3  pub07    pb pd   Public
dska_04    36268   4500  12   9200  884  10   3  pub04    pb pd   Public
dska_09    36268   4816  13   9200  864   9   3  pub02    pb pd   Public
dskb_17    36269   4281  12   9200 1002  11   3  pub05    pb pd   Public
dskb_18    36268   3840  11   9200  539   6   3  pub08    pb pd   Public
dskc_13    64504    294   0  13440 5539  41   8  rel01            Release
dskc_14    64504    269   0  13440 5214  39   7  rel02            Release
dskc_01    64503  43631  68  13440 10032 75   6  xpub01   pb      Xpublic
dskc_02    64503  45502  71  13440 9838  73   5  xpub02   pb      Xpublic
dskc_03    64503  42374  66  13440 9839  73   6  xpub03   pb      Xpublic
dskc_04    64503  43591  68  13440 9785  73   5  xpub04   pb      Xpublic
dskc_09    64504  58010  90  13440 12394 92   6  xpub05   pb      Xpublic
dskc_10    64504  56786  88  13440 12407 92   7  xpub06   pb      Xpublic
dskc_21    64503  23947  37  13440 6446  48   5  ypub01   pb      Ypublic
dskc_22    64503  23744  37  13440 6194  46   5  ypub02   pb      Ypublic
dskc_29    64503  23794  37  13440 6185  46   5  ypub05   pb      Ypublic
dskc_30    64503  24111  37  13440 6481  48   5  ypub06   pb      Ypublic
dskc_07    64503  11723  18  13440 6149  46   7  zpub01   pb pd   Zpublic
dskc_08    64503  11665  18  13440 6429  48   7  zpub02   pb pd   Zpublic
dskc_23    64504   9777  15  13440 6094  45   7  zpub03   pb pd   Zpublic
dskc_24    64504  11805  18  13440 6141  46   7  zpub04   pb pd   Zpublic
dskc_25    64504  11514  18  13440 7407  55   8  zpub05   pb pd   Zpublic
dskc_26    64504  12958  20  13440 7149  53   8  zpub06   pb pd   Zpublic
dske_06    37089   8053  22   5100 3797  74  22  list01   pb pd   list_1
dska_12    37562   6046  16   2735  957  35  17  list02   pb      list_2
dska_07    37309   6825  18   4000 2107  53  16  list03   pb      list_3
dska_08    36209   3827  11   7000  491   7   4  root5    pb      root
dska_11    36209   8597  24   7000 4181  60   9  root6    pb      root


Not To Be Reproduced             14-19                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                               _l_i_s_t__v_o_l_s


dska_16    31283   2892   9   9000 3476  39   5  rpv      pb      root
dskb_23    36208   4888  13   7000  455   7   4  root3    pb      root
dskb_24    36209   3097   9   7000  238   3   4  root4    pb      root
dskb_25    36350   4483  12   7000  223   3   4  root2    pb      root















































Not To Be Reproduced             14-20                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                         _t_r_a_f_f_i_c__c_o_n_t_r_o_l__q_u_e_u_e







ox  TRAFFIC_CONTROL_QUEUE  -  DISPLAYS  THE  CURRENT  CONTENTS  OF  THE
   SCHEDULER  QUEUES, USEFUL  FOR GETTING   AN IDEA  OF WHAT  THE USER
   PROCESSES ARE DOING



   []  FIRST PART OF OUTPUT IS ELIGIBLE QUEUE:



avq = 13, elapsed time = 1247 sec, 64 active last 15 sec.
flags    dtu    dpf temax   te    ts    ti    tssc event d  ws wc process
rWLE(d)  148   6946  2097   37     0     0  -0.001     0 0   6  0 Initializer
xLED(c)   15   1111  1000  910  2012  1897   0.001     0 0  11  6 Sibert
rLE(d)    14   1370   500   89     0     0  -0.009     0 0   0  4 Diaz
rLE(d)    15    823   500   13     0     0  -0.009     0 0  64  8 JCrow
wLE(d)    13    634   500  422     0     0   0.018 316537 0   3  3 Gintell
xWLED(a)   6    108  1000  495  2054  2004   0.010     0 0  13  6 Brunelle
wLE(d)    16    864  1000   85     0   510   0.016 504031 0  46  6 WPeck
wWLE(b)  468   2734  1000  315  3010  8000   0.013 224641 0   4  3 Spratt
wLE(d)    17    686   500   60     0     0   0.007 165111 0   3  4 RTowle
wLE(b)    12    520   500   50     0     0   0.005    71 0   3  3 Kress
wLE(d)    69   1895   500   21     0     0   0.001 177022 0   0  2 OPCTL
xLED(b)   12    872   500   85     0     0   0.005     0 0   0  3 Pandolf
rLE(d)    67   3279   500    0     0     0  -0.006     0 0   0  3 Lackey





















Not To Be Reproduced             14-21                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                         _t_r_a_f_f_i_c__c_o_n_t_r_o_l__q_u_e_u_e





   []  SECOND PART IS REALTIME, INTERACTIVE, AND ALL WORKCLASS QUEUES:



REALTIME QUEUE:

INTERACTIVE QUEUE:

WORKCLASS  2 QUEUE: credits =   576 ms.

WORKCLASS  3 QUEUE: credits =   242 ms.
r        289   5326  1000    0     0   503   0.218     0 0  22  3 Dupuis
r        131   2513  1000    0  4010  8000   0.128     0 0   0  3 Falksenj

WORKCLASS  4 QUEUE: credits =  2601 ms.

WORKCLASS  5 QUEUE: credits =  4000 ms.

WORKCLASS  6 QUEUE: credits =  -563 ms.

WORKCLASS  7 QUEUE: credits =  3962 ms.
rW         5    166   500    0     0     0   0.192     0 0   2  7 Saccuci

WORKCLASS  8 QUEUE: credits =  3934 ms.

WORKCLASS  9 QUEUE: credits =  2216 ms.

WORKCLASS 10 QUEUE: credits =  4000 ms.

WORKCLASS 11 QUEUE: credits =  4000 ms.


















Not To Be Reproduced             14-22                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                        _t_r_a_f_f_i_c__c_o_n_t_r_o_l__m_e_t_e_r_s







ox  TRAFFIC_CONTROL_METERS - DISPLAY THE STATE OF THE SCHEDULER



   []  OUTPUT COMES IN THREE PARTS, SHOWN OUT OF ORDER HERE:


      []  QUEUE LENGTHS AND RESPONSE TIME - THESE ARE WEIGHTED AVERAGES
         OVER THE LAST FIFTEEN SECONDS.


      []  ACTIVITIES VERSUS DEPTH - HOW DEEP THE TRAFFIC CONTROLLER HAD
         TO SEARCH TO FIND A SCHEDULABLE PROCESS


      []  MISCELLANEOUS COUNTERS AND FREQUENCIES OF VARIOUS EVENTS



          Total metering time    0:20:34

          Ave queue length    16.52
          Ave eligible        13.31
          Response time        0.264 sec

           DEPTH   %PF   TBPF   %GTW   TBS   %CPU

             1     12.0  22.8   10.8   11.6   8.1
             2     11.8  21.0    9.2   12.2   7.4
             3     10.8  24.9    8.7   14.1   8.0
             4     10.2  27.9    8.5   15.2   8.4
             5      9.5  29.8    8.3   15.5   8.4
             6      8.4  33.5    7.8   16.5   8.4
             7      7.4  36.3    7.3   16.8   8.0












Not To Be Reproduced             14-23                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                        _t_r_a_f_f_i_c__c_o_n_t_r_o_l__m_e_t_e_r_s


            COUNTER          TOTAL         ATB       #/INT

          Interactions        7977      0.155 sec
          Loadings           12161      0.102 sec    1.525
          Blocks             14082      0.088 sec
          Wakeups            36078      0.034 sec
          Schedulings        12591      0.098 sec    1.578
          Lost priority          1   1234.756 sec
          Priority boosts        0      0.000 sec
          I/O boosts           578      2.136 sec
          Wait Page         127040      9.719 msec  15.926
          Wait PTL           75691     16.313 msec   9.489
          Wait Other         31912     38.693 msec   4.001
          Total Waits       234643      5.262 msec  29.415
          Notify Page       128954      9.575 msec
          Notify PTL         75691     16.313 msec
          Notify Other       25330     48.747 msec
          Total Notifies    229975      5.369 msec
          Get Processor     245856      5.022 msec
          Pre-empts          94235     13.103 msec  11.813
          Getwork           338802      3.644 msec
          Retry getwork       4988      0.248 sec
          Extra notifies      2949      0.419 sec
           Last EN event    000000000071
           Last NTO event   033022237767





ox  ALARM_CLOCK_METERS  -  DISPLAYS  INFORMATION  ABOUT  THE USER ALARM
   TIMER FACILITY (HARDCORE INTERFACE FOR timer_manager_)



          Total metering time    0:20:31

          No. alarm clock sims.   2171
          Simulation lag             5.245 msecs.
          Max. lag                 1.7340314e4 msecs.











Not To Be Reproduced             14-24                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                        _p_r_i_n_t__t_u_n_i_n_g__p_a_r_a_m_e_t_e_r_s







ox  PRINT_TUNING_PARAMETERS   -  PRINT    VALUES  FOR   SYSTEM  CONTROL
   PARAMETERS.  MOST CONTROL THE SCHEDULER



                    Current system tuning parameters:

                    tefirst                    0.5 seconds
                    telast                     1. seconds
                    timax                      8. seconds
                    priority_sched_inc         80. seconds
                    min_eligible               2.
                    max_eligible               20.
                    max_batch_elig             0
                    working_set_factor         0.5
                    working_set_addend         0
                    deadline_mode              off
                    int_q_enabled              on
                    post_purge                 on
                    pre_empt_sample_time       0.04 seconds
                    gp_at_notify               off
                    gp_at_ptlnotify            off
                    process_initial_quantum    2. seconds
                    quit_priority              0.
                    gv_integration             4. seconds
                    realtime_io_priority       on
                    realtime_io_deadline       0. seconds
                    realtime_io_quantum        0.005 seconds
                    notify_timeout_interval    30. seconds
                    notify_timeout_severity    0
                    write_limit                724



   []  THESE ARE  "INTERNAL", NORMALLY NEVER CHANGED,  AND ONLY PRINTED
      IF THE -all CONTROL ARGUMENT IS GIVEN


                    stack_truncation           on
                    stack_truncation_always    off
                    stk_trunc_block_avg_factor 0.25
                    trap_invalid_masked        off
                    meter_ast_locking          off
                    checksum_filemap           on


Not To Be Reproduced             14-25                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                           _w_o_r_k__c_l_a_s_s__m_e_t_e_r_s







ox  WORK_CLASS_METERS -  DISPLAY THE VARIOUS WORKCLASS  PARAMETERS, AND
   SHOW WHAT RESOURCES EACH WORKCLASS IS CONSUMING.



Total metering time    0:20:38

WC %GUAR %MAX %TCP V/ELIG PW  IRESP IQUANT   RESP QUANT P M R I LCG

 0              3.   0.12  3   0.26  2.10    0.26  2.10 P 0 R I Init
 1              3.   0.09  1   0.25  0.75    0.50  1.00 P 0 R I RTime
 2    7.       15.   0.44  1                            P 0   I System SysAdm OPR FED
 3   32.       44.   0.49  1                            P 0   I SysProg SysDev
 4    9.  14.   4.   0.26  1                            P 0     SEngr
 5   20.        2.   0.46  1                            P 0   I HEngr
 6   12.  16.   8.   0.25  1                            P 0     MktUS MktFor MktEd
 7    3.   7.   4.   0.36  1                            P 0     DS-CC
 8    6.        0.   0.18  1                            P 0   I OffAuto
 9    4.   8.   2.   0.62  1                            P 0     Misc Mfg
10    3.        0.   0.55  1                            P 0   I Other
11    4.        2.   0.16  1                            P 0   I Special

TCPU percents (%GUAR) control non-realtime work_classes.























Not To Be Reproduced             14-26                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                            _r_e_s_p_o_n_s__m_e_t_e_r_s







ox  RESPONSE_METERS  -  DISPLAYS  RESPONSE   TIME,  BASED  ON  TERMINAL
   INTERACTIONS, ON A PER-WORKCLASS BASIS



Total metering time    0:20:36

WC  ---Thinks/--    ----Response Times by VCPU Range----  Load Control Group
    ---Queues---    -VCPU Range-     #  Avg   Avg   Resp
         #  Avg      From    To    Int  VCPU   RT   Fact

  0     86  2.70     0.00  0.50    113  0.04  0.42  9.34  Init
        92  0.15     0.50  1.00      3  0.55  5.51 10.00
                     1.00 10.00      3  2.43 14.96  6.15
                    ----- -----    119  0.12  0.91  7.76

  1     35 11.78     0.00  0.50     34  0.11  0.96  8.74  RTime
        39  0.21     0.50  1.00      2  0.83  4.06  4.87
                    ----- -----     36  0.15  1.13  7.55

  2    593 14.90     0.00  0.50    620  0.05  0.49 10.50  System SysAdm OPR FED
       612  0.15     0.50  1.00     28  0.71  3.61  5.10
                     1.00 10.00     39  1.77  8.39  4.74
                    ----- -----    687  0.17  1.07  6.22

  3   2496  6.38     0.00  0.50   2993  0.08  0.66  7.96  SysProg SysDev
      2622  0.17     0.50  1.00    117  0.68  4.22  6.16
                     1.00 10.00     66  2.46 13.47  5.49
                    10.00 99.99     10 56.85 99.99  3.33
                    ----- -----   3186  0.33  1.65  4.96

  4    581 15.82     0.00  0.50    663  0.05  0.71 12.94  SEngr
       590  0.26     0.50  1.00     13  0.64  4.64  7.30
                     1.00 10.00      8  3.47 32.07  9.24
                    ----- -----    684  0.11  1.15 10.88

  5    133 29.51     0.00  0.50    148  0.06  0.83 12.95  HEngr
       141  0.17     0.50  1.00      3  0.69  4.64  6.70
                     1.00 10.00      5  3.15 10.24  3.25
                    10.00 99.99      2 26.69 48.84  1.83
                    ----- -----    158  0.51  1.81  3.55





Not To Be Reproduced             14-27                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                            _r_e_s_p_o_n_s__m_e_t_e_r_s


  6   1180 11.65     0.00  0.50    977  0.05  1.13 20.91  MktUS MktFor MktEd
      1211  0.58     0.50  1.00     24  0.64  4.95  7.74
                     1.00 10.00     16  1.89 11.88  6.29
                    ----- -----   1017  0.10  1.39 14.38

  7    259 14.65     0.00  0.50    292  0.08  1.53 20.17  DS-CC
       287  0.98     0.50  1.00      9  0.71  9.03 12.66
                     1.00 10.00     17  2.04 14.76  7.24
                    10.00 99.99      1 12.22 99.99  9.45
                    ----- -----    319  0.24  2.81 11.86

  8     73  2.69     0.00  0.50     79  0.06  0.31  5.45  OffAuto
        74  0.05     0.50  1.00      2  0.60  6.40 10.62
                     1.00 10.00      1  3.20  6.73  2.10
                    ----- -----     82  0.11  0.54  4.94

  9     94 41.91     0.00  0.50     80  0.11  1.23 11.07  Misc Mfg
        96  0.30     0.50  1.00     11  0.69  4.74  6.91
                     1.00 10.00     13  2.99 12.82  4.30
                    ----- -----    104  0.53  3.05  5.74

 10      7 99.99     0.00  0.50     10  0.11  1.45 13.82  Other
         8  0.21     1.00 10.00      1  3.88 39.11 10.09
                    ----- -----     11  0.45  4.88 10.89

 11    417 12.71     0.00  0.50    445  0.03  0.50 15.32  Special
       420  0.16     0.50  1.00      5  0.57  3.61  6.29
                     1.00 10.00      4  1.65 11.40  6.90
                    ----- -----    454  0.05  0.63 11.93

All   5954 11.13     0.00  0.50   6454  0.07  0.77 11.40
      6192  0.29     0.50  1.00    217  0.68  4.54  6.70
                     1.00 10.00    173  2.31 13.11  5.68
                    10.00 99.99     13 48.77 99.99  3.32
                    ----- -----   6857  0.24  1.51  6.39

     86797 calls to meter_response_time        283 invalid transitions.
           Overhead =   0.09% (  0.052 ms./call)













Not To Be Reproduced             14-28                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                       _s_y_s_t_e_m__p_e_r_f_o_r_m_a_n_c_e__g_r_a_p_h







ox  SYSTEM_PERFORMANCE_GRAPH  -  GIVES  A   ROUGH  SNAPSHOT  OF  SYSTEM
   ACTIVITY, SAMPLED PERIODICALLY



                                           04/02/83  1114.3 est Sat
      up= 04/01/83  0855.6 est, sys_hours= 26.3, cpu_hours= 78.9
          cpu= 3, pages= 3419, min_e= 3, max_e= 16, wsa= 0, wsf= 0.50,
          tefirst=  0.13, telast=  0.50, timax= 32.0
   1115.00 Qe   .    |  *******|**+******|******mitpS y .   DV
   1116.00 Qe   .****|*********|**+******|**iiits  |y   . S DV
   1117.00 Q*e*******|***iittpp|  + .   y|    .    |    .  D V
   1118.00 Q*e*******|*******iittps+. y  |    .    |    .  D V
   1119.00 Qe********|*********|***+*iit |y   .    |    .   DV
   1120.00 Qe********|*********|***+**it |y   .    |    .   DV
   1121.01 Q*e*******|******iitpp  +y    |    .    |    .  D V
   1122.00 Qe********|*********|****+iitp|y   .    |    S   DV
   1123.00 Qe********|*********|**mi+ts  y    .    |    S   DV
   1124.00 Q*e*******|*********|*iii+ps  |y   .    |    .   DV
   1125.00 Q*e*******|**********miii+tps |y   .    |    . D  V
   1126.00 Q*e*******|****iiiit|tps+.  y |    .    |    . D  V
   1127.00 Q*e*******|*********|*ii+tp  y|    .    |    .  D V
   1128.00 Q*e*******|*********|***+*iiittp   y    |    .  D V
   1129.00 Qe *******|*********|***+*****|****iittp|y   .  D V
   1130.00 Qe *******|*********|***+*****|**iiittp |y   .   DV
   1131.00 Qe *******|*********|***+*****|****iiitt| y  .   DV
   1132.00 Qe********|*********|***+*****|****iiit |y   .   DV
   1133.00 rQ********|*********|**+******|*iiitts  y    .  D V
   1134.00 Qe********|*********|**+******|***iitp  y    .   DV
   1135.00 Qe   .    |  *******|**+******|********iit  y.   DV
   1136.00 Qe********|*********|***+******iiitts  y|    .  D V
   1137.00 rQ********|*********|***+*****|****iitts|y   .  D V
   1138.01 Qe********|*********|***+*****iiiitp    y    .   DV
   1139.00 Qe********|*********|****+*****iitps    y    S  DVP
   1140.02 rQ********|*********|***+*****iiittpp   y    . D VP











Not To Be Reproduced             14-29                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                       _s_y_s_t_e_m__p_e_r_f_o_r_m_a_n_c_e__g_r_a_p_h





   []  SOME  CHARACTERS INDICATES PERCENTAGES  OF SYSTEM TIME  SPENT IN
      VARIOUS ACTIVITIES.  OTHERS INDICATE ACTUAL VALUES


      []  PERCENTAGES

         []  BLANK -  USER PROCESSING.  RING ZERO TIME  BETWEEN "y" AND
            THE RIGHT MARGIN, USER RING BETWEEN "s" and "y"

         []  SYSTEM SERVICES - SEGMENT FAULTS ("s"), PAGE FAULTS ("p"),
            TRAFFIC CONTROL ("t"), INTERRUPTS ("i")

         []  IDLE  TIME -  MP IDLE   ("m"), NMP  IDLE ("*"),  ZERO IDLE
            (BLANKS ON THE LEFT)


      []  OTHER VALUES (RELATIVE TO THE LEFT MARGIN)

         []  TRAFFIC  CONTROL  QUEUE  LENGTHS   -  READY  QUEUE  ("q"),
            ELIGIBLE QUEUE ("e")

         []  USER COUNTS - NUMBER OF USERS ("+"), LOAD UNITS ("-")

         []  TRAFFIC  CONTROL VALUES -  RESPONSE TIME ("r"),  QUITS PER
            MINUTE ("Q"), SCHEDULINGS IN TEN SECONDS ("S")


      []  OTHER VALUES (RELATIVE TO THE RIGHT MARGIN)

         []  I/O TRAFFIC  - DISK I/O  PER 100 MILLISECONDS  ("D"), VTOC
            I/O PER 100 MILLISECONDS ("V")

















Not To Be Reproduced             14-30                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _m_e_t_e_r__g_a_t_e







ox  METER_GATE  - SHOWS  TIME  SPENT  CALLING THROUGH  SUPERVISOR GATES
   (HCS_, ETC.)



   Metering since 04/01/83  0855.6 est Fri.
   Total non-idle time at 04/02/83  1101.9 est Sat = 39 hr. 36 min. 57 sec.

   Gate meters for hcs_:                   total calls = 6294028.
   7 hr. 35 min. 54 sec. or 19.180% spent in calls through gate.

     calls   pcnt     avg    pwait  entry name

    902768   4.50     7.11    0.02  tty_write
     13857   2.29   236.01    2.28  list_dir
    442912   1.19     3.85    0.01  tty_read
    435510   1.01     3.30    0.02  tty_order
    165154   0.97     8.35    0.10  initiate
    120204   0.83     9.84    0.76  make_ptr
     20620   0.51    34.95    0.48  make_seg
     60796   0.50    11.69    0.14  truncate_seg
     45464   0.45    14.25    0.16  status_long
    337615   0.40     1.69    0.01  set_alarm_timer
    532081   0.35     0.95    0.00  read_events
      4085   0.35   122.90    3.57  star_dir_list_
     42080   0.33    11.17    0.02  list_acl
     59354   0.32     7.76    0.01  status_for_backup
    103029   0.32     4.44    0.03  tty_get_line
     61851   0.32     7.33    0.03  tty_write_whole_string
     48621   0.31     9.05    0.35  status_minf
     31637   0.26    11.64    0.04  set_max_length_seg
    150703   0.26     2.41    0.03  terminate_noname
     67267   0.20     4.19    0.03  tty_read_echoed
     14851   0.20    18.77    0.08  quota_get
     21051   0.18    12.48    0.72  get_link_target
     30337   0.18     8.25    0.40  initiate_count
      6288   0.17    39.36    0.25  delentry_seg
    247420   0.16     0.95    0.03  wakeup
     14024   0.16    15.99    0.43  status_
    476759   0.16     0.47    0.00  level_set
     13601   0.13    13.69    0.00  dir_quota_read
     14860   0.13    12.05    0.02  list_dir_acl
     13496   0.13    13.22    0.01  get_max_length
     28194   0.12     6.15    0.41  make_entry


Not To Be Reproduced             14-31                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _m_e_t_e_r__g_a_t_e


     23725   0.11     6.65    0.09  set_bc_seg
      1416   0.11   108.00    2.08  star_
     13941   0.10    10.68    0.40  get_access_class
     28696   0.10     5.03    0.04  status_mins
     13598   0.09     9.76    0.02  list_inacl_all
    102810   0.09     1.27    0.01  tty_state
     12881   0.08     8.50    0.39  get_user_effmode
     46180   0.08     2.33    0.01  tty_read_with_mark
       206   0.07   493.77    3.79  star_list_
   1109005   0.07     0.09    0.00  level_get









































Not To Be Reproduced             14-32                         MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _m_e_t_e_r__g_a_t_e





   []  HPHCS_  AND IOI_  ARE THE  OTHER SUPERVISOR  GATES THAT  CONSUME
      SIGNIFICANT RESOURCES



   Metering since 04/01/83  0855.6 est Fri.
   Total non-idle time at 04/02/83  1102.7 est Sat = 39 hr. 37 min. 59 sec.

   Gate meters for hphcs_:                 total calls = 70604.
   0 hr. 29 min. 51 sec. or  1.256% spent in calls through gate.

     calls   pcnt     avg    pwait  entry name

       869   0.57   928.77    5.40  destroy_process_finish
       911   0.24   381.04   15.09  create_proc
      5944   0.20    48.34    1.04  dir_quota_read
      8326   0.05     8.47    0.04  tty_write_force
      5946   0.05    11.31    0.00  quota_read
       105   0.04   500.68    0.00  flush_core
       246   0.04   208.83    0.17  flush_ast_pool
      1753   0.02    16.94    0.76  star_
      5595   0.02     4.12    0.00  set_backup_dump_time
     31893   0.01     0.60    0.00  set_kst_attributes
         1   0.01 14598.71    8.00  add_scu



   Metering since 04/01/83  0855.6 est Fri.
   Total non-idle time at 04/02/83  1103.0 est Sat = 39 hr. 38 min. 22 sec.

   Gate meters for ioi_:                   total calls = 245985.
   0 hr. 12 min. 14 sec. or  0.515% spent in calls through gate.

     calls   pcnt     avg    pwait  entry name

    243976   0.50     2.94    0.00  connect
       248   0.01    65.91    2.09  workspace
       793   0.00     0.58    0.00  get_special_status
       533   0.00     0.54    0.00  set_event
       322   0.00     0.59    0.14  set_status
       105   0.00     0.55    0.00  timeout
         3   0.00     4.38    0.00  set_channel_required
         5   0.00     0.65    0.00  get_detailed_status






                                 15-i                          MDD-003
                     _O_U_T_P_U_T__F_R_O_M__M_E_T_E_R_I_N_G__C_O_M_M_A_N_D_S

                              _m_e_t_e_r__g_a_t_e


                                  TOPIC XV

                 Evolution of Memory Addressing/Management

                                                                   Page

                     Conventional Memory . . . . . . . . . . . . . 15-1
                         Structure . . . . . . . . . . . . . . . . 15-1
                         Address Formation . . . . . . . . . . . . 15-1
                         Characteristics . . . . . . . . . . . . . 15-2
                         Problems. . . . . . . . . . . . . . . . . 15-4
                     Single Virtual Memory . . . . . . . . . . . . 15-7
                         Structure . . . . . . . . . . . . . . . . 15-7
                         Address Formation . . . . . . . . . . . . 15-7
                         Characteristics . . . . . . . . . . . . . 15-7
                         Solved Problems . . . . . . . . . . . . . 15-9
                         Problems. . . . . . . . . . . . . . . . . 15-11
                     Multiple Virtual Memories . . . . . . . . . . 15-12
                         Structure . . . . . . . . . . . . . . . . 15-12
                         Address Formation . . . . . . . . . . . . 15-12
                         Characteristics . . . . . . . . . . . . . 15-13
                         Solved Problems . . . . . . . . . . . . . 15-14
                         Problems. . . . . . . . . . . . . . . . . 15-15
                     Multics Virtual Memory. . . . . . . . . . . . 15-16
                         Structure . . . . . . . . . . . . . . . . 15-16
                         Address Formation . . . . . . . . . . . . 15-16
                         Characteristics . . . . . . . . . . . . . 15-17
                         Solved Problems . . . . . . . . . . . . . 15-18
                         Problems. . . . . . . . . . . . . . . . . 15-20























                                 15-i                          MDD-003



































                                   .

                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                               _S_T_R_U_C_T_U_R_E







ox  1-DIMENSIONAL ADDRESS SPACE USED BY THE SYSTEM













































Not To Be Reproduced             15-1                          MDD-003
                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                            _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S







ox  SPACE  DIVIDED  INTO  REGIONS  OF  VARIOUS  SIZES,  ONE  REGION PER
   PROCESS/JOB/USER





ox  REGIONS ARE:



   []  PROTECTED FROM ONE ANOTHER BY A BAR OR BY PROTECT KEYS



   []  SUBDIVIDED  INTO  POOLS  OF  STORAGE  USED  FOR:   PROGRAMS, I/O
      BUFFERS,  MEMORY ALLOCATION   AREA, AUTOMATIC  VARIABLES, STATIC
      VARIABLES





ox  1-DIMENSIONAL ADDRESS SPACE WIRED DIRECTLY ONTO REAL MEMORY





ox  PROGRAMS MUST BE LOADED INTO REAL MEMORY



   []  MEMORY ALLOCATION FOR REGION



   []  PROGRAMS AND BUFFERS ALLOCATED WITHIN REGION








Not To Be Reproduced             15-2                          MDD-003
                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                            _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S





   []  PREPARATORY ADDRESS MODIFICATION (ADDRESSES  MUST BE MODIFIED TO
      REFLECT LOCATION WITHIN THE REGION)





ox  LINKAGE EDITING REQUIRED



   []  ALL  SYMBOLIC REFERENCES  MUST BE  RESOLVED -  IMPLYING THAT ALL
      REFERENCED PROGRAMS MUST BE LOADED  REGARDLESS OF WHETHER OR NOT
      THEY ARE ACTUALLY NEEDED AT RUN TIME





ox  EXAMPLES:  GCOS, IBM OS/MFT, IBM OS/MVT




























Not To Be Reproduced             15-3                          MDD-003
                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                               _P_R_O_B_L_E_M_S







ox  SYSTEM ADDRESS SPACE LIMITED TO SIZE OF REAL MEMORY





ox  USER ADDRESS SPACES (REGIONS) ARE SMALL.  THIS MEANS:



   []  PROGRAMS MUST BE WRITTEN TO FIT INTO SMALL REGIONS



   []  SMALL  REGION PROGRAMS OFTEN  OPERATE LESS EFFICIENTLY  IN THEIR
      USE  OF CPU  TIME THAN  A SIMILAR  PROGRAM DESIGNED  FOR A LARGE
      REGION



   []  BECAUSE SMALL  REGION OPERATION IS PROGRAMMED  IN, SUCH PROGRAMS
      CANNOT  TAKE  ADVANTAGE  OF  MORE  MEMORY  WHEN  IT  CAN BE MADE
      AVAILABLE



   []  PROGRAMMER MUST  WASTE INGENUITY (AND SYSTEM  RESOURCES) TO MAKE
      PROGRAMS RUN IN A SMALL REGION:


      []  WRITING OVERLAY PROGRAMS


      []  DIVIDING REGION INTO OPTIONAL-SIZE POOLS


      []  PROGRAMMING MECHANISMS TO EXTEND  OR SWAP-OUT POOLS WHEN THEY
         OVERFLOW








Not To Be Reproduced             15-4                          MDD-003
                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                               _P_R_O_B_L_E_M_S





   []  PROGRAMMER TIME  WASTED WHEN PROGRAMS MUST BE  CONVERTED TO TAKE
      ADVANTAGE OF LARGER REGIONS WHEN CONFIGURATION IS INCREASED





ox  REAL MEMORY IS USED INEFFICIENTLY



   []  WITHIN A REGION, PROGRAM COMPONENTS OR DATA AREAS NOT REFERENCED
      STILL OCCUPY REAL MEMORY



   []  UNUSED SPACE BETWEEN REGIONS WASTES REAL MEMORY (FRAGMENTATION)





ox  SCHEMES FOR USING REAL MEMORY MORE EFFICIENTLY ARE COSTLY



   []  CPU COST OF MOVING REGIONS TO REDUCE FRAGMENTATION



   []  CPU  AND I/O  COSTS TO  SWAP OUT  ENTIRE REGIONS  TO SHARE  REAL
      MEMORY AMONG MORE USERS





ox  NO PROTECTION OF DATA WITHIN A REGION



   []  PROGRAMMING  ERRORS CAN CAUSE  UNWANTED WRITING INTO  PROGRAM OR
      DATA AREAS





Not To Be Reproduced             15-5                          MDD-003
                          _C_O_N_V_E_N_T_I_O_N_A_L__M_E_M_O_R_Y

                               _P_R_O_B_L_E_M_S







ox  OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING






ox  NO SHARING OF PROGRAMS AND DATA BETWEEN REGIONS



   []  EACH REGION MUST CONTAIN A  COPY OF SHARED DATA (INEFFICIENT USE
      OF MEMORY)



   []  MODIFICATIONS TO  SHARED DATA CANNOT EASILY BE  REFLECTED IN ALL
      COPIES





ox  PHYSICAL  INPUT/OUTPUT OPERATIONS  ON DISK  FILES OFTEN  BECOME THE
   RESPONSIBILITY OF THE PROGRAMMER (REDUCING PRODUCTIVITY)





















Not To Be Reproduced             15-6                          MDD-003
                         _S_I_N_G_L_E__V_I_R_T_U_A_L__M_E_M_O_R_Y

                               _S_T_R_U_C_T_U_R_E







ox  A LARGE ADDRESS SPACE USED BY THE SYSTEM (EG, 4M WORDS)





ox  THE  ADDRESS SPACE  IS LOGICALLY  DIVIDED INTO  REGIONS OF  VARIOUS
   SIZES, AS IN CONVENTIONAL MEMORY





ox  THE VIRTUAL MEMORY IS PHYSICALLY  DIVIDED INTO PAGES HAVING A FIXED
   SIZE





ox  THE ADDRESS SPACE AND THE VIRTUAL MEMORY HAVE THE SAME SIZE





ox  THE 1-DIMENSIONAL ADDRESS SPACE IS  MAPPED DIRECTLY ONTO THE PAGED,
   1-DIMENSIONAL VIRTUAL MEMORY





ox  THE VIRTUAL MEMORY  IS MAPPED BY A PAGING ALGORITHM  ONTO A SMALLER
   (EG, 256K WORDS) REAL MEMORY











Not To Be Reproduced             15-7                          MDD-003
                         _S_I_N_G_L_E__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S







ox  PROGRAMS MUST BE LOADED INTO  THE VIRTUAL MEMORY AS IN CONVENTIONAL
   MEMORY SYSTEMS





ox  LINKAGE EDITING REQUIRED AS IN CONVENTIONAL MEMORY SYSTEMS





ox  EXAMPLES:



   []  IBM OS/VS-1 OR OS/VS-2 RELEASE 1




























Not To Be Reproduced             15-8                          MDD-003
                         _S_I_N_G_L_E__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _S_O_L_V_E_D__P_R_O_B_L_E_M_S







ox  THE SYSTEM'S ADDRESS SPACE IS MUCH LARGER THAN REAL MEMORY



   []  THE SYSTEM CAN RUN MORE AND/OR LARGER USER REGIONS





ox  THE USER REGIONS CAN BE LARGER



   []  PROGRAMS CAN BE WRITTEN FOR A  LARGE REGION TO TAKE ADVANTAGE OF
      ADDITIONAL MEMORY WHEN IT IS AVAILABLE





ox  PROGRAMMER PRODUCTIVITY IMPROVES



   []  PROGRAMMERS WORRY LESS ABOUT OPTIMIZING MEMORY USAGE



   []  CONVERTING  PROGRAMS TO  USE LARGER  MEMORY CONFIGURATIONS OFTEN
      UNNECESSARY - LESS COMPETITION





ox  REAL MEMORY USED MORE EFFICIENTLY



   []  FEWER UNREFERENCED AREAS OF ADDRESS SPACE OCCUPY REAL MEMORY





Not To Be Reproduced             15-9                          MDD-003
                         _S_I_N_G_L_E__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _S_O_L_V_E_D__P_R_O_B_L_E_M_S





   []  PAGING ALGORITHM SIMPLIFIES MEMORY MANAGEMENT SCHEMES















































Not To Be Reproduced             15-10                         MDD-003
                         _S_I_N_G_L_E__V_I_R_T_U_A_L__M_E_M_O_R_Y

                               _P_R_O_B_L_E_M_S







ox  MEMORY SWAPPING MAY  STILL BE NECESSARY TO SHARE  THE ADDRESS SPACE
   AMONG MANY USERS





ox  USER  REGIONS STILL  TOO SMALL  TO HANDLE  EVERY APPLICATION.  SOME
   MEMORY MANAGEMENT STILL REQUIRED





ox  NO PROTECTION OF DATA WITHIN A REGION





ox  OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING





ox  NO SHARING OF DATA BETWEEN REGIONS





ox  EXPLICIT DISK I/O STILL REQUIRED TO ACCESS FILES





ox  THE ADVANTAGES OF  SOLVING THE PROBLEMS ABOVE MAY  BE OUTWEIGHED BY
   COSTS IN HARDWARE AND SOFTWARE OF THE PAGING OVERHEAD






Not To Be Reproduced             15-11                         MDD-003
                       _M_U_L_T_I_P_L_E__V_I_R_T_U_A_L__M_E_M_O_R_I_E_S

                               _S_T_R_U_C_T_U_R_E







ox  THE SYSTEM USES MANY LARGE (4M WORD), 1-DIMENSIONAL ADDRESS SPACES,
   ONE PER USER REGION





ox  EACH ADDRESS SPACE CONTAINS THE  SUPERVISOR PROGRAMS PLUS ONE LARGE
   USER  REGION (DIVIDED  INTO POOLS),  PLUS PROGRAMS  AND DATA SHARED
   AMONG ALL REGIONS





ox  EACH ADDRESS SPACE  IS MAPPED DIRECTLY ONTO ITS  OWN, PAGED VIRTUAL
   MEMORY





ox  EACH  VIRTUAL  MEMORY  IS  MAPPED  BY  A  PAGING ALGORITHM ONTO THE
   SINGLE, SMALLER REAL MEMORY





ox  PROGRAMS MUST BE LOADED INTO  THE VIRTUAL MEMORY AS IN CONVENTIONAL
   MEMORY SYSTEMS





ox  LINKAGE EDITING REQUIRED AS IN CONVENTIONAL MEMORY SYSTEMS









Not To Be Reproduced             15-12                         MDD-003
                       _M_U_L_T_I_P_L_E__V_I_R_T_U_A_L__M_E_M_O_R_I_E_S

                            _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S







ox  EXAMPLES:



   []  IBM OS/VS-2 RELEASE 2 (MVS)









































Not To Be Reproduced             15-13                         MDD-003
                       _M_U_L_T_I_P_L_E__V_I_R_T_U_A_L__M_E_M_O_R_I_E_S

                            _S_O_L_V_E_D__P_R_O_B_L_E_M_S







ox  THE  LARGE USER  REGIONS CAN  HANDLE ALL  BUT THE  LARGEST PROGRAMS
   WITHOUT  SPECIAL MEMORY  MANAGEMENT.  PROGRAMMER  MUST STILL DIVIDE
   REGIONS  INTO POOLS, HOWEVER,  AND SOMETIMES PROVIDE  POOL OVERFLOW
   MECHANISMS





ox  MEMORY SWAPPING IS NOW UNNECESSARY.  PREVIOUSLY SWAPPED REGIONS NOW
   OCCUPY THEIR OWN ADDRESS SPACES AND ARE PAGED IN AND OUT





ox  PROGRAMS AND DATA (USUALLY READ-ONLY) CAN BE SHARED BETWEEN REGIONS
   IN A LIMITED WAY BY OCCUPYING THE SAME POOL IN EVERY ADDRESS SPACE





ox  NEWLY SOLVED PROBLEMS MAKE PAGING OVERHEAD MORE WORTHWHILE






















Not To Be Reproduced             15-14                         MDD-003
                       _M_U_L_T_I_P_L_E__V_I_R_T_U_A_L__M_E_M_O_R_I_E_S

                               _P_R_O_B_L_E_M_S







ox  NO PROTECTION OF DATA WITHIN THE MAJORITY OF A USER'S ADDRESS SPACE
   (REGION)





ox  OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING





ox  GENERAL SHARING OF READ-WRITE DATA STILL NOT POSSIBLE





ox  EXPLICIT DISK I/O STILL REQUIRED TO ACCESS FILES


























Not To Be Reproduced             15-15                         MDD-003
                        _M_U_L_T_I_C_S__V_I_R_T_U_A_L__M_E_M_O_R_Y

                               _S_T_R_U_C_T_U_R_E







ox  THE SYSTEM  USES MANY, VERY  LARGE (EG, 256M  WORDS), 2-DIMENSIONAL
   ADDRESS SPACES, ONE PER USER PROCESS (REGION)





ox  EACH ADDRESS SPACE IS DIVIDED  INTO SEGMENTS WHICH PERFORM THE SAME
   FUNCTION AS POOLS IN MULTIPLE VIRTUAL MEMORY SYSTEMS





ox  SEGMENTS:



   []  HAVE VARYING SIZES



   []  ARE EXTENDABLE



   []  ARE FILES IN THE MULTICS STORAGE SYSTEM



   []  ARE  ACCESSED AS  READ-WRITE, READ-ONLY,  EXECUTABLE OR CALLABLE
      DATA, WITH ACCESS CONTROLLED BY AN ACL, RING BRACKETS AND AN AIM
      CLASSIFICATION



   []  ARE SHARED AMONG ADDRESS SPACES,  WITH EACH ADDRESS SPACE HAVING
      ITS OWN PERMISSION TO ACCESS THE SEGMENT








Not To Be Reproduced             15-16                         MDD-003
                        _M_U_L_T_I_C_S__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _C_H_A_R_A_C_T_E_R_I_S_T_I_C_S







ox  EACH ADDRESS  SPACE INTERSECTS IN VARYING DEGREES  WITH EVERY OTHER
   ADDRESS SPACE





ox  EACH ADDRESS SPACE IS MAPPED DIRECTLY ONTO ITS OWN PAGED, SEGMENTED
   VIRTUAL MEMORY OF THE SAME SIZE





ox  EACH  VIRTUAL  MEMORY  IS  MAPPED  BY  A  PAGING ALGORITHM ONTO THE
   SINGLE, SMALLER REAL MEMORY





ox  NO  LOADING IS  REQUIRED SINCE   ALL ADDRESSES  ARE INTERPRETED  AS
   OFFSETS WITHIN SEGMENTS





ox  NO LINKAGE  EDITING IS REQUIRED  SINCE ALL SYMBOLIC  REFERENCES ARE
   RESOLVED  AT RUN  TIME IF  AND WHEN  THEY ARE  ENCOUNTERED (DYNAMIC
   LINKING)















Not To Be Reproduced             15-17                         MDD-003
                        _M_U_L_T_I_C_S__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _S_O_L_V_E_D__P_R_O_B_L_E_M_S







ox  DATA WITHIN THE ADDRESS SPACE PROTECTED



   []  READ OR READ-EXECUTE DATA STORED  IN SEPARATE SEGMENTS WHICH ARE
      PROTECTED FROM MODIFICATION



   []  PROGRAMMING  ERRORS  REFERENCING  OUTSIDE  ARRAY  BOUNDS  CANNOT
      REFERENCE DATA IN ANOTHER SEGMENT





ox  DATA CAN BE SHARED IN A GENERAL WAY BETWEEN ADDRESS SPACES



   []  EACH SEGMENT (NOT  A COPY OF THE SEGMENT) CAN  APPEAR IN SEVERAL
      ADDRESS SPACES



   []  DIFFERENT  PROCESSES  CAN  HAVE  DIFFERENT  ACCESS  TO  THE SAME
      SEGMENT IN THEIR ADDRESS SPACE





ox  OVERHEAD  AND INCONVENIENCE  OF LOADING  (SOFTWARE) REPLACED  BY AN
   ADDRESS FORMATION SCHEME (HARDWARE)



   []  UNREFERENCED PROGRAMS (AND/OR PAGES  OF PROGRAMS) DO NOT REQUIRE
      MAIN MEMORY SPACE







Not To Be Reproduced             15-18                         MDD-003
                        _M_U_L_T_I_C_S__V_I_R_T_U_A_L__M_E_M_O_R_Y

                            _S_O_L_V_E_D__P_R_O_B_L_E_M_S





   []  PROGRAMS NEVER REQUIRE PREPARATORY ADDRESS MODIFICATION





ox  EXPLICIT I/O IS NOT REQUIRED TO ACCESS FILES (SEGMENTS)



   []  SEGMENTS  CAN BE ACCESSED  BY MAKING THEM  KNOWN TO THE  ADDRESS
      SPACE AND REFERENCING THE SEGMENT



   []  THIS IS CALLED VIRTUAL FILE I/O





ox  OVERHEAD AND  INCONVENIENCE OF LINKAGE EDITING  REPLACED BY DYNAMIC
   LINKING



   []  UNREFERENCED PROGRAMS DO NOT REQUIRE LINKING





ox  ADVANTAGES  OF  VERY  LARGE   ADDRESS  SPACE,  SHARED  FILES,  DATA
   PROTECTION, AND VIRTUAL I/O DEFINITELY OUTWEIGH THE COSTS OF PAGING
   AND SEGMENTATION OVERHEAD













Not To Be Reproduced             15-19                         MDD-003
                        _M_U_L_T_I_C_S__V_I_R_T_U_A_L__M_E_M_O_R_Y

                               _P_R_O_B_L_E_M_S







ox  MULTICS FILE I/O IS OFTEN LESS EFFICIENT THEN SPECIAL CASED METHODS
   BASED ON KNOWN ACCESS PATTERNS





ox  THE SYSTEM'S SEGMENT SIZE DOES NOT GENERALIZE UPWARD TO HANDLE VERY
   LARGE DATA BASES.  ALTERNATE (KLUDGY) METHODS MUST BE USED (SUCH AS
   MSF'S)





ox  THE OVERHEAD TO  TOUCH A PAGE OF ONE HUNDRED  DIFFERENT SEGMENTS IS
   CONSIDERABLY MORE THAN  THE OVERHEAD TO TOUCH ONE  HUNDRED PAGES OF
   THE  SAME  SEGMENT.   (IE:   SPARSE  AND  INFREQUENT  ACCESSING  IS
   EXPENSIVE)





ox  LACK  OF  EXPLICIT  I/O  CONTROL  MAKES  OVERALL SYSTEM RELIABILITY
   SUFFER  SINCE  FULL  RECOVERY  FROM  A  SYSTEM  CRASH  REQUIRES THE
   SUCCESSFUL FLUSHING OF ALL PAGES FROM MAIN MEMORY



   []  hcs_$force_write  MAY BE  USED BY  THOSE APPLICATIONS  REQUIRING
      SUCH RELIABILITY
















                                          -----------------------------------------------------------


Historical Background

This edition of the Multics software materials and documentation is provided and donated
to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. 
as a contribution to computer science knowledge.  
This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology,
Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL
and BULL HN Information Systems Inc. to the development of this operating system. 
Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970),
renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership
of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture 
for managing computer hardware properly and for executing programs. Many subsequent operating systems 
incorporated Multics principles.
Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., 
as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. .

                                          -----------------------------------------------------------

Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without
fee is hereby granted,provided that the below copyright notice and historical background appear in all copies
and that both the copyright notice and historical background and this permission notice appear in supporting
documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining
to distribution of the programs without specific prior written permission.
    Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc.
    Copyright 2006 by BULL HN Information Systems Inc.
    Copyright 2006 by Bull SAS
    All Rights Reserved