F80A_multics VManalysis_Mar83 F80A Multics VManalysis Mar83

F80A_multicsVManalysis_Mar83 F80A_multicsVManalysis_Mar83

User Manual: F80A_multicsVManalysis_Mar83

Open the PDF directly: View PDF PDF.
Page Count: 543

DownloadF80A_multics VManalysis_Mar83 F80A Multics VManalysis Mar83
Open PDF In BrowserView PDF
€.

MULTICS VIRTUAL
MEfvl0RY
ANALYSiS AN D
. METERiNG

STUDENT HANDBOOK
COURSE CODE F80A

MULTICS VIRTUAL
MEfvl0RY
ANALYSiS AN D
. METERiNG

STUDENT HANDBOOK
COURSE CODe F80A

June 1978

ISSUE DATE:
REVIS!ON:

3

REVISION DATE:

March, 1983

Copyright (c) Honeywell Information Systems Inc., 1983
The info~mation containeq herein
is the exclusive property of
Honeywell Information Systems, Inc., except as othe~~ise i~dicated,
and shall not be reoroducec, in whole or in part, without explicit
written a~thorization-from the. company.
Honeywell disclaims the implied warranties of merchantability and
fitness for a oa=ticular purpose and makes no ex~ress warranties
except as may be stated in its written agreement with and for its
custome~.

In no event is Honevwell liable to anvone for anv ind rect, special or
damages.
T~e informa:ion and 5?ecif cations in t~is
document are subject to change witho~t notice.
co~sequen:ial

the United States of America
reserved

C:URSE

FaD"

Du:ation:
~ntendec

DESCRI?~!ON

Multics V::-t'Jal Hernor\' Analvs:'s and Mete:-inc

Five Days
Fc!":

Synopsis:

?e!"sonnel
requi::ng
analysis-level
knowledge c:
Multics virtual memory imple~enta~ion, metering and
tuning.
Especially useful for personnel conce:ned
with maximizing system ?e!"for~ance •.
The Mul:ics supervisor is logically divided into seve~
olstinct
subsystems.
Tr.is
course
details the
functions pe!"formed (and the data bases maintained) by
five of these subsystems: Volume Management, Name anc
Address Space Management, Di:-ectory Control, Segme~t
Con~rol, and
Page Control. Knowledge of the virtual
memory

im~lementa:ion

eives the student

insight

io~o

the meterlnc ano tuninc of ~he system. Ot~er tc?i=s
include overviews of the M~ltics sYstem narowa:e, the
Mul:ics Supervise:-, and a ccrn?arison with ot~er me=~ry
management tec~niques.
Question anc answe: ~eri~=s
a=e given :aily tc

Cbjec:ives:

~eir.fo=ce

Uoon comoletion c: this
able to:-

-. .

~nde=s~ano

~he

~~e ~aterial

co~:-se,

f~nc~ion5

c:

p~e5entec.

the stccell: should
~he Mu:~i=s

~e

S~?~~v:sc~
~~~=~

subsystems, es~e:ially
those s~~syste~s
i~plement the Multics v:::ual memo!"y.

2•

Make optima: design choices when w:itin; sy5te~
ap?lications to !"un in the ~~ltics environment.

3.

Evaluate ane tune the svs~emts oerfo:man:e by
analyzing the system's vi:-t~al memory meters.

~re:eq~isites:

Multics Subsystem Programming (F1SD), Sour=e ~ev~l
Debugging
&
~he
Process
Environment
(F2:} cr
equivalen: experience.

Major Topics:

System Hardware Components
Volume (~isk) ~~nagement
Name S?ace/Acd:ess Space Management
Directc:v, Se~ment anc Paoe Ccnt:ol
Memory ~~nagement Techniques

Course Topic Map
to be

Insert.ed nere

ii

F80';

C~NTENTS

?age
Topic I

Design Philosophy • . . • . . .
•
Major Design Goals • . . • . .
Vi~tual Memory Organization . • .
·
Selective, Cont~olled Shari~g
Security . . . • . . . . • • .
·
Open-Ended, Modular System • . . • • . .
·
Decentralized Administration.
~lexible User Interfaces.
Continuous Ooeration.
·
Reliable File System • • . .
·
Rem~te Access . . . • . .
·
E£:icie~t Service to Large ~r Small Users . .

M~ltics

'.

~.~
..

..... _
~ _
~

'-"~

~ ~
..I..

~.:

a~d

Interr~~t

1-3

:-5

1-6
1-8
1-9
1-12
1-13
.,.
~-...;..-:-

·

1-15

-

\.

., .· ,--,

. . •

· 2-:';

2-:'7

Seg::1ent Con£rol
Page Co~trol . . . •
?raffic Control .
Fau~t

I

~

· 2-4
· 2-6

'-~.;jl:..~\".I.

V~lume M~nacement .

,-

~

.,-~

~.-..

_I.I~y

.J.-~

· .

Ove:-view of the Op~rating S~·s~-=:.
.
- Struct~re of tne O?erat~ng ~yste=.
W~at is the Multics Suoervisor . .
The Major Super7isor Subsystems .
Name
Space/Address
Space M~nagement • .
___ ........ _ ..
__ .. __ J/IIIIa,
J.J ..... 'e ....

· .

·..·.

2-2~

Hancli~c.

Svste~ !nitialization.

• 2-27
· 2-30

~

File System Salvagers .
& Tuning . . .

~etering

•

./
.. -

_~

"""
W'

:nitializer.Sys~aemon

Topic

'!'o!=,ic :V

.;.ne Multics Environment •
What is a Process . .
Coooeratino ?~ocesses . •
The - ?L)I Opera to:-s..
..•.
Interfaces to SV5tem Modules . .
Deadlock Preven~ion • .
Types of ~ocks . . • . . • . . . .

-~--.
· ,_.

~.

•

•

• •

•

ow

•

• ~ - 4:

· 3-7
3- c

·

-'

3-:5

Name Soace and Address Space Management .
Name/Address Space Overvie- . • .
. . • • .; - 5
Name/Address Space Terminology.
Name/hcdress Space Concepts • . .
· ';-7
Name/Address Space ~ata Bases . .
· 4-:2
Refe:-ence Name Table (RNT) . .
Known Segrne~t Table (KS~) . .

-; .~

;

F80A

CONTENTS (con't)
Page
Descrio:or Secment (DSEG)

Typical Ao~ress Space . . .

'-:6

Name/Acdress Soace Meters . .
. ...
systerr._link_rneters • • • • . . . • . .
1:' n k me t e r 5 •

•

•

•

•

•

.

Name/Aocress Space COll~ands •
display_kst_entry • • • •
Topic V

•

•

•

4-3:
4-31
• • . · • 4- 32
• • •
4-33
• 4-33

Directorv Control . . • • • • . .
5-1
Directory Control Overview:.
• ••••
5-1
=. - ..,
Directorv Control Terminology ••
Direc:or; Control Data Bases.
• • 5;..6
Directory Sesme~ts.
5-6
Directorv Header . . . • .
5-9
Director}' Entries" ••
5-11
Directory Control Commands ••
5-15
disp:ay_branch . • . • . • . .
5-15
-~,;)

·...

·...

Volume l".anagement • • • • • • • •
Vclu~e Ma~agernent Ove=vie~ • .
~b,:.
C:"c-a~o
....:- Ne-'.. _
_ .. ': . . Svst-e,_ _ •• i.: .....
~

I

Vo~~~e

~3~agemen:

Vol~~e

M~~aoement

6-:-1
6-1

6-4
6-13
6-15
· . 6-15

•

••
Data Bases • .
Termlnc~ogy

'Jclt:::,-:: Label.
"..7 01 \;17. e Ma p . •
::J um::~:, 3 i t t-le. p •
\r'!'OC pia p . . . •

6-22
6-2'

.

?hys:':al Volume Table (PV'!)
:.,~gi:a: _Vc1':liite Tab~:

•

6-2:-

(L~~) • • •

"

•

?nys: ;:a1 VOJ. ume Ho.i.C Ta~.!.e.
Vclk~e ~znacement Ooerations . . . • • . • .

Acce:::.ance of ?hvsical Volumes • •
Demc~~ting of ?h~sical Volumes.

:'ogi::al Volu::-te

}I~nage!Ilent.

VO:. \"',:ne . }-!=l;"lage~7nt Co~an~s.

~~ln: CCn!lCura:lon oeck . .
iist ;ols .-.
.- • • •
di s'Olav label .. a " e
disolaY-~vte • • . . • .
• • • • .
Volume ¥~naoemen: Meters ••
di sk meters • •
device meters • • • • •
disk_queue.
•

·...

Topic V!r

Segment Control • • .
••..
Seament Control Ove~vie~ • • • • .
Seoment Control Terminology • • • • • •
Seament Control Data Bases ••
- Volume Table 0: Contents (\~OC) • • .
';ctive Segment Tatle (AST) . . • • .

iv

·

· 5-27

6-~O

• 6-32
• 6-32
· 6-25
6-37
6-38
6-38
6-40
• 6-41

. . 6-42
· 6-'3
• 6-~3
·

• 6-44

. • 6-45
7-1
· 7-1
• i-4

· 7-5
7-5
· 7-11

F80A

CONTENTS (con't)
Page

•

of Segment Control .
· . 7-25
Creatine Secments .
· . !-2::
Secment·Fauit . . .
• 7-25
Seoment Activation.
. .•.
· 7-28
Segment T~ailers . • . . . . . .
7-30
Boundsfault Handling . . . • • •
7-32
Secment Deactivation • • . . .
• • • 7"'35
Swi~ary of ~~jor Services .
· • • 7-37
Encacheability • • • • • .
· 7-38
7-38
~runcating Segments
.•••
Deleting Segments . • • . . . .
• 7-40
. • . . . 7-42
Other Services • • • •
Segment Control Meters • .
• 7-4-4
file_system_me~ers • . . . • • .
• i-4~
7-46
.
vtoc buffer meters • .
Segment Control-Commancs ••
· • 7-4i
p:- in t_aste_ptp. • • • • .
• 7-';7
7-48
cump_vtoce . . . • .
Se~vice5

0

Tc~ic

V!!!

Page

•••

e

0

Co~t:-ol • • • . . • .
Pace Control Overview
. • . . .
Page Control 7e:-minology . . . . .
?aoe Control ~ata Bases . • .
- Page Tables • . ~ • . . . . . .
Core Map • • • • • . : • • .:_ •..• :
System Segme~t Tac~e (5S!) ~eaoer
O~he= ~ata Bases • • • . . . . •
Services of Paoe Control. . . • . .
?aoe Fault-Handline • . . . • .
..oos-".. .th'rcing
..- --, . . ..""
. ...
Page Control Meters • • •
file - svstem
.
- meters . •

Traific Control . •
Traf£ic Cont~ol Overvie- . . . . . .
Traffic Control Termino~ogy
Traffic Control Data Bases . . . • •
te data ••
••••.
Services of Traffic Control .
Wait Locks . . . . • • . • . . .
Processor Multiplexing.
Tra f f ic Control Meters. • . .
total_time_meters . . . . . . . .
traffic control mete~s.
traffic-control-cueue
~ork_class_meters

respons_meters . • . . .
pcst_purge_meters . . • .
Traffic Control Commancs . •
-~:int
- tuninc
---cararneters .
en:rv
P ri~t - aot
.
. •...

-

v

· . . 8-1

· . ...
::: -

-.

c-

· • 8- 6

· 2-6
G_C
•

c·

..,

• 2-:"3

.-

·

""
c...

•

o-~:

·..

.-=
=-.~
...

,...

-.--'

· 8-25
• 5-2E

· ,.9-1.

-- -.
,.,

·

.

c...,-,:)-

·
· .
·
•
·
· .

·
•
.
.
•
.
.
·

9-5
5-8
9-6
9- 9
9-15
5-:' 6
9-19
9-21

· . .

c.,,-~~
--

· - - ..

::-~-:'

· 9-26
· 9- 27
9-2i

9-2=

F80.:"

COl\~EN~S

(con't)
Page

Paul: ar.c Inte~~upt Handling . . . . • . .
· . 10-1
Paul: and !nte~rupt Handling Ove~view
· . 10-1
Fault and In:errupt Da:a Bases.
. . . . 10-4
Fault anc !nterruo: Vectors
10-4
"'" ,
Foul: Data Save Areas
. • • ~v-e
Important Types of Faults .
• • 10-7
Fault/l~:errupt Mete~s.
. . . • . 10-12
fi~ meters • • . .
~
. . . .
10-12
interrupt_meters . • • • • . . . . . . . . 10-13
5

To~ic

XI

•

System Initialization/Shutdown • • .
System Initialization Overview . .
Svstem Initialization Terminolocy •
Initialization Data Bases . . . - . • •
Environment Passed to Initialization.
Collection O••
~
*
•
a

••

•

"

·
·

o

•

Colle=~ion

1 . ..
Collection 2 ••

Collection 3.
Normal Sbutdo~n • . . . • .
File SVstern Shutdo~n . . . . .
Emerge~cy Shutdown.
File SV3:em Salvaoers .
Overvie~ of Salvagers .
D:~ec~c~y Salvager . .
Quc:a Salvaoino . . . .
Physical velum; Scavenger •
Physical Volume Salvager.
sweep_pv . • • . • . .
Topic

i::!!

Tne !nitializer.SysDaemon ?rocest
lnitializer Overvie~.
. •.•
Se~vices of Initialize! • .

• • 11-4· 11-7
11-10
•
•
11-11
11-12
· 11-14

11-16
· • 11-17
· . :1-18
· . 11-20

12-1
. .

.

. 12-4
12-i
· 12-9
'I .,-., .,
........
• • 12-:'2

· .

~-

- .
.....

13-1

..

•

Metering anc Tuning . . . • ".
·
Meter and Tuning Ove~view • • •
Analyzing Performance Problems • .
•
Detailed Problem Analysis • . •
Output From Metering Commands .
•
~
total time meters • • •
. ...
inter~u~t meters . •
file_systern_meters.
file_system_meters • • •
device meters • . •
•
disk meter~ • • ••
•
disk-oueue . • • • • . • . •
p~int~configuration_deck • . . • • • .
list vols . . . . . • .
traf:ic control Queue .
·
tra:fic:control:meters.
·

vi

. 11-1
• 11-.1

•

..

~-;

~~-.j

• 14-1
14-1
• 14-3
14-6

• 14-8
. 14-8
. 14-9

· 14-10
14-:2
. 14-13
. 14-14

14-:'5
14-16
· 14-18
. 14-19

. 14-21

FSOJ..

CO!\TEN':'S (con't)
Page
orint tuninc oa:ameters
work_class_mete:s •
respons_meters.
systern_performance_graph.
meter_gate .
Tcpic

xv

:4-23
:'4-~'

14-25

:'-27

:4-29.

Evolution of Memory Addressing/Management
Conventional Memory .
.
Structure
Address Formation
Characteristics
Problems.
Single Virtual Memory
Structure
Address Formation
Characteristics
Solved Problems ..
Problems.
Multiple Virtual Memories
St!:'ucture
~dc!:'ess Formation
"
Characteristics
Solved Pro~lems
Problems.
Multics Virtual Memory.
Structure
Address :orcation

.

Charac~eristics

Solved Problems
Problems.

.........
;

;

15-1 ..

-

15~1

_'I ...s::_

'I

.. 15-1
15-1
15-4
15-7
15-7
15-7

:5-7
15-9
:5-10
15-11
15-1:

=- _....

~ -'
-

I

•

1:-11

15-13
15-1';

-

~ ~- ......
.,..w

15-15
.: 5-:' 7-

15-19

F50A

THIS PAGE INTENTIONALLY LEFT BLANK

TOPIC I
Multics Design Philosophy

Page
Major Design Goals • • • • • .
Virtual Memory Organization • . • • • . • • •
Selective, Controlled Sharing ••
Security . • • . • • • • ~ • .
Ooen-Ended, Modular SYstem • ..• • • • • • • • .
Decentralized Administration •
• ••••
Flexible User Interfaces .
Continuous Ooeration
Reliable File System
Remote Access. • . .
Efficient Service to Large or Small Users . •

1-i

1-1

· • 1~3
• 1-5

1.-6

. .· .. 1-8

1-C

~

."

· 1-11

• 1-12
·

.....
.

-

. 1:-13
· 1-14

· 1-15

FSGA

~.JOR

:NFO~V~T!ON

AN~

DESIGN GOALS

COMPUTING SERVICE (WJLT!CS)

~

WJL~I?LEXED

z

MULT!CS WAS ONE OF THE FIRST OPERAT!NG SYSTEMS- --TO BE
DESIGNED FROM THE:TOP P2~J THE DEVELOPERS:

~HOROUGHLY

STARTED WITH A SET OF GOALS

CREATED A SYSTEM WHICH WOULD SATISFY THESE GOALS

DEVE~OPED
GENERAL
(Y~KING ~HE PRODOCT

?ROD~CED

A VIABLE

Net 70 Be Reproduced

SOLUTIONS
!NSTEAD
EXTENDABLE)

AN~

Y~.RKETABLE

1-1

OF

SPECIFIC

SOLUT!QNS

?RODUCT

F5CA

Y~JOR

z

~ESIGN

GOALS

THESE GOALS ~~RE CARE:G~LY CHOSEN TO CHARAC~ERIZE A
COM?UTER SYST£~, AND ARE O~T:!NE~ BE:OW:

VIRTUAL MEMORY ORGANIZAT!ON

SE~ECTIVE,

CONTROLLE~

SHAR!NG

SEC~7.!TY

OPEN-EN::>ED,

M~DU~AR

DECENTRALIZED

SYSTEM

AD~!N!STRAT!ON

FLEXIBLE USER ~l\!~~~='2,."'~C:
_.... - .-..."'- ............... ,

EN~-USER

ORIENTATION

CONT:NUOUS OPERATION

REL:ABLE FILE SYSTEM

REMOTE ACCESS

E:F1 C: ENT SERV: CE TO LA.RGE J..ND S¥.J..I..L USER

1-2

tUTI::~Y-GRADE'

V!R~UA:

~

M~MORY

ORGANIZATION

MOTIVAT!ON

n

!NFORY~TION STORED ON-LINE IN
LARGE INFO~~T:ON UTILITIES OFT£N
EXCEEDS THE SIZE OF AVAILABLE MA!N ~~MORY

TBIS
!NFOR¥~T!ON
SHOL~D
BE
ACCESSIBLE EY THE USER COMMUNITY

TEE SIZE OF MAIN ME}~ORY
?ROCESSING CAPABILITY

(AND

CONTINUOOSLY)

SHOuLD ONLY AFFECT PROCESSING TIME, NOT

MAIN MEMORY MANAGEMENT SHOULD
SYSTEM, NOT THE PROGRA~R

~

DIRECTLY

BE A TASK

FOR

THE-OPERAT!NG

IMPLEMENTATION

ALL ON-LINE

INFOR~TION

IS PROCESSOR ADDRESSABLE

ALL !NFOR~TION (PROCEDURE AND DATA)
UNITS CALLED "SEG¥£NTS" ALLOWING THE
WITH EACH SEGMENT(l)

( 1. ) TERODGi-:OUT THIS DOCUMENT,

DIR£CTOR:ES AS
OF SEGMENT
No: To Be Reproduced

W~~~,

IS COH?AR':'MEN7;'.:": ZE:) :NTO
ASSOCIATION OF ATTRIBUTES

GE~ER:C RE:E~ENC::S
~:RSCTCR!ES ARE

SINCE

:'-3

TO "SEGMENTS" INC~~~E
SIMP:? A S?EC:AL K:KD

FSOA

· D

SEGMSN~S

ARB

¥~.DE

?ROC£SS

ADD?'£SSAB~E

AS

T~~Y

ARE

R~F~RENC~D

A.~L SEGMENTS ARE D:V!DE~ INTO AN :NTEG?..AL Ntw.EER OF il02~ WOlO··
PAGES. THESE PAGES ARE EROUGHT INTO MAIN MEMORY IF -AND ON:Y IF
- THEY ARE REFERENCED (NEEDED) -AT THE ':'IME THEY ARE REF5RENc-BD -BY- ~.
ANY PROCESS

THB WJLTICS HARDWARE INTERPRETS ALL ADDRESSES AS OFFSE':'S WITHIN
A SPECIFIED SEGMENT (SEGNOIOFFSET)

H~RDWARE MAKES
NO DISTINCTION BE7~~EN PROCEDURE AND DATA
SEGMENTS. BOTH ARE PAGED IN THE SAME ¥~NNER, 30':'H ARE ADDRESSED
!N THE SAME MANNER

~HE

ALL COM?ILERS PRODUCE LOAD MODULES - NO MODIFICATION IS REQUIRED
TO EXECUTE PROCEDU?£ CODE

Not To Be Reproduced

FSOA

SELECTIVE, CONTROL:ED SHARING

~

MOT!VATION

n USERS SHOULD BE

ABLE TO OSE COMMON PROCEDurtE
DIRECTLY (NOT COPIES)

AND

OSERS= SHOULD BE ABLE TO SHARE PRIVATE CODE IN A

~

~ATA

S~GMEN~S

SELECTIVE_~;~NER

IMPLEMENTA~ION

D PURE, REENTRANT CODE IS ALWAYS GENERATED
(hLLOWING
SHhRING OF
?ROCEDURE CODE
IN
ENVIRONMENT)

EVERYTHING THE USER .TOUCHES (EXECUTS
SEG~~NT HAV:NG ITS OWN ATTRIBUTES

THE

ACCESS ATTRIBUTES

OF EACH

SEG~~NT

OR

3Y-

THE'-~OMP!LERS

A MCLT!-?ROCESS

~EFERENCE)

ARE

~I~L

ESTABLISHED BY

BE A

~HE

OWNER OF THAT SEGMENT

Not To Be Reproduced

:SCA

SECuRITY

__ - -

n

- _II

IN AN E~~IRONMENT OF SEVERAL COEXIST!NG ?ROCESSES, USERS WJST BE
PROTECTED FROM ACCIDENTALLY OR INTENTIONAr..:'YINTERF-ER!NG- WITH
EACH OTHER

THE SUPERVISOR MUST EE PROTECTED FROM

CHANGES IN ACCESS TO

INFO~~TION

~AMAGE

BY USERS - -

WJST BE !MMEDIATELY EFFECTIVE

D!SCLOSURE OF INFORMATION SHOULD BE ALLOWED IN A SELECTIVE AND
CONTROLLED MANNER (VERSUS ALL-OR-NONE APPROACH)

UNWARRANTED DEN:J..L OF ACCESS TO : NF O?JIJ..T I ON MlJST EE PROHIBITED

e

IM?LEMENTATION

PER-SEGMENT ACC::SS CONTROL LIST (ACL) HOW THE SEGMENT y~y BE ACCESSED

D

S?ECIFYING BY WHOM AND

RING PROTECTION Y£CHANISM - :SOLATES SEGMENTS AND PROCESSES

ACCESS !SO~AT~ON MECHANISM (AIY.) TO CATEGORIES Ah~ SECURITY LEVELS

PASSWO?~S

ISOLATES SEGMENTS

ACC~?~:NG

AND AUDIT TRA!LS

Not To Be Reprocu:ec

:-6

?8QA

SECURI':'Y

Jones.ProjA.a
Top Secret/NATO

Ring 4

o

ACL

AIM

"'---<"'----1

(Yes)

:1

_ _ _IIiiiiiII"'_ _1IIIIIIj1 (No)
1-1

~I

11----:..;----tl
1.1.1

RING

1

8

(Yes)

<:1

l

SEGMENT

Not To Be Rep:oduced

rw

·.ProjA. •

--"-~----4...Se_c_re_t_1
A_ir.F.o.rce
_
__
Rir.g Brackets
1,7,7

1-7

F80h

O?EN-EN~E~,

SOF7~ARE

- - -{1="

SliOU:'D BE EAS!" TO

MJDU~AR

M"~:J:

'rHE OPERA~: NG SYSTEM SliOULD BE
BE COMPREHENS!BLE

SYS7E~

ry AND EXTEND

l~ODULAR,

AND THE MODULES SHOU:'D

MoDULAR DES I GN OF OPERJ.. TI NG SYSTEM AND USER PROGMMS (COM?! LERS
PROGRAMMING E~~IRONME:NT ENCOURAGE MODULAR DESIGN)

UN::OR~

n"

PROGRA~~:NG

CONv~NT!ONS

MORE" THAN 92% OF THE
"FROM ?L/I SOuRCE

DYNAY.ZC
UN-BO~ND

ON-L:NE
(~:J~T!CS

INSTAL~ATION

THROUGHOUT MOST

OBJECT CODE ORIGINATED

RE-COM?!L:NG,

RE-ED!T!NG

~-iEl~

7-ESTING AND !NS7ALLAT!ON OF SYSTEM MODuLES
FACIL:TY - MIS)

::BR~?Y MANAGE~NT TOO~S

No: To Be Rep:ocuced

FOLLO~ED

O?ERATING SYSTEM

LINKING (ELIY.:NATES
MODULES ARE RE?LACED)

M~D!FICAT!ON,

ARE

I

AND LIBRARY

1-8

CO~v~NT!ONS

F80A

DEC~N7RAL!ZE~

o

AD~:N!STRAT~ON

MOTIVATION

SYSTEM RESOuRCES

~uST

BE EFFECTIVELY

RESOURCE ALLOCATION, ACCOUNT!NG,
TOO MUCH FOR SINGLE INDIVIDUAL

ADMIN!STERE~

REGISTRATION,

-~:LLiNG,

~TCi

IS

DIFFERENT GROUPS OF USERS HAVE DIFFERENT ADMINISTRJ.TIVE NEEDS

~

IM?LEMENTATION

GROUPING OF USERS, BY FUNCT!ON OR MANAGEYXNT,

T~REE-LEVEL

?RCJECTS

HIERARCHY OF ADMINISTRATION

SYSTEM ADMINISTRATOR:
ATTRIBUTES TO ?ROJECTS
PROJECT ADM!NISTRATORS:
ATTRIBUTES TO OSERS
USERS:

:N~O

HAS

DISTRIBu~ES

RESOURCES

DISTRIBUTES RESOCRCES

FULL CONTROL OVER

ALLOCATED

AND

ASSIGNS

AND ASSIGNS

RESO~RCES,

MC~:F!SD

BY ASSIGNED ATTR!BUTES

THE ?ROJECT ADMINISTRATOR ~~y PASS DO~NWAR~ ONLY THOSE
AND ATTRI BUTES THAT HAVE BEEN G!·JEN TO 7EE ??OJECT

Not To Be Reproduced

:-9

F80~.

DECEN~RAL!ZED

A~M!N:STRAT:ON

PROCESS ATTRIBUTES

. ATTRIBUTES
ASSIGNED
TO
USER May

ATTRIBUTES
ASSIGNED
TO
PROJECT ABC
INTERSECTION
OF ATTRIBUTES
(COMPUTED AT
LOGIN TIME)
GIVEN TO May's

ATTRIBUTES
ASSIGNED
Tn
.\.1

PROJECT DEF

,

PROCESS

ATTRIBUTES
ASSIGNED

TO
USER Jones

ADDITIONAL DATA
ABOUT May's
PROCESS

SYSTEM AOMINISTRATION TABLE
(>sc1 >sat)
CREATED AND MAINTAINED
BY SYSTEM ADMINISTRATOR

PROCESS INITIALIZATION TABLE
([pd}>pit)
Ar...!SWERING SERVICE
TABLE ENTRY
(ANSWER_TABLE.
ABSENTEE_USER_ TABLE.
DAEMON_USER_ i ABLE)

PROJECT DEFINITION TABLE
C> SCl >pdt>ABC.pdtj
CREATED AND MAINTAINED
BY PROJECT ADMINISTRATOR

CREATED AT LOGIN
DESTROYED AT LOGOUT

Not To Be Reproduced

1-:"0

:80';

FLEXIBLE USER

z

IN~ERFACES

MOT!VATION

~

r

~

THE --- STANDARD
USER-MOD!FIABLE

ENVIRONMENT

USER

EXTENSIVELY

SHOUL~

- 0- THE

-CAPABILITY SHOu~D EXIST TO DEVELOP AND IMPOSE - CLOSED
SUBSYSTEMS WHICH CAN PROV:DE ANY DESIRED ENVIRONMENT

G

I MPLEMENTAT!ON

USER-HAS ABILITY TO CHANGE
USER'S RING

OR REPLACE CONTROL

PROGRAMS ! N ..~H::

PROJECT ADMINISTRATOR CAN !MPOSE A CLOSED SUBSYSTEM ENVIRONMEN7
OR A DIFFERENT orocess ove=seer ON USERS

-

-

start_up.ec,
ABBREV
PROCESSOR,
general_ready,
add_search_rules, COND!TION HANDLING, ETC.

OTHER
TOOLS
PROVIDE SIMULATION,
(enter_Iss, project_start_up_)

ENCA?Su~AT!ON

CA?A3!LI'!':

STANDA?~ INTERFACE FOR
INTERAC~IVE SUBSYSTEMS (ssu ) ENCODRAGES
UNIFORM, FAMILIAR BEHAVIOUR OF USER SDBSYSTEMS.
-

Not To 3e Re?=ooucec

1-11

FSC.;

CONTINUOUS OPERATION

£

M07:VJ..TIOl\

SYSTEM SHOuLD BE

AVAILABLE ON

DEY~ND

A~

A~:

TIMES

£

!MPLE~..ENT1-.TI

ON

ON-LINE SOFTWARE

-D-

!NSTAL~ATION

ON-LINE MAINTENANCE: MOVE MORE AND MORE BOS
MULT!CS (EG: RE-BOCT FNP FROM MULTICS)

ON-LINE

BACKUP AND

CAPABILITY INTO

P~COVERY

ON-LI~E

ACCOUNTING AND BILLING

DYNAMIC

RECONFIGL~ATION

DYNAY.IC FA!LSOFT DECONFIGURATION OF FAILING

HA?~WARE

UNATTENDED SERVICE

AUTO¥~TIC

RE300T

Not To Be Rep:ocucec

1-12

FSO';

RE~IABLE

~

FILE SYSTEM

MO'!'IVATION

WJST PROVIDE USERS
IS SAFE

SO~S

ASSURANCE THAT THEIR ON-LINE

MUST PROVIDE CHECKPOINT CAPABILITY
OR SYSTEM DISASTER

~

INFO~~T!GN

FOR RECOVERY FROM USER ERROR

I M?LEMENTA'!'! ON

AUTOMATIC

BACKUP/RETR!EVA~

CONSOLIDATE~

FACILITY

STORAGE SYSTEM DUM?S

?HYSICAL AND LOGICA:' SAVE/RESTORE

ALL STORAGE SYSTEM RECOVERY ?ROCEDURES RUN Wrl!LE SYSTEM IS UP

n

Not

~o

D~~GE

RECOVERY RUN

Be Reproduced

AUTO¥~T!CAL~Y

:'-1.3

FOLLOWING

SYST~~

FAILORE

F80.;

REMOTE ACCESS

UT:L:TY CONCEPT:
ANY REMOTE DEVICE

t-

WISB

TO

FUL: ACCESS

FRO~

ANY PHONE IN

THE

wriE~HER

PROVIDE ONE "COMY~ND LANGUAGE", TO SERVE
LOCAL OR REMOTE, INTERACTIVE OR BATCH

MULTICS

CO~uNICATION

WO~D

VIA

ALL USERS,

SYSTEM (MCS)

IN PRINC!PLE, ANY REMOTE DEVICE/TERM!NAL IS CONNECTABLE

SINGLE

COMMA~~

LANGUAGE

REMOTE JOB ENTRY (RJE) AND

DIRECT

ATTACH~3NTS

Not To Be Reproduced

Bw~K

I/O CAPABILITIES

TO PUBLIC DATA NETwORKS VIA X.25

1-14

:80;"

E=F:C~EN~

z

SERVICE TO LARGE OR

S~~LL

USERS

MOTIVATION

n-

UTILITY CONCEPT:
OF, ANY SIZE TASK

SYSTEM

SHOuLD BE AVA!LABLEFOR,-AND CAPA3LE

RUNN!NG BOTH LARGE AND SMALL
THE EFF!CIENCY OF ErTHER

z

TASKS TOGETHER

SHOL~D

NOT IMPACT-

!MPLE~~NTATION

- ~-

DYN~M!C

RESOuRCE ALLOCATION (DON'T
RESOURCES REQUIRED)

HAVE

TO

?RE-ALLOCATE-OR

GUESS-TI~~TE

SERVICE ON

DE¥~ND

DYNAMIC SYSTEM TUNING TO ACCOMMODATE CHANGING SYSTEM WORKLOADS

No~

To 3e Rep:ocucec

1-15
(End 0: Topic)

?80A

STRUCTURE OF THE OPERATING SYSTEM

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
Functions" (AG92)

MANUAL

"Multics Commands

and Active

n ADMINISTRATIVE ROUTINES (200)
DESCRIBED IN THE MAM MANUALS "System Administrator" (AKSO),
"Reaistration & Accounting Administrator" (AS68)1 "Project
Administrator" (AK51)

OPERATOR COMMANDS .(150)
DESCRIBED IN THE MANUAL "Operator's Handbook" (AM81)

Not To Be Reproduced

2-2

F8QA

WHAT

~

~

THE MULTICS SUPERVISOR

WHAT IS THE MULTICS SUPERVISOR?

o

A COLLECTION OF MANY
FUNCTIONS OF MULTICS

LOGICAL

SUBSYSTEMS WHICH

IMPLEMENT THE

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

n THESE SUBSYSTEMS FALL INTO FOUR MAJOR GROUPS:
n THE FILE SYSTEM
SUPPORT SERVICES FOR THE FILE SYSTEM

o MISCELLANEOUS SUPERVISOR SERVICES
SUBSYSTEMS
SUPERVISOR

RELATED

TO,

BUT

NOT

STRICTLY

PART

OF

THE

THESE DIVISIONS ARE SOMEWHAT ARTIFICIAL, BECAUSE THE SUBSYSTEMS
ARE ALL INTIMATELY RELATED TO EACH OTHER.
THE ~IV:SIONS
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

n - .TOGETHER, ALL THESE SUE SYSTEMS I MPLEMENT THE FUNCTIONS DESCRI BED
IN THE MPM SUEROu~INES AND SWG MANUALS, (ESSENTIALLY nes AND
THE VIRTUALS MEMORY).

Not To Be Reproduced

2-3

;-80;'.

THE MAJOR SUPERVISOR SUBSYSTEMS

~

MAJOR MULTICS SUPERVISOR
SUBSYSTEMS EACH

SUBSYSTEMS:

FOUR

GROUPS OF

ABOUT· FOUR

D THE

FILE SYSTEM - THOSE SUBSYSTEMS w-rlICH ARE CONCE~~ED WITH
STORING DATA, MANAGING DATA, AND MAKING IT AVAILABLE TO USERS.
FIVE MAJOR COMPONENTS:
NAME SPACE / ADDRESS SPACE CONTROL
DIRECTORY CONTROL
n

VOLUME MANAGEMENT

n. 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-4

F8QA

THE MAJOR SUPERVISOR SUBSYSTEMS

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

D BECAUSE THEY ARE NOT DIRECTLY

RELATED, THEY WILL NOT BE COVERED

IN ANY DETAIL

n MULTICS COMMUNICATIONS SYSTEM
n

RESOURCE CONTROL

o

USER DEVICE I/O

n

LOW LEVEL SUPERVISOR I/O

o

RECONFI GURATI ON

D

SYSTEM ERROR HANDLING (syserr / verify_lock)

=

ioi

RELATED SUBSYSTEMS
THESE ARE NOT
SUPERVISOR, BUT ARE CLOSELY RELATED

ACTUALLY

PART

OF

THE

METERING AND TUNING
THE Initializer.SysDaemon

lID

THE MULTICS SUPERVISOR
CONCEPT

Not To Se Reproduced

IS DESIGNED

2-5

AROUND THE __ "LAYERED MACHINE"

F80A

THE MAJOR SUPERVISOR SUBSYSTEMS

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 WtiICH
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

n ETC

~

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

z

THE FOLLOWING DIAGRAM REPRESENTS THIS MAPPING:

Not To Be Reproduced

2-6

F8QA

THE MAJOR SUPERVISOR SUBSYSTEMS

THE MULTICS SUPERVISOR
COMPONENTS ARE ASYNCHRONOUSLY INVOKED

Not To Be Reproduced

2-7

F80A

NAME SPACE/ADDRESS SPACE MANAGEMENT

~

FUNCTION

IMPLEMENT THE PER PROCESS VIRTUAL MEMORY

~

BASIC PHILOSOPHY

n 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 ACCOMPLISijED

FOR

EVERY SEGMENT REFERENCED BY THE USER, THE SUPERVISOR:

n ASSIGNS A SEGMENT NUMBER (FOR REASON OF HARDWARE ADDRESSING),
" "T'n
.n.J."""

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
IN THREE COMPLEMENTING AREAS: DSEG, KST, AND RNT

Not To Be Reproduced

2-8

F80A

NAME SPACE/ADDRESS SPACE MANAGEMENT

o MANAGES TWO DISTINCT SETS OF INFORMATION:
o

ADDRESS SPACE - CORRESPONDENCE BETWEEN
THE SEGMENTS THEMSELVES

n

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

SEGMENT NUMBERS AND

D CALLS DIRECTORY CONTROL TO LOCATE SEGMENTS INITIALLY

o

~

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

PRINCIPAL USER INTERFACES

n COMMAND LEVEL
initiate, terminate, terminate segne, terminate ref name,
terminate single ref name, lisI ref name
--

-

-

--

-

THE COMMAND PROCESSOR ITSELF - WHICH
LOCATE COMMANDS

USES THESE SERV:CES

SUBROUTINE LEVEL
U

hcs_Sinitiate, hcs_Sinitiate_count_, hcs_sterminate_file,
hcs_sterminate_seg, hcs_sterminate_name,
hcs~$terminate_noname,

Not

~o

3e Reproduced

term~

2-9

~O

NAME SPACE/ADDRESS SPACE MANAGEMENT

z

MAJOR DATA BASES

D' DESCRIPTOR SEGMENT (DSEG) - ONE PER PROCESS

D SEGMENT DESCRIPTOR WORD (SDW) - ONE PER KNOWN SEGMENT

DEFINES THE USER'S ADDRESS SPACE TO THE HARDWARE

n KNOWN SEGMENT TABLE (KST) - ONE PER PROCESS

8 KNOWN

SEGMENT· TABLE ENTRY (KSTE) (EXCEPT SUPERVISOR SEGMENTS)

DEFINES THE
USER

n

USER'S ADDRESS SPACE

ONE PER

KNOWN SEGMENT

TO THE SUPERVISOR

AND THE

KSTE ASSOCIATES A USER'S SEGMENT NLTMEER WITH THE SEGMENT
CONTROL ATTRIBUTES OF THAT SEGMENT
THE SEARCH
NUMBER

FOR

AN

AVAILABLE KSTE

DETERMINES

A SEGMENT'S

REFERENCE NAME TABLE (RNT) - ONE PER EACH RING IN EACH PROCESS
NOT A SEGMENT - KEPT
AREA" FOR EACH RING

AS A REGION ALLOCATED

IN THE "LINKAGE

REFERENCE NAME TABLE ENTRY (RNTE) - ONE PER REFERENCE NAME
n

USED
BY
THE
DYNAMIC
.LINKER
"initiated_segments" SEARCH RULE

Not To Be Reproduced

2-10

TO

IMPLEMENT

THE

F8GA .

NAME SPACE/ADDRESS SPACE MANAGEMENT

DEFINES THE USER'S NAME SPACE TO THE USER

o

NAME SPACE
PROCESS

Not To Be Reo=oduced

MAY BE DIFFERENT

2-11

IN DIFFERENT RINGS

OF THE SAME

?80A

DIRECTORY CONTROL

z

FUNCTION

n

DIRECTORY CONTROL
THE.MAINTENANCE

IS A SET OF

HARD CORE MODULES RESPONSIBLE FOR
STRUCTURE == IE:

OF THE MuLTICS DIRECTORY

HIERARCHY

ITS TASKS INCLUDE CREATING, MANIPULATING AND INTERPRETING THE
CONTENTS OF DIRECTORY SEGMENTS, TO INCLUDE:
ACCESS CONTROL LISTS (ACL'S), NAMES, AND
ENTRI ES DESCRI BED THE'REI N

ONLY DIRECTORY CONTROL IS
DIRECTORY SEGMENTS

ALLOWED

TO ALTER

VTOCE POINTERS OF

THE

CONTENTS OF

DIRECTORY CONTROL

IMPLICITLY RELIES UPON THE SERVICES OF OTHER
CONTROL AND P.~GE CONTROL, AND ALSO
INVOKES THEM DIRECTLY BY SUBROUTINE CALL

SUBSYSTEMS SUCH

P.. S SEGMENT

DIRECTORIES ARE SIMPLY SEGMENTS TO THESE SUBSYSTEMS

DIRECTORY CONTROL IS· INVOKED ONLY BY SUBROUTINE CALLS

g

PRINCIPAL USER INTERFACES

COMMAND LEVEL

Not To Be Reproduced

2-12

FBQA

DIRECTORY CONTROL

create, create dir, link, set_acl, delete_acl, status, list,
add_name, rename

SUBROUTINE LEVEL

hcs_sappend_branch, hcs_sadd_acl_entries, hcs_sappend_link,
hcs_Sdelete_acl_entries, hcs_sstatus_, hcs_schname_file

~

MAJOR DATA BASES

DIRECTORY SEGMENTS
D 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

~o

Be Reproduced

2-13

F80A

VOLUME MANAGEMENT

~

FUNCTION

n

VOLUME MANAGEMENT IS RESPONSIBLE
AND LOGICAL VOLuMES

FOR THE MANAGEMENT OF PHYSICAL

ITS TASKS INCLUDE:
ACCEPTANCE AND DEMOUNTING OF PHYSICAL VOLUMES

n 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)

VOLUME MANAGEMENT IS INVOKED ONLY BY SUBROUTINE CALLS

Not To Be Reproduced

2-14

?80A

VOLUME MANAGEMENT

B

MAJOR DATA BASES

o

PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM
PHYSICAL VOLUME TABLE ENTRY (PVTE) - ONE PER DISK DRIVE KNOWN
TO THE SYSTEM
D EACH PVTE IDENTIFIES A DRIVE'S DEVICE NUMBER, SUBSYSTEM NAME,

DEVICE TYPE, AND
CURRENTLY MOUNTED
D·

INFORMATION

ABOUT

THE

USED TO MAP REFERENCES TO PAGES OF
REQUEST TO THE CORRECT DISK DRIVE

PHYSICAL

VOLUME

SEGMENTS,INTO-- AN I/O·

n LOGICAL VOLUME TABLE (LVT) - ONE PER SYSTEM
n LOGICAL VOLUME
VOLUME

TABLE ENTRY (LVTE) -

VOLtJME

PVTE'S, AIM CLASS LIMITS, ETC.

ONE PER MOUNTED LOGICAL

--,

TT'I

POINTERS TOMEMEER

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

U' VOLUME HEADER - ONE PER PACK
n VOLUME LABEL (REGISTRATION AND ACCEPTANCE INFORMATION)
rr-

VOLUME MAP (OCCUPIED/VACANT INFORMATION FOR VOLUME CONTENTS)
V'\OL~

Not To Be Reproduced

?

2-1.5

F8D';

Vo.LUME MANAGEMENT

n RECo.RD STCCKS - o.NE PER Mo.UNTED VCLUME
o.NLINE CACHE
THE Vo.LUME

o.F INFo.RMATIo.N ABOUT

USED/ UNUSED

RECCRDS CN

THIS INFCRMATICN IS DERIVED FRo.M THE VCLUME MAP, BUT KEPT
ONLINE TO. AVo.ID THE NECESSITY OF REFERRING TO. T:.-1E VCLUME MAP
CN DISK EVERY TIME A RECORD IS ALLOCATED OR FREED
WHEN THE CACHE BECo.MES COMPLETELY EMPTY OR COMPLETELY FULL;
IT MUST BE UPDATED FROM/TO. DISK - A PROTOCo.L ENSURES THAT THE
COpy o.N DISK IS ALWAYS Co.NSISTENT
B

PRo.VIDED BY Vo.LUME

MANAGE~NT,

BUT USED BY PAGE-CONTRo.L

VTOCE STOCKS - o.NE PER VOLUME

n SIMILAR 'TO.

RECORD STo.CKS, BUT MAINTAINS
USED / UNUSED VTOC ENTRIES ON THE VOLL~E

INFORMATIo.N ABo.UT

PROVIDED BY VOLUME MANAGEMENT, BUT USED BY SEGMENT Co.NTRCL

PHYSICAL VOLUME HOLD TABLE (PVHT) - o.NE PER SYSTEM
RECCRDS THE Co.MMENCEMENT
PHYSICAL VOLUME

CF COMPo.UND I/O.

OPERATIONS UPON A

THIS INFo.RMATION PREVENTS A Vo.LUME FROM BEING DEMo.UNTED WHILE
SUCH AN o.PERATIo.N IS IN PROGRESS

Not To Be Reproduced

2-16

F80A

SEGMENT CONTROL

Z

FUNCTION

SEGMENT
MEMORY

CONTROL IS

RESPONSIBLE FOR

THE MANAGEMENT

OF LOGICAL

ITS TASKS INCLUDE:
D MAINTAINING

THE DISK

RESIDENT MAPS OF

SEGMENTS (IE:

THEIR

VTOCE'S)
D SEGMENT CREATION p TRUNCATION AND DELETION
n

n

~

SEGMENT ACTIVATION AND DEACTIVATION (ASTE MULTIPLEXING)

SEGMENT CONTROL CAN BE INVOKED . EITHER BY SUBROUTINE CALLS OR BY
SEGMENT FAULTS

BASIC PHILOSOPHY OF ACTIVATION/DEACTIVATION

OF ALL SEGMENTS RESIDENT WITHIN THE SYSTEM'S MOUN~ED 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 SEG~£NT 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-17

SEGMENT CONTROL

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

~

USER INTERFACE

n COMMAND LEVEL
create, delete, truncate, etc.

SUBROUTINE LEVEL

hcs_sappend_branch, hcs_sappend_branchx, hts_Sdelentry_seg,
hcs_sdelentry_file, hcs_struncate_seg, hcs_struncate_file.
hcs_Sforce~write, etc

~

Y~JOR

~ATA

BASES

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

n 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

n· ASTES

CONTAIN PHYSICAL VOLUME ID'.s (PVID'S) AND VTOC
INDEX'S (VTOCX'S) OF SEGMENTS.
NEEDED BY SEGMENT CONTROL
TO FIND THE SEGMENT ON DISK (HARDWARE)

Not To Be Reproduced

2-18

F80A

SEGMENT CONTROL

n AST HASH TABLE
n ALLOWS EFFICIENT SEARCHING OF ASTE'S
o

LOGICALLY
REASONS

PART

OF

THE

AST, BUT

ELSEWHERE

FOR HISTORICAL

n DIRECTORY SEGMENTS
n

o

D

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
D

VOLUME
TABLE
OF CONTENTS
DISK-RESIDENT SEGMENT

o

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

D

VTOCES ARE READ AND WRITTEN ONLY BY SEGMENT CONTROL

ENTRY

(VTOCE)

ONE

?ER

VTOCE STOCKS - FROM VOLUME MANAGEMENT
USED WHEN CREATING AND DELETING VTOCES FOR SEGMENTS

Not To Be rteproduced

2-:9

?80A

PAGE CONTROL

B

FUNCTION

n PAGE

CONTROL IS RESPONSIBLE FOR THE 'MANAGEMENT
MEMORY TO INCLUDE THE MULTIPLEXING OF MAIN MEMORY
THE MANAGEMENT OF DISK STORAGE

OF PHYSICAL
FRAMES, AND

ITS TASKS INCLUDE:

o TRANSFERRING

THE PAGES OF
SEGMENTS BETWEEN THE MEMORY
RECORDING THE LOCATION OF "THE" CO,PY OF THESE

DEVICES, AND
PAGES
n

n

REPORTING
CONTROL

PAGE CONTROL
(ALM)

THE STATUS

IS LARGELY

PAGE CONTROL CAN
PAGE FAULTS

AND FILE

MAPS OF

SEGMENTS TO SEGMENT

CODED

IN MULTICS

ASSEMBLER LANGUAGE

BE INVOKED EITHER

BY SUBROUTINE

THERE ARE NO EXPLICIT USER INTERFACES TO

Not To Be Reproduced

2-20

PAG~

CALLS OR BY

CONTROL

F80A

PAGE CONTROL

~

BASIC PHILOSOPHY

o

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

o

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

o

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

n AN

EVICTED PAGE NEED BE wrtITTEN BACK TO DISK ONLY
MODIF!ED DURING ITS RESIDENCY IN MAIN MEMORY

~

IF ~T WAS

MAJOR DATA BASES

?HYSICAL VOLUME TABLE (PVT)
VOLUME MANAGEMENT
PHYSICAL VOLUME
CONFIGURED

TABLE ENTRY

ONE PER

(PVTE)

SYSTEM.

- ONE

PER

?ROVI:lED BY

DISK DRIVE

EACH PVTE CONTAINS:
THE DEVICE ID (DISK DRIVE ID) AND THE
VOLUME (DISK PACK) CURRENTLY MOUNTED

Not To Be

~eproduced

2-21

ID OF THE PHYSICAL

?8QA

PAGE CONTROL

D THE

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

RECORD STOCKS - ONE PER
VOLUME MANAGEMENr

MOUNTED PHYSICAL

VOLUME, PROVIDED'BY

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:
D SYSTEM SEGMENT TABLE (SST) HEADER - ONE PER SYSTEM

n

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

n

CONTAINS LOCKWORDS USED TO SYNCHRONIZE
SEGMENT CONTROL OPERATIONS

PAGE CONTROL AND

CORE MAP - THE core_map SEGMENT - ONE PER SYSTEM
CORE MAP ENTRY (CME)
CONFIGURED MAIN MEMORY
n

ONE PER

FRAME (1024

WORDS) OF

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

n
II

Not To Be Reproduced

2-22

FBQA

PAGE CONTROL

NOT PART OF
OF THE SST
8

THE SST SEGMENT ANY MORE,

BUT LOGICALLY PART

ACTIVE SEGMENT TABLE (AST) - ONE PER SYSTEM
ACTIVE SEGMENT TABLE ENTRY (ASTE) - ONE PER ACTIVE SEGMENT
LIST OF ACTIVE (CURRENTLY BEING USED) SEGMENTS

8 PAGE TABLES (PT) - ONE PER

ACTIVE SEGMENT, THE OTHER HALF OF

EACH ASTE

~

o

PAGE TABLE WORD (PAGE PTW)
PAGE TABLE

n

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

Not To Be Reproduced

2-23

EITHER 4, 16, 64, OR 256 PER

raOA

.

PAGE CONTROL

THE MULTICS FILE SYSTEM

• • •
DISK
DRIVE

DISK
DRIVE

DISK
DRIVE

DISK SUBSYSTEM

<.

~

0-<,-

Q

~~

qr/\''\

~

~.

,..~~~
"V(
~

\ \ v-e

~ ~~
~~

~()!~
\.h

I\~

~

MULTICS HIERARCHY
DISK DRIVES
DISK PACKS

VOLUME MANAGER
(
) 4.----....;...;;;.::.;;.;~~.;;.;...;...;;;~--..

PHYSICAL VOLU.MES )
VTOCE'S
PAGES

sri tY,'

DIRECTORY CONTROL
SEGMENT CONTROL

LOGICAL VOLUMES
PHYSICAL VOLUMES

DIRECTORIES
SEGMENTS
PAGE CONTROL
LINKS
DP'tr'",.,,plt7 r
"\/lc.J,.o/1 fe4;r .1. . ll,- ,/ -"'"nc ~/.·C
•

~-.-.;;;.;;.;;;.~.;..;...;;;,,;;;.;..;~~~~

6~ M

I(

~,.

p

--'~"'

I,

J

h

I
h

LfCPj1000
""'05') Qr'o,Q »r}
u)~

to rJ '-I

\sT

~f\~~ (/).- '\ L,. QN:
~s~~\

Not To Be Reproduced

FaDA

2-24

-~ ~ 000
'\

41J

10

~

TRAFFIC CONTROL

B

FUNCTION

TRAFFIC CONTROL (OR THE "TRAFFIC CONTROLLER") IS RESPONSIBLE FOR
MANAGING THE ASSIGNMENT OF PHYSICAL PROCESSORS TO MOLTICS
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.

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

TRAFFIC CONTROL
INTERRUPTS

CAN

BE

INVOKED

BY

SUBROUTINE

CALLS

AND

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

~

MAJOR DATA BASES

TC DATA SEGMENT
DATA BASES:

- ONE PER SYSTEM.

CONTAINS THE FOLLOWING FOUR

TC DATA HEADER - ONE PER SYSTEM
D CONTAINS VARIOUS METERS, COUNTERS AND POINTERS USED BY THE
TRAFFIC CONTROLLER

Not To 3e Reproduced

2-25

F80A

TRAFFIC CONTROL

ACTIVE PROCESS TABLE (APT) - ONE PER SYSTEM
D

ACTIVE PROCE·SS TABLE ENTRY (APTE) - ONE OCCUPI ED PER
ACTIVE PROCESS (TOTAL NUMBER IS DETERMINED BY CONFIG DECK)

n 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 INFO~~TION THE SUPERVISOR NEEDS TO
KNOW ABOUT A PROCESS WHEN THE PROCESS IS NOT RUNNING
INTERPROCESS TRANSMISSION TABLE (ITT) - ONE PER SYSTEM
n

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 (WeT) - ONE PER SYSTEM
WORK CLASS TABLE ENTRY (WCTE) - ONE PER WORKCLASS
D

EACH WCTE CONTAINS ADMINISTRATOR DEFINED PARAMETERS OF THE
WORKCLAS.s, VARIOUS METERS AND POINTERS

Not To Be Reproducec

2-26

F8QA

FAULT AND INTERRUPT HANDLING

z

FUNCTION

RESPONSIBLE FOR HANDLING ALL EXCEPTIONS IN A CPU WHETHER
INTERNAL TO THE PROCESSOR (REFERRED TO AS FAULTS) OR EXTERNAL
(REFERRED TO AS INTERRUPTS)

ESTABLISHES THE SUPERVISOR
TIME.
SAVES THE MACHINE
APPROPRIATE HANDLER

o

MAJOR COMPONENTS: THE FAULT INTERCEPT MODULE (fim), .WIRED-FAULT
MODULE
(wired fim),
I/O
INTERRUPT
HANDLER
INTERCEPT
(io_interrupt)~

z

ENVIRONMENT AT FAULT AND INTERRUPT
CONDITIONS AND TRANSFERS TO THE

sys_trouble, page_fault

MAJOR DATA BASES

INTERRUPT VECTORS - ONE SET PER SYSTEM (WIRED)
INTERRUPT PAIR
INTERRUPT TYPE
LOCATED
BASE

(2

AT ABSOLUTE

INSTRUCTIONS)

ADDRESS O.

ONE

A

PAIR· PER DEFINED

HARDWARE RECOGNIZED DATA

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

Not To Be Reproduced

2-27

F80A

FAULT AND INTERRUPT HANDLING

n FAULT VECTORS - ONE SET PER SYSTEM (WIRED)
VECTOR
TYPE

PAIR (2

INSTRUCTIONS) -

ONE PAIR

PER DEFINED FAULT

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)

D-

PROCESS DATA
ELIGIBLE)

SEGMENT

(PDS)

ONE

PER

PROCESS
-."-".---'

-

(WIRED-WHEN_

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

CONTAINS

ALL

INFORMATION ABOUT

·.rn~

PROCESS NEEDED

BY THE

SUPERVISOR CODE WHEN THE PROCESS IS RUNNING
CONTAINS SAVE AREAS FOR CONTEXT INFORMATION. ABOUT FAULTS
WrlICH CAN RESULT IN GIVING UP THE PROCESSOR:
PAGE FAULTS,
SEGMENT FAULTS, AND ALL FAULTS NOT HANDLED BY THE SUPERVISOR

PROCESSOR DATA SEGMENT (PRDS) - ONE PER CONFIGURED CPU (WIRED)
SERVES AS
CONTROL

RING-ZERO

STACK

FOR

PAGE

CONTROL

AND TRAFFIC

n ALSO CONrAINS SAVE AREAS FOR CONTEXT INFORMATION ABOUT FAULTS
WHICH USUALLY DO NOT MEAN GIVIN.G
FAULTS AND INTERRUPTS.

Not To Be Reproduced

2-28

UP THE PROCESSOR:

CONNECT

FaQA

FAULT AND INTERRUPT HANDLING

FIM TABLE

~rr-.i'\ O~
V'\

V\

k

'r-'.lY'
('e

0\\ "(A~\ ~.

D A TABLE IN

THE FIM PROGRAM WHICH DESCRIBES
TAKEN FOR VARIOUS TYPES OF FAULTS

a.,

THE ACTION TO BE

Pt t
( 001.

LJ

Not To

Be

Reproduced

2-29

F8GA

SVre0 V1SO( L,n'<: >!lfjff'h!::>
1S ~}-fl\(, t ) nC) T f)-{hA'f'--:('

SYSTEM, INITIALIZATION

\e'. JOl\e
~

~ · ~~ a

FUNCTION

cd oe >

Dr '\ lVv-e.
J,/'n""" ~ \:" k,,~.

o-.~C(~&
Y1"

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

-n -- MOST -PROGRAMS

I N SYSTEM
INITIALIZATION IS COMPLETE.

INITIALIZATION
0('

I y'

'E>~T

ARE

SP c

-,\~'"

DELETED
l,.s

AFTER

IC'~ (1'.

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

~

V~JOR

DATA BASES

THESE DATA
BASES ARE ALL
BUILT DURING THE
PROCESS OF
INITIALIZATION (EXCEPT FOR THE CONFIG DECK) AND KEPT AFTER
I NI TI ALI ZATI ON IS FI NI SHED f (9 r ~ <: ~v~~ ''''~

~

SEGMENT LOADING TABLE (>sll>slt)

CONTAINS AN ENTRY DESCRIBING THE ATTRIBUTES
'IN THE SUPERVISOR

Not To Be Reproduced

.2-30

OF EACH SEGMENT

FBQA

SYSTEM INITIALIZATION

.\ 0

D

~~\\J")~'.n~

f

NAME TABLE (>sll>name table)

-

o

() .jIY'-B~~ s

sll>definitions_)

o

o

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 (>sll·>conf i9_deck)
CONTAINS A DESCRIPTION OF THE
CERTAIN SOFTWARE PARAMETERS

o

z

HARDWARE

CONFIGuRATION AND

PROVIDED TO SYSTEM INITIALIZATION BY BOS

SHUTDO~

-- TERMINATES

THE ACTIVITIES OF THE SYSTEM

IN AN ORDERLY

FASHION

TWO TYPES OF SHUTDOWN:
NORMAL
REQUESTED BY THE
SUPERVISOR ENVIRONMENT
n

INITIALIZER, RUNS

EMERGENCY -- OSED AFTER A CRASH, MUST
ENVIRONMENT OPERABLE BEFORE PROCEEDING

Not To 3e Reproduced

2-31

IN THE USUAL

MAKE THE SUPERVISOR

F80A

SYSTEM INITIALIZATION

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

n

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-32

F80A

FILE SYSTEM SALVAGERS

§D

FUNCTION

n

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

THERE ARE SEVERAL SALVAGERS, EACH WITH A DIFFERENT FUNCTION

o

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

n SOME SALVAGING IS DONE AUTOMATICALLY, WHEN THE SYSTSM DETECTS
INCONSISTENCY.
OTHER
SALVAGE
REQUESTED, BY PRIVILEGED USERS.

o

~

OPERATIONS

ARE

AN

EXPLICITLY

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

THE SALVAGERS:

DIRECTORY SALVAGER
CORRECTS INCONSISTENCIES IN
THEM

DIRECTORY SEGMENTS BY REBUILDING

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

Not To 3e Reproduced

2-33

F80A

FILE SYSTEM SALVAGERS

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

QUOTA SALVAGER
CORRECTS INCONSISTENCIES IN THE QUOTA SYSTEM

f

PHYSICAL VOLUME SCAVENGER

n

I.ye>.
f I~p~

V6IvpV\~

f"lCx(1

l

\!'\OC~ MltP

{\'la '( fC~d c 5
RECONSTRUCTS RECORD AND, VTOCE STOCK INFORMATION .FROM THE
VTOCES ON A VOLUME y THEREBY RECLAIMING ANY RECORDS OR VTOCES
WHICH MIGHT HAVE BEEN 'LOST

vP fe ( or}.S

RUNS ENTIRELY ONLINE WHILE THE SYSTEM IS UP FOR USERS (NEW IN
MR10.1)
THIS TYPE OF DAMAGE IS
SCAVENGER CAN BE DELAYED.

USUALLY

BENIGN,

SO

RUNNING THE

'PHYSICAL VOLUME SALVAGER
n

RECONSTRUCTS RECORD AND VTOCE STOCK INFORMATION
RUNS ONLY
RECOVERY

n

DURING INITIALIZATION, AND

THEREFORE DELAYS CRASH

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

SWEEP PV

Not To Be Reproduced

2-34

• F8QA

bfd.

FILE SYSTEM SALVAGERS

n DELETES

UNUSED VTOC
POINTING TO THEM

ENTRIES WHICH

HAVE ·NO

DIRECTORY ENTRY

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-35

F8CA

METERING & TUNING

~

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

~

FUNCTION

METERING (CONSISTS OF THREE ACTIVITIES)
ACCUMULATING
DATA:
THIS
SUPERVISOR BY CODE WHICH
D

IS

THROUGHOUT

PERFORMED

THE

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

A

RECORDS THE TIME REQUIRED TO PERFORM A TASK
SUCH· DATA
CELLS"
. n

I S STORED

IN AREAS

REFERRED TO

EXTRACTING DATA:
THIS IS PERFORMED
COMMANDS WHICH (WHEN INVOKED)
READ AND STORE
CELLS

THE CURRENT

REPORTING THE DATA: THIS IS
WHICH (WHEN INVOKED)

AS

"~.ETERING

BY

NUMEROUS METERING

VALUES OF

RELEVANT METERING

PERFORMED BY THE METER COMMANDS

COMPARE CURRENT METERING CELL
VALUES

VALUES WITH ?REVIOUSLY READ

PERFORM THE APPROPRIATE ARITHMETIC COMPUTATIONS
DATA IN ORDER .TO ARRIVE AT THE DESIRED STATISTIC

UPON THE

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

Not To Be Reproduced

2-36

F8QA

METERING & TUNING

TUNING
n

z

CHANGING
THE
SYSTEM'S
CONFIGURATION BASED UPON
SYSTEM'S METERS

OPERATING
PARAMETERS
AND/OR
THE DATA AND INSIGHTS FROM THE

MAJOR.DATA ,BASES

D SST HEADER, TC DATA HEADERf

Not To 3e Reproduced

~TCe

2-3i

?80A

INITIALIZER.SYSDAEMON

~

FUNCTION

THE SYSTEM'S INITIALIZATION! ADMINISTRATIVE AND CONTROL PROCESS
(Initializer.SysDaemon.z), aESPONSIBLE FOR:
INITIALIZING THE OPERATING SYSTEM AT BOOTLOAD, FOLLOWING
SUCCESSFUL INITIALIZATION OF THE SUPERVISOR

n ANSWERING SERVICE (login' and logout)
n PROCESS CREATION AND DESTRUCTION
MESSAGE COORDINATOR (DAEMON C90RDINATION)
SYSTEM ADMINISTRATION.FUNCTIONS
n

~

SYSTEM ACCOUNTING FUNCTIONS

MAJOR DATA BASES, ALL KEPT'IN >scl

ANSWER TABLE

ABSENTEE USER TABLE

n DAEMON- USER- TABLE

Not To Be Reproduced

2-38

F8QA

INITIALIZER.SYSDAEMON

n MASTER GROUP TABLE (MGT)

o

CHANNEL DEFINITION TABLE (CDT)

SYSTEM ADMINISTRATION TABLE (SAT)

PERSON NAME TABLE (PNT)

D PROJECT DEFINITION TABLES (PDT'S)

Not To Be Rep:oduced

2-39

(Ene Of Topic)

?80A

TOPIC III
The Multics Environment

Page
What is a Proce~s • • • •
Cooperating Processes • .
The PL/I Operators • • • • • •
Interfaces to System Modules
Deadlock Prevention • • •
Types of Locks
e

_

•

•

e

•

•

e

• 3-1
· 3-4

3-7

e

e

3-i

.• 3-9
• 3-10
3-15

FSQA.

~ ~ ~

PROCESS

~

A MOLTICS 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)

~

THE ADDRESS SPACE OF A PROCESS IS THE ABOVE "COLLEC~ION OF
SEGMENTS". SUCH SEGMENTS ARE SAID TO BE KNOWN TO THE PROCESS

~

EVERY LOGGED IN USER HAS A PROCESS

~

VERY IMPORTANT CONCEPT: THE MOtTICS SUPERVISOR RUNS IN THE USER'S
PROCESS (IE: IN THE USER'S ADDRES·S SPACE), BUT IN A DIFFERENT RING

~

A PROCESS TAKES
ON THE IDENTITY
WHERE EVER IT GOES

OF THE SOFTWARE

IT IS EXECUTING

WHEN A USER WISHES TO CREATE A SEGMENT, IT IS THE USER'S PROCESS
wnICH EXECUTES THE SUPERVISOR CODE hcs_sappend, CREATING TEE
SEGMENT

~

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

Not To 3e Reproduced

3-1

F8GA

WHAT
IS A PROCESS
--

PROCESS FLOW OF EXECUTION
7
6
5
4

.

....

~

3
2
c::J

Z

1

0:0

....3110.

lJ

.

TIME
~

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

~

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

F8QA

z
o

rt

STACK PER RING

1--]

o
ll1
C1>
~

C1>

'0
t1

o

(L

c:::
n

(Il

FRAME 5

n..

FRAME 4

qO\~~-(

FRAME 3

FRAME 3

FRAME 2

FRAME 2

(L~\~('W-r

PR6
w

FRAME 2

~

I

FRAME 1

(.v

STACK
HEADER

PR7

-t.

,_o_~

(So\

'\

----------~

\.

Of\. Q..

~I'\u..\ "Ilj

(/'C,~

'1'"\

AF~-v

~> f\'~\"'l~
~:.C)c

>oO..t\,v\Jo.t

(~~

\r..I\...\t,'\ "S ~'\

C?

0

0"\
'O'J
m
C)
~'"

\C;'A~

5{>~

# 230 stack_O

(0,0,0)
SEVERAL (10-30)
PER SYSTEM, SHARED

FRAME 1

FRAME 1
call

fault

STACK
HEADER

STACK
t-IEADER

:It 231 stack_1 U,l,l)
IN USER'S PRQCESS
DIRECTORY
0

# 234 stack_4
(4,4,4)
IN USER'S PROCESS
DIRECTORY

* PR71S THE STACK BASE POINTER REGISTER. POINTS TO CURRENT STACK. HARDWARE LOADED WITH
DBR.stack *8 + RING. THE VALUE OF DBA .stack CAN CHANGE WITH EACH RELEASE. IT IS 23 IN MR 10.1.
* PR6 IS TItE STACK FRAME POINTER REGISTER. POINTS TO CURRENT STACK FRAME.

I~

COOPERATING PROCESSES

8

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

8

IN REALITY, ALL
AND SHARING

PROCESSES ARE

CONTINUALLY COOPERATING, COMPETING

EXAMPLES OF COOPERATION
VOLUNTARY
THE SENDING AND ACCEPTING OF MESSAGES AND MAIL
PREPLANNED 3Y 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 PROCESSORe
THESE INTERRUPTS ARE GENERALLY
THE REPLIES TO THE REQUESTS OF OTHER PROCESSES (IE: THE
ARRIVAL OF A PAGE REQUESTED SOME TIME EARLIER)
PREPLANNED BY APPLICATION PROGRAMMERS
THE MULTICS TRANSACTION PROCESSOR IS
COOPERATING, INTER-DEPENDENT PROCESSES

COMPOSED

OF MANY

EXAMPLES OF COMPETITION
n

ALL PROCESSES
RESOURCES

'Not To Be Reproduced

COMPETE FOR

3-4

PROCESSOR

TIME AND

MAIN MEMORY

F80A

COOPERATING PROCESSES

o THIS COMPETITION IS HIGHLY REGULATED
PROCESSES TO BE TREATED FAIRLY

o

THE COMPETITION
CONTROLS

IS ALSO SUBJECT

IN

ORDER

FOR

ALL

TO VERSATILE ADMINISTRATIVE

EXAMPLES OF SHARING

o

BY DESIGN, A SIGNIFICANT PART OF THE ADDRESS SPACE OF ALL
P'ROCESSES IS I DENTI CAL (THE SUPERVI SOR SEGMENTS)

D .BY

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

Z .

Not

p

THERE IS NO SEPARATE ENTITY IN MOLTICS LIKE AN EXECUTIVE DOING
THINGS ON BEHALF OF THE USER. THE Initializer.SvsDaemon
IS -NOT THE
.
TIME-SHARE EXECUTIVE OF MOLTICS

~o

Be Reproduced

3-5

F8CA

z
o

rt
I-~

o

w

ro

~

ro

'tj
t1

o

Ch

C

n
ro

(L

n

o

o

'U

trJ

~

~

H

W

I

PROCESS J\

Z

G)

U\

'U

~

o

n

f:%J

Ul
Ul

tIl
Ul

trJ
00

a
:a:..

THE PL/I OPERATORS

~

OPERATORS ARE LANGUAGE DEPENDENT PIECES OF CODE
HARDWARE OR OPERATING-SYSTEM DEPENDENT FUNCTIONS
AND SIGNALLING

~

CURRENTLY THERE ARE OPERATORS FOR
FORTRAN SHARE THE PL/I OPERATORS

~

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

z

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

~

Not

n

SOME OPERATORS ARE TOO BULKY TO
AS COMPLICATED I/O STATEMENTS)

n

SOME OPERATORS MIGHT
RETURN SEQUENCES)

WHICH IMPLEMENT
SUCH AS CALLING

PLII, COBOL, AND BASIC.

ALM AND

PLACED!N LINE

BE INCLUDED WITH EACH USE (SUCH

CHANGE IN THE

FUTURE (SUCH

AS ENTRY AND

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

~o

Be Reproduced

3-7

:80A

THE PL!I OPERATORS

~

INSTEAD OF PASSING ARGUMENT LIST, ARGUMENTS
THE OPERATORS IN THE CPU'S REGISTERS

~

INSTEAD OF BEING CALLED BY A PROCEDURE
INSTRUCTION IS USED (tsxO or tsp3)

~

THE PL/I OPERATORS
ENVIRONMENT

~

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

Not To Be Reproduced

IMPLEMENT THE

3-8

ARE USUALLY PASSED TO

CALL, A

SINGLE TRANSFER

SUPPORT FUNCTIONS

FOR THE PL/I

?80A

INTERFACES TO SYSTEM MODULES

B

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

o

I NSTE'AD , THE SUBSYSTEMS PERFORM ASYNCHRONOUSLY, BEING 'INVOKED'
BY THOSE PROCESSES WHO REQUIRE THEIR SERVICES

THESE SUBSYSTEMS ARE
THREE WAYS: .

INVOKED BY THE

USER'S PROCESS

IN ONE OF

D . EXPLICITLY - VIA A SUBROUTINE CALL OR A COMMAND

o

IMPLICITLY - VIA A FAULT
\
.
"0\7"\ 'Q~I;:~p--QA.\l. .!;o "IS': Q:.\'\~c>,/ 5~~\.p\\('-

n

IMPLICITLY - VIA AN INTERRUPT

J

OVPr ~<"cA .

SUPERVISOR
SUBSYSTEM
INTERRUPT SIDE

CALL SIDE:

SERVICES PERFORMED AS A RESULT OF EXPLICIT
SUBROUTINE CALLS. LOCKS ARE NORMALLY
WAIT LOCKS.

FAULT SIDE:

SERVICES PERFORMED AS A RESULT OF FAULTS.
LOCKS ARE NORMALLY WAIT LOCKS.

INTERRUPT SIDE: SERVICE PERFORMED AS A RESULT OF INTERRUPTS.
LOCKSARELOOPLOCK~

Not To Be Reproduced

3-9

F8DA

DEADLOCK PREVENTION

~

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"

DEADLY EMBRACE
•

PROCESS A IS WAITING FOR A RESOURCE OWNED BY PROCESS B.

•

PROCESS B IS WAITING FOR A RESOURCE OWNED BY PROCESS A.

Not To Be Reproduced

3-10

FSQA .

DEADLOCK PREVENTION

~

DEADLOCK SOLUTIONS

n DETECTION AND UNLOCKING
SOME SYSTEMS EMPLOY' SCHEMES WH!CH DETECT THE OCCURRENCE OF
DEADLOCK AND "UNTANGLE" THE INVOLVED PROCESSES

o DETECTION

SCHEMES ARE USUALLY DIFFICULT
EXPENSIVE IN TERMS OF OVERHEAD

TO

IMPLEMENT AND

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

PREVENTION
MOST SYSTEMS
DETECTION

ADOPT

SOME

FORM

OF

PREVENTION

INSTEAD

OF

PREVENTION
CHECKING: WHEREBY REQUESTS FOR RESOURCES ARE SCREENED FOR
DEADLOCK POTENTIAL PRIOR TO ACCEPTANCE
IMPOSED POLICY:
WHEREBY
RESOURCE MUST BE MADE:

REQUESTS

FOR

MORE

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

~EAN

ONE

"JOB" OR

SERIALLY, IN A FIXED, PRE-DEFINED ORDER

Not

~o

3e Reproduced

F8CA

DEADLOCK PREVENTION

8

WJLTICS,
SCHEME:

n USER

IN

GENERAL,

ADOPTS

ASSIGNABLE RESOURCES

THE

FO~LOWING

(SUCH AS TAPE

DEADLOCK PREVENTION

DRIVES, CARD PUNCHES,

ETC)
WrlEN 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

n WHEN

THE USER IS NOT INTERACTIVE, THE "ALL" OR "NONE"
APPROACH SHOULD. BE USED ,. THE AVA I LABI LI TY OF ALL REQU! RED
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)

No~

n

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

n

SOME SEG~~NTS SUCH AS THOSE USED BY THE MOLTles DATA BASE
MANAGER (MDBM), USE A "COMMITMENT/ROLLBACK" SCHEME

To 3e Reproduced

3-12

r80A

DEADLOCK PREVENTION

D

SUPERVISOR RESOURCES (SUCH AS HARDCORE DATABASE)

. (,~~~f.\.. ) ')~»~J

D LOCKWORDS

(OR SIMPLY "LOCKS")
ARE
IMPLEMENT CONCURRENT ACCESS CONTROL
ENVIRONMENT

USED IN MULTICS TO
IN THE MULTI-PROCESS

LOCKING CONCEPT
LOCK

UNLOCK

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

THIS PARTIAL ORDER IS DETERMINED BY AN ANALYSIS OF THE
OPERATING SYSTEM'S BEHAVIOR.
FOR EXAMPLE:
SINCE A PAGE
FAULT MAY PROPERLY OCCUR wnILE 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

D TO THE

DEGREE THAT THE SYSTEM, PROGRAMMERS OBEY THIS PARTIAL
ORDER, A DEADLY EMBRACE CANNOT OCCUR WITH!N TEE MULTles
SUPERVISOR

Not To Be Reproduced

3-13

F80A

z

o

rt

MULTICS LOCKING HIERARCHY

t-] •

o

tJj

ro

I/O MAILBOX

~

ILOOP! \

ro

'0
11

o
OJ
e

n

fl)
o~

\.

CONNECT

GLOBAL APT

APT ENTRY

CORE QUEUE

(LOoPt

(MUL TI·REAOER

(LOON

(lOOP)

'LOO_P)- - )

l

\

I

DlsLTA

OCDCM

SVSERR DATA

(lOOP)

(lOOP)

(lOoPt

MCS QUEUE
(LOOP)

___________________ GLOBALPAGETABLE

t .

(LOOP/WAITt

VTOC I3IUFFER SEGMENT
(WAIT)

(A1

,....

t

I

t~

ACTIVE: SEGMENT TABLE
(WAIT) .

t·

DIRECTORY LOCK TABLE
(WAIT)

t

ROOT DIRECTORY
(MULTI·READER, WAIT)

t

LOWIER DIRECTORY
(MULlrl·READER, WAIT)

'IJ
OJ
C)
~t"

MISCELLANEOUS: 10AT,101,
SALV_DATA, RECONFIGURATION
(WAIT)

SVSERR tOG
(WAIT)

MCS CHANNEL
(LOOP/WAIT)

TYPES OF LOCKS

LOCKS WITHIN MULTICS:

~rO\D~~\\

ARE 36 BIT WORDS CONTAINING EITHER
PROCESS_ID (LOCKED)
\J~\Jf\\\ 'I V\.f'~{ 0P~~",n \Y\(, Q r- ). P~'I-\Q"'T'

ZERO

(UNLOCKED)

OR

A

CONTROL PROCESSES, NOT PROCESSORS

D ARE MUTUALLY EXCLUSIVE LOCKS

THE HARDWARE SUPPORTS SEVERAL INDIV.ISIBLE INSTRUCTIONS USED IN
IMPLEMENTING THE LOCKING PRIMITIVES. FOR EXAMPLE:

STAC (STORE

~

£ONDITIONAL)

n IF C(Y)=O THEN C(A)
TYPICAL USE:

-> C(Y)

LOCKING;

THEN LOCK THE LOCK
INTO "THE LOCKWORD

BY

IF THE

STORING

LOCKWORD (Y) IS UNLOCKED (=0)

THE PROCESS_ID (WrlICH IS IN A)

SPECIAL HARDWARE PROHIBITS
SIMILAR REFERENCES 3Y
PROCESSORS DURING THE TEST AND DATA TRANSFER WINDOW

OTHER

ALSO STACQ (STORE A CONDITIONAL ON Q), LDAC (LOAD A AND £LEAR),
LDQC (~OA~ 2-XND fLEAR) , SZNC (~ET !-AND'~ AND-£LEAR)

Not To 3e Reproduced

--

3 -~~

:80A

TYPES OF LOCKS

~

WITHIN THE MOLTICS SUPERVISOR
LOCKS AND WAIT LOCKS

EXISTS TWO

TYPES OF

LOCKS:

LOOP

LOOP LOCKS

n

SIMPLIFIED PLjI ANALOGY:

do while (lockword A=O)~
end;
lockword = process_id;

lockword = O~
LOOP LOCKS ARE USED WrlEN IT WOULD NOT BE ACCEPTABLE TO GIVE
UP THE PROCESSOR BEFORE LOCKING THE LOCK.
LOOP LOCKS TYPICALLY
SUPERVISOR DATABASES:

Not To Be Reproduced

PROTECT THE LOw~ST LEVEL OF CRI7ICAL
TRAFFIC CONTROL, PAGE CONTROL, ETC.

3-16

F8QA

TYPES OF LOCKS

WAIT LOCKS
B

(SIMPLIFIED)

A

A:

PROCESS GIVES UP THE CPU

B:

PROCESS DISPATCHED TO A CPU

SIMPLIFIED PL/I ANALOGY:
do while (lockw6rd A=O);


end;
Lockword = orocess io;
"'''~':;~''.a
-Y.....,~U."-liW

~~~:........

'-4 .......... -

-

Lockword = 0

MOST SUPERVISOR LOCKS ARE WAIT LOCKS
IN GENERAL, A PROCESS IS ALLOWED .TO GIVE
WHEN IT HAS WAIT LOCKS LOCKED
THE WAIT LOCK
TOPIC 9

Not To Be Reproduced

MECHANISM WILL BE DESCRIBED IN

3-17

UP ITS PROCESSOR

MORE DETAIL IN

:8GA

TOPIC IV
. Name Space and Address Space Management

Page
Name/Address Space Overview • • .
Name/Address Space Terminology • •
Name/Address Space Concepts • • •
Nam~/Address Space Data Bases.
Reference Name Table (RNT) •
Known Segment Table (KST) • • •
Descriptor Segm~nt (DSEG) • • •
Typical Address Space . • .
Name/Address Space Meters . •
system link meters . • .
link meters: . • • . . .
Name/Address Space Commands ••
display~kst_entry.

. . '.'
. .. . . '.

4-i

4 ·• 4-5
-1

•
·
•
.; • •
o

4-7
4-12
4-12
4-13
4~14

. • . 4-16
• 4-31
· 4-31
• 4~32

· 4-33
• 4-33"

F8QA

NAME/ADbRESS SPACE OVERVIEW
\

A\l
FUNCTION

l ~~ y A-~~

IS

Iflfo

(~I'l\,{\t

((rC)CQ5So..-

AJJ/~~1~~IQ

~rD<"O~.s,,,1' ~J/v",JllI);J It \\4) \" \....It -II

'fI\t?t.J-{

~(t

.fet ,(\(\\.. f>~

IMPLEMENT THE PER PROCESS VIRTUAL MEMORY

\("ov--J\ S~~S
~

BASIC PHILOSOPHY

o

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

D

FOR EVERY SEGMENT REFERENCED BY THE USER, THE SUPERVISOR:
ASSIGNS A SEGMENT NUMBER (FOR REASON OF HARDWARE ADDRESSING),
AND
................... _ - . - .

:U:.\...UltJ.J;::'

1 ...................... ,., ..... _ . - . \

\ It.t:.l''u:,,.1''J.,CJ:.ilt;::,)

"""~

~

................ ,. ...

n.:.

~

..... ' ....... 'T"""

~"U"l.J.'tl"\\:u:.J.·~.I.'f ~

~ ,.,.~,...~,

~ .I.'tJ;"

..... ".."',...,.,

vru·.Ln,j, ...

V.l.'f

f

~I"'IT"\

\ .;

v.n.

~~

... C"'f"'\\'1

.n.~n.Jv.l."

,...~

Vi.;

SOFTWARE EFFICIENCY AND CONTROL)

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

n THE MANAGEMENT INFORMATION IS MAINTAINED
IN THREE COMPLEMENTING AREAS:

Not To Be Reproduced

';-1

ON A PER PROCESS BASIS
DSEG, KST, AND RNT

F80;'.

NAME/ADDRESS SPACE OVERVIEW

MANAGES TWO DISTINCT SETS OF

INFOR~.TION:

o ADDRESS SPACE - CORRESPONDENCE BETWEEN
THE SEGMENTS THEMSELVES

SEGMENT NUMBERS AND

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

",: )

\

G>..~\ ~ ~

S~ ~ ).

CALLS DIRECTORY CONTROL TO LOCATE SEGMENTS INITIALLY

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

~

SUBROUTIN~

PRINCIPAL USER INTERFACES

COMMAND LEVEL
initiate, terminate, terminate segno, terminate ref,name,
terminate single ref name, lisI ref name
--

-

-

--

-

THE COMMAND PROCESSOR ITSELF - WHICH
LOCATE COMMANDS

USES THESE SERVICES TO

SUBROUTINE LEVEL

n hcs $initiate, hcs $initiate count, hcs sterminate file,
~~s-$~e~mi~a~c
........
..... ........... __ ~en- ~~s
. . . . . . .e~c~~i~a~e-~amc
,., '-'-._ ..u......... ......... , hcs:sterminate:noname, term_
~

Not To Be Reproduced

~,

4-2

-

F80.!.

NAME/ADDRESS SPACE OVERVIEW

z

MAJOR DATA BASES
~CH\"

or .s:D\-,'

~

o DESCRIPTOR SEGMENT (DSEG) - ONE PER PROCESS

o

SEGMENT DESCRIPTOR WORD (SDW) - ONE PER KNOWN SEGMENT

n DEFINES THE USER'S ADDRESS SPACE TO THE HARDWARE

n KNOWN SEGMENT TABLE (KST) - ONE PER PROCESS
KNOWN SEGMENT TABLE ENTRY (KSTE) (EXCEPT SUPERVISOR SEGMENTS)

ONE PER

KNOWN SEGMENT

-----------------------

DEFINES THE
USER

USER'S ADDRESS SPACE

TO THE SUPERVISOR

AND THE

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

THE SEARCH
NUMBER

FOR

AN

AVAILABLE KSTE

DETERMINES

A SEGMENT'S

REFERENCE NAME TABLE (RNT) - ONE PER EACH RING IN EACH ?ROCESS
NOT A SEGMENT - KEPT
AREA" FOR EACH RING

AS A REGION ALLOCATED

IN THE "LINKAGE

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

n USED
BY
THE
DYNAMIC
LINKER
"initiated- seaments"
SEARCH
RULE
...

Not To Be

Rep~oduced

4-3

TO

IMPLEMENT

THE

FaOA

NAME/ADDRESS SPACE OVERVIEW

DEFINES THE USER'S NAME SPACE TO THE USER
NAME SPACE
PROCESS

MAY BE DIFFERENT

QSt?~

IN DIFFERENT RINGS

OF THE SAME·

K5T

.

Sv'fo fV1

Copi .,)
F 1'0""'"

SP'jS
\

If\.lt~8(~

'-toe;

Not To Be Reproduced

S

y../

KJl' =-

4-4

F80A

NAME/ADDRESS SPACE TERMINOLOGY

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

, F Ybll ~0.T kff
/JISo .lJ1J:s..T It"

~.2~ .

\(~~\'25A'i'

SEGMENT NUMBER:

Q.

~ ~DT

hCtJVv"c,re

J~ {AvY' ~~\V(.s

L~'.T

\)

4ct1-G

~

AN OCTAL N~~~BER
0-1777
(0-1023 DEC!~~L)
ASSIGNED
UNIQUELY TO A SEGMENT.
USED BY THE HARDWARE AS AN
OFFSET INTO THE ARRAY OF SDW'S WHEN REFERENCING A
SEGMENT

MAKI NG 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

~-5

:80A

NAME/ADDRESS SPACE

TER~INOLOGY

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

F8QA

NAME/ADDRESS SPACE CONCEPTS

z

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)

z'

THE ADDRESS SPACE OF A PROCESS I S THE ABOVE "COLLECT! ON OF
SEGMENTS". SUCH SEGMENTS ARE SAID TO BE KNOWN TO THE PROCESS

n 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 INITIAL!ZER ADDRESS SPACE
THE RING ZERO ADDRESS SPACE IN ANY PROCESS IS THE SAME AS THE
INITIALIZER'S RING ZERO ADDRESS SPACE, EXCE?T FOR THE DSEG,
KST, PDS, PRDS, AND STACK_D,
THE RING ZERO ADDRESS SPACE HAS NO RNT, BECAUSE IT IS SET UP
~UR1NG SYSJEM~ INITJALIZA!IO~, AND DOES NOT CHANGE
~ -N \ \J ~(? J-.
J <' , '\ l7\ () 'I h.. p, M, L \ \ " k' , .f\C; 6 n \. i
OTHER SEGMENTS ARE MADE KNOWN AND, UNKNOWN DURING THE L:F2 OF TEE
PROCESS
IMPLICITLY BY THE DYNAMIC LINKER
COMMAND

(LINKAGE FAULT) OR A SYSTEM

tester
EXPLICITLY BY COMMANDS OR SUBROUTINES THAT MANAGE THE ADDRESS
SPACE

Not To Be Reproduced

4-7

280;"

NAME/ADDRESS SPACE CONCEPTS

MAKING A SEGMENT KNOWN IS SIMILAR TO DECLARING A VARIABLE IN A
PL/I PROGRAM. IT SIGNIFIES INTENT, BUT NOT USAGE
{'e:;[1fve~ ..3! 6T ,r)
KS)
THE' PRESENCE

OF ONE OR MORE

IMPLIES THAT THE
LEAST ONE USER

PAGES OF A SEGMENT

SEGMENT IS KNOWN TO (AND IS

IN

M.~IN

MEMORY

BEING USED BY) AT

BEING KNOWN DOES NOT IMPLY PRESENCE IN MAIN MEMORY

~

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

FSDh

NAME/ADDRESS SPACE CONCEPTS

NAME SPACE AND ADDRESS SPACE MANIPULATION

G)

®

PROCESS CREATION

USER'S
ADDRESS
SPACE

INITIATE WITHOUT
REFERENCE NAME

;
:

~~~~~~ri~T~AME

USER'S
NAME
SPACE
I ([pd]>rnt)*
( ___

[ pdJ >dse g )

( [ pdJ >kst

I

_ _ _ _ _ _ _ _ _. . .~-J

. . .,.,.. ______ ,

~_-

--

~~
.....-...w
:E

<
z

WW

~CJ

 [unique] .area.linker

Not To Be Reproduced

4-9

F8GA

z

o

,t-

NAME SPACE AND ADDRESS SPACE MANAGEMENT
PER PROCESS

PER SYSTEM

DATA BASES

DATA BASES

~-----------+------------~~

.f'.
I

267 qedx

KSTE FOR cwd

271

SOW FOR cwd

PT FOR qedx

272 cwd

KSTE FOR 5eg_3

270

. SOW FOR 5eg_3

PT FOR 5eg_l

266 pll

KSTE FOR qedx

267

SOW FOR qedx

267 qx

KSTE FOR pl1

266

SOW

RNT

KST

.......

0

(USER'S NAME SPACE)

FOR pll

OSEG
(USER'S ADDRESS SPACE)I

PT FOR pl1

PT FOR A.pl1

PAGE TABLES*
(SYSTEM'S ADDRESS SPACE)

* TUE ASTE'S ASSOCIATED WITH TUE PAGE TABLES ARE NOT SHOWN IN THIS DIAGRAM

1'1
CD

o

~

MAIN MEMORY

z

o

r ...·

MUlTICS VIRTUAL MEMORY STRUCTURE

1-1

o

OJ

ro

USER A',
ADDRESS SPACE

USER A's
VIRTUAL MEMORY

::0

toCD

cwd

'1

o

USER A',
SEGMENT TABLE

247

247

o-f-

~------------~

tcd

246

246

...-

ro

S_data

245

246

o-i-

OJ

--

-

c:
o

....

-

0.
SMALLEST UNIT
OF ACCESS
CONTROL

1-------.. .

---

-

If.:>

I
l-"

.-..

iom·mailbox

-1

fault vector

2

2

1

o

dseg

L..-_ _ _ _ _ _ _ _.....Jt"

r ....

,

./
217

0

.~~

276

0

217

276

L.-

til

2

dseg
USER D's
ADDRESS SPACE

tT)

0)
C)

:J: ..

1

0

--

:~B
0

USER 8's
VIRTUAL MEMORY

'"

-- >-

--

-I-

....

-

--

0
o~

1022
1021
1020

z
~
~

--..

0- ! -

0-

1M

»'

l:j

t1

:u
trJ
Ul
Ul
Ul

ttJ
»'

~

I ~

faull_ vector

--

r-

+,!

IDBR

qedx

-

"'-r-

-~-Io------t'
,'/e/w

0-

1023

- ......

0-

2

0-

-

1

.-

-

0

..... . - - - - - -

USER B's
SEGMENT TAoLE
{ONE ENTRY PER
KNOWN SEGMENT)

()

P:I
()

- - - -I

0

+-

SYSTEM'S PAGE
TABLES
{ONE PER ACTIVE
SEGMENT)

I
I
-I

z

()

3

P:I
ttJ

8

2

Ul

1

0
I

a

4

REAL MEMORY

0

1

3

0123456789

1
4

1

1
2222222222333333
1890123456189012345

o
POINTER TO ALLOCATION AREA

2

1I

INSERT TRYS

II

INSERT WINS

3
GET _RNAME TRYS

4

GET _ RNAME WINS

DELETE _ SEG _ NO WINS

5
DELETE_NAME TRYS

6

DELETE_NAME WINS

c:
w

~

RNT AREA SIZE

7

=
z
~

8

a:

SEARCH RULES POINTER

9

10

128 WORDS FOR
REFERENCE NAME HASH TABLE

:

138
128 WORDS FOR
SEGMENT NUMBER HASH TABLE

o

2

NAME FORWARD R_PTR

(TO SAME HASH)

SEG_NO FORWARD R_PTR

(TO SAME HASH)

SEG_NO

I

-t-i
!
I
I

NAME LENGTH (Ll

CIl

~.

w

CIl
c:_Z

~=

I

L CHARACTERS CONTAINING
SEGMENT'S REFERENCE NAME

=--=--=--=---,--,.=L-t------ ---------L..'-~=======~l T

=E

ww

~~

-r--------------------ij~--------------------------~--------------------------,J~
I.nunci.pl' i

(WORDS)

REFERENCE NAME TABLE (RNT)
A PAGED DATA BASE ( (pd] > rnt) . ONE PER ACTIVE PROCESS
"INITIATED SEGMENTS" IN SEARCH RULES

REFERENCE NAME TABLE ENTRY (RNTE)
ONE PER REFERENCE NAME

Not 70 Be Reproducec

4-12

:80A

NAME/ADDRESS SPACE DATA BASES
KNOWN SEGMENT TABLE (KST)
5

;

2~222Z22

•

J'

2J';;57

:J';:6~9~J'

L.OWEST SEGMENT NUMBER

HIGHEST SEGMENT NUMBER
HIGHEST SEGMENT NUMBER YET USED

NUMBER OF PRIVATE L.OGICAL. VOL.UMES

TIME OF BOOTLOAD

NO. OF KST ENTRIES RECOVERED

NO. OF KST GARBAGE COLL.!CT10NS

FIRST FREE KSTE R_PTA

54 WORD ARRAY FOR UID HASH TABLE

~======~========~======~-'-&
SEGMENT NUMBER

2

TIMES

NUMBER

OF

SEGMENT

INlnATED

THIS

FIINGI

{PER

BRANCH ENTRY POINTER

SEGMENT'S UNIQUE IDENnFIER (UIDI

4

OATE TIME BRANCH ENTRY MODIFIED (DTBMI

EXTENDED ACCESS

w
~ING

R
RING

e

1'1

FliNG

RING

OTHER KSTE's
ONE PER INITIATED SEGMENT

~----------------~I--:
256 WORD L.IST OF PRIVATE
VOL.UME CONNECTIONS

L.OGI~L

~

[ ______________________________e_N_O_O_F_K_ST__________________________________
~st.lnC:l.g,'

~NOWN ~EGMENT TABLE
.. PER PROCESS OAT.J. SASE

:pa: -.• 'ROCESS

NOT WiRED ENC.J.CHE.:.aL.E,

lSNOWN

Not To Be Reproduced

~EGMENT

TABLE s.NTRY KSTE:

4-13

~I~

/~

0
ft-

1-:1
0
tJj
(1)

!U

f1)

'tJ
t1

0

0

0.

1

2

3

It

5

6

7

8

9

1
0

1
1

1

1
3

2

1
4

1
5

1
6

1
7

1
8

1
9

2(-2

(1)

ADDRESS OF PAGE TABLE

0

R]illJ

(.l~

1

mm~

~mm

OUT OF BOUNDS ADDRESS (MOD 16)

E

R

V

A

-

X

E

I

I

N
P

A

E
B
S
W

R
E

OUT OF BOUNDS·ADDRESS (MOD 16)

If>.

A
0

E
X

E

C

wr
R

I

T

R

I

V

U
N
P'

A

V~:O
,t

\ t? no I~ 17;

2

2

2

4

5

6

2

2
7

8

R
RING

2
9

3
0

3
1

E
BING

\

A

ENTRY POINT BOUND

C

C

J{J.

245

0
F

E C
B A
S C
W U

R
RING

E
RING

0
F

l

lmm

\

W
RING

:~:~:~:

R]]]T
E
A

OUT 01= BOUNDS ADDRESS (MOD 16)

(WORDS~("-'''''c.~7S

X
E

R
I

OCT

)'t)~ PF>tfY>/~) t; C"I....

\ : .... ! 7r.j"to

QESCRIP'TOR

u

R N
I· P
V A

E C
B A
S C
W H

R
RING

~~ ((t'J
~SEGMENT

QESC'~IPTOR

o(ri

O~ (Jo-Vl-<.)t.

(DSEG)

WORD (SOW)

ONE PER INITIATED SEGMENT IN PROCESS (MAX 1024)
IIJ

OJ

a

:r,.

5",,(']
( 6

1 (

.,

11 ->('" 5

e~ A) ~ Vf'
'\rw

{)

P- Pie 7}

(~p it rochj.

E
RING

0
F

OF
NO

ENTRY POINT BOUND

A PAGED ((pd) > dseg) DATA B:ASE- ONE PER ACTIVE PROCESS

SEGMENT

f

OF
NO

"-

\.-..-.

ADDRESS OF PAGE TABLE

:!:::::

SOW
0

SOW
1

ENTRY POINT BOUND

,

2047

-

OF
NO

If>.

2046

1I!J9-

H

\

t
J_.

l.·S
'
(" PtI3,f..

~
tAO

W
RING

:=:!:::

:ljjjjj\

v

W
RING

ADDRESS OF PAGE TABLE

2
3

R

OCT

u

2
3

012

c

n

c tl o,/..1~

5).0-, g'j

(sdw.incl.pI1 )

-

NAME/ADDRESS SPACE DATA BASES
DESCRIPTOR SEGMENT (DSEG)

SEGMENTS IN THE MULT1CS HIERARCHY

INITIATED WITH
REFERENCE NAME{S)

IN USER'S RNT

INITIATED ~W[IT!JH~O~Ub[T[--=t~j===:::::'----..L.-i
REFERENCE NAME
IN USER'S KST
SUPERVISOR
SEGMENTS _ _ _ _...

-

MUST CONNECT USER
TO CURRENTLY ACTIVE
SEGMENT -ORRECONNECT BECAUSE
OF ACL CHANGE, POOL
PROMOTION, ETC.

IN USER'S DSEG

; 1- ...
- ...1-

-~:

VALID SOW;~;

FAULTED
SOW

,; 0w:

',.rn.~~

ACTIVE SEGMENTS

----+~N-T-HE

AST

il

l:lI . <.
~

w

I-

....
~
a::
w

Q.

STATES OF SEGMENTS AND PAGES
Not io Se

R~~rocuccc

4-:3

TYPICAL
~

COLLECTION

I

SEGM~NTS

ADDR~SS

SPACE

Z~RC

WHiCH MUST

BE PRESENT TO

RUN THE

VERY FIRST LOADING

PROGRAM

I

SEGMENTS WHICH
HARm·JAR:

I

ALL DESCRIBED IN template_slt_.cds

o

(ring 0)
[pd] >dseg
The In it i a I i zer IS dseg
The descriptor segment.
comes from the system tape and is bwi It durin;
system initial ization; all others are created by
process creation.

HAVE FIXED ABSOLUTE ADDRESSES

TO INTERFACE WITH

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

(ring 0, perm-wired)
iom_mailbox
""Ia i 1boxes (commun i cat ions areas) for up to four
I OMs.
Located at 1ocat ions 1200-3377 absolute.
Used by the 10M hardware.

3

>sI1>confi9_deck
(ring 0, deciduous)
The online copy of the config deck. This is bui It
from the conTlg deck provided by BOS during system
initial ization, 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.

5

(r i ng 0, perm-wi red)
bos toehold
The segment containing the tiny program used to
swi tch between Multics and BOS at crash time.
Locateci at aosolute locations 10000-11777.

Not To Be Reproduced

1.-16

FgOA

TYPICAL ADDRESS SPACE

6 flagbox

(ring 0, perm-wired)
reg i on ins i de the bos_toeho I d segment (yes, it
really overlaps the toehold) used to access the
BOS/Multics communication region.

A

'7
10

>sll>slt
(ring 0, deciduous)
>s11>name_table
(ring 0, deciouous)
The two primary datab~ses of system initial ization.
The SLT contains one entry for every supervisor
segment read from the system boot tape, containing
a 1 I its at tr i butes. The separa te name_tab 1e is used
to hold the names, because each segment may have
several

This marks the end of Col'lection Zero. All the rest of the segments in the
address space are either read from the system tape or found in the onl1ne
system.

Not To Be Reproduced

L.-

17

TYPICAL ADDRESS SPACE
~

COLLECTION ONE

I

F!RST BATCH OF SEGMENTS READ FROM SYSTEM TAPE

I

ALL THE PROGRAMS AND DATABASES NEEDED TO MAKE PAGING RUN

I

ALL SEGMENTS WH I CH MUST BE "perm-wi red "
LOW MEMORY, WITHOUT PAGE TABLES

PERMANENTLY ALLOCATED IN

11

lot
(r i ng 0)
The supervisor's rinkage o~ffse't table. Used to find
linkage sections. Built as the segments are read in
from tape.

12
13

as_l i"nkage
(ring 0)
wS_l i nkage
(r i ng 0)
The permanent supervisor combined linkage regions.
The names mean '''Active Supervisor Linkage ll and
"Wired
Supervisor Linkage",
respectively.
The
1 inkage
sections
of all
permanent supervisor
segments are put in one of these ~s the segments are
read .from the tape.

14

>sll>defini·tions_
(ring 0, deciduous)
The segment co~taining . al 1 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 containi~g 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
All the core map entries, describing all system
memory. Covered under Page Control.
This used to
be part of the S'S1, but was moved ·out to make more
room for page tables.

17

abs~seg

An abs-seg used for
Not To Be Reproduced

9

perm-wired)

(ring 0, abs-seg)
complex call-side operations in
4-18

F80A

TYPICAL ADDRESS SPACE
page
contro 1 ,
reconfiguration.

such

and

. as

20 . abs_segl

'(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 SOW
which refers to any ordinary segment. This is a
very spec i a 1 hardcore
s,egmen t, because i. t has.
trailer entries, and it is special-cased by the
trailer manipulation progr~mt setfau!ts.
Normal
Mardcore segments neyer receive trailers since they
are.never activated or deactivated.
9

22

fim_abs_seg
An abs·-seg used by the F IM to do someth i ng

23

i so 1 tS;.)!bs_seg

24

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

25

bound_active_l
bound_disk_utiT
bound_d iSk_ut i l_w ired
bound_error_active
bound_error _wi red
bound_interceptors
This is where the FIM lives.

26
27
30
·'31

32
33
34

35
36

37

(r i ng O. abs -seg)

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

(r i ng
(r i ng
(r i ng
(r i n9
(r i ng
(r i ng

(r i ng
bound_io_wired
(r i ng
bound_lorn_support
bound_page_control
(r i ng
(r i ng
bound_priv_l
(r i ng
>sll>bound_sss_wired_
This is wheie pll_operators_ and a whole host of
other mi sce 11 aneous subrout i nes 1 i ve. It is wired
in a very special way, because not all of its
contents need to be wired.
In particular, only
about half of pll_operators_ needs to be wired. and
there is a scecial hack in make_sdw.pl1 which finds
the definition in the middle of pl l_ooera:ors_ ~hich

Not To Be Reproduced

4-19

0)
0)
0, per.m-w·i rea) .
0)
0, perrn-w i r ec)
0, perm.-w ired)

0,
0,
0.
0,
0,

perm-w ired)
. perm-wi red)
perm-w ired)
perm-w ired)
dec i duoLls)

TYPICAL ADDRESS SPACE
marks the end of the wired portion, and makes an
ASTE for bound_sss_wi red_ wh i ch has all its pages up
to and including that definition wired. and the rest
unw ired.
LO
41
42

43

44

bound_tc_priv
(ring
bound_tc_wired
(ring
bound_unencacheable
(ring
dir_seg
(ring
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.

0.
0,
0.
0,

perm-wired)
perm-wired)
perm-wired)
abs-seg)

d i sk_pos t_queue_seg
(r i ng 0, _ perm-w ired)
The segment where the core address-queue lives: see
core_queue_man. a 1m..
Th is j s discussed under Page
Contro 1 .

45 disk_seg

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

i ng 0, perm-w ired)

The
segment containing
so.ftware· 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.
(r i ng 0; abs-seg)
used by sctf:ult: when accessing another
process IS DSEG in order
to remove a trailer.
Covered under Segment Control.

Th~

s~gment

50

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

51

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

52
53

idle_dsegs
(ring 0, perm-wired)
idle_pdses
(ring 0, perm-wired)
Two similar segments: they contain the DSEG and PDS
segments for a 11 the i d 1e proces'ses, all ina row.
When an idle process is constructed, the SOWs for

Not To Be Reproduced

4-20

TYPICAL ADDRESS SPACE
its DSEG and PDS are set up to point into the middle
of one of these segments.

54
55

init_processor
(ring 0)
inzr_stkO
(ring 0)
The 'stack segment used by the Initializer during
initialization
and
shutdown.
During
normal
operation, the Initial izer participates in ordinary
ring zero stack sharing.

56

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

57

,i~1_abs~~eg

. " ' 'The' abs~seg used ", by i6i'~i nterrupt. p 11
user ioi
buffer at Jnterrupt time,
status information.

60

(ringO, abs-seg)
t'o access a
for storing

ioi_data
(ring
for
ioi
describes
all
The
database
user-accessable,
or
potential Jy user-accessable
devices.
See the programs in bound_io_active and

O~

perm-wired)

bound_i~_wired.

61

(ring 0, perm-wired)
Describes the
configuration of the
10Ms, and
software information ~bout 10M channels. Contains
'assignment
information,
software
status q~eue
location, and metering cel Is.

62

oC_data
(ring
The database for the ring zero operator 's ~onsole
mechan i s~. ih is is used by' syser r in r'ing zero, and
by the Initial izer to write on the system console
(but not message coordinator consoles).

63

(r i ng' 0, dec i duous)
[pd] >pds
The Process Data Segment.
This contains al I the
miscellaneous information that
makes a process
unique to the supervisor, and need not be readily
accessable"to other processes.
Most per-process
symbolically, such as
variables are referenced
pdsSprocessid,
pdsSpage fault dat~
(machine
conditions for last page fault), etc.

64

>sll>prds
(ring 0, deciduous)
Like the PDS, but, per-processor. Conta i ns 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) a~d all
interru~ts.
Ther~ is
a PROS per processor, named

Not To Be Reproduced

L-21

C~

perm-wired)

TYPICAL ADDRESS SPACE
>sll>cpu_A.prds, cpu_B.prds, etc.
The PRDS segment
in ring zero is changed at LDBR time to indicate the
actual PROS of the processor that the process is
going to run on; thus, it/s sort of an abs-seg. All
PROS IS are wired, but have page tables.
65

>s ll>pvt
The Physical Volume Table. Described
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 ~ny disk, its
aste.pvtx and PTW are switched around to indicate
,~her igh,t page w,hichis, fau1.ted. on ~nd OJ, needed)"
written back6ut, by pc$cleanup.

(ring 0, deciduous)
unver Volume

g•

, 67
70

res tar t _ fa u 1 t
(r i n9 0)
return_to_ring_O_
(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_O_.
Additionally, the machine
conditions for the fault are saved in ring zero (in
the P~S) so that when restart_fault is ca,11ed to
'~estart
a poss,ibly modified set of conditions, it
can compare Cind valrdate.

71

scas
(ii~g
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
privi leged 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.

73 signaller
The procedure
signa IIi ng .

Not To Be Reproduced

which

imp 1ements

4-22

user

ring

(r i ng 0)
f au l,t

F80A

TYPICAL ADDRESS SPACE

74 >sll>sst_names_

(ring 0, deciduous)
The SST name table. This is a debugging feature; it
conta i ns
(when
in
use)
the
pr i mary
name
correspond i ng to every segment in the AST. I t can
be maintained on1 ine; by use of the PARM ASTK config
card, but usua 11 y is not. I tis a I ways fill ed in by
FDUMP after a crash if it was not already in use.

75 stack_O_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 amon~ el ig1ble processes.

76.

stoc'k~seg'

';"
::.
': '.'
. .
(r i ng O. perm-wired)
The ,segment containing al.l in-core record and VTOCE
stocks for use by page control and segment control,
and covered under those topics.

77 >sll>sys_boot_info

(ring 0, deciduous)
A data segment containing information about the I/O
devices (tape and disk) used during boatload.

100

>sll>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 initial ization is complete.

101

syserr_data
(ring 0, perm-wired)
Data segment for the lowest level of the syserr
mechanism.
Syserr messages are bui It 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
\r .I ng O. abs-seg)
This segment overlays the LOG partition on some
disk, which is used
to reliably store syserr
can be
copied into the
messages
unti 1 they
perm~syserr~log' maintained in the Hierarchy.

103

tC_data
(r i n9 0)
The traffic control data segment; contains al I
traffic
control
data.
Covered
under Traffic
Contro 1.

104

\~ i

red_hardcore_da ta
(r i ng 0, perr.'l-W ired)
Miscellaneous data used by the wired supervisor.

Not To Be Reproduced

1.-23

~80A

TYPICAL ADDRESS SPACE
~

COLLECTION TWO

I

THE UNWIRED PORTION OF THE SUPERVISOR

I

READ IN BY COLLECTION
ONE, DIRECTLY
SEGMENTS IN THE HARDCORE PARTITIONS

105

>srl>active_all_rings_data
Miscellaneous
data shared
between
supervisor and the outer rings.

INTO

the

PAGED

(r i ng 0, dec i duous)
unwired

106

act i ve_hardcore_data
(r i ng 0)
Miscellaneous data used by the unwired portion of
the supervisor: system-wide locks, size constants
for directory control, system search rule info, and
met~ring
for directory control and the dynamic
1 i nker •

107

>s l'l>adm i n_gate_
(r i ng 0, dec i duous)
as t_l oCk_meter _seg
(r i ng 0)
A segment used to
collect AST lock metering,
normally off (enabled
by the ast_lock_metering
tuning parameter).

110

111

112
113
114
115
116

117
120
121
122
123
124
125
126
127
130

131
132

133
134

135

>sll>audit_gate_
bound_355_wired
bound_file_system
bound_hc_backup
bound_hc_reconfig
bound hc_tuning
bound_imp_dim_
bound_imp_status
bound_io_active
bound_mcs_util
bound_priv_mpx
bound_networkO_
bound_priv_procs
bound_process_creation
bound_salvager
bound_scavenger
>sll>bound sss_active_
bound_system_faults
bound_tty_active
bound_vtoc_man
bound_x25_mpx

Not To Be Reproduced

(ring
(r i ng
(r i ng
(ring
(r i ng
(r ng
(r ng
(r ng
(r
(r
(r
(r
(r
(r
(r
(r

n9

ng
ng
ng
ng
ng
ng
ng
(r ng
(r ng
(r ng
(ring

0, deciduous)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)
0)

0, dec i duous)

0)
0)
0)
(r i ng 0)

4-24

F80A

TYPICAL ADDRESS SPACE
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 >sll>dm_hcs_
141 >s11>dm-i0urnal_seg_
142, >s 11>error_;ab 1e
~'143'~ ~ f~h~_d.UIJ1P~s~g\·

,.

':'-.~.' ~,

.'

." ::": ",

i.

~...

,

"~

. -.

Segmenr' used for data buffering by FNP
-, "', patch"operations (but not boot load) •
'.
144
145
146
147
150

151
152
153

154

(ring
(ring
(ring
(r'j ng
dump and

hasp_mpx
(r i ng
>s11>hc_backup_
(ring
>sll>hcs_
(ring
>s I l>hphcs_
(ring
(r i ng
ibm3270_mpx
imp_data
(ring
(r i ng
imp_dim_buf_
imp_tables
(r i ng
imp_wi red_buffers
(r i ng
These four segments were used by the ring zero IMP
DIM (part of the ARPAnet support), which has since
been decomissioned.

O. deciduous)
0, deciduous)
0, deciduous)

OJ

0)

0, deciduous)
0, deciduous)
0, deciduous)'
0)
0)

O)
0)
0)

155

initializer_abs_seg
(r i ng O. abs-seg)
An abs-seg used solely in order to copy a process's
stack_O segment into
its process directory en
process termination.

156

, (ring 0, deciduous)
>sll>initiaiizer_gate_
io_page_tables
(r i ng 0)
The segment which contains page tables.used for I/O
if the 10M is operating in Paged mode.
It is
i nit i ali zed -by, i 0 i i nit and used only for ioi I/O.

157

160

ioat
(ring 0)
The I/O atta~h table. This is a largely obsolete
database, the reI ic of
an earlier I/O device
attachment scheme
It is now used only for loading
and dumping FNPs.
0

161

62

>sll>ioi
[pd]>kst=seg

Not To Be Reproduced

(ring 0, deciduous)
(ring 0, dec;~uous)

4-25

TYPICAL ADDRESS SPACE
The Known Segment Table.
Address Space Management.
163

lvt
The Logical
Management.

Volume

Table.

Described

Described

164
165

>sll>mhcs_
ncp_tables_
Another part of the now-decommissioned
ARPAnet support, no longer used.

166
167
170
171.'
172
173

>s 11>net _ringO_admin_
>sll>net_ringO_sys_
>s 11>net_ringO_user_
->5 ll>phcs_

174
175
,176

177
200

201
202

203

204

in

Name

in

&

(r i ng 0)
Volume

(ring 0, deciduous)
(ring 0)
ring zero

(r i ng
(r i ng
(r i ng
(r i ng
(ring
pol1ed_vip_m~x
pv_salv_seg
C,.. r ng
This data ~egment is created in order to run the
physical volume salvager (now rarely used) . It
conta i'ns various databases used by the salvager. It
is .created (by ca 11 i ng grab_aste.pll) and destroyed
for each volume salvage, in each process running a
salvage, rather than being a shared segment.

0,
0,
O.
0,
0)
0)

dec i duous)
dec i duous)
dec i duous)
dec iduous)

salv_abs_seg_OO
(ring
sa lv_abs_seg_01
(r i ng
salv_acs_seg_02
(ring
salv_abs_seg_03
(ring
salv_abs_seg_04
(ring
These five segm'ents are used t~ over 1 ay the VTOC of
and are set up and
a volume being salvaged,
referenced by vm_vic.p1l. Covered under Fi Ie System
Salvagers.

0,
0,
0,
0,
0,

abs-seg)
abs-seg)
abs-seg)
abs-seg)
abs-seg)

salv_dir_space
(ring 0)
salv_data
(ring 0)
salv_temp_dir
(ring 0)
These three segments are used by the directory
salvager when invoked as the online salvager, in
re"sponse to a crawl out or bad_d i r cond it j on. On 1y
one instance of the, online salvager may be running
at a time, and this is ensured by a lock on
s~lv_data.
The online salvager does not interfere
with demand directory salvages, however. Covered
under File System Salvagers.
scavenger_data
(r i ng 0)
The segment containing the tables used when running
the on1 ine volu~e scavenger.
As many volumes as
tables can be fit nere may be scavenged at one time.

Not To Be Reproduced

4-26

F80A

TYPICAL ADDRESS SPACE
The in-use
scavenge is
Salvagers.

of the segment is wired while a
being done. Covered under Fi Ie System

po~tion

205
206

>sll>shcs=
(ring 0, deciduous)
str_seg
(ring 0)
The segment trai ler segment. The trailers in this
segment record whi ch processes have an SOW for· any
particular
non-supervisor
segment,
and
the
backup_abs_seg (see above) .
Covered under Segment
Contro 1 •

207

syserr_daemon_dseg

(ring 0)
(r i ng 0)
.. (r'ing· 0) .
The. OS~G, PDS~ 'and ring. zero ~t~ck· of ,the syserr
~1 ogg eng daemon. They' are" f i 1.1 ed', in when- the daemon
processs ·>(whTc:h runs entirely' in ring zero)' is
created.
They are in the global system address
space pr i'mar i 1·y . for debugg i ng and recordkeep i ng
purposes.

210 . sy.serr _daemon_pds. . .
21:1 : .syser.r_oaemon_stack·

212
213

214

>s I l>sys tem_pr iv i 1ege_
(r i ng o,dec i duous)
>sll>tandd_
(I" i n9 0, dec i duous)
template_pds
(r i ng 0)
A template for the POS, used when creating a
process.
It is a copy of the ~ds template which
came off the system tape, but which was used to
create the Initiaiizer's POSe

215

tty_area
(ring 0)
An unw i red database used by r i 'ng zero commun i ca t ions
system,
used
primari Jy
for
saved
metering
information on each channel.

216

tty_buf
(ring 0)
The
important
segment
in
the
ring
zero
communications system. Contains the iogical channel
.tab 1e, a 11 commun i cat ions 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.

220

vtoc~buffer _seg

(r Lng 0)
.The segment containing all buffers for VTOC I/O, and
a small amount of· controi information. Covered
under Segment Control.

Not To Be Reproduced

l.-?i
.
-I

TYPICAL ADDRESS SPACE
221
222
223
224
225
226
227

«unused»
«unused»
«unused»
«unused»
«unused»
«unused»
«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

>s11>stack_O.016
(ring 0, deciduous)
The ring zero stack. One is allocated from a pool
whenever
a
proces·s becomes
(>s 11>s tack_O. NNN)
eligible. When: a process is not eligible .{blocked,
usually).,· it has no ring zero context, and needs no
ring zero stack~

231 . [pdJ>stack_l
232 «not
used»
232 «not
used»
234 [pd]>stack_4
Th. 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 DSR.stack), and when a segment fault occurs on
a stack not yet extant (pds$stacks (r i n9) is null),
seg_fault.pll calls makestack.pl1 to create one.

Not To Be Reproduced

4-28

F80A

TYPICAL ADDRESS SPACE
NON-SUPERVISOR SEGMENTS

~

I

REMAINDER OF A PROCESS ADDRESS SPACE.

I

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

I

DIFFERENT
. E,XAMPLE -

IN

DIFFERENT

r-' 'y - ,.,' '{.In,, ,'_0'\_,_ .
.~';~'l,(.f
. J\: :J

,

240

>

__,'-V"'--,
, - ',J,
,-,'

e
_'

PROCESSES; THIS

' ,V"/ 11\0'-"': r-.
,

, ,\
tJ

IS

ONLY AN

v~
{' ft I'>,'.d, ",(

.:It:,

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

The

ROOT

241 >pdd
242 >pdd
243 >sss>bound_process_init_
244 >udd
245 >udd>MED
246 >udd>MED>Sibert
147 [pd]>!BBBMjzKmkcngb.area.1 inker
250 >sss
251 >unb
252 >s 1 1
253 >tools
254 >am
255 >sll>bound_sss_active_
256 >s11>operator_pointers_
257 >s) l>bound_ss,s_w i red_
260 >s11>bound_process_env_
261 >s11>hcs
'
262 [pd]>pit263 ,>s11>bound_error_handlers_
264 >sll>bound_ipc_
265 >sss>bound_as_requests_
266 >sss>bound_info_rtns_
267 >scl
270 >scl>whotab
271 >sclinstal Jation_parms
272 >sJ l>sys_info
273 >sss>bound_command_]oop_
Not To Be Reproduced

4-29

(d i rectory)
(d i rec tory)
(d i Fee tOFY)
(d i rectory)

rectory)
(d i rectory)
(d i rectory)
(d i rectory)
(d i rectory)
(d i

(d i rectory)

~80A

TYPICAL ADDRESS SPACE

274
275
276
277
300

>scl>command_usage_counts
>scl>command_usage_counts>command_usage_l ist_
>scl>command_usage_c?unts>command_usage_totals_
>sss>bound_exec_com_
>s11>error_tab1e_

Not To Be Reproduced

4-30

F80A

NAME/ADDRESS SPACE METERS
system link meters

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

L'j nkage Meters:
CPU .Metering time
(

Total time in linker
Average time per link
Percentage of real time in 1 inker
Perc.entage o'f CPU t i ~.ei ~ I i.nker
•

",'

~

':"

•

~. .~ .... ;.. :'~ :.~:.

• ••• !K

••• '.

.'.

Time ~'lot ·(msec)·.

~

•

.:.

" .. ''''

~.

.'

'.1

<2.5

~··ca:,l:fs ;.:.., .... : ;.~~ :...... ~.:-:~.:~;.\; . . :... -49S'ii'69 :"',,'
Total time in slot
0:42:03
Percent total time
82.63
Percent total cal Is
98.06
Average time
5.06
Average page faults
0.18

4:58:57

0:50:53
6.01 msec.
17.03
4.66 '1", .
"

_

".,.

~

'.

•

•

~

•

•••

. 25·-50

..

~.

-

'50-75

,········.835'7"· -..... ' .. ': '.' "414':
0:04:16

0:00:24

8.40
1.64
30.68
.2.29

0.81
59.63
6.34

O.Os

>75

.:. '·Iloa.
C:04:09
8. 16
0.22
226·59

Segment Search
Average time
Average page faults
Percent time in slot

2.58
0.04 .
57.06

25·13
0·95
82·58

53. 15
3·53
86.46

Get L i nka'ge
Average time
Average page faults
Percent time in slot

.0.S4
0.06
18.54

4.08
0.62
13.41

7.16
0.93
11.64

'219·16

Definition Search
Average time
Average page faults
Percent time in slot

0.24
0.02
5.26

0.24

0.23
0.24
0·37

0.20
0.00

Net To Se RenrDduced

O. 11

0.80'

0.22
3.80

5.33
95.71

0.09

FgOA

NAME/ADDRESS SPACE METERS
1 ink meters
o

LINK_METERS
RECORDS CPU TIME AND PAGING INFORMATION
DYNAMIC LINKER IN THE PROCESS RUNNiNG iT

Linkage Meters: \(1 ~\\l~~ \,f',\I-.
slot
can s avg time avg pf

<25
25-50
50-75
>75
Total

1245
34
6
2
1287

4.689
30.201
62.226
216·545

0.3
2·9
6.2
. 6.0

5·961

0.4

--------

tot time

% time

5.838
1.027
0.373
0.433

76. 1
13.4
4.9
5.6

USED

BY THE

_ _ _ 00> _ _ _

4-32

7.671

F80A

NAME/ADDRESS SPACE COMMANDS
display kst entry

m DiSPLAY_KST_ENTRY - DISPLAYS INFORMATION FROM A KST

display_kst_entry>udd>Multics>Sibert

segno:
usage:
entryp:
uid_:
dtbm:'
i;m~de::'

246

at

o
luo(j,,? fV1t.dT

9; ~ er--{'

"

dirsw write tms

lLJ '- y<

f"1rJ

~~

l ~ d-\

- 5e3'h()

L- pro

d- f) 0

OJVV\(7

1 '0

l

()~f5I(r

I

"-oc1
0

It \ w~r)S' \e>'1c?j
/'

Not To Be Reproduced

4-33
(End Of Top i c)

F80A

TOPIC V
Direct9ry Control

Page
Directory Control Overview • •
• • • •
5-1
Directory Control Terminology . • • • • • • • •
· . . . • 5-3
Directory Control Data Bases •
• •
5-6
....
5-6
. Dire.cto'ry ,S.egments,. • • .. .• .. .~, ~.
· .. .
5:"9 .
. ' . ",' - Directory Header • • .'
..
" Dir.ecto,ry. Entrie-s.',
~
5-11
.,
DirectoryCont.rol Commands • .:'. • ,.• ' .' ..' • • • ..
5 ..... 15
display_branch . .. • .. • • • • • • •
. • 5-15
0"".

c

..

.. ,

•

•

•

•

•

5-i

•

. •'

. .
. ....
.

•

•

c'

F8QA

DIRECTORY CONTROL OVERVIEW

B

FUNCTION
. ',,'

!

DIRECTORY 'CONTROL IS A SET OF HARDCORE MODULES RESPONSIBLE FOR
THE MAINTENANCE OF THE MOLTICS DIRECTORY STRUCTURE -- IE: THE
HIERARCHY

D

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

r:-' :ACCESS'~ ,: :CONTROL 'LlSTS
, ,".,

n

~';['RI

,~, '(ACt'S) ", ','NAMES' ~ "'AND
ES.DESCRI BED THEREIN.,

ONLY DIRECTORY CONTROL IS
DIRECTORY SEGMENTS

ALLOWED

VTOC~> POINTERS OF,

TO ALTER ,THE

CONTENTS OF

D DIRECTORY CONTROL

IMPLICITLY RELIES UPON THE SERVICES OF OTHER
SUBSYSTEMS SUCH AS SEGMENT CONTROL AND PAGE CONTROL, AND ALSO
INVOKES THEM DlREC~LY BY. SUBROUTINE CALL
D

DIRECTOR~ES

ARE SIMPLY SEGMENTS TO THESE SUBSYSTEMS

o DIRECTORY CONTROL IS INVOKED ONLY BY SUBROUTINE CALLS

m PRINCIPAL USER INTERFACES

B

COMMAND LEVEL

Not To Be Reproduced

5-1

FaQA

DIRECTORY CONTROL OVERVIEW

o

create, create dir, link, set_acl, delete_acl, status, list,
add_name, rename

D SUBROUTINE LEVEL
n

B

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

MAJOR DATA BASES

DIRECTORY SEGMENTS

o

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

SEGMENT WHERE DIRECTORY LOCKING IS MANAGED

Not To Be Reproduced

5-2

FaQA

DIRECTORY CONTROL TERMINOLOGY

o

Stu den t

ATT'S

1
(LINkS'

=+

Prince

hw dir

add.pl1

ATT'S

ATT'S

ATT'S

hw dir

Stu den t

a

1

hw dir

Not To Be Reproduced

5-3

F80A

DIRECTORY CONTROL TERMINOLOGY

UNIQUE ID (UID)4 36-BIT ID (SERIAL NUMBER) ASSIGNED
WHEN CREATED

TO EVERY SEGMENT

SON:

OF A DIRECTORY.
SEGMENT

SON'S tVID:

'OF A·DlRECTORY,.·.·THE ID OF THE LOGICAL VOLUME ON WHICH
THE DllmCTORY'S SONS RESIDE (AND WILL RESIDE)

.

~.

".

,""

AN IMMEDIATELY INFERIOR (SUBORDINATE)

.

.

",'

...... .

GRANDSON:

OF A DIRECTORY. A SEGMENT
HIERARCHICAL LEVEL

PARENT:

OF A SEGMENT.

ANCESTOR:

OF A SEGMENT.
THE PARENT,
GRANDPARENT, ETC.

BROTHER:

OF A SEGMENT

Not To Be Reproduced

0

INFERIOR BY MORE

THE "CONTAINING" DIRECTORY

THAN ONE

SEG~reNT

OR GRANDPARENT,

OR GREAT

ANOTHER SEGMENT HAVING THE SAME PARENT

5-4

F8QA

DIRECTORY CONTROL TERMINOLOGY

BRANCH (1):

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

BRANCH (2):

OF A DIRECTORY.
REFERS TO THE ACTUAL SEGMENT OR
DIRECTORY IMMEDIATELY INFERIOR TO THE DIRECTORY

. 1!

ENTRl. (1).:.

~DlRECTOR~ . ~

OF A DIRECTORY.

ENTRY (2):

e
SEGMENT

SAME· AS B~CH (1) BOT INCLUDES - LINKS

SAME AS BRANCH

:G
DIRECTORY

{2} BUT INCLUDES LINKS

I

. XVZ

LINK

FILE

ENTRY

STORAGE SYSTEM TERMINOLOGY

Not To Be Reproduced

5-5

FaQA

DIRECTORY CONTROL DATA BASES
DIRECTORY SEGMENTS

AREA
INFO

~

AREA

_ _ _ _ _ _ _-fPROJECTS

~-------f PERSONS

INFO
HASH

I

,
END OF

TMLE~D:IR:E~~O:R~Y~________- ,

HEADER

HASH TABLE

IACt.

o-f

BRANCHES

?

,

o-non. -I

RWo. Svs

~!l··
I! .

ACCESS NAMES

~
I G. Oillon

••

IMamnson
I

Mullen

lHoman
6
t

~i

;:;"*-

~I~;;-··
~IJI
I 8:l.

9.

9

II ,+

::,===~

R_-_
.•. _-_ _ •

MEO

,+

I

I!

I ~"'""R-.s-n.-Sa.-·--~

6

Multlcs

6

-,f.--J .

_,S~lt._S._ _

I"SvsMamt.
6

t
DIRECTORY SEGMENT STRUCTURE

Not To Be Reproduced

5-6

F8QA

DIRECTORY CONTROL

~

BASES

DIRECTORY SEGMENTS

•

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

o

ONE DIRECTORY SEGMENT PER DIRECTORY IN THE HIERARCHY

• ,DIRECTO~YSEGMENTS C,ONTAIN. "', . CATALOG ,OF STORAGE SYSTEM I~FORMATION
,'; ~ABOUT':OTHER 'SEGMENT'S, ,DlRECTORIES'AND'LINKS""'

•

ALL-DIRECTORY'
VOLUME (RLV)

•

DIRECTORY SEGMENTS ARE CREATED BY
ARE CREATED

•

DIRECTORY
STRUCTURES
REGIONS:

D

SEGMENTS, BY CONVENTION, RESIDE

ON THE ROOT LOGICAL

append MUCH LIKE NORMAL SEGMENTS

SEGMENTS CONTAIN
MANY INTER-RELATED
COMPLEX DATA
TO INCLUDE THE FOLLOWING (NOT NECESSARILY CONTIGUOUS)

DIRECTORY HEADER' '

o CONTAINS
SELF
DESC~IPTlVE
INFORMATION
LIKE
CLASSIFICATION, ETC; AND POINTERS TO OTHER REGIONS

Not To Be Reproduced

5-7

UID,

AIM

F8QA

DIRECTORY CONTROL DATA BASES
DIRECTORY SEGMENTS

HASH TABLE

n USED TO QUICKLY LOCATE AN ENTRY, GIVEN ITS NAME

ENTRY LIST
D 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
n

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)

D NAME LIST (ONE PER ENTRY)
1

CONTAINS ALL NAMES CURRENTLY ASSIGNED TO THE ENTRY
PRIMARY
ITSELF

NAME

IS

ACTUALLY CONTAINED

IN

ENTRY STRUCTURE

n ACCESS CONTROL LIST (ONE PER ENTRY)
n CONTAINS ALL ACL ENTRIES CURRENTLY ASSOCIATED WITH THE ENTRY

Not To Be Reproduced

5-8

F8QA

DIRECTORY CONTROL DATA BASES
DIRECr9RY HEADER
"1

o

111111122222;:
1 ~ S 6 7 8 9' a 1 2 1 !
S

1

222111
7 S 9 (l ~
2

o
SIZE OF HEADER (64' WORDS)

TYPe OF OBJECT (DIR HEADER. 31

6 WORDS USED BY SALVAGt:R FOR Rt:COROING
OATi TIME CHECXED AND ERRORS DISCOVERED

8

DIRECTOR" UNIQUE IDENTlFIER (UJOI

9

DIRECTORY'S PHYSICAL VOLUME 10 (PVIO)

10

SONS" LOGICAL VOLUME 10 (LVIO)

11

*
*

ACCISS ISOLATION MECHANISM (AlMt CUSS
~.

12
13

DIRECTORY'S VTOCX

14

ENTRY 1.IST START R_PTA

HEADER VERSION NUMBER

*

1S

16

PROJECT -'0 LIST START R.JTR

11

PROJECT _10 LIST END R_PTA

18

NUMBER OF SCG ENnUiS

NUMBER OF OIR ENTRiES

19

NUMBER OF UNK ENTRIES

NUMBER OF ACL ENTRIES

20

ALLOCATION AREA R _PTA

24WORDSUSCD FOR INITIALAC1.IMPLeMENTATION

HASH TABLE SIZE
NUMBER OF USED PLACES IN HASH TASLE

DEPTH OF THIS DIRECTORY

47
48

OATi TIME SALVAGED (OTS)

49

UIO OF SUPERIOR MASTeR DIR

50

MOOIF1CATlON PSEUDO-CLOCK

os UNUSED
62

~

C_H_ec~~ '_NO_T__~__O_I______________________________~1~.

____________________________

____

UfO OF PARENT CIR

63

•

IWORDS)

DIRECTORY HEADER
.c. CISK

RESIDENT CRLV - iJlRECTORY SEGMENTI CA.TA BASE - ONE PER DIRECTORY
'NOT WIRED. NOT EN~CHE~BLE)

·COPIEO FROM BRANCH WHEN CREAnD

Not To Be Reproduced

F8QA

DIRECTORY CONTROL DATA BASES
DIRECTORY HEADER

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

B

ONE DIRECTORY HEADER PER DIRECTORY SEGMENT

n

B
4',

....

:-t

1;.

THE D~REC.TO~Y.. HEADER CONT~INS SELF DESCRIPTIVE INFORMATION SUCH AS:

r
,

.~.

t

•

•

...... ':'.'

•

~,

,r',

•

..

,

... >

i"

.:_':".

'! '.

-",.p

. . . ,.\;•••

.....

,

...

:.,

.' : ..

:~".:.

"

..... , . - ~. . : '.~. ~ .',.

~,'.,

.'.I,,#-

.~~

:,.

THE

.. •... 1".

~.'

",

' ... '

f,

•

.

';[/

.•

~'

..'

•.; •

\-. -,;

~:'._ /~,~··t~.·

,

_ .

~

TO MODIFY

01-

THE DIRECTORY

o

D

THE
DIRECTORY'S
CLASSIFICATION

o

RELATIVE POINTERS TO THE BEGINNING AND END OF THE ENTRY LIST,
PERSON ID LIST, PROJECT_ID ~IST; AND THE HASH TABLE

OlD,

LAST PROCESS

.

THE' PROCESS 'ID OF
SEGMENT'S CONTENTS

LVID,

PVID,

VTOC

INDEX,

AND

AIM

HIERARCHY DEPTH OF THE DIRECTORY SEGMENT

n UID OF THE MASTER DIRECTORY AND THE PARENT DIRECTORY

o

B

SON'S LVID - THE ID"OF THE LV ON
SEGMENTS RESIDE (AND WILL RESIDE)

THE DIRECTORY HEADER IS ACCESSED AT
QUERY AND UPDATE OPERATIONS

Not To Be Reproduced

5-10

WHICH INFERIOR NON-DIRECTORY

THE BEGINNING

OF DIRECTORY

F8QA

~f\f, GJ1's,

DIRECTORY

CONTROL.~

1)1 fr

BASES

vs

V$ DTVV'~

DIRECTORY ENTRIES
1

1

1

2
2

0123456"'012

o

2

2

:I

4

2
5

2
6

l
4

BACKWARD R_PTR

StZ! OF ENTRY (37 WORDS)

TYPe OF ENTRY (SEG. 7'1
2

ENTRY'S UNIQUE IDENTIFIER IUID,

3

DATE nMe £NTRV MODIFIED (DTEM)

4

NUMBER OF NAMES

5

27
ACC!SS ISCLAnON MeCHANISM (AIM) CLASS .
2S
29

Rm

XR(31

30

AC1. ENTRY COUNT

ACI. START R _PTA

Be AUTHOR"S PERSON _10 R_PTA

31

ac AUTHOR"S TAG

BIT COUNT IIF OIR. ;. 0 IMPUES MSFl

SONS" IHON-OIR'S) LOGICAL VOLUME 10 (LVIO)

CHECKSUM FROM om

lS

UIO OF PARENT DIRECTORY
(WORDS)

BRANCH ENTRY
. A DISK RESIDENT IRLV - DIRECTORY SEGMENT1 DATA BASE - ONE PER BRANCH IN DIRECTDRY
(NOT WIRED. NOT ENCACHEABLEl

\JToc~
Not To Be Reproduced

5-11

V-'\~

F80A

DIRECTORY CONTROL

~

BASES

DIRECTORY ENTRIES
, ,
0123456789

4

2222222
3456789

5

o ~----------------------------------~------------------------------------~
FORWARD R_PTA

size OF ENTRY

TYPE OF ENTRY !LINK" 51

---,---

169 WORDSI

LINK"S UNIQUE IDENTIFIER (UID) INEYER YISIBLE TO USERS)

2

DATE TIME ENTRY MODIFIED (DTEMI
4

NUMBER OF NAMES
NAME LIST END R_PTA

6
,,:'

.AUTHOR"STAG., '

.,

1. wORDS CONTAINING PRIMARY NAME

22

24
Q WORDS CONTAINING

THE ABSOLUTE
PATHNAME OF THE LINK"S TARGET

UIO CHECKSUM
68

UID OF PARENT DIRECTORY
IWORDS)

LINK ENTRY
A DISK RESIDENT IRLY·DIRECTORY SEGMENT) DATA BASE - ONE PER L.INK IN DIRECTORY
(NOT WIRED. NOT ENCACHEABLEI

Not To Be Reproduced

5-12

F8QA

DIRECTORY CONTROL DATA BASES
DlRECTO,RY ENTRIES

B

THE DIRECTORY ENTRY IS A DISK RESIDENT (RLV)
WITHIN A DIRECTORY SEGMENT

D

ONE DIRECTORY ENTRY (IN
THE DIRECTORY
IMMEDIATELY INFERIOR ENTRY IN THE HIERARCHY

DATA BASE CONTAINED

SEGMENT)

FOR

EACH

'e'

'EACH n'iREcTORY'ENTRY' I'S' A" "DATA STRUCTtiRE DESCRIB'INC; THE ATTRIBUTES
",;' ,OF· A· SEGMENT, DIRECTO~Y, OR -LINK,
. . ....

~

DIRECTORY ENTRIES COME IN TWO FLAVORS:

B

LINK ENTRY, (38 OR 72 WORDS) CONTAINING:
U DATE TIME

MODIFIED AND DUMPED (BY
VOLUME DUMPER)

o RELATIVE POINTERS TO THE ENTRY'S
ID

THE HIERARCHY DUMPER, NOT

NAME LIST AND AUTHOR'S USER

D ABSOLUTE PATHNAME OF THE LINK'S TARGET
D OID OF PARElf! DIRECTORY

Not To Be Reproduced

5-13

F80A

DIRECTORY CONTROL

BASES

~

DIRECTORY ENTRIES

D BRANCH ENTRY, (38 WORDS) CONTAINING:

o

DATE TIME MODIFIED AND DUMPED (BY
VOLUME DUMPER)

D RELATIVE POINTERS TO THE ENTRY'S

THE HIERARCHY DUMPER, NOT

NAME LIST AND AUTHOR'S OSER

ID
B

BRANCH'S'UID, PVID,

~ND

VTOC

IND~X

CLASSIFICATION, ENTRY POINT
. RELATIVE POINTERS TO THE ACL

D ,AIM

o

BOUND, .RING

BRACKETS, AND

BRANCH'S BIT COUNT AND BIT COUNT AUTHOR
SON'S LVID (IF A DIRECTORY) AND PARENT'S UID

D 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-14

FBQA

DIRECTORY CONTROL COMMANDS
displaY.branch
~

DISPLAY_BRANCH - DISPLAYS BRANCHES IN THE DIRECTORY HIERARCHY

I

OFTEN USEFUL ON CONJUNCT ION WITH DUMP_ VTOCE

a ~ plv.,,/ _·v10~e..

0

IJ

C0

oM""

'''''~

display_branch >udd>Multics>Sibert
Branch for Sibert in >udd>Multfcs at 245120742

.'

. ~~ , '., ~ ui ~~ ',lO'i40 1170050'~, i ~ ~toc~' 63 on ~oot4 (of 1~g vo 1. root)
,

,.

('/Sibert is a directory.
,"/ ' . ' R'j ng bracke'ts (0 0 0) ,
. ~ntry modified 02/23/83 1912.1 est Wed
Dumped 03/20/83 0955.6 est Sun
9 names.

020742 021310020604 000004000046 102 011 oo~o 446556324757
020746 400000000011 020752021152' 001720000532 172000000000
020752 021010000000 000006000016 020742000233 000000000000
020756 123151~42145 162164040040 040040040040 040040040040
020762
020766
020772
020776

040040040040 040040040040
000000000000 .. 102401170050
135240026001000063000000
000000000000 000770000012

040040040040
446752147026
400000000000
021170021300

.••.•.. SS.x( ... .
...•.•. j .... z .. .
........•.......
Sibert

040040040040
000000000000 ..•• B.xC •. g .....
000000000000 ] ..•. 3 ••....•...
001720000532 ..••.•.•. x ••.•••

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

Net To Se Reproduced

FgOA

TOPIC VI
Volume Management

Page
Volume Management Overview •
The New Storage System .•
Volume Management Terminology.
Volume Management Data Bases
. .. Volume Labe'l'~'! :... .•.,. ' .
Volume Map
•.•
·:~;"«.Dumper> B.it,~p:e

.

".,~

:

~

...

....

e,

,"

..... "... : ..•.. ',. '.' e.:o .• o".

e'

•

e.' e

VTOC Map ,,'
Physical Volume Table (PVT).
Losical Volume Table (.LVT)
Physical Volume Hold Table .,
Volume Management Operations .,.
Accep'tance of' Physical Volumes •
Demounting of Physical Volumes •
Logical Volume Management..
Volume Management Commands •
.
p~int_configuration_deck
Ilst vols o • • e • ., • •
":;;~T"IT::av '::ah~'_

---::---J., -----.

displayyvte •
Volume Management .Meters
disk meters.
device meters.
disk_queue

...

• 6-1
6-4
• 6-13
6'-15
6-15
6-19
... ·6-22 '
6-2'4
• 6-25
6-27
6-30
• 6-32
• 6-32
• 6-35
• 6-37
• 6-38
6-38
• 6-40
6-41
• 6-42
6-43
6-43
• 6-44
6-45

raQA

VOLUME MANAGEMENT OVERVIEW

It

FUNCTION

i

VOLuME MANAGEMENT IS RESPONSIBLE
AND LOGICAL VOLUMES

D

ITS TASKS INCLUDE:

FOR THE MANAGEMENT OF PHYSICAL

1 ' ACCEPTANCE'AND' DEMOUNTING OF PHYSICAL VOLUMES
:-1 ' ' ,1-!A.I NT~I Nt NG . ~., AS.SOC I AT I, QN~, ,,;B:eTWEEN J)H~S I GAL
. "'VOLUMES,AND' DISK ,DRIVES'

.

'.'

".. '.:.,," ".

,LOGI CAL .
.' ,""'-'-' ,

VO~OMES,,.

g. ENSURING THE INTEGRITY OF VOLUME CONTENTS

I

D

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

MA~ING

VOLUME MANAGEMENT IS INVOKED ONLY BY SUBROUTINE CALLS

Noi To Be Reproduced

6-1

F8QA

VOLUME MANAGEMENT OVERVIEW

~

MAJOR DATA BASES

n

PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM

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

o

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

U"'·

o

~.

USED . TO. MAP REFE:RENCES' TO" PAGES OF
REQUEST TO THE CORRECT DISK DRIVE

AN I/O

LOGICAL VOLUME TABLE (LVT) - ONE PER SYSTEM
D

LOGICAL VOLUME
VOLUME
.

TABLE ENTRY (LVTE) -

n EACH Lv~E CONTAINS THE LOGICAL
PVTE'S, AIM CLASS LIMITS, ETC.
o

o

SEGMENTS' I:NTO

VOLL~

ONE PER MOUNTED LOGICAL

ID, POINTERS TO MEMBER

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
o

VOLUME LABEL (REGISTRATION AND ACCEPTANCE INFORMATION)

D VOLUME MAP (OCCUPIEDjVACANT INFORMATION FOR VOLUME CONTENTS)

Not To Be Reproduced

6-2

F8QA

VOLUME MANAGEMENT OVERVIEW

D RECORD STOCKS - ONE PER MOUNTED VOLUME
D ONLINE CACHE

OF INFORMATION ABOUT

USED / UNUSED

RECORDS ON

THE VOLtJ"ME

THI S I NFORMATI ON IS DERI VED 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

B

8 WHEN THE

CACHE BECOMES COMPLETELY EMPTY OR COMPLETELY FULL,
~ A PROTOCOL ENSURES THAT THE
COpy ON DISK' IS ALWAYS CONSISTENT

. ,IT ,MOST BEUPDA:TED FROM/TO DISK

D

n

PROVIDED BY VOLUME MANAGEMENT, BUT USED BY PAGE CONTROL

VTOCE STOCKS'- ONE PER VOLUME

& SIMILAR TO

RECORD STOCKS,

BL~

¥AINTAINS

INFO~vATION

ABOUT

USED / UNUSED VTOC ENTRIES ON THE VOLUME

o

o

PROVIDED BY VOLUME

MANAGE~NT,

BUT USED BY SEGMENT CONTROL

PHYSICAL VOLUME HOLD TABLE (PVHT) - ONE PER SYSTEM
. RECORDS THE COMMENCEMENT
PHYSICAL VOLUME

OF COMPOUND I/O

OPERATIONS UPON A

o THIS INFORMAT~ON PREVENTS A VOLUME FROM BEING DEMOUNTED WHILE
SUCH AN OPERATION IS IN PROGRESS

Not To Be Reproduced

6-3

F8QA

i·

THE NE'N STORAGE SY·STEM
LOGICAL VOLUME B

LOGICAL VOLUME A
•

,I

PVrpv

PV root 2

PV root 3

PV pub 01

PV pub 02

PAGING
REGION

PAGING
REGION

VTOC
:-

PAGING
REGION

:

0'\
I

I~
,~.
(fl

~

0

PARTITION

~

.~

Gl
1:1.1
(fl

~

(fl

PHYSICAL VOLUME (PV):

A DISK PACK

LOGICAL VOLUME (LV):

A COLLECTION OF ONE OR MORE PHYSICAL
VOLUMES GIVEN A S,NGlE LOGICAL IDENTITY

VOLUME HEADER:

CONTAINS THE LABEL, VOLUME MAP, VTOC
MAP, AND VOLUME DUMP. MAPS.

VOLUME TABLE OF CONTENTS (VTOCI:

AN ARRAY OF ENTRIES (VTOCE's) DESCRIBING
EACH SEGMENT ON THE PHYSICAL VOLUME

PAQING REGION:

THE REGION IN WHICH ALL RECORDS DESCRIBED
IN THE·VTOC RESIDE (I.E., PAGES OF STORAGE
SYSTEM SEGMENTS)

PARTITION:

A REGION SET ASIDE FOR SOME PURPOSE OTHER
THAN PAGES OF STORAGE SYSTEM SEGMENTS

~

~

~

B

NEW STORAGE SYSTEM

SINCE RELEASE 4.0, THE MULTICS STORAGE SYSTEM HAS BEEN ORGANIZED
INTO PHYSICAL AND LOGICAL VOLUMES HAVING THE FOLLOWING' PROPERTIES
r l ~"r~""'(l Jdrt>5,11!>lt \),.,;1. Ie. \;OO'.s
B A PHYSICAL
. CONTAINING:

A LABEL
(PVID)

D

VOLUME

(PV)

IS

A DISK

PACK

IDENTIFYING ITSELF - INCLUDING

(MOUNTED

OR

NOT)

A PHYSICAL VOLUME ID

I:· . A.

V'OL~ J~AP . DEseRI B.I~G WHI C:HPAGE;S. and VTQCES,ARE IN USE, AND.
. WHt CH ARE FREE.

,

D

.

'A VOLUME TABLE OF CONTENTS (VTOC) DESCRIBING WHICH SEGMENTS
ARE RESIDENTTHEREIN - AND THE EXACT LOCATION OF EACH OF
THEIR PAGES

B

THE PAGES OF RESIDENT SEGMENTS (ASSIGNED
WORDS IN SIZE)

TO RECORDS OF 1024

D

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

D ALL PAGES OF A SEGMENT RESIDE ON A GIVEN PHYSICAL VOLUME

B THAT IS:
EACH NON-ZERO' PAGE
RECORD OF THE PHYSICAL VOLUME

OF A SEGMENT IS

ASSIGNED TO A

ID (PVID) AND VTOC INDEX UNIQUELY
IDENTIFIES ANY SEGMENT IN THE STORAGE· SYSTEM HIERARCHY

D· THE PAIR· OF PHYSICAL VOLUME

MSr

\~

\ '--I ol\ 'ef~{Q~-+-

I

AJJ(",<.,>tS

rI

j

Not To Be Reproduced

ri§0I·U\
sE:}
6-5

F8QA

THE NEW STORAGE SYSTEM

n A LOGICAL VOLUME (LV) CONSISTS
WHICH ARE:

OF ONE OR MORE PHYSICAL VOLUMES,

GIVEN ONE LOGICAL VOLUME ID (LVID)

n ALWAYS MOUNTED AS A SET

n

OFFSPRING (SONS, GRANDSONS,· ETC) OF
RESIDE WITHIN A GIVEN LOGICAL VOLUME
.,'

D

".

A DIRECTORY (NORMALLY)

....

_

IN OTHER WORDS, A SUB-TREE
LOGICAL VOLtJME

(NORMALLY) SPANS NO MORE THAN ONE

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)
D THE PHYSICAL

VOLUME CONTAINING THE ROOT
"THE ROOT PHYSICAL VOLUME" (RPY)

n

D

DIRECTORY IS CALLED

THE RLV IS SPECIA~ BECAUSE IT MUST ALWAYS BE MOUNTED, AND IT
CONTAI.NS. ALL DI RECTORY SEGMENTS 1 BUT I T ALSO CONTAI NS OTHER
SEGMENTS

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

n THIS IS ONE OF THE MOST COMPLEX AND EXPENSIVE S.ERVICES
PERFORMED BY THE SYSTEM - BUT HAPPENS VERY INFREQUENTLY

Not To Be Reproduced

F8QA

THE

o

~

STORAGE SYSTEM

SHOULD A LOGICAL VOLUME BECOME FULL:
D

USER, AND SYSTEM ERROR MESSAGES ARE GENERATED

D SPACE MUST BE

OBTAINED ON THE LOGICAL VOLUME BY ADDING MORE
PHYSICAL VOLUMES OR BY DELETING OR MOVING SEGMENTS FROM THE
LOGICAL VOLUME
'

I, BECAUSE IT CONTAINS
IS' CRITICAL:

CONTlNUE,..

n

A~L DIRECTORY
SEGMENTS, SPACE ON THE RLV
IF- IT 'IS USED up', THE SYSTEM MAY NOT BE ABLE TO

OP~RATION.';-i

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
1\ ~-.-)
pl(~
1]
~ r\J\ (~)
'RNr OJ

b"\

~~{ '00"'~

(-Po.,
~
'.....J ,,"

"Ct\I-(L

.---.,J

lh D

UlD

kSI~ (5e~ ~

5Q~ ti-

Not To Be Reproduced

f~ i==

V\fJ-- VV'

6-7

e.

F8QA

THE NEW STORAGE SYSTEM

1

VOLUME LABEL

0

(REGISTRATION INFORMATION)

1

We:

:lew

VOLUME MAP

~Q

...1<
Ow
>::t

(USED RECORDS MAP)

!
VTOC HEADER AND
DUMPER BIT MAP

. .

5

. ·~6('~~-.'·-'"

·V, ' .....

. ·u

o

I-

>

VTOCE's

=

(ONE PER RESIDENT SEGMENT:
15,000 VTOCE"S)
(FIVE PER RECORD: =:1 3,000 RECORDS)

LD~

(~f\"~'"

\l y o,~-{)

'0""'.>

PAGES OF SEGMENTS
. ,-

'(ONE PER RECORD:

== 35,000 RECORDS)

,

-1

....
20
55


VTOCE 2 t--udd-:--_ _-+_ _~file~map--.;.-___f
. . :VTOCE .3" .~scI:--:-'-::'.~___"""",_ _. -::file.:-mllP--';"_--I
VToCE . 4~
. ProLA
. file map

"

myseg

start_up.ec .

4

_·_fi...
_map
__....
~ .....
:._.-4
VTOCE 6 ~~~~__-+_ _ _ _
fil.;...map~_--I
'VrocE '2 . . took ..,.... .
~. ~·fi.. ~'. . '

....".~:'

·._·.tGOts_·
_ ...._..............................;,...
.•

..
.~ _}""'~'<.8:" . 1-...........
.,.____
. -....
.
- .-.
u.

1

2
.3"

. ~~. ~ :5:: .....

VOLUME

HEADER

HEADER INFO

~----~--------~--.___-+_ _....file.;..map=_ ___f
~~~""""'-+---~---___f

-t-

PV29

VOLUME

~"!."

.6

~t

file map
file map
file map
. file map

.~..,.

test
. I8L.l . . ,
Snrith.mbx

OC

file map

-...0+-.--. -.------t

.••,. _". _
," ••.
_
' 'f/!!

.......
. . :, ~ , : ,c,
. . . . . . . . ;' ...•

""'''''Il
udd
Idd

sc1

"'--~

12
3

d
d

~

""""--~-

- . IV\AIV\A .;..

IfJI/VV'VtAAA -.

AI " -

~

..-.

•

test

_~_

01

l----f~
j
_It-----+---I
____
MED

ProLA

Pubs
~~

I

Smith
. Jones

May

:--+---+1
:

I~d~!_17~1_10~~1

+

d
d
d

1~~~lI

ProLA

.l!...
1DOIs

d

test

14

&
41

'29'

4

[=~~II

PHYSICAL VOLUME 10 14
CONTENTS (SIMPLlFIEDl

PHYSICAL VOLUME 10 29
CONTENTS ,SIMPLIFIED)

Not To Be Reproduced

6-9

F8QA

THE NEW STORAGE SYSTEM

B

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

B

MAJOR DESIGN POINT

IN THE
OF ALL

.' D MANY DISK RESIDENT DATA BASES (TO INCLUDE THE PAGES OF SEGMENTS)

ARE

COPIED INTO

·TlMES AS:'

MAIN MEMORY AND

WRITTEN BACK TO

DISK AT SUCH

.

U·

SYSTEM START-UP IS HUT-DOWN .

D

PHYS·ICAL VOLUME MOUNTING/DEMOUNTING

D SEGMENT ACTIVATIONjDEACTIVATION
n

PAGE FAULTS

WHILE IN MAIN MEMORY, THE
BE ~ COpy

MEMORY RESIDENT COpy 'IS CONSIDERED TO

n WHILE IN MAIN MEMORY, THE DISK RESIDENT COpy IS CONSIDERED TO BE
(AND OFTEN IS) WHOLLY INVALID

Not To Be Reproduced

6-10

F8QA

!tl§

STORAGE SYSTEM

o

W

a:-

(J

OW

:::c:

a:
W
c

(.)

Z

(J

0

(JO



a:e:.

t-

(.)

192

';1024 '

'3072

a:
t-

t-

W

en
'WORDS'

~

" ':, 64'

C

a:

W

58,368

 "'-~ T~ .p~':)-t Fr~w.e '-~\ ~h t5 \J"~({~
th.
~
~~fnOf(

SECTOR:

A LOGICAL UNIT OF DISK SPACE, 64 CONTIGUOUS WORDS IN
SIZE. THa SMALLEST ADJLRESSABLE UNIT OF DISK SPACE. A
RECORD CONTAINS 16 SECT~

Not To Be Reproduced

6-13

F8QA

VOLUME MANAGEMENT TERMINOLOGY

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

F8QA

VOLUME MANAGEMENT DATA BASES
VOLUME LABEL

1
4

0123456711

0-0

1

1"

6

1

2
3

2
4

2
5

2
6

2
7

2

3

I

0

3
2

3
4

3
5

~------~--------~------~I~
g~

320 WORDS (5 SECTORS. NOT USED {GCOS LABEL REGIONI

~'-----

4-63

5-0

; ~ ."

.

"" •• -:.,

-!""

....

33

""",

'.;.

~

Qc:

VERSION NUMBER
.r..., .
'.

~

.

~!

~

I WORDS CONTAINING MANUFACTURE'S SERIAL NUMBER' "
".
8 WORDS CONTAINING LOGICAL VOLUME NAME

",:. 8 WoRDS CONTAINING PHYSICAt VOLUME NAME"

PHYSICAL VOLUME IDENTIFIER (PVIDI
LOGICAL VOLUME IDENTIFIER (LVIDI

35

PVID OF THE ROOT PHYSICAL VOLUME

3&

TIME REGISTERED

38

39
40

41

42

MAXIMUM AIM CLASSIFICATION IN VOLUME

43

MINIMUM AIM CLASSIFICATION IN VOLUME

6-0

Not To Be Reproduced

6-15

F80A

VOLUME MANAGEMENT

~

BASES

VOLUME LABEL

B

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

D

ONE VOLUME LABEL PER PHYSICAL VOLUME

•. THE LABEL IS ;GENERATED BY init disk pack (ini t_empty_root IF RPV .
LABEL). AND CONTAINS REGISTRATION-AND
STATUS INFORMATION
'. .
~

,

'

.

'

..

~

B

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

B

THE LABEL IS DIVIDED· INTO SIX SECTORS

D GeOS REGION (SECTORS 0 TO 4)

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

n

PERMANENT
n

REG ION

. (SECTOR

CONTAINS PERMANENT
SERIAL NUMBER)

Not To Be Reproduced

5)

PER-PV

6-17

INFORMATION

(EG:

MANUFACTURERS

F80A

VOLUME MANAGEMENT DATA BASES
VOLUME LABEL

n

DYNAMIC INFORMATION REGION (SECTOR 6)

o CONTAINS INFORMATION RELATING TO
THE PV (EG: LAST MOUNT TIME)

THE MOST RECENT MOUNTING OF

o ALLOWS THE STORAGE SYSTEM TO ENSURE THE INTEGRITY OF THE PV

I ' ROOT INFORMATION REGION' (SECTOR 7),
'I, ',DEFINED ONLY, FORTHE"ROOT PHYSICAL VOLUME
CONTAINS DYNAMIC INFORMATION ABOUT THE ENTIRE STORAGE SYSTEM
'(EG:. SHUT DOWN STATE, PAGING DEVICE STATE, ETC) ,

o

PARTITION MAP (SECTOR 8)

o

IDENTIFIES THE LOCATION AND LENGTH OF ANY RESIDENT PARTITIONS

UNUSED (SECTORS 9 TO 13)

Not To Be Reproduced

6-18

F8QA

VOLUME MANAGEMENT DATA BASES
VOLUME MAP

o
16-0

,

1

234

5

6

7

8

1

901

1

1

1

234

1

1

5

6

122 2 2
90123

2
4

2
5

2
6

2
7

2 2 3
890

3
1

333 3
2 345

I

SIZE OF PAGING REGION
LOCATION OF PAGING REGION,

c:

NUMBER OF VACANT RECORDS

YI

Q

0(
YI

::.

.;' "SIZE OF BIT MAP

60 WORDS NOT USED

I
17-0

BIT MAP OF FIRST 32 RECORDS
BIT MAP OF SECOND 32 RECORDS

BIT MAP OF 3OO8th 32 RECORDS
(SECTOR· WORD)

VOLUME MAP
A DISK RESIDENT DATABASE - ONE PER PHYSICAL VOLUME

Not To Be Reproduced

6-19

F8QA

VOLUME MANAGEMENT

~

BASES

VOLUME MAP

B

THE VOLUME MAP IS A DISK RESIDENT DATA BASE

o

OCCUPIES RECORDS
LABEL

1, 2, AND 3,

IMMEDIATELY FOLLOWING THE VOLUME

D ONE VOLUME MAP PER PHYSICAL VOLUME

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

B 'THE'

n

B

THIS INFORMATION IS ALSO DERIVABLE
(AT CONSIDERABLE EXPENSE) - THIS
SCAVENGED OR SALVAGED.

FROM AN ANALYSIS OF THE VTOC
IS DONE WHEN THE VOLUME IS

RECORDS ARE TAKEN FROM THE VOLUME MAP DURING
IN THE RECORD STOCK

OPERATION AND PLACED

~--------------

RECORDS ARE ALLOCATED BY PAGE CONTROL FROM THE RECORD STOCK

D VOLUME MAP ON DISK IS'ALWAYS CONSISTENT
D RECORDS MARKED

FREE ON DISK

ARE GUARANTEED TO

BE FREE, AND

SAFE TO RE-OSE

Not To Be Reproduced

6-20

F80A

VOLUME MANAGEMENT DATA BASES
VOLUME MAP

never-

rer)e('~e..

D

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

D

THIS SITUATION IS BENIGN, AND CORRECTED
SALVAGE AT SOME CONVENIENT TIME

BY A. SCAVENGE OR

RECORDS FREED ARE PLACED BACK IN THE STOCK

D
~.

,.- ..

.....

.

......

."

,

'

..

B. IF. STOCK. FI LLS~' I TIS WRI TTEN BACK TO THE VOLUME MAP

n

CONSISTENCY IS ENSURED BY COMPLEX PROTOCOL IN PAGE CONTROL

U'

RECORD STOCK
SYSTEMS

Not To Be Reproduced

MECHANISM REPLACES

6-21

FSMAP SEGMENTS

IN PRE-MR10.0

FaQA

VOLUME MANAGEMENT DATA BASES
DUMPER BIT MAP

o

NUMBER OF VTOCES

1

NUMBER OF FREE VTOCES

2

NUMBER OF WORDS USED IN BIT MAP

3

NUMBER OF LAST RECORD IN VTOC

,
,4.WORDSUNUSED:

-

"

8.

"
'

.. ''.

. ....

.',

'.

,

VTOC BIT MAP ENTRY 0
."

VTOC BIT MA~ ENTRY 1015

1023

VOLUME DUMPER BIT MAP
RECORDS 4 AND 5

o

~i__----------~\~'-____------------~\'-_---1I
8 WORDS UNUSED

"-

8

"-

VOLUME DUMPER BIT MAP ENTRY 0

.
.

2047

VOLUME DUMPER BIT MAP ENTRY 2039

VTOC'MAP
RECORD 6

Not To Be Reproduced

6-22

F8QA

VOLUME MANAGEMENT DATA BASES
DUMPER BIT MAP

--

=

THE DUMPER BIT
VOLUME DUMPED

MAP DESCRIBES WHICH VTOCES ON

THE VOLUME HAVE BEEN

o ONE PER PHYSICAL VOLUME

B

OCCUPIES RECORDS 4.AND 5, IMMEDIATELY FOLLOWING VOLUME MAP
.

': ...

'

..

I. SEPARATE

BIT
MAPS'FORINCREMENTAL AND CONSOLIDATED VOLUME DUMPS
.
,

Not To Be Reproduced

,~.

6-23

F80A

VOLUME MANAGEMENT DATA BASES

B

THE VTOC MAP DESCRIBES THE LOCATION
CONTAINS A BIT MAP OF VTOC ALLOCATIONS

AND SIZE

OF THE

VTOC, AND

D OCCUPIES RECORD 6, IMMEDIATELY FOLLOWING THE DUMPER BIT MAP

VTOC FOLLOWS, STARTING AT RECORD 8
D

e

RECORD 7 I S UNUSED

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

8 VTOCE STOCK IS LIKE RECORD STOCK, BUT LESS CRITICAL
D VTOCES ARE SELF-IDENTIFYING AS TO WHETHER THEY ARE IN OSE OR
NOT, SO IT IS NOT NECESSARY TO MAINTAIN PERFECT CONSISTENCY
IF A CF~SH OCCURS

n VTOCE MAP IS ALSO REBUILT BY SCAVENGE OR SALVAGE OPERATIONS

n

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

Not To Be Reproduced

6-24

F80A

VOLUME MANAGEMENT DATA BASES
o

NUMBER OF ENTRIES
MAXIMUM NUMBER OF ENTRIES
NUMBER OF ENTRIES IN use

2

,

1

5 WORDS FOR SHUTDOWN STATUS

,
8

, TIME OF BOOTLOAD.

,"".

-,

'"

19

,

,

,'-

:to

....,:

I ~R.DS OF IN~TlON ABOUT RPV AND RLV

..-....

21 WORDS OF GLOBAL INFORMATION ANO
METERING CCUS FOR VOLUME MAPS
'AND~MAPS
.

.-

I

40

1
ARRAY OF PHYSICAL' VOLUME TABLE eNTRIES

PHYSICAL VOLUME TABLE ENTRY (PVTE)
ONE' PER PHYSICAL VOLUME
LOCATED IN PHYSICAL VOLUME TABLE

\\~r---;"<)f!-0

0
LOGICAL VOLUME 10

1.

SKIPPED FOR POIR ALLOCATION

2

NEXTI:IV IN LV

3
DISK DRIVE TYPE

4

5

FREE VTOCE COUNT

VTOC SCZ! liN RECORDS)

6

INC. DUMPER BIT MAP POINTER

CONS. DUMPER BIT MAP POINTER

7

FREE RECORO COUNT

TOTAL RECORD COUNT

8

DISK DIM INFORMATION

9

INC.CUMPER VTOC INDEX

10

COMP. our..ER VTOC INDEX

11

TOTA&. VTOCE COUNT

FIRST RECORD IN PAGING REGION

,
22

9 WORDS FOR VOLUME MAP AND VTOCMAP INFORMAT10N

D"l'"l Cl.F

S'I'Q"(."

,,,LOll'

,

SCAVENGER INFO POINTER

) VOLUME TROUBLE COUNT

::;;

,

,I

CONS. DUMPER VTQC'INDEX

PHYSICAL VOLUME TABLE HEADER
A HARDCORE (WIRED) DATABASE - ONE PER SYSTEM

\

Not To Be Reproduced

6-25

F80A

VOLUME MANAGEMENT DATA BASES
PHYSICAL VOLUME TABLE (PVT)

B

THE PHYSICAL VOLUME TABLE (PVT) IS A HARDCORE,
BASE MAINTAINED BY VOLUME MANAGEMENT

WIRED, PAGED DATA

ONE PVT PER SYSTEM

B

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

DONE PVTE PER DISK DRIVE KNOWN TO THE SYSTEM

BEACH PVTE DESCRIBES:

n A DISK DRIVE CONFIGURED TO THE SYSTEM
n INCLUDING THE DEVICE NUMBER,

DEVICE TYPE, SUBSYSTEM NAME AND
OTHER INFORMATION NEEDED BY THE DISK DIM

THE PHYSICAL VOLUME CURRENTLY MOUNTED ON THE DISK DRlvt
D 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 NOT RECORDED HERE)

o

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

Not To Be Reproduced

6-26

F8QA

VOLUME MANAGEMENT DATA BASES
LOGICAL VOLUME TABLE (LVT)

0123451789

o

1

1

2

4

2
4

2,
5

3
5

MAX LVTE INDEX
HIGH WATER LVTE INDEX

2

FIRST FREE LVTE POINTER

3
4 WORDS NOT useD
.-

It WORDS OF LVTE POINTERS USED
AS A HASH TABLE

o
1

2

LOGICAL VOLUME 10 (LVIDI

3

MINIMUM AIM CLASSIFICATION
IN LOGICAL VOLUME

5

MAXIMUM AIM CLASSIFICATION
IN LOGICAL VOLUME

6
7

ALLOCATION ALGORITHM VALUE

OTHER LVTE's
ONE PER MOUNTED LOGICAL VOLUME

(WORDSl

IIYt. ind.1:1111

bOGICALYOLUME TABLE (LVT)
A HARDCORE DATA BASE - ONE PER SYSTEM

~OGICAL

YOLUME IABLE

~NTRY

(LVTE)

ONE PER MOUNTED LOGICAL VOLUME

Not To Be Reproduced

6-27

F8QA

VOLUME MANAGEMENT DATA BASES
LOGICAL VOLUME TABLE (LVT)

B

THE LOGICAL VOLUME TABLE (LVT)
MAINTAINED BY VOLUME CONTROL

IS A" HARDCORE, PAGED

DATA BASE

ONE LVT PER SYSTEM

m THE LVT CONTAINS AN ARRAY OF LOG!CAL VOLUME TABLE ENTRIES (LVTE'S)

",

0"

ONE" LVTE FOR EACH: MOUNTED LOGICAL VOLUME

zEACH LVTE DESCRIBES THE LOGICAL VOLUME TO INCLUDE:

D

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-28

F8QA

VOLUME MANAGEMENT

~

BASES

LOGICAL VOLUME TABLE (LVT)

•

THE LVT IS REQUIRED AT THE FOLLOWING TIMES:

I

SEGMENT CREATION

D SEGMENT MOVING TIME

.n .VOLUME -MOUNTtNG AND· DEMOUNT! NG
o

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

Not To Be Reproduced

6-29

F80A

VOLUME MANAGEMENT DATA BASES
PHYSICAL VOLUME HOLD TABLE

o

,
1

2

o

3

4

5

6

7

8

9

4

1
6

2

o

2
3

2
4

2
6

2
7

PVT R_ PTR (1)

APTE R_PTR (1)

PVT R_PTR (2)

APTE R _ PTR (2)

2
9

3
2

3 3 3
345

··
·
PVT R_PTR (64)

63

APTE R_PTR (64)

(WORD)

(pv _holdt.ind.pl1)

PHYSICAL VOLUME HOLD TABLE
AN INTERNAL STATIC ARRAY IN

~

THE PHYSICAL VOLUME HOLD TABLE
MAINTAINED BY VOLUME MANAGEMENT

get_pvtx -

ONE PER SYSTEM

(PVHT) IS

A HARDCORE

DATA BASE

nONE PVHT PER SYSTEM

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

~

THIS INFORMATION PREVENTS A VOLUME
AN OPERATION IS IN PROGRESS

Not To Be Reproduced

6-30

FROM BEING DEMOUNTED WHILE SUCH

F80A

VOLUME MANAGEMENT
PHYSICAL VOLUME

BASES

~
~

TABLE

B

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

B

FOR CRASH ANALYSIS, sst.pvthp CONTAINS A

Not To Be Reproduced

6-31

POI~TER

TO THIS TABLE

F8QA

VOLUME MANAGEMENT OPERATIONS
ACCEPTANCE OF PHYSICAL VOLUMES

B

THE ACCEPTANCE OF PHYS,ICAL VOLUMES IS THE
FUNDAMENTAL OPERATION OF VOLUME MANAGEMENT

B

PHYSICAL
VOLUME
ACCEPTANCE
initializer_9ate_$accept_fs_disk

B-

IS

MOST

ACCOMPLISHED

IMPORTANT AND

BY

CALLING

'THE ROOT ,PHYSICAL, . ,yoLUME, (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)

B

ACC~PTANCE

n

INCLUDES:

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

o DETERMINE THAT THE DISK PACK MOUNTED IS IN FACT A MEMBER OF THIS
HIERARCHY VIA label.root pvid

o

INITIALIZING THE APPROPRIATE PVTE
VOLUME MAP, AND VTOC ~P

Not To Be Reproduced

6-32

WITH

DATA FROM

THE LABEL,

FaQA

VOLUME MANAGEMENT OPERATIONS
ACCEPTANCE OF PHYSICAL VOLUMES

"

INITIALI ZI'NG THE INITIAL, .CONTENTS OF
STOCKS'

I

DETERMINING IF ANY VOLUME
LOGGING THIS INFORMATION

THE RECORD STOCK AND VTOCE

INCONSISTENCIES

ARE

PRESENT, AND

D VOLUME

INCONSISTENCIES ARE CAUSED BY EVENTS WHICH MAY MEAN
.THAT ,THE DISK RESIDENT COpy OF THE VOLUME MAP OR. VTOC MAP IS
',lNCONSISTEN,T,;,:;
,"

'I .;)t'.'CR,A?H:WI'i'HO~,:

ESD .~., I~'~'CATED 'BY ,label'~ time_map_updated
.. "and·· label,;time' unmoun'ted', BEING' UNEQUAL, DETECTED ,AT
ACCEPTANCE TIME ,

I

o

AN INCONSISTENCY DETECTED ONLINE,
BIT MAP OR A REUSED ADDRESS

I

AN I/O ERROR WHEN WRITING
DURING NORMAL OPERATION

SUCH AS AN INVALID VTOC

THE VOLUME

MAP OR

VTOC MAP

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

:

D NORMALLY, INCONSISTENCIES ARE'MERELY LOGGED, AND' LEFT FOR THE

'SITE TO TAKE CARE OF AT SOME CONVENIENT TIME

D 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 I Nc'ONSISTENCY,, SINCE A FULL
RLV WILL CAUSE SYSTEM CRASHES

Not To Be Reproduced

6-33

F80A

VOLUME MANAGEMENT OPERATIONS
ACCEPTANCE OF PHYSICAL VOLUMES

D ' WRITING OUT THE LABEL TO UPDATE label.time_map_updated •.
n

NOTE:
label.time_map_updated
NOW UNEQUAL

AND

label.time unmounted ARE

n THIS INEQUALITY IMPLIES THAT THE VOLUME HAS NOT BEEN PROPERLY
SHUT DOWN, AND WILL BE
IN THIS STATE

MARKED INCONSISTENT ~ACCEPTED AGAIN

-I . MARKIN~ THE PVTE AS "IN·USE" (LAST STEP)

Not

~o

Be Reproduced

6-34

F80A

VOLUME MANAGEMENT OPERATIONS
DEMOUNTING OF PHYSICAL VOLUMES

B

THE DEMOUNTING OF PHYSICAL VOLUMES
STEPS TAKEN AT ACCEPTANCE TIME

B

DEMOUNTING IS COMPLICATED BY THE FACT THAT
THE TIME

AD

INVOLVES REVERSING ALL

OF THE

THE PV MAY BE IN USE AT

-"-DEMOUNTING IS ACCOMPLISHED BY 'CALLING demountJ'v ("THE DEMOUNTER")-

B

ALL VOLUMES ARE DEMOUNTED AT SHUTDOWN TIME

B

DEMOUNTING INCLUDES:

D TURNING

ON pvte.being~demounted AND
OPERATIONS TO TERMINATE

o

WAITING FOR

ALL COMPOUND

DEACTIVATING ALL
INCLUDES:

SEGMENTS FROM THE

PV WrlICH ARE

ACTIVE.

D 'FLUSHING MAIN

MEMORY AND PAGING

DEVICE (IF PRESENT)

THIS

OF ALL

RELEVANT PAGES

Not To Be Reproduced

6-35

F8QA

VOLUME MANAGEMENT OPERATIONS
DEMOUNTING OF PHYSICAL VOLUMES

D UPDATING THE VTOCE'S FROM THE ASTE'S AND PAGE TABLES

D

FLUSHING THE
VTOCE-PARTS

D

EMPTYING THE
AND VTOC MAP

- I

VTOC

MANAGER'S

RECORD AND-VTOCE

BUFFER SEGMENT

STOCKS BACK INTO

OF

ALL RELEVANT

THE VOLUME MAP

UPDATING THE· VOLUME
LABEL FROM THE PVTE, PARTICULARLY
.~....

o ·label.time unmounted, label.time map updated, AND
label. inconsistency_count
--

o

PHYSICALLY CYCLING DOWN THE DISK DRIVE

o

Z

.

NOT DONE AT SYSTEM SHuTDOWN, HOWEVER

ONLY ONE PV MAY BE DEMOUNTED AT A TIME

Not To Be Reproduced

6-36

F80A

VOLUME MANAGEMENT OPERATIONS
LOGICAL VOLUME MANAGEMENT

B

LOGICAL VOLUME MANAGEMENT INCLUDES:

B MAINTAINING THE LOGICAL VOLUME TABLE
OF THE LOGICAL VOLUMES

(LVT) TO REFLECT THE STATE

B

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
IS MOUNTED TO THE CALLING PROCESS

,

.

OR NOT A GIVEN LOGICAL VOLUME

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

B

PROVIDING THE HEAD OF THE
SEGMENT CREATION FUNCTION

Not To Be Reproduced

PVT CHAIN FOR

6-37

A GIVEN

LV, FOR THE

F80A

VOLUME MANAGEMENT COMMANDS

crint configuration deck

B '

PRINT CONFIGURATION_DECK
DISPLAYS
>sll>confi9_deck,
WHICH
CONTAINS INFORMATION ABOUT DISK LOCATIONS, THE RLV, AND PARTITIONS

0'

,.

..

'

ONLY THE PART OF'THE CONFIG DECK RELEVANT
AND DISK CONFIGURATION IS SHOWN HERE

root

dska

dskb

16.

dskb

25.

23 ..

TO VOLUME MANAGEMENT

dskb

24.

dska

8.

'parE -'''b'os'- clska" -:"16"
pa-rt dump dska 16.
part"~. Ipg
dS'ka ,16-.~
prph
chnl

dska
dska

a
a

20.
26.

2
2

451. 16.
b 24. 2

prph
chnl

dskb
dskb

b
b

20.
26.

2
2

0
a

prph
chnl

dskc
dskc

a
a

28.
30 ..

2
2

501. 32.
b 30. 2

prph
cnnl

dske

b

451 ..

8.

prph
chnl

dskf
dskf

501.

16.

mpc
mpc
mpc
mpc
mpc
mpc

...

_.1

o.SKe

mspa
mspb
mspc
mspd
mspe
mspf

32.

2

0

';)'S'.

2

a
a

32.
34.

2
2

'L

451.
451.
607.
607.
451.
607.

Not To Be Reproduced

.., "

a
b
a
b
b

a

20.
20.
28.
28.
32.
32.

16.
24.

4
4

a
b

b

22.

2

451.
2 a

16.
22.

2

28.

2

24.
24.

b

4
4

4

4
4
4

6-38

F80A

VOLUME MANAGEMENT COMMANDS

print conficuration deck

~

DISK CONFIGURATION CONFIG CARDS

I

ROOT
D

D

IDENTIFIES THOSE VOLUMES IN THE ROOT LOGICAL VOLUME WHICH
HAVE H~ PARTITIONS, OSED BY THE SUPERVISOR FOR PAGING OF
SUPERVISOR SEGMETNS

PART

n IDENTIFIES THE LOCATIONS OF CERTAIN IMPORTANT
ONLY
PARTITIONS NECESSARY
FOR
IDENTIFIED, NOT ALT PARTITIONS

MULT!CS

PAR~ITIONS

OPERATIONS

ARE

HC PARTITIONS ARE LOCATED BY THE ROOT tARD

. PRPH DSKIl, CHNL
IDENTIFY PHYSICAL I/O' CHANNEL -PATHS FOR ACCESSING DISK DRIVES

MPC
IDENTIFY
PHYSICAL
CONTROLLERS

Not To Be Reproduced

CONNECTIONS

6-39

TO

MICROPROGRAMMED

DISK

F8QA

VOLUME MANAGEMENT COMMANDS
1 is t vo 1s
e

LiST_VOLS - DISPLAYS A TA8LE OF ONLINE VOLUMES, THEIR
SPAC£ UilLIZATION

Drive
dskc_17
askc 18
dSkc_OS
dska_06
dskb_19
dsko_26
dSkb_27
dska 01
dsl...a_03
dska 04
dska OS
dskb - ' .,
c:skb_18
cskc_13
cskc ll;
dskc 01
cskc J2
aSkc_03
•

I

0 ...

ds~c

- 09
askc 10

Records

Left

6~504
6~504

54730
55389
5305
4323
4632

36428
36428
36428
36429
36429
3f308
3e.268
36268
3'c'-o~
")' P
36269
36268
64504
64504
64503
64503

64;03
64503

dskc

645,01..

-21
cslc.c 22

64504
64503
64503
6L;503

~SKC

-

dskc_29
dskc _3::
dSKC 07
askc .... 08
dskc_23
dskc 24
dskc_25
dskc_26
dske_06
dska 12
dska_07
dska_G8
dska 1 1
dska _16
dskb_23
dskb '-~
cskb ...j "
"')1

-

,

';L503
6~503

01.;5G3
64504
64504
64504
64504

37089
37562
3.7309
36209
36209
31283
36208
36209
36350

13690
4672
4680
3588
450C

0,
~

85
86
15
12
13
38
13
13
10

~E16

12
13

........

12

4"')~'

3840 11
0
294
0
269
43631 68
45502 71
42374 66
43591 68
58010 90
56786 ,88
23947 57
. .,
23744 ) i
23794 37
-4 ,
. •~ •
37
11723 28
11665 18
9777 15
11805 18
11514 18
12958 20
8053 ::'2
6046 16
6825 18
3827 1 1
8597 24
2892
9
4885 13
3097
9
4483 12

.,' ,

No: To Be Reproduced

VTOCEs Left
1 j 356
11352
2662
2365
2813
4326
8400 2333
9000 450
9200 1017
9200 884
9200 864
9200 1002
9200 539
13440 5539
13440 5214
13440 10032
13440 9838
134:..0 9839
13440 9785
13440 12394
13440 12407
13L40 6446
13440 6194
13440 6185
13!.L.O 61,81
13440 6149
13440 6429
13440 6094
13440 6141
13440 7407
13440 7149
5100 3797
2735 957
4000 2107
7000 491
7000 4181
9000 3476
7000 455
7000 238
7000 223

13440
13440
8400
8400
8400
8400

PV
% Avg
Size Name

84
84
~,

5-

28
33

52

4
4

.5
5
5
~

28

5

5

3

11

3

10
9

3

11

3
3
8
7
6
5
6
5
6
7
5
5
5

6
41
39
75
73
73
73
92
92
48
46
46
48
' r

"'0

48
45
46
55
53
74
35
53
7
60
39
7
3
3

~

~

5
7
7
7
7
8
8
22
17
16
4

9
5
4
4
~

alphaOI
alpha02
mul03
mulOl
mulO2
mul05
mul04
pubOI
pub07
pubOL,
pubC2
pubO; .
pubo8
relOl
rel02
xpubOl
xpuo02
xpub03
xpubO~

xpub05
xpub06
ypubOl
ypub02
ypub05
ypub06
zpubOl
zpub02
zpub03
zpub04
zpub05
zpub06
1 is to 1
1 i st02
1 i st03
rootS
root6
rpv
root3
root4
root2

LOCATIO~.

AND

PB/PD

LV Name

pb
pb
pb
pb
pb
po
pb
pb

Alpha
Alpha
Multics Pubs
Multics - Pubs
Multics Pubs
Multics Pubs
Multics - Pubs
Pub 1 i:
Pub 1 i c
Pub 1 i c
Puo 1 i c
~ub 1 i c

pd

po
pd
pd
pd
pd

Dd
od
p~ pd
po po
pb po
p~

po

pb

pd

pb
pb
pb
po
pb
p:,
pb
pb
pb
p~

po po

po
pb
pb
pb
pb
pb
pb

po
pb
pb
pb
pb
po

pb

pc

po
pd
pd
pd
pd

Pub 1 i c

Release
Release
Xou~ 1 i c
Xpub 1 i c
Xoubl ic
Xpu::.l i c
Xpwbl; c
Xpub 1 i c
Youblic
Ypuo'l i C
Ypub 1; c
r oub 1 i:
Zowb! i c:
Zpubl i:
loub i i c
lowb 1 i c
Zpubl ic
lpub 1 i c
1 i st 1
1 i st 2
1 i st _3
root
root
root
root
root
root

F 80~.

VOLUME MANAGEMENT COMMANDS
display label

B

DISPLAY LABEL - DISPLAYS THE LABEL
READING-IT FROM DISK

OF A STORAGE

SYSTEM VOLUME BY

D USED / FREE INFORMAT-ION IS COPY ON DISK, AND
DATE WITH RESPECT TO THE PVTE

THEREFORE OUT OF

Label for Multics Storage System Volume rpv on dska_01 d451
220531524345
PVID
rpv
Serial
Logical Volume
root
LVID
220531524466
Registered
Dismounted
Map Updated
Salvaged
Bootlc-ad
Reloaded
Dumped
Incremental
Consolidated
Complete

01/28/81
03/15/83
03/15/83
10/01/82
03/15/83
01/28/81

1249.5
0741.9
0744.6
0300.3
0743.5
1510.1

03/17/83
03/16/83
03/15/83

2153.0
2359 .. 3
2353.0

Inconsistencies
Minimum AIM
Maximum AIM

0
0:000000
7:777777

Volume contains Root (» at vtocx 0
disk_table_ at vtocx 100 (uid 033022210261)
Volume Map from Label
First Rec
0
8
2008
4016
37917
38117

Not To Be Reproduced

(Octal)
0
10
3730
7660
112035
112345

Size
8
2000
2008
33901
200
141
38258

6-41

Label
VTOC
hc
Paging
bos
alt
Total

Region·
Region
Partition
Region
Partition
Partition
Size

F8QA

VOLUME MANAGEMENT COMMANDS
display pvte

z

DISPLAY PVTE - DISPLAYS THE PVT ENTRY OF A STORAGE SYSTEM VOLUME

o

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 pvtl50
PVID
22053~524345
LVID
220531524466
VTOCEs
Number
Left

10000
3323

Records
Number
Left
Inconsistencies

33901
3796
0

Volume Map
volmap_seg ASTE
record stock
Page 0 - Base

1514420
76 1 1 00
7660

r~--..L.CC

",)".)t::"

..J..Jv-z

Page 1 - Base
Free
Page 2 - Base
Free
vtoce stock

OFF:

103660
3740
203660
0
76 12400

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

o

8

2008
4016
37917

Not To Be Reproduced

(Octal)

o

10
3740
7660
112035

Size
8

2000
2008
33901
199
38258

6-42

Label Region
VTOC
Region
Partitions
Paging Region
Partitions
Total Size

FBQA

VOLUME MANAGEMENT METERS
disk meters

B

DISK METERS - DISPLAYS I/O ACTIVITY TO DISK DRIVES

o

ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE

Total metering time

0:20:12

Q

Subsystem dska

Count

.Waits

%Waits

call locks
run locks
interrupt locks
allocations

26005
112
25998
26001

217
0
239
0

0.83
0.00
0 .. 92
0 .. 00

Drive
1
3

4
5
6
7
8
9
11
12
16

Reads

Writes

269
362
309
547
631
0
5843
366
3501
0
7158

67
243
131
165
165
0
2187
116
1431
0
2508

Not To Be Reproduced

Seek
Distance
214
109
184
180

161
0
122
153
200
0
135

6-43

Avg • Wai t (ms. )
0.259
0.000
0.208
0.000

ATB
Reads

ATB
Writes

ATB
I/O

4508
3350
3925
2217
1922
0
207
3313
346
0
169

18102
4991
9258
7350
7350
0
554
10455
847
0
483

3609
2004
2756
1703
1523
0
151

2516
245
0

125

F80A

VOLUME MANAGEMENT METERS
device meters

~

DEVICE METERS
SUBSYSTEMS

DISPLAYS SUMMARY

Total metering time

Not To Be Reproduced

I/O ACTIVITY

FOR

ALL DISK

0:20:13

dskb

dska
Prior Page I/O
ATB
Other Page I/O
ATB
ATB Page I/O
Prior VTOCE I/O
ATB
ATB I/O
% Busy
Avg. Page Wait
Avg. Page I\Wait
Avg VTOCE Wait
Avg. Page I/O T
Avg. VTOCE I/O 'I'
EDAC Cerr. Errs
Errors
Fatal Errors

OF

18571
65.334
6525
185.949
48.347
934
1299 .. 061
46.612
76
47.289
176.082
41.138
35.619
31.139
0
0
0

17743
68 .. 383
5135
236.284
53.034
895
1355.668
51 .. 037
74
46.197
101.023·
37.610
38.314
32.277
0
0
0

6-44

dskc

dskd

462
2626.240
16
75832.692
2538.332
38
3192ge554
2351.401
0
20.341
36.996
38.595
20.050
37.060
0
0
0

1273
953.121
696
1743.280
616.212
304
3991.194
533.798
4
24.666
61.704
29.090
22.482
26.606
0
1
0

F80A

VOLUME MANAGEMENT METERS
disk gueue

e

DISK_QUEUE - DISPLAYS I/O QUEUE FOR A DISK SUBSYSTEM

"HONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE SPACE

Connects

= 2604781,

p

RW VP

DV

0
0
0
0
0

W
W

w
w
w

P
P
P
P
P

1359725, 677321, 309367,
123430, 40159, 10227, 1969.

SECTOR

24

1350330
1020150
16" 1204130
16
314370
16
314430
9

Not To Be Reproduced

MEM
27304000
4432000
36246000
27306000
34166000

6-45
(End Of Topic)

F80A

TOPIC VII
Segment Control

Page
Segment Control Overview • •
Segment Control Terminology.
Segment Control Data Bases •
Volume Table of Contents (VTOC).
Active Segment Table (AST) •
Services of Segment Control.
Creating Segments.
. •••
Segment Fault • • . . • • • •
Segment Activation •
Segment Tra1lers • •
Boundsfault Handling •
Segment Deactivation . .
Summary of Major Services . •
Encacheability . • •
Truncating Segments • • .
Delet ing Segments. • .' • •
Other Services • . . • • • •
Segment Control Meters • • . • • •
0

~.:.,-

J. J.

~ C

_..........
_....
J ;:) '-

;:)

Clll

.........

~"..

1&1'1; '-

...

~

c .. w

•

•

•

•

•

• • • • • •

•

vtoc-buffer-meters • . . • • • . ~ . • . .
Segment Control-Commands •
. •••
print aste.ptp . .
. ••.
dump_vtoce- . . . . •

7-i

•

0

7-1
• • 7-4
• • 7-5
• • • 7-5
7-11
7-25
. • • 7-25

•••

'"

• 7-28
• • 7-28
• • • • • • 7- 30

..

It

,

~

· 7-32
7-35
7-37
7-38
• 7-38
7-40

....

7-42

• • • . • • 7-44
7-44
• • • • • • 7-46
• . 7-47
7-47
· • 7-48

F80A

SEGMENT CONTROL OVERVIEW

B

FUNCTION

B

SEGMENT
MEMORY

o

ITS TASKS INCLUDE:
o

CONTROL IS

MAINTAINING

RESPONSIBLE FOR

THE DISK

THE MANAGEMENT

RESIDENT MAPS OF

OF LOGICAL

SEGMENTS (IE:

THEIR

VTOC~'S)

o

B

D

SEGMENT CREATION, TRUNCATION AND DELETION

n

SEGMENT ACTIVATION AND DEACTIVATION (ASTE MULTIPLEXING)

SEGMENT CONTROL CAN BE INVOKED
SEGMENT FAULTS

EITHER BY SUBROUTINE CALLS OR BY

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"

D 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

F80A

SEGMENT CONTROL OVERVIEW

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

~

USER INTERFACE

COMMAND LEVEL

create, delete, truncate, etc;"

SUBROUTINE LEVEL

n

~

hcs_sappend_branch, qcs_sappend_branchx, hcs_Sdelentry_seg,
hcs Sdelentry file, hcs struncate seg, hcs $truncate file,
hcs:Sforce_wr1te, etc -

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

n

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
INDEX'S (VTOCX'S) OF SEGMENTS.
NEEDED BY SEGMENT CONTROL
TO FIND THE SEGMENT ON DISK (HARDWARE)

Not To Be Reproduced

7-2

FSO.!.

SEGMENT CONTROL OVERVIEW

D

AST HASH TABLE

o ALLOWS EFFICIENT SEARCHING OF ASTE'S
D LOGICALLY

PART

OF

THE

AST, BUT

ELSEWHERE

FOR HISTORICAL

REASONS

o DIRECTORY SEGMENTS

o 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
D VOLUME

TABLE
OF CONTENTS
DISK-RESIDENT SEGMENT

D

ENTRY

(VTOCE)

ONE

'PER

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

F80A

SEGMENT CONTROL TERMINOLOGY

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 CO~STRAINTS.
EACH SEGMENT IS GIVEN ONE
OR MORE NAMES AND A·
COLLECTION OF ATTRIBUTES
INCLUDING LENGTH, ACCESS
PERMISSIONS, ETC

SEMI-PERMANENT

ACTIVATI~S:

A SEGMENT AND TURNING ON ITS ENTRY HOLD
SWITCH (aste.ehs) PREVENTING NORMAL (ASTE CONTENTION)
DEACTIVATION

Not To Be Reproduced

7-4

FBGA

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOCl

-.--.I

o

I

i

!
MAXL!NGTH

CURRENT L.ENGTH

RECORDS USED

DATE TIME USED eDTUI

3
4

6

THE ilMe-RECORD PRODUCT AND USAGE COUNT

16

FIL.E MAP 101

FIL.E MAP

I

(1)

I

i

I.

I
63

FiLEMAP{~)

FILE MAP 1911

!

FIL.E MAP 1951

!

I

•
-t-

FILE MAP 1971

I
l27

Fl LE MAP (222)

128

FILE MAP (2241

I

l

Fl LE MAP (223)

:

FIL.E MAP (22Sl

-'•

i
!
143

FI LE MAP f2541

I

FILE MAP (2551

.1

10 WORDS NOT USED

c() (\ t-,fc7'iDh

r..l- I u (

Not To Be Reproduced

1-

7-5

VJoce

F80A

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOC)

SEGMENT CONTROL. OATA BASES
VOLUME

T~BLE

OF CONTENTS VTQCE

,.

i

154

155

DATE TIME DUMPED (DTOI

156

VOLUME 10 ,,)

!INCREMENTAL DUMP TAPE 10)

157

VOLUME 10 121

(CONSOLIDATED DUMP TAPE 101

158

VOLUME ID 131

(COMPLETE DUMP TAPE IDI

159

UID OF MASTER DI-RECTORY

160

UID OF SUPERIOR DIRECTORY 101

175

UID OF SUPERIOR DIRECTORY 'lSI

8 WORDS CONTAINING THE SEGMENT'S
ORIGINAL PRIMARY NAME

184

OATE_ TIME VTOCE CREATED

185

PVID OF VOLUME OF PARENT DIRECTORY

SEGMENT BRANCH OFFSET IN PARENT

PARENT VTOC INDEX

186

TIME THIS VTOCE CHECKED FOR CONNECTION FAILURE

187
188

ACCESS ISOLATION MECHANISM (AIM) CLASS

190

191

PVID OF VOLUME FOR THIS VTOCE
lWOROSI

I vtoce.lnci. pi 1 I

~OLUME

I ABLE OF CONTENTS gNTRY (VTOCE)

A OISK RESIDENT OATA BASE - ONE PER SEGMENT

Not To Be Reproduced

7-6

F80A

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOC)

B

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)

DONE VTOC PER PHYSICAL VOLUME

DONE VTOCE PER SEGMENT

BEACH VTOCE CONTAINS RESIDENCY "INFORMATION
INFORMATION) OF A PARTICULAR SEGMENT

8

(AND

EACH VTOCE IS ADDRESSED BY INDEXING INTO THE ARRAY OF

SOME ATTRIBUTE

V~OCE:S

CONSEQUENTLY, THE'
PAIR OF PVID AND
VTOC INDEX
ID~NTIFIES ANY SEGMENT IN THE STORAGE SYSTEM HIERARCHY

8

EACH VTOCE IS
PARTS:

192 WORDS

LONG AND

IS DIVIDED

UNIQUELY

INTO THREE LOGICAL

ACTIVATION INFORMATION (16 WORDS)

n CONTAINS ALL

INFORMATION (EXCLUDING THE FILE MAP) NEEDED TO
USE THE SEGMENT, OR MORE TECHNICALLY, TO ACTIVATE THE SEGMENT

Not To Be Reproduced

7-7

F8QA

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOC)

D

INCLUDES:
UID, CURRENT
LENGTH, RECORDS USED, ETC

LENGTH,

RECORDS

USED, MAXIMUM

ALL INFORMATION LIKELY TO CHANGE BECAUSE OF THE ACTIVATION

o

INCLUDES: DATE TIME MODIFIED AND
DIRECTORY), ETC

USED, QUOTA CELLS (IF A

FILE MAP (128 WORDS)
AN ARRAY OF 256 RECORD ADDRESS OR NULL
WHERE EACH PAGE OF THE SEGMENT RESIDES

ADDRESS DETAILING

A NULL ADDRESS (NOT TO BE CONFUSED WITH A NULLED 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 ENSURES THAT NO RECORD ADDRESS EVER
APPEARS (OR REMAINS) IN THE FILE ¥~p UNLESS THE PAGE ACTUALLY
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

F80A

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOC)

BEACH VTOCE IS ALSO DIVIDED INTO THREE PHYSICAL PARTS:

B

FIRST SECTOR (WORDS 0-63):
D

CONTAINS ALL "ACTIVATION INFORMATION" AND
OF THE FILE MAP

THE FIRST PORTION

D 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

INF'ORMATIONr.

Not To Be Reproduced

7-9

F8QA

SEGMENT CONTROL DATA BASES
VOLUME TABLE OF CONTENTS (VTOC)

~

VTOCE I/O

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
SECTOR I/O, NOT RECORD I/O

FACTS, VTOCE'S

ARE

ACCESSED VIA

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)
-u

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
PART ONE FOR A DIRECTORY WITH QUOTA

MUS~

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

F8GA

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

222222
234561

0123456189

NexT BROTHER R_PTA
2

SYSTEM TRAILER R_PTA

3

SEGMENTS UNIQUE IDENTIFIER IUIDI

MAX LENGTH

PV TABU INDEX

VTOCINDEX

5
DATE nME USED fDTUI

6

DATE TIME MODIFIED (DTMI
8

SEGMENT QUOTA USAGE

DIRECTORY QUOTA COUNT

9

SEGMENT QUOTA USED

DIRECTORY QUOTA USED

10

CURRENT LENGTH

HASH TABLE R

"
(WORDS)

ACTIVE

~EGMENT

IABLE .E.NTRY (ASTE)

. iut&.I'Id.plll

A WIRED (SSTl DATA BASE - ONE PER ACTIVE SEGMENT
1 1 1 1 1 1 1 1
01234561890123£567

ADDRESS

MAIN MEMORY ADORESS

13

14

0

NU~L. ~DDRESS

! 0000

1000

- REPRESENTS PAGE OF ZEROES

0000

I

,WORDSl

iPTW.INCl...PI. 11

A 16KpAGEIABLE (PT)
IMMEDIATEL.Y FOLL.OWS AN ASTE (ABOVEl - ONE PER ACTIVE SEGMENT
COMES IN 4, 16.64 ANO 2S6K FLAVORS
~_~
__

....-_ _ _

Not To Be Reproduced

t'

d-

.s~<:'tfUI

7-11

jV\OC.

vre

fJ flf'(j.PrJ:j

'I

~

F8QA

~

SEGMENT CONTROL

BASES

ACTIVE SEGMENT TABLE (AST)

z

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

nONE ASTE/PT PAIR PER ACTIVE SEGMENT

~

IN ORDER FOR A SEGMENT TO BE ACCESSED VIA THE
INFORMATION MUST BE BROUGHT INTO MAIN MEMORY

HARDWARE, VTOCE

~

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
VARIOUS FLAGS AND POINTERS

SUCH AS:

PVT

INDEX, VTOC INDEX,

THE PAGE TABLE CONTAINS THE RECORD ADDRESS (TAKEN FROM THE
VTOCE'S "FILE MAP") OF EACH NONZERO PAGE OF THE SEGMENT

Not To Be Reproduced

7-12

F8QA

SEGMENT CONTROL

~

BASES

ACTIVE SEGMENT TABLE (AST)

B

A SEGMENT HAVING AN ASTE AND A PAGE TABLE IS SAID TO BE ACTIVE

o

"ACTIVATING" A SEGMENT IS THE PROCESS OF ALLOCATING (AND FILLING
IN) AN ASTE AND A PAGE TABLE FOR THE SEGMENT

n CONVERSELY, "DEACTIVATING"

A SEGMENT INVOLVES
AND PAGE TABLE FOR FURTHER USE

BEING ACTIVE DOES NOT IMPLY THAT
BY ANY PROCESS

B

SINCE THE AST
THE NL~BER OF

B

FREEING ITS ASTE

THE SEGMENT IS ACTUALLY IN USE

IS A PART OF A SINGLE

SEGMENT (HAVING FINITE SIZE),

ONLY A FINITE NUMBER OF SEGMENTS MAY BE ACTIVE AT ONE TIME

WHEN A NON-ACTIVE SEGMENT IS REFERENCED, AND THERE
ASTE'S AVAILABLE, SOME SEGMENT MUST BE DEACTIVATED

o

THIS ASTE/PT .MULTIPLEXING
SEGMENT CONTROL

IS THE

PRIME

ARE NO' FREE

RESPONSIBILITY OF

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

Not To Be Reproduced

7-13

F80A

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

8 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
SYSTEM PARAMETER (SET ON THE SST CONFIG CARD)
OF THE TWO POSSIBILITIES, TOO MANY
BY FAR THE WORSE

Not To Be Reproduced

i-14

IS

A CRITICAL

OR TOO FEW, TOO FEW IS

FBOA

z

o

rt
~

o

CONNECTING AND FAULTING SOW'S

w

(1)

~

(1)

t{j
11

o

0.

c::

n

(1)

I

0.

.

I

---I-----~PAGE TABLE
PA

ABLE

ASTE
PROCESS
May.MED.a

PAGE TABLE

---J

1

I·

1-"

I

U1

ASTE

:

+ _____1
ACTIVE SiEGMENT
TAI~LE

PROCESS
Smith. FED. a

PROCESS
Brown.FORD. ell

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

~

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:

o

ASTE

n·

+

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

F8QA

SEGMENT CONTROL DATA BASES

ASTE

-----64WDPT

ASTE
~-----

64WDPT

64WDPT

64WDPT

~------------------------------------------------------~--r--

~~ __ +_~ __ 'F_~~_~

__

__ +_~E

~_l_~

__

I

I
256WDPT

256WD PT

256WDPT

256WD PT

256WDPT

256WDPT

I
I

I·
I

256KASTE
POOL

I

i
j

~ MKDS

tJ >~;
a 'F--

~_L;\ ~

I
I

~

I
I
I
i

___~___~______~i___~______~___~_l_
ACTIVE SEGMENT TABLE (AST)
A HARDCORE (SST) UN-PAGED DATA BASE - ONE PER SYSTEM
(NOT DRAWN TO SCALE)

Not To Be Reproduced

7-17

F80.~

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

~

THE SIZE

OF EACH OF THE FOUR ASTE POOLS IS DETERMINED AT SYSTEM
BY THE SST CONFIG CARD AND IS A CRITICAL SYSTEM
TUNING PARAMETER
I~ITIALIZATION

~

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, BMW
THE ASTE DISTRIBUTION IS NORMALLY:

MEMORY, 200 USER SYSTEM,

3500 1500 750 250
ON MIT-MOLTICS, A 3 CPU, 3.5MW MEMORY, 110 USER SYSTEM, THE ASTE
DISTRIBUTION IS NORMALLY:
1700 600 220 75

o

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

F8QA

SEGMENT CONTROL

~

BASES

ACTIVE SEGMENT TABLE (AST)

B

THIS DEACTIVATION CONSISTS OF:

D MAKING THE SEGMENT INACCESSIBLE TO USER PROCESSES

DONE BY "CUTTING TRAILERS", IN THE PROGRAM setfaults.pl1
A LIST OF ALL SEGMENTS
KEPT FOR THIS PURPOSE

CONNECTED TO (USING)

THE SEGMENT IS

EVICTING ALL PAGES OF THE SEGMENT FROM MAIN MEMORY
ONLY MODIFIED PAGES MUST BE WRITTEN BACK TO DISK.
PAGES ARE SIMPLY OVERWRITTEN

UNMODIFIED

UPDATING THE VTOCE BY WRITING THE (POSSIBLY MODIFIED) ACTIVATION
INFORMATION BACK TO THE VTOCE

FREEING THE ASTE/PT PAIR

~

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

F8QA

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

~

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

CA..) \: e . -("\

.p

/) r \J

(r-

f6~

,

f\

VV' a..'." V'" Q Ii'"

"---' 'f\ V - '1 R

\f

----\ 'L-~ <"'

() - 0

f\'"

-

()cv) \ 1f

;

l\

IF ()
\:..v~

Not To Be Reproduced

(f'<..@~),(

-SQ'::)

V\.CI"\

vJQ

)

S t:J

!

F: r"lj

\"
v>~o

noT of'P({Jr-.7/y v

<- et..",

" ....-

&(' '-)

J Oq"C T. \!q.. '7e

7-20

SpJ

So

IT.

F80A

z
o

IT
I~

o

tJj

ro

~

ro
'0
t"1

o

c:L

HEAD POINTER

---

,.

..

C

n
ro

o.
»t

n

~

H

~
Ul

tIl

G')

~
~

-.....J
I

N
t---'

---TYPICAL "USE:D LIST"
A DOUBLE THREADED LIST OF SIMILAR OBJECTS GENERALL V IMPLEMENTING
REPLACEMENT ALGORITHMS. CONTAINS BOTH FREE AND IN-USE OBJECTS, WITH
FREE OBJECTS MAINTAINED AT THE HEAD OF THE LIST.

t-3

»bJ

t-t
tzJ

~

Ul

tzJ

~

Z

t-3

n

0

Z

~

~

0

t'1

I~
bJ

»-

Ul

tJJ

Ul

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

~

NOTE: WHILE INSPECTING THE ASTE'S, OPPORTUNITY IS TAKEN TO NOTICE
ASTE'S WHOSE FILE MAPS HAVE CHANGED AND.TO UPDATE THEIR VTOCE'S

n 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
CONTENTS ARE OF LITTLE USE AFTER A CRASH

SEGMENTS, SINCE THE!R

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

F8QA

SEGMENT CONTROL

~

BASES

ACTIVE SEGMENT TABLE (AST)

BAST HIERARCHY

o MIRRORS A SUBSET OF THE STORAGE SYSTEM HIERARCHY

n

THE ROOT DIRECTORY (»

CANNOT BE DEACTIVATED

D NO SEGMENT (EXCEPT THE ROOT) MAY BE ACTIVE UNLESS ITS PARENT IS
ACTIVE. THE REASONS FOR THIS ARE:

n PARENT MUST BE ACTIVATED IN ORDER TO FIND THE SON
n ACTIVATION

OF

OTHER SONS

IS EASIER

IF THE

PARENT REMAINS

ACTIVE
n

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

n

DATE TIME MODIFIED (DTM) FOR A DIRECTORY IS 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
CONTROL

THE ASTE'S

OF PARENTS

ARE PERFORMED

EACH ASTE HAS A POINTER TO ITS PARENT'S ASTE FOR
REASONS.
(THIS POINTER IMPLEMENTS THE AST HIERARCHY)

Not To Be Reproduced

7-23

BY PAGE

THE ABOVE

F80A

SEGMENT CONTROL DATA BASES
ACTIVE SEGMENT TABLE (AST)

~

ASTE'S MAY BE THREADED ONTO ONE
POINTERS aste.fp and aste.bp

OF SIX

LISTS VIA

THE RELATIVE

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

~

THERE ALSO EXIST SEVERAL AUXILIARY
AND FATHER-SON, AND BROTHERS LISTS

LISTS SUCH AS

THE HASH THREAD

~

ALL ACTIVE SEGMENTS IN THE HIERARCHY ARE IN THE FOUR USED LISTS EXCEPT
rv~
SEGM~NTS
~N
In::.
HARDCORE
PARTITION \ l n=.. !" Jo\I.lt..,u
SUPERVISOR), AND A SMALL CLASS OF SEGMENTS WHICH MAY NOT BE
DEACTIVATED
I,...."",,,",,",

SEGMENTS
ARE SOMETIMES
UNTHREADED FROM
TEMPORARILY IN ORDER TO KEEP THEM OUT OF
COMPLEX OPERATION IS PERFORMED

Not To Be Reproduced

7-24

THEIR
REACH

~,,..

.... ~

USED LIST
WHILE SOME

F8QA

SERVICES OF SEGMENT CONTROL
CREATING SEGMENTS

B

SEGMENT CREATION IS PERFORMED BY THE PROCEDURE create_vtoce

o

INPUT:

OUTPUT:

A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT

PVID AND VTOC INDEX OF THE CREATED SEGMENT

B

create_vtoce MAY BE CALLED BY append
segment_mover (DUE TO PACK OVERFLOW)

B

PRINCIPAL STEPS OF create_vtoce:

o

(NORMAL SEGMENT CREATION) OR

CREATE A LOCAL IMAGE OF THE VTOCE TO BE CREATED
o

FILL IN MOST
BRANCH ENTRY

ACTIVATION AND PERMANENT

INFORMATION FROM THE

CREATE A NULL FILE MAP
DETERMINE THE UID PATH (UID'S OF SUPERIOR DIRECTORIES)

Not To Be Reproduced

7-25

F80A

SERVICES OF SEGMENT CONTROL
CREATING SEGMENTS

SELECT

AN

APPROPRIATE

PV

WITHIN

THE

LV

SPECIFIED

BY

THE

sons Ivid OF THE DIRECTORY IN WHICH THE BRANCH ENTRY APPEARS

n SELECTION GOAL IS TO EVENLY DISTRIBUTE SEGMENTS OVER ALL PV'S
OF THE LV, THEREBY REDUCING DISK CONTENTION
. SELECTION

ALGORITHM
WALKS
THE
CHAIN
(THROUGH
OF PV'S IN THE LV AND SELECTS THE PV
HAVING THE HIGHEST PERCENTAGE OF UNUSED RECORDS IN ITS PAGING
REGION

pvte.brother pvtx)

NO

PV IS

sweep_pv IS

ACCEPTED IF pvte.vacating IS ON, SIGNIFYING THAT
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 mansalloc and put vtoce)
ALLOCATE AND WRITE THE VTOCE IMAGE ON THE SELECTED pvVTOC MAN ATTEMPTS
FOR THE VOLUME

TO ALLOCATE A

VTOCE FROM THE

TO

VTOCE STOCK

IF THE STOCK IS EMPTY, IT REFILLS IT FROM THE VTOCE MAP ON
DISK (SEE vtoce_stock_man.pll)
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

F8GA

SERVICES OF SEGMENT CONTROL
CREATING SEGMENTS

D

RETURN THE PVID AND VTOC INDEX OF THE NEW SEGMENT TO THE CALLER
(WHO RECORDS SAME IN entry.pvid AND entrYovtocx)

Not To Be Reproduced

7-27

F8QA

SERVICES OF SEGMENT CONTROL
SEGMENT ACTIVATION

~

SEGMENT ACTIVATION IS PERFORMED BY THE PROCEDURE "activate"

INPUT:

A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT

OUTPUT:

AN ASTE

~OINTER

e

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

~

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
PARTS OF THE VTOCE AND COMPARE UID'S FOR CONNECTION
FAILURE (IN WHICH CASE, DO NOT ACTIVATE AND RETURN AN ERROR)

REQUI~ED

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

F8DA

SERVICES OF SEGMENT CONTROL
SEGMENT ACTIVATION

D NOTE THAT THE ONLY EXPLICIT ACTION TAKEN TO ACTIVATE THE
PARENT IS TO REFERENCE IT: THE POSSIBLE RECURSIVE SEGMENT
FAu~T TAKES
CARE OF E~~RYTHING AND ALLOWS THAT REFERENCE TO
PROCEED

n

OBTAIN AN ASTE FOR THE SEGMENT BY CALLING oet 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

n FILL

IN THE ASTE WITH
INITIAL FLAG VALUES

THE VTOCE'S

ACTIVATION INFORMATION AND

n CALL

pcSfill page table (PASSING THE VTOCE'S FILE MAP)
INITIALIZE THE PAGE TABLE AND OTHER PAGE CONTROL INFORMATION

n

TO

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

~80A

SERVICES OF SEGMENT CONTROL
SEGMENT TRAILERS

B

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 I TIS US I NG FOR THE SEGMENT ?r~"~ ~ ~

CD"'~'1~~ ~~t~

S\'~ \...'-'\. ~ ~. ~_v\~~f\'~l ",n
'------<:I<' \.
D ( \"'J t. ~
J',.. "'\'

TRAILER ENTRIES
SEGMENT

ARE KEPT IN THE.

str_seg, A PAGED SUPERVI SOR

THERE IS A LINKED LIST OF TRAILER ENTRIES
THE HEAD IS POINTED TO BY aste.strp

FOR EACH SEGMENT;

TRAI LERS ARE ONLY KEPT FOR SEGMENTS W'rU CH MAY BE DEACTIVATED:
ORDINARY SEGMENTS AND DIRECTORIES, BUT NOT SUPERVISOR SEGMENTS

......
A TRAILER IS ATTACHED FOR A SEGMENT BY seg_fault.pll BEFORE ""1"1'"
PLACES THE SDW INTO THE DSEG FOR THE PROCESS

TRAILERS ARE USED LATER BY setfaults.pll 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.pll THAT ALL -IT MUST DO IS RECALCULATE THE ACCESS

Not To Be Reproduced

7-30

F8 OJ..

tlo

\

r'-c..C).,.:"V\

~~

~1'P~

SERVICES OF SEGMENT CONTROL
SEGMENT TRAILERS

D PROCESS TERMINATION -

ALL SDWS A PROCESS HAD

ARE REVOKED AT

TERMINATION

8 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
COMPLETELY

Not To Be Reproduced

REMOVED WHEN

7-31

THE ASSOCIATED

SDW IS REVOKED·

F8QA

SERVICES OF SEGMENT CONTROL
BOUNDSFAULT HANDLING

T

:I:

-I-~

le!)

Z

:::;

W

....
Z

W

a:
a:

::J
(.)

REFERENCE #1

J:

....

C)-

zC
WZ

0

.... <

I-

~~

iii

~O

~

0

I-

I-

::J~

•

.:

(.)

X_

• <

E

Q.
Q.

I~

~

r------~~~~--~-------~ ~ -.l
1:2E

REFERENCE #2

•

. . .1IIIiiiIII........................~:

I

PAGE 4

I
I
I

:
'

I
I
I

I
I
~----------------------~
I
I
_R_E_F_E_R_E_N_C_E_#_3......~ :
PAGE 5
:
I

-----

I

I

•

I

I

=~==~=----;=======~~~~~~

SEGMENT A

BOUNDS FAUL To HANDLING
1.

PAGE FAULT. PAGE 3 "CREATED" IN MAIN MEMORY
AS A PAGE OF ZEROS (CALLED A "NEW PAGE")

2.

BOUNDS FAULT. PROMOTE THE SEGMENT TO THE 16K
ASTE/PT POOL .. CONTINUE REFERENCE
AS IN CASE #1

3. BOUNDS FAULT. ERROR:

SIGNAL "out-of-bounds"

CONDITION

Not To Be Reproduced

7-32

F80A

SERVICES OF SEGMENT CONTROL
BOUNDSFAULT HANDLING

B

THE BOUNDSFAULT HANDLER IS THE PROCEDURE "boundsfault", INVOKED BY
THE FAULT INTERCEPTER MODULE, FIM, WHEN THE BOUNDSFAOLT IS DETECTED
BY THE APPENDING uNIT HARDWARE

B

BASIC STEPS OF BOUNDSFAULT

D 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 sgiven segno.
IF ATTEMPTED REFERENCE IS BEYOND THE
MAxIMUM -LENGTH- (aste.msl) THEN CAUSE "out of bounds" TO BE
SIGNALLED

n

MAKE THE SEGMENT INACCESSIBLE TO USERS BY "CUTTING TRAILERS"

TURN ON THE PARENT'S aste.ehs BIT
LARGER ASTE

AND CALL get_aste TO OBTAIN A

n CALL PAGE CONTROL'S pcsmove page table
INFORMATION TO THE NEW ASTE
-

TO

MOVE

ALL ASTE/PT

RETHREAD ALL INFERIOR LIST AND PARENT POINTERS AFFECTED AND TURN
OFF THE PARENT'S aste.ehs BIT
NOTE:

IF THE SEGMENT IS A DIRECTORY; ALL FATHER POINTERS OF
SEGMENTS MUST BE UPDATED

INr~RIOR

Not To Be Reproduced

7-33

F80.;;

SERVICES OF SEGMENT CONTROL
BOUNDSFAULT HANDLING

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

F8QA

SERVICES OF SEGMENT CONTROL
SEGMENT DEACTIVATION

B

SEGMENT DEACTIVATION IS PERFORMED BY THE PROCEDURE "deactivate"

o

B

INPUT:

POINTER TO AN ASTE

deactivate MAY BE CALLED BY:

D

get aste
SEGMENT

WHEN AN

ASTE MUST

BE FREED

TO MAKE

ROOM FOR

A NEW

delete vtoce AS PART OF SEGMENT DELETING

demount pv IN ORDER TO UPDATE
DISK BEING DEMOUNTED

~

THE VTOCE'S (AND

SEGMENTS) OF A

PRINCIPAL STEPS OF deactivate:

D MAKE THE SEGMENT INACCESSIBLE TO USERS BY "CUTTING TRAILERS"

o

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

F80A

SERVICES OF SEGMENT CONTROL
SEGMENT DEACTIVATION

UPDATE THE VTOCE FROM THE NOW QUIESCENT ASTE

n THREAD THE

ASTE OUT OF
AST HASH TABLE

PARENT'S INFERIOR LIST, AND

OUT OF THE

CALL put aste TO CLEAR AND INITIALIZE THE ASTE/PT PAIR, AND
THREAD THE ASTE AT THE HEAD OF THE APPROPRIATE USED LIST

No: To Be Reproduced

7-36

:8QA

SERVICES OF SEGMENT CONTROL
SUMMARY OF MAJOR SERVICES

Zl-1

o

j:

<

w
a::

]

.,

-

UN-WIRED
DATA

CJ

LOCATION DATA

BRANCH ENTRY DATA
• ENTRY POINT BOUND

BRANCH ENTRY DATA

• PVID
• VTOC INDEX
VERIFICATION DATA
• UID
• UID OF PARENT
• DAMAGED SWITCH

I

WIRED
DATA

INITIATION
(make_known)

• UID
• RING BRACKETS
• COMPUTED ACCESS
• DIRECTORY BIT
.DTEM
• BRANCH POINTER

SEGMENT FAULT

KSTE

ATTRIBUTE DATA
• NAME(S)
• AUTHOR
• BIT COUNT AUTHOR
• BIT COUNT
• DIRECTORY BIT
• PER PROCESS BIT
.DTEM

DATA
RING BRACKETS
COMPUTED ACCESS
PRIVILEGED BIT

MAINTAINED DATA
• ADDR OF PAGE TABLE
• OUT OF BOUNDS
• DIRECTED FAULT BIT
• UNPAGED BIT
• CACHE BIT

MAINTAINED DATA
• SEGMENT NUMBER
• INITIATED COUNT
• PRIVI LEGED BIT

ACCESS CONTROL DATA
• RING BRACKETS
• ACUAIM
• COPY/SAFETY SWITCH
• ENTRY POINT BOUND
• SECURITY BIT

KSTE
•
•
•

TERMINATE

I

sow

(terminate)

LIFE CYCLE OF A SEGMENT

BRANCH ENTRY

VTOCE DATA
• PVTIVTOCE INDICIES

ACTIVATION
BRANCH ENTRY OAT A

(activate)

• UID
• UID OF PARENT
•
•
•
•
•

AIM
ORIGINAL NAME
DIRECTORY BIT
PER PROCESS BIT
CNZP BIT

MAINTAINED DATA
•
•
•
•
•
•
•
•
•

FILE MAP
CURRENT LENGTH
RECORDS USED
MAX LENGTH
aUOTADATA
USAGE COUNT
DTU/DTMJDTC/DTD
DUMPER DATA
UIDPATH

)P

•
•
•
•
t
t

•

-.
•

t
t
t
t
t

DEACTIVATION
(deactivate)

ASTTRICKLE

TRUNCATE
(pc$trunca18)

UfO
DIRECTORY BIT
PER PROCESS BIT
DNZP BIT
FI lE MAP IPTI
CURRENT lENGTH
RECORDS USED
MAX lENGTH
QUOTA DATA
USAGE COUNT
DTU/DTM

MAINTAINED DATA
• PHU/PHM BITS
• WIRED BIT
• LISTS R PTR's
• HASH TABLE R PTR
• SYS TRAI LER ( .. PTR
• INFERIOR COUNT
• EHS/FMC BITS
• NUMBER OF PAGES

ASTE/PT

VTOCE

t MAINTAINED VTOCE DATA

Not To Be Reproduced

7-37

F8QA

SERVICES OF SEGMENT CONTROL
TRUNCATING SEGMENTS

z

SEGMENT TRUNCATION (IE:
PROCEDURE truncate vtoce

PAGE

REMOVAL)

IS

PERFORMED

BY

THE

INPUT: A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT,
AND A PAGE NUMBER FROM WHICH TO START TRUNCATING

~

truncate vtoce IS CALLED BY:

truncate (DIRECTORY CONTROL) WHO HAS LOCATED THE SEGMENTS BRANCH
ENTRY AND VALIDATED THE USER'S ACCESS·

n

~

delete vtoce

(SEGMENT CONTROL) WHO
PAGE *.0) PRIOR TO VTOCE DELETION

REQUIRES

TRUNCATION (FROM

PRINCIPAL STEPS OF truncate vtoce:

!F 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

F80A

SERVICES OF SEGMENT CONTROL
TRUNCATING SEGMENTS

o

CALL get-pvtx$hold_pvtx TO
truncate)

PREVENT A DEMOUNT

(IF CALLED BY

o COPY ALL ADDRESSES OF PAGES TO BE TRUNCATED FROM THE FILE MAP
AND REPLACE THEM WITH "NULL" ADDRESSES

o FABRICATE A NEW VTOCE AND WRITE
vtoc_man$put_vtoce
o

IF ANY REAL ADDRESSES WERE
THE SUCCESSFUL COMPLETION
vtoc_man$await_vtoce

D CALL pC$deposit list
ADDRESSES
-

TO

THE VTOCE -BACK BY CALLING

COPIED FROM THE FILE MAP, AWAIT
OF THE VTOCE WRITE BY CALLING

DEPOSIT (FREE)

THESE

REAL RECORD

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

F80A

SERVICES OF SEGMENT CONTROL
DELETING SEGMENTS

~

SEGMENT DELETION IS PERFORMED BY THE PROCEDURE delete vtoce

D INPUT:

A POINTER TO THE BRANCH ENTRY IN A DIRECTORY SEGMENT

~

delete vtoce IS CALLED BY delentry
HAS LOCATED THE SEGMENT'S BRANCH
ACCESS

~

PRINCIPAL STEPS OF delete vtoce:

CALL get_pvtx$holc_pvtx
MIDDLE OF THE DELETION

TO

(OF DIRECTORY CONTROL FAME) WHO
ENTRY AND VALIDATED THE USER'S

PREVENT

A VOLUME

DEMOUNT

IN THE

IF ACTI VE, MAKE THE SEGMENT I NACCESS I BLE TO U.SERS (SEE ,0 ADDRESS
AND NAME SPACE MANAGEMENT", ,TOPIC 5)

TRUNCATE THE SEGMENT TO ZERO LENGTH (SEE "TRUNCATING SEGMENTS n
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

FBQA

SERVICES OF SEGMENT CONTROL
DELETING SEGMENTS

o

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

D IF THE.SEGMENT IS ACTIVE, DEACTIVATE IT, RELEASING ITS ASTE

FREE THE VTOCE WITH ·A CALL TO vtoc_man$free_vtoce

D CALL get_pvtx$release_pvtx TO AGAIN PERMIT VOLUME DEMOUNTING

Not To Be Reproduced

7-41

F8QA

SERVICES OF SEGMENT CONTROL
OTHER SERVICES

s

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
SEGMENT CONTROL

MOST INVOLVED

AND ESOTERIC

SERVICE OF

SEMI-PERMANENT ACTIVATION
ACTIVATING A SEGMENT INTO AN ASTE OF A GIVEN SIZE AND TURNINGON ITS aste.ehs (DONE BY grab_aste)

SERVICES FOR sweep_pv
LISTING THE VTOC OF A PACK (IE:
ALL SEGMENTS OWNING VTOCE'S)
THE LOCATING AND DELETING
DESCRIBED IN ANY BRANCH)

OF

REPORTING

THE PATHNAMES OF

ORPHAN VTOCE'S

(VTOCE'S NOT

REBALANCING OR VACATING PACKS VIA DEMAND SEGMENT MOVING

No~

To Be Reproduced

7-42

F8QA

SERVICES OF SEGMENT CONTROL
OTHER SERVICES

D SERVICES AT DEMOUNT/SHUTDOWN TIME

I ·DEACTIVATION

OF ALL SEGMENTS ON THE
AND WRITING OUT THE LABEL, ETC

VOL~

BEING DEMOUNTED

D SERVICES FOR ADDRESS/NAME SPACE MANAGEMENT (SEE TOPIC 4)

o DESCRIPTOR

SEGMENT

-(DSEG), PROCESS

~NOWN ~EG~mNT TABLE (KST) MANAGEMENT

DATA SEGMENT

(PDS) AND

SEGMENT FAULT HANDLING (seg_fault), CREATION, ENTRY HOLDING

Not To Be Reproduced

7-43

F8QA

SEGMENT CONTROL METERS
file system meters
~

~ :LE_SYSTEM_METERS
FOR THE FILE SYSTEM

I

DIS?LAYS MISCELLANEOUS

ONLY PARTS RELEVANT TO SEGMENT
8 (PAGE CONTROL) FOR THE REST

Total metering

~ime

METERING

IN~ORMA:'O~

CONTROL INCLUDED HERE: SEE TO?I:

0:20:02
I\JG

ATS--l".

#

Activa:ions
segfau1t
makekno...,n
d:rectcries
Deactivatior.s
De~a~~ deactivate
attempts
Seg Faults

~\~~

,",07~"'":-t-J~y~{
./

,'"

,'f'

..j"-"

74
1056

0f

9.204~

of a;

0.279 sec.

84.86~%

ca 11

i69

1.;eL. se:.

15.138~

activa~ions

969

L I dl.. I

L.~

acces s
t-STE Trickle
Steos

I~~~

...... u ...

42

139
4279
3016

ehs ... ~~~",~~\ 5~;-(c..\.....
271
mem \v--. '1"'0:............"''<'''- 1083
init
1662
Searches
0
~\t \.-<1) - - - - - -..... Cleanups
-Sf 7
J:-l¥Jl~v;~
For ce wr i tes
3
'("'-eM. '""\
""'\ <:J
pages wr i t terl
3
18422
\.,on.e~"n-\ 'cf;)ICn)
Lock fl. ST,

aU:

o Q (¥1 ~

Be

7 . 0 95~

4311

Ski~s

Net Te

12.527 sec.
1.139 sec,.

96

92.905% of all

400.8;7 sec.

_~~~;:~~~Its
~e

1.153 sec.
1.241 sec.
16.251 sec.

1043
969

3
5080

fauit

Reo~oducec

t

\,~~",,~~r

0.237 sec.

ali
~

cf

Seg ~awlts
Of Seg Fa~1:s
of Se~ Fa~l:s

19.075~
1. 241 sec.
5.466 sec .
.,t 0 101 msec.
4i.VU·
O.937~ of setfa~lt5
28.633 sec.
8.652 sec.
281.04C msec.
,.. "00
7C.~84; of Steps
\,1').-/-' sec.
E.985~ 0: S~ic::
~·~3S sec.
1 • 1 10 sec.
35.909~ of Skips
55.:06; of Skips
0·72L. sec.
0.000 se:.
0.1 ~ of real time
1056
1.139 sec.
400.857 sec.
400.857 sec .
0.065 sec.
-.,I"

7-I..L

SEGMENT CONTROL METERS
file system meters
. ric
ffl'Z.. ) (J

Ir~i\

AST locked
AST lock waiting
AST Sizes
Number
Need
Steps
Ave Steos
Lap Time(sec)

,,> Lfl

AVE/lock
4.833 msec..
1.601 msec..

j

I

-;- (j f

co

2.5

4

16

601
202
645
3.2

2s~~ 1
873.;: ~120.5

f 00

64
221
208
1139
505
233.3

Sf C ~ Js '\ ~ :) ()
-st-,cfJI 6~ ~

" d q;..-- .

,,-i<

h(,

%

7 4

1701
819
2341

f/(]nf.e

/

['

.j ~ e

J ')C)v' ,

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

6

063540200041
063546200041
063547200041
063550200041
063567200041
063571200041
377020000001

63540
63546
63547
63550
63567
63571
null

---17

377020000001

null

0
1
2
3
4
5

Not To Be Reproduced

7-47

F80A

SEGMENT CONTROL COMMANDS
dump vtoce

DUMP VTOCE - READS A VTOCE FROM DISK AND DISPLAYS ITS CONTENTS

~

vtoce Sibert (Directory), vtocx 63 on pvtx 15 (root4)-03/18/83
Uid

0116.7 est Fri

= 102401170050, msl/csl/rec = 205
Quota (S D) = (2000 0)
•
Quota used (S D) = (1423 44)
Quota rece~ved (S D) = (2000 0)

Created
Dumped
Used
Modified

08/16/81
03/18/83
03/17/83
03/15/83

1204.0
0106.7
1737.8
2138.3

Switches:

fm checksum valid

-

est
est
est
est

Sun
Fri
Thu
Tue

-

Activation information:
0
4
10
14

000000000000
446723404647
002617000054
000000000000

102401170050
001000400000
003720000000
000652154327

315006006000
063560063567
000000000000
446734634556

446734564570
003720000000
015364402005
445673737671

File map:
20 063540063546 063547063550 063567063571 111020777020
24 777020777020 777020777020 777020777020 777020777020
30 777776777776 777776777776 777776777776 777776777776

------

214 777776777776 777776777776 777776777776 777776777776
Permanent information:
220 000000000000 000000000000 000000000000 000000000000

-----230
234
240
244

000000000000
126104000547
777777777777
000000000000

000000000000
126104000525
033022237767
000000000000

000000000000
126104000764
033023254650
000000000000

446736227316
000000000000
000000000000
000000000000

260
264
270
274

123151142145
040040040040
441200557477
000000000000

162164040040
040040040040
135240026001
000000000000

040040040040
040040040040
004370027106
000000000000

040040040040
040040040040
000000000000
000000000000

------

Not To Be Reproduced

7-48

(End Of Topic)

FBQA

TOPIC VIII
Page Control

Page
Page Control Overview • • •
Page Control Terminology • • • • • •
Page Control Data Bases ••
Page Tables ••
Core Map . • • • • • • •
System Segment Table (SST) Header ••
Other Data Bases . .
• • • • • •
Services of Page Control
Page Fault Handling.
Post Purging • • .
Page Control Meters ••
file_system_meters .
e

8-i

•
·
•
•
·
•
·
·
·
·
·
·

8-1
8-5
8-6
8-6
8-9
8-11
8-13
8-15
8-15
8-27
8-28
8-28

F80A

~

B

CONTROL OVERVIEW

FUNCTION

I

PAGE CONTROL IS RESPONSIBLE FOR THE MANAGEMENT
MEMORY TO INCLUDE THE MULTIPLEXING OF MAIN MEMORY
THE MANAGEMENT OF DISK STORAGE

o

ITS TASKS INCLUDE:

OF PHYSICAL
FRAMES, AND

o TRANSFERRING' THE

PAGES OF
SEGMENTS BETWEEN THE MEMORY
RECORDING THE'LOCATION OF "THE" COPY OF THESE

DEVICES, AND
PAGES
REPORTING
CONTROL

THE STATUS

D PAGE CONTROL
(ALM)

o

IS LARGELY

PAGE CONTROL CAN
PAGE FAULTS

AND FILE

MAPS OF

SEGMENTS TO SEGMENT

CODED

IN MULTICS

ASSEMBLER LANGUAGE

BE INVOKED EITHER

BY SUBROUTINE

CALLS OR BY

n THERE ARE·NO EXPLICIT USER INTERFACES TO PAGE CONTROL

Not To Be Reproduced

8-1

FBOA

PAGE CONTROL OVERVIEW

o

BASIC PHILOSOPHY

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

S~~LL

SUBSET

PAGES WILL BE READ INTO MAIN MEMORY AS THEY ARE REQUIRED

n

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 ONLY
MODIFIED DURING ITS RESIDENCY IN MAIN MEMORY

o

~~JOR

IF IT WAS

DATA BASES

PHYSICAL VOLUME TABLE (PVT)
VOLUME MANAGEMENT
PHYSICAL VOLUME
CONFIGURED

TABLE ENTRY

ONE PER

(PVTE)

SYSTEM.

- ONE

PER

PROVIDED BY

DISK DRIVE

EACH P\ryE CONTAINS:
THE DEVICE ID
(DISK DRIVE ID) AND THE
VOLUME (DISK PACK) CURRENTLY MOUNTED

Not To Be Reproduced

8-2

ID OF THE PHYSICAL

F8QA

~

CONTROL OVERVIEW

o THE NUMBER OF RECORDS LEFT UNALLOCATED ON
VOLUME, POINTER TO THE RECORD STOCK, ETC

D RECORD STOCKS - ONE PER
VOLUME MANAGEMENT

MOUNTED PHYSICAL

THE PHYSICAL

VOLUME, PROVIDED BY

o

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

o

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
n

CONTAINS A LARGE NUMBER OF COUNTERS AND POINTERS VITAL TO
THE MAINTENANCE AND METERING OF THE STORAGE SYSTEM
CONTAINS LOCKWORDS USED TO SYNCHRONIZE
SEGMENT CONTROL OPERATIONS

PAGE CONTROL AND

CORE MAP - THE core_map SEGMENT - ONE PER SYSTEM

6 CORE

ONE PER

MAP ENTRY (CME)
CONFIGURED MAIN MEMORY

FRAME (1024

WORDS) OF

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

Not To Be Reproduced

8-3

r80A

PAGE CONTROL OVERVIEW

NOT PART OF
OF THE SST

THE SST SEGMENT ANY MORE,

BUT LOGICALLY PART

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
EACH ASTE

ACTIVE SEGMENT, THE OTHER HALF OF

PAGE TABLE WORD (PAGE PTW) PAGE TABLE

EITHER 4, 16, 64, OR 256 PER

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

Not To Be Reproduced

8-4

PAGE OF THE

F8QA

~

CONTROL TERMINOLOGY

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-5

F8QA

PAGE CONTROL DATA BASES
PAGE TABLES
, ,
.:

S

6

';'

a

9

u

.2

:3

.:

, , ;; z . Z
S

6

2

Z

8~O'~3':

':"OOAESS

MAIN MEMORY AOORESS

13
14

0

I'-

0000

1000

NULL .:..DORESS - REPRESENTS PAGE OF ZEROES

0000

WOROSi

~t'5'{::.

10

(PTW.INCL.PL 1i

(.00 ,

A 16K'pAGEIABLE IPT)
IMMEDIATEL Y FOLLOWS ':"N ASTE tABOVEi - ONE PER ':"CTIVE SEGMEI\:,
COMES IN 4. 16. 64 ':"ND 256K FLAVORS

~

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

No: To Be Reproduced

8-6

F80A

~

CONTROL DATA BASES
PAGE TABLES

B ALL PAGE TABLES ARE ASSOCIATED WITH, AND IMMEDIATELY FOLLOW AN ASTE
IN THE AST REGION OF THE SST

BEACH PTW DESCRIBES THE STATUS OF ONE P~GE OF THE SEGMENT CURRENTL!
IN POSSESSION OF THE ASSOCIATED ASTE, INCLUDING:

o

THE DEVICE ADDRESS OF THE COpy OF THE PAGE

o

PTW VALID INDICATOR AND FAULT NUMBER (FAULT #1)

D FLAGS INDICATING VARIOUS STATES AND PROPERTIES OF THE PAGE SUCH
AS I/O IN PROGRESS, WIRED, USED, MODIFIED

B

THE ADDRESS PORTION OF EACH PTW IS INITIALIZED
VTOCE FILE MAP AT SEGMENT ACTIVATION TIME

Not To Be Reproduced

8-7

FROM THE SEGMENT'S

F80A

z
o

ct~-J

o

PAGE TABLI: DEVICE ADDRESSES

w

ro

DISK PACK

I~

,PAGE 1

rw
W::I...-

-

-,

I~

I
I

OJ

I
OJ

8
»'

I
IL _______________ _

ttl

t"1
txJ

Ul

-

DISK RECORD
... NUMBER.

-

NULL
,.. ADDRESS

0

MAIN
- f-4 MEMORY
ADDflESS

8

4

0

n

0
Z
t--3

:u
0

l1

I~
w

»'

Ul

r------,
OOO()A..-V\

..

I

:~ooo~1
I
I

PAGE 2
MOOO"""",-oooo~

t"rJ
00

o

:....

L

"GUOST" PAGE
OF ZEROES

- . - -- -

I

-

-

-

-

--

r-I
I

:

I
•

-

I

I

----_ ........

oo~oooo~oo

- -- -

I

I
I

oo~oooO_1

I M."o..J'\-oooooo~
I ooo~ooo_

r
I
I

I

I

I

I

----'

MAIN MEMORY

M

.

A 4K PAGE TABLE

1

2

Ul

PAGE
-----

1

1

1

CONTROL DATA BASES

-----

1

2222222JJ3
J"567RQlll]

012345671190123

FORWARD ReL POINTER

o

3

scu

TYPE

DEVICE ADDRESS

2

BACKWARD REL PTR

PTW OFFSET IN SST

A STE OFFSET IN SST

ptNCOUNTER

PAGE SYNCHRONIZATION REL PTR

(WORDS)

~ORE

tcmp.incl.atml

MAP sNTRY (CME)

A HARDCORE DATABASE. LOCATED IN THE
CORE-MAP SEGMENT. ONE CME PER CONFIGURED
FRAME OF MAIN MEMORY.

~

THE CORE ¥~p IS A PE~'~NENTLY WIRED,
ARRAY OF CORE MAP ENTRIES (CME'S)

.0

u~PAGED,

SEGMENT CONTAINING AN

ONE CORE MAP PER SYSTEM

ONE CME PER ADDRESSABLE MAIN MEMORY FRAME

n 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-9

F8QA

PAGE CONTROL DATA BASES
CORE
MAP
--

~

EACH CME DESCRIBES
INCLUDING:

THE STATUS

OF ONE

PAGE FRAME

!N MAIN MEMORY

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

~

THE CME'S ARE KEPT IN A DOUBLE-THREADED CIRCULAR LIST POINTED TO BY
ss't.usedp

CME!S FOR FRAMES UNDERGOING
THE LIST

T
• / ' 'v' '

ARE TEMPORARILY THREADED OUT OF

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
- AND SUBJECT TO EVICTION BY THE PAGE REPLACEMENT ALGORITHM

Not To Be Reproduced

8-10

F80A

PAGE CONTROL DATA BASES
SYSTEM SEGMENT TABLE (SST) HEADER

B

THE FIRST, 512 WORDS
CONTAINS:

OF

THE SST

IS

CALLED THE

SST

HEADER AND

A LARGE NUMBER OF GLOBAL VARIABLES VITAL TO THE OPERATION OF THE
STORAGE SYSTEM AND ITS SUBSYSTEMS

n NUMEROUS CELLS USED TO METER THE STORAGE SYSTEM

B

AMONG THOSE OF INTEREST TO PAGE CONTROL ARE THE FOLLOWING:

GLOBAL VARIABLES:
PAGE TABLE LOCK (sst.ptl)
o

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
"BEST" CANDIDATE PAGE FOR REPLACEMENT

D

TO THE" CME OF THE

PVT INDEX OF THE RPV (USED DURING INITIALIZATION)

METERS

n THRASHING, POST-PURGE-TIME, PAGE FAULTS ON DIRECTORIES, RING
o PAGE FAULTS, LOOP LOCK TIME, SEGMENT MOVES

Not To Be Reproduced

8-11

F8QA

PAGE CONTROL DATA BASES
SYSTEM SEGMENT TABLE (SST) HEADER

PAGING METERS REPORTED BY file_system_meters
NEEDS, CEILING, SKIPS

Not To Be Reproduced

8-12

SUCH AS STEPS,

FOOF.

PAGE CONTROL DATA BASES
OTHER DATA BASES

B

ALTHOUGH BASICALLY DATA BASES OF VOLUME MANAGEMENT, THE FOLLOWING
CONTAIN INFORMATION REQUIRED BY PAGE CONTROL (AS INDICATED)

B

PHYSICAL VOLUME TABLE (PVT) - ONE PER SYSTEM

INFORMATION REQUIRED BY THE DISK DIM FOR I/O

INFORMATION USED BY
(free_store) SUCH AS:

~

THE

DISK

RECORD

ALLOCATOR/DEALLOCATOR

o

THE NUMBER OF UNALLOCATED RECORDS LEFT ON THE VOLUME

n

THE LOCATION OF THE RECORD STOCK FOR THE ·VOLUME

RECORD STOCKS

D

RECORD STOCKS ARE KEPT IN A WIRED SEGMENT:

THE RECORD STOCK FOR A VOLUME IS A LIST
WHICH ARE FREE ON THE VOLUME
WHEN THERE ARE NO MORE ENTRIES
UPDATED FROM THE VOLUME MAP

Not To Be Reproduced

8-13

stock_seg

OF SOME OF THE RECORDS

AVAILABLE IN THE STOCK, IT IS

F8QA

PAGE CONTROL DATA BASES
OTHER DATA BASES

, 0 IF THE STOCK BECOMES FULL, SOME OF ITS ENTRIES ARE UPDATED TO
THE VOLUME MAP AND REMOVED FROM THE STOCK

o

A COMPLEX MECHANISM (SEE volmap.alm, volmap page.aIm) MAKES
IT POSSIBLE
TO REFERENCE THE VOLUME
MAP PAGES WriILE
SATISFYING A PAGE FAULT

Not To Be Rep=oducea

8-14

FBQA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

B

WITHIN ANY DEMAND PAGING ENVIRONMENT THE CHOICE OF
EVICT IS CROCIAL TO SYSTEM PERFORMANCE

B

ONE OF THE BETTER CHOICES FOR EVICTION IS THE "LEAST RECENTLY USED"
PAGEe ••• OR (BECAUSE OF EFFICIENCY), THE "LEAST RECENTLY NOTICED AS
BEING USED" PAGE.

B

THE MULTICS PAGE REPLACEMENT
ALGORITHM (PRA), KNOWN IN THE
LITERATURE AS THE "CLOCK" ALGORITHM WAS ONE OF THE FIRST EVER TO BE
IMPLEMENTED

B

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)

B

PAGES ARE KEPT IN A CIRCULAR
THE DOUBLY THREADED CME'S

WHICH PAGE TO

LIST, THE CORE USED LIST, IMPLEMENTSD

BY

B

A POINTER, MAINTAINED IN THE SST, (sst.usedp) POINTS TO THE LOGICAL
HEAD OF THIS LIST AS FOLLOWS:

Not To Be Reproduced

8-15

F8QA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

~"...f""

HAS BEEN
USED*

,
'\ NEEDS
\ WRITING*

I
I

/

"\ \
\

\

\~

BEST
CANDIDATE

"- ......

--

* SKIP USED = 1
SKIP MOD = 1
STEPS = 3

THE CLOCK ALGORITHM
1.

THE "REPLACER" SEARCHES FOR THE FIRST PAGE WHICH IS NEITHER WIRED NOR
MODIFIED, AND HAS NOT BEEN USED SINCE LAST INSPECTED, MAKING THAT PAGE
IMMEDIATELY AVAILABLE TO THE REQUESTOR.

2.

THE "PURIFIER" THEN CATCHES Up, INITIATING WRITES FOR ALL "NOT USED-BUT
MODIFiED" PAGES PASSED OVER BY THE "REPLACER" AND TURNING OFF THE USED
FLAG FOR ALL USED PAGES.

Not To Be Reproduceo

8-16

F80A

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

B

PAGE FAULT HANDING IS THE MOST
CONTROL

B

A PAGE FAULT OCCURS WHEN A USER REFERENCES A
THAT IS NOT IN MAIN MEMORY

B

B

PAGE OF SOME SEGMENT

OR MORE SPECIFICALLY: HARDWARE ATTEMPTS TO USE
INDICATES ITS PAGE IS NOT IN THE MAIN MEMORY

A

PTW THAT

PAGE FAULT HANDLING IS IMPLEMENTED IN THE ALM PROGRAM page fault
WHICH IS INVOKED DIRECTLY BY THE FAULT VECTOR CGDE (page_fault ~
""u~

~n~

B

VISIBLE AND CRUCIAL SERVICE OF PAGE

t:"" ,"TT' ""
~nu~~

T 't.T,,"t:" T'\"'t:" "",,",",T'\

~n~~n~~r~vn

~,",n

rvn

,..,,,,..~

rftu~

~.,.

TTT' "., ... \

rftu~~~)

THE PRINCIPAL STEPS OF page_fault ARE:

SAVE ALL MACHINE CONDITIONS, MASK AGAINST INTERRUPTS, AND
ESTABLISH A STACK FRAME ON THE BASE OF THE PROCESSOR DATA
SEGMENT (PROS), WHICH IS USED AS THE STACK FOR INTERRUPTS-AND
PAGE FAULTS

D

CHECK FOR ILLEGAL CONDITIONS AND CRASH IF SO

Not To Be Reproduced

8-17

F8QA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

D ATTEMPT

TO LOCK
UNSUCCESSFUL

o

THE PAGE

TABLE

LOCK (sst.ptl)

LOCATE THE RESPONSIBLE PTW AND ITS ASTE.
DIFFICULT TASK

AND

WAIT IF

THIS IS OFTEN THE MOST

IT IS D~FFICULT 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
HANDLING A PAGE FAULT FOR THE SAME PAGE:
IF PAGE IS NOW IN, THEN
MACHINE CONDITIONS

o

UNLOCK THE

LOCK AND

OTHER PROCESS

RESTART THE

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, BEGIN 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-18

FSOA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

o 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)

B

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-19

F80A

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING
o
o

/\.!vv /V\.I'\JI f\JV\I\

0\

NV\.~

f'/V\/'vv... J\A/\ Nv.N..

2

1705

o

212

2

1

,

~
212

fV\Iv.. ~.IIft,.
,/\/\"..rvV'vv, ~

0

", ,

"" "-

~.

1705
3
PHYSICAL VOLUME

1

""

"

LOGICAL VIEW
OF SEGMENT A
(CL= 3)
(RU= 2)

o

17

,

4

1

5

SEGMENT A's
VTOCE FILE MAP

r-----------.

35

17

"

3

I

I
CME

I

I

5614

MMF

f....------.. . 5614

I

I

10

I

17

1705

0

0

CME

T

212
!

35

35,

i 4i

o

0\

0
17

I
I

I
I
I

o

I

ASTE

41

2

I

PT99
SEGMENT A's
PAGE TABLE

j

3702 ~.L...-I_ _ _ _+-.l...-_ _ _- I
MMF

t::::==\:==::I

ASSOCIATED
CORE MAP
ENTRIES

3702

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 1: AFTER SEGMENT ACTIVATION
1.
2.
3.

No:

m"
.l.V

Be Reproduced

ASTE/PT PAIR FREED AND AL.L.OCATED TO. SEGMENT A
VTOCE'S ACTIVATION DATA COPIED INTO ASTE
VTOCE'S FILE MAP DATA COPIED INTO PTW

8-20

F80h

SERVICES OF PAGE CONTROL
~

FAULT HANDLING
o

o

IVvv IV\I\A f\/\I\A.

~---~ .... -

I\M.~

iW"', J"'II'vvtA •

I~

17

0

212

!'IVv..~",,"

/'Vv..~~

~

..

11

1

3

1

4

1

5

SEGMENT A's
VTOCE FILE MAP

LOGICAL VIEW
OF SEGMENT A
(CL 3 31
(RU-2)

17

r-----------.,

35

I.
II

I

I

I~5614

IMMF

~
~

I

~

35

17

I

ASTE

I

I
I

I

I

I

10

I

0

17

1705

0

35

4

o

0

0

~~

o

2

PHYSICAL VOLUME

~

CiYiE
5614

212

1705

3

0

o

1
0

2

1705

3702

0

8

2

0

3

~~

~~
CME
3702 0/

212

~

41

~MMF
~3702

PTW #2 R.!TR
ASSOCIATED
CORE MAP
ENTRIES

SEGMENT A's
PAGE TABLE

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 2: AFTER PAGE FAULT ON PAGE NO.2
1.
2.
3.
4.

FRAME 3702 FREED AND ALLOCATED TO PAGE NO.2
PAGE NO.2 COPIED INTO FRAME 3702
ADDRESS IN PTW NO.2 COPIED TO CME 3702
ADDRESS IN PTW NO.2 REPLACED WITH MAIN MEMORY ADDRESS

Not To Be Reproduced

8-21

F8QA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

,- --- -- ,
0

1705

o

0

212

2

o

o

/'v-../v N'\I\A fIJ\JVI
NV\.~

...

fV\Af'vo.A J\JJ\ fVI.Nv..

fI

212

fVVv..~1'V\.

2

o

I'I'Y..~.I\I'\I\I\",.

~.

1

3

1

4

,

1705

2103

3

17

5

PHYSICAL VOLUME
SEGMENT A's
VTOCE FILE MAP

LOGICAL VIEW
OF SEGMENT A
(CL==3)
(RU=21

00000--",- 00000
............. 0000000000 ~
OOOOO.W'JL. 0000-.J.

o

17

35

I
CME
5614

11

2103

OO~OOOOO~
~OOOOOOOO~

r-----------'I

OOO~OOOOOO

I

OOOOoo~OOO

PTW #

I

OOOO~

41

1 RYTR

OOO~OOO~

MMF
5614

ASTE

I
I
I

10

~
~

17

101

35

17

~
'.~~

I
CME
3702

01

212

i

0

5614 \S \

0

3702

~~

o

1705 14

I

01

lsi

2

0

3

1

1

~~.

4/

PTW # 2 R-PTR
ASSOCIATED
CORE MAP
ENTRIES

~

~MMF
~3702

SEGMENT A's
PAGE TABLE

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 3: AFTER PAGE FAULT ON PAGE NO.1
1. FRAME 5614 FREED AND ALLOCATED TO PAGE 'NO. 1
2. FRAME 5614 ZEROED BECAUSE OF PTW NO.1 's NULL ADDRESS
3. RECORD 2103 ALLOCATED TO PAGE NO.1
4. ADDRESS FOR RECORD 2103 WRITTEN INTO CME 5614 AS A NULL.ED ADDRESS

Not To Be Reproduced

8-22

F8CA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

ols:~1

F----===t . ' -----"'"-"'"

..-

II

212

o

17

0

1705

o

0

212

2

,
1

3

1

4

1

5

1705

2103

3

o

PHYSICAL VOLUME
SEGMENT A's
VTOCE FILE MAP

LOGICAL VIEW
OF SEGMENT A
(CL=3)
(RU=2)

0

CME
5614

r-----------,

35

17

II
II

.
I

kd

MMF

5614

~
~

~

35

17

I

I

10

I

~

35

17

0

1705

4

1

2103

4

01

3702

8

I

0

~~

CME
3702

I
I

I
I

~~

o

AS'fE

.I

o
I

2

3

0
I

~A./'\
212

~

41

~MMF
~3702

PTW #2 R-PTR
ASSOCIATED
CORE MAP
ENTRIES

SEGMENT A's
PAGE TABLE

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 4A: PAGE NO.1 (UNMODIFIED) EVICTED FROM MAIN MEMORY
1. NULLED ADDRESS IN CME 5614 COPIED TO PTW NO.1
2. CME 5614 FREED

Not To Be Reproduced

8-23

F8QA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING
o

o

NV\~.

fV\J\J"vv. JIJ./\ NVV\A

1705

o

212

2

1

0

iI

,
,
,

212

{'II'vy.,~.I\II.

2

17

---- ------ 01

IVvv tvV"I.A /IJv \1\

f\I\".~~

~.

1705

3

4

5

3
PHYSICAL VOLUME
SEGMENT A's
VTOCE FILE MAP

LOGICAL VIEW
OF SEGMENT A
(CL =3)
(RU=2)

17

0

CME
5614

r------------,

35

I

I
I

II

MMF
5614

0

17

I

I

10

I

35

-,

I -\
I"

I

i

I

1o.

I

2

:1

3

SEGMENT A's
PAGE TABLE

I
ASSOCIATED
CORE MAP
ENTRIES

I

I

35

I
I

i

I

i7~~ II

ASTE

I
I

II

-

I

MMF
3702
MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE SA: AFTER SEGMENT DEACTIVATION
1.
2.
3.
4.

PAGE NO.2 EVICTED FROM MAIN MEMORY AFTER ADDRESS IN CME 3702 COPIED TO PTW NO.2
PTW ADDRESSES WRITTEN TO VTOCE FILE MAP WITH NULLED ADDRESS IN PTW NO.1
CONVERTED TO A NULL ADDRESS
RECORD 2103 FREED
ASTE/PT PAIR FREED

Not To Be Reproduced

8-24

FoOA

SERVICES OF PAGE CONTROL
PAGE FAULT HANDLING

o

17
1705

MII.IV'v. .MI\ /Vi.Nv.

~

212

f\IV'v..~M.

2

0

11

I'\M...JI.M..

1V'v...;vV'vv. ~

I

~.

212

2

1

3

1

4

1

5

•

1705

2103

3

0
1

1

../WVV"'\ ~ /'vi..
~ ./W'frII\A.-

I

PHYSICAL VOLUME
SEGMENT A's
VTOCE FI LE MAP

LOGICAL VI EW
OF SEGMENT A
(CL=3)
(HU =3)

0

CME
5614

17

L

,I

I
I

II

r------------,

35

I

1

I

I~5614

IMMF

i

ASTE

I

I

I

10

-

~

17

01'

o

17

35

----./~
~~

CME
3702

~

35

1705

4)

oj

2103

,41

01

3702

: 81

I

~

~~

I

I
I

01
1

~

I

I

0 I
I

I

o

2
3

~~
212

~

41

""~~MMF
~3702

PTW #2R~TR
ASSOCIATED
CORE MAP
ENTRIES

SEGMENT A's
PAGE TABLE

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 4B: PAGE NO.1(MODIFIEDI EVICTED FROM MAIN MEMORY
(AND DISK I/O KNOWN TO BE COMPLETE)
1. FRAME 5614 WRITTEN TO RECORD 2103
2. NULLED ADDRESS IN CME 5614 RESURRECTED AND COPIED TO PTW NO.1
3. CME 5614 FREED

Not To Be Reproduced

8-25

F8QA

SERVICES OF PAGE CONTROL

---

~

FAULT HANDLING

o

o

tvvv fV\.f'vt. Mi\l\
IWI.~

~

Ml\JVvvv..

..,/IN'W'V\ ~

/II...

~~

II

~/\M...I\N...

2

/'oI'vo..~ J'VVVI.,..

I

~.

0

2103

0

212

o
2
3

,
1705

4

1

2103

3

1705

1

2.12

/VVI",.~/III.

17

0

5

PHYSICAL VOLUME
SEGMENT A's
VTOCE FILE MAP

LOGICAL VIEW
OF SEGMENT A
(CL=3)
(RU=3)

r

0

17

35

r----~------I

I
CME
5614

I

I

If

I
MMF
5614

I

I

I

I

I

I

I

rI
I

I

I

17

I

17

!

3S

1

3S

0

I

,
I

I

o

I

ASTE

I

I
I

2

I

3

I i
SEGMENT A's
PAGE TABLE

MMF

t::==::;==:::;j 3702
ASSOCIATED
CORE MAP
ENTRIES

MAIN MEMORY
FRAMES

PAGE FAULT SCENARIO
SCENE 5B: AFTER SEGMENT DEACTIVATION
1. PAGE NO.2 EVICTED FROM MAIN MEMORY
2. PTW ADDRESSES WRITTEN TO VTOCE FILE MAP
3. ASTE/PT PAIR FREED

Not To Be Reproduced

8-26

F80A

SERVICES OF PAGE CONTROL
POST PURGING

B

POST PURGING IS PERFORMED BY THE PROCEDURE post_purge

B

POST PURGING IS AN OPTIONAL
REPLACEMENT ALGORITHM

B

POST PURGING:

SERVICE USED

TO OPTIMIZE

THE PAGE

FAVORS THE REPLACING OF PAGES USED BY A PROCESS WHICH HAS JUST
LOST ELIGIBILITY (SEE "TRAFFIC CONTROL", TOPIC 9)

o

B

IS A WORK CLASS SETTABLE ATTRIBUTE

POST PURGING IS LARGELY USELESS
SO MUCH GREATER

Not To Be Reproduced

TODAY, BECAUSE MAIN MEMORY SIZE IS . .

8-27

F8QA

~

SONTROL METERS

file system meters

~

FILE SYSTEM METERS
FOR THE FILE SYSTEM

DISPLAYS MISCELLANEOUS

METERING INFORMATION

o ONLY PARTS RELEVANT

TO PAGE CONTROL INCLUDED HERE;
(SEGMENT CONTROL) FOR THE REST

Total metering time

0:20:02

.f(\~~

(i_o::"e, ~

ATB

\iJ~~ ~. "'" ~Q.

c; "\ 0"("

SEE TOPIC 7

\5:0ce..

~Needc

62654
19.194 msec.
Ring 0 faults
16.6399.:J
",\{If\\'(l..\.:v
PDIR faults
50.607 %
'\'biTJD "\;0;0 fa~, (' Se.fj>.
21 • 556, %
\S s,t {'
.
oN
~Level 2 faults
\.q~\ ~'.
DIR 'faults-()\r~t\ot~r 5e'~,,"~,,",\~
7 • 645 %
\',tS ''<1
...
f!I.
New Pages- V","Yl ~A.-""\) f'v, ""I.'" ~t..C!>A!> 14.661 %
::-r S" ~S
0.000 msec.
'~/~C
Volmap seg
0
15 6.J.· .779 msec-. ",,-(:'6 t:J( 12\1',(1 4~-(D ,?o,'!)~
~,~
Zero pages
770
\!:.,:~Laps
105
11.453 sec. D.."'tI\JV\~ C~IiI\"'I l
Steps
361483
3.327·msec.
lolV
Skip
322555
3.728 msec. 89:231% of Steos
1l.,{l1'1
5t
wired
11057
108.761 msec.
3.428% of Skip
p~~ \~!~u,";,~~
used
109719
10.960 msec. 34.016% of Skip
/''T{\:. 7
mod
140336
8.569 msec. 43.508% of Skip
31.884 msec. 11.693% of SkiD
. f/f~ e..
fc pin/.Pi':
37717
~f
c 1 pin )""o.'''s 2 3 7 2 6
50.686 msec.
7.356% of Skip
(- 'j
,i'fj\ -\
A1~ 01'
3 ? 1 9 pa g e s, 1 3 9 w ire d •
{ltr1>
Average steps
5.770
(""",.~~'N

r

'7

~\\(' T II (!!y:Jr y7/' VIrI>

f ... vc{ P"'"J PS
1 J\ ;

T ; rt (;

~ f> r

1/1 M(1""'-O~1
Sci
f--r

fJ r

vft'l

f" S )'7'?- f
/Oh"Jpr.
C/&'J.fpS.

v.-crv,-

(F

US

pel, 6: r ;:

' \ \.,~n

Ii-"I

17, '\
(I

Not To Be Reproduced

1,.-"

~{ ~1+b)Q ~~\(,,("\-iIv>--"

"-ICfl:

~

0

\~"

\>", C\ "'-V.'.:'\

T ~~ v+'J

~ 1(1' r ;t

8-28
(End Of Topic)

(A, fs-

F8DA

TOPIC IX
Traffic Control

Page
Traffic Control Overview • • •
Traffic Control Terminology.
•
Traffic Control Data Bases •
tc data • • • • • • • • • •
Services of Traffic Control ••
Wait Locks • • • • • • •
Processor Multiplexing •
•
Traffic Control Meters • • • • • • • • • • • • •
total time meters • • • •
traffIc control meters ••
traffic-control-queue.
• • • ••
. . . . .
work_class_meters • • • • • •
respons_meters • . •
••••••
•
post_purge_meters..
•• • •
• •••
Traffic Control Commands
•••••••
• •••
print_tuning_parameters • • • • • . • " • • • • •
print_apt_entry ••
•

9-i

· 9-1
• • • 9- 3

· 9-5
• • 9-5
• • 9-8
· 9-8
• • • 9-9

•
·
·
•
. .

9-18
9-18
9-19
9-21

. 9-23

• • • 9-24
• 9-26

9-27
· 9-27

• • • 9-28

F8QA

TRAFFIC CONTROL OVERVIEW

1m

FUNCTION

D

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

o

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

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

D TRAFFIC CONTROL
INTERRUPTS

CAN

BE

INVOKED

BY

SUBROUTINE

CALLS

AND

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

z

MAJOR DATA BASES

TC DATA SEGMENT
DATA BASES:

- ONE PER SYSTEM.

CONTAINS THE FOLLOWING FOUR

n TC DATA HEADER - ONE PER SYSTEM
CONTAINS VARIOUS METERS, COUNTERS AND POINTERS USED BY THE
TRAFFIC CONTROLLER

Not To Be Reproduced

9-1

FaGA

TRAFFIC CONTROL OVERVIEW

ACTIVE PROCESS TABLE (APT) - ONE PER SYSTEM

n ACTIVE

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

o 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

FaGA

TRAFFIC CONTROL TERMINOLOGY

PROCESS:
AN ADDRESS SPACE
ADDRESS SPACE

AND AN

EXECUTION POINT

WITHIN THAT

MULTIPROGRAMMING:
PERTAINING TO THE CONCURRENT EXECUTION OF
PROGRAMS BY INTERLEAVING THEIR EXECUTION

TWO OR MORE

MULTIPROCESSING:
PERTAINING TO THE SIMULTANEOUS EXECUTION OF TWO OR MORE
PROGRAMS
BY
A
MULTIPROCESSOR
SYSTEM
(PARALLEL
PROCESSING)

ELIGIBLE:
AN

ADJECTIVE

DESCRIBING

THOSE

PROCESSES

ACTIVELY

ELIGIBLE OR INELIGIBLE

PERTAINS TO THE ACT OF CHOSING AND PROMOTING
"INELIGIBLE" PROCESS TO "ELIGIBLE" STATUS

AN

DISPATCHING:
PERTAINS TO THE ACT OF CHOSING AND PLACING AN ELIGIBLE
PROCESS
IN THE
"RUNNING" STATE
(IE:
EXECUTING
INSTRUCTIONS ON A PROCESSOR)

Not To Be Reproduced

9-3

F80A

TRAFFIC CONTROL TERMINOLOGY

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

\'Oe

A

(~d ~(\

WORKING SET:

0

l\r"

f

~~~ f\eJ~

j
to'\- (6(Q

{\-I-

(),r\'(

1 \-', "'"'~ .

THE SET OF PAGES A PROCESS TOUCHES DURING
INTERVAL.
THE SIZE OF A CURRENT WORKING
PREDICTIVE OF FUTURE MEMORY REQUIREMENTS
~\J1l 'e ~

\"50 \
)o():;t-

LJ

I~~'~~

D:~=:
~o{'t({()~ Se"\"""""
'fA ~ ~ b ('{ V~' "1 >
t

\).1) \f~\Q4J~~
'\ CJ

~~ "'~

V:,~~ C~\L

~e'l\\ \--':) ~YfJCF'{5 (?S

-, ,~~ ..s I': c\'

f (('

Not To Be Reproduced

r-z

. v

V-A I\IU",,",

\v l~) )"-~
A GIVEN
SET" IS

TRAFFIC CONTROL DATA BASES
TC DATA

WORK CLASS TABLE (WCT)
( 0:16 )

ACTIVE PROCESS TABLE (APT)
( O:CONFIGU~ED )

INTERPROCESS TRANSMISSION TABLE (ITT)
( O:CONFIGURED )

A WIRED DATA BASE - ONE PER SYSTEM

Not To Be Reproduced

9-5

F8QA

TRAFFIC CONTROL DATA BASES
TC DATA

"""""
222
222222333333
012345678901234567190123456789012345

FORWARD R.,PTR

BACKWARD R.!TR
EXECUTlON STATE
NU~BER

OF PAGE FAULTS

PROCESS IDENTIFIER
TIME HAS BEEN ELIGIBLE (TEl
TIME SINCE TI CHANGED

ITS)

TIME SINCE LAST INTERACTION (Til
MAXIMUM VALUE FOR Tl (TIMAXI
IPC EVENT THREAD
IPS MESSAGEISI
R_PTR TO ASTE OF OSEG

10

R_PTR TO ASTE OR PROS (WHILE RUNNING)

EXECUTION POINT (IN TRAFFIC CONTROL.)

12

PROCESS IDENTIFIER TO NOTIFY ON TERMINATION

13

LOCK IDENTIFIER

14

CPU TIME USED

15
16

WAIT EVENT

17

WORK CLASS TABLE INDEX

18

SPWAKEUPS

i:

PR TAG

TIME OF LAST STATE CHANGE

19

Not To Be Reproduced

9-6

FBOA

TRAFFIC CONTROL DATA BASES
TC DATA

WAKEUP EVENT FOR ALARM CI.OCK MANAGER
21

J

ALARM TIME THREAD

ALARM TIME

24

EVENT CHANNEL TO NOTIFY ON PROCESS TERMINAnON

WORKING SET ESTIMATE
MAXIMUM VALUE FOR TE ITEMAXJ

DEADLINE SCHEDULING TIME
29
30

APTE LOCK

31

CPU MONITOR

32
PAGING MEASURE

33
34
ACCESS ISOLATION MECHANISM (AIMI CLASS
35
36

OESCRIPTOR BASE REGISTER VALUE IDBRI
37
38

VIRTUAL CPU TIME
39
40

ITT MESSAGES SENT AND NOT READ OUT

41

ITT MESSAGES RECEIVEO AND NOT READ OUT

8 WORDS FOR RESPONSE TIME METERING

50

SAVED VALUE OF TEMAX

51

12 WORDS OF PADDING !TO 64 WORDS)

ACT1VE PROCESS TABLE (APT)
A HAROCORE (tc_datal DATA BASE - ONE PER SYSTEM
CONSISTS OF AN ARRAY OF APTE'S AS ABOVE

ACTIVE PROCESS TABLE ENTRY (A PTE)
ONE PER ACTIVE PROCESS

Not To Be Reproduced

9-7

F80A

SERVICES OF TRAFFIC CONTROL
WAIT LOCKS

Not To Be Reproduced

9-8

:-80A

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

B

SINCE THE NUMBER OF ACTIVE PROCESSES GENERALLY EXCEEDS THE NUMBER
OF PROCESSORS (OFTEN 50:1) THE PROCESSORS MUST BE MULTIPLEXED

lID

PROCESSOR MULTIPLEXING IS THE PRIMARY RESPONSIBILITY OF THE TRAFFIC
CONTROLLER

lID

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
.

o

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
RECONFI GURATI ON

o

CAN BE CHANGED AT

ANY TIME BY DYNAMIC

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

F8QA

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

A PROCESSOR WILL, AT ALL TIMES, BE "IN" A PROCESS

~

PROCESSES MAY
"RUNNING" (IE:

EXIST IN ONE OF SIX STATES
EXECUTING ON A PROCESSOR)

~

THE TRAFFIC CONTROLLER CODE PERFORMS
CHANGES FALL INTO TWO CATEGORIES:
IMPOSED.

- ONE

OF

WHICH IS

ALL STATE CHANGES. THE STATE
SELF IMPOSED AND EXTERNALLY

SELF IMPOSED STATE CHANGES (THE PROCESS MUST HAVE A PROCESSOR)
RUNNING -> READY (#1 -> #2)
THE PROCESS WAS TOLD
ANOTHER PROCESSOR OR
PROCESSOR
THE PROCESS
PROCESSOR

(BY EITHER A CONNECT FAULT FROM
A TIMER RUNOUT) " " TO GIVE UP ITS

IS NOW WAITING

FOR NO OTHER

RESOURCE THAN A

RUNNING -> WAITING (¥1 -> #3)
THE PROCESS ISSUED A REQUEST
PAGE FAULT OR A WAIT LOCK)

FOR A "SYSTEM EVENT" (EG:

A

"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

FaOA

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

D

RUNNING -> PAGE TABLE LOCK WAITING (#1 -> #6)

o THE

PROCESS ATTEMPTED TO
FOUND IT ALREADY LOCKED

LOCK

THE PROCESS IS NOW WAITING
UNLOCKING (A SYSTEM EVENT)

THE PAGE-TABLE

FOR A

LOCK AND

NOTIFY INDICATING THE

•
o

RUNNING -> BLOCKED (#1 -> #4)

o

THE PROCESS ISSUED A REQUEST
READ FROM THE TERMINAL)

o

"USER EVENTS" OCCUR AFTER A PREDICTABLY LONG PERIOD OF
TIME AND ARE HANDLED BY THE BLOCK/WAKEUP MECHANISM

FOR A "USER

EVENT" (EG:

A

D 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
D

A PROCESS GOING BLOCKED GIVES UP ITS RING ZERO STACK

D RUNNING -> STOpPED (;1 -> #5)
THE PROCESS EXECUTED THE logout OR
EVENTUALLY CALLING hcs_$stop_process
THE PROCESS IS PRQHIBITED
QUICKLY BE DESTROYED BY THE

Not To Be Reproduced

9-11

FROM

new_proc COMMAND,

RUNNING AGAIN

AND WILL

INI~IALIZER

F8QA

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

n EXTERNALLY

IMPOSED
ANOTHER PROCESS)

o

STATE

CHANGES

(THE

STATE

IS

CHANGED BY

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
PROCESSOR

IS NOW WAITING

FOR NO OTHER

RESOURCE THAN A

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
PROCESSOR

Not To Be Reproduced

IS NOW WAITING

9-12

FOR NO OTHER

RESOURCE THAN A

F8QA

TRAFFIC fGONTROL STATES
I.stl[)p (1.6/M)

l(IrJ,c~c

co . ."\

I
I
I

lOGOUT/NEW.PROC

("0 \

fMc1er>

D.

E
CD
I
CD

wake_up (4/5)

aD.

\D

I
I-"
W

RTO

-

geLwork (6/s)

SCHEDULING

•
I

...~ \
\e

T OIS

\o~tl)~ ('
'M.eAi"\

s h~r\ ~
Slu,)ish t(f5,(}~P 'f.
,\'. "\(

;\:~5

I
I
I

r~~
AQ
•

r",vqn.\. gc..

~"\'Q<...r:A hI'
~(\G\\\'z..e \()n<:i) v~~r:5

s,e:>"""Q.

"t

!

I

Ir ... rt..~

(0",""'01

"",0"\", (".nIt,

t-tl
CO
C)

:Po

ELIGIBLE PROCESSES (13)
it

w

REA DY
#12

o

(r)

Q

~ ~ .;:
en

Q

w
Z

w )- ..J
too

a:mQ

S

:3o

1+-4.\'-- - -.. . .--------1IIl..,-----~I.. - QV';' S~'-iS"
=~
IDLE 4 - -

J"

pvi,s V ~i loP

6):

~
3

-wL

INELIGIBLE PROCESSES (87)

----------~-----------------------------~~--~.
All FIGURES ARE BASED ON METERS FROM A 100 USER. 3 CPU. 2.5M MEMORY, MAXE = 16 SYSTEM.

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

TRAFFIC CONTROL SCENARIO
SCENE l~ CPU "C" TAKES AN INTERRUPT

1. EVENT 3331 OCCURES.
CPU "c" TAKES THE
INTERRUPT AND STORES
MACHINE CONDITIONS

2. May.F01 NOTIFIES
Kelly.EREG BY CHANGING
HIS STATE TO READY (r)

White.FED

t

1662

3. May.FO' CALLS get-processor
WHICH LOOKS FOR AN
EXECUTING (x) PROCESS
LOWER THAN Kelly.EREG I
FINDS IDLE_A, AND
.
SENDS CPU "A" A CONNECT
FAULT (cioc INSTRUCTION)

-'

Kelly.EREG

;:)

3331

LL.

~

0

0
0

C)

c.>

0

~

Green.MMPP

Q.

~

C)

on

'"'"w
U
U

;:)

'"
W

a:l
~

«
~

+

.....- - - - - -....- cioc
4. May.F01 RESUMES PRIOR
ACTIVITY BY RESTORING
MACHINE CONDITIONS

Not To Be Rep=oduced

9-14

F8Dh.

SERVICES OF TRAFFIC CONTROL
PROCESSOR MULTIPLEXING

TRAFFIC CONTROL SCENARIO
SCENE 2: CPU "A" RECEIVES CONNECT FAULT

...._-....--........
1. CPU "A" RECEIVES CONNECT FAULT AND STORES
MACHINE CONDITIONS
May.F01
C
2. Idle A BEGINS PRE- EMPTION
BY CHANGING STATE TO
READY(r)

White.FED
1662

w
~

3. Idle_A CALLS get-work
WHICH LOOKS FOR THE
H!GHEST READY (!")
PROCESS, FINDS Kelly.EREG,
CHANGES HIS STATE TO
EXECUTING (x) AND CPU
TAG TO "A", AND LOADS
HIS DBR

Kelly.EREG

r:::J

I r 1"-

:::>
en
en
~

x

..
0

~

Q)

OD

Green.MMPP

w
....

..:.:: U
:::>
en
en

>c::x:
~

..J

<1:

4. Kelly.EREG RESUMES
PRIOR ACTIVITY BY
RESTORING MACHINE
CONDITIONS

a::~+_B}r

~

Idle_B

rl
Not To Be Reproduced

9-15

F80A

z

a

rt

t--]

a

lJj

ro

WORKING SETS AN[) PAGE THRASHING

PAGE
REFERENCE
STRING

AS

A

CDA

COB

E

FCD

CDFE

FED

Ul

GF
tU

::tJ
0

ill

1

®®

A

@@ A

C D B

®

(E)C 0

C E F E

FED

@F

(7 PAGE FAULTS)

1-"
ffi

Ul
Ul

Ul

0
::tJ

a
t-1

t--]

# 2:

~~~:CESSARY

C8XID

A @XQ) A

C D@

®

_FA_U_L_T_S. ____4-________________t~

@(C)D

C E F E

F E@

®F

(10 PAGE FAULTS)

_____.__
l _____________________
l ____~~~TIME

I~
~v'

~.,~

w(1

~'"\ Mt\

Y,

e

"" ;-lI.. «1'

o t'

(~ ~;ws.
;--0 \ 'G

\...Q.

IDLE

f\A,e"l""l >~~..I ~"!If:
~~c:dJ.1 Q ~

"!;-(.

rn-

~,v''''!J

ttl

f'\I1 ..,.. y-

IT -'(f

11/6 <;,-

I OLE
~('oc..r?...J'j

~

Vv!)(

2*

0

0

0

1
0

2
3

0
0

>0
>0

~O

1
0
1

1

0
0
0

0
0
0

>0
>0
>0

~O

~~~/

J

e

'\o(() lV'

I WORKCLASS

\ 'r"s'tr>A./

1

2
0

~fi~\0'

~

CCc..JS

~ tfJ....tlt '_

? '- pI} S,

M8 r f -;,. ~

~ I~;--j- frG(es~

.

8-e V"~ !t1~) qJ.

Not To Be Reproduced

9-17

F80A

TRAFFIC CONTROL METERS
total time meters

~

TOTAL TIME METERS
OVERVIEW OF HOW THE SYSTEM
RESQURCES,-ALSO MEASURED AGAINST NON-IDLE TIME

IS

USING ITS

Total metering time
%

Page Faults
PC Loop Locks
PC Queue
Seg Faults
J,~~ilo
Bound Faul ts
\'
----Interrupts
k"'~\\""~
~O h
or t.Or-f',t"
f.::.vVl- >,L . t
e r Fa u 1 t
\). '\
tGetwork
.
of O~'rr({{t
TC Loop L?c k s
~
Post Purglng
MP Idle
Work Class Idle
Loading Idle
NMP Idle
Zero Idle
Other Overhead
Virtual CPU Time

Not To Be Reproduced

9-18

FSQA

TRAFFIC CONTROL METERS
traffic control meters

B

- DISPLAY THE STATE OF THE SCHEDULER

TRAFFIC~CONTROL_METERS

o

OUTPUT COMES I N THREE PARTS, SHOWN OUT OF ORDER HERE:

o

QUEUE LENGTHS AND RESPONSE TIME - THESE ARE WEIGHTED AVERAGES
OVER THE LAST FIFTEEN SECONDS.

o

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
Ave queue length
Av.e eligible
Response time
DEPTH

%PF

TBPF

~
(l.\odC.E' .

0:20:34
~ro(.5

'015'

16.52 _*,\f~
13.31 ~.J!) ~"Ocs,
0.264 sec G';''U~~

%GTW

TBS

- \

~
DI' \

Of1~

.

~

Q--.).Q

\~~~ elC)t

%CPU

~~""t ~~~~~

"'v--J~I

1
2
3
4
5
6

7
8

12.0
11.8
10.8
10.2
9.5
8.4
7.4
30.0

Not To Be Reproduced

22.8
21.0
24.9
27.9
29.8
33.5
36.3
48.6

10.8
9.2
8.7
8.5
8.3
7.8
7.3
39.5

9-19

11.6
12.2
14.1
15.2
15.5
16.5
16.8
16.8

,,,-

:i«'\\i '""\.rf' ,0 .
i"<'1i-~" H_ I \"\ ",-1
~

""

~€,

5e e)r

8.1
7.4
8.0
8.4
8.4
8.4
8.0
43.3

r80A

TRAFFIC CONTROL METERS
traffic control meters

COUNTER
Interactions
Loadings
Blocks
Wakeups
Schedulings
Lost priority
Priority boosts
I/O boosts
Wait Page
Wait PTL
Wait Other
Total Waits
Notify Page
Notify PTL
Not i fy Othe,r
Total Notifies
Get Processor
Pre-empts
Getwork
Retry getwork
Extra notifies
Last EN event
Last NTO event

~

ATB

TOTAL
7977
12161
14082
36078
12591

0.155
0.102
0.088
0 .. 034
0.098
1234 .. 756
0 .. 000
2.136
9.719
16 .. 313
38.693
5.262
9.575
16.313
48.747
5.369
5.022
13.103
3.644
0.248
0.419

1

0
578
127040
75691
31912
234643
128954
75691
25330
229975
245856
94235
338802
'4988
2949

#/INT
sec
sec
sec
sec
sec
sec
sec
sec
msec
msec
msec
msec
msec
msec
msec
msec
msec
msec
msec
sec
sec

1.525
1.578

15 .. 926
90489
4.001
29.415

11.813

000000000071

033022237767

ALARM CLOCK METERS
DISPLAYS INFORMATION ABOUT THE
TIMER-FACILITY (HARDCORE INTERFACE FOR timer_manager_)

Total metering time
No. alarm clock sims.
Simulation lag
Max. lag

Not To Be Reproduced

USER ALARM

0:20:31
2171
5.245 msecs.
1 .. 7340314e4 msecs.

9.-20

F80A

·

-,'

\'{ Afr·

(0(11(0 \
0 - -

~~SS.

TRAF Fie CONTROL METERS

cA\ M
"\ p.L¥...
~ ,,-~Q \" S

(5'

Of'<"

....t.;...ra=-f;...;f;...;i~e;.....;;;e_o.;.;.n_tr;...;o;::..1.;.....;:9:1..;:u:.;:e;.;:;u..-e

()f()C~ (So( e.~
"\

s

5NIj~S,L;\

TRAFFIC_CONTROL_QUEUE
DISPLAYS THE
SCHEDULER QUEUES, USEFUL FOR GETTING
PROCESSES ARE 00 I NG
~ (~
--r

0

t:....r).. _",,\,l"'-~

I \""'-:.l

\ l>J

Sl"

\.~ ;,~

'\

,0

~

,\\..,....Q.

\

\ ' c>1.~ -

\..,.~ ~

G),\

\

CURRENT
AN IDEA
\

vt.-'''''

Dvv.;- . . .
0

j:,t fI.-

4...

\..

~

~I

s

(ov.>"
, l'lf!.-

~

f\

CONTENTS OF THE
OF WHAT THE USER

Q..

.-'

(l

n

\

r~~.s

~\

. 1 I"'!)

\

.>

r.."

-vV'

I
,\.e..

\

I FIRST P~RT OF 0 TPUT IS El IGI BlE QUEUE: ~' . . ~~S~ ~""(j..A •
~",,\
'oS~ Q
I,.,
lJ....'-'
.\!.. 5 ('t.''\(\~
'\
~~';: -tp-r /r9(
" .~) 't-Q~
r&
\1_0. \.lY<'
~
\p-.s,1" "'\(~ \:
A-L ~\.J~i-(
Q""
Sf'
\.(r....

l

r.

1-

=

s. . . ~e"\(..GL
=

.0.,..

o,\\Ul

~'1~~ ~

,tV-

I

13.\elapse
tim
1247 sec, 64 a tive la t 15 se •
\
dtu
dpf temax
te
ts
ti
tsse event d
~J.-..t-rWlE(d) 148
6946
2097
37
0
0 ~O.OOl
00
~~-xLED (c)
15
1111
1000 910
2012
1897
0.001
0 0
--('..)V\
rL:: (d)
~4
1370
500
89
0
0
-0.009
0 0
ilE (d)
15
823
500
13
0
0 -0.009
<.~\..,.~--".... :"E (OJ
13
&34
500 422
0
0
0.018'
vJrf'.'
xWLED (~)
6
108 1000 495 205'- 2004
0.010
~
~E (0)
16
864 1000
85
0
510
O.Clf
~j
wwLE (b)
1.bS
:731. 1000 315 3010 8000
:,.c13
y "~.~
wLE (c)
17
6B6
300
60
0
0
0.007
vI~'
wLE(b)
12
520
500
50
0
0
0.005
wLE(d)
69
1895
500
21
0
0
xLEC(c)
12
672
500
85
0
0
C.OC;
avq
flags

/ '

(

l'-..N

c.oor

W\~~~d)

.f\~

'I

\

67

3279

500

COO

-O./!X'bI

0

'~~"J\

~W~~

ws

we

6

0

11
0
64

6

0

3

-

Re~rocwced

~

process

~ S\

Sibert
4 Diaz
8 JCrow
3 3 Gintel;
13 6 Brune lie
46 6 WFeck
l. 3 Spratt
3 1. R70wle
3 3 Kress
0
20PCTl
0
3 Pandol!

\0-~D\

Lackey

""

\ oc.JZ

9-21

t

initializer~(el>\~~~a.IJ~ul

\ SA ~d

rt., ,::,.\;; ~,I:. SI( it "l;, J r'1dJ (e>')

Se

»

~

Qv~~:>
11 ~ 0Ob~ "7

Not 70

\. \ ..

\tJuK \ '" \VlrV.)
~

\~I~"

t

~

'\tJoi"·\'I.t:)

,.f""!t/"'\t,

rovi'l

I

6

d J Q.

r (I

\or

TRAFFIC CONTROL METERS
traffic control Queue

SECOND PART IS

INTERACTIVE, AND ALL WORKCLASS QUEUES:

REhLTI~£,

REALTIME QUEUE:
INTERACTIVE QUEUE:
2 QUEUE: credits =

WORKCLASS
WORRCLASS
r
:'

576 ms.

3 QUEUE: credits =
289
5326 1000
0
131
2513 1000
0

WORKCLASS

4-

=

2601 ms.

'VJDRKCL.l..SS

5 QUEUE: credits =

4000 ms.

WOF:KC:"AS S

6 QDE:,jE.: credits =

-563 ms.

",,"lCRKCI.,J..SS
ri-.;

5

7

QUEUE: credits

242 ms.
503
0
4010 8000

QUEUE: credits =
16G

500

3962 ms.
0

0

S

8 QUEVE: crecits =

~~,j-:

WORKCLASS

9 QUEUE: credits =

2216 ms.

WORKCLASS 1(: QUEUE: credits =

4000 ms.

WORKC::'ASS 11 'OUEtJE: crecits =

4000 ms.

WOR.i'~C~P.S

~""-"".

~V}J '18
(o{f~ ( \

\v\.1(~

Kot To Be Reproduced

t() 'HH~

.0

0 .. 218
0.128

0 0
0 0

22
0

0.192

0 0

2

3 Dupuis
3 Falksenj

7 Sa~=uci

IDS.

alJl

\t""'-,t

\'0

cJpt)~ !;.

9-22

F80A

TRAFFIC CONTROL METERS
work class meters

PARAMETERS, AND

0
1

2

7.

3

32.

4

0

..t.

3.

O. 12

3.

3

0.09
0.44
0.49
0.26
0.46
0.25
0.36
o. 18
0.62
0.55
0.16

1
1

15·
44.
14.

4•
2.

S

20.

6

12.

16.

8.

j

7.

4.

8

3·
6.

9

4.

8.

10

,• .1

TCP~

..,

:;

.

L.

o.
.,
i..

o.
i. •

0.26
0.25

2. 10

0.75

0..26
0·50

1

2. 10 P o R
1.00 P 0 R
P 0
p 0

1

Net To Be Reproducec

p 0

S~ngr

p

HEngr
MktUS MktFo!'" MktEd
DS-CC
Off Auto
Mi 5C Mf;

0

P 0
P 0
P 0
P 0
p 0
P 0

percents (%GUAR) control non-realtime work =lasses.

-

9-23

Init
RTime
System SysAdm OPR
SysProg SysOev

I

Othe~

Special

F~'"

:u

TRAFFIC CONTROL METERS
resoons mete:s
T I t'I.:.

RES?ONS£_M:TERS
D!S?LAYS RESPONS£
INTERACTIONS, ON A PER-~ORKCLASS BASiS
~ \l~

l..

~~

~c~

{Sf \J-..5P~

n

J\1

~

~ f1 ~ --I2\eAv~:'J\
'll'"-E'
0•
• ~,.,..!I
Vl"11

Tctal metering time

c

BASED

rgOto

TRAFFIC

CONTROL METERS

rescons meters

6

1180
1211

259 14.65
287 0.98

7

8

73
74

0.00 0·50
0.50 1.00
1.00 10.00

977
24
16
1017

0.05 1. 13 20.91
0.04 4·95 7.74
1.89 11.88 6.29
0.10' 1. 39 14.38

MktUS MktFor MktEd

0.50

292

0'.08

9
17
1
319

1.53 20. 17
9·03 12.66·
2.04 14.76 7.24
12.22 99·99 9.45
0.24 2.81 11.86

Os-cc

1.00
1.00 10.00
10.00 99.99

11.65
0.58

0.00
0.50

2.69
0.05

0.50
C.50 1.00
1.00 10.00'

79 0.06
2 0.60
1 3.20
82 o. 11

o.co 0.50

80
11

0.00

94 ld .91
96 0.30

9

0.50

1.00 10.00

7 99·99
8 0.21

0.00

11

l.i17 12. 71
420 0.15

0.00

0·50

o.5e

1.00

1:"',
0.00 o . ..;'"
0.50 1.00
1. 00 10.00
~

I.i •

..... ,...
~"";

Off Auto

1.23 11.07

Mi sc Mfg

0·69

445 0.03
5 0·57
4 1.65
1.54 0.05

1.00 10.00

,r.

5.45
10.62
6.73 2.10
0·54 4.94

6.40

0.50

3·tl
! ! .40
O.c3

'v

Be

L.30

5·74

15·32
6.29
6.90
11. 93

Other

Speci,al

C.77 11 . .1.0
Lo·5Lo 6.70
2·31 13. 1 1 5·68
13 48.77 99.95 3.32
6S57 0.24 1. 51 6.39

6Lo54

217
173

99·99

0.07
0.68

283
86797 ca 11 s to meter response time
Overhead =
0.09% ( 0:052 ms./cal1)

~~ot

6.91

10 o. ! 1 1.45 13.82
3·88 39. 11 10.09
11 0.45 4.88 lv.89

C·50
l.00 10.00

5954 11 . 13
6192 0.29

o. 11

0.31

4.74
13 2·99 12.6-'
104 0·53 3.05

1.00

10

Ali

0.71

--'

O-i:::

.,

i nval id transitions.

F80.4

TRAFFIC

METERS

CO~~ROL

post ouree meters

~

POST PURGE METERS - DISPLAY THE STATE OF POST-PURGE ACTIVITYD

-

-

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
Ave list size
Ave workine set
Workino set factor
Workina set addend
ThrashIng percentage
Ave post in core

1,,41 msec. (0.36% of system)
17.76 entries
5.59 pages
0.50
0
1.34 ~
(59.94 ~ )
10.65

Not To Be Reproduced

Q

9-26

FBOA

TRAFFIC CONTROL COMMANDS

CTP

print tuning parametersj\\ So

8

FOR

PRINT TUNING PARAMETERS
PRINT VALUES
PARAMETERS. -MOST CONTROL THE SCHEDULER

Current system tuning

SYSTEM

CONTROL

pa~ameters:

0.5 seconds
1. seconds
8. seconds
80. seconds
2e
20.

o

~~§

)0&>

~

~t\'~~ ()., \

\ \,,",,,,~

0.5

o

ll

o ff (7-<:''-'(.

r

Ir-f"OU-\<:'::>

{I~V'"
"7 .... 0,,'"

L;
,'0.

"D~

('\1\

'\.I'c.S fC?tl.,\\:"'~
\

t=" d.J VS~

on :~\.:,,,",1'\ \
i:.o\\o"" "? 0 c~~§Q i ( 'f "itl,\qIAt.t'Lt
on ~(ll;'l\-\"\ \5 oP-1?- '"' V~\fS$~
0.04 seconds
off) Vs{ (JvP,.f'T' Ser .... f I.e
of f) "1'; r..E" ,/\/l'(>~(}
2. sec onds \b ~~\ \o,o/=J ?.tt
o•
p",.•~ ¢r 11-~ r"" . . . .·} .... h({I,~
4. sec onds vo,. c (... ~~/.J -H>r ~~".cc,..c. 'ft~
on oFr ch {fiifll
f4>tro.. 1'A-!lt'J.
\,/1

&.<

o. seconds
0.005 seconds
30. seconds
O-}< Pr: ,"\"1

C!f'

ctJ'\JCI(; (o~-J

/t\.

rqtw--.

724

THESE ARE "INTERNAL", NORMALLY NEVER CHANGED,
IF THE -all CONTROL ARGUMENT IS GIVEN

stack truncation
stack:truncation_always
stk trunc block avg factor
trap invalid maskedmeter ast locking
checksum filemap

Not

To

Be Reproduced

9-27

AND ONLY PRINTED

on
off
0.25
off
off
on

F8QA

TRAFFIC CONTROL COMMANDS
Dr i

~

n tao ten try

('/ ~ S ~(c / /~

f?

-P " ~

PRINT APT ENTRY - INTERPRETS AND DUMPS AN APT ENTRY

., (? e~\:.r.>P1--'1 d

I,

re.1"L9{,

\~G,,,-

r J\(

print_apt_entry Sibert -aump
Sibert.Multics.a b.h126 at 10300 in tc data, >pdd>!BblCpbBbBBBBBB
PID: 010300356001 TRM: 000447007410 407777000460
~ un~t,..ye
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
4

10
14
20
24
30
34
40
44
50
54
60
64
70
74

005400003000
000001443141
000000000000
003000777777
000000000000
000000000000
000447007410
000000111567
000000000000
035117540004
000000000000
000000111567
000000000000
000000000000
000000000000
000000000000

Not To Be Reproduced

014225000001
000000000000
000000000000
115641364232
001360000002
000000000000
407777000460
457736532472
000004325430
001775100023
000000000000
457572506651
002557051053
000000000000
000000000000
000000000000

000000056106
000002356631
005200013740
000000000000
000000111567
011700111567
000000000000
003322000000
000000000000
00000000'0000
000000000004
000000000000
000001720440
000000000000
000000000000
000000000000

9-28
(End Of Topic)

010300356001
000172044000
000000002076
003702747134
457572337662
457761705103
000001720440
000000000000
000000000000
002556711030
000000004441
014274070015
776000000000
000000000000
000000000000
000000000000

?8QA

Ck./S 0f.;r s

PO

TOPIC X
-Fault and Interrupt Handling

Page
Fault and Interrupt Handling Overview.
Fault and Interrupt Data Bases •
••
Fault and Interrupt Vectors.
Fault Data Save Areas • • •
Important Types of Faults • • • • • •
Fault/Interrupt Meters ••
fim meters • • • •
interrupt_meters •

lQ-i

e

•

.. 10-1
10-4

• 10-4

10-6

· 10-7
· 10-12
.. 10-12
o
10-13

F8QA

FAULT AND INTERRUPT HANDLING OVERVIEW

~

FUNCTION

D RESPONSIBLE FOR HANDLING ALL EXCEPTIONS IN A CPU WHETHER
INTERNAL TO THE PROCESSOR (REFERRED TO AS FAULTS) OR EXTERNAL
(REFERRED TO AS INTERRUPTS)

ESTABLISHES THE SUPERVISOR
SAVES THE MACHINE
APPROPRIATE HANDLER

ENVIRONMENT AT FAULT AND I~TERRUPT
CONDITIONS AND TRANSFERS TO THE

TIME~

MAJOR COMPONENTS: THE FAULT INTERCEPT MODULE (fim), WIRED-FAULT
I NTERCEPT
MODULE
(w i r"ed _ f im) ,
I/O
I NTERRUPT
HANDLER
(io interrupt), sys trouble, page fault
.51 \)

z

r-:

(0'"'1

('6l

LJ VI

',T

-

-

MAJOR DATA BASES

D

INTERRUPT VECTORS - ONE SET PER SYSTEM (WIRED)

n

INTERRUPT PAIR
INTERRUPT TYPE
LOCATED
BASE

(2

AT ABSOLUTE

ONE

INSTRUCTIONS)

ADDRESS O.

A

PAIR

PER DEFINED

HARDWARE RECOGNIZED DATA

n DESCRIBE WHERE TO SAVE THE

CONTEXT, AND wnERE TO TRANSFER TO
TO PROCESS THE INTERRUPT (ALWAYS io_interrupt)

Not To Be Reproduced

10-1

F8QA

FAULT AND INTERRUPT HANDLING OVERVIEW

FAULT VECTORS - ONE SET PER SYSTEM (WIRED)
VECTOR
TYPE

PAIR (2

INSTRUCTIONS) -

ONE PAIR

PER DEFINED FAULT

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)

PROCESS DATA
ELIGIBLE)

SEGMENT

(PDS)

ONE

PER

PROCESS

{WIRED WHEN

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
SUPERVISOR CODE WHEN THE PROCESS IS RUNNING

BY THE

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

PROCESSOR DATA SEGMENT (PRDS) - ONE PER CONFIGURED CPU (WIRED)
SERVES AS
CONTROL

RING-ZERO

STACK

FOR

PAGE

CONTROL

AND TRAFFIC

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

No: To Be Reproduced

10-2

F80A

FAULT AND INTERRUPT HANDLING OVERVIEW

o

FIM TABLE
g

A TABLE IN THE FIM PROGRAM WHICH DESCRIBES
TAKEN FOR VARIOUS TYPES OF FAULTS

Not To Be Reproduced

10-3

THE ACTION TO BE

F80A

FAULT AND INTERRUPT

~

BASES

FAULT AND INTERRUPT VECTORS

~

ALL FAULTS AND INTERRUPTS ARE HANDLED IN A CENTRALIZED FASHION

n

FOR EACH FAULT OR INTERRUPT, THERE ARE TWO INSTRUCTIONS:
AN scu INSTRUCTION, TO STORE THE
NEEDED TO RESTART FROM THE FAULT
A tra INSTRUCTION, TO TRANSFER
HANDLER

ABSOLUTELY ESSENTIAL DATA

TO TO THE

APPROPRIATE FAULT

ASSOCIATED WITH EACH OF THESE INSTRUCTIONS, THERE IS A POINTER
AN SCU DATA POINTER, POINTING TO
FAULT DATA GOES

A

ONE OF

FAULT HANDLER POINTER, INDICATING
USED TO HANDLE FAULTS

SIX REGIONS WHERE

ONE OF

THE PROCEDURES

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

(rnc.incl.pll)

Not To Be Reproduced

10-4

F80A

FAULT AND INTERRUPT

~

BASES

FAULT AND· INTERRUPT VECTORS

1

01234567.9

o

(I

1

1

\

1

1

1

1

1

1

lIZ

2

:i

2

123456"'0123

1+

SCU INDIRECT FOR INTERRtM'T TYPe 0

i

TRA INDIRECT FOR INTERRUPT TYPe 0
I

I

\

\I

i

\

\

7S

112

SCU INDIRECT FOR INTERRUPTTVPe 31

71

13

TRA INDIRECT FOR INTERRUPT

eo

66

SCU INDIRECT FOR FAULT TYPE 0

81

8&

~

TYlE 31

/

I

'~I\
iI: t;Q

... ...

!

f

>

T

r

TRA INDIRECT FOR FAULT TYPe 0

I

5 §

~ ~
>

121

SCU INDIRECT FOR FAULT TYPe 31

171 127

TRA INDIRECT FOR FAULT TYPE 31

176

200

128

201

129

20Z

130

203

131

PTR TO STORE AREA FOR INTERRUPT TYPE 0

PTA TO INTERCEPTOR FOR INTERRUPT TYPe 0

\

\\

~

~

-/

-"p-

....

i

I

A."

I:

«

a.
co

374

~

ffi

~

~

= .=
Q

Z52
!'TR TO STORE ARE.4, FOR !NTERRUPT TYPe 31

375 253

m

2M
PTR TO INTERCEPTOR FOR INTERRUPT TYPE 31

m

-.--•

-

255

400

256

401

157

402

2S8

PTR TO STORE AREA FOR FAULT TYPE 0

I
PTA TO INTERCEPTOR FOR FAULT TYPe 0

403

2SI
."

~

co
a::

::>

co

I:

~ ~

57..

380

575

381

576

382

577

383

PTR TO STORE AREA FOR FAULT TYPE 31

PTR TO INTEP.:EPTOR FOR FAULT TYPE 31

L . . - - -_

=l~

1

_- - - - - ' _

(WORDS)

FAULT AND INTERRUPT VECTORS
A HARDWARE RECOGNIZED DATA BASE LOCATED
AT ABSOLUTE ADDRESS 0-577

Not To Be Reproduced

10-5

F80l-.

FAULT AND INTERRUPT DATA BASES
FAULT DATA SAVE ·AREAS

~

THERE ARE SIX REGIONS WHERE MACHINE CONDITIONS ARE STORED.

o

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
n

prds$interrupt_data - USED FOR INTERRUPTS, ONLY
prds$firn data - USED FOR FAULTS SUCH AS CONNECT FAULTS, WHICH
WILL BE- HANDLED ENTIRELY USING THE WIRED RING ZERO STACK
(PRDS)

o

prds$sys trouble data -

USED FOR THE FAULT

THAT CRASHED THE

SYSTEM~ -NO MACHINE CONDITIONS ARE EVER STORED HERE DIRECTLY,

ONLY MOVED HERE.

ods$firn 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 $TACK (PRDS)

pds$signal data - USED FOR FAULTS. WHICH WILL BE SIGNALLED OUT
FOR THE USER RING TO HANDLEe
IF AN ERROR OCCURS PROCESSING
SOME FAULT IN RING ZERO, ITS· FAULT DATA IS MOVED HERE BEFORE
SIGNALLING

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-6

?8QA

FAULT

~

INTERRUPT

~

BASES

IMPORTANT TYPES OF FAULTS

B

CERTAIN FAULTS DESERVE SPECIAL DISCUSSION, AS
IMPLEMENT IMPORTANT SUPERVISOR SERVICES

THEY ARE

USED TO

LINKAGE FAUL'T
OCCUR WHEN A POINTER CONTAINING 46
OF THE FIRST WORD IS USED
D

USED TO IMPLEMENT DYNAMIC
MANAGEMENT, TOPIC 4)

OCTAL IN THE LOW SIX BITS

LINKING .(SEE

NAME/ADDRESS SPACE

n USES pds$fim data, IS HANDLED BY fim.alm,
link_man.pll,-HANDLED ENTIRELY ON THE stack_O

WHICH INVOKES

SEGMENT FAULT
D

OCCURS WHEN AN NON-ACTIVE
CONTROL, TOPI"C 7)

SEGMENT IS REFERENCED (SEE SEGMENT

USES pds$fim data, IS HANDLED BY fim.alm,
seg_fault.pl17 HANDLED ENTIRELY ON THE stack_O

WHICH INVOKES

A SEGMENT FAULT MAY OCCUR WHILE ANOTHER IS BEING HANDLED, AND
IT WILL BE HANDLED RECURSIVELY

PAGE FAULT
OCCURS WHEN A PAGE NOT
CONTROL, TOPIC 8)

Not To Be Reproduced

IN MEMORY

10-7

IS REFERENCED

(SEE PAGE

F80A

FAULT AND INTERRUPT DATA BASES
IMPORTANT TYPES OF FAULTS

USES

pds$page~fault_data,

IS

HANDLED

DIRECTLY

BY

page_fault.alm, AND IS HANDLED ENTIRELY ON THE PRDSe

TIMER RUN OUT
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 RUN OUT HAPPENS, IT REMEMBERS,
AND SETS THE RING ALARM REGISTER, WHICH WILL CAUSE A RING
ALARM FAULT LATER ON WHEN IT LEAVES RING ZERO

\\~"'

tf'. ..,

~"'" i

Vv'\.

u"\~\. ~\ ~\ <-

USES ods$oaqe fault data, IS HANDLED DIRECTLY
AND IS-HANDLED-ENTIRELY ON THE PRDS.

BY pxss.alm,

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 ell $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-8

F8QA

FAULT AND INTERRUPT DATA BASES
IMPORTANT TYPES OF FAULTS

BUSES

pds$page_fault_data,
IS
HANDLED
DIRECTLY
ring_alarmealm AND IS HANDLED ENTIRELY ON THE PRDS.

D

BY

IS ACTUALLY A SUBTYPE OF ACCESS VIOLATION

CONNECT FAULT

lOcN\"'-vn:CC1,l.o""
.. 11 5.5 oc ~ fJ..- r . "e
~

B

OCCURS WHEN ONE PROCESSOR SENDS A "connect" TO ANOTHER, USING
A cioc INSTRUCTION

8 . 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 !NTERPROCESSOR SIGNALLING -

n

(l) TO CAUSE ANOTHER PROCESSOR TO
CACHE OR ASSOCIATIVE ¥£MORY

o

(2) TO PRE-EMPT A PROCESS RUNNING ON
PRE-EMPT SAMPLING IS NOT IN USE)

o

(3) TO INFORM
CRASHING

ANOTHER

PROCESSOR

SELECTIVELY CLEAR ITS

THAT

(4) TO INFORM ANOTHER PROCESSOR THAT
FROM THE CONFIGURATION

THE

SYSTEM

IS

IT IS BEING REMOVED

USES prds$fim data, IS SOMETIMES HANDLED
AND IS HANDLED-ENTIRELY ON THE PRDS.

o

ANOTHER CPU (WHEN

BY wired_fim.alm,

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
.

-

OSysTfl/-l
~

COI1,JV1CH1

'd~"''1'-.\O {\ Sf~""'!~"

~('

Cl-,S \ r'l0

(pu
('0 (,,1

(!

d

(0

fh./"1Vhl

Ff}- ,,( T

~

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-9

F8QA

0.

I'r17"

--

FAULT AND INTERRUPT DATA BASES

.;........;~-

IMPORTANT TYPES OF FAULTS

OTHER FAULTS
D

PARITY - RUN AUTOMATIC PARITY ERROR LOGGING AND DIAGNOSIS (TO
CHIP LEVEL, FOR CACHE) ROUTINES

n

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). o'\"\",\ ~(.:}'((f'/V'~ '\JS,pJ );)~~\Je S,"*P/v;pr ~o SOIi"-QIJ",,-,
\4. b

Q

Mf.

~. ""'~ ~~

-fo-.'\\

EXECUTE - USED TO FORCE A SYSTEM CRASH
ACCESS VIOLATION FOR SECURITY AtmITS

CAN AUTOMATICALLY

LOG ACCESS VIOLATIONS

OTHERS - HANDLED BY fim.alm, WHICH MAPS THE HARDWARE FAULTS
ONTO THE MULTICS ENVIRONMENT CONDITION NAMES
CONSIDERABLE INTERPRETATION IS SOMETIMES REQU~RED; 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

F80A

FAULT AND INTERRUPT DATA BASES
IMPORTANT TYPES OF FAULTS

prdsSinterrupt data,
IS
HANDLED
DIRECTLY
BY
iom=interrupt.alm OR -init-processor.alm,
AND IS HANDLED
ENTIRELY ON THE PRDS.

D USES

Not To Be Reproduced

10-11

FaOA

FAULT/INTERRUPT METERS
fim meters

~

FIM METERS - COUNTS FOR ALL FAULT PROCESSING

Total metering time:

0:20:28
count

fault type

o
o

shutdown
store
mme1
fault_ ta 9_1
timer runout
command
derail
lockup
connect
parity
illegal_procedure
op_not_complete
startup
overflow
divide check
execute
segment fault
page fault
directed_fault_2
directed fault 3
access vIolation
mme2 mme3
mme4
linkage fault
fault tag 3
trouble -

No: To Be Reproduced

o
2
12907
5

o
o
742501
o
o
o
o
o
o
o
6697
151772

o
o
21120
o
o
o
21058
o
o

10-12

FaDA.

FAULT/INTERRUPT METERS
interrupt meters

lID

INTERRUPT_METERS - COUNTS & TIMING FOR ALL IIO INTERRUPTS
Total metering time
IOM Ch

Int

6e

11
379
9253
19
26248
128
13097
21041
2881

A
A
A
A
A
A
A
A
A
A
A
A
A
A

A
A
A
A
A

B
B
B
B
B
B
B
B

B
B
B

B
B
B

B
B
B

1O ..
13.
14.
16.
17.
18.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
14.
15.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.

Chan
Ovhd
Total

0:20:28

Avg Time

% CPU

257
17896
2573
lO4S6
255
24717
2319
9915
215
236
6917
3547
13667
22013
4745
6054
60
15946
989
12757
1020
5178
30
16582
825
1764

2 .. 043
1.553
3.436
0 .. 788
1.347
1.328
5.383
0.860
0.860
0.877
0.964
0.895
0.943
0.S57
0.899
0.845
0.849
0.845
0.767
0.877
3.351
3.543
3.435
0.881
0.863
0.861
0.925
0.867
0.841
0.863
0.903
0.838
0.653
0.823
0.841
0.825

0.00
0.01
0.65
0.00
0 .. 72
0.00
1 .. 43
0 .. 37
0.05
0.15
0.01
0.33
0.05
0.18
0.00
0.43
0.04
0.17
0.00
0.00
0.47
0.26
0.96
0.39
0.08
0.11
0.00
0.28
0.02
0.22
0.02
0.09
0.00
0.28
0.01
0.03

262506
258932
258932

1.464
0.230
1.713

7.82
1.·21
9.03

848~

Not To Be Reproduced

10-13

(End Of Topic)

Name
rOM A special
prtb
fnp c
opc
~apa

tapa
fnp b
dska
dska
dskb
dskb
dskb
dskb
dska
dska
-~

-,

-

aSKC

dskc
dskc
dskc
fnp d
fnp f
fnp a
fnp e
dskb
dskb
dska
dska
dska
dska
dskb
dskb
dskc
dskc
dskc
dskc
dske

F80A

TOPIC XI
System Initialization/Shutdown

Page
System Initialization Overview • • •
System Initialization Terminology ••
Initialization Data Bases • • • • • • •
Environment Passed to Initialization
Collection 0 • • • • • • • •
Collection 1 • • • . • • • • • • • •
Collection 2 • • • • " " • •
Collection 3 " • • " • • • " .
Normal Shutdown • . "
• " ••
File System Shutdown • " " •
.Emergency Shutdown • • " " .

11-i

e

" .. 11-1
"
•
11-4
" " 11-7
" " 11-10
11-11
11-12
11-14

. • 11-16
11-17

11-18
. • 11-20

F80A

SYSTEM INITIALIZATION OVERVIEW

B

FUNCTION

U

PREPARE THE SYSTEM TO OPERATE,

STARTING FROM A COMPLETELY EMPTY

MACHINE

o

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

D MOST PROGRAMS IN SYSTEM
INITIALIZATION IS COMPLETE.

o

B

INITIALIZATION

ARE

DELETED

AFTER

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

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 (>sll>slt)
o

CONTAINS AN ENTRY DESCRIBING THE ATTRIBUTES
IN THE SUPERVISOR

Not To Be Reproduced

11-1

OF EACH SEGMENT

F8QA

SYSTEM INITIALIZATION OVERVIEW

NAME TABLE (>sll>name_table)

D CONTAINS A LIST
SUPERVISOR

D

OF NAMES

FOR EACH

OF THE

SEGMENTS IN THE

DEFINITIONS SEGMENT (>sll>definitions_)
CONTAI~S THE DEFINITIONS SECTIONS FOR ALL THE SEGMENTS IN THE
SUPERVISOR, WHICH ARE USED IN ORDER TO·SNAP LINKS BETWEEN THE
SUPERVISOR MODULES

CONFIG DECK (>sll>confi9_deck)
CONTAINS A DESCRIPTION OF THE
CERTAIN SOFTWARE PARAMETERS
n

~

HARDWARE

CONFIGURATION AND

PROVIDED TO SYSTEM INITIALIZATION BY BOS

SHUTDOWN -FASHION

TERMI~ATES

THE ACTIVITIES OF THE SYSTEM

IN AN ORDERLY

TWO TYPES OF SHUTDOWN:

n NORMAL

REQUESTED BY THE
SUPERVISOR ENVIRONMENT

INITIALIZER, RUNS

EMERGENCY -- USED AFTER A CRASH, MUST
ENVIRONMENT OPERABLE BEFORE PROCEEDING

Not To Be Reproduced

11-2

-IN THE USUAL

MAKE THE SUPERVISOR

F80.;

SYSTEM INITIALIZATION OVERVIEW
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-3

?80A

SYSTEM INITIALIZATION TERMINOLOGY
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)
p

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 WJLTICS 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 EXECUT!NG THE PROCEDURE/SEGMENTS THEREIN

WARM/COLD BOOT:
BOOTING THE SYSTEM WITH/WITHOUT A HIERARCHY

HARDCORE PARTITION:
A RLV PARTITION
DURING BOaTLOAD

FOR PAGING

No~

11-4

To Be

Rep~oduced

PRESEN~

HARDCORE SEGMENTS CREATED

F80A

SYSTEM INITIALIZATION TERMINOLOGY
DECIDUOUS SEGMENT:
A SEGMENT READ IN AS PART OF THE BOOTLOAD TAPE AND
PLACED INTO THE HIERARCHYg DECIDUOUS SEGMENTS ARE PART
OF THE INITIALIZER'S HARD CORE ADDRESS SPACE AND RESIDE
ENTIRELY IN THE HARDCORE PARTITION a THEY ARE PUT INTO
THE HIERARCHY (>s11) 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-5

F80A

ORDINARY SEGMENTS:
> sss >bound_pI1_
> udd > M ED> Kaiser> Kaiser .mbx
> udd >Site Sa >Homan > test_pi 1
rpd) > stack_4
(/)

c::

IZ

LLJ LLJ
-' :t:
:E
udd
> udd >Site Sa
>udd>MED
>sss

IJJ

(J)

R EVERSE-DECI DUOUS:
(per-process,·per-boottoad, ring 0 only)
[pd] > dseg
> sl1 >stack_O.nnn
[pd] > kst
[pel] > pels

.

0

~M
~:tt

0

-a::>

C/)

"

z

c::
LIJ

c..

>
.,..

~

Cf)"

U

-c::;

Z

c:::

Z

-:t:

I

c::

0

LLI

NON-SUPERVISOR PROGRAMS:
> sl1 > bound_command_loop_
> sf1 >bound_rcp_

-I

0

U

,.,..
V~

I·Z
UJ

~

 sl1 > bound_sss_wired_
> sl1 > sys_info
> sl1 >hcs_ (aU ring 0 gates)

DISK OVERLAY ABS-SEGS:
volmap_abs_seg
syserr_log

Q.

ii:
0

~

u

w

-I
-I

NON-DECIDUOUS PAGED:
bound_ file.Jystem
bound_system_ faults
str_seg

:J:

~

c::
-

::>

CfJ

U

No: To Be Reproduced

0

en
w

o~

Z


a:

~

CI)

z

(.)

-:t:
IJJ

•
Z

0
Z

INITIALIZATION DATA BASES

~

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

~

INITIALIZATION IS ACCOMPLISHED BY AN ORDERLY LOADING AND PROCESSING
OF THE SEGMENTS RESIDING ON THE MULTICS SYSTEM TAPE (MST)

~

THE SEGMENTS OF THE MST MAY BE DIVIDED INTO THREE CATEGORIES:

INITIALIZATION SEGMENTS

n PROCEDURES

USED

ONLY

FOR

INITIALIZATION

AND SUBSEQUENTLY

DISCARDED

SUPERVISOR SEGMENTS

o DATA BASES USED DURING

INITIALIZATION THAT ULTIMATELY BECOME
DATA BASES OF Initializer.SysDaemon.z
PROCEDURES AND DATA BASES THAT
SUPERVISOR IN ITS ENTIRETY

o

CONSTITUTE MULTICS HARDCORE

NON-SUPERVISOR SEGMENTS
o

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-7

F8QA

INITIALIZATION DATA BASES

~

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

~

STRATEGY OF INITIALIZATION:

n

THE FIRST PROCEDURES
SOFTWARE ASSISTANCE

BOOTSTRAPPING

RUN

IN· AN

ENVIRONMENT

DEVOID

OF ALL

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:
CREATING TABLES WHOSE SIZES
IN THE "CONFIG" DECK

ARE DETERMINED BY DATA SPECIFIED

THREADING OF RELEVANT LISTS

Not To Be Reproduced

11-8

FBQA

INITIALIZATION DATA BASES

o

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

o 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

D INITIALIZATION CAN

BE VIEWED AS THE LOADING AND PROCESSING OF
COLLECTION ONE, COLLECTION TWO, AND COLLECTION THREE, IN TURN

z

THE ADDRESS SPACE OF INITIALIZATION (MINUS THE INITIALIZATION
SEGMENTS) BECOMES THE GLOBAL SUPERVISOR ADDRESS SPACE OF MULTICS

n

THIS ADDRESS SPACE IS "CLONED" TO BECOME· THE INITIAL ADDRESS
SPACE OF NEWLY CREATED PROCESSES BY DUPLICATING THE DSEG

Not To Be Reproduced

11-9

F8QA

ENVIRONMENT PASSED TO INITIALIZATION

~

THE

FIRST

SEGMENT

OF

COLLECTION

IS

ONE

THE

BOUND

SEGMENT

bound bootload- 1
~

~

AT THE TIME CONTROL IS TRANSFERRED TO bound bootload 1,
REQUIRED THAT BOS HAS INITIALIZED MAIN MEMORY AS-FOLLOWS:-

IT IS

THE rOM 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
14000 THRU 15777

(AS PRODUCED BY

BOS) MUST

RESIDE AT LOCATION

THE BOS TOEHOLD AND FLAGBOX MUST BE AT LOCATION 10000 THRU 11777
THIS ONE
BOS

PAGE CONSTITUTES ALL KNOWLEDGE

TRANSFERRING
CAUSE:

CONTROL TO

FIRST 64K OF
PARTITION

THE START

MAIN MEMORY

OF THE

TO BE

TH~ BOS OP£RATING SYSTEM TO BE
MAIN MEMORY

THAT W0LTICS HAS OF

BOS TOEHOLD WILL

FLUSHED OUT

TO THE BOS

READ INTO THE FIRST 64K OF

CONTROL GIVEN TO BOS

THE REMAINDER OF MAIN MEMORY MUST CONTAIN ZEROES

Not To Be Reproduced

FSOA

COLLECTION Q

B

THIS CONSISTS OF-THE SEGMENTS
THE INITIAL ADDRESS SPACE

WHICH ARE DEFINED TO

BE PRESENT IN

o THESE SEGMENTS ARE EMPTY, AND OVERLAY SPECIFIC REGIONS OF MAIN
MEMORY. THEY ARE DEFINED SO THAT bound_bootload_l CAN KNOW WHAT
SEGMENT NUMBERS TO OSE FOR WHAT DATA

o

THE
COLLECTION
ZERO
SEGMENTS
ARE
iom mailbox, config deck, dn355 mailbox,
slt~ and name_table -

dseg,
fault vector,
bos_toehold, flagbox,

D SEE

MANAGEMENT, FOR THEIR

SECTION 5,
DESCRIPTIONS

Not To Be Reproduced

NAME /

ADDRESS SPACE

11-11

FaQA

COLLECTION 1

~

COLLECTION 1 CONTAINS ALL OF THE
NECESSARY TO MAKE PAGING OPERATIVE

~

BASIC STEPS OF COLLECTION 1 LOADING AND INITIALIZATION:

PROCEDURES

bound bootload 1 GAINS CONTROL FROM BOS, IN
PERFORMS THE FOLLOWING:

AND

DATA

BASES

ABSOLUTE MODE, AND

n LOADS THE REMAINDER OF ITSELF INTO MAIN MEMORY
ESTABLISHES INTERIM FAULT AND INTERRUPT VECTORS
INITIALIZES
MODE

THE

INITIALIZATION DSEG,

AND

READS THE REMAINDER OF
COLLECTION
(INCLUDING A SEGMENT NAMED bootstrap2)

o

1

ENTERS APPENDING

INTO

MAIN

MEMORY

bound_bootload_1 TRANSFERS TO bootstrap2

boo~strap2

PERFORMS THE FOLLOWING:

CREATES A STACK FRAME IN THE SEGMENT "inzr stkO"
CALL THE APPROPRIATE
COLLECTION 1

PROCEDURES TO PRELINK

SETS UP THE PL/I ENVIRONMENT
PROCEDURE "initializer"

Not To Be Reproduced

11-12

AND

CALLS

THE SEGMENTS OF

THE

FIRST PL/I

F80A

CCLLECTIo.N 1

D

initializer
(A
SUPERVISo.R
SEGMENT),
ACTUALLY
CALLS
real initializer TO. DC THE REAL Wo.RK.
ALL THE REST DF
INITIALIZATIo.N TAKES PLACE VIA CALLS IN real initializer
D FOR

DEBUGGING

Pu~POSES,

TriERE

IS

A

MECHANISM

IN

real initializer WHICH CAN BE USED TO. STOP AT ANY o.F THo.SE
CALLS BY SETTING A VALUE IN THE PRo.CESSo.R SWITCHES

THE MAJo.R INITIALIZATIDNS
ONE ARE:

PERFORMED IN THE

REST OF COLLECTIDN

o

INITIALIZE THE SCU, CLOCK,· AND CPU Co.NTRo.L MECHANISMS,
CHECKING THE SWITCHES AND THE ADDRESSABILITY DF MEMORY

o

INITIALIZE FAULT AND INTERRUPT PROCESSING.
CONSOLE AND SYSERR MECHANISMS

D

INITIALIZE PRIMITIVE
TRAFFIC
EVENTS). I~ITIALIZE THE SST

Co.NTROL

(WAIT

INITIALIZE THE

Fo.R

SINGLE

INITIALIZE AND CHECK THE DISK CONFIGURATIo.N. AT THIS Po.INT,
IT BECOMES Po.SSIBLE TO. TAKE PAGE FAULTS, AND ALL FURTHER DISK
I/O. IS DONE BY PAGING
CHECK THE Ro.o.T VOLUMES SPECIFIED o.N THE ROo.T CARD, AND
INITIALIZE THE HARDCORE PARTITION MECHANISM.
THIS ALSO
INCLUDES CREATING THE PARTITIONS AND VTOC IN A Co.LD BOOT

n MAKE SEGMENTS

PAGED -- AT THIS POINT, ALL PAGED SUPERVISOR
SEGMENTS ARE COPIED INTO. THE HARDCORE PARTITIDN, AND ACCESSED
BY THE NORMAL PAGE FAULT MECHANISM. COLLECTION ONE ENDS HERE

Not To Be Reproduced

11-13

F8QA

COLLECTION 2

~

COLLECTION TWO - THE REST OF SUPERVISOR INITIALIZATION

READ IN THE REST OF THE SUPERVISOR SEGMENTS
INITIALIZE THE REST OF THE SUPERVISOR DATABASES

FROM

TAPE AND

WHEN COLLECTION TWO IS FINISHED, THE INITIALIZATION ENVIRONMENT
HAS BECOME Initializer PROCESS, AND IT CALLS OUT TO RING ONE TO
START OP THE ANSWERING SERVICE

THE FOLLOWING MAJOR STAGES TAKE PLACE IN COLLECTION TWO:
COLLECTION TWO IS READ FROM TAPE (STILL USING
PROCEDURE, tape_reader, WHICH DOUBLE-BUFFERS)
THE
AND CONDITION
SIGNALLING
MECHANISMS ARE INITIALIZED

AND

HIGHER

A SPECIAL

LEVEL

FAULT

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
IS CREATED FOR THE RUNNING CPU

AN IDLE PROCESS

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-14

F80A

COLLECTION

~

o DECIDUOUS SEGMENTS ARE SPLICED INTO THE HIERARCHY
o

STACK SHARING IS INITIALIZED

o THE REST OF THE SEGMENTS, COMPRISING COLLECTION THREE, ARE
READ, DIRECTLY INTO THEIR PLACES IN THE HIERARCHY (>s11)
n

THE
USER
VISIBLE SUPERVISOR
I/O MECHANISM
(ioi) IS
INITIALIZED, AND THE SPECIAL SUPERVISOR TAPE READER IS SHUT
DOWN

D TRAFFIC

CONTROL IS FULLY
INITIALIZED BY CREATING
PROCESSES FOR THE OTHER CPUS AND STARTING THEM

o

IDLE

ALL I.NITIALIZATION 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-15

F80A

COLLECTION 3

~

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 odds

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 D!RS

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-16

FBOA

NORMAL SHUTDOWN

m WHEN THE SYSTEM IS SHUT DOWN, IT MUST BE DONE IN AN ORDERLY MANNER

II

U

IS ACCOMPLISHED, MORE OR
INITIALIZATION BACKWARDS:

~~IS

n

CRAWLOUTS
STOPPED

ARE DISABLED.

LESS, BY

RL~NING

TrlE

ONCE SHUTDOWN BEGINS,

STEPS IN

IT CAN'T BE

o THE Initializer SWITCHES TO RUNNING ON THE BOOTLOAD CPU,
TRAFFI C CONTROL IS DI SABLED, 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
D

ALL THE DISK DRIVES ARE EXERCISED, TO DETERMINE
BROKEN "AND CANNOT BE SHUT DOWN

IF ANY ARE

n ANY VOLUME SCAVENGES IN PROGRESS ARE STOPPED AND ABANDONED

D AT THIS

POINT, NORMAL SHUTDOWN IS READY TO SHUT DOWN THE FILE
SYSTEM, AND ALL THE NORMAL MECHANISMS ARE ASSUMED TO BE
OPERATING.

D

THE Initializer SWITCHES TO inzr_stkO (WHERE IT ALL STARTED) AND
CALLS shutdown_tile_system

Not To Be Reproduced

11-17

F8QA

FILE SYSTEM SHUTDOWN

~

FILE SYSTEM SHUTDOWN CONSISTS OF FORCING
ITS HOME ON DISK:

ALL DATA OUT OF MEMORY TO

ALL PAGES ARE WRITTEN

n 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.
TIMES DURING THE COURSE OF SHUTDOWN
D

THIS IS DONE

SEVERA~

STACK_O 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 SIB~INGS, AND ITS PARENTS,
ETC.
.
THIS IS DONE TO ENSURE CONSISTENT QUOTA VALUES IN VTOCES
AFTER SHUTDOWN, BECAUSE QUOTA MUST BE UPDATED FROM THS
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-18

~80A

~

o
D

SYSTEM SHUTDOWN

MEMORY IS FLUSHED AGAIN
IF ANY

DRIVES WERE INOPERATIVE,

RPV IS NOT

THIS IS ANNOUNCED,

D THIS MAKES IT

POSSIBLE TO FIX THE BROKEN
EMERGENCY SHUTDOWN TO FINISH SHUTDOWN

D

n

AND THE

D~'40UNTED

DRIVE AND DO AN

I F THERE WERE NO PROBLEMS, THE RPV I S 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-19

F8QA

EMERGENCY SHUTDOWN

~

EMERGENCY SHUTDOWN IS DONE AFTER A CRASH OR SHUTDOWN FAILURE

o

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,
TRANSFERS TO THE NORMAL FILE SYSTEM SHUTDOWN

EMERGENCY 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
REINITIALIZED

SUPPORT,

IN

PARTICULAR

THE

DISK

DIM, IS

THE STATE OF PAGE TABLES AND THE CORE MAP IS MADE CONSISTENT
THIS IS DONE BY pc recover sst AND CAN BE DONE ONLY
BECAUSE ALL OF PAGE CONTROL IS CODED TO FOLLOW PROTOCOLS
ABOUT THE ORDER IN WHICH TO UPDATE RELATED DATA

No: To Be Reproduced

11-20

F80A

EMERGENCY SHUTDOWN

o

BECAUSE OF THIS, IF PAGE CONTROL IS INTERRUPTED AT ANY
POINT, IT IS POSSIBLE TO· DETERMINE WHAT IT WAS DOING AND
COMPLETE THE OPERATION

9 THIS STEP IS

CRUCIAL TO BEING
LATER IN SHUTDOWN

ABLE TO

TAKE PAGE FAULTS

o

BECAUSE THERE IS NO GUARANTEE THAT THE PROCESS WHICH CRASHED
THE SYSTEM .(AND THUS, THE ADDRESS SPACE WHERE ESD IS RUNNING)
IS NO~ DEFECTIVE, ESD REBUILD. ITS PDS FROM THE template_pds

n

ESD SWITCHES TO THE inzr_stkO AND CALLS wired_shutdown

o

ALL THE ABOVE STEPS WERE DONE IN ALM.
PL/I PROCEDURE

wired shutdown IS A

n 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

n THE VTOC MANAGER IS REINITIALIZED
AT THI S POI NT,. THE SUPERVI SOR SHOULD BE WORK I NG WELL ENOUGH
TO RUN shutdown file system. FROM NOW ON, EMERGENCY SHUTDOWN
FOLLOWS THE SA·ME PATH AS NORMAL SHUTDOWN

n

o

IF EMERGENCY SHUTDOWN FAILS, FOR TAKING A FAULT
REASON, IT CAN BE RETRIED INDEFINITELY

OR SOME OTHER

SHUTDOWN IS MARKED COMPLETE IN VOLUME LABELS, AND THESE ARE NOT
{,.'TNT! L
THE. VERY END.
THUS,
NO HAR.J..1 CAN COME FROM
RETRYING ARBITRARILY

UPDATED

ESD TRIES TO CORRECT ALL
BECAUSE OF THE COMPLEXITY
ALWAYS GET ALL OF THEM

Not To Be Reproduced

THE PROBLEMS THAT MIGHT ARISE.
OF THE SUPERVISOR, IT DOES NOT

11-21

(End Of Topic)

FaQA

TOPIC XlI
File System Salvagers

Page
Overview of Salvagers • • •
Directory Salvager • • • •
Quota Sal vag i ng • • • • • •
Physical Volume Scavenger.
Physical Volume Salvager •
sweep_pv • • • • • • • • •

12-1
12-4
• • • •
• • 12-7
. . . . . . . . .
. . 12-9
• • • • • • • • • 12-11
• • • • • . • ••
12-12
•

12-i

•

•

•

•

•

•

•

•

e

•

•

G

••

FaQA

OVERVIEW OF SALVAGERS

~

FUNCTION

!

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

PERFOR~

THERE ARE SEVERAL SALVAGERS, EACH WITH A DIFFERENT, FUNCTION

o

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 DAMAGg OCCURS THAT
REQUIRES SALVAGING TO FIX IS AFTER A CRASH WHERE EMERGENCY
SHUTDOWN FAILS

o

THE SALVAGERS:

DIRECTORY SALVAGER

o

CORRECTS INCONSISTENCIES IN
THEM

DIRECTORY SEGMENTS BY REBUILDING

n THIS

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

Not To Be Reproduced

12-1

F80A

OVERVIEW OF SALVAGERS

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

D QUOTA SALVAGER
CORRECTS INCONSISTENCIES IN THE QUOTA SYSTEM
'"\ 0 ~·u(- ttS\~'>
~~"l~ t- ~ sA \ Q,-S.;' ((ps h·
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
SCAVENGER CAN BE DELAYED.

USUALLY

BENIGN,

SO

RUNNING THE

PHYSICAL VOLUME SALVAGER
RECONSTRUCTS RECORD AND VTOCE STOCK INFORMATION
RUNS ONLY
RECOVERY

DURING INITIALIZATION, AND

~HEREFORE

DELAYS CRASH

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.

SWEEP PV

Not To Be Reproduced

12-2

F80A

OVERVIEW OF SALVAGERS

DELETES UNUSED VTOC
POINTING TO THEM
G

ENTRIES WHICH

HAVE NO

DIRECTORY ENTRY

Ru~S 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-3

F8QA

DIRECTORY SALVAGER

~

THE DIRECTORY SALVAGER IS USED FOR TWO
CORRECTION AND STORAGE RECLAIMATION

~

DIRECTORY DAMAGE

MAIN

PURPOSES:

DAMAGE

DAMAGE CAN OCCUR IN A DIRECTORY FOR SEVERAL REASONS:

o

DISK I/O ERROR WRITING BAD DATA TO A DIRECTORY SEGMENT
SUPERVISOR BUG
~\J"l" CI\(fI'-(

G(

AS ~

Lh""

(.

.J'.J~

CRASH WITHOUT ESD, WHERE THE DIRECTORY
FULLY WRITTEN TO DISK

ACTUAL'DAMAGE TO DIRECTORIES IS

B

.Q

\ "

C oS

S~51'~~-:-r )'1 f,

WAS UPDATED, BUT NOT

COMPARAT~VELY

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
,fr.." <=:,G'tr-l""""",
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") WI TH A
DI RECTORY LOCKED v s,~ (' 'tI\f> S",.~
ORDINARILY, THERE IS NOTHING WRONG,
CHECKS OVER THE DIRECTORY

AND THE

IF THE DIRECTORY
POSSIBLE

"REPAIRED" AS

Not To Be Reproduced

IS DAMAGED,

12-4

IT IS

SALVAGER JUST

WELL AS

F8D.~

DIRECTORY SALVAGER

J:rs. 0pr,,(>J~1p) ~ I~

n

~

Otll>y f\PPI;'5 jO PY'O (R5SJ; rS. Jlto.ff
• ..II QVp,(It,
UNFORTUNATELY, THE MOST COMMON FORMS OF DAMAGE DESTROY THE
DIRECTORY HEADER SO THAT NO REPAIR IS POSSIBLE, AND THE
DIRECTORY MOST BE REINITIALIZED AS EMPTY
No\
f (I eo (( y ""\ r0L J Of) hi (-or ~(&(t'fJ p{: r5'

STORAGE RECLAlMATION

D DIRECTORY SPACE CANNOT ALWAYS BE EFFICIENTLY RE-USED, AND
UNUSABLE SPACE ACCUMULATES AS ENTRIES ARE CREATED AND DELETED

n 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

n 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

o

IF THE
WELL

Salvager PROCESSES DETECT DAMAGE,

IT IS CORRECTED AS

DEMAND DIRECTORY SALVAGING IS USUALLY ALSO
FOR AND CORRECT "CONNECTION FAILURES"

INSTRUCT~D

TO LOOK

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
D

CONNECTION
FAILURES ARE
USUALLY
SALVAGING (THIS IS AN OPTION)

DELETED

BY

DEMAND

o 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-5

F80A

'-'..,'"

DIRECTORY SALVAGER

DEMAND
DIRECTORY SALVAGING
CAN ALSO BE
USED BY SYSTEM
MAINTENANCE PERSONNEL WHEN THERE APPEAR TO BE DIRECTORY PROBLEMS

Not To Be Reproduced

12-6

F8QA

581IQ\j~\~ - dir~ t ~\j6T tA<$2u0v-. -

B

Qvo"\'~

QrJ

f

QUOTA SALVAGING CORRECTS
QUOTA-USED VALUES

n

Qu;c. L\..

INCONSISTENCIES

IN

THE

HIERARCHY

OF

THESE INCONSISTENCIES ARISE AFTER A CRASH WHERE ESD FAILS:

n 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
FOR >udd>a IS WRITTEN TO
THE VTOCE FOR >udd IS NOT

D

THE VTOCE
OPERATION.

D

THE SYSTEM CRASHES, AND NO ESD IS PERFORMED

DISK

DORING NORMAL

0 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
D

D

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 HIER~RCHY 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-7

F8QA

QUOTA SALVAGING

AN hphcs

ENTRY

IS CALLED TO CORRECT EACH

DIRECTORY, ON THE

~SSUMPTION THAT ALL ITS CHILDREN ARE CONSISTENT

D THE ACTUAL CORRECTION
MECHANISM INVOLVES
MANIPULATION OF VARIOUS LOCKS
REFER TO
Storage System PLM (AN61) FOR A DESCRIPTION
0

Not To Be Reproduced

12-8

COMPLICATED

THE Multics

FBOA

PHYSICAL VOLUME SCAVENGER

=

THIS IS ALSO PRIMARILY USEFUL AFTER A CRASH WITHOUT ESD

D IT REBUILDS THE VOLuME MAP AND VTOC MAP FOR A VOLuME BY
EXAMINING ALL THE VTOCES AND ASTES FOR SEGMENTS ON THE VOLUME

n IT RUNS WHILE THE VOLUME IS IN USE BY USERS, AND NO INTERRUPTION
OF SERVICE OCCURS

n 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

n IT BUILDS A MAP, IN scavenger data, THAT SAYS WHAT VTOCE OWNS
EACH
RECORD
ON THE
VOLUME,
AND THEN
RESOLVES
INCONSISTENCIES BETWEEN THAT AND THE MAP ON DISK
THE DATABASE IS WIRED FOR THE DURATION OF
AND CAN BE QUITE LARGE (64K FOR AN MSUQSQ1)

THE

SCAVENGE,

WHILE A SCAVENGER IS RUNNING, PAGE CONTROL KEEPS
DATABASE UP TO DATE AS IT ALLOCATES AND FREES RECORDS

n FOR

VTOCES, THE PROBLEM IS MUCH SIMPLER:
SCANNED, AND ALL IN-USE VTOCES ARE RECORDED

Not To Be Reproduced

12-9

THE

THE

THE

VTOC IS SIMPLY

F8QA

PHYSICAL VOLUME SCAVENGER

vtoc man ALSO KEEPS THE TABLE
ALLOCATES VTOCES ON THE VOLUME

o

n

UP TO

DATE AS

IT FREES AND

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 ACCES'SES THE VTOC USING vtoc man

It'Sl'tJ-tt~J
o

D

~ef

~S U. ~

C-

THE SCAVENGER TAKES ABOUT FIFTEEN
SYSTEM IS UP WHILE IT DOES SO

MINUTES PER VOLUME,

BUT THE

-zt~ck_V'Dce
/I

I

""'

-'L~C~S'

~("(e""-(,

(o~l'Iea.~h,

(\:7 Cl'~ t "
e Y
{j I I r nov l' 0 (Q .

d;

,? "
~~£"ft£)\)'

~

4l( PvS

j

r

.-

F'bl ( e

L JffelP?
\

Not To Be Reproduced

12-10

~ '.I

f.(~\J,(fS ~

vT"C) C-e

BvY

•

{c:. )\JIJ',s
/I . ,('

5c> ;..-r4v
L
rf

'S~ (0" 7 {J~7:.s

V\b'\ , . . . VcJ/v""rl",B;~
'OF- (e~le".,)

(O""",fl1,of"l
.
no

d; ff r7(l1 y

(. 0.."'\ \) 1f(?.J( '

t?"rr y.

F8QA

PHYSICAL VOLUME SALVAGER

e

THIS DOES THE SAME JOB AS THE SCAVENGER, BUT CAN RUN ONLY WHEN THE
VOLUME IS ONAVAILABLE TO USERS

D BECAUSE IT HAS THE VOLUME ALL TO ITSELF, IT IS MUCH SIMPLER:
D

IT SCANS THE VTOC, BUILDING THE SAME SORT OF DATABASES AS THE
SCAVENGER

D WHEN

FINISHED, IT
MAPS BACK TO DISK

RESOLVES INCONSISTENCIES,

n THE

VOLUME
SALVAGER
salv_abs_seg_NN

o

ACCESSES

THE

AND WRITES THE
VTOC

USING

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, ALL VOLUMES- MOUNTED AT THE TIME "OF
THE CRASH ARE PRESUMED TO B~NCONSISTENT

o 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-11

F80A

SWEEP PV

~

sweep_pv ELIMINATES ORPHAN VTOCES

AN ORPHAN VTOCE IS ONE WHICH APPEARS TO DESCRIBE
SEGMENT, BUT DOES NOT APPEAR IN ANY DIRECTORIES

A VALID

ORPHANS ARE USUA~~Y CREATED BY CRASHES OR DIRECTORY DAMAGE
WHERE THE DIRECTORY COULD NOT BE REPAIRED
ORPHANS ARE
FAILURES"

ALSO

SOMETIMES

sweep_pv WORKS BY INSPECTING
ATTEMPTING TO FIND ITS PARENT

"REVERSE

CALLED

EVERY VTOCE

ON

THERE IS A "UID PATHNAME" IN PART 3 OF ALL
CONTAINS THE UIDS OF ALL ITS PARENT DIRECTORIES

A

CONNECTION

VOLUME, AND

VTOCES WHICH

. BY STARTING FROM THE ROOT, AND SEARCHING EACH DIRECTORY I~
THE PA~H FOR THE UID OF THE NEXT ONE, THE VTOCE CAN BE FOUND
n

IF IT CAN'T
DELETES IT

BE FOUND,

IT

IS AN

ORPHAN,

AND SWEEP PV

IT IS POSSIBLE TO "ADOPT" ORPHANS INTO A DIFFERENT PLACE IN THE
HIERARCHY IF IT IS IMPORTANT TO RECOVER ~HEIR CONTENTS, USING
THE adopt_seg TOOL

THE UID PATHNAME OF A VTOCE CAN BE INTERPRETED MANUALLY BY USING
THE vtoc oathname
TOOL
.

_

Not To Be Reproduced

12-12

(End Of Topic)

:80;'.

TOPIC XIII
The Initializer.SysDaemon Process

Page
Initializer Overview
Services of Initializer ••
e

_

. 13-1
• • 13-3

•

13-i

F8QA

INITIALIZER OVERVIEW

II

FUNCTION

o

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

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

D ANSWERING SERVICE (login and logout)

PROCESS CREATION AND DESTRUCTION

II

o

MESSAGE COORDINATOR (DAEMON COORDINATION)

o

SYSTEM ADMINISTRATION FUNCTIONS

D

SYSTEM ACCOUNTING FUNCTIONS

MAJOR DATA BASES, ALL KEPT IN >sc1

ANSWER TABLE

n ABSENTEE- USER- TA"BLE
DAEMON USER TABLE

-

-

Not To Be Reproduced

13-1

F8QA

INITIALIZER OVERVIEW

MASTER GROUP TABLE (MGT)

o

CHANNEL DEFINITION TABLE (CDT)

D SYSTEM ADMINISTRATION TABLE (SAT)

n

PERSON NAME TABLE (PNT)

PROJECT DEFINITION TABLES (PDT'S)

Not To Be Reproduced

13-2

F80A

SERVICES OF INITIALIZER

~

. THE
Initializer.SysDaemon
PROCESS PERFORMS
VARIOUS SERVICES
NECESSARY FOR THE SUPERVISOR. MANY OF THEM ARE PERFORMED BY ~HE
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

n

SYSTEM INITIALIZATION AND SHUTDOWN

n

THE Initializer PROCESS IS
INITIALIZES THE SUPERVISOR

CREATED FROM THE ENVIRONMENT THAT

o WHEN THE SYSTEM IS SHUT DOWN, THE Initializer COORDINATES THE
ORDERLY
CESSATION
OF
SYSTEM
ACTIVITY
hphcS_$Shutdown TO SHUT DOWN THE SUPERVISOR

AND

CALLS

LOGICAL VOLUME MANAGEMENT

o THE

Initializer PROCESS HANDLES ALL REQUESTS FROM
PROCESSES TO MOUNT AND UNMOUNT PRIVATE LOGICAL VOLUMES

o

IT ALSO MAKES THE NECESSARY CHECKS TO ACCEPT
-THE HIERARCHY OR REMOVE IT FOR DEMOUNTING

USER

A VOLUME INTO

RESOURCE CONTROL

o

THE Initializer DOES ALL THE CONTROL, ASSIGNMENT, AND ACCESS
CHECKING OF RESOURCES (SUCH AS I/O DEVICES) CONTROLLED BY RCP

D PROCESS CREATION AND DESTRUCTION

Not To Be Reproduced

13-3

F8QA

SERVICES OF INITIALIZER

THE Initializer CREATES AND DESTROYS ALL PROCESSES, SCHEDULES
ABSENTEE PROCESSES, AND HANDLES "CONSOLE" I/O FROM DAEMON
PROCESSES

o

AN IMPORTANT SERVICE OF PROCESS MANAGEMENT IS PROCESS DIR
VOLUME MANAGEMENT, IN WHICH THE Initializer PICKS THE LOGICAL
VOLUMES USED FOR PROCESS DIRECTORIES

n THE Initializer ALSO HANDLES

ALL PROCESS ACCOUNTING AND LOAD

CONTROL

COMMUNICATIONS
THE Initializer MANAGES LOADING /
SOFTWARE COMMUNICATIONS MULTIPLEXERS
IT ALSO HANDLES
FOR
PROCESSES
dial_manager_

DUMPING

OF

FNPs

AND

ALLOCATION OF COMMUNICATION CHANNELS, BOTH
LOGGING IN
AND REQUESTS
MADE THROUGn

DYNAMIC RECONFIGURATION
THE Initializer RUNS THE DYNAMIC RECONFIGURATION SOFTWARE,
AND UPDATES THE SYSTEM LOAD LIMITS WrlEN '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

Not Tc Be

Rep=od~ced

13-4
(End Of Topic)

F80A

TOPIC XIV
Metering and Tuning

Page
Meter and Tuning Overview • • • •
Analyzing Performance Problems •
Detailed Problem Analysis . . . .
Output From Metering Commands ••
total time meters • • • • •
interrupt meters •
file system me-ters •
file:system:meters •
device meters.
disk meters . . . . . . .
disk-queue . . • • .
print configuration deck . . • . •
list iols . • • • • : •
traffic control queue • • • .
traffic-control-meters . .
print t~ning pa~ameters.
work class meters • • • • •
respons_meters • • • • •
system_performance_graph • . • • •
meter_gate • • • • • • • .

.. J:4-1
14:3
• 14-6
• • .. .. • • 14-8'
14-8
• • 14-9
• • • • • • . • • • 14-10
• • 14-12
.

. .

.

.

.

. 14-13

• •
"
~ •
· .
.. • • • • • • • • •
·
•
• ..

. .. .

14-i

.

14-14
14-15
14-16
14-18
14-19
14-21
14-23
14-24
• • • • 14-25
· • 14--27
. • 14-29

F8QA

. METER AND TUNING OVERVIEW

~~Q6~~''( ~o ov(~beO-jr

~

lID

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

FUNCTION

D METERING (CONSISTS OF THREE ACTIVITIES)

o ACCUMULATING
DATA:
THIS
SUPERVISOR BY CODE WHICH

IS. PERFORMED

THROUGHOUT

RECORDS THE NUMBER OF TIMES AN EVENT HAPPENS
PARTICULAR PIECE OF CODE IS EXECUTED: AND/OR
D

THE
OR

A

RECORDS THE TIME REQUIRED TO PERFORM A TASK

n SUCH

DATA

IS STORED .IN AREAS

REFERRED TO

AS "METERING

CELLS"
B

EXTRACTING DATA:
THIS IS PERFORMED
COMMANDS WHICH (WHEN INVOKED)
READ AND STORE
CELLS

THE CURRENT

REPORTING THE DATA:- THIS IS
WHICH (WHEN INVOKED)
n

BY

NUMEROUS METERING

VALUES OF

RELEVANT METERING

PERFORMED BY THE METER COMMANDS

COMPARE CURRENT METERING CELL
VALUES

VALUES WITH PREVIOUSLY READ

PERFORM THE APPROPRIATE ARITHMETIC COMPUTATIONS
DATA IN ORDER TO ARRIVE AT THE DESIRED STATISTIC
ARRANGE THE DATA IN A
AND PRINT IT

Not To Be Reproduced

UPON THE

USEFUL FORMAT (A REPORT OR DIAGRAM)

14-1

F8QA

METER AND TUNING OVERVIEW

TUNING

o

~

CHANGING
THE
SYSTEM'S
CONFIGURATION BASED UPON
SYSTEM'S METERS

OPERATING
PARAMETERS
AND/OR
THE DATA AND INSIGHTS FROM THE

MAJOR DATA BASES

n SST HEADER, TC DATA HEADER, ETC.

No: To Be

Rep~oduced

14-2

F80h

ANALYZING PERFORMANCE PROBLEMS

&

MULTICS IS VERY HEAVILY INSTRUMENTED WITH MANY METERING COMMANDS

o

MOST SOLVABLE PERFORMANCE PROBLEMS SHOW UP QUITE DIRECTLY IN THE
METERS

D IF

THE SYSTEM IS TOO SLOW, THERE ARE
FOLLOW TO LOOK FOR WHEN PROBLEM

GOOD RULES

OF THUMB TO

D NO TWO

SYSTEMS ARE IDENTICAL - THE MOST IMPORTANT INFORMATION
YOU HAVE IS HOW THE METERS ARE DIFFERENT 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

z

total time meters - THE FIRST STEP

-

-

total time meters MAY
AREAS:

INDICATE EXCESSIVE TIME

SPENT IN SEVERAL

D 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

F8QA

ANALYZING PERFORMANCE PROBLEMS

SEGMENT FAULTS ~ TOO MANY ALMOST ALWAYS MEAN
POOLS (sst CONFIG CARD) ARE TOO SMALL
LOOK TO file_system_meters (AST
HELP

THAT THE AST

Pool grace time) FOR MORE

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
file_system_meters and system_comm_meters
°0

IT,

THEN

TO

OTHER FAULT - GENERALLY INDICATES TOO MANY CONNECT OR TIMER
RUNOUTS FAULTS, INDICATING EXCESSIVE TRAFFIC CONTROL ACTIVITY
LOOK
TO
THE
TUNING
PARAMETERS
traffic control meters FOR MORE HELP

-

(ptp)

AND

-

n 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 INDICAT~
READJUST WORKCLASSES (work class_meters)

A

NEED TO

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,
AND ZERO IDLE MEANS THERE ARE NO PROCESSES AT ALL

Not To Be ReprOQuced

14-4

F80h

ANALYZING PERFORMANCE PROBLEMS

o

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

FaQA

DETAILED PROBLEM ANALYSIS

~

THE MORE
PROBLEM

DETAILED METERING

DETAILED DESCRIPTIONS
Manual (AN52)

CAN

COMMANDS CAN

BE

BE USED

FOUND IN

THE

TO PIN

Multics Metering

THE DETAILED METERS SHOULD ALSO BE CHECKED IF
OBVIOUS PROBLEM SHOWN BY total time meters

AGAIN, THE REALLY IMPORTANT THING
AGAINST PREVIOUS DATA FOR YOUR SITE

~

IS TO

DOWN A

BE ABLE

THERE

IS NO

TO COMPARE

SOME GOOD PLACES TO LOOK ARE:

interrupt_meters
UNUSUALLY LONG DISK INTERRUPTS
- SEE disk meters

MAY INDICATE LOCKING PROBLEMS

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 MAY INDICATE A BAD FRONT END CHANNEL,
BUT THIS IS RARE

Not To Be ReDroduced

14-6

?80A

DETAILED PROBLEM ANALYSIS

o A SHORT PAGE

LAP TIME MEANS

THAT PAGES ARE

NOT STAYING IN

MEMORY LONG ENOOGH; THA T r S, THERE I S NOT ENOUGH MEMORY

o 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

o 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 FAULT~

o

disk meters
WHEN THE ATB I/O FOR
SERIOUS BOTTLENECK.

A DRIVE

IS'TOO

LOW, THE

DRIVE IS A

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

o THIS USUALLY MEANS THAT WRITE LIMIT IS TOO HIGH

D device meters

o

IF THE SUBSYSTEM BUSY PERCENTAGE IS TOO CLOSE
CHANNEL CAPACITY, IT USUALLY MEANS THAT THERE
PHYSICAL DISK CHANNELS

Not To Be Reproduced

14-7

TO THE DISK
ARE TOO FEW

F80A

OUTPUT FROM METERING COMMANDS
total time meters

~

TOTAL TIME METERS
OVERVIEW OF HOW THE SYSTEM
RESQURCES,-ALSO MEASURED AGAINST NON-IDLE TIME

Total metering time

IS

0:20:36

AVE

%NI
Page Faults
6.55
C7.19l
PC Loop Locks
0 .. 39
~
PC' Queue
0.86
Seg Faults
1.74
Bound Faults
0.15
Interrupts
9.02
Other Fault
8.45
Getwork
4054
t~
TC Loop Locks
Q:-12
0.20
Post Purging
0.36
0.39
MP Idle
0.70
lD.77\
Work Class Idle
0.98
~
Loading Idle
0.16
0.17
NMP Idle
8.84
Zero Idle
0.00
Other Overhead
0.03
Virtual CPU Time 62.53 ~

~~
~

/\)<70

I

f.v'0)

~f)PS
1

3.209
348.946
9579.170
17426.208
1713.504
660.550
247.788
1407.132

~
~ ~'.

I)

rLpl'k A\I~ t~(5rCl.~~tk iDf-T:~.> for {\o:J,oS
{.~r ~ c..!>~ T~ ffo~).: no; \.It, k

.

1) F') (~, (l"t
{So n l~
F .> (,--,
<. L.(,J cl::::..

lh_<. lc

k

~

>-S ~

c~~(1<..

@,<-~Ck.

(7

,j I ~ '? J ~

t7

cI"r:~tc
s

0

14-8

1~'Tl.l(/ v~T

fCRJP'>.

AV£..

(f

h~I\T, Ih~"

V ~ 'So QJ, 'i J~.51(
05

CF \""~I)H,,,f\> 'C~"I\~rJ.

I.~

~ \( t'

1VIfriE..) Tr::.-

"? /'goo

t>1717 I~

~

0-{

\,}.

T J,'X '"

{' (4tJ.5./

-.J

Sf\. ,/ 0

',y

'lOb

~ ~>-::;'?
.$.1;> T

t"T ~YJQ...

F80A

lt1fr

J;S'c-",,",

ChQcfc

/.0 { "" ~o.(\«L/.tcJ\r t='l\.lp
Tf i.'
.
,'.sj ~ 3k"r"}
0 r
J-f \"j")
kJr

r.lp,s'f51t>"I_...... eT~J

""'~I~r)..

t\ h
~ c \r-~ c\~ ~ fJ )d \Q.

~\t \

To Be Reproduced

r/ r.:..

L

1'0\

""~\9(S) C?O).)(0/y \,',

-r-:'(J r--Sy5J:.--

Cjf' 7 "'-61' "

USING ITS

fl\ fH,JC-

\

J

OUTPUT

~

METERING COMMANDS

interrupt meters

B

INTERRUPT METERS - COUNTS & TIMING FOR ALL IIO INTERRUPTS
Total metering time
IOM Ch

Int

A

6.

A
A

10.
13.
14.
16.
17.
18.
20.
21.
22.
23.
24.

11
379
9253
19
26248
128
13097
21041
2881
8486
257
17896
2573
10486
255
2.;717
2319
9915
215
236
6917
3547
13667
22013

A
A
A

A
A
A
A
A
A
A
A

A
A
A
A
...

n

B
B
B

B
B

B
B
B

B
B
B

B
B
B
B
B
B

?-

-:;:).

26.
27.
28 ..
29.
30.
31.
140
..1 ::>.

18.
19.
20.
21.
...
?
4_.

23.
24~

25.
26.
27.
28.
29.
i; J'"\

>o ...... ~\ i... • ,,"> ,,,,-

0

Q\)JL

Writes

269
362
309
547
631
0
5843
366
3501
0
7158

67
2-43
131
165
165
0
2187

214
109
184
180
161
0
122

4508
3350
3925
2217
1922
0
207

18102
4991
9258
7350
7350
0
554

ii6

i53

33i3

i0455

1431
0
2508

200
0
135

346
0
169

847
0
483

14-14

ATB
Reads

0.259
0.000
0 .. 208
0 000

Reads

Not To Be Reproduced

Seek
Distance

\

0.83
OeOO
0.92
a 0 O~O-Yo

ATB
Writes
3609 ~").~
2004
2756
1703
1523

t-.~\' .J
SeC· \S\)51

o

151
2516
245

o

125 -

FBOA

\'Pf'(

,:;vSy

OUTPUT

~

METERING COMMANDS

disk gueue

ONLY ONE SUBSYSTEM SHOWN HERE TO CONSERVE

U

Connects

1359725, 677321, 309367,
123430, 40159, 10227, 1969.

RW VP DV

SECTOR

0
0
0
0
0

W

24
9
16
16
16

1350330
1020150
1204130
314370
314430

P

w P

W P
W

~o'('~

P

~

= 2604781,

P

w P

~

__ ~"'t "-

lVg

MEM

27304000
4432000
36246000
27306000
34166000

----------------------------

ro'tK\

~

•

.,

"

y'Ju~hl>tl/d'

$pe f!:

\

\

"~Ve

r;

1; "'" E'

0-.

~

__ •

r

\tl~ICJ\\

-

I

t.,~"'-"\',"'\\

,

i-or

•

1r tu,S Ie I' /': "- -e •

-~

\oO)lC-.f, \

10-

l L.,...",4": \
l\

\J

\J

I

1-----

(OCj:CrJ

SP

Not To Be Reproduced

V\

14-15

------------

QQ..c..'" a('-m

l"'~

~

\{ fl

(f

S tit; j YJ7"()~

F80A

OUTPUT FROM METERING COMMANDS
print configuration deck

~

PRINT CONFIGURATION DECK
DISPLAYS
>sll>config deck,
WHICH
CONTAINS INFORMATION ABOUT DISK LOCATIONS, THE RLV, AND PARTITIONS

ONLY THE PART OF THE CONFIG DECK RELEVANT
AND DISK CONFIGURATION IS SHOWN HERE

dskb

dskb

root

dska

part
part
part

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

prph
ehnl

dska
dska

a
a

20.
26.

2
2

b

prph
ehnl

askb
dskb

b
b

20.
26.

2
2

a

p:-ph
ehnl

dske
dskc

a
a

28 •.
30.

2
2

b

prph
chnl

dske
dske

b
b

32.
34.

2
2

451.

8.

prph
chnl

dskf
dskf

a
a

32.
34.

2
2

501.

16.

mpe
mpe
mpe
mpe
mpe
mpe

mspa
mspb
mspc
mspd
mspe
mspf

16.

451.
451.
607.
607.
451.
607.

Not To Be Reproduced

a
b

a
b
b

a

20.
20.
28.
28.
32.
32.

25.

451.
16.
24.
2
16.
24.

0

a

4
4
4
4
4

b

14-16

'dskb

b

22.

2

451.
2 a

16.
22.

2

28.

2

501.
32.
30.
2

4

23.

TO VOLUME MANAGEMENT

24.
24.

b

24.

dska

80

4
4

FSO;'.

OUTPUT

~

METERING COMMANDS

print confiquration deck

e

DISK CONFIGURATION CONFIG CARDS

I

ROOT

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

n

PART
IDENTIFIES

TH~

LOCATIONS OF CERTAIN IMPORTANT PARTITIONS

ONLY
PARTITIONS NECESSARY
FO~
IDENTIFIED, NOT ALT PARTITIONS
He PARTITIONS ARE

LOCATE~

0JLTICS

CPERATIONS

ARE

BY THE ROOT ChRD

n . PRPH DSKrr, CHNL
IDENTIFY PHYSICAL I/O CHANNEL PATHS FOR ACCESSING DISK DRIVES

n

MPC

D

IDENTIFY
PHYSICAL
CONTROLLERS

Not To Be Reproduced

CONNECTIONS

14-17

TO

MICROPROGRAMMED

DISK

F8QA

OU7 P U7

~ROM

MET~RING

list

~

~!S7_VOLS
SP~CE

Drive
askc 17
dskc_18
asks - Co:'
csks_06
dSKb_!9
dSkb_26
dSkb_27
dSi-.:.a 01
."

-

cs~s_03

dsk2 OL.
cska - OC!
cSkb_17
dskc ,..
-"'"
oSKc_13
dsi.;.c 1L
oskc 01
dskc C2
cskc_C-3
os,,-, OL
askc no
dskc 1:'
askc 2 1
aSKC 22
dskc ?C
c s·~ ,_3(~

----

----

- rlSPLAYS

Recoros

Left

64504
64501.
36428

54730
55389

36~28

4323
4632
13690
4672
4680

)6428
36429
36429
36308
36265
36268

3f:63

....

('\~

:;,).,

';588
~500

3626E

1.81 f,
4281
3BL.O

64501;

294

);269

TA9LE OF ONLINE

% VTOCEs Left
85

s;
15
12
13
38
13
13
10

.12''''

~

12

11

VO~UMES,

THEIR

LOCATiO~,

ANt

6450L
64504
61;504
f.~504

37089
37562
37309
36209
36209
31283
36208
36209
36350

L.483

Reo~oouced

,0

7
7

45
46
55

i

zcubOl
Z?uoC2
zpub03
zpub04
zpub05
zpub06
1 i stO 1
list02
1 i st03
rootS
root.6
rpv
root3
root4
root2

pb po

48

1

13L.40
13440
13440
13440
5100
2735
4000
7000
7000
9000
7000
7000
7000

.,
~

18
20
22
16
18
11
21
9
13

9
12

C.

10032
9838
9839
5785
1239L

73
92

6
5
6

i 2.4:J7

92

i

6L46
6194
61e5
64fl
6149
6429
6094
6141
7407
7149
3797
957
2107
491
4181
3476

48
46

5

",

4-~

238
223

14-18

pc
pc
pc
pc
ob pc
pb po
cb pd
pb pc

La~

134~0

18

pc

00

18

241 11

37
37

pd
pd

ypw=·06

13~LO

6l;:,2:.

88

pb
pb
cb
pb
pb
pb
co

....

12

645C3
64503
6L;5 J3

58010
SO; 78:
2391.7
237L.4
23794

Alphs
Alpha
Multics Pubs
Multics ~uOS
Multics Pubs
Multics ?ubs
Multics Fu~s
Put: 1 i c
Pub j i c
Pub i i c
PL:Oljc
Pi..!t.l ; C

..;

13~40

64501.
b4504

68
90

~:.JbCl

pb pc
pb pd

;

37

66

~3591

alpha02
mul03
mulO}
mulO2
mulO5
mulO4

LV

=,t
eb
et
pb
CIt
po
=,0
cb

'2.

3--

37

4237~

.,,~,.,-,

-alphaOl

PS/PD

pub07
pub04
pub02
pu b0 5
pubOE
relCl
relC2
xpubOl
xoub02
xpuo03
xpub04
xpub05
xpub06
ypub01
ypubG2
youe05

7

6~503

dskc_23
ds ... c 2L,
cskc_25
dskc_26
Cske - 06
dsks 12
dska_07
dska_08
ds\..s 1 1
dSkd_16
dSKC_23
oskb 2L
dskb_25

5
5
3
3
3
3

6

645~3

ll6f;
9777
11805
11514
12958
8053
6046
6825
3827
8597
2892
4888
3C97

5
11
10
9
11
6

--5

I __
i~

71

13~L.O

28

5
...

39

645('3

645C3

8400
8400
8400
9000 1;50
9200 1017
5200 881.
9200 864
9200 1002
9200 5~~
.,.,~

1.,
1.,

13L.J..O 5214

0

68

1 1 i 23

8~00

81.
84
32
28
33
52

131.40
13440
13L!40
13440
13440
i3L.40
13440
13440
13440

209
43631
45502

6Li503

13440
81.00

11356
11352
2662
2365
2813
4326
2333

41

6~58)

1

134l.C

PV
% Avg
Size Name

t;~~c

0

6L50J..

- ('7

Not To Be

vo~s

UTll:Z~TION

cs~c_OE

CSKC

~

COMMANDS

73

73

i.E
48

53

..

5

7
8
8

74
35
53
7
60
39

22
17
16

7
3
3

i.

4

9
5
L
}.

i C

1i c
1 i::
J..pub1 i c
X.cu~

X~uo

IJ_ .• _ ",
I\~UU I

~

_

I I.

Ypub' i c
Ypub 1 i c
YPi..!O 1 i c
~ :::.ub) i c

DC p::

cb

Puc i

Release
ReleaSE:
Xpub: i c
\pub; i c

p~

pb
pb
po
pb
pb
pb
pb
pb
po
po

Name

pc
pd
pd
pc
pc

Zoub 1 j c
Zout: i:
Zpub 1 i c
Zpub i i c
Zpubl ic
Zpub 1 i c
1 is t 1
i is t 2
1 is t _3
root
foot
root
root

po

~oot

00

root

F 80;',

OUTPUT FROM METERING COMMANDS
traffic control Queue
c

TRAFFIC_CONTROL_QUEUE
DISPLAYS THE
SCHEDULER QUEUES, USEFUL FOR GETTI·NG
PROCESSES ARE DOING

I

CURRENT
AN IDEA

CONTENTS OF THE
WHAT THE USER

O~

FIRST PART OF OUTPUT IS ELIGIBLE QUEUE:

avq = 13, elapsed time = 1247 sec, 64
flags
dpf temax
te
dtu
ts
rWLE (d) 148
0
6946 2097
37
xLED (c)
1111
1000 910 2012
15
rLE (d)
0
500
14
1370
89
rLE (d)
a
500
15
13
823
~JL E (d)
0
500 422
13
634
xWLED (a)
108 1000 495 2054
6
wLE (d)
0
16
864 1000
85
wwl E (t)
1.;68
2734 1000 315 3010
wLE (d)
0
500
60
17
686
wLE (b)
0
12
500
520
50
W'LE (d)
21
0
500
1895
69
xLED (b)

12

·372

500

85

r l E (d)

6i

3279

500

0

Not Te Be Reproduced

0
0

active last 15 sec.
ti
tsse event d
0 -0.001
0 0
0.001
0 0
1897
0 -0.009
0 0
0 -0.009
o0
0
0.018 316537 0
0.010
o0
2004
0.016 50L031 0
510
O.Oi) 22l.~~1 0
8000
0
0.007 165111 0
0
0.005
71 0
0
0.001 177022 0
OeOO;
o0
0
o0
0 -0.006

lL-19

ws we process
6 0 Initializer
11 6 Siber-t
0 4 Diaz
64 8 JCrow
3 3 G! nte 1 j
13 6 8rune 11 e
46 6 'WPeek
4 3 Scratt
...

.;

i.. R.Towle

3 3 Kiess
~

0
0

0

3
3

OPCTL

Pa:;colf
Lackey

F80A

OUTPUT FROM METERING COMMANDS
traffic control Queue

SECOND PART IS REALTIME, INTERACTIVE v AND ALL WORKCLASS QUEUES:

n

REALTIME QUEUE:
INTERACTIVE QUEUE:

=

576 ms.

3 QUEUE: credits
289
5326 1000
131
2513 1000

=

242 ms ..
503
0
4010 8000

WORKCLASS

4 QUEUE: credits

=

2601 ms.

WORKCLASS

5 QUEUE: credits

=

4000 ms.

WORKCLASS

6 QUEUE: credits

=

-563 ms.

WORKCLp.SS

7 QUEUE:

::

:-V:

5

3962 ms.
0

WORKCL~_SS

5 QUEUE: credits

=

3934 ms.

WORKCL.l.SS

9 QUEUE: c:-edits

=

2216 ms.

--

L1r'!nn
... \oIw,,",

::

4000 ms.

WORKCLASS

2 QUEUE: credits

WORKCLASS
r

......

.

......" ..., .....

r.11""'1~V r~
.,...."-'.'\.~

... "-'

c C

WORr~CLASS

Kot

~o

•

"'!

("I

-I,;

credits

166

f"'ITTt:'~T'C'

~"'''''''''oIoJ

•

•

500

,.
... ~M~.e
..... _'-,.,... • • w

11 QUEUE: credits

Be Reproduced

0
0

0

0

0.218
0.128

0 0
0 0

22
0

0.192

0 0

2

3 Dupu:'s
3 Falksenj

7 Saccuci

IDS •

14-20

F80A

OUTPUT

~

METERING COMMANDS

traffic control meters

B

TRAFFIC_CONTROL_METERS - DISPLAY THE STATE OF THE SCHEDULER

o OUTPUT COMES I N THREE PARTS, SHOWN OUT OF ORDER HERE:
.. D QUEUE LENGTHS AND RESPONSE TIME - THESE ARE WEIGHTED AVERAGES

OVER THE LAST FIFTEEN SECONDS.

u ACTIVITIES VERSUS DEPTH - HOW DEEP THE TRAFFIC CONTROLLER HAD
TO SEARCH TO FIND A SCHEDULABLE PROCESS

o

MISCELLANEOUS COUNTERS AND FREQUENCIES OF VARIOUS EVENTS

Total metering time
Ave queue length
Ave eligible
Response time
DEPTH
1

2
3
4
5
6
7
8

0:20:34
16.52
13.31
0.264 sec

%PF

TBPF

%GTW

TBS

1200
11.8
10.8
10.2
9.5
8.4
7.4
30.0

22.8
21.0
24.9
27.9
29.8
33.5
36.3
48.6

10.8
9.2
8.7
8.5
8.3
7.8
7,,3
39.5

11.6
8.1
12.2
7.4
14.1
8.0
15.2
8.4
15.5
8.4
16.5
8.4
16.8
800
16.8 .43.3

Not To Be Reproduced

14-21

%CPU

F8QA

OUTPUT

~

METERING COMMANDS

traffic control meters

COUNTER
Interactions
Loadings
Blocks
Wakeups
Schedulings
Lost priority
Priority boosts
I/O boosts
Wait Page
Wait PTL
Wait Other
Total Waits
Notify Page
Notify PTL
Notify Other
Total Notifies
Get Processor
Pre-empts
Getwork
Retry getwork
Ex"t ran 0 t i fie s
Last EN event
Last NTO event

~

TOTAL

#/INT

ATE

0.,155
7977
12161
0.102
0 .. 088
14082
36078
0.034
12591 "..
0.098
1234.756
1
0".000
0
578
2.136
9.719
127040
75691
16.313
38.693
31912
234643
5.262
9.575
128954
75691
16.313
25330
48.747
229975
5.369
245856
5:022
94235
13.103
338802
3.644
4988
0.248
2949
0.419
000000000071
033022237767

sec
sec
sec
sec
sec
sec
sec
sec
msec
msec
msec
msec
msec
msec
msec
msec
msec
msec
msec
sec
sec

1.525
1.578

15.926
9.489
4.001
29.415

11.813

ALARM CLOCK METERS
DISPLAYS INFORMATION ABOUT THE
TIMER-FACILITY (HARDCORE INTERFACE FOR timer_manager_)

Total metering time
No. alarm clock sims.
Simulation lag
Max. lag

Not To Be Reproduced

USER ALARM

0:20:31
2171
5.245 msecs.
1.7340314e4 msecs.

14-22

FBO~.

OUTPUT FROM METERING COMMANDS
print tuning parameters

B

PRINT TUNING PARAMETERS
PRINT VALUES
PARAMETERS. -MOST CONTROL THE SCHEDULER

FOR

SYSTEM

CONTROL

Current system tuning parameters:
tefirst
telast
timax
priority sched_inc
min eligIble
max-eligible
max:batch_elig
workin9_set_factor
working set addend
deadline mode
int q enabled
post_purge
pre_empt_sample_time
9P_at_notify

0.5 seconds
seconds
8. seconds
80 •.seconds
2.
20.

1~

o

0.5

o

off
.

gp_at_pt~n?t~fy
................ -

" . ,..

UJ.UI..,.C~:;)

...

~

"!I

..........

,

.Llt~'-.Lc:;.~

,.,.., ,,~ """ ~ " ,"'"
'-;Ug'.I..UUI

quit_priority gv_integration
realtime io oriori~Y
realtime-io-deadline
'realtime-io-ouantum
notify.tImeout interval
notify:timeout:severity
write limit

on
cn

0.04 seconds

off
off
2. seconcs

o.

4. seconds

on

o.

seconds
0.005 seconds
30. seconds

o

724

THESE ARE "INTERNAL", NOR~LLY NEVER CHANGED,
IF THE -all CONTROL·ARGUMENT IS GIVEN
stack truncation
stack-truncation always
stk trunc block avg factor
trap_invalid_masked- .
meter ast lockinc
checksum_filemap-

Not To Be Reproduced

14-23

AND ONLY PRINTED

on
off
0.25
off
off
on

F8QA

aUTeur FROM METERING COMMANDS
work class meters
- DISPLAY THE VARIOUS WORKCLASS PARAMETERS. ANJ
SHOW WHAT RESOURCES EACH WORKCLASS is CONSUMING.

WOR~_CLASS_METEP.S

E

Tc-tal metering time

we

%GUAR

%,~AX

c
2

3
4

,
6.,
I

6
S

%TCP V/ELIG Pw

3.
3.
15.

1

i.
32.
14.

20.
12.

44.
4.
2.

16·

8.

3·

7.

L.

8.

9·

6.

.

10

;

:1

L.

0:20:38

4.

O. 12
0.09

0.44
0.49
0.26
0046
0.25

o. 18

0;. •

0.62

o.
2.

1
1
1

RES~

0.26 ,2. 10
0.25 0 •. 75

0.26
0.50

QUANT P

F 0
P 0
p 0

F 0
P 0
p 0
P 0
F 0
p 0
P 0

0.55

o. 16

,CFU percents (%GUAR) control non-re.altime work classes.

-

Not To Be Reproduced

M

14-24

R

LeG

2. 10 P 0 R I len it
1.00 F 0 R I RTime

0.36

o.
...

3

IRESP IQUANT

System SysAdm OPR FE:
SysProg SysDev
SEngr
I HEngr
MktUS MktFo:", MK::':'
DS-C:
OffA~to

,..: i sc /"',f ~

I C':her
Soecial

I

OUTPUT FROM METERING COMMANDS
respons meters

RESPONSE_METERS - DISPLAYS RESPONSE
INTERACTIONS ON A PER-WORKCLASS BASIS

~

TIME,

BASED

ON

TERMINAL

9

Total metering time
WC

---Thinks/----Queues--# Avg

0

86
92

.., ...

2.70
0.15

):;)

11 • 78

39

0.21

593 14·90
612 0.15

0:20:36
----Response Times by VCPU Range--:-VCPU RangeAvg
Resp
# Avg
From
To
Int VCPU
RT
Fac:1:

0.00 0.50
0·50 1.00
1.00 10.00
0.00
0.50

0·50
1.00

0.00

C.50

0·50

1.00

1.00

10.00

113 0.04 0.42 9.34
3 0·55 5·51 10.00
3 2.43 14.96 6. 15
119 0.12 0.91 7.76
34 O. 11
2 0.83
36 o. 15
620
28
39

2496
2622

6.38

o. 17

0.50
1.00
LOO 10.00
10000 99.99
0.00

0050

----4

581 15.82

5

~ot

0.00

0.50

0.26

0·50 1.0C
1.00 10.00

133 29·51
141 o. 17

0.00 0.50
0·50 1.00
1.00 10.00
10.00 99.99

590

To Be

Reprodu~eo

8.74
4.87

0.49 10.50
3.61 5. 10
8.39 4.74
,
0·".

2993 0.08 0.66
117 0.68 4.22
66 2.46 13.47
10 56.85 99.99
3186 0.33 1.65

7.96
6.16
5.49
3.33
4.96

r,
¥

~

...

iI

~

0

v I

Init

RTime

7.55

, n.,

LO:
uv j

3

0.05
0.71
1. 77

0.96
4.06
1. 13

Load Control Group

System

.,.,

SysProg 5ysOev

0.05 0.71 i2.94
0.64 4.64 i.30
8 3.47 32.07 9.24
684 O. 11 1. 15 10.88

SEngr

148 0.06 0.83 12.95
3 0.69 4.64 6.70
5 3. 15 10.24 3.25
2 26.69 48.84 1.83
158 0.51 1.81 3.55

HEngr

663

13

14-25

SysAd~

CPR FED

OUTPUT FROM METERING COMMANDS
resoons meters
6

1180 11.65
1211 0.58

0.00 0.50
0.50 1.00
1.00 10.,00

----i

-c;o
L,.,." 14.65
287 0.98

cso _ _ _ _ _

DeDO

0050
0.50 1.00
1.00 10000
10.00 99.99

----- -----

8

73

c..;

~

"1

... 1.,:

.....
~

1

79

----- -----

1
82

0.00 0.50
0.50 1.00
:'.00 10.CO

80
11
13

94 41.91
96
0.30

7 99.99
8 0.21
417
420

~

-,

0.50
1.00
1.00 10.00
0.00
C;f\
v .....
\,.:

("

-----

,:t.ll

5954
6192

~1.13

0.2S

-----

0.00 0.50
0.50 1.00
1. :1 C 10.00
!iii
99.99
.. r,
v.vu
~

----- -----

Off Auto

Othe:-

.-

0.11 1.45 13.82
3.88 39.1: 10.09
0-.45 4.88 10.89

445
5
4
454

0.03 0.50 15.32
0.57
3.61 6.29
1.65 1-1.40 6.90
0.05 0.63 11.93

S:;:>ecial

10
1

0.16

0.31 5.45
6 .. 40 10.62
6.73 2.10
0.54 4.94

DS-CC

Mise Mig

0.00 0.50
1.00 10.00

""

0 .. 06
0.60
3.20
0.11

MktUS MktFor MktE=

0.11 1.23 11.07
0.69 4.74 6.91
2.99 12.82 4.30
0.53 3.(;5 5.74

10~

. .., • ,' ..

.L

2

----- -----

----- -----

0.05 1.13 20.91
0.64 4.95 7.74
1.89 11.88 6.29
0010 1.39 14 .. 38

292
O.OB 1.53 20.17
9 0.71
9.03 1-2.66
17 2.04 14.76 7.24
1 12.22 99.99 9.45
319 0.24 2.81 11.86

0.00 0.50
0.50 1.00
1.00 10.00

2.69
0.05

7~

977
24
16
1017

"i .,

6454
211
173

C.07 0.77 11.40
0.68 4.54
6.70
2.31 13.:1 5.68
., 48.77 99.9~ 3.32
-,j
6857
0.24 1.51 6.39

-

86797 calls to meter _response_ time
283 invalid transitions.
Overhead =
0.09% (
0.052 ms./eall)

14-26

F80A

OUTPUT

~

METERING COMMANDS

system oerformance graph

SPb

SYSTEM PERFORMANCE GRAPH
GIVES
ACTIVITY, SAMPLED PERIODICALLY

OF

SYSTEM

04/0
1114.3 est Sat
up= 04/01/83 0 55.6 est, sys hours= 26.3,
hours= 78.9
cpu= 3, pag s= 3419, min e= 3, max e= 6, wsa= 0, wsf= 0.50,
tefirst= 0 13, telast= -0.50, timax= 2.
y.
DV
1115.00 Qe~
*******I**+******I******m't
1116.00 Qe
.**** *********I**+******I**iiits
~ S DV
D V
1117~OO Q*e*******I***iittPPi
+.
yl
D V
1118.00 Q*e*******I*******iittps+. Y I
DV
1119.00 Qe********I*********I***+*iit IY
DV
1120.00 Qe********I*********I***+**it IY
D V
1121.01 Q*e*******I******iitpp +Y
I
s DV
1122.00 Qe********I*********I****+iitpIY
s DV
1123.00 Qe********I*********I**mi+ts y
DV
1124.00 Q*e*******I*********I*iii+ps
\Y
-1125.00 Q*e*******I**********miii+tps lY
• D V
• D V
1126.00 Q*e*******I****iiiitltps+. Y I
D V
1127.00 Q*e*******I********* *ii+tp Yl
1128.00 Q*e*******I********* ***+*iiittp
Y
I
D V
1129;00 Qe *******1********* ***l'*****'****iitt P'Y
DV
1130.00 Qe *******1********* ********I**iiittp IY
DV
1131.00 Qe *******1********* *** !*****I****iiittl Y
DV
1132.00 Qe********l********* *** *****I****iiit IY
DV
1133.00 rQ********I********* ** *****I*iiitts Y
DV
1134.00 Qe********I********* ** ******I***iitp Y
DV
1135.00 Qe
I ******* ** ******I********iit Y.
D V
1136.00 Qe********I********* *** ******iiitts yl
D V
1137.00 rQ********I********* *** *****I****iittsIY
DV .....--- \)\)\k store
1138.01 Qe********I********* *** *****iiiitp
Y
1139. 00 ~:~~;\!*~Jo~:~******* I *** +****~ i i tps
Y
S DV?' /""~C(f 'frO
1140.0

tQ***w****I*~*******I***~*****iiittPP

'\~}ro",.>~

~(,4t1="t.

"

... Q

~,.'-.

i:.e>,,1<.t _f1"e·>

O<..\,;,\~
5". . .~ ,,( .......~

~('

l""~I\"'"'~

Not To Be Reproduced

+-

~ ~

~~

I b6..~
v ......'\:$

14-27

v5v~\\~
\L,~

~

Sc..v-..Q

y

V
J
lDi$~ Y{o !1~;1r ~r~(

• D

<

. . . . ~c;.sul'e~
'fl~~'\~P\

FaOA

)'0

OUTPUT FROM METERING COMMANDS

system performance graph

SOME CHARACTERS INDICATES PERCENTAGES OF SYSTEM TIME SPENT IN
VARIOUS ACTIVITIES. OTHERS INDICATE ACTUAL VALUES

o

PERCENTAGES

o

BLANK - USER PROCESSING. RING ZERO TIME BETWEEN "y" AND
THE RIGHT MARGIN, USER RING BETWEEN "5" and "y"

o

SYSTEM SERVICES - SEGMENT FAULTS ("5"), PAGE FAULTS ("p"),
TRAFF I C CONTROL (" t " ), INTERRUPTS (" i " )
.

n

IDLE TIME - MP IDLE
(BLANKS ON THE 'LEFT)

("m"), NMP

IDLE ("*"),

ZERO IDLE

OTHER VALUES (RELATIVE TO .THE LEFT MARGIN)
TRAFFIC CONTROL QUEUE
ELIGIBLE QUEUE ("e")

LENGTHS

READY

QUEUE

("q"),

USER COUNTS - NUMBER OF USERS ("+"), LOAD UNITS ("-")
TRAFFIC CONTROL VALUES - RESPONSE TIME ("r"), QUITS PER
MI NUTE (" Q" ), SCHEDULI NGS I N TEN SECOl\TDS (" S" )

n

OTHER VALUES .(RELATIVE TO THE

RIGHT

~_21~RG!!'n

I/O TRAFFIC - DISK I/O PER 100 MILLISECONDS
I/O PER 10'0 MILLISECONDS ("V")

Not To Be Reproduced

14-28

("D"), VTOC

F80A

OUTPUT FROM METERING COMMANDS
meter gate

I)

METER GATE
(HCS_:- ETC.)

SHOWS TIME

SPENT

CALLING THROUGH

SUPERVISOR GATES

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.
call s

pcnt

902768
13857
442912
435510
165154
120204
20620
60796
45464
337615

4·50

2.29
1. 19
1.01
0·97
0.83
0.51
0·50
0.45

532081

0.35

4085
42080
59354
103029
61851
48621
31637
150703
67267
14851

0.35
0·33
0·32

21051

30337
6288
247420
14024
476759
13601
14860
13496
28194
23725
1416
13941
28696
13598

0.40

0.32
0·32
0·31
0.26
0.26
0.20
0.20

o. 18

avg

pwait

7 . 11

0.02
2.28
0.01
0.02

236.01
3·85
3·30
8·35,
9·84
34·95
11.69

14.25
1.69
0·95
122·90
11.17
7.76
4.44
7·33
9.05
11.64
2.41
4. 19
18.77

O. 11

12.48
8.25
39·36
0·95
15·99
0.47
13·69
12.0,
13·22
6. 15
6.65
108.00

0.10

10.68

0.18

o. 17
0.16

0.16
C.16
o. 13

o. 13
o. 13
o. 12
O. 11

0.10

~.03

0.09

9·76

Not To Be Reproduced

entry name

0.02

tty_write
list_dir
tty_read
tty_order
initiate
make_ptr
make_seg
truncate_seg
status_long
set_alarm_timer
read_events
star_di,r _1 ist_
list_acl

0.01

status_for_back~p

0.03
0.03
0·35
0.04
0.03
0.03

tty_get_l i ne
tty_write_whole_string
status_minf
set_max_length_seg
terminate_nor.arne
tty _read-_echoed
quota_get
get I ink_target
initiate_count
delentry_seg
wakeup
status_
level_set
dir_quota_read
list_dir_3cl
get_max_length
make_entry
set_bc_seg
star_
get_access_class
status_mins
J is t_ i nac l_a 1 i

0.10

0.76
0.48
0.14
0.16

0.01
0.00

3·57

0.08
,0·72
0.40
0.25
0.03

0.43
0.00

0.00
0.02
0.01
0.41
0.09
2.08
0.40
0.04
O.e2

1~-29

FgOA

OUTPUT FROM METERING COMMANDS

meter gate

12881
0.08
46180
0.08
206 , 0 .. 07
1109005
0.07

No~

8e50
2.33
493 .. 77
0.09

To Be Reproduced

0.39
0.01
3 .. 79

0.00

get user effmode
tty-read-with mark
star list
~
level get-

OUTPUT FROM METERING COMMANDS
meter gate

I

HPHCS_ AND iOi_ ARE
SIGNIFICANT RESOURCES

iHE OTHER

SUPERVISOR GAi£S

THAT CONSUME

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_:
hr. 29 min. 51 sec. or

o

call s

pcnt

avg

869
911
5944
8326
5946
105

0·57

928.77
381.04
48·34
8.47
11. 31

246
1753

208.83
16.94
0.02
4. 12
0.01
0.60
0.01 14598.71

5595
31893
1·

0.24
0.20

0.05
0.05
0.04

500.68

O.O~

0.02

total calls·= 70604.
1.256% spent in cails through gate.
pwait'

entry name

5.40

destroy_process_finish
create_proc
1.04 dir_quota_read
0.04 tty_write_force
0.00 quota_read
0.00 flush_core
o. 17 flush_ast_pool
0.76 star
0.00 set_backup_dump_time
0.00 set_kst_attributes
8.00· ado_seu

15.09

.

"-Ietering since 04/01/83 0855.6 est· Fr'i.
Total non-idle time at 04/02/83 1103.0 est Sat = 39 hr. 38 min. 22 sec.

Gate meters for ioi_:
hr. 12 min. 14 sec. or

o

ca 115

pcnt

avg

pwait

243976

0·50
0.01

2.94
65.91
0.58
0.54
0.59
0.55
4.38
0.65

0.00

248

No~

total calls = 245985.
0.515% spent in calls through gate.

793

0.00

533
322
105

0.00
0.00
0.00

3
5

0.00
0.00

To Be Reproduced

2.09
0.00
0.00

0.14
0.00

0.00
0.00

entry name
connect
workspace
get_special_status
set_event
set_status
timeout
set_channe1_required
get_detai 1ed_statu5

lL-31
(E no Of Too i c)

F80A

TOPIC XV
Eyolution of Memory Addressing/Management

Page
Conventional Memory.
Structure.
Address Formation.
Characteristics.
Problems
Single Virtual Memory.
Structure.
Address Formation.
Characteristics.
Solved Problems.
Problems
Multiple Virtual Memories.
Structure.
Address Formation.
Characteristics.
Solved Problems.
Problems
Multics Virtual Memory
Structure.
Address Formation.
Characteristics.
Solved Problems.
Problems

15-1
15-1
15-1
15-1
15-4
15-7
15-7
15-7
15-7
15-9
15-10
15-11
15-11
15-11
15-11
15-13
15-14
15-15
.,.. .,..
.J.O-.J.O

15-15
15-15
15-17
15-19

15-i

F8QA

CONVENTIONAL MEMORY
STRUCTURE

B

i-DIMENSIONAL ADDRESS SPACE USED BY THE SYSTEM

Not To Be Reproduced

15-1

F80A

CONVENTIONAL MEMORY
CHARACTERISTICS

z

SPACE DIVIDED INTO
PROCESS/JOB/USER

z

REGIONS ARE:

REGIONS

OF

VARIOUS

SIZES,

ONE

o

PROTECTED FROM ONE ANOTHER BY A BAR OR BY PROTECT KEYS

o

SUBDIVIDED INTO
BUFFERS, MEMORY
VARIABLES

REGION PER

POOLS OF STORAGE USED FOR:
PROGRAMS, I/O
ALLOCATION AREA, AUTOMATIC VARIABLES, STATIC

z

l-DIMENSIONAL ADDRESS SPACE WIRED DIRECTLY ONTO REAL MEMORY

z

PROGRAMS MUST BE LOADED INTO REAL MEMORY

MEMORY ALLOCATION FOR REGION

PROGRAMS AND BUFFERS ALLOCATED WITHIN REGION

n PREPARATORY ADDRESS MODIFICATION (ADDRESSES

MUST BE MODIFIED TO

REFLECT LOCATION WITHIN THE REGION)

Not To Be Reproduced

15-2

F80A

CONVENTIONAL MEMORY
CHARACTERISTICS

•

LINKAGE EDITING REQUIRED

D

•

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

EXAMPLES:

GeOS, IBM'OSjMFT, IBM OSjMVT

Not To Be Reproduced

15-3

F80A

CONVENTIONAL MEMORY
PROBLEMS

z

SYSTEM ADDRESS SPACE LIMITED TO SIZE OF REAL MEMORY

z

USER ADDRESS SPACES (REGIONS) ARE SMALL.

THIS MEANS:

o

PROGRAMS MUST BE WRITTEN TO FIT INTO SMALL REGIONS

o

SMALL REGION PROGRAMS
USE OF CPU TIME THAN
REGION

D

BECAUSE SMALL REGION OPERATION IS PROGRAMMED IN, SUCH PROGRAMS
CANNOT TAKE ADVANTAGE OF MORE MEMORY WHEN IT CAN BE MADE
AVAILABLE

OFTEN OPERATE LESS EFFICIENTLY IN THEIR
A SIMILAR PROGRAM DESIGNED FOR A LARGE

PROGRAMMER MUST WASTE INGENUITY (AND SYSTEM
PROGRAMS RUN IN A SMALL REGION:

RESOURCES) TO MAKE

WRITING OVERLAY PROGRAMS
DIVIDING REGION INTO OPTIONAL-SIZE POOLS

o

PROGRAMMING MECHANISMS TO EXTEND
OVERFLOW

OR SWAP-OUT POOLS WHEN THEY

PROGRAMMER TIME WASTED WHEN PROGRAMS MUST BE CONVERTED TO TAKE
ADVANTAGE OF LARGER REGIONS WHEN CONFIGURATION IS INCREASED

Not To Be Reproduced

15-4

F8QA

CONVENTIONAL MEMORY
PROBLEMS

B

B

REAL MEMORY IS OSED INEFFICIENTLY

o

WITHIN A REGION, PROGRAM COMPONENTS OR DATA AREAS NOT REFERENCED
STILL OCCUpy REAL MEMORY

o

UNUSED SPACE BETWEEN REGIONS WASTES REAL MEMORY (FRAGMENTATION)

SCHEMES FOR USING REAL MEMORY MORE EFFICIENTLY ARE COSTLY

CPO COST OF MOVING REGIONS TO REDUCE FRAGMENTATION

CPU AND I/O COSTS TO SWAP
MEMORY AMONG MORE USERS

B

OUT ENTIRE

REGIONS TO

SHARE REAL

NO PROTECTION OF DATA WITHIN A REGION

n PROGRAMMING

ERRORS CAN

CAUSE UNWANTED WRITING

INTO PROGRAM OR

DATA AREAS

Not To Be Reproduced

15-5

FaOA

CONVENTIONAL MEMORY
PROBLEMS

~

OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING

o

NO SHARING OF PROGRAMS AND DATA BETWEEN REGIONS

n

EACH REGION MUST CONTAIN A COpy OF SHARED DATA (INEFFICIENT USE
OF MEMORY)

MODIFICATIONS TO
COPIES

~

SHARED DATA CANNOT EASILY

BE REFLECTED IN ALL

PHYSICAL INPUT/OUTPUT OPERATIONS ON DISK FILES OFTEN BECOME THE
RESPONSIBILITY OF THE PROGRAMMER (REDUCING PRODUCTIVITY)

Not To Be Reproduced

15-6

F80A

SINGLE VIRTUAL MEMORY
STRUCTURE

B

A LARGE ADDRESS SPACE USED BY THE SYSTEM (EG, 4M WORDS)

B

THE ADDRESS SPACE IS LOGICALLY DIVIDED
SIZES, AS IN CONVENTIONAL MEMORY

B

THE VIRTUAL MEMORY IS PHYSICALLY
SIZE

o

THE ADDRESS SPACE AND THE VIRTUAL MEMORY HAVE THE SAME SIZE

B

THE i-DIMENSIONAL ADDRESS SPACE IS
i-DIMENSIONAL VIRTUAL MEMORY

B

THE VIRTUAL MEMORY IS MAPPED BY A PAGING
(EG, 256K WORDS) REAL MEMORY

B

PROGRAMS MUST BE LOADED INTO
MEMORY SYSTEMS

Not To Be Reproduced

INTO REGIONS

OF VARIOUS

DIVIDED INTO PAGES HAVING A FIXED

~PPED

DIRECTLY ONTO THE PAGED,

ALGORITHM ONTO A SMALLER

THE VIRTUAL MEMORY AS IN CONVENTIONAL

15-7

FaQA

SINGLE VIRTUAL MEMORY
CHARACTERISTICS

B

LINKAGE EDITING REQUIRED AS IN CONVENTIONAL MEMORY SYSTEMS

~

EXAMPLES:

IBM OS/VS-l OR OS/VS-2 RELEASE 1

Not To Be Reproduced

15-8

F80A

SINGLE VIRTUAL MEMORY
~D

B

THE SYSTEM'S ADDRESS SPACE IS MUCH LARGER THAN REAL MEMORY

o

B

B

THE SYSTEM CAN RUN MORE AND/OR LARGER USER REGIONS

THE USER REGIONS CAN BE LARGER

n

B

PROBLEMS

PROGRAMS CAN BE WRITTEN FOR A LARGE REGION TO TAKE ADVANTAGE OF
ADDITIONAL MEMORY WHEN IT IS AVAILABLE

PROGRAMMER PRODUCTIVITY IMPROVES

o

PROGRAMMERS WORRY LESS ABOUT OPTIMIZING MEMORY USAGE

o

CONVERTING PROGRAMS TO USE LARGER
UNNECESSARY - LESS COMPETITION

MEMORY CONFIGURATIONS OFTEN

REAL MEMORY USED MORE EFFICIENTLY

D FEWER UNREFERENCED AREAS OF ADDRESS SPACE OCCUpy REAL MEMORY

o

PAGING ALGORITHM SIMPLIFIES MEMORY MANAGEMENT SCHEMES

Not To Be Reproduced

15-9

F8QA

SINGLE VIRTUAL MEMORY
PROBLEMS

~

MEMORY SWAPPING MAY
AMONG MANY USERS

~

USER REGIONS STILL TOO SMALL TO HANDLE
MEMORY MANAGEMENT STILL REQUIRED

z

NO PROTECTION OF DATA WITHIN A REGION

~

OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING

~

NO SHARING OF DATA BETWEEN REGIONS

~

EXPLICIT DISK I/O STILL REQUIRED TO ACCESS FILES

~

THE ADVANTAGES OF SOLVING THE PROBLEMS ABOVE MAY BE OUTWEIGHED BY
COSTS IN HARDWARE AND SOFTWARE OF THE PAGING OVERHEAD

Not To Be Reproduced

STILL BE NECESSARY TO SHARE

15-10

THE ADDRESS SPACE

EVERY APPLICATION.

SOME

FBOA

MULTIPLE VIRTUAL MEMORIES
STRUCTURE

B

THE SYSTEM USES MANY LARGE (4M WORD), l-DlMENSIONAL ADDRESS SPACES,
ONE PER USER REGION

B

EACH ADDRESS SPACE CONTAINS THE SUPERVISOR PROGRAMS PLUS ON~ LARGE
USER REGION (DIVIDED INTO POOLS), PLUS PROGRAMS AND DATA SHARED
AMONG ALL REGIONS

B

EACH ADDRESS SPACE
MEMORY

B

EACH VIRTUAL MEMORY IS MAPPED
SINGLE, SMALLER REAL MEMORY

B

PROGRAMS MUST BE LOADED INTO
MEMORY SYSTEMS

B

LINKAGE EDITING REQUIRED AS IN CONVENTIONAL MEMORY SYSTEMS

Not To Be Reproduced

IS MAPPED DIRECTLY ONTO ITS

BY

A PAGING

OWN, PAGED VIRTUAL

ALGORITHM

ONTO THE

THE VIRTUAL MEMORY AS IN CONVENTIONAL

15-11

F8QA

MULTIPLE VIRTUAL MEMORIES
CHARACTERISTICS

o

EXAMPLES:

IBM OSjVS-2 RELEASE 2 (MVS)

Not To Be Reproduced

15-12

FBOA

MULTIPLE VIRTUAL MEMORIES
SOLVED PROBLEMS

•

THE LARGE USER REGIONS CAN HANDLE ALL BUT THE LARGEST PROGRAMS
WITHOUT SPECIALMEMORY MANAGEMENT = PROGRAMMER MUST STILL DIVIDE
REGIONS INTO POOLS, HOWEVER, AND SOMETIMES PROVIDE POOL OVERFLOW
MECHANISMS

B

MEMORY SWAPPING IS NOW UNNECESSARY. PREVIOUSLY SWAPPED REGIONS NOW
OCCUpy THEIR OWN ADDRESS SPACES AND ARE PAGED IN AND OUT

B

PROGRAMS AND DATA (USUALLY READ-ONLY) CAN BE SHARED BETWEEN REGIONS
IN A LIMITED WAY BY OCCUPYING THE SAME POOL IN EVERY ADDRESS SPACE

B

NEWLY SOLVED PROBLEMS MAKE PAGING OVERHEAD MORE WORTHWHILE

Not To Be Reproduced

15-13

F80A

MULTIPLE VIRTUAL MEMORIES
PROBLEMS

~

NO PROTECTION OF DATA WITHIN THE MAJORITY OF A USER'S ADDRESS SPACE
(REGION)

~

OVERHEAD AND INCONVENIENCE OF LOADING AND LINKAGE EDITING

~

GENERAL SHARING OF READ-WRITE DATA STILL NOT POSSIBLE

z

EXPLICIT DISK I/O STILL REQUIRED TO ACCESS FILES

Not To Be Reprociuced

15-14

F80A

MULTICS VIRTUAL MEMORY
STRUCTURE

B

THE SYSTEM USES MANY, VERY LARGE (EG, 256M WORDS), 2-DlMENSIONAL
ADDRESS SPACES, ONE PER OSER PROCESS (REGION)

B

EACH ADDRESS SPACE IS DIVIDED INTO SEGMENTS WHICH PERFORM THE SAME
FUNCTION AS POOLS IN MULTIPLE VIRTUAL MEMORY SYSTEMS

B

SEGMENTS:

n HAVE VARYING SIZES

8 ARE EXTENDABLE

FILES IN THE MULTICS STORAGE SYSTEM

n

~RE

D

ARE ACCESSED AS READ-WRITE, READ-ONLY, EXECUTABLE OR CALLABLE
DATA, WITH ACCESS CONTROLLED BY AN ACL, RING BRACKETS AND AN AIM
CLASSIFICATION

o ARE SHARED AMONG ADDRESS SPACES,

WITH EACH ADDRESS SPACE HAVING
ITS OWN PERMISSION TO ACCESS THE SEGMENT

Not To Be Reproduced

15-15

F8QA

MULTICS VIRTUAL MEMORY
CHARACTERISTICS

~

EACH ADDRESS SPACE INTERSECTS IN VARYING
ADDRESS SPACE

~

EACH ADDRESS SPACE IS MAPPED DIRECTLY ONTO ITS OWN PAGED, SEGMENTED
VIRTUAL MEMORY OF THE SAME SIZE

8

EACH VIRTUAL MEMORY IS MAPPED
SINGLE, SMALLER REAL MEMORY

8

NO LOADING IS REQUIRED
OFFSETS WITHIN SEGMENTS

8

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

SINCE

BY

DEGREES WITH EVERY OTHER

A PAGING

ALL ADDRESSES

i5-i6

ALGORITHM

ARE

ONTO THE

INTERPRETED AS

F8QA

MULTICS VIRTUAL MEMORY
SOLVED PROBLEMS

B

~

DATA WITHIN THE ADDRESS SPACE PROTECTED

•

o

READ OR READ-EXECUTE DATA STORED
PROTECTED FROM MODIFICATION

B

PROGRAMMING ERRORS REFERENCING OUTSIDE
REFERENCE DATA IN ANOTHER SEGMENT

IN SEPARATE SEGMENTS WHICH ARE

ARRAY

BOUNDS

CANNOT

DATA CAN BE SHARED IN A GENERAL WAY BETWEEN ADDRESS SPACES

n EACH SEGMENT (NOT

A COPY OF THE SEGMENT)

CAN APPEAR IN SEVERAL

ADDRESS-SPACES

D

~

DIFFERENT PROCESSES CAN HAVE
SEGMENT IN THEIR ADDRESS SPACE

DIFFERENT

OVERHEAD AND INCONVENIENCE OF LOADING
ADDRESS FOR~ATION SCHEME (HAP~WARE)

n

UNREFERENCED PROGRAMS (AND/OR PAGES
MAIN MEMORY SPACE

Not To Be Reproduced

15-17

ACCESS

TO

THE SAME

(SOFTWARE) REPLACED

BY AN

OF PROGRAMS) DO NOT REQUIRE

F8QA

MULTICS VIRTUAL MEMORY
SOLVED PROBLEMS

PROGRAMS NEVER REQUIRE PREPARATORY ADDRESS MODIFICATION

EXPLICIT I/O IS NOT REQUIRED TO ACCESS FILES (SEGMENTS)'

~

o

D
~

SEGMENTS CAN BE ACCESSED BY MAKING
SPACE AND REFERENCING THE SEGMENT

THEM KNOWN

TO THE ADDRESS

n THIS IS CALLED VIRTUAL FILE I/O

~

OVERHEAD AND
LINKING

INCONVENIENCE OF LINKAGE EDITING

REPLACED BY DYNAMIC

UNREFERENCED PROGRAMS DO NOT REQUIRE LINKING

~

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-18

F80A

MULTICS VIRTUAL MEMORY
PROBLEMS

•

MULTICS FILE I/O IS OFTEN LESS EFFICIENT THEN SPECIAL CASED METHODS
BASED ON KNOWN ACCESS PATTERNS

•

THE SYSTEM'S SEGMENT SIZE DOES NOT GENERALIZE UPWARD TO HANDLE VERY
LAR~E DATA BASES.
ALTERNATE (KLUDGY) METHODS MUST BE USED (SUCH AS
MSF'S)

•

THE OVERHEAD TO TOUCH A PAGE OF ONE HUNDRED DIFFERENT SEGMENTS IS
CONSIDERABLY MORE THAN THE OVERHEAD TO TOUCH ONE HUNDRED PAGES OFTHE SAME SEGMENT.
(IE:
SPARSE AND INFREQUENT ACCESSING IS
EXPENSIVE)

B

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
SUCH RELIABILITY

Not To Be Reproduced

MAY

BE USED

BY THOSE

15-19

(End Of Topic)

APPLICATIONS REQUIRING

FaQA

Mas s a c h u s e t

n s

t s

n f o r mat

o n

t ute

o f

T e c h n

Pro c e s s

n 9

C e n t e r

t

Prtntout of the
of

0

log y

59 Entrtes

the

libraries
Include .••• hard.source
Which Match the Search Names
add_type.tncl.pl1. alm_template.tncl.pll, apte.lncl.pll, aste. tncl.plt. bos_dump. tncl.plt. cmp.lncl.plt, dbm.lncl.pll.
dtr _scI. Incl .plt. dlr _allocat ton_area. Incl.plt. dlr _entry. Inc:l.plt. dlr _header. Incl .pl'. dlr _ht. Incl .pll.
dlr _1 Ink. Incl.pll. dlr _name. tncl.plt. dlrlockt.lncl.pl', disk_pack. Incl.pll, dskdcl. Incl.pl t, ect_structures.lncl.pl',
event_wa tt_l 1st. Incl. pIt, faul t_vector. Incl. pll, fgbx. Incl .pl I, fs_dev_ types. Incl .pl', fs_types. Incl. pI 1 ,
f s_vo 1_ 'abe 1 . Inc 1 . pI 1, hc_l ock. 1nc I . P 11. It t _ ent ry . Inc 1 . p 11, k!l t . I nc I . P I I,

lock_array. t nc 1 . P 1"

1 vt . I nc I . P 11 ,

mc.lncl.plt, nUl1_addresses.lncl.pl', ptw.168.lncl.pl', pv_holdt.lncl.pll, pvt.lncl.plt, pvte.lncl.pll, rnt.lncl.plt.
scavenger_data. Incl. pl', SCS.lncl.pll, sdw. 168. Incl .plt, sdw_ tnfo" tncl .pll, s tgna 11er _stack. tncl .plt. sl t. Incl. pI t,
s 1 teo tncl .plt. sst. tncl . pIt, sstnt. tncl. pIt. stack_O_data. tncl. pI t , stack_frame. tncl .pll, stack_header. Incl. pI 1 ,
s tock_seg. tncl . pIt. str. Incl .pll. tern. tncl .pll. vol_map. tncl . p'l t, vtoc_buffer. Incl. pI t, vtoc_header. Incl. pl1.
vtoc_map.lnc1.pl1, vtoce.tnc1.pll. pds.cds, prds.cds. tc_data.cds

F80A - Not to be reproduced

Printed on:

04/01/83

0031.0

Printed by:

Stbert.Multlcs.a

Descriptor:

multics_ltbrartes_

APPENDIX

A

Hardcore Include Files

add_type.incl.pl1
aim template.incl.pl1
apte. incl .pl1
aste. incl .pl1
bos dump.incl.pl1
cmp~incl.pl1 . . .
dbm.incl.pl1 . . •
d 1 r ac 1 • i nc 1 • P 1 1 • •
dir-allocation area.incl.pl1
dir-entry. incl~pl1 .
. ....
dlr-header.1ncl.pl1
dlr-ht. incl.pl1
d1r-,ink.incl.p11
dir-name.incl.pl1
dirlockt.incl.pl1
disk pack.incl.pl1 .
dSkdCl. incl .pl1
ect structures.incl.pl1
event wait list.incl.pl1
fault-vector.incl.pl1
fgbx.Tncl.pl1
....
fs dey types.incl.pl1
fS:types:incl.pl1
f s vo 1 1 abe 1 . i nc 1 . p 1 1
hc-, ock. t nc 1 • P 1 1 . .
itt_entry.;ncl.p11 . .
kst. inclopl1 . . • .
jock array.inci.pil
lvt ..incl .pl1 . . . . . . . • . .
mc. incl .pl1 . . . .
null addresses.incl.pl1
pds.CdS . . . .
prds.cds . . . . . .
ptw. 1 68. inc 1 . P 1 1 .
pv_hOldt.i~cl .pl1
pvt. 1nc 1 • P 1 1 • • .
pvte. incl. pl1
rnt. inc 1 • P 1 1 . . .
scavenger_data.incl.pl1
scs. inc 1 • P 1 1 • • • • • •
sdw. 168. incl .pl 1 . . . . .
sdw i nf O. i nc 1 • P 1 1 . . . .
Signaller_staCk.incl.pl1 .
s 1 t . i nc 1 • P 1 1 •
s 1 te. 1 nc 1 . P 1 1
sst. incl .pl1 .
sstnt. incl. pl1
stack 0 data.incl.pl1
stack-f.rame.incl.pl1 . . .
stack-header.incl.pl1
stock-seg.incl.pl1
s t r. inc 1 . P 1 1
tc data. cds
t cm. inc 1 . P 1 1

2

vo 1 map. i nc 1 . p 1 1 . .
vtoc buffer.incl.pl1

3
6
8

vtoc-map.incl.pl1
vtoce. incl .pl1 . . . .

1

vt~c-header.1ncl.pl1

11
12
13
14
15

17
19

20

22
23
24
26
29
32
33
35
'36
38
39
41
42
43

45
46

52
53
64
72
73
74
76
78
79
81
85
86
87
88
90
92

98
99
100

102
104
107

108
117

A-i

123
124
126
127
128

This Page Intentionally Left Blank

A-ii

add_type. tncl.pl1

segment
In:
entr'y modi f ted:

>ldd>tnclude
03/10/B2 OB36.5

contents modified:

/. BEGIN INCLlJOE FILE add_type. fncl .pl 1 ./
/* 02/26/75 by Bernard S. Greenberg */
/. This file provides a structure for checking
PTW/CME address type fields tn Pl/I */
dcl

dcl

1 add_type unaligned
2 core bit (4)
2 disk btt (4)
2 pd
btt (4)
2 reserved btt
2 non_flu 1 1 b t t

static internal,
Init ("1000"b),
Inlt ("0100"b),
Inlt ("0010"b),
(4) Inlt ("0001"b),
("') I n t t (" t 11 , "b ) ;

1 badd type unaligned based,
2 (cor~, disk. pd, reserved) bit (1) unaligned;

/* END INCLUDE FILE add_type.lncl.plt */

hard. source
rBOA

~t

to be reproduced

/..

/*
/*
/.
/.

I n cot'S - SIB on 1 y t n P TW .' /
Disk address */
Paging Device ./
Reserved "'/
Not nuftl address +/

09/16/77

0925.5

segment
In:
entry modtf ted:

> 1dd> I rlc-1 ude
03/10/82 0836.6

contents modified:

12/20/78

1614.1

/* BEGIN INCLUDE FILE atm_template.tncl.pl1 */

/* Created 740723 by PG */
/* Modtfled 06/28/78 by C. O. Tavares to add rcp privilege */
/* This structure defines the components of both an access
class and an access authorization as Interpreted by the
Access Isolatton Mechanism . • /
dcll

/. author hat lon/access c I ass tempI ate */
/* access categc1rtes */
/* sensitivity level */
/* special aCC9~S privileges (In authorization only) */
/* Interprocess communication privilege ./
/* directory privilege */
/* segment privilege */
/* security out-of-servlce privilege */
/* ring 1 acces~ privilege */
/* Rep resource access privilege */

aim template aligned based,
2 categories btt (36).
2 level fixed bin (17) unaligned.
2 privileges unaligned.
(3 Ipc,
3 dlr,
3 seg,
3 5005,
3 r Ing1,

3 rcp) b 1 t

(1).

3 pad btt (12).

/* END INCLUDE fILE atm_template.lncl.pl1

Include .• "'. hard.source
F80A - Not to be reproduced

~/

alm_template.lncl.pll

Page

2

apte. incl .pl1

/.

:> 1dd> I nc I ude

12/15/82

contents modified:

12/15/82

1432.3

1433.5

BEGIN INCLUDE FILE ... apte.lncl.pI1 */

dcl
dcl

segment
In:
entry modified:

aptep pointer;
apte based (aptep) aligned,
thread unaligned,
3 fp bit (18),
3 bp b t t (18),
2 flags unaligned,
3 mbz btt (1),
3 wakeup wafting bit (I),
3 stop pendtng btt (1),
3 pre empted bit (1),
3 hpr~c btt (1),
3 loaded btt (1),
3 eligible btt (I),
3 Idle bit (n.
3 Interaction btt (1),
3 pre empt pending bit (I).
3 default_procs_requlred bit (1),
3 realtime burst bit (1),
3 always loaded btt (1),
3 dbr loaded bit (1),
3 being loaded bit (I),
3 sharea stack 0 bit (1),
3 page watt flag btt (I),
3 flrstsw bTt (I),
3 state btt (18),
2 page faults ftxed bin (35),
2 proc9sstd btt (36),
2

~

te fixed bin (35).
2 ts fixed bin (35),
2 tl fixed bIn (35),
2 timex fixed bin (35),

/+ aPT entry declaration for an active (known) process */
/+ List thread +/
/+ Forward pOinter +/
/+ Backward pointer */
/+ Flags and miscellaneous +/
/+ This bit must be zero (sentlMel bit) +/
/+ ON If p~ocess has received wakeup +/
/* ON If process has received stop connect */
/. ON If process Is being pre-empted by get processor +/
/. ON If process Is hardcore process +/
/+ ON If reqUired per-process pages are In memory and wired */
/* ON If process Is eligible +/
/. ON If thiS Is an Idle process +/
/. ON If process has Interacted recently +/
/t ON If process has received pre-empt connect */
/+ ON If apte.procs required Is system default ./
/+ ON If next ellglElllty Is realtime +/
/. ON If process Is not to be unloaded +/
/+ ON If D8R Is loaded on some CPU +/
/. ON If somebody loading this process ./
/. ON If a shared stack 0 Is assigned ./
/. flag ON If waiting for page +/
/+ OFF until process Is Inttaltzed +/
/+ executton state +/
/* total page faults for the process +/
/+ btt 0-17: offset of ATPE +/
/. bit 18-35: sequential number +/
/+ vlrtua~ time Since al IgfbtJ tty award ./
/+ virtual time since scheduling +/
/+ virtual time since Interaction ./
/. maximum value allowed for apte.tf +/

/+ • + * • + + + +/
2 Ipc pointers unaligned.
2
2

2
2

3 e~ent thread bit (18),
3 pad3 Eft (18),
Ips message btt (36),
asteps una"gned,
3 pds b t t (18),
3 dseg btt (18),
3 p,'ds b f t (18),
sAvex7 btt (18) unaligned.
term_processtd btt (36),

Inc ludr

hardosource
ot to be reproduced

/. relative pointer to ITT list */

/+
/+
/+
/+
/.
/*
/.

IPS signals pending */
relative ASTE pointers +/
PDS (per-process) ./
OSEG (per-process) +/
PROS (per-processor) ./
x7 at call to getwork (return point In pxss) ./
process to send WAkeup at temlnatlon ./

apte. Inc) .pl t .

3

2 10ck_td btt (36).
2 ttme_used_clock fixed bin (71),

1*
1*

2 watt_event bIt (36) aligned.
2 wct I ndex bit (18) una 1 tgned.
2 flags2 unaligned.
3 priority_scheduling btt (1).
3 special wakeups btt (6),

1*

*1

1*
1*

ON if guaranteed ellgtbt It ty
Spec tal wakEtup channels */

1*
1+
1*
1*
1*
I.

ON If absentee */
CPU tag running or last run *1
Time apte.sftate last changed *1
wakeup even~ for alarm clock manager *1
thread of p"ocesses with pending alarms ./
wakeup time for alarm *1

Event 10 process awaiting
/* reI offset of WCTE */

t

1*

2
2
2
2

3 pad7 b t
(7),
3 ba tcll bit (1).
3 pr tag btt (3),
state_change_ttme fixed bin (71).
alarm event f.xed bin (71),
alarm:ttme_thread btt (18) unaligned,
alarm_time bit (54) unaligned.

2
2
2
2
2
2
2

term channel fixed bin (71).
ws size fixed btn,
temax fixed bin (35).
deadline fixed bin (71),
lock btt (18) unaligned,
unusable btt (18) unaligned,
cpu_monitor fixed bin (35),

*1

File System unqleu 10 associated with process
Total CPU time when process last lost CPU *1

*1

I.
1*
1*
1*
1*

2 paging_measure fixed bin (71),
2 access authorization bit (72),
2 dbr fixed bin (71),

wakeup even1 for account overflow *1
worktng set estimate for the process *1
maximum eligibility sltce (vcpu) *1
ttme of next run *1
0 -> APTE If)cked, unlocked -> return potnt of last unlock */
I. locking routtnes destroy *1
1* ff not 0, sl!nd wakeup to term_process id when virtual cpu
1* reaches tht~ (units - 1/1024 sec) *1
1* cumUlative memory untts *1
1* authorizat1on of thts process *1
1* OBR value (constant stnce OSEG entry-held) *1

2 virtual cpu time fixed bin (71),
2 Ittes sent fixed bin (18),
2 tttes:got fixed bin (18),

1*
1*
1*

cumulative virtual CPU time for the process *1
Unprocessed ITTs sent by thts process *1
Unprocessed ITTs received by thts process *1

Cells used to drive and Instrument finite-state model for response time
measurement. Maintained by meter_response_tlme *1
current response s~ate ftxed bin (17) unaltgned,
pad18 btt (18) unaligned,
number_processing fixed bin (35),
last response state time fixed bin (71),
total_processing_tlme fixed bin (7t),

2
2
2
2
2

1+

Process state tn modle

.1

1*

Number Interactions

1*

Total

It

Virtual cpu at beginning of last Interaction

*1

/* Clock tlme'at last response state change
Interaction processing time

*1

*1

1* * ", • • ,. *1
2 begtn_tnteractton_vcpu fixed btn (71).
/.

End of cells for finite-state model
2 saved temax fixed bin (35),
2 procs-requtred bit (8) unaligned,
2 apad (t2) fixed bin (35);

Include .••. hard.source
F80A

~

Not to be reproduced

+1

*1
/. temax at eligibility award ./
bit mask of CPUs thts procesc can run

It

apte. tncl .pl'

.1

Page

4

/*

END INCLUDE FILE ... apte. tncl.plt */

Apte. tnc1 .pt 1
FROI\

,t to be reproduced

- - - - - - - - - - - - - ----.-.---------as t e. t nc 1 . pi 1

segment
in:
entry modified:

BEG I N INC l UO E F Il E ... as t e. i nc I. p I 1 ...

1*

Template for an AST entry. length •

12 words .

>ldcl>lnclude
11/116/82

contents modified:

dcl
dcl

1454.6

•I

•1

1* Words 0 to 7, and 11 are read by PC; they are read and modified by SC,
Words 8, 9 and 10 are modified by PC;

11/16/82

1456.6

they should never be modified without locking the PC lock

.1

astep ptr;
1 aste based (astep) aligned,

1*
1*

forward used 1 ist rei pointer
backward used 1 1st rei pointer

tnf1 bit (18),
Infp bit (18),

1*

ptr to NE; sst.aststze */) based aligned;
aste_part altgned based (astep),
2 one btt (36) unaligned,
2 two btt (36*tt - 8) unaligned.
2 three btt (8) unaligned;

dcl 1 seg aste based (astep) aligned.
2 pad1 bit (0*36),
2 usage fixed btn (35),
2 pad2 btt (3+36);

/* fp and bp */
/* part that has to be zeroed when ASTE ts freed */
/* ptst and marker */

/* Overlay because quota Is only for dlrs */
/* page fault count: overlays quota */

END INCLUDE FILE ... aste.tncl.p11 */

IncludE'
~qOA

hard". source
at to be reproduced

as t e ... nct . p t 1

~-qe

7

bo 5 _ dump. 1nc I . P 1 1

segment
In:
entry mOdified:

>ldd> Include
03/10/82 0837.0

contents modified:

09/08/81

1426.4

/* BEGIN INCLUDE FILE ... bas dump. inc1.pll " . */
/* Modified 1 September 1976 ; /
/* Modified 11/11/80 by J. A. Bush for the DPS8/70M CPU */
/* Modified 6/12/81 by Rich Coppola to extend the dps8 extended fault I'eg to
15 bits
*/
/* Modified 02/23/81, W. Olin Sibert, to describe old and new FDUMP style~ -I
del
dc~

dumpptr ptr;

/. pointer to following structure

dump based (dumpptr) aligned,

1*

.1

header of dump by fdump ./

:2 dump_header aligned like dump_header,

/* segment array .1
segment number ·1
length of gegment in sector sized blocks

:2 segs (1008).

1*
1*

3 segno bit (18) unal,
3 length btt (18) una1,
2 amptwregs (0
2 amptwptrs (0
:2 amsdwregs (0
2 amsdwptrs (0
:2 ouh 1st
2 cuhl st
2 duhlst
:2 auh' st

(0
(0
(0
(0

63)
63)
63)
63)

63)
63)
63)
63)

bit
bit
bit
bit

bit
bit
bit
bit

(36),
(36),
(72),
(36),

(72),
(72),

(72),
(72),

1*
1*
1*
1*

assoc.
assoc.
assoc.
assoc.

mem,
mem,
memo
memo

*1

page table word regs *1
page table word pointers *1
segment descriptor word registers *1
segment descriptor word pointers *1

/* operations unit history registers *1
control unit history registers *1
decimal unit history registers *1
/* appending unit history registers *1

1*
1*

:2 prs (0 : 7) ptr,

1*

pointer registers

·1

:2 regs aligned like dump_registers,

1*

assorted m3chtne registers

2 low order port btt (3),
(36).
2 mctlme fixed bin (52),
:2 pad5 (0 : 3) b j t (36),

~*

from which clock is read

1*

time conditions were taken

1*

Assorted registers

1+

pointers and lengths for EIS

*1

*1

2 pad4 bi t

2 ptrlen (0 : 7) bit (36),
2 coreblocks (0 ; 7),
3 num first bit (18) unal,
3 num-blocks bit (18) una1,
:2 pad7 (112) fixed bin;
dell dump_header aligned based,
2 wordS dumped fixed bin (35),
2 valid-bit (0,

Include .• *, hard.source

faOA - Not to be reproduced

*1

& processor data *1

*1

/+ first addr In corebloek +/
number of blocks used ~,/

1*
1+
1+

Standard header for FOUMP */
tot~l words In dump ./
/+ = 1 If there Is a 6160 dump to be had

bos_dump. Inc1 .pll

.1

PagE3

8

2 time fixed bin (71),
2 erfno ftxed bin (18),
2 num_segs fixed bfn,
2 valid 355 bit (I),
2 dumped 355s bit (4).
2 time 355 fixed bfn (71),
2 version fixed bin,
2 padO (5) fixed bin:
dcl 1 dump_registers aligned ba~ed,
(2)( (0: 7) bit (18).
2 a bit (36),
2 q bit (36).
2 e bit (8).
2 pad2 bit (28),
:2 t bit (27),
2 pad3 bit (6),
2 ralr bit (3» unaligned;

/* time of dump */
/* Error Report Form Number */
/* number of segments dumped */
/* ~ t if there fs a dn355 dump to be had */
/* Indicates which 355s were dumped */
/* time of 355 dump */
/* current~y 2 */
/* padO to 16 words */
Standard (SREG) arrangement of registers In
Inde)( registers */
the a register */
the q register */
the e register */
pad ./
timer register */
pad ./
/* ring alarm register */

/*
. /*
/*
/*
/*
/.
/*
/.

dcl 1 dump_mlsc_reglsters aligned based.
2 scu (0 : 7) bit (36),
2 mcm (0 : 7) bit (72),
2 dbr bit (72),
2 fntrpts bit (36),
2 ba r b i t (36).
2 modereg bit (36),
2 cmodereg btt (36),
:2 faultreg bit (36),
:2 e)(t_fault_reg bit (15) un~llgned.
2 pad6 bit (21) unaligned;

/.
/*
/.
/.
/.
/*
/*
/*
/.

dcl 1 vi dump aligned based (dumpptr).
2 dump_header aligned like dump_header,

/* Old version of FOUMP (pre March, 1981) */

2 segs (688),

2 ouhlst (0
2 cuhlst (0
2 auhtst (0
2 duhlst (0

15)
15)
15)
15)

from store control unit instr . • /
memory controller masks every 64 K */
descriptor segment base register */
Interrupts ./
base address register */
mode register */
cache mode register .*/
fault register */
DPS8 extended fault regtster ./

(72).

/* assoc. memo segment descriptor word registers */

(36).
(36).
(36),

/* assoc. memo segment descriptor word pointers */
/* assoc. memo page table word regs */
/. assoc. memo page table word pOinters */

bit (72).
bit (72).
bit (72),
bit (72),

/*
/*
/*
/.

operations unit history registers */
control unit history registers */
appending unit history registers ./
decimal unit history registers */

2 prs (0 : 7) ptr,

/* pOinter registers */

2 regs alIgned like dump_registers,

/. assorted machine regtsters */

includf'

hard. source

'N

at to be reproduced

*/

/. segment array ./
/. segment number */
/* length of segment tn sector sized blocks ./

3 segno bit (18) una1,
3 length btt (18) unal,
2 amsdwregs (0 : 15) bit
2 amsdwptrs (0 : 15) bit
2 amptwregs (0 : 15) bit
2 amptwptrs (0 : t 5) bit
2 pad1 (0 : 15) bit (36).

du~p

bas_dump. Incl.r

9

2 mctime fixed bln (52).
(0 : 5) bit (36).

/. Ume conditions wel'e

2 mlsc_registers aligned like dump_misc_reglsters.

/+ Assorted registers +/

taken . /

:2 pad4

2 pad5 bit (36),
:2 P t r 1 en «0 : 7) b 1t (36).
2 pad6 (15) btt (36),
:2 low_order_port bit (3),

/. pointers and lengths for [IS . /
/. from which clock was read ./

2 coreblocks (0 : 7),

3 num first btt (18) una1,
(IB) unal;

/. first addr In coreblock ./
/. number of blocks used ./

3 num=:blockS btt

dcl
dcl

DUMP VERSION 1 fixed bin Internal static options (constant)
DUMP=VERSION=2 fixed bin Internal static options (constant)

/* END INCLUDE FilE ... bos_dump.lncl.p'1 '"

include .•• , hard.source
F80A - Not to be reproduced

tnlt (1);
Inlt (2);

*/

bos_dump.lncl.pl'

Page

10

segment
in:
entry Imodi f ied:

cmp. t nc' . pit

>ldd>tnclude
11/19/82 1604.3

contents modified:

11/19/82

1602.1

/* BEGIN INCLUDE FILE cmp.incl.plt --- October 1982 */
/* Note: This include file has an ALM counterpart NOT made wtth cif (for htstoFlcal reasons). Keep It up to date */
dcl

cmep ptr:

/* pointer to core map entry */

dcl 1 crne based (cmep) atigned.
2 fp bit (18) unaligned,
2 bp btt (18) unaligned,
2
2
2
2
2
2
2
2
2
2
2
2
2

devadd bit (22) unaligned.
padS btt (1) unaligned,
synch held btt (1) unaligned,
io bit (t) unaligned,
pad2 btt (1) unaligned,
er bit (1) unaligned,
removing bit (1) unaligned,
abs w btt (1) unaligned,
abs-usable bit (1) unaligned,
notTfy requested bit (1) unaltgned.
pad3 bTt (1) unaligned,
phm hedge btt (1) unaligned,
contr btt (3) unaligned,

2 ptwp bit (18) unaligned,
2 astep btt (18) unaligned,
2 p~n counter fixed bin (17) unaligned,
2 synch_page_entryp btt (18) unaligned;
dcl
dcl

crna (0: 1) based aligned like eme;

/* 'device address of page in the core block +/
/* Page of synchronized seg held In memory */
/* input/output indicator l=output, O=input */
/+
/*
/*
/*
/*

indicates error in previous 10 activity */
core ts being removed'by reconfiguratton */
absolute address must not be changed for page ./
page may be assigned with fixed absolute address */
notify 'requested on I/O completion ./

/* on z> pc$flush core ought write. */
/ .. controller in which core block is located */
/* pointe~ to page table word for the page ./
/* relative AST entry pointer of page */
/* number of times to skip eviction ./
/* relp to synch.page entry ./

/* Core map array ./

t mcme based (cmep) aligned,

/* core map entry for extracting 010 */

2
2
2
2
2

It, see add_type. tncl .pl' */

pad btt (36) unaligned,
record no bit (t8)unaltgned.
add_type btl (4) tina I 'gned,
flags btt (14) unal,
pad1 btt (18) una1;

/* END INCLUDE FilE

Include
F80A

/+ tore map entry */
/+ forward pointer to next entry */
/* backward pointer to previous entry */

-.0

/* record number of device ./

cmp.tncl.pl1 */

hard. source

pt to be reproduced

cmp. tncl .pl

~

1i

dbm. ~ nc 1 . P 1 t

segment
tn:
entry modified:

>ldd>Include
OS/20/82
1041.5

contents modified:

OS/20/82

1031.5

----------------------_._---_.----/* BEGIN INCLUDE fIlE '"
dcl
dc'
dcl

dbm. tncl.pl t

.. , Feb 1916 */

dbm_seg$ ext;
dbmp ptr;

t dbm based (dbmp) aligned.
2 lock data,
3 lock b H (36).
3 event btt (36),
3 notify bit (1),
2 control,
3 Inlt bit (1) unal.
3 pad1 btt (35) unal,
2 stats,
3 sets fixed bin unal,
3 resets fixed bin unal,
3 allocs ftxed bin unal,
3 frees fixed bin una1,
2 pad2 (2) bit (36),
2 area area (255+1024 -8);

/+ END INCLUDE FILE ... dbm.lncl.pl1 +/

---------------------------------------------------------------include .••. hard.source
dbm. incl .pl t
F80A - Not to be reproduced

Page

12

dtr _8cl. Inc1 .pl t

segment
In:
enh'y mod If led:

BEGIN INCLUDE FILE ... dlr_acl.tncl.pI1
~.

Template for 8n ACl entry. length • 0 words

>, ldd>

Include

03/10/82

contents modified:

02/24/76

1923.4

0836.4

last modified Nov 1975 for nss

*1

*1

dcl aclep ptr:
dcl 1 acl entry based (aclep) aligned,
2 frp-btt(t8) unaltgned.
2 brp blt(tO) unaligned,

/* length Is 8 words */

1* rel ptr to next entry */
1+ rel ptr to previous entry *1
/* type = dlr acl */
/* size of acl entry */

2 type btt (10) unaligned,
2 size fixed btn (17) unaligned,

1* user name associated with this ACL entry

2 name unaligned,
3 pers rp btt(10) unaligned,
3 proj=rp btt(10) unaligned,
3 tag char(1) unaligned:
2 mode bit (3) unaltgned,
2 pad24 btt(24) unaltgned.

1* name of user *1

*/

1* project of user

*/
/* tag of user */
1* mode for userld */

2 ex __mode b t1t (36).

1* extended access modes */

2 checksum bUt (36),
2 owner bit (36);

1* checksum from acl entry. name *1
/* utd of owning entry */

/* Template for a person or project name on ACL. Length • 14 words. */
dc' 1 access name aligned based,
2 frp btt(10) unal tgned,
2 brp btt( 10) unaligned,

/* person or project name */

1* reI ptr to next name structure
1* reI p1r to prev ~ame structure

*/
*/

2 type bit (~O) unaligned,
2 size fixed bin (17) unaligned,

1* type D access name */
/* s'l ze of access name */

2 salv_flag fixed btn(17) unaligned,
2 usage fixed btn(17) unaligned.

1* used by salvager to check for ascii names */
1* number of ACL entries that refer to this name

*/

2 pad1 bit (316),
2 name char(3I2) aligned,

/* person or project name itself */

2 checksum bit (36) ,

1+ checksum from salv_flag

2 owner bit (36);

/* uld of containing directory */

1*

END INCLUDE FILE

IncludE'
-

'A'

hard. source
~t

to be reproduced

dtr_acl.1ncl.pl1

*/

*1

dlr _acl. Incl .pl

13

cUr _al iocat ton_area. incl.pl1

segment
in:
entl'Y modtf ted:

> I dd:> t nc I ude
03/10/82 0836.6

contents modified:

09/22/16

1439.9

---------------------

It;.
dcl
dcl

BEGIN INCLUDE FILE ... dtr_allocatton_area. tncl.pl1

last, modified December 1913 ./

areap ptr;
1 area based (areap) aligned,
2. nSizes fixed bin (18),
2 lu fixed bin (18),

2 lw fixed

bi~

(18),

2 array (100) aligned,
3 fptr btt (18) unaligned,
3 size fixed bin (17) unaligned;

/*

...

I * Number of types. • /
/. Next available word in area.

*/

1* last usabl e word. +/
1+ Array of types. *1

It

Free pointer for this size.

*1

1+ Size.·1

END INCLUDE FILE ... dlr_allocatton_area. lncl.pl1 */

-'-n-c-l-u-d-e-. ;;-,-h-a-r-d-.-s-o-u-r-c-e---------------d-i-r-_-a-l-1-0-c-a t Ion _area. 'nc 1 . pi 1
F80A - Not

to be reproduced

Page

14

dtr_entry.lncl.pl1

>ldd>lnclude
03/10/82 0836.5

segment
In:
entry modified:

contents modified:

BEGIN INCLUDE FILE ... dlr_entry.lncl.plt ... last modified August 1974 for nss
I~

Template for an entry. Length • 38 words

del

04/26/76

1720.0

*1

~I

ep ptr;

dcl t entry based (ep) aligned,
(2 efrp btt (t8),
2 ebrp btt (18».unallgned.

1* forward rei ptr to next entry */
1* backward reI ptr to previous entry *1

2 type btt (18) unaligned,

2 size fixed bin (11) unaligned.

1* type of object = dlr entry
1* size of dlr entry */

2 u I d b i t (36).

1* unique Id of entry *1

2 dtem bit (36),

/* date-time entry modified */

(2 bs bit (1),

/* branch switch

=

1

If branch

*1

*1

2 padO bit (11),

*1

2 nnames flxod bin (11).

/* number of names for this entry

2 name_frp bit (18),

2 name_brp btt (18),

1* reI pointer to start of name list */
1* reI pointer to end of name list *1

2 author,
3 pers_rp bit (18).
3 proJ_rp bit (18),

1* user who created branch *1
1* name of user who created branch *1
1* project of user who created branch *1

3 tag char (1).
3 padl char (3),

1* tag of user who created branch *1

2 primary_name bit (504).

/* first name on name list

2 dtd bit (36).

1* date time dumped *1

*1

2 pad2 btt (36),

1* the declarations below are for branch only */
2 pvld btt (36),

/* physical volume Id */

2 vtocx fixed bin (17).
2 pad3 bit (18),

1* vtoc entry Index */

2 dtrsw bit (1).

1*

Includp
~~OA

•

hard:source

pt to be reproduced

dlr_entry. Incl."

If this Is a directory branch

~ i

*1
15

=

1+

out of serl/tce switch

1+
1+
1+
1*
1*
1*

segment has multiple security classes .1
segment mu:st be aUdited for security .1
security out of service switch +1
1 If cal I I tmtter is to be enabled .1
TRUE for master dh'ectOl'y +1
TRUE tf thiS segment Is never to go on the PO

1*

call

2 access_class bit (72) aligned,

1+

security attributes:

(2 ring brackets (3) btt (3),
2 ex rt~g brackets (3) btt (3).
2 acle count fixed bin (17),

I.

ring brackets on segment

I. extended ring brackets +/
1+ number of ~ntries on ACL +1

2 ac I

f rp b t t (18).
2 acl=brp bit (t8).

1*
1+

rei ptr to start of ACl .1
reI ptr to end of ACL +1

2 bc_author.
3 pers_rp btt (18),
3 proj_rp btt (18),

1*

user who li1st set the bit count

I. name of user who set the btt count *1
1+ project of user who set the bit count .1

2 oosw bit (1),
2 per process sw bit

2 copysw bit (i),

2 safety sw btt (1).
2 multiple class btt

(1).

2 audit fJig btt (1).
2 security oosw btt (1),

2 entrypt

5w

btt (1).

2 master atr bit (1).
2 tpd bit (i),
2 pad4 bit (11).

2 entrypt_bound btt (14»

3 tag char (1),
3 pad5 bit (2).
2 bc fixed bin (24»

on

1

"I

I" Indicates !iegment Is pel' pl'ocess ·1
I. = 1 make copy of segment whenever Initiated .1
I. If' 1 then Bntry cannot be de' eted .1

(1),

unaligned,

Ilmitt:!r

.1

+1
level and category

*1

+1

.1

I. tag of user who set the bit count *1

1*

unaligned,

bit count for segs. msf

Indicator for dlrs

*1

1+, logical volume td for tmmediat tnf non dlr seg *1

2 sons lvtd bit (36),

2 pad6 bit (36),

2 checksum bit (36),

I. checksum from dtd .1

2 owner bit (36);

1*

END INCLUDE fILE ...

include .••. hard.source
FOOA - Not to be reproduced

dtr~entry.tncl.pl1

.,.

uld of containing directory

.1

,I

dtr_entry. incl .pl I

16

dtr_header.tncl.pl1

I.
I~

1*
1*
1*

>ldd>lnc1ude

segment
In:
entry modified:

051 12/82

contents modified:

05/12/82

1246.4

1254 . 5

BEGIN INCLUDE FILE ... dlr_header.lncl.ptt *1
Modified 8/74 for NSS *1
Modified 8/76 to add verston number and hash table ret pointer for variable hash table sizes
Modified 3/82 81M for change pclock */
format: style3 *1

*1

1* Template for the directory header. Length • 64 words. *1
dcl

dp ptr;

dcl 1 dlr based (dp) aligned,
2 modify btt (36),
2 type btt (18) unaligned,
2 size ft~ed bin (17) unaligned,
2 dtc (3).
3 da te bit (36).
3 error bit (36),

/* size of header In words *1
1* date-ttme checked by salvager array +1
1+ the date */
1* what errors were discovered *1

2 u I d b it (36).

1* uld of the directory

- copied from branch */

2 pvld btt (36).

1* phys vol td of the dlr

- copied from branch */

2 sons_lvtd btt (36),

1* tog vot Id for Inf non dlr seg - copied from branch */

2 access_class btt (72),

1* security attributes of dlr

- copied from branch */

(2 vtoc~ ft~ed bin (17),
2 verSion_number fl~ed bin (17),'

/* vtoc entry Index of the dlr
/* version number of header *1

- copied from branch */

2 entryfrp btt (18),
2 pad2 b tt ('18),

/* reI ptr to beginning of entry II st */

2 entrybrp btt (18),
2 pad3 bit (18).

/* ret ptr to end of entry I 1st */

2 pers_frp b'lt ( 18).
2 proj_frp b'lt ( 18),

/* reI ptr to' start of person name 1 tst */
/* rel ptr to start of pr.oject name list */

2 pers_brp b'lt ( 18) •
2 proJ_brp b'lt ( 18),

1* rel ptr to end of person name ttst */
/* reI ptr' to end of project name list *1

2 seg_count ft~ed bin (17 ).
2 dlr_count f'xed bin ( 17) ,

/* number of non-directory branches */
/* number of directory branches */

2 lcount fixed bin ( 17),
2 acle_total ft~ed bin (17),

1* number of links */
1* total number of ACL entries In dlrector\, *1

2 arearp btt ( 18) •

/* relative pointer to beginning of allocat Ion area

fncludf'
-"'OJ!

/* Process 10 of last modifier */

1* type of object • dtr header *1

hard. source
lot to be reproduced

dtr_header.lnc1

't

+1
17

1+ Indicates dlr contains per process segments +1
1+ TRUE If this Is a master dlr +1
1+ TRUE If segs must be on RPV +1
1+ TRUE If haBh table Is being constructed +1

2 per process sw btt (1),
master dtr btt (1),
force_rpv bit (1),
rehashing bit (1).
pad4 bit (14),

2
2
:2
2
:2

I ac I coun t

(0: 1 ) •

3 seg fixed bin (11),
3 dlr fixed bln (11),

1+
1+

number of unltlal acl entries for segs *1
number of qnitlal acl entries for dlr +1

t ac I ( 0 : 7 ) ,
3 seg_frp btt (1B),
3 seg_brp bit (lB),

1+
1+
1+

pointer to Initial ACLs for each ring *1
reI ptr to start of Initial ACL for segs *1
re1 ptr to end of InU lal ACl for segs +1

3 dlr_frp bit (1B),
3 dlr_brp bit (1B),

1*
1+

reI ptr to start of Initial for dlrs +1
reI ptr to end of Initial ACl for dlrs +1

2 htslze fixed bin (11),
2 hash_table_rp btt (1B),

1+
1+

Size of ha9h table +1
reI ptr to start of hash table

2 htused fixed bin (11),

1*

no. of used places In hash table

2 tree_depth fixed bin (17),
2 pad7, bit (18»
unaligned,

1*

number of

:2 d t s bit (36),

1+

date-time directory last salvaged

2 master dtr uld btt (36),
2 change=pclock fixed bin (35),

1*
1+

2

*1
+1

:2 pad6 fixed bin (17),

dcl version_number_2 fixed bin tnt static options (constant)

END INCLUDE FILE

include.

t .,

F80A - Not

hard.source
to be reproduced

dlr_header. Incl.plt

*1

*1

uld of suparior master dlr +1
up one each call to 511m$dlrmodi *1
1* pad to maka It a 64 word header *1
It checksummed from uid on +1
1* uid of parl3nt dlr +/

2 padB (11) btt (36),
2 checksum btt (36),
2 owner bit (36);

/*

levels from root of this dlr

tnlt (2);

*1

dlr _headel'. tncl .pll

Page

18

segment
In:
entry modified:

dtr _ht. Incl .pl t

1*

>ldd>lnclude
03/10/82

contents modified:

10/19/16

1420.6

0836.5

BEGIN INCLUDE FILE ... dtr_ht.tncl.pI1 *1

dcl htp ptr;
dcl 1
2
2
2
2
2
2

hash_table based (htp) aligned,
modify btt (36) una1.
type bit (18) unal.
size fixed bin (17) una ••
name _ rp ( 0: 1) b It ( 18) una 1 •
checksum bit (36) una1,
owner bit (36) una1;

/*

tncludp

/* htp = ptr(dp,8cttve_hardcore_data$htrp) */
/. type • dtr hash table */
/. size of current dir hash table entry */
1* .rel ptr of name entry *1
/~

otherwtse reI ptr to name */

END INCLUDI: FILE ... dtr_ht.fnc1.pl1 ./

*, hard. source

,t

to be

I~eproduced

dtr _ht. Incl.pl'

19

d tr

1*
1*
dcl

segment
In:
entry modified:

1 i nk . t nc 1 . P 1 1

BEGIN INCLUDE FILE ... dlr_link.incl.pI1

>ldd>lnclude
07/30/82
1442.9

last modified August 1974 for nss

Template for link. Note that it is identical to entry for first 24 words.

contents modified:

02/24/76

1923.5

+1

*1

1 I ink based (ep) al tgned,
(2 efrp btt (18).
2 ebrp bit (18).

1*
1*

for~ard reI ptr to next entry *1
backward re1 ptr to previous entry

2 type btt ( 18).
2 size f 'xed bin ( 17).

1*
1*

type = dlr link *1
size of link in words

2 uid bit (36) •

1*

unique td clf entry

2 dtem bit (36).

1*

d~te-ttme entry modified

2 bs bit (1),
2 padO b It (17).
2 nnames fixed bin ( 17),

1*

entry switch = 1 If entry

1*

number of names for this entry

2 name_frp bit ( 18).
2 name_brp bit ( 18).

1*
1*

reI pOinter' to start of name 1 ist *1
re1 pOinter' t-o end of name 1 ist *1

2 author.
3 pers_rp bit (18).
3 proJ_rp bit (18).

1*
1*
1*

*1

*1
*1
*1
*1

user who created entry *1
,name of user who created entry *1
project of us~r who created entry

1* tag of

3 tag char (1).
3 pad1 char (3).

usel~

*1

*1

who created entry *1·

2 primary_name btt (504 ).

1*

ftrst name on name Itst */

2 dtd bit (36),

1*

date time dumped

2 pad3 bit (18)
2 pathname_size fixed bin (17),

1*

number of ,characters in pathname

2 pathname char (168 refer (pathname_size)) unaligned,

1* pathname of link *1

2 checksum bit (36).

1*

checksum from uid +/

2 owner bit 136);

1+

uld of containing directory

*1

2 pad2 bit (36).

1* the declarations below are only applicable to links */
0

Include .••. hard.source

d I r _ link. I nc I . P I 1

*1

*1

Page

20

/+

includp

END INCLUDe FILE ... dtr_1tnk.tncl.p11 +/

~

hard. source

,0 t to be reproduced

d t r _1 t nk. t nc: 1 . p' .

21

dtr _name. incl .pl1

/+

segment
tn:
entry modified:

BEGIN INCLUDE fILE ... dlr_name.incl.pI1 ...

>Jdd>IncJude
03/10/82 0836.5

contents modified:

10/19/76

1420.6

last modified Nov 1975 for n55 ./

/* Template for names of branches or links. Length = 14 words. */
dcl np ptr;
dcl

/+ based on ptr(dp,ep->entry.name_frp) +/
/+ reJ ptr to next name +/
/* reI ptr to prev name */

1 names based aligned,
2 fp btt(18) unaligned,
2 bp btt(18) unaligned,

,+

2 type bit (18) unaligned,
2 size fixed bin (11) unaligned.

type

= dlr

name */

/* size of dlr name

*1

2 entry_rp blt(18) unaligned,
2 ht_lndex fixed bJn(11) unaligned,

/* reI ptr to entry */

2 hash thread bit (18) unal,
2 pad3-blt (18) una1.

I.

/* Index of hash table entry */
relative ptr to next hash

entry

*1

2 name char(32) aligned,

1*

2 checksum bit (36),

/* checksum from entry_rp */

2 owner btt (36);

1*

END INCLUDE FILE ."

Include .••. hard.source
FAOA - Not

to be reDroduced

dlr_name.incl.pI1

uid of entry

*1

*1

dlr _name. Inc I .pll

Page

22

dfrlockt.incl.pl1

/*

1*

segment
entry

BEGIN INCLUDE FILE ..... dtrlockt.incl.p11
Modifted BIM 1/83 cleanup to multi-read lock *1

in:
mod~fted:

>ldd>include
03/09/83

contents modified:

03/09/83

1400.0

1401.4

*1

/* format: style3.tdtnd25 */
dcl

dtrlockt_seg$

ext:

/* name of the segment containing the dtrectory locks */

dcl

dtrlocktp

ptr:

1* pointer to the dirlock table *1

dcl .

based (dtrlocktp) alfgned.

dirlockt

/~ Table of locks for direcyories *1
btt (36),
1* lock for the table itself */
f t xed bin (35),
I~' Event for the aboye lock *1
btt (0,
f t xed b t n (17).
1* Index of the last entry currently used *1
fixed bin (17).
1* Highest index ever used ~I
(1:59) fixed bin (35).
/* count(i) • number of times entry t was used
(1:10000) aligned like dir lock:
/; entry for a directory lock */

2 10cll<
2 tnd
2 nottfy sw
2 last 2 highest_last
2 counter
2 dtrlock

declare
declare

dtr_lock_ptr
1 dtr lock
2 ptd
2 tnd
2 nottfy sw
2 salvage sw
2 pad1
2 lock_count

•

*1

potnter;
aligned based (dir _lock_ptr·).
btt (36).
1* pid of the process that locked the dir for write *1
bit (36) aligned.
1* ufd of the dfrectory - also used as event id *1
bit (1) unaligned.
1* ON if one or more processes are waiting for the lock */
bit (1) unaligned.
1* ON if dir was locked for salvage */
btt (34) unaligned,
fixed bin (35);
1* POSITIVE --> write lock +1
/* NEGATIVE --> -numbir of lockers */
1* ZERO --> not locked *1

END dtrlockt.tncl.p11

inclUdE'

hard. source
Aot to be reproduced

d f r lock t . f nc: I . r:

23

segment
. in:
entl'y mod I fled:

disk_pack. incl .pl1

BEGIN INCLUDE FllE ... dlsk_pack.lncl.pl1

/*

> Idd:· Include
OS/20/82 1041.6

contents modified:

Last Mod If led .January 1982 for new volume map

All disk packs have the standard layout described below:
Record 0
contains the label, as declared In fs vol label. Incl.pI1.
Record 1 to :)
contains the volume map. as declared tn v;;l_map. Incl .plt
Record 4 to 5
contains the dumper btt map, as declared In dumper _bit_map. Incl .p11
Record 6
contains the vtoc map. as declared tn vtoe: map. Incl .p11
Record 1
formerly contained bad track list; no lon!;,er used.
Records 8 to n-1
contain the array of vtoc entries: ( n Is specified In the label)
each record contains 5 192-word vtoc entries. The last 64 words are unused.
Records n to N-1
: contain the pages of the Multics segments. ( N Is specified In the label)
Sundry partitions may exist within the regl"n n to N-1. wtthdrawn or not as befits the meaning
of the particular partition.

A conceptual declaration for a dlsk pack could be:
dcl 1 disk_pack.
2 label record
2 vOlume_map_record
2 dumper_blt_map_record
2 vtoc_map_record
2 spare_record
2 vtoc_array_records
3 vtoc_entry ( 5 )
3 unused
2 Multlcs_pages_records

(1

0)
3)

(4
(6

6)

(1

1)

(8

n- 1 ) ,

(0

(n

5)

N-1)

bU( 36
btt( 36
btt (36
b tt (36
bU(36

*
*
*
*
*

1024) ,
1024) ,
1024) ,
1024) ,
1024) ,

btt( 36
bU( 36
bU( 36

*
*
*

192 ),
64),
1024) :

*/
dcl (lABEl_AODR
VOLMAP AOOR
DUMPER-BIT MAP ADDR
VTDe MAP AODR VTDC-ORIGIN
SECTORS PER VTOeE
VTOCES PER RECORD
DEFAULf HCPART SIZE
MAX_VTOCE_PER_PACK

Include .••• hard.source
&1 ____

... _

'- ______

r4I ... _ _ ......

Init (0),
/*
/*
InU (0.
Init (4),
/*
Intt (6),
/*
Init (8).
/.
Intt (3),
Init (5).
InU- ( 1000).
/*
/*
tnU (31114»
f I xed bin (11) Int static options

Address of Volum~ Label */
Address of first Volume Map record */
For Initial release compaltlbllty */
Address of first VTOC Map Record ./
Address of first record of VTOC */
Size of Ha,rdcore Part I t ion */
Limited by size of VTOC Map */
(constant);

disk_pack.incl.pl1

OS/20/82

*/

1037.5

END INCLUDE FILE ... d1sk_pack.tncl.pl1

includE'
j~

hard. source
)0 t

to be reproduced

disk_pack. t nc 1 .' ' •

"''Ie

25

dskdcU. incl .pl t

segment
jn:
entr-y modi fled:

>ldd>1nclude
08/17/82
i426.7

contents modified:

08/17/82

1421.1

/* Begin include f t Ie ...... dskdcl. Incl .pl1 */
/* Structures used by the Disk DIM */
/* format: style4,delnl.tnsnl,tree,lfthenstmt,lndnontterend */
/* disk data segment */
dcl
dcl

/* pointer to disk subsystem Info */
/* pointer to disk DIM Info structure */

dlsksp ptr,
dlskp ptr:
disk data based (dlsksp) aligned,
2 subsystems fixed bin,
2 free offset bit (18),
2 status_mask bit (36),
2 last queue time fixed bin (71),
2 pad (2) fixed bin,
2 array (32),

/*
/*
/t
/*
/*

disk subsystem Information */
number of subsystems t/
offset of first unused location in segment */
mask for checking for disk error */
for dump analysis, to Interpret Q times */

/t per subsystem info */

(

3
3
3
)
dcl

/* location of data for this subsystem */

offset bit (18),
pad bit (18).
name char (4)
una Ii

/* name of

dlsktab based (dlskp) aligned.
2 lock bit (36) una 1 ,
2 nchan fixed bin.
2 ndrlves fixed bin.
2 channels online fixed bin,
2 dev_busy-btt (64),
2 dev_queued btt (64),
2 wq (0:1) like qht,
2 free q like qht,
2 abs mem addr fIxed bin f26) unSigned,
2 pad-fixed bin.
2 errors fixed bin.
2 ferrors fixed bin.
2 edac errors fixed bin.
2 pg_io_count (0:1) f~xed bin.
2 vt 10 count (0: 1) f"ixed bin.
2 call lock meters like disk lock meters,
2 Int lock meters like disk lock meters,
2 all~c wa~t meters like dlik lo~k meters,
2 run lock meters like dIsk lock meters.
2 pg_watt (0:1) fixed bin (52), 2 vt wait (0:1) fixed bin (52).
2 pg-Io (0:1) fIxed bin (52).
2 vt-Io (0:1) fixed bin (52).
2 queue (64) like quentry.
2 chantab (8) like chantab,
<

include .• *, hard.source
F80A - Not to be reproduced

sub~ystem

*/

/* control structure for DIM'S */

/* data base lClck */
/* number of disk channels */
/* highest disk drive number */

/* number of disk-channels actually tn use */
/* busy bit for each device */
/* requests queued bit for each device */
/* walt qUeue head/tall */
/* free queue head/tall */
/* absolute memory address of this structure */

/*
/*
/*
/*

1*
/*
/*
/*
/*

/*
/+
/.

/*
/*
/+

error count */
fatal error count */
count of EDAC correctable errors */
count of page I/O operations */
count of VTOCE I/D operations */
lock meters for call side of DIM */
lock meters for interrupt side of DIM */
meters for queue entry allocations */
lock meters for run calls */
total time lipent waiting for page I/O */
total tlmo Bpent waiting for VTOCE I/O */
total time Bpent doing page I/O ./
total time lipent doing VTOCE I/O *1
queue entrlos */
channel Information table */

dskdcl. Incl .p11

Page:!

26

2 devtab (0 refer (dlsktab.ndrtves)
%page;
dcl qp ptr.
cp ptr;
dcl

quentry based (qp) aligned,

like devtab;

I~

devtce informatton table +1

I~
I~

potnter to queue entry *1
potnter to channel tnformatton table

I~

queue entry .*/

I~
I~
I~
I~
I'~
I~

index to
non-zero
non-zero
non-zero
non-zero
non-zero

(

2
2
2
2
2
2
2
2
2
2
2
2

2
2

2
)

dcl

ne x t b It (t 8 ) ,
wrtte sw bft (f),
•
sect_sw bit (1),
test tng bit (1),
retry bit (1),
used bit (1),
swap bit (1),
cylinder fixed bin (11) ,
pdl unstgned fixed bin (6),
coreadd bit (24),
dey unsigned fixed bfn (6),
sector bit (21).
pad bit (9).
n sectors ffxed bin (6) unSigned,
ttme fixed bin (36) unsigned
unal;

chantab based (cp) aligned.
2 chx fixed btn (35),
2 tol ctx fixed bin (35),
2 statusp ptr,
.
2 chantd char (8).

next queue entry *1
fo~ wrtte operatton *1
for stngle sector operatton *1
If quentry is for disk ready test *1
If retry has been performed on broken device
if queue entry tn use *1

dtsk cylinder number *1
pdt of device *1
memory address for data transfer'
disk device code *1
I. disk sector.address *1
IJ~
I~
I~
I~

1*
/~

1*

channel informatton table *1
lo_manager channel Index *1
101 channel table Index *1
pOinter to hardware status word
channel name *1

*1

*1

I. number of sectors for sector 1/0 *1
1* low-order microsecond clock at queue
I'~ time entry 'was queued *1
I~
I'~

*1

*1

*1

(

2
2
2
2
2
2
2
2
2
2
)

padO bit (18),
In use btt (1),
active bit (1),
rsr bit (0.
prior btt (1),
tot use bit (1).
Inop bit (1),
broken btt (1),
act ton code bit (2).
padl bTt (9)
unal,

non-zero tf channel betng used *1
non-zero tf channel acttve *1
non-zero tf RSR In progress *1
priority of current request *1
1* non-zero if channel usurped by 101
I'~ non-zero If channel Inoperative *1
I'~ non-zero If channel broken *1
l'~ saved from status *1
I'~
I'~
I'~
I'~

*1

(

2
2
2
2
)
2

qrp b It (18),
pad2 bit (3).
command bit (6),
erct fixed bin (8)
una 1.
select data,
(
3 ltmft btt (12).
3 mbz bit ( 3 ) ,
3 sector btt (21)
) una 1 t gJned •
2 connect time fixed bin
2 connects fixed bin.

t nc 1udE"

-

.... hard :source
~t

to be reproduced

~52).

*1

I'~

reI ptr to queue entry

I'~

peripheral command

I'~
I'~

error retry count *1
data passed to 10M on select

I'~

limit on number of sectors

*1

1* sector address *1
I. time of last connect *1
I. count of connects performed
dskdcl. tncl "p11

*1

*1

*1
21

1*
1*
1*
1*
1*

2 detailed status (0:17) btt (8) unal,
2 rstdcw bit (36),
2 scdcw bit (36),
2 sddcw bit (36),
2 dcdcw bit (36),
2 dddcw bit (36),
2 dscdcw bit (36),
2 dsddcw bit (36),
2 rssdcw btt (36),
2 status bit (36) aligned;
%page;
dcl
1 qht aligned based,
2 (head, tat I) btt (18) unal
dcl

/*
I.
/*
/*
/*

*1

o

/* queue he~d/tail structure */
i

/* pOinter to device Information table */

dp ptr,
pvtdlp ptr;

/* pOinter to dim_info in PVT entry */

1*

devtab based (dp) aligned,

dcl

detailed status bytes .1
restore command *1
select command *1
select data xfer *1
command to read or write
data xfer DCW */
RSR command */
RSR data xfer */
RSS command */
saved status */

device Information table */

(

Index of PVT entry for device */
/* device Inoperative */

1* device previously broken *1
/* device down */

•

)

2
2
2
2

2
2

dcl

1*

pvtx fixed btn (8),
Inop bit (1),
was broken bit (1),
broken btt (t),
abandoned bit (1),
pad btt (11),
buddy unsigned fixed bin (6).
pdt unsigned fixed bin (6)
unal,
queue count fixed bin (8),
cylinder fixed bin (11),
seek distance fixed bin (35, 18 ).
read-count fixed bin.
write count fixed bin.
time_Tnop fixed bin (52);

2
2
2
2
2
2
2
2

/* device lost and gone forever */

1*

other device on this spindle or 0 */

/* primary device Index */
/* count of requests queued for device */
/* current cylinder position */
/*

ave~age see~

distance */

/* count of reads */
/* count of writes */
/* time drive became Inoperative */

/* disk DIM info. In PVT entry */
o

pvtdl based (pvtdlp) aligned.
(

2 sx fixed bin (11).
2 usable_sect_per_cyl fixed bin 11),
2 unused_sect_per_cyl fixed bl'n ( i1)
) unal;

/* structure Index */
/* N of usable sectors on disk cylinder */

dtsk lock meters based aligned,
2 count fixed bin.
2 watts fixed bin.
2 watt time fixed bin (52);

/* lock meters for disk DIM */
1* total number of attempts */

i

dcl

dcl

/I

of unused sectors at end of cylinder */
o

/* number of attempts which required waiting */
/* total time apent waiting */

(

RST lISTX Intt (i),
SC lISTX Intt (2),
DSC lISTX Intt (6),
RSS lISTX Intt (8)

/* llstx for restore */
/* 11stx for select */
/* 11stx for RSR ' /

) fTxed bin (12) static options (constant);

1* 1tstx for RSS *1

I * End

0

f

i nc I ude f lIe ......

include .• *. hard.source
~AnA

/*

-

Not

to

hA rAnrnnuced

ds k dc 1. I nc 1. p 1 1

*I

dskdcl. incl .p11

PagE!

28

segment
In:
entry modified:

ect_structures.tncl.pI1

>ldd>lnclude
03/10/82 0837.0

contents modified:

09/30/81

1358.8

BEGIN XNClUOE FilE ... ect_structures.lncl.p11 ... Jan 198t */

/* format: style3 */
dcl
dcl

ect_ptr
ectep
ect header
2 ect areap
2 ect-area size
2 flags,
3 call_priority

dcl

ptr;
ptr:

/* points to event channel table entry *,

/* pOints to base of Event Channel Table header */

aligned based (ect_ptr),
ptr.
f I xed bin (t 9) ,

/* structure of the Event Channel Table header */
/* pointer to area in which ect entries are allocated */
/*. number of words In ec t area * /

bit (t) una I ,

/* • "OUb If watt chns have priority - default */
/* • "tUb If call chans have priority */

3 unused
btt (17) unal.
3 mask_call count
ftxed bin (17) una1,
2 count
(0:5) fixed bin,

2 entry_ltst_ptrs (4) ,

/*

ptr,
ptr,

./*
/*
/*
/*

3 ftrstp
3 Uastp

2 meters,
3 total_wakeups ftxed btn ~33) ,
3 total_watt_wakeups
fixed btn (33) ,
3 total_call_wakeups
ftxed btn (33) ,
fixed btn (33) ,
2 seed
ftxed bin (33),
2 tttes_tossed
(5) f t xed bin:
2 ftnl

dcl
dcl
dcl
dcl

TOTAL
WAIT
CAll
EV_CAlt._MESSAGE

dcl
dcl

ITT MESSAGE
EV_MESSAGE

dcl

Include

walt channel
2 word O.
3 unused1
3 type
2 ne)ct_chanp

•
i~ot

/*
/*
/*
/*
/*
/.

hard:source
to be reproduced

ftxed
ftxed
ftxed
fixed

number ttmes event call chans masked +/
totals of entrtes al10cated */
0 • number of entries, 1 • number of watt channels */
2 • number of call channels */
3 • number of call channel messages */
4 • number of itt messages, 5 • number of message~ */
head and tatl of Itsts In ECT */
1 • watt channels, 2 = call channels */
3 • cal. channel messages, 4 • ttt messages */
head of ltst */
tail of Itst */

/* total wakeups sent on all channels ./
./* wakeups sent on watt channels */

/. wakeups sent on call channels ./
/* used to generate uld portion of channel name */
/. number tnvaltd ITT messages received, Ignored */
/* pad to 36 words */

(const.ant) tntt
(const.ant) tntt
(cons t.ant ) tntt
(const.ant) tntt
/* used to
ftxed btn static options (const,ant) tntt
ftxed bin static opt tons (const.ant) tntt
btn
bin
bin
bin

static
stattc
stattc
static

opt tons
opt tons
options
opt tons

(0) ;

(1):
(2) :
(3) :

tndex count and entry_I tst_ptlrs arrays rt./
(4) :

(5) ;

altgned based (ectep),

/rt. Event watt channel - type • WAIT */

fixed bin (17) una1,
fixed bin (17) unat,
ptr unal,

/+ • WAIT */
/+ pOinter to next watt channel */

29

2 prev chanp
2 word:).
3 unused:2
3 tnhtbl t_count
3 wakeup_count
:2 name
2 first ev msgp
2 last BV ~sgp
2 unused3dcl

dcl

event message
2 word 0,
3 priority
3 type
2 next ev msgp
2 message:data

dcl

itt_message
2 word 0.
3 unusedl
3 type
2 next ttt msgp
2 message data
2 unused2-

painter to previous wait channel

/* Event call channel - type

/* = CALL ./

/* pointer to next call channel *1
pointer to prev call channel */

It

1* = "1 b
1* number
1* nwnber

If call to associated proc In progress */
of times message recepttqn has been inhibited */
of wakeups received over this channel */
I. event channE!1 name associated with this channel */
1* pointer to first message in queue */
1* pointer to last message In queue .1
It pointer to ~ssociated data base *1
It procedure to call when message arrives *1
1* po~nter to entry point */
M

I.

pointer to

~tack

frame

I. pad to 12 words *1

*1

= EV_MESSAGE *1

fixed bin (17) una1,
1* priority of call channel *1
fixed bin (17) una',
1* = EV_MESSAGE *1
I. pointer to next message, for this channel *.;
ptr unal.
like event_message_data aligned,
I. event message as returned from Ipc_,block *1
ptr unal,
/. pointer to llssociated event channel *1
ptr unal,
1* pointer to next event call channel message .1
(2) fixed bin:
/* pad to 12 words ./

1* 'Itt message - type

aligned based,

fixed bin (11) una1,
fixed bin (17) una1,
ptr unal,
1* pointer to next itt message entry in ECr currently */
like event message data aligned,
(4) fixed bin:
It pad to 12 words tl

/* description of name of channel *1

It

pOinter to channel entry in ECl .1
tf filst channel '*1
ring number of Eel .1'
identified unique to the process .1

1* = null

fixed bin (3) unal unsigned,
fixed bin (33) unal uns1gned;

F80A - Not to be reproduced

= CALL *1

/. indicated priority relative to other call chns */

I. Event messa"e - type

aligned based,

event_channel name
aligned based,
2 ecte_ptr
ptr una1,

tnclude .••. hard.source

.1

bit (1) una ••
fixed bin (16) una',
1* number of tlnfes message reception has been Inhibited */
fixed bin (18) unal unsigned. /* number of wakeups received over this channel *1
bit (12),
/* event channel name associated with this channel */
ptr unal,
/* pointer to 'trst message In queue */
/. pointer to last message In queue */
ptr unal.
( 4) f I xed bin;
/* pad to 12 words */

aligned based (ectep),
ca II_channel
2 word_a,
fixed bin (11) unal,
3 pr ior ity
3 type
fixed bin (11) una1.
2 next ci1anp
ptr unal.
ptr unal,
2 prev:Ci1anp
2 word 3,
3 caT 1 t nh i b it
bit (1) una 1 •
3 inhibit count fixed bin (16) unal.
3 wakeup_count
fixed bin (18) unal unsigned,
2 name
bit (12),
2 first ev msgp
ptr unal,
2 iast BV ~sgp
ptr una1,
2 data-ptr
ptr unal,
:2 procedure_value,
3 procedure_ptr ptr unal,
3 environment ptr
ptr una1.
2 unused
fixed bin;

:2 chanp
2 next_call_msgp
2 unused2
dcl

1*

ptr unal.

1*
I.

ect_structures.lncl.pI1

dcl

'ast channel name aligned based.
2 ecte_ptr ptr unal.
2 ring

2 mbz
2 channel index

dcl

.fixed bin (3) unal unsigned.
b It (15) una 1 •
fixed bin (11) unal;

channel td
message
sender
ortgln.
3 dev_slgnal
3 rtng

IncludE'

/., number of special channel +/

event._message_data
2
2
2
2

/.

/* description of name of of fast channel ./
/* • null fast channel */
/* A= null full event channel ./
/* target ring number ./

END INCLUDE ,ne

hard. source
Not to be reproduced

aligned based.
, I xed b t n (11),
, i xed b t n (11).
bit (36) •

/+
/+
/*
/+

bit ( 18) una1.

/* "1"b i ' device signal +/
/+ "O"b i ' user event +/
/+'rtng of sending process */

f txed btn (17) unal;

...

template for event message */
event channel name */
12 btt message associated wtth wakeup */
process if of sender */

ect_structures.tncl.pl1 ./

ect_structures.·

~1.p11

31

segment
In:
entry modified:

>1dd>Include
03/10/82 0836.7

contents modified:

06/07/79

1406.5

~----------------------------------------------------------------------------

*1

It

BEGIN INCLUDE FILE ' . '

1*

ipc_$block watt list structure -- Must begin on an even word boundary.

event~walt_llst.incl.pl1

Written 9-May-19 by M. N. Davidoff.

*1
fixed binary:
pointer;
declare

event watt list
2 n channels
2 pad
2 channel td

1* END INCLUDE FILE ."

include.
~AOA

t ••

aligned based (event walt list ptr).
fixed binary.
I; num~er of channels In walt ltst

*1

bit (36).

(event watt list n channels refer (event walt ltst.n channels)) fixed btnary (71);
- 1* event channels to watt on-.I

event_watt_ltst.tncl.pI1 *1

hard.source

- Not to be reoroduced

Page

32

fault_vector.tncl.pI1

segment
tn:
entry modified:

1* BEGIN INCLUDE FilE
del

>ldd>lnclude
03/10/82

contents modified:

06/10/81

1658.7

0836.9

fault_vector.lncl.pl1 ... last modl1Fled February 1981

*1

I. pointer to the fault and Interrupt vectors *1

fvp ptr;

dell fv based (fvp) aligned,
2 t pa I r ( 0 : 3 1 ) ,
3 scu bit (36).
3 tra bit (36).
2 fpa I r (0: 31),
3 scu bit (36).
3 tra bit (36).
2 I_tra_ptr (0: 31) ptr.
2 I_scu_ptr (0: 31) ptr.
2 f_tra_ptr (0: 31) ptr.
2 f_scu_ptr (0: 31) ptr;

1*

fault and Interrupt vectors *1
Interrupt pairs *1
SCU Instruction *1
TRA Instruction *1
faul t, pairs *1
SCU Instruction ~I
TRA Instruction *1
ITS pair for Interrupt TRA Instruction
ITS pair for interrupt SCU instruction
ITS pairs for fault TRA Instruction
ITS pairs for fault SCU Instruction

I~'

Shutdown

I.
I.
I.
I.
I~~

I.
I.
I.

1*
14t

*,*,

*1
*1

1* Fault Types by fault number
de 1 (F AUl T NO SDF
FAUlT-NO-STR
FAUlT-NO-MME
FAUl T-NO-IFt
FAUlT-NO-TRO
FAUlT-NO-CMD
FAUlT-NO-ORl
FAUlT-NO-lUF
FAUlT-NO-CON
FAUlT-NO-PAR
FAUlT-NO-IPR
FAUlT-NO-ONC
FAUlT-NO-SUF
FAUlT-NO-OFl
FAUlT-NO-OIV
FAUlT-NO-EXF
FAUlT-NO-OFO
FAUlT-NO-OFI
FAUlT-NO-OF2

I n It
Inlt
Inlt
Init
Inlt
Inlt
tnlt
Inlt
Inlt
Inlt
Inlt
Inlt
tnlt
Inlt
tnlt
Inlt
tntt
Inlt
tnlt
FAUlT-NO~OF3
Inlt
FAUlT-NO-aCV 'tnit
FAUlT-NO-MME2 tnlt
FAUlT-NO-MME3 tnlt
FAUlT-NO-MME4 Inlt
FAUlT-NO-F2
Inlt
FAUlT:NO:F3
Inlt
FAUl T_Ncr_'VRB

(0).
(1).
(2).
(3).
(4).
(5).
(6).
(7),
(8).
(9).
(10).
(11).
(12).
(13).
(14).
(15).
(16).
(17).
(18),
(19).
(20),
(21).
(22).
(23).
(24).
(25).

I n It (31)

141 Store

1* Master Mode Entry
1* Fault Tag 1
1* Timer Runout
I~'

*1

Command

1 4• Dera 11
I.' lockup

I'" Connect

I~'

Parity
I.· 111 ega I Procedure
I'" Operation Not Complete
I .., Startup
I"· Overflow
1* Dtvtde Check
1* E)(ecute
1* DIrected Fault 0 (Segment Fault)
1* Directed Fault 1 (Page Fault)
1* Directed Fault 2
1* Directed Fault 3
1* Access Violation
1* Master Mode Entry 2
1* Master Mode Entry 3
1* Master Mode Entry 4
1* Fault Tag 2 (linkage Fault)
1* Fault Tag 3
1* Fault Numbers 26-30 unassigned
1* Trouble
) fixed bin (17) tnt static options (constant);

Includ~

f

hard. source
,.Jot to be w'eproduced

fault_vector. In

pl1

33

/* END INCLUDE FILE ... fault_vector.tncl.pl1 */

tnclude.*~.

rDnA

-

Mn+

hard.source
+n hA

rAoroduced

fault_vector.lncl.p11

Page

34

segment
tn:
entry modflffed:

f gb)(. inc 1 • P 11

/*
/*
/*
/.

BEGIN INCLUDE
last modified
Modified 8/79
Modlfted 7/82

>ldd>tnclude
09/17/82 t333.3

contents modifted:

09/t7/82

1333.2

fILE ... fgb)(.tncl.pI1 */
5/3/77 by Noel I. Morris'
*/
by R.~.C. Kfssel to add FNP blast message . • /
BIM for recognizable sentinel field */

/* The contents of this segment are data shared by Multics and BOS.
This segment occupies the 2nd. 3rd. 4th, and 5th~16-word b~ocks of the BOS toehold. */
dcl
dcl

flagbox$ e)(t:
fgbxp ptr;

dcl 1
2
2
2

fgbx based (fgbxp) aligned.
flags (36) bit (1) unal,
sIt segno btt (18).
padt fixed bin,
2 rtb,
(3 ssenb btt (1),
3 call bos bit (1),
3 shut-btt (0.
3 mess btt (0,
3 a I er t b tt (0.
3 pad bit (25).
3 bos_entry fl)(ed bin (5» una1.

2
2
2
2
2

/* communicattons switches +/
/* segment H of the SLT ./

/*
/*
/.
/.
/.
/.

return to BOS Info */
"1"b If storage system enabled */
"1"b tf BOS.called by operator */
"l"b tf BOS called ~fter shutdriwn */
"1"b if message has been provided */
"1"b if aUdible alarm to be sounded */

/. type of entry tnto BOS
o -> X.ED 10002 (BOS entry).
1 -> XeD 10004 (Multtcs entry)
2 -> XED 10000 (manual entry) */
/. set by BOS (for now) */
/~k set b}4' tnt t_slit */
/. set by start_cpu. Idle DBR */
/. message for return to BOS */
/. message for FNP use when Multtcs is down. */

sentinel char (32) altgned.
sst sdw bit (72),
hc dbr btt (72),
message char (64),
fnp_blast char (t28):

declare FLAGBOX_SENTINEL char (32) tntt ("Flagbo)( Be Toehold Vc,1td") tnt stat·tc opttons (constant);
/* END INCLUDE FILE ... fgb)(.incl.plt */

tncludp

*, hard.source
~ot

to be reproduced

f

gb)( . t nc 1 . P 11 1

35

segment
In:
entry modified:

/*
/*
/*
/*

Begin Include file ...... fs_dev_types.incl.pll */
Modified 5/19/76 by N. I. Morris */
Modified 12/27/78 by Michael R. -Jordan to correct MSS0500 information
Modified 4/79 by R.~.C. Kissel to add msu0501 information. */

dcl (maxdevt Init (7).
bulkdevt Intt (1),
msu0500devt Intt (2).
msu0451devt tnlt (3),
msu0450devt Intt (3),
msu0400devt tnlt (4),
dsu191devt intt (4),
dsu 190dev t i n t t (5).
dsu 18 1dev t t nit (6).
msu0501devt Inlt (7)
) fixed bin (4) static options (constant);
dcl
dcl

> I dd> 11 nc I ude
03/10/82 0836.8

MODEL (10) fixed bin static options (constant) In1t
(0.500,451.450.400.402. 191. '90~ 181. SOt);
MOOElX (to) fixed bin static options (constant) Inlt
2. 3. 3, 4. 4. 4. 5. 6. 7);

contents modified:

02/09/81

1416.2

*;

/* maximum legHI devt */
/* bulk store devt It/
/* MSU0500 device type */
/* MSU0451 device type */
/* M5U0450 device type */
/* M5U0400 device type */
/* 05U191 device type */
/* 05U190 device type */
/* 05U181 device type ~/
/* MSU0501 device type */

/*

KnQwn dev I CI:t mode I numbers • /

/* translation from model number to device type -/

(t.

dcl
dcl

MODELN (7) fixed bin statiC options (constant) tnlt
( 0 . 500, 45 t. 400, 190. 18 1. 501);

/- translation from ·devlce type to model number */

deVice_names (7) char (4) aligned static options (constant) Init ( /* device names Indexed by device type */"
"bulk". "d500 11 • "d451". "d400". "dI90". "dI81". "d50t");

1* ON -> d'emountable pack on device */

dcl

media_removable (7) bit (1) statiC options (constant) Inlt
(1I0 It b. "0"b. "t"b, "1"b. "l lt b. "1"b. "O"b);

dcl

shared_spindle (7) btt (1) static options (constant) inlt /- ON :> 2 devices per spindle -/
("oub. "tltb, "O"b. "Oltb. "O"b. 1t0"b, "1 lib);

dcl

rec_per_dev (7) fixed bin static options (constant) Inlt /* table of H of records on each device */
(0. 38258. 38258. 19270. 14760. 4444. 67200);

dc)

cyl_per_dev (7) fixed bin statiC options (constant) Inlt /* table of H of cylinders on each devlce"-/
(0. 814. 814. 410, 410. 202. 840);

dcl

rec_per_cyl (7) fixed bin statiC options (constant) Inlt
( 0 • 47. 47. 47. 36 • 22. 80);

dcl

sect per cyl (7) fixed bin static options (constant) tnlt /+ ,table of H of sectors per cylinder on each device */
(0. 760: 160. 760. 589. 360. 1280);

dcl

I-

table of H of records per cylinder on each device */

sect per rec (7) ftxed bin static options (constant) inlt /+ table of H of sectors per record on each device */

(0. 16. 16. 16. 16. 16, 16);

Include .••• hard.source
F80A - Not to be reproduced

Page

36

dcl

tracks_per_cyl (1) fi)(ed bin stattc opt tons (constant) in'l t /. table of
(0, 19, 19. 19, 19. 20, 20) ;

dcl

sect_per_track (1) ft)(ed btn
(0. 40. 40. 40. 31. 18. 64) ;

dcl

words_per_sect (1) fi)(ed bin stattc options (constant) inl t /. table of " of words per sector on each device +/
(0, 64. 64, 64. 64. 64, 64) :

dcl

first rec num (1) fl)(ed bin static options (constant) inU /* 'table of
(0, 0,-0, 0, 0, o. 0);

dcl

last rec num (1) fl)(ed bin (18) static options (constant) init /* table of " of 1ast record on each device +/
(0, 382517 38116. 19128, 14651. 4399.61199):

dcl

first_sect_nUlm (1) fhed bin (24) static options (const-ant) tntt /. table of
(0. O. O. 0, 0, 0, 0);

dcl

last sect num (1) ft)(ed bin (24) static options (constant) tnlt /. table of
(0, 6186397 616359. 309319~ 239122, 71999. 1015199):

dcl

first alt sect num (1) fl)(ed bin (24) static options (conlstant) tnit /. table of
(0. 6384007 616360. 309320, 239123, 12000, 1015200):

dcl

last alt sect num (7) fl)(ed bin (24) statfc options (constant) tnft /. -table of" of last sector of aU partition */
(0. 639919. 618639, 311599, 241489, 12119, 1017759);

sta~lc

II

of tracks per cylinder on each device +/

opt tons (constant) inl t /. table of " of sectors per track on each device +/

II

of ftrs! record on each device +/

II·

II

of ffrst sector for each device +/
last sector number for each device +/
II

of first sector of alt partition +/

dcl last_phystcal_sect_num (1) fl)(ed bin (24) -stattc options (constant) Inlt / .. table of H of last sector on device (includes T&D c
yl fnders) */
(0, 639919. 619399, 312359. 242249. 72359. 1011159);
dcl

dev time (1) float bin (21) stattc options' (constant) InU /* table of average access ttmes for E!ach device */
(384eO, 33181eO. 33181eO. 34122eO. 46935eO, 52631eO, 3318700);

/* End of include 'fIe

Include
F

~

~ot

hard. source
to be reproduced

37

segment
in:
entry modified:

fs_types.1ncl.pI1

>ldd>tnclude
03/10/82 0836.6

contents modlfted:

05/18/11

0819.5

/. BEGIN INCLUDE FilE ... fs_types.tncl.pI1 ./
dcl
dcl
dcl
dcl
dcl
dcl
dcl
dcl

ACCESS_NAME_TYPE btt (18) static options (constant) tntt ("()0000t"b3);
ACLE TYPE bit (18) static options (constant) intt ("000002"lb3):
DIR ~EADER TYPE btt (18) static opttons (constant) init ("000003"b3):
DIR-TYPE bTt (~8) static options (constant) Inft ("000004"b3);
LINK_TYPE btt (1S) stattc options (constant) tntt ("000005"lb3);
NAME TYPE btt (1S) static options (constant) init ("000006"b3);
SEG TYPE btt US) stat ic opt ions (constant) tntt ("000001"b3);
HAS~ TABLE TYPE btt (t8) static options (constant) tnit ("0000t3"b3):
-

dril
dcl
dcl
dcl
dcl
dcl
del
dcl

access name type ftxed bin static options (constant) tnlt (t):
acle_type fTxed bin static options (constant) tntt (2):
dtr header type fixed bin static options (constant) tntt (3):dir=type '.xed bin static options (constant) tntt (4):
link_type fixed bin static options (constant) intt (5);
name type ftxed bin static options (constant) init (6);
seg_type fixed bin static options (constant) tnit (1):
hash_table_type fixed bin static options (constant) intt (tt):

.

/* END INCLUDE FilE ... fs_types.tncl.p11 */

i nc

-3-.-.-.-,--h-a-r-d-.-s-o-UJ-···r-c-e---------------f-s-_-t-ypes-.-in-c-' -·-·-,-t-------------------------------'-."g-e--~3~8

F80A - Not to be reproduced

segment
tn:
entry modtf ted:

/* BEGIN INCLUDE FILE ... fs_vol_label.tncl.pl1

,* This
dcl

last

~odtfted

>ldd>include
OS/20/82 1047.6

January 1982 for hew

contents modified:

volum~

map format

OS/20182

1037.5

*1

is the label at ftxed locatton of each physical volume. Length t page *1

labelp ptr;

dcl 1 label based (labelp) altgned.

,*

First comes data not used by Multics .. for compatibility with GCOS *1
2 gcos (5*64) fixed bin.

,. Now we have the Multtcs label */
2
2
2
2
2
2
2

2
2
2
2
2
2
2
2
2
2
2
2
2
2

,*

Multlcs char (32) tntt ("Multlcs Storage System Volume"), /* Idantlfier ./
/* Version 1 .,
version ftxed bin.
/. Manufacturer's serial number ./
mfg sertal char (32).
/* Phyatc~l volume name. ./
pv_name char (32).
,. Name of logical volume for pack *1
lv name char (32).
,. Unique 10 of thts pack ./
pvtd btt (36).
/. unique 10 of its logical vol */
1 v 1d b tt (36).
/* unique 10 of the pack containing the root. every~ody must agree . • /
root pvtd btt (36).
I. time tllnported to system ./
t tme=regt stered f t xed bin (71).
/* H phys volumes in logtcal */
n pv tn lv ftxed bin,
/. total stze of volume, tn records *1
vol size fixed btn,
/* number of recs in fixed area + vtoc .1
vtoc Size fixed bin,
not used btt (I) unal,
/* used to be multiple class
/* TRUE if was registered_as private */
private btt (t) unal,
flagpad btt (34) unal,
/. Maximum access class for stuff on volume
max access class bit (72),
mln-access-class bit (72),
/* Minimum access class for stuff on volume *1
password btt (72),
1* not yet used */
padt (t6) fixed bin,
time mounted fixed bin (71),
,* ttme mounted ./
time vmap known good *1
tlme=map_updated fixed bin (71),

*,

.,

,*

The next two words overlay ttme_unmounted on pre-MRtO systems. This
forces a salvage if an MR10 pack is mounted on an earlter system.

*/

2 volmap version ftxed bin,
2 pad6 ftxed bin,

/* version of volume map (currently I) . /

2
2
2
2
2
2

/+ time salvaged *1
1* time of last boot load *1
/* ttme unmounted cleanly ./
/* pvtx tn that POMAP */

ttme salvaged ftxed bin (71).
ttme-of boot ftxed bin (71).
time-unmounted fixed bin (71),
last-pvtx fixed btn,
pad1; (2) ftxed btn.
err htststze fixed btn.
2 time_last_dmp (3) fixed bin (71),

tncludE"
F80!

hard. source

~ot to be reproduced

,*/*

*,

size of pack error history
time last completed dump pass started .,

pl1

39

2 time last reloaded

fl~ed

bin (11),

/+ what it says */

2 pad2 -- ( 40) - f t xed bin.

2 root.
3 here btt (I),
3 root vtocx fixed bin (35),
3 shutdown state fixed bin,
3 pad1 blt-(1) aligned,
3 disk table vtocx fixed bin,
3 disk_table=utd bit (36) aligned,
3 eSd_state flxed,bln,
2 volmap record fixed bin,
2 size_of_volmap fixed bin,
2 vtoc map record fixed bin,
2 Size-of vtoc map fixed bin,
2 volm;p ~nlt ilze fixed bin,
2 vtoc origin-record fixed bin.
2 dumper._bltjiiap.fecord fixed bin,
2 vol trouble count fixed bin,
2 pad3 (52) fixed bin,
2 nparts fixed bin,
2 parts (41),
3 part char (4).
3 frec fixed bin,
3 nrec fixed bin,
3 pad5 fixed bin,
2 pad4 (5+64) fixed bin:
dcl

/. TRUE if the root Is on this pack +/
/+ VToe index of ,'oot. tf i t 15 here ./
/* Status of hierarchy */
/*
/+
/+
/+
/*
/.
/+
/+
/+
/*
/+

VToe Index of disk table on RPV +/
UIO of disk table +/

State of esd ~/
Begin record of volume map */
Number of records In volume map +/
Begin record of VTOC map +/
Number of records in VToe map +/
Number of words per volume map section +/
Begin record of VTOC ./
Begin record of dumper bit-map */
Co~nt of Inconsistencies found since salvage +/

/+ Number of special partitions on pack +/
/+ Name of partition +/
/* first record */
/* Number of records */

Multics_ID_String char (32) Intt (~Multlcs Storage System Volume") static;

/* ENO INCLUDE FILE fs_vol_label.

inc
F80A - Not to be reproduced

Incl.pl~

*/

l,pl1

40

hc_lock.tnc1.p11

segment
In:
entry modified:

>'1dd> Include
04/14/82

contents modlf.ed:

04/14/82

1336. 1

1337.7

*,

1* Begin tnclude file hc 10ck.lnc1.plt BIM 2/82
1* Lock format suitable for use with lock$10ck_fast, unlock_fast *1
I. format: style3 .1
dec1are
declare

10ck_ptr
1 lock
2 pfd

2 event
2 flags
3 not tty sw
3 pad
-

pointer:
aligned based (lock ptr),
bit (36) aligned. bit (36) aligned.
al tgned.
bit (1) unaligned,
bit (35) unaligned:

I. holder of lock .1
I. event assaclated with lock ./

I. certain lacks use this pad, like dlrs .1

I. End Include ftle hc_lock.lncl.p11 .1

tnclude
F80A

*, hard. source
.ot to be -reproduced

he _lock. t nc 1 . P 1 ~

41

ttt_ontry.incl.pl1

segment
in:
entr'y modtf tod:

BEGIN INCLUDE FILE ...

1*
dcl

format: style3 *1
Itte_ptr
ttt entry

dcl

2 next Itt relp
2 pad -

2 sender

END INCLUDE FILE .•.

+*

hard. source

F80A - Not to be reproduced

contents

modlf~ed:

08/06/81

1825.8

Itt_entry. incl .p11 ... Feb 1981 */ '

ptr;

/* pol~ter to entry In ITT */

aligned based (itte_ptr).
bit' ( 18) una I i gned .
bit (18) unaligned,
bit (36).

1*
1*

declaration of single entry In the ITT */
thread of relative pOinters *1

1+.

Id of sending process */

1*
1*

If user-event. sender's validation ring

2 origin.
3 dev signal
3 ring
:2 target Id
2 channel td
:2 message

>ldd>lnclude
03/10/82 0837.0

bit (18) unaligned,
fixed bin (17) unaligned,
bit (36).
fixed bin (71),
fixed bin (71);
itt_entry.lncl.pl1

/* origin of event message *1
/* 0 = user-event, 1-= device-signal

target process' Id *1
/* target process' event channel
/+ event message *1

*1

+1

*1

*1

;e

42

segment
in:
entry modified:

k st. t nc 1 . pI 1

/*

BEGIN INCLUDE FJLE

dcl

pds$kstp ext ptr.
(kstp. kstep) ptr;

>ldd>lnclude
03/14/83

contents modified:

03/14/83

t654.3

1655.6

- - - kst.lncl.plt - - - last modified March 1976 by R. Bratt */

dcl 1 kst altgned based (kstp).
/* KST header declaration */
2 10wseg fixed bin (17).
/* lowest segment number described by kst */
2 htghseg fixed btn (17).
/* highest segment number described by kst */
2 hlghest_used_segno fixed bin (17).
/* highest segment number yet used */
2 lvs f txed btn (S).
/* number of private LVs this process is connected to */
2 time of bootload ftxed bin (71).
/* bootload time during prelinklng */
2 garbage:collecttons ftxed bin (17) unaligned.
/* K,ST garbage collections */
2 entries_collected fixed bin (17) unaligned.
/* KST entries recovered by garbage collection */
2 free_list btt (1S) unaltgned.
/* relative pointer to first free kste */
2 prellnked_rtng (7) btt (1) unal tgned.
/ .. rings prel Inked In process */
2 template btt (t) unaligned.
/* this Is a template kst If set */
2 allow 256K connect bit (1) unaligned.
/* can use 256K segments */
2 unused_2 btt (9) unaltgned.
2 uld_hash_bucket (0 : 127) btt (1S) unaligned.
/* hash buckets */
2 kst_entry (0 refer (kst.lowseg):O .refer (kst.htghseg)) altgned like kste. /* kst entries */
2 Iv (1:256) btt (36).
/* private logical volume connection list */
2 end_of_kst bit (36);
/* KST entry declaration */
/* forward r~l pOinter */

dcl 1 kste based (kstep) aligned.
2 fp bit (tS) unaligned.
2 segno fixed btn (11) unaligned.
2 usage count (0:7) fixed bin (8) unaligned.
2 entryp ptr unaligned.
2 utd btt (36) aligned.
2 access_Information unaligned.
3 dtbm btt (36).
3 extended access bit (33).
3 access btt (3).
3 ex rb (3) btt (3).
2 hdr b tt (3) una 1 t gned •
2 flags unaligned.
3 dlrsw btt (1).
3 allow write bit (I).
3 pr t v t n It b i t (1).
3 tms bit (1).
3 tus b tt (1).
3 tpd btt (1).
3 audit bit (1).
3 explicit deact ok btt (I).
3 pad bitT 3 ) • 2 Infcount fixed bin (12) unaligned;
END INCLUDE FILE

includE'
FSOA

hard. source
Jot to be reproduced

/*
/*
/*
/*

segment number of this kste */
outstanding Initiates/ring */
branch pOinter */
unique IdElnt If ler */

/* date time branch modified */
/* extended ~ccess from the branch ./

/* rew */
/* ring bracke~s from branch */
/. highest dEltectable ring ./
/* directory switch */

/*
/*
/*
/*

set If Inttlated with write permission */
privileged initiatIon */
t'ransparent modi flcat Ion swl tch */
transparent usage switch */
/* transparent paging device switch */
/* audit switch */
/* set If I om willing to have a user force deactivate */

/ * if. dl rsw

- - kst.lncl.plt -

k st. I nc I . pIt

~then

Infer. i or count else I v Index

*/

.. - - - - */

43

lock_array.tncl.pl1

segment
in:
entr·y mod t f t ect:

>ldd>tnclude
04/14/82
1331.1

contents modified:

04/14/82

1336.2

/*

BEGIN INCLUDE FILE ... lock array. tncl.plt */
modified BIM 2/82 to clean up *7
1+ format: style3 +1

1*

(0: 19) external aligned like pds_entry;

dcl
dcl

pds_entry
:2 10ck~p1tr
:2 event
:2 flags

3 dir_Dock
3 one word
3 pad:2 caller _ptr

1*

based,
pointer,
btt (36) aligned,
al igned,
bit (1) unaligned. 1+ This is a dir read lock */
bit (1) unaligned. 1* lock$wait *1
bit (34) unaligned, I. else 10ck$10ck_fast */
po-t nter i

END INCLUDE FXLE ... 10ck_array.tncl.p11

' .•• , hard.source
F80A - Not to be reproduced

*1

,01 ,

44

lvt. tncl.pl1

segment
in:
entry modified:

1* BEGIN INCLUDE FILE lvt.lncl.plt -- Written Jan.
1*

1976

t 1/22,/76

1025. 1

~olume

Iable (LVT).

1 vt$ ext:
lvtp ptr;
I vtep ptr:

dcl 1 lvt aligned based (lvtp),
2 max lvtex ftxed bin (17),
2 htgh_water_lvtex fixed bin (17).
2 free_lvtep ptr.
2 pad 1 ( 4) bit (36).
2 ht (0:63) ptr unal,
2 lvtes (1:1 refer (lvt.max_lvtex)) ltke lvte:
dcl 1 lvte aligned based (lvtep),
2 lvtep ptr unaligned,
2 pvtex fixed btn (11),
2 I v t d b tt (36).
2 access class aligned.
3 min bit (12).

3 max bit (72).
2 flags unaligned,
3 public bit (t),
3 read_only btt (t).
3 pad b. t (16).
3 cycle_pvtx fixed bin (17);

,*

contents mod tf led:

*1

by R. Bratt

This Include ftle defines the format of the hardcore !:.oglcal

dcl
dcl
dcl

> 1dd> Inc 1ude
03/t0/82 0836.6

,*1* highest
maximum number of LVs describable
LVT Index assigned .1
/* potnter to

first free lvte

*/

*/

1* lvid hash table *1
/* LVT entries *1
/* logical volume table entry */

1* lvtd hash thread *1

/* thread of mounted PVs */
/* logtcal volume td */
/* access Isolatton mechanism stuff */
1* minimum access class allowed on LV *1
1* maximum access class allowed on volume *1
1* flags
/* -> anyone can connect to this LV *1
/* -> no wrttes on this LV */

*,

/* pvtx for next per_process seg */

END INCLUDE FILE Ivt.tncl.plt

Inclurie
F80A

hard. source
Jot to be reproduced

lvt. Incl.p1 t

45

mc. t nc 1 . P 1 1

.••• hard.source
F80A - Not to be repr'oduced

segment
tn:
entry modified:

mc. inc 1 . pI 1

>ldd>tnclude
03/10/82 0831.0

contents modified:

09/08/81

1426.4

Je

46

*/
/* BEGIN INCLUDE FILE mc.tncl.p11
Created Dec 72 for 6180 - WSS . • /
1* Modified 06/07/76 by Greenberg for me.reslgnal */
/. Modified 07/07/76 by Morrts for fault register data */
/. Modified 08/2B/BO by J. A. Bush for the DPSB/70M CVPU */

/* words 0-15 pointer registers ./
dcl

mcp ptr;

dcl t me based (mcp) altgned,
2 prs (0:7) ptr.
(2 regs.
3 x (0:7) btt (1B).
3 a btt (36).
3 q btt (36).
3 e bit (B),
3 pad1 btt (2B).
3 t bit (27),
3 pad2 bit (6).
3 ralr btt (3).

/*
/*
/*
/*

POINTER REGISTERS */
register's ./
tndex rngtsters */
accumuliltor ./

/. q~regisl:er ./
/. exponenl: ./

/* timer rogtster ./
/* ring alurm register ./

2 scu (0:7) bit (36).
2
2
2
2

2
2
2
2
2

mask bit (72).
ips temp bit (36).
errcode fixed bin (35),
fim temp.
3 unique index bit (tB) unal.
3 resignal bit (1) unal.
3 fcode bit (17) unal,
fault reg bit (~6).
pad2 b tt (t),
cpu_type fixed bin (2) unsigned,
ext fault reg btt (15),
fauTt_time bit (54),

2

e~s_info

dcl (apx
abx
bpx
bbx
lpx
lbx
spx
sbx

include
F80"..

fixed
fixed
ftxed
fixed
fixed
fixed
ftxed
fixed

( 0 : 7)

bin
bin
btn
btn
bin
bin
bin
bin

/* mam controller mask at time of fault */
/. Temporary storage for IPS 1nfo ./
/. fault hundler's error code */

/.
/.
/*
/*

unique index for restarting faults ./
recompuqe signal name with fcode below ./
fault code used as tndex to FIM table and SCT */
fault rogtster ./

/* L6B • O. DPSB/70M • 1 ./
/* extended fault reg for OPSB/70M CPU ./
/. time of fault ./

bit ( 36 )) unallgnedi

tntt
tntt
tntt
tnft
Intt
tnft
tntt
Inlt

(0) •
( 1).

( 2).
(3) •
(4) •
(5).

(6) ,
(7)) internal static;

hard. source
at to be reproduced

mc. I nc 1 • P I 1

47

dcl
dc'

SCllP ptr;

1 scu based (scup) aligned,

It SCU DATA .1

*1

WORD (0)
(2 ppr,

3 prr bit (3),
3 psr bit (15).
3 p bit (0,

/. PROCEDURE
procedure
I. procedure
/. procedure

1*

'1.

2 apll,

3 xsf bit (1),
3 sdwm bit (i),
3 sd on Ibtt (1).
3 p t wm bit (1),
3 pt on btt (i),
3 pl-ap Ibtt (i),
3 dsptw bit (n,
3 sdwnp btt (i),
3 sdwp btt (t),
3 ptw bit (0.
3 ptw2 bit (1),
3 f ap bit (t)
3 f anp bit (1),
3 fabs bit (1).
0

2 fault_cntr bit (3),

POINTER REGISTER +1
ring register +1
segment register *1
privileged bit *1

APPENDING UNIT STATUS

*1

/* ext seg flag - IT modification

1*
1*
'1*
1*

*1

I.

match In SOW Ass. Mem. *1
SOW Ass. Mem.
ON.I
match in PTW Ass. Mem. *1
PTW Ass. Mem. ON *1
Instr Fetch or Append cycle *1
Fetch of DSPTW +1
Fetch of SOW non paged .1
Fetch of SOW paged .1
Fetch of PTW tl
Fetch of pre-paged PTW .1
Fetch of final address paged .1
Fetch of final address non-paged .1
Fetch of final address absolute *1

1*

number of retrys of EIS Instructions

/*
1*

1*

I.

1*
/.

1+
/*

.1

WORD (t)
2 fd,
3 t ro b t t

I. FAULT
(t)

I>

3 oeb btt (1).
'3 e of f b t t (1),
3 orb b it (1).
3rof'fbtt(O,
3 owb b It (1).
3 w off bit (i),
3
ga btt (i),
3 ocb bit (i).
3 oca lIb i t (1),
3 boc bit (1).

no

3
3
3
3
3

3
3
3

inret bit (0,
crt bit (1)
ralr bit (0,
am er bit (i),
oosb btt (1),
paru btt (1),
par 1 bit (1).
onc __ 1 bit (1).
0

I~ . * "', hard. source
F80A - Not

to be reproduced

DATA.I

/* illegal ring order

.1

I.

.

I. out of execute bracket *1
no execute

.1

I. out of read bracket *1
I. no read '.1

1*

out of write bracket .1
/. no write *1
/. not a gate *1
I. out of call bracket .1
1* outward call *1
1* bad outward call *1
1* inward return *1
I. cross ring transfer *1
/* ring alarm register *1
1* assocl~tlve memory fault *1
1* out of segment bounds *1
/* processor partty upper .1
/* processor partty lower .1
/. op not complete type 1 *1

me: i nc I . pIt

~ge48

3 onc_2 bit- ( t ) •

/* op not complete type 2 */

2 port stat,
3 tal bit (4),
3 t ac b It ( 3 ).
3 con_chan btt (3).

/* PORT STATUS */
/* illegal actton lines */
/* illegal actton channel *1
/~ connect channel */

2 ft num btt (5).
2 f.:flag btt (1).

/* (fault/interrupt) number */
/* 1 -> fault." 0 c> interrupt

*/

WORD (2)

/*

2 tpr.
3 trr bit (3).
3 tsr bit (15).

/* TEMPORARV POINTER REGISTER */
/* temporary rtng register */
/* temporary segment register */

2 pad2 bit (9).
2 cpu_no be t (3).

/* CPU number */

2 delta bit (6).

/* tally modification DELTA */

/+

+/

WORD (3)
2 word3 bit (18).
2 tsr stat,
3 tana,
4 prn bit
4 pry bit
3 tsnb.
4 prn bit
4 pry bit
3 tsnc,
4 prn bit
4 pry bit

(3).
(1).

(3),
(1).

(3).
(1),

2 tpr_tbr bit (6).

1*

/* TPR.TBR

fteld *}

WORD (4)
2 Hc bit (t8),
2 ir.

tncludr

/* INSTRUCTION
/* INDICATOR

3 zero bit (t).
3 neg bit (1).
3 carry btt (1).
3 ov fIb It (1).
3 eovf bit (1),
3 euf 1 bit (1).
3 of 1m bt t (1),
3 tro bit (1).

F80A

/* TSR STATU~ for 1,2,&3 word Instructions */
/* Word 1 st~tus *1
/* Word 1 Pf;! number */
1* Word 1 PR valid bit */
/* Word 2 status */
I * Word 2 PF! number */
/* Word 2 PU valtd bit */
/* Word 3 status */
/* Word 3 PH number */
/* Word 3 PH valtd btt *1

*0 hard. source
'ot to be reproduced

COUNTER */
REGISTERS */

1* zero tndtcator */
/*
/*
/*
/*
/*
/*
/+

me. t nc I . pIt

negattve Indtcator */
carryry tndicator +/
overflow Indtcator */
eponent overflow */
exponent underflow */
overflow mask */
tally runl::Jut */

49

I. parity error .1

3 par' bit (1),
parm btt (1),
bm b j t (1).
trubit (0,
mtf hit (I),
abs bit (1),
pad bit (4).

1*

parity mask

1*
1*
It

truncation mode *1
multi-word instruction mode
absolute mode *1

2 ca bit (18),

1*

COMPUTED

2 cu,
3 rf bit (1),
3 rpt bit (1),
3 rd btt (t),
3 rl btt (1),
3 pot bit (1).
3 pan bit (1),
3 xde btt (1).
3 xdo bit (i),
3 poa bit (1),
3 rff bit (1),
3 its bit (0,
3 i f bit (1),

1* CONTROL UNIT STATUS *1
1* on first cycle of repeat instr *1
1* repeat Instruction *1
1* repeat double instruction *1
1* repeat link instruclton *1
1* IT modification *1
1* return type instruction *1
1* XDE from Even location *1
1* XDE from Odd location *1
1* operatton preparation *1
1* tells CPU to refetch instruction *1
1* ITS modification *1
1* fault occured during instruction fetch *1

3
3
3
3
3
3

/* "bar mode .1

*1

*1

WORD (5)

computed tag field

2 even_Inst bit (36),

1*

even instruction of faulting pair

*1

2 odd_inst btt (36);

1*

odd

*1

unaligned,

*1

·1

WORDS (6,1)

ALTERNATE
dcl

*1

1*

2 cpu_tag bit (6»

I·

ADDRESS

SCU

DECLARATION

Instruction of faulting pair

*1

1 scux based (scup) aligned,
(2 padO bit

(36),

2 fd,
3 i sn bit (1),
3 t oc bit (1),
3 ia am bit (t),
3 I
bit (1).
3 i pr bit (1),
3 nea bit (1),

sp

•• , hard.source
F80A - Not to be reproduced

GROUP II
FAULT DATA ~I
illegal segment number *1
illegal op code *1
Illegal address - modifier *1
I. Illegal slave procedure +1
1* illegal procedure *1
1* non existent address *1

1*
1*
1*
1*

mc. i nc 1 : p 1 1

~e

50

3 oobb bit (1).
3 pad bit (29).

/. out of bounds . /

2 pad2 bit (36).
2 pad3a bit (18).

/. T$R

2 tsr_stat (0:2),
3 prn bit (3).
3 prv bit (1).

/ . PR
/ . PR

STATUS as an
number .1
val td bit . /

ARRAY */

2 pad3b bit (6) ) unal tgned.

2 pad45 (0: 1) bit (36) •
2 tnstr (0: 1) bit (36) ;

/.

END INCLUDE FILE

tncludp
f80A

~

/* Instruction ARRAY */

mc. Incl .pl1 . ,

•• hard.source

!tJt to be reproduced

mc. t nc 1 • P 1 1

Page

51

null_addresses. tncl.pl1

/* BEGIN INCLUDE FILE

segment
tn:
entry modified:

>ldd>lnclude
10/13/82 1311.9

contents modified:

10/13/82

1310.8

null_addresses.tncl.pll */

dcl (pc move page table 1 null addr intt
pc-move-page-table-2-null-addr intt
get_aste_nulT_addr-tntt make sdw null addr tntt
put_aste=null=addr tntt
page_bad_pd_null._addr Inl t
list depostt null addr tnlt
get_flle_map=null=addr Inlt
ftll page table null addr tntt
tntt-sst null addr tntt
get file-map vt null addr tntt
unprotected null addr tntt
page parity-null'-addr inlt
page=devpartty_null_addr Intt
get_flle_map_dumper_non_null_addr tntt
page bad null addr tntt
page=problem_null_addr Inlt

("3110070"b3) ,
("3110100"b3),
( "37701 to"b3) ,
("3170120"b3).
("3170130"b3),
("3170150"b3),
("3710160"b3),
( "3110110"b3),
("3170200"b3),
("37702 to"b3),
("3170220"bJ),
("3770230"bJ),
( "3170260"b3),
("3770270"bJ).
( "3777720"b3),
(113770240"b3),
("3770250"b3») btt (22) aligned static options (constant);

dcl create_vtoce_four,_null_addrs fixed bin (71) Int static Intt (-,0;/* 777717 777777 717777 777777 */
del (create vtoce null addr tntt
update-vtoce-null-addr Intt
truncate vtoce ftll null addr Init
truncate-vtoce-nul'-addr-Intt
pv salv null addr tntt
pv-scav-nul1-addr tntt
volume reloader null addr tntt
volume-r'etrtever null addr tntt
salv_truncate_null_adar tntt

( "777777"b3) ,
("777776"b3),
("111175"b3),
( "711002"b3).
("771004"b3),
("177006"b3).
("177174"b3),
("177773"bJ),
("777005"b3)) bit (18) altgned stattc options (constarit);

/* END INCLUDE FILE null_addresses.tncl.pl1 */

.**, hard.source
F80A - Not to be reproduced

nu 11_addresse

lcl . pI

f

',e

52

pds.cds

segment
in:
contents modified:

>ldd>hard>source
03/Q4/83 1653.3

system td:
entry modff led:

37-20
03/27/83

1807. :;!!

/ • • • • • • • + •••••••••••••• *~ ••••••••••••••••••••••••••••••••••••

•

•
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Copyright. (C) Honeywell Informatton Systems Inc .• 1982 •

/. PDS - The Process Data

*/

Segm~nt

Last modtfied (Date and reason):
2/6/76 by S. Webber Initial codtng
9/17/76 by R. Bratt to add seg fault. bounds_fault, vtoc_read, and vtl,c_wrtte meters.
11/03/76 by M. Weaver to extend stack header
04/20/77 by M. Weaver to delete rntp and 7/77 to add name template_pd:!
06/07/78 by E. Donner to add ring_events (to prevent delayed Ipc wakeups)
05/10/79 by B. Margultes to ellmtnate exmode_level
05/09/79 by Mike Grady to use shared ring 0 stacks
08/17/79 by ~. A. Bush for exp under/overflow restart switches & cachl3 parity dtagnostlcs
02/28/80 by B. Margulies to use the include ftle for the default overflow
08/26/00 by ~. A. Bush for the DPS8/70M CPU
value.
02/23/81 by ~. Bongiovanni to remove temp_mode_reg (moved to prds$mod'9_reQ_enabled)
03/81 by E. Donner to remove next_ttt and ect_polnters
3/82 BIM for lock_array cleanup.
11/82 by ~. Bongiovanni to make force_wrtte_limit per-rtng
2/83 by E. N. Ktttlttz for hfp_exponent_enabled.

/* ••••••••••••••••••••••••••••••••••••••••••••••••••••••

•
•
• Copyright

•
•
•

•

•

(c) 1972 by Massachusetts Institute of
• Technology and Honeywell Information Systems. Inc . •

•
•
•............•......•.......................•.........

.
/

/* format: style3.tdtnd25 ./
pds:.
proc;
/. Thts program creates the pds data base ./
/. Automatic ./
dcl
dcl

Include

Fool

1 cdsa
code

hard. source
~ot to be reproduced

aligned ltke cds_args;
fixed btn (35);

pds.cds

53

/* Constants */
dcl
dcl

pdsname
exclude_pad

char (3) aligned static tnit ("pds") options (constant);
(1) char (32) aligned stattc opttons (constant) tntt ("pad+");

/ . Bu t i t i ns .~ /

dcl

(addr, bin, btt, hbound, mOd. null, reI, size, strtng. unspee)
but it tn;

1+ Entrtes ./
dcl
dcl
dcl
dcl
dcl
del

corn err
create_data_segment_
get_temp_segment_
release_temp_segment_
hcs $chname ftle
get-wdtr
-

-

entry
entr,y
entry
entry
entry
entry

options (variable);
(ptr, fixed bin (35));
(char (t), ptr. ftxed bin (35));
(char (t), ptr, fixed bin (35);
(char (t). char (t), char (+), char (t), fixed bin (35));
() returns (char (16B));

/+ External Static */
dcl

error_table_$segnamedup

'" *, hard. soUt'ce
F80A - Not to be rept'oduced

fixed bin (35) ext;

pds.cds

~Je

,54

dcl
del

pdsp
pds
2 page_faul t_data '
2 flm data
2 stgnal_data
2 history_reg_data
2 process_group_ld
2 cpu_time

ptr;
aligned based (pdsp),
like mc,
like mc,
al tgned 1 Ike mc,
(64) fixed bin (11),
char (32),
f hed bin (52),

1* MC for page faults and timer runouts *1
1* MC for normal faults */
1* storage for MC being signalled */
/. this must follow signal data *1
1* user Id for current process */

/* number that when subtracted from cleck reading gives
virtual cpu time */
/* temporary used In calculating VCPU ttme */

2 virtual delta
fixed bin (52),
2 virtual:ttme_at_ellglbtltty
fixed bin (52),
1*
2 temp_1
fixed bin (11).
1*
2 temp_2
fixed bin (11).
1*
2 time t
fixed bin (52),
I.
fixed bin (52),
I.
2 tlme:v_temp
2 fim_v_temp
ftxed bin (52),
1*
2 f tm v delta
fixed bin (11).
1*
2 save_history_regs
btt (l)altgned,
1*
2 hregs_saved
btt (1) aligned,
1*
2 last sp
ptr.
1*
2 apt Ptr
ptr.
1*
2 arg-1
fixed bin (11).
I.
ftxed btn (71),
1*
2 arg:2
2 arg_3
ftxed btn (11),
1*
2 arg_4
fixed btn (71),
1*
2 access_authorization aligned like aim template,

-

2
2
2
2
2
2

2
2
2
2
2
2
2
2
2

2
2
2
2
2
2
2
2

include
F80"

base_addr._reg
bit (18) aligned,
alarm_ring
ftxed btn (3),
pxss_args_invalld
btt (36) aligned,
processtd
btt (0) unaltgned,
process_td
bit (36) aligned.
vtlme count
fixed btn.
pstepbit (0) unaligned,
dstep
btt (18) al tgned,
wakeup_flag
bit (36) aligned.
pc call
bit (36) aligned.
audit_flags
btt (36) aligned,
quota tnhtb
btt (36) aligned.
pd_page_faults
fixed bin.
page_watts
fixed bin.
number of pages tn use
- - - fixed bin,
post_purged
ftxed bin,
connect pending
btt (1)altgned,
segment-faults
ftxed bin (35).
bounds faults
fixed bin (35),
vtoc reads
ftxed bin (35).
vtoc:writes
ftxed bin (35).
mc_trace_seg
fixed bin.
mc_trace_sw
btt (2) aligned,

*, hard. source

/lot to be reproduced

pds.cds

temporary used tn calculation of VCPU time
temporary *1

temporar~'

*1

*I

page fault metering time *1
temporary used In calculating VCPU time */
VCPU temporary for the FIM *1
VCPU temporary for the FIM *1
• "1 Mb if history registers are to be saved
• "1 Mb tf history regs were saved *1
stack poInter at ge~work time *1
pOinter to thts process's APT entry *1
argument for pxss */
argument for pxss */
argument for pxss */
argument for pxss */

*1

I· access authortzat ton for'the process *1
I. for BAR .node use *1

1* setttng ~or ring alarm register *1
1* used by pxss masklng/arg copying code */
I. process :[0 (added s,egdef) *I
1* process [0 *1
1* depth counter used In VCPU calculation *1
1* (added s~gdef for dstep) *1
1* rei pOinter to ASTE for dseg *1
1* flag I"dtcatlng type of wakeup *1
1* flag saying type of walt *1
1* bits tndlcatlng types of auditing to do *1
1* ON If quota checking to be inhibited */
I. faults from paging device *1
'
1* page faults *1
/* used In calculating memory units *1
number of post purglngs *1
turned on for delayed connects to be resent by flm */
count of segment faults taken by this process */
count of bounds faults taken by this process */
,. vtoc read I/0s done for this process *1
1* vtoc write 1/05 done for this process */
1* seg number of object segment being traced */
1* switch for M. C. Tracing "11 Mb -> trace on *1

1*
1*
1*
1*

55

2 stack

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

2
2
2
2
2
2
2
2

2
2
2
2
2
2
2

2
2
2
2
2
2
2
2

Inc'

°

sdwp
stack=:o=:ptr
tc_argp
tc_masS<
exp_undfl_rest
exp ovtFl rest
eovfl value
cpar err data
cpar-mem-data
cpar-Info
hfp exponent enabled
pad=:for_trace_mod16
trace

p'f;r a I tgned,
p t r a I t gned ,
ptr,
bit (72) aligned,
bit (1) a I I gned ,
b It (t) a I I gned ,
btt (72) aligned,
bit (72) aligned,
btt (72r aligned,
btt (36) aligned,
bit (1) aligned,
(14) fixed bin.
(306) fixed bin (71),

timer time out
t I mer -(Channe I
term_channel
term proc
pIt machine
valTdatton_level
conditfon_name
3 len
3 chars
pad obsolete
Ips-mask
auto mask
rlng-a1arm val
10ck-td
mc trace buf
pad_end_of_page_o
pathname am
tnttta1 procedure
account-Id
lock_array
access name
3 user3 project
3 tag
home dtr
process_dlr_name
wd I r

1*
1*
1*
1*
1+
1*
1*
1+
1+
1*
1*

ptr to stack sdw In dseg *1
ptr to base of ring 0 stack (wired for esd) *1
arg ptr used by tc *1
save tc mask *1
switch for restarting, exp underflows from the flm +1
switch for restarting exp overflows from the flm *1
value to load,when restarting exp overflows from the flm
cache parity error data (from cache) +1
cache parity error data (from memory) *1
diagnose fla9, cache level and absaddr H *1
user allowed'to set IR hex exp bit *1

1*
1*

system trace data *1
pds$trace + 16 defines the pds for Idle procs *1
1"4 time out time for the prqcess */
/* event channel for time out event */
1* channel used to signal process termination *1
1* process 10 of process to signal term process *1
1+ ncmzero If we do pll-llke things */

fixed bin (52).
f I xed bin (7 1 ) •
fixed bin (71).
bit (36) aligned.
fixed bin,
fixed bin (3).
aligned.
1+ Ace string for condition name *1
fixed bin (8) unaligned,
char (31) Unaligned.
bit (36) aligned.
(0:7) bit (35) al tgned.
1+ IPS masks *1
(0:7) btt (36) aligned.
1* array of automatic masks for IPS signals *1
(0:7) fixed bin.
1* used In checking validation level changes *1
btt (36) aligned.
/* UfO used tn some locking *1
ptr unaligned.
1* packed ptr to mc_trace wired buffer +1
bit (0) unaligned.
aligned like pam.
1* pathname associative memory *1
ptr.
1* first procedure executed In a, new process *1
char (32) aligned,
1* not used yet *1
(0:19) aligned like pds entry.
aligned.
- i* alternate form of process group Id *1
char (32) aligned.
char (32) aligned,
char (32) aligned,
char (168) aligned,
1* home directory *1
char (32) aligned.
/* name of process directory *1
( 0 : 7) P t r •
1* pointers to pe'r-rlng working directories */
wdtr~utd
(0:7) bit (36) 'aligned, 1* UIO of per-ring working directories */
transparent
bit (36) aligned,
1* transparent usage, mod, pd switch *1
itt head
bit (18) ,aligned,
1* top of present ITT list *1
max-access authorization
a I 'gned like aim template,
1* max authorization this user can attain */
stacks
(0:7) ptr,
1* per-ring stack ppinters *1
kstp
ptr.
1* pOinter to start of ·KST *1
events pending
bit (36) al.gned.
1* special wakeups·pendlng *1
special channels
bit (36) aligned.
1* special channels assigned */
event masks
(7) btt (36) aligned,
1* per-ring mask for special channels */
tntt ial r tng
fixed bin (3),
1* Initial 'ring of execution for the process *1
tnterru~t_rlng
f t xed b t n (3).
1* lowest ring tn which IPS Interrupts are allowed
highest_ring
f t xed bin (3),
1* ~Ighest ring In which process car run *1

, , *,., hapd source
0

F80A - Not to be reproduced

pds.cds

~I

*1

56

2 prellnked ring
b i t ( 8) a I I gned ,
2 unlque_scu_lndex
bl~ (3G) aligned,
2 max lot she
(0:7) fixed bin,
2 lot-stack size
(0:7) fixed bin,
2 clr-stack-slze
(0:7) fixed btn.
2 network_ptbl_ldx
ftxed bin,
2 link meters bins
(4) f txed bin,
2 ltnk-metars-llmes
(4) fixed bin (30),
2 llnk-meters-pgwatts ( 4) f I xed bin,
ptr, .
2 dmpr:copy_dtrsegp
2 dmpr_pvld
btt (36).
2 dmpr pvtx
fixed bin.
2 first_call
fixed bin.
2 mc save area
btt (t8) aligned,
2 mc-save-ptr
btt (18) aligned,
2 mc:save:' tnt I t
btt (t8) aligned.
2 useable lot
b tt ( 8) a 1 I gned •
bit (36) aligned.
2 ring events
2 force_wrlte_llmlt (0:7)
fixed bin,

2 'pc vars
3 ap
3 retsw
3 save_entry_ret
3 truncated stacks
3 chan
3 block_start_steps
3 stk temp
2 fpc_block_return
2 avg_block_steps
2 block lock count
2 pad_for_data_mod16
2 data

aligned,
po "nter una I •
fixed bin (35),
f txed bin (35).
fixed bin (35),
f t xed bin (71).
It xed b t n (35),
f t xed bin (35).
bit (36).
f I xed b t n (35, 18 ).
fixed bin.
(13) fixed btn (35).
bit (0) al tgnad;

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

blt(l) Is ON If ring (t) .Is prellnked */
used to teg Me */
sizes lote can grow to */
she of lclt tn stack (0 -> lot not In stack) */
size of ClR In stack */
Index Intel NCP's process table */
hlstogram~ of linkage faults */
histogram of linkage fault times */
histogram
1tnkage faults PF's */
ptr to temp segment Into which dlrs are copied */
pvld of volume being dumped */
pvtx of ve.lume being dumped */
ON unttl leave ring zero once */
reI polnt~r to start of saved Me area */
ptr to next mc save place */
max addre~s where Me can be saved */
Indicates whether lot can be referenced */
per-ring indicator that Itt messages copied to ect */

0'

/* Itmtt on force-writing */
/* Following must be d~ubleword aligned' */
/* holds state of fast_hc_Ipc at block */

/* fpc block return address */

/* count of locks held */'
/* to mark end of PDS for

Me

save area */

%Include pathname am:
%tnclude exponent-control tnfo:
%Include lock_array:
-

tncludp

FaOA

., hard.source
Jot to be reproduced

pds.cds

,. 'le

57

call get_temp_segment_ ("pds", pdsp, code);
/* Now begtns the tnittaltzatton */
pds. process_group_ td

=

"Int t ta I izer. SysOaemon. z";

pds.access_authortzatton.categories = (18)"0"b;
pds.access authorization. level = 0;
pds.access-authorlzation.dir = ~1"b;
pds.access:authorization.seg • "1"b;
pds.acces5_authorizatton.rcp • "1"b:
pds.access_authortzatton. tpc = "1"b:
pds.access_authortzatton.soos = "1"b;
pds.max_access_authorization.categortes
= 7;

=

/* for

i~tttalizer

*/

/* .. */

(t8)"1"b :: (t8)"0"b;

pds.max~access_authorizatton.level

pds.vttme count = -1;
pds.proceis td = (36)"I"b;
pels. lock td-· (36)"t"b:
pels.plt machine = t;
pels. tps:h\ask (*) • (35)" '''b;
pds.force_wrtte_ltmtt (.) = 1:
pds.save_htstory_regs, pds.hregs_saved
pds.htstory_reg_data (*) = 0:

"O"b;

pds.mc trace buf • null:
pds.mc:trace:sw = "O"b;
pd.,.mc_trace_seg = 0;
pds.eovfl_value • unspec (Oefault exponent control overflow value);
7* set deiault exp overflow restart value */
pds. exp_ovf I_rest , pds.exp_undfl_rest = "O"b;
pds.stack 0 sdwp = null;
pds.stack-O-ptr • null:
pds.pad_for=trace_modI6 (.)

0;

trace_ptr = addr (pds.trace);
trace. last_available = divide (hbound (pds.trace, 1) • size (page_trace_entry) - 8. 2, 17, 0):
pds.initlal procedure = null:
pds.lock array (.).lock ptr = null;
pds.lock-array (.).caller ptr
null;
pds.lock=array (.).event ; "lib;
pds.access name.user = "lnttta1tzer";
pds.access=name.project = "SysDaemon";
pds.access_name.tag = "z";
pds.home dir = ">system control 1";
pds .process_dir _name = ">process_dtr _dh'> IzzzzzzzbBBBBBB";

~

.••• hard.source

f80A - Not to be reproduced

pds.cds

58

pds.wdir (*) • null;
pds.wdtr_utd (*) • "O"b;

pds.stacks (*) • nUll;
pds.dmpr_pvtd • "O"b;
pds.dmpr_pvtx • 0:
pds.dmpr_copy_dtrsegp

= nUll:

pds.kstp • null:
pds.ftrst call • 1:
pds.tntttal_rtng • 1:
pds.tnterrupt_rtng • 4:
pds.htghest_rtng • 7:
pds.max_lot_stze (*) • 1024;
pds.mc_save_area • rel (addr (pds.data));
pds.mc_save_ptr • reI (addr (pds.data));
pds.mc_save_l tmtt • btt (btn (4096, to), 10):

/. Allow for as many as

ftt

tn 4K. */

/* Now make some checks on alignment of certatn vartables ./
call check (addr (pds.tpc vars), "tpc vars·, 2);
call check (addr (pds.page_fault_dataT, "page_fault_data", 16);
call check (addr (pds.trace). "trace", 16);
cal1 check (addr (pds.stgnal data), "signal data", 16);
call check (addr (pds.lock array), "lock array", 2);
call check (addr (pds.dataT. "data", 16);
if btn (rei (addr (pds.pad_end_of_page_O)), 10) ~. 1024
then call com_err_ (0. pdsname, "Wired portton must end. at 1024");

/* Now set up call to create data base ./
cdsa.secttons (1).p • addr (pds):
cdsa.secttons (1).len • stze (pds);
cdsa.secttons (1).struct_name • "pds";
cdsa.seg_name • "pds";
cdsa.num exclude names • 1:
cdsa.excTude_array_ptr • addr (exclude_pad);
strtng (cdsa.swltches) • "O"b:
cdsa.swttches.have_text • ·'"b:
call create_data_segment_ (addr (cdsa), code);
call release_temp_segment_ ("pds", pdsp. code);
call hcs $chname ftle (get wdtr (). "pds". ""
I f code ;:-. 0
-then if code ~. error_table_$segnamedup

Include

~*,

hard.source

FOOPI

Mt to be reproduced

pds.cds

II

template_pds", code);

59

then call com_err_ (code. pdsname.

tnc~

. "'., hard. souv'ce

F80A - Not to be reproduced

"Unable to add name tE:mplate_pds.");

pds.cds

60

eheek:
proe (where, message. modulo);
del
del
del

where
message
modulo
remainder

del

ptr;
,char (.);
f heed btn:
f heed bin;

rematnder • mod (bin (rel (where). 18), modulo);
if rematnder ~. 0
then call com_err_ (0. pdsname. MThe vartable . . . a fs I'd words away from betng aligned on a I'd-word boundary.",
message. (modulo - remainder), modulo);
end check;

tnelud
F80A

., hard. source
~ot

to be reproduced

pds.cds

-'ge

61

%tnclude cds_args;

~.++. hard.sou~ce

F80A - Not to be reproduced

pds.cds

)e

62

%tnclude sys_trace;
%tnclude aim_template;
%tnclude mc;
end pds;

tnclud'

*. hard.source
ot to be reproduced

pds~cds

...... ge

63

prds.cds

segment
in:
contents modified:

>Idd>hard>source
01/29/81
1816.2

system id:
entry modified:

36-1
03/21/83

1807.1

/. PROS - The Processor Data Segment and Processor Stack.
/. last modified (Date and reason):
2/6/16 by S. Webber Initial coding
6/15/17 by M. Weaver to null signal and sct pointers
8/25/80 by J. A. Bush for the dps8/10m cpu
2/22/81 by J. Bongiovanni for fast connect code
6/21/81 by J. Bongiovanni for idle:temp
-

./
/

...................................................... .

•
••

•

•

• Copyright (c) 1912 by Massachusetts Institute of
• Technology and Honeywell Information Systems. Inc . •
...

•

•••••••• * •••••••••••••••••••••••••••••••••••••••••••••••
• /
prds: proc;
/. This program creates the prds data base ./
/. Automatic ./
dcl
t fixed b~n;
dcl 1 cds a aligned like cds_args;
dcl code fixed bin (35);
/. Static ./
dcl
dc 1

prdsname char (4) aligned static tntt (Mprds M) options (constant);
exc 1ude._pad (1) char (32) a I igned stat Ic opt fons (constant) intt (Mpad. M);

/. The following must correspond to the size of the fast connect code tn
fast_connect ini t
dcl

FAST CONNECT CODE_WORDS intt '62) fixed bin int static options (constant):

/. Bu i 1 tins • /
dcl (addr, baseptr. bin, mod, null, ptr. rei, size, string, unspec) butltin;
/. Entries ./
dcl
dcl
dcl

inc

com_err_ entry options (variable):
create data segment entry (ptr, fixed bin (35));
get_temp_segment_ entry (char (.). ptr. fixed bin (35));

~

.•• , hard.source

F80A - Not to be reproduced

prds.cds

ae

64

dcl

rel~ase_temp_segment_

t nc 1ud'
F80A

.•• hard source
0

.ot to be reproduced

entry (char (.). ptr. fixed bin (35))-;

prds.cds

65

dcl
dcl

1*

prdsp ptr;
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

prds aligned based (prdsp),
header aligned like stack_header.
interrupt data aligned like mc,
f 1m_data 81 tgnad I ike mc,'
sys_trouble_data aligned like mc,
Ignore_data aligned like scu,
tltemp fixed bin (71),
last recorded time fixed bin (71);
Idle-ptr ptr,simulated mask fixed bin (71),
am data bit (0),
ptw_am_regs (4*16) fixed bin (35),
ptw am ptrs (4*16) fixed bin (35),
sdw:am:regs (4*16) fixed bin (71).
sdw am ptrs (4*16) fixed bin (35),
processor_pattern btt (8) aligned.
processor tag fixed bin (3),
last_ttme~_setttng btt (27) aligned.
depth fixed bin,
mode_reg btt (36) aligned,
cache_luf_reg bit (36) aligned,
fault_reg btt (72) aligned,
apt ptl~ ptr.
Idle_temp fixed bin (71),

1*
1*
1*
1*
1*

standard stack header *1
Me: for Interr'upts *1
MC for connect faults, timer runouts *1
MC for saved sys trouble data *1
for SCU data to be Ignored at certain times *1
/* temporary used by II (surprise') *1
1* used by traffic control ~I
1* pointer to Idle process APfE for this processor *1
1* simulated system controller mask register *1
1* to get addr of associative memory data block *1
1* page table regs (4 sets of 16 for dps8/70m) *1
1* page table pointers (4 sets of 16 for dps8/70m) *1
1* segment desc. regs (4 sets of 16 for dps8/70m) *1
1* SEligment des.c. pOinters (4 sets of 16 for dps8/70m)
1* 1 bit ON for this processor *1
1* CPU tag from maintenance panel *1
/* last timer value loaded for this CPU *1
1* depth tn eligible queue for running process *1
1* mode register for this processor *1
1* cache mode register for this CPU *1
I. place to stor~ the fault register *1
I. -> apte running on this cpu
*1
1* used by Idle process
*1

*1

The following contains code used for handling connect faults for this processor
2
2
2
2
2

fast connect code (FAST CONNECT CODE WORDS) bit (36) aligned,
1* marker for fast_connect_lnlt
fast=connect=code_end bit (36) altgned,
1* used to set mode register
mode reg enabled bit (36) aligned,
pad mod 16 (3) fixed bin.
processor_stack aligned like stack_frame;
1* first stack frame location *1

prds.cds
F80A - Not tti be reproduced

]e

66

unspec (prds) • HUb:
/. Now make some checks on alignment of certain variables ./
call
call
call
call
call

check
check
check
check
check

(addr
(addr
(addr
(addr
(addr

(prds.idle ptr). "idle ptr". 2);
(prds.processor_stack): "processor_stack w • 16);
(prds.ptw_am_regs). "ptw_am_regs" , 16):
(prds.sdw_am_regs), "sdw_am_regs" , 32):
(prds.fast_connect_code). "fast_connect_code", 2);

/* Now set up call to create data base */
cdsa.sections (1).p • addr (prds):
cdsa.secttons (1). len • size (prds):
cdsa.secttons (1).struct_"ame • "prds";
cdsa.seg_name • "prds":
cdsa.num exclude names • 1;
cdsa.excTude_array_ptr • addr (exclude_pad);
string (cdsa.switches) • "ORb:
cdsa.swttches.have_text • "1"b;
call create_data_segment_ (addr (cdsa), code);
call release_temp_segment_ ("prds", prdsp, code):

tnclu~

FBOA

'., hard. source
Jot to be reproduced

prds.cds

'ge

67

check:
dcl
dcl
dcl

proc (where. message, modulo);

where ptr;
message char (.);
modulo fixed bin;

t f mod (b t n (re I (where). 18). modu 10) '" = 0
then call com_err_ (0, prdsname. "The variable "'a is not aligned on a Ad-word boundary.". message. modulo);
end check;

J ••••

f80A

- Not

hard.source
to be reproduced

prds.cds

ge

68

tnclud'
F80.

•• hard. source
,tot to be reproduced

prds.cds

69

include .••. hard.source
F80A - Not to be reproduced

prds.cds

Page

70

% Include stack_frame;
% Include mc:
c:!nd prds;

tnclu,d'
F80Al

+,

hard. source

at to be reproduced

prds.cdfi

1.

segment
1n:
entry modifted:

P t w. I 68. 1ne I . P I 1

>ldd>inelude
03/10/82 0836.9

eontent~

modtfied:

07/29/81

1747.9

/+ BEGIN INCLUDE FILE ... ptw.168. inel.pl1 ... 02/26/81, for ADP con~ersion */
/+ Note: This 1nclude file has an ALM counterpart made with cif. Keep it up tQ date +/
dcl

/* In-core page descriptor */
/+ Core frame number +/

1 168_core_ptw aligned based (ptp),
2 frame f1xed bin (14) unsigned unaligned,
2 pad1 bit (4) unaligned,
2 flags unaligned like 168_ptw_flags;

,/* General declaration for out-of-core PTW ./

dell 168_ptw aligned based (ptp),
2 add bit (18) unaligned,
2 flags like 168_ptw_flags unaligned;
del
dcl
del

168_special_ptw aligned based (ptp) like 168_ptw;
168_real_disk_ptw aligned based (ptp) like 168_ptw;
168_null_disk_ptw aligned based (ptp) like 168_ptw;

/. Page is somewhere peculiar -- add_type • "01"b */
/. PTW for page actually on disk -- add_type • "10"b ./
/* PTW for page not- yet on d1Sk -- add_type • "11otb ./

del 1
(2
2
2

168_ptw_flags unaligned based,
add_type bit (4),
first bit (1),
er bit (1),

/. Various

software/hard~are flags
OOOO=~ull, 1000=core, 0100~disk.

./
0010=pd, 0001 m swap */
/. the page has not yet been written out */
/* error on last page I/O (also used by post-purge as temp) */

/*

2 pad1 bt t ( 1),
2 unusablel bit ( 1),
2 phu bit ( 1),

/* can't be used because hardware resets 'this btt ./
/* page has been used bit */

2 phm 1 b 1 t (1),
2 nypd bit (I),
2 phm bt t (1.),

/* Cumulative OR of hardware phm's */
/* must be moved to paging device */
/* page has been modified bit */

2 phu 1 bt t ~O,
2 wired btt (0,
2 os bt t ( 1),
2 val1d bit (1),
2 df _no bit (2)) una I tgned;

/* page has been used in the quantum */
/* page is to rematn tn core */
1* page is out-of-servlce (I/O tn progress) */
/* directed fault if this is 0 (page not in core) */
/* directed fault number for_page faults */

/* END INCLUDE FILE

...

P t w. 168. t nc I . P 1 1 +/

include.**, hard.source
F80A - Not to be reproduced

P t w. T-6a: t nc 1 . p 1 1

Page

72

pv _ho 1dt . t nc 1 . pIt

segment
tn:
entry modtfted:

>ldd>tnclude
03/10/82 0836.5

contents modtfted:

05/13/76

1025.4

BEGIN INCLUDE FILE ••. pv_holdt. tncl.plt -. . . • /

dcl pv_holdtp ptri
dcl

pv holdt (t : 64) based (pv_holdtp) altgned.
2 pvtx
fixed btn(t7) unaltgned.
2 apterp bt~(18) unaltgned;
END INCLUDE FILE ••• pv_holdt.tncl.pl1 ...• /

t nc 1ud r

F80A

..••

jot

hard. source
to be reproduced

pv_holdt. tncl .r' ·

73

pvt. incl .p11

segment
tn:
entry modtf ted:

BEGIN INCLUDE FILE ... pvt. incl.pl1 ...

>ldd>include
OS/20/82
1047.6

contents modified:

OS/20/82

1037.6

last modtfted January 1982· */

/* The physical volume table (PVT) is a wtred-down table.
It has one entry for each spindle present. be it for
Storage System or "I/O" use.
dcl

dcl

pvt$
pvtp

ext.
ptr;

pvt

based (pvtp) aligned.

2
2
2
2
2
2
2
2

n_entries
fixed bin (17).
max n entries
fixed bin (17),
n_ i njJse
fixed b t n (17),
rwun pvtx
fixed bin.
shutdown_state
ftxed bin.
esd state
fixed bin.
prev_shutdown_state fixed bin.
prey esd state
fixed bin.

/.
/.
/*

2
2
2
2
2
2
2

time of bootload fixed bin (71).
root-Iv1d
btt (36) aligned,
root=:pv td
bit (36) a I igned.
root_pvtx
ftxed ~tn.
root_vtocx
fixed bin.
dtsk table vtocx
ftxed bin.
disk=table=uid
btt (36) aligned,

/* Time of boot load */
/* logical volume 10 of Root Logtcal Volume (RlV) */
/* Physical volume 10 of Root Phystcal Volume (RPV) */
/+ Index to PVTE for Root Phystcal Volume (RPV) ~/
/. VTOCE index for root (» */
/~ VTOCE index for disk table on RPV */
/* File System UIO for dtsk_table */

2
2
2
2
2
2
2
2

rpvs_requested
btt (t) aligned,
/.
rpv_needs_salv
bit (1) aligned.
/*
rlv needs salv
bit (1) aligned,
/.
vol;ap lo~k watt constant bit (36) aligned./.
volmap-idle-watt-constant btt (36) al tgoed./.
vtoc map lO~k wa1t constant bit (36) aligned,
n_volmap=:locks_held fixed bin (17).
/*
n_vtoc_map_locks_held fixed bin (17).
/*

2
2
2
2

last_volmap_time
fixed bin (71).
last_vtoc_map_time fixed bin (71).
total_volmap_lock_time fixed bin (71).
total_vtoc_map_lock_time f'xed bin (71),

/*
/+
/*
/*

Ttme a volmap was last locked/unlocked */
Time a VTOC Map was last locked/unlocked ./
Total time volmap's ware locked (integral) ./
Total time VTDC Map~ were locked (tntegral) . ,

2
2
2
2

n_volmap_locks
ftxed
n vtoc map locks
fixed
volmap=:lock_nowait_calls
volmap_lock_nowatt_fails

bin (35).
bin (35).
fixed bin (35),
fixed bin (35).

/*
/*
/*
/*

Number
Number
Number
Number

----------.-----include .••• hard. source
f80A - Not to be reproQuced

/*
/*
/*
/.

/*

pvt. tncl .p11

number of PVT entries */
max number of PVT entries ./
number of PVT entries tn use */
rewind_unloadtng pvtx +/
state of prevtous shutdown */
state of ESO, >0 tff tn ESD */
shutdown state of prevtous boot load */
ESD state of previous boot load */

RPVS keyword given on BOOT ./
RPV requtred (not requested) salvag~ */
RLV required (not requested) salvage */
For constructing watt event: OR pvte_rel tnto lower */
For constructing watt event: OR pvte_rel tnto lower .;/. for constructing wait event: OR pvte_rel into lower ./
Current number of volmap locks held ~/
Current number of VTOC Map locks held */

times
times
calls
times

a vOlmap was locked */
a vtoc_map was locked */
to lock volmap. no watt */
lock fat led */

Page

74

2 volmap_lock_watt_calls fixed bin (35),
2 volmap_,ock_watt_fal Is f.txed bin (35),
2 pad (2) bit (36) aligned,
2 array

, I xed

bin (71) i

/* Number calls to lock volmap. watt */
/* Number ttmes lock failed */

/* Array of PVTE's -- must be double-word aligned */

END INCLUDE FILE ... pvt.tncl.pl1 */

Includ
F80A

~*.

hard. source

'ot to be reproduced

pv t . t nc I . pIt

..... ge

75

segment
tn:
entry modt f tetd:

pvte.inel.pI1

/.

START OF:

pvte.

~ncl

.p11

July 1982

*

.. •

contents modtfied:

>ldd>include
10/13/82

•

*

...

• •

pvt$array
pvt$max n entries

aligned external;
fixed bin external;

del
del

pvt_arrayp
pvtep

ptr;
ptr;

del

1 pvt_array

(pvt$max_n_entries) aligned ltke.pvte based (pvt_arrayp) ;

pvte

based (pvtep) aligned.

2 pvid

bit (36),

I.

2 Iv td

bit (36).

I. logical volume 10 *1

2 dmpr in use
2 pad3- 2 skip_queue_count

(3) btt (1) unaltgned.
I. phystcal volume dumper interlock *1
bit (6) unaligned,
fixed bin (18) unstgned unaligned. /. number of times thts pv skipped for per-proc allocatton du

2 brother_pvtx

fixed bin (8) unaligned.l. next pvte in Iv chain

2 devname

char (4).

*1

e to saturation

ger table

.1

1310.8

• • ·1

del
del

del

10/13/82

1311.9

deposit_to_volmap
being_demounted2
pad5
vacating
hc_part_U1sed

include .••. hard:source
F80A - Not to be/reproduced

bit
bit
bit
bit
bit

( 1).

( 1 ),
( 1).

( 1 ).
( 1).

*1

.1

I. device name *1

(2 devtce_type
fixed ~tn (8).
2 logical area number fixed btn (8).
2 used
bit (1).
2 storage_system
bit (1).
2 permanent
bt~ (1).
2 testtng
bit. (1).
2 betng_molmted
bi t (1).
2 betng demounted
btt (1).
2 check=read_tncomplete bit (1).
2 device_inoperative bit (1).
2 rpv
bit (1).
2 scav_check_address
bit ( 1).
2
2
2
2
2

physical volume 10

1*

devtce type .1
drive number */
if this entry is used *1
for storage system (vs to dtsk) *1
.f cannot be demounted */
Protocol btt for read dtsk$~est *1
TRUE .f the physical volume is being mounted *1
TRUE if the pysical volume is being demounted *1
page control should check read incomplete */
TRUE tf disk control decides dev busted +1
tRUE tf thiS-is the root physical volume .1

I. disk
1* TRUE
I. TRUE
1* TRUE

I.

1*
I.
I.

/*

I.

I. TRUE is page control should check deposits/w1thdrawals against scaven

I. TRUE if deposits should got to volume map. not stock ./

I.

No more vtoc

lID

1+

don't put new segs on this vol

during demount

I. He part set up by intt_pvi ./

pvte. incl.plt

.1

.1

Page

76

2 volmap_lock_notlfy bit (1) una1.
2 volmap_ldle_nottfy blot (1) unal.
2 vtoc_map_lock_notlfy bit (1) unal.

/* TR~E If notify required when volmap lock is unlocked */
/* TRUE If nottfy required when volmap state is tdle */
/* TRUE If notify required when vtoc map lock Is unlocked */

2 n free vtoce
2 vtoc_slze

f t xed b t n (17).
fixed bin (11).

/* number of free VTOC entrtes */
/* size of the VTOC part of the disk - In records */

2 dbmrp

(2)

2 nleft
2 totrec

f heed bin ( 17).
/* number of records left */
f heed bin ( 11)) una I Iuned. /. Total records In this map */

/. rel ptr to dumber bit maps for th.s volume */

bit (18).

bit (36).

/* Information peculiar to DIM ./

2 curn dmpr vtocx
2 n_vtoce -

(3) fixed bin unallgnod./. current vtOC)( being dumped */
fixed bin una I Igned.
/* number of vtoce on this volume */

2 baseadd
2 pad2

fixed bin (18) ~ns unaligned. /* Base of paging region */
bit (18) unaligned.
f I xed bin (11).

/* SOW describing volmap_seg */

2 volmap_astep

ptr unal.

/* Packed pOinter to ASTE for volmap_seg */

2 volmap_offset
2 vtoc_map_offset

bit (18) lUna 1 •
b It (18) lUna 1 •

/* Offset tn volmap_seg of volume map ./
/* Offset tn volmap_seg of VTOC map */

2 volmap_lock

bit (36) aligned.

/* Lock on volume map operations */

2 vtoc_map_lock

bit (36) aligned.

/* Lock on VTOC map operations */

2 volmap_stock-ptr

ptlr unal.

/* Packed pOinter to record stock */

2 vtoc_map_stock_ptr. ptr unal,

/. Packed pOinter to VTOCE stock */

2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */
2 volmap_async_page fixed bin (11) unaligned, /. Page number for asynchronous update */
2 vol_trouble_count fixed bin (17) una'tgned. /* Count of Inconsistencies since last salvage */
2 scavenger_block_rel bit (18) unaligned;
/* Offset to scavenger block, AO -> scavenging */

dcl

/*

END OF:

Includ'
F80i

(VOLMAP ASVNC IDLE
VOLMAP ASVNC READ
VOLMAP:ASVNC:WRITE
pvte. Inc 1 • P 11

., hard.source
ijot to be reproduced

Inlt (0),
/. for vOlmap_8sync_state ./
Intt (1),
Inlt (2)) fixed bin Int static options (constant);

• • • * * * •

pvte.lncl.pl1

• * •

* •

• * • * */

..... ge

77

segment
in:
entry mod i fiEld:

r n t . i nc 1 . P 1 1

>ldd>incfude
03/10/82 0836.6

contents modified:

·12/16/77

1314.1

/. BEGIN INCLUDE FILE RNT.INCl.PL1 - WRITTEN SEPTEMBER 1974 BV R. BRATT */
/* modified July 1976 by R. Bratt; updated March 1977 by M. Weaver */
/* modified November 1977 by M. Weaver to use Pl/I offsets instead of pOinters */
dcl (rntp. rntep) ptr;
dcl lth fixed bin (17);
dcl based_rnt_area area based:
dcl

1 rnt aligned based (rntp).
2 are~p ptr.
/* pointer to area for rnte allocations */
2 meters.
3 insert.
4 trys fixed bin (17) unaligned.
4 wins fixed bin (17) unaligned.
3 get segno like insert.
3 get-refnames like Insert.
3 delete_segno like insert,
3 delete_name like insert,
2 rnt area size fixed bin,
2 srulep ptr •.
2 name_hash_table (0: 127) offset (rnt.areap -> based_r'nt_area).
2 segno_hash_table (0:127) offset (rnt.areap -> based_rnt_area):

dcl

1 rnte aligned based (rntep).
2 name fp offset (rnt.areap -> based rnt area).
2 segno_fp offset (rnt.areap -> based_rnt_area),
(2 segno fixed bin (17),
2 length fixed bin (17),
2 name char (lth refer (rnte.length))unaligned:

/* --------------------END

include .••• hard.source
F80A - Not to be reproduced

RNT.INCl.Pl1------~--------------

*/

rnt.inc1.pI1

Page

78

segment
tn:
entry modtfied:

scavenger _da ta. t nc I . pI 1

/*

START OF:

scavenger_data.tncl.pl1

/* format: style3 .1
dcl
scavenger_dataS

external:

dcl
dcl
dcl
dcl
dcl
dcl

scavenger_datap
sc_metersp
sc_process_tablep
scavenger_blockp
record blockp
scavenger_opttonsp

ptri
ptq
ptr;
ptr;
ptri
ptr;

dcl
dcl
dcl

sc n processes
ftxed btn;
scavenger_n_records ftxed btn;
scavenger_n_ovfl
ftxed btn:

dcl

dcl

t nc 1ud'
F80r

•

November 19(12

scavenger_data
aligned based (scavenger_datap),
2 lock
aligned,
/*
3 lock word
btt (36) aligned.
3 watt-event
btt (36) aligned,
3 nottfy_sw
bit (1) aligned,
2 process_table_ptr
ptr.
I.
2 error_severity fixed bin.
I.
2 meters
aligned ltke sc meters,
2 free
bit (1) aligned;
1*
sc meters
aligned based (sc metersp),
2 "_scavenge
fixed bin (35), 2 pf
fixed bin (35),
2 vcpu
fixed bin (71),
2 clock_time
fixed bin (71),
2 n_vtoces
ftxed bin (35),
2 n_vtoces_damaged
f I xed bin (35),
2 n vtoces per proc
fixed bin (35),
2 n vtoces per boot
fixed bin (35),
2 n vtoces freed fixed bin (35),
2 n-vtoces-fmd
fixed bin (35),
2 n-recordS
fixed bin (35),
2 n=confllcts
fixed bin (35),
2 n fmd conflicts fixed bin (35),
2 n-real conflicts
fixed bin (35),
2 n_lost_records fixed bin (35):

"., hard. source
,ot to e»e reproduced

contents modtfted:

>ldd>tnclude
t 1/19/82
1604.3

•

•

•

*

•

*

*

*

* * * •

•

11/19/82

* *

1602.2

*/

lock on scavenger_data ./

Potnter to scavenger process table .1
Severity of unexpected error condttion

*1

Available region */

/* Meters *1
/. Number of volume scavenges */
I. Total page faults *1
/* Total virtual CPU time */
1* Total clock time *1
/* Number VTOCEs examined */
/* Number VTOCEs damaged by scavenge */
/* Number per-process

VTOCE~

freed */

I. Number per-boot load VTOCEs freed .1
/. Total number VTOCEs freed */
/* Number VTOCEs with fm_damaged reset *1
1* Number non-null ftlemap entrtes examined .1
/* Number potential confltcts detected ./
1* Number potenttal confltcts due to fm_damaged */

I. Number real confltcts *1

/* Number lost records freed */

19

dcl

.c_process_table aligned based (sc_process_tablep).
2 max_n_processes fixed bin.
1* N'~mber of table entries *1
2 n_processes
fixed bin,
1* Number active entri~s *1
2 process
(sc_n_processes refer (sc_process_table.max_n_processes)) aligned.
3 process id
bit (36) a I tgned.
I. Owner. O=>empty *1
.
3 pvtep
ptr unal.
1* PUTE of volume being scavenged *1
3 blockp
ptr unal.
1* Block wIt scavenger_data *1
3 first_block_page
I~ Index of first page o~ block *1
fixed bin.
3 n_block_pages fixed bini
1* Number of pages in block */

dcl

scavenger_block
2 n records
2 n-ovfl
2 ovfl free ix
2 records 2 ove.'f low

aligned based (scavenger_blockp).
fixed bin.
1* Number of record addresses *1
fixed bin.
1* Number of overflow blocks .1
fixed bin.
1* Index of first free overflow block *1
(scavenger_n_records refer (scavenger_block.n_rf!tcords)) aligned like record_block,
(scavenger _n_ovf I ref.er (scavenger._block. n_ovf I)) aligned 1 ike record_block i

dcl

record_block
2 vtocx
2 pageno
2 state
2 lock
2 ovflx

aligned based (rec6rd_blockp),I*
fixed bin (15) uns unal.
1*
fixed bin (8) uns unal,
I.
fixed bin (2) uns unal,
1*
bit (1) unal,
I.
fixed bin (10) uns unal;
I.

dcl

scavenger_data_pages
aligned based (scavenger_datap),
2 page
(0:255) aligned,
3 word
(1024) btt (36) aligned;

dcl

scavenger options
2 print_meters
2 debug
2 dump
2 trap
2 no_optimize

dcl

based (scavenger_optionsp),
unaligned,
1* ON
unaligned,
I. ON
unaligned,
1* ON
unaligned,
1* ON
unaligned;
1* ON

*1

=> meter each scavenge into the log *1
=> do special debugging things .1
=> dump bad VTOCEs into syserr log .1
=> trap to BOS for debug */
=> no VTOCE read-ahead *1

(

STATE UNSEEN
STATE_FREE
STATE IN USE
STATE-CONFLICT
)

1*

aligned
bit (1)
bit (1)
bit (1)
bit (1)
bit (1)

One per record address *1
VTOCE index *1
Owning page number .1
State *1
Lock bit on this block *1
Index of first overflow block on chain
O~ning

END OF:

-

init (0).
init (0.
init (2).
init (3)
fixed bin int static options (constant)i

scavenger_data.incl.pl1

include .••• hard. source
F80A - Not to be reproduced

*

*

•

scavenger_data.incl.p11

*

*

*

*

*

•

•

*

•

•

*

•

*1

Page

80

scs. I nc I . pI 1

segment
In:
.
entry modified:

>ldd>lnclude
04/29/82 1136.4

contents modified:

04/29/82

1121.6

/. BEGIN INCLUDE FILE scs.incl.pI1 ... April 1982 */

,* Information about system controllers */
dcl

,*

scs$controller data (0:1) aligned ext.
2 size fixed bin (17) unaligned.
2 base fixed bin (17) unaligned,
2 elma_data (4) unaligned,
3 mask available bit (1) unaligned,
3 mask:asslgned bit (1) unaligned.
3 mbz btt (3) unaligned,
3 mask_aSSignment fixed bin (3) unaligned,
2 I n f 0 a I I gned ,
3 online bit (1) unaligned,
3 offline bit (1) unaligned,
3 store_a_onllne bit (1) unaligned,
3 store al online bit (1) unaligned,
3 store:b_onllne bit (1) unaligned,
3 store b1 online bit (1) unaligned.
3 store:b_ls_lower bit (1) unaligned.
3 ext_Interlaced bit (1) unaligned,
3 Int_Interlaced btt (1) unaligned.
3 four_word bit (1) unaligned,
3 cycl Ic_pr lor tty (7) btt (1 ) una I tgned.
3 type btt (4) unaligned,
3 abs_wlred bit (1) unaligned,
3 program bl~ (1) unaligned.
3 mbz bit (13) una I Igned,
2 lower store size fixed bIn (17) unaligned,
2 upper:store:slze fixed bin (17) unaligned;

,*,*

*,

,. port to which mask Is assigned ./
/.
/*
/*
/.
/.
/*
,.
/.
/.
,.
/*
,.
/.
/.

ON If controller Is online */
ON If control)er Is offline but can be added ./
ON If store A Is onltne *,
ON If store AI Is online */
ON If store B ~s online ./
ON If store BI IS'onllne ./
ON .If store B',s lower */
ON .If this SCU Is Interlaced with other SCU ./
ON If this SCU Is Internally tnter1aced ./
ON If ·external Interlace Is 4-word .,
Cyclic priority for adjacent ports */
Model number for this controller ./
ON If controller can have abs wired pages */
PROGRAM/MANUAL switch settlng-./

,. size (In 1024 word blocks) of lower store ./
/. size (in 1024 word blocks) of upper· store ./

Information about CPUs ./

dcl

tncludr

FB

*,

/* per-controller tnfo
/. size (tn 1024 word blocks) of this controller */
,. abs address (0 mod 1024) for base of this controller
EIMA Information for this controller */
ON If corresponding mask exjsts */
/. ON if mask a.sslgned to a port */

scs$processor data (0:1) aligned ext.
(
2 onltne bit (1),
2 offline bit (1),
2 release mask bit (1),
2 accept mask bit (1),
2 delete-cpu bit (1),
2 Interrupt_cpu bit (I),
2 halted cpu bit (1),
2 cpu_type fixed bin (2) unsigned,
2 mbz bit (21),
2 expanded_port bit (I),
2 expander port fixed bin (2) unSigned.
2 controller_port fixed bin (3) unsigned
) unaligned;

~*.

hard. source

Jot to be reproduced

/. tnformatlon about CPUs In the system */

/. "I"b
/. "I"b

if CPU Is online ./
if CPU Is offline but can be added ./

/* "1"b Is this
/* "I"b If this
/. "1"b If this
/. "1"b If this
/. "1"b If this
/* o It> DPS or

CPU Is to give up Its mask ./
CPU Is to gr.ap mask tn Idle loop */
CPU Is to delete Itself .,
CPU takes hardware interrupts .,
CPU has stopped Itself (going to BOS) */
L68. 1 a> DPS8 */

/. "I"b • on expanded port */
/* The actual expander port */
/* Port on controller

ses.lncl.pll

*,

P:=tge

81

dcl

scs$port_data (0:7) aligned external static,
2 assigned fixed bin (4) unsigned unaligned,
2 expander_port bit (1) unaligned,
2 expanded_cpu (0::)) bit (1) unaligned,
2 iom number fixed bin (3) unsigned unaligned,
2 cpu=number (0:3) fixed bin (3) unsigned unaligned,

/* lnto about what is connected to each SCU port */
/* Type of device on this port
*/
/* nUMb a> this port has a port expander */
/* H Pb => this expander port has a CPU attached */
/* 10M number of 10M attached to this port */
/* CPU number of CPU(s) attached to this port */
/* cpu_number (0) is only one if exparider_port is "O"b */

2 pad btt (t2) unaligned;
dcl

dcl

dcl

1*
dcl
dCl
dcl
dcl
dcl
dcl
dcl

scs$cow (0:7) aligned external,
/*
2 pad bit (36) aligned,
/*
2 cow,
3 sub mask bit (8) unaligned,
/*
3 mbz1 bit (13) unaligned,
3 expander_command bit (3) unal tgned,
/*
3 mbz2 btt (2) unaligned,
3 expanded_port bit (1) unaligned,
1*
3 expander_port fixed bin (3) unsigned unaligned,
/*
3 mbz3 bit (3) unaltgned,
3 controller_port fixed btn (3) unaltgned unsigned;l*

Expand~r

sub-port mask */

E)cpander command. */
"~"b = on expanded port *1Port on expander for cioc */

controller

~ortfor

this CPU

*1

1* Pointers to COW's *1
/* Relaiive pOinter to COW */

scs$cow_ptrs (0:7) external aligned,
2 rei_cow_ptr btt (18) unal,
2 pad bit (12) unal,
2 tag bit (fi) unal;

1*

scs$reconflg general cow aligned external,
/*
2 pad bit (36) aligned,
2 cow,
1*
3 sub_mask bit (8) unaligned,
/*
3 mbz1 bit (13) unaligned,
3 expander_command bit (3) unaligned,
1*
3 mbz2 bit (9) unaligned,
3 controller_port fixed bin (3) unaligned unsigned;/*
MASKS and PATTERNS

Actual connect words */
Expander COW's must be odd-word */

Better be zero. */
Used during reconfig ops. */
Connect operand word, In odd location. */
Expander sub-port mask */
Expander command.

~/

c(mtroller port' for this CPU

*1

*1

scs$sys level btt (72) aligned ext;
scs$ope~_level bit (72) aligned ext;
scs$processor_start_mask bit (72) aligned ext;
scs$cpu_test_mask bit (72) altgned ext;
scs$number of masks fixed btn ext;
scs$processor=start_pattern bit (36) aligned ext:
scs$cpu_test_pattern bit (36) aligned ext;

/*
/*
/*
/*
/*

mask used whtle handling I/O tnterrupts */
mask used during normal operation */
mask used when starttng up a CPU */
mask used for ISOLTS CPU testing *1
number of masks (starting at sys_level) */
1* SMIC pattern used to send processor start interrupt */
/* SMIC pattern used for ISOLTS processor testing *1

/* CAM and CACHE clear info */
dcl
dcl

scs$cam_patr fixed bin (71) ext:
scs$cam_watt bit (8) aligned ext:

/*
1*

instructions XEOd when CAMing and clearing CACHE
Used when evicting pages from main memory *1

*1

/* MASKING INSTRUCTIONS & POINTERS */
dcl
dcl

scs$set mask (0:7) bit (36) aligned ~xt;
scs$read_mask (0:7) bit (36) al tgned ext:

include.**, hard.source
F80A - Not to be reproduced

/* instructions to set mask (STAQ or SMCM) *1
/* instructions to read mask (LUAQ or RMCM) */

scs. inc I . P 11

Page

82

dcl

/* pointers for real or simulated masks */

scs$mask_ptr (0:7) ptr unaligned ext:

/* MISCELLANEOUS */

/* Info used for cpu testing */

scs$processor_test_data aligned ext.

dcl

(

/* • M1 Mb If cpu currently under test */
/* state of sc~ being used for testing (see deftnltton below) */

2 active btt (t).
2 scu state btt (2).
2" pad1 btt (15).
2 cpu tag fixed bin (5),
2 scu-tag fixed bin (5).
2 mask cpu fixed bin (5)
) una 1tgned;

/* scu state
/* scu:state
/* scu_state
/* scu_state

•
•

MQOMb
"OI Mb
"tOMb
M11"b

/* tag of- cpu under test */
/* tag of scu being used for cpu testing */
/* tag of active cpu that has mask astgned to above scu */

SCU defined by scs$processor_te:,t_data.scu_tag not yet effected */
all core removed from SCU. port mask not yet changed */
-> all core removed from SCU. port mask changed */
-> only 64k at base of SCU being used for testing. original port mask restored */
->
->

dCl

scs$ldle_aptep (0:7) ptr unaligned ext;

/* pOinter to' Idle process APTE for each ·processor */

del
del
dcl
del
dcl
dcl
dcl
del
del
del
dcl
dcl
dcl

scs$connect_lock bit (36) aligned ext;
scs$reconflg lock bit (36) aligned ext:
scs$trouble_'lags bit (8) aligned ext:
scs$bos_restart_'Iags bit (8) allgn~d ext;
scs$nprocessors 'Ixed bin ext;
scs$bos_processor_tag fixed bin (3) ext;
scs$faults_lnltlaltzed bit (1) alIgned ext:
sC6$sys_trouble_pendlng bit (1) aligned ext;
scs$fast_cam_pendtng (0:7) bit (36) aligned ext;
scs$tnterrupt_controller fixed bin (3) ext;
scs$processor_start_lnt_no fixed bin (5) ext;
scs$pro~essor bit (8) aligned ext;
scs$processor_start_walt bit (8) aligned ext:

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

del

scs$trouble_dbrs (0:7) fixed bin (71):

,* OBR values at' system crash

dcl

scs$port_addresslng_word (0:7) bit (3) aligned ext:

/* active module port number for each controller */

dcl

scs$cfg_data (0:7) 'Ixed bin (71) aligned ext:

/* RSCR-CFG data from each controller */

del

scs$efg_data_save fixed bin (71) aligned ext:

/* RSCR-CFG save area for ISOLTS CPU testing */

dcl

scs$expanded_ports bit

dc)
del
dcl
dc1

scs$processor_swltch_data (0:4) bit (36) aligned e,xt: /* raw data from RSW 0 thru 4 */
ses$processor _switch_template (0:.4) bit (36) aligned ext;/* expected data from RSW 0 thru 4 */ .
scs$processor_swttch_compare (0:4) bit (36) aligned ext; /* discrepancies from expected data */
scs$processor_swltch_mask (0:4) bit (36) aligned Elxt: /* masks for comparing switch data */

dell

scs$proces~or_data_swltch_value

dell

scs$controller_conflg_size (0:7) fixed bin (14) aligned ext:
/* Controller size on config card */

)nclu~
F~

'*.
~ot

hard.source
to be reproduced

(1)

/*

lock for sending connects */
Lock used during reeonftguratlon */
checkoff flags for sys_trouble stopping */
checkoff flags for restarting after sys_trouble */
number of runnung processors */
CPU tag of processor running BOS */
ON after faults have been enabled */
sys_trouble event tspendlng In the system */
checkoff cells for cam connect
*/
port number of low order controller */
Interrupt c.ll for starting a processor */
bits ON for online CPUs */
checkoff flags for waiting 'or new processor */
time */

unaligned dim (0:7) external;
/* Which ports have expanders */

bit (36) aligned Etxt;

/* Correct value for CPU data switches */

scs. (nc I . pi 1

-'ge

83

,+

dcl

scs$reconfig_Iocker_id char (32) aligned ext;

dcl

scs$scas_page_table (0:31) bit (36)

dcl
dcl

scs$cycle priority template bit (1) aligned ext;
scs$set_cycle_swttches bit (1) altgned ext;

dcl

(

aligne~

process group ID of process doing reconfiguration

external static:
/* PIWs for SCAS pages

10M PORT init (1).
CPU-PORT Inlt (2).
BUl~ PORT intt (3)
) fixed bin tnt static options (constant):

/*
,+

+,

+,

template for setting anti-hog switches
flag to set ant-hog switches

/. values for scs$port_data.asslgned

/+ END INCLUDE fILE scs.Incl.plt +/

Include."' •• hard.source
f80A - Not to be reproduced

5CS.

Inc 1 : p 11

Page

84

sdw.168. incl.pl1

segment
tn:
entry modtf ied:

>ldd>include
03/10/82 0836.9

contents modtfted:

07/29/81

1747.8

/* BEGIN INCLUDE FILE ... sdw.168.lncl.pl1 '" Updated for ADP conversion 03/01/81 */
/* Note: This include ftle has an ALM counterpart made with ctf. Keep tt up to date */

dcl 1 168_sdw based (sdwp) altgned,
• (2 add b tt (24),
2 r Ing:s,
3 r1 bit (3).
3 r2 bit (3).
3 r3 bit (3),
:! va ltd b ~ t (1),
~!

df_no bit (2).

/* Level 68 Segment Descriptor Word */ .

/* main memory address of page table */
/* ring brackets for the segment */

/* directed fault btt (0 -> fault) */
/* directed fault number */

:! pad 1 b t t (1),
2 bound bit (14),
:! access.

2
2
:l

:2

3 read bit (I),
3 execute btt (i),
3 write bit (0.
3 privileged bit (i),
unpaged bit (i),
not_a_9ate btt (i),
cache bit (1),
entry_bound bit (14» unaligned:

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

boundary field (In 1~ word blocks) */
access btts */
read permtsslon btt */
execute permlsston btt */
wrtte permtsston btt */
privileged btt */
segment ts unpaged if thts ts 1 */
tf thts ts 0 the entry bound is checked by hardware $/
cache enable btt */
entry bound */

/* END INCLUDE FILE ... sdw.168.lncl.pI1 */

t nc 1ud'

..•• hard. source

F8u.

ot to be reproduced

sdw. 161L tncl .p'

I""ge

85.

sdw _ , n f o. 'nc I . pI 1

segment
tn:
entry modtf ted:

>ldd>include
03/10/82 0836.9

contents modified:

07/29/a1

1747. a

/* BEGIN INCLUDE FILE ... sdw_info.tncl.pI1 ... 12/16/aO. for ADP conversion */
/* Note: This include file has an ALM counterpart made with cif. Keep it up to date */

dcl

1 sdw info aligned based (sdw info ptr).
2 address fixed bin (26).
2 size fixed bin (19).

/* Structure describing SOW '~ontents ./
/* Address of seg base or of page table ./
/* Ma~ length of segment (NOT offset of last word) ./

2 access unaligned,
3 read btt (1) unaligned.
3 execute bit (1) unaligned,
3 write bit (1) unaligned.
3 privileged bit (1) unaligned,
2 pad1 btt (32) unaligned.
2 rtngs unaligned,
3 r1 bit (3) unaligned.
3 r2 bit (3) unaligned,
3 r3 bit (3) unaligned,

/+ Ring brackets */

2 pad2 btt (27) unaligned.
2 flags aligned.
3 paged bit (1) unaligned,
3 faulted btt (1) unaligned,
3 cache bit (1) unaligned,
3 pad3 bit (33) unaligned,

I. M1 N b => SOW has fault set ./

2 gate_entrY_bound fixed bin (14).

/. Number of entrypoints in gate. or zero */

/. M1 Mb => Segment is paged

1*

.1

M1 Mb ;> Segment is encacheable

.1

/. END INCLUDE FILE ... sdw_info.incl.pl1 */

include .••• hard.source
F80A - Not to be reproduced

sdw_tnfo.1ncl.pl1

Page

86

signaW ler _stack. incl.pl1

segment
in:
entry modified:

>ldd>include
03/10/82 0836.7

contents modified:

04/02/19

1405.9

BEGIN INCLUDE FILE ... stgnaller_stack.tncl.pl1 ... Created Feb 79 by D.Spector */
Thts file matches stgnaller_stack.tncl.alm and is currently used
declal'e

signaller stack based unaligned,
2 pad (8)-bit (36),
2 mach cond (48) btt (36),
2 mc_ptr ptr aligned,
2 nUll_ptr ptr aligned,
2 string_descriptor bit (36),
2 ptr_descrtptor bit (36).
2 arglist (18) bit (36).
2 slgnal_strtng char (32),
2 on untt (16) btt (36).
2 hlstory_regtsters (128) btt (36);

/*
/*
/*
/*
/*
/*
/*
/*
/*

~nly

by verify_lock */

Make machine conditions 0 mod "16 */
Machine condl t"tons */
Pointer t~ machtne conditions */
Null pointer */
Condition name descriptor */
M.C. ptr descriptor */
Arg list for call to Signal */
Condition name */
Must be at 128 in stack frame */

/* on__unit must start at 128 because trap_cal ner _ca 1.1 er _ t!lets up a stack frame
aSBumlng this to be so. Stmilarly mach_cond must start at 48. */
END INCLUDE FILE ... stgnaller_stack.tncl.pI1 ... */

Includ'

~*,

hard. source

F80AI

Jt to be reproduced

stgnallor_stac~

'ncl.plt

87

sit . i nc I . P I 1

segment
in:
entry modtf ted:

1* BEGIN INCLUDE FILE slt.incl.pI1 --- last modified

2/76 SHW

>ldd>tnclude
05/12/82

contents modified:

05/12/82

1246.5

1254.5

*1

1* Declarations for Segment loading Table header and array.
Used by Initialization and MST Checker subroutines

*1
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
1+
1*

de I sit P p t r ,
names_ptr ptr,
namep ptr,
pathp ptr,
aclp ptri

pointer
pointer
pointer
pointer
pointer

to
to
to
to
to

base of SLT segment ·1
base of SLT names segment *1
segment name list block *1
segment's directory path name
acl structure *1

*1

declaration of Segment loading Table (SLY) *1
words 0-1, pointer (ITS pair) to name segment *1
word 2,'start of free core after perm-Wired *1
word 3, first supervisor segment number */
word 4, last supervtsor segment number .1"
word 5, first initializer segment number */
word 6, last inittallzer segment number *1
/* size (tn words) of free core after perm-wtred *1
1* segment entries (4 words each) ./
1* Space for SLY entries *1

declare 1 sit based (sltp) aligned,
2 name_seg_ptr ptr,
2 free core start fixed bin (24),
2 first_sup=seg fixed bin (18),
2 last sup seg fixed bin (18),
2 first intt seg fixed bin (18),
2 last_tnit_seg fixed bin (18),
2 free"core size fixed bin (24),
2 seg (0:8191) altgned,
3 site (4) fixed bin (35)i

1* auxiliary segment of SLT for storing of segment names and directory path names */
1* name segment header *1

declare 1 name_seg based (names_ptr) aligned,
2 pad bit (18) unal,
2 next lac btt (18) unal,
2 h t ( 0: 121) b it (18) a I t gned i

1* Next available free location tn name seg */
1* Names hash table *1
/* declaration for segment name block */

declare 1 segnam based (namep) aligned,
2 count fixed bin (11),
2 names (50 refer (segnam.count»,
3 hp bit (18) unal,
3 ref bit (1) unal.
J pad bit (5) unal,
3 segno bit (12) unal,
3 name char (32) unal;

1* segment number associated with this _name +/
1* space for name (max 32 characters) */

declare 1 path based (pathp) aligned,
2 size fixed bin (11),
2 name char (168 refer (path.size»
2 acls fixed bini

1*
1*
1*
1*

declaration for directory path name
length of pathname *1
directory p~th name *1
ACl list starts here *1

1*
1+
1*
1*
1*

declaration for acl list *1
number of entries tn acl list */
array of acl entries +1
user specification +1
mode for the specified user +/

declare 1 acls based (aclp) aligned,
2 count fixed bin,
2 acl (50 refer (acls.count»,
3 userid char (32),
3 mode bit (36) aligned,

1*
1*
1*
1*

unal,

sIt . I nc I . pI 1
F80A - Not to be reproduced

number of segment names tn this block */
segment name array +/
hash thread painter *1
"1"b if name referenced *1

*1

Page

88

3 pad btt (36) aligned,
3 code fixed bini

/. END INCLUDE FILE slt.tncl.pl1 */

Includ'

Fa

-., hard.source
nt to be reproduced

s 1 t . t nc 1 . P 1 1

89

sIt e. 1nc I . P I 1

segment
~n:
entry modified:

>ldd>lnclude
10/06/82 1359.7

BEGIN INCLUDE FILE slte.lncl.plt *1
/. Declaration for Segment Loading Table Entry structure.
Used by Initialization, MST Generation. and MST Checker subroutines
I. last modified 5/4/76 by Noel I. Morris
.1
/. format: style3 .1

contents modified:

10/06/82

1356.3

1*

dcl

sltep

del

slte_uns
2 names_ptr
2 path_ptr
/ •• ** End of word 1 +/
2 access
2 cache
2 abs_seg
2 flrmware_seg
2 layout_seg
2 pad1
2 wired
2 paged
2 per_process
2 pad3
2 acl provided
1++.+ End of 1st half of word
2 pad4
2 branch_requ 'I red
2 Inlt_seg
2 temp_seg
2 link_provided
2 link_sect
2 link sect wired
2 combine link
2 pre_l'inked
2 defs
I ••••• End of word 2 +1
2 pad5
2 cur_length
2 rlngbrack
2 segno
/ ••••• End of word 3 +/
2 pad7
2 max_length
2 bi t_count
)

dc 1

sIte
2 names_ptr
2 path_ptr
2 access

include .••. hard.source
F80A - Not to be reproduced

.1

ptr;
based (sltep) aligned.
bit (18).
bit (18),

1+
1*

reI polntar to thread of names *1
reI pointer to pathname (if present)

*1

1*

SOW access btt (REWP) .1
/. Segment to be allowed In cache */
I. segment Is an abs seg If ON +/
1* load tn low 256 +1
1* mailbox & such *1
1* unused */
1* segment ts wired If ON .1
1* segment 15 paged If ON */
·1+ segment Is per-process if ON *1

bit (4).
bit (0.
bit (0.
bit (0.
bit (1).
bit (4).
bit (1),
bit (0,
bit (0,
bit (2),
bit (0,
2 .1
bit (3).
bit (0,
bit (0,
bit (1),
bit (1),
bit (0.
bit (1).
bit (0,
bit (0,
bit (0,

1*

ON If acl structure follows path_name on MST

*1

1*
1*
I+
1*
1*

path name supplied If ON */
segment is inlt_seg If ON *1
sE~gment Is temp_s-eg if ON *1
lUnkage segment provided If ON *1
segment Is linkage segment if ON */
/+ l~nkage segment 15 wired If ON *1
I. lUnkage is combined if ON *1
I. lot entry has been made If ON */
I. segment Is definitions segment If ON

*1

bit (6).

fixed bin (9) uns,
(3) fixed bin (3) uns,
fixed bin (18) un~,
bit (3).
fixed bin (9) uns.
fixed bin (24) uns
unaligned;

1*
1*

I~

current length of segment (In 1024 word blocks) */
r.tngbrackets *1
text/link segment number *1

1*

maximum length for segment

1*

bntcount of segment ./

*1

based (sltep) aligned,

I. rei

bit (18),
bit (18).
bit (4),

1+
1+

5

I t a.

j

nc I . P I 1

p~lnter to thread of names .1
pOinter to pathname (if present)
SOW access btt (REWP) *1

~el

*1

Paga

90

2
2
2
2
2
2

2
2
2

2
2

2
2

2
2
2
2
2
2
2
2
2
2
2
2
2
2

cache
abs_seg
firmware_seg
layout_seg
pad2
wired
paged
per_process
pad3
acl_provtded
pad4
branch_required
int t_seg
temp_seg
I ink_provided
1 ink sect
I ink -sect wtred
nk
combt ne
pre_l inked
defs
padS
cur_length
rtngbrack
segno
pad6
max_length
bit_count

.-r

)

bit (0,
bit ( t),
bit (0,
bit (0,
bit (4).
bit (t) ,
bit (t) ,
bit ( 0,
bit (2).
bit (t) ,
bit (3) ,
bit ( 1) ,
bit ( t),
bit (t) ,
bit (t) •
bit (t),
bit (t) •
bit ( t) ,
bit (0,
t;.it (0,
bit (6).
bit (9).
(3) bit (aL
bit ( 18).
bit (3).
bit (9).
bit (24)
unaligned:

/. Segment to be a 1 lowed tn cache, */
/. segment is an abs seg

if

ON */

/* segment is wired i f ON ./
/. segment is paged tf ON ./
/* segment ts per-process tf ON */
/* ON if acl structure follows

path_n~me

on MST */

/. path name supplted tf ON ./
/* segment ts tnft_seg i f ON */
/* segment ts temp_seg i f ON */

/* ltnkage segment provided if ON */

/. segment ts linkage segment if ON */
/* linkage segment is wired if ON */
/* 1 inkage is combined if ON ./
/* lot entry has been made i f ON ./
/. segment is deftn~ttons segment if ON' ./
/* current length of segment (tn 1024 word blocks) */
/. rtngbrackets ./
/* text/link segment number ./

/* maximum length for segment */
/* bt tcount of segment */

/. E:ND INCLUDE FILE slte.tncl.pI1 ./

tnclud r
F8(

~*,

hard.source

,ot to be reproduced

sIt e. i nc I . P 1 1

D'\96

91

segment
in:
entry modified:

sst . i nc 1 . P I 1

/*

BEGIN INCLUDE FILE ... sst. incl.plt '"

~anuary

>ldd>tnclude
11/19/82

contents modified:

111/19/82

1602.2

1604.3

1971 */

/+ Note: This include file has an AlM counterpart made with cif. Keep it up to date */
dcl
sst_seg$ external;
dc I s s t P P t r i
dcl

1 sst based (sstp) aligned.
2 space (8) fixed bin,

1*

empty space to watch for bugs

2 pre page time fixed bin (11).
2 posi pur~e time fixed bin (11).

1*

total

2
2
2
2

total pages in core (and in list) at purge time
meter of thrashing being done on system *1
/* meter of times npfs was on when pre-paging *1
1* flag which is A_O if and only if salvaging *1

/* SST HEADER

*1

*1

post-in co~e fixed bin,
thrashing fixed bin,
npfs_misses fixed bin,
salv fixed bin,

time spent pre-paging

*1

/* total time spent post-purging

1*
1*

*1

1*
1*
1*
1*
1*
1*
1*

gl~bal page table loop lock *1
global ast allocation block lock *1
event used when waiting for AST lock *1
flag to ncitify AST lock *1
number of pages on used ltst *1
absolute address of page table array *1
pOfinter to first trailer on free list *1

2 astap ptr.

1*

aste array pointer

2 bulk_pvtx fixed bin (8) aligned,

/* pvtx of bulk store, zero if none

2 P tl b it (36),
(36),

2 astl btt

2 astl event bit (36),
2 astl:notify_requested bit

(1) aligned.

2 nused fixed bin,
2 ptwbase fixed bin (24),
2 tfreep ptr,

2
2
2
2

ptl wait ct fixed bin,
astsize fixed bin,
cmesize fixed bin,
root_astep ptr.

1*

*1

pxss: number is >= N of processes watting to ptl
/* size of an AST entry */
1* size of a CME entry */
/+ pOfinter to the root AST entry *1

1*

array of ~age table sizes

3 (ausedp. no_aste) bit (18) unaligned,

1*

used list and count of number of entries

(atempp. atempp1) btt (18) unal,
dm_enabled bit (.) aligned,
(ainUp. ainitpO bit (18) unal,
strsize fixed bin.

1*
1*
1*
1*

temp seg list
ON => journal
innt seg list
Trailer size

2 pts (0: 3) fixed bin.
2 I eve I (0: 3) •

2
2
2
2

*1

1+ per-list information

*1

~bout ASTE's

*1

*1

*1 .

*1

pOinter *1
seg exists */
pojnter *1
tn words. *1

/* CORE MAP HEADER */
2 cmp ptr.
2 usedp bit (18).

2 wtct fixed bin,

include.* •• hard.source
f80A - Not to be reproduced

1*

po~nter to start of core map */
/* po~nter to first use~ core block */
/* count of pages being written *1

sst . t nc 1 . pit

Page

92

2 startp btt (18).
2 removep bit (18).

/* pointer to solid page for lap counting (fsdct) */
/* pointer to list of pages being removed from use */
/* MISC */

2 double_write fixed bin,

/* trigger for store through scheme */
/* 0 • no double writes,
1 • all non-pd pages get written,
2 • all directories get wrttten */
/* walt event f~r temp wirtng lock */

2 temp_w_event bit (36) aligned.
2 roo't_pvtx fixed bin.
2 ptw_ftrst bit (1) aligned,
2 nolock btt (t).

2 x_fsdctp bit (18).
2 fc_sklps_plnned fixed bin (35).

2
2
2
2
2
2

/*

100

2
2
2
2

/.

oc t a 1

pvtx or rpv */
nag controlling when pages go to pd */
tf on. don't lock pt1 on Interrupts */
removed by thvv */

/*
/*
/*
/*
/*
/*
/*

number of skips over pinned page In find core */
number of skips over pinned page in claim_mad_core */
AST hast table pointer */
number of buckets In AST hash table */
mask to strip out low-order bits of uld */
non-zero enables AST lock meters ./
non-zero enables fflemap checksumming */

/*
/*
/*
/*

read errors posted to page control */
write errors posted to page control */
read-Side rws errors */
write-side rws errors */

*/

page read errors fixed bin.
page=wrlte_errors fixed bin.
rws read errors fixed bin,
rws::write_errors fixed bin.

2 cycle_pv_allocatlon fixed bin.

/* flag to cycle VTOCE allocation among PVs */

2 n trailers fixed bin.
2 synch activations fixed bin (35).
2 synch=skips fixed bin (35).

/* Number.of trailer entries In str_seg */
/* Activation attempts for synchronized segs ./
/* get_aste skips because not synchronized */

2
2
2
2
2
2
2
2

/*
/*
/*
/*
/*
/*
/*
/*

lock waits fixed bin.
total locks set fixed bin,
Pdlr_page_faults fixed bin,
level_1_page_fau1ts fixed bin.
dlr_page_faults fixed bin,
ring 0 page faults fixed bin.
rqover-flxed bin (35).
pc_io_walts fixed bin.

Number of times we had to wait for a lock */
Total number of block locks set */
total page faults off >pdd */
total page faults in sys libes */
Total page faults on directories */
page faults in ring 0 ./
errcode for r~cord quota overflow */
Number of times pc had to watt on to */

The following (until pdmap) used to be the 'cnt' In cnt.lncl.pl1 */
2
2
2
2
2
2
2

tnclud
Fb~

cl_sklps_plnned fixed bin (35).
ast ht ptr ptr.
ast"-ht-n buckets fixed bin.
ast-ht-uid mask bit (361 aligned.
meter_sst_locking 'Ixed bin.
checksum_fllemap fixed bin.

/*
/*
/*
/*

steps fixed bin.
needc fixed bin.
ceiltng fixed bin.
ctwait fixed bin.
wl~ed fixed bin,
laps ftxed bin,
sktpw fixed bin.

*. hard. source
~t

to be reproduced

/* number
/- number
/. number
/- number
/- number
/* number
/- number

sst. t nc 1 . pI 1

of
of
of
of
of
of
of

steps
t tmes
times
times
pages
times
pages

taken around used list ./
core page needed */
cetllng hit */
write counter was full */
wired by pc */
around used list */
sklped because they were wired -/

93

/* because of being u:;;ed */

2 sktpu fixed bin.
2
2
2
2
2
2
2
2

skipm fixed btn.
skipos ftxed btn,
skipspd fixed bin,
aused fixed btn,
damaged_ct fixed bin.
deact count fixed bin,
demand_deact_attemptt; f txed bin,
demand_deactivations fixed bin,

/* number of reads for each did ./
/* number of writes for each did */

2 reads (8) fixed bin,
2 writes (8) fixed bin,

2
2
2
2
2
2
2
2
2
2
2
2
2
2

/*
/*

/. count of page faults on out of service pages ./
/* count of times locked PTl ./
/. time spent looping on PTl */
/* cpu time spent in seg_fault */
/. total page faults while In seg_fault */
/* total number of seg_faults */
/* total pre-paglngs expected ./

short_pf_count fixed bin,
loop_locks fixed bin.
loop_lock_time fixed bin (11),
cpu_sf_time fixed bin (11).
total_sf_pf fixed bin,
total_sf fixed bin,
pre_page_size fixed bin,
post_ltst_size ftxed bin.
post_purgtngs fixed bin.
post_purge_calls fixed bin,
pre_page_calls fixed bin.
pre_page_Iist_size fixed bin,
pre_page_misses fixed bin,
pre_pagings ftxed bin,

200 oc t a I

because of being modified */
because out of service ./
number of times a block of core was skipped for active rws ./
number of AST entries on used ltst ./
count of segments that system damaged ./
count of deactivations */
/* user requested deactivations ./
/* user instigated deactivations ./

/*
/*
/*
/*
/.
/*

/* total number of post-purgings ./
/. total number of calls to post-purge */
/* total number of calls tp pre-page ./
/. total number of misses In pre-page list ./
/* total number of pre-pagings ./

*/

TEMPORARY WIRED PROCEDURE INFO

./

/* MAIN MEMORY USAGE INFORMATION ./
2 abs_wired_count ftxed bin.

system_type fixed bin,
Wired_copies fixed btn,
recopies fixed bin,
first_core_block fixed bin.
last core block fixed bin,
fw_r~trjei fixed bin (35).
2 pvhtp ptr unaligned.

2
2
2
2
2
2

/*

AST METERS

/* count of abs-wlred pages ./
j* ADP SYSTEM o~ l68 SYSTEM ./
/. number of times a-Wired page was copied ./
/. number of times recopied because modified */
'/* core map Index for first block of core */
/* co~e map Index for last block of core ./
/* force write retries due to ASTE move . ,
ptr to PV hold table for debuggtng ./

,*

./

2 askipslze (0:
2 aneedsize (0:

3) fixed bin.
3) fixed bin,

2 stepsa fixed bin,

2 asklpsehs fixed btn,
2 asearches fixed bin,
2 asklpslevel fixed bin,

Include .••. hard.source
F80A - Not to be reproduced

/* array of ,skips because wrong AST size ./
/* array of times needed each size ./

/* count of steps taken looking for an AST entry */
/* count of skips because EHS was ON */

J*

count of full searches made ./

/* count of skips because pages were In core ./

sst . I nc 1 . P I 1

Page

94

2
2
2
2

askipsinit fixed bin,
acost fixed bin,
asklpslock fixed bin,
asklpdlus fixed bin,

2
2
2
2
2
2
2

alaps fixed bin,
updates fixed bin,
setfaults all fixed bin,
setfaults-acc fixed bin,
total bf fixed bin.
tota(:bf_pf fixed bin,
cpu_b~f _t Ime f heed bin (71),

/* count of times turned OFF inlt switch */

/* cumulative cost of deactivations */
/* count of skips because couldn't lock parent ./
/. count of skips because OIUS was on ./

/* lap counter for AST list ./
/* calls t~ updateb */
/* setfaults done to the entire SOW ./
/. setfaults done to the access fteld ./
/. count of bound faults */
/. page faults during bound faults ./
/* cpu time spent In bound fault !/

2 asteps (0: 3) fixed bin,

/. per-size AST step counters . /

2
2
2
2
2
2
2
2

clock reading when ast las~ locked ./
total real time the ast lock was locked ./
total real time of all waiting on ast lock ./
number of times sst was locked ./
calls to pc$cleanup */
ditto,
with >0 rws's ./
/* total rws's started by cleanup */
/* total real time In pc$cleanup */

ast locked at tlm$ fixed bin (71),
ast-locked-total time fixed bin (71),
ast-lock walt time fixed bin (71),
ast:locktng_count fixed bin (35),
cleanup count fixed bin,
cleanups_with_any_rws fixed bin,
cleanup rws count fixed bin,
cleanup:real_tlme fixed bin (71),

/.
/.
/.
/.
/.
/.

/* PRE-PAGE METERS */

1* 300 octal */
2 tree_count (0: 63) fixed bin,

/. counters for pre-page decisions ./

/. 400 octal */
2 pp_meters (0: 63) fixed bin,

/* counters for measuring pre-page success */

/* End of old cnt Include file */
/* 500 octal ./
2
2
2
2
2
2
2
2
2
2
·2
2
2
2
2
2
2

wusedp bit (18) aligned,
write hunts fixed bin,
cl.alm=sk Ip_cme fixed bin,
clalm_skip_free fixed bin,
claim notmod fixed bin,
clalm=passed_used fixed bin,
clalm_sklp_ptw fixed bin,
claim writes fixed bin,
clalm=steps fixed bin,
rws reads os fixed bin,
pd_updates f txed bin,
pre seeks failed fixed bin.
pd_desperatlon_steps fixed bin.
pd_desperatlons fixed bin.
sklps_nypd fixed bin,
pd_wrlteahead bit (1) aligned.
pd_desperatlons_not_mod fixed bin.

Includr
F80A,~::c

~*.
"~t

hard. source
to be reproduced

/* Relative cmep to next cme for writing */
/*
/*
/*
/*
/.

/*
/.

/*
/*
/*
/.

/*
/*
/*

/*
/*

sst. i nc 'I • pI 1

Times claim mod core Invoked ./
Times unacceptable cme found by c m c */
Times free cme passed by c m c */- Times c_m_c passed pure page-*/
Times used page seen ./
Times c_m_c saw unacceptable ptw . /
Writes queued byc m c */
Steps passed. In core-claiming */
RWS reads outstanding. In SST for debugging */
done time pd writes */
counter of times quick find core talled./
steps of allocate pd finding pdme */
times allocate pd-needed to force one free ./
find_core skips for nypd pages */
"1 Mb -> allocate_pd at disk done time */
desperatlons on pure pages */

95

1*

2 resurrect10ns fixed bin,
2 volmap_seg_page_faults fixed bin (35),
2 oopv fixed bin,
2 pdf lush_replaces fixed bin,
2 pcrsst_statptr ptr unal,
2 pd resurrections fixed bin,
2 dblw resurrections fixed bin,
2 sgm_ttme fixed bin (71),
2 sgm pf fixed btn,
2 bad-sgms ftxed btn,
2 sgm=sgft ftxed bJn,
2 good_sgms ftxed bin,
2 claim runs ftxed btn,
2 acttvations fixed btn,
2 dtr_acttvations ftxed btn,
2 hedge_updatevs fixed bin,
2 hedge_writes fixed bin,
2 evict recover data,
3 evtct ptp bit (18) unal,
3 evict=phmblt bit (18) unal,

1*
1*
1*
1*

Calls on segments to force w~ite
Mod pages so written *1
force write wrote none *1
Updatev's 50 forced *1

I.
1*
1*
1*
/*

1*
1*
/+

I'"

*1

/* Data for metering force_wrtte facility 08/19/78
2
2
2
2

/*
/*
/*

nulled addresses reinstated *1
Pseudo-page faults on volmap_seg +/
out-of-phystcal-volume page faults +1
addresses "corrected" by post-crash pd flu~h ./
ptr to damage table of pc_recover_sst *1
addresses resurrected at RWS time ./
addresses resurrected by double-writing *1
Time (VCPU) tn seg mover ~I
Page faults in seg moving *1
Seg moves that failed +/
Seg faults tn seg moves *1
Seg moves that completed *1
Ttmes claim mod core had to run *1
total count-of activations ./
count of dtrectory activations *1
call-in updatevs *1
ca 1 1 'n core flush wr t t es ... I
see eVIct_page. aIm */
ptp of page being moved *1
N/Z tf page was mod *1

/+
/+
/+
/*
/+
/*
/*

force_swrites fixed bin,
force_pwrltes fixed bin,
fw none fixed bin,
force_updatevs fixed bin,

*1

2 pf_pd_Ioop_time fixed bin (71).
2 pf_unlock_ptl_ttme ftxed btn (11),
2 pf_pd_Ioop_meterlngs fixed bin,
2 pf_unlock_ptl_meterings fixed bin,

I. Ttme looping on pd on page faults *1

1*

Time unlocking ptln page faults

2 makeknown activations fixed bin (35),
2 backup_activations fixed bin (35),
2 metering flags aligned,
3 activate acttvated bit (1) unal,
3 pad bit (35) unal,
2 seg_fault_calls fixed bin (35),

1*
1*
1*
1*

activations at makeknown time *1
actlvattons for backup *1
small chunks of misc. information *1
ON => last call to activate entry actually activated something

1*

number calls to seg_fault for explicit activation

*1

*1

*1

/* METERS FOR STACK TRUNCATION */

/* counts */

2 (stk_truncate_should_didnt,
stk_truncate_should_did,
stk truncate shouldnt d1dnt,
stk truncate-shouldnt-d1d) fixed bin (35),
2 stk_pages_truncated fixed bin (35),
2 stk_pages_truncated_in_core fixed bin (35),
2 padder (8)

fixed bin,

I.

the following data Is used by page multilevel

1+

600 octal

*1

*1

include.++, hard.source
F80A - Not to be reproduced

sst. t nc I . P I 1

Page

96

2 pdmap ptr.
2 pdhtp ptr.
2 pd id fixed bin (8) aligned.
2 pdslze fixed bin.
2 pdme_no fixed bin.
2 pdusedp bit (18) unaligned.
2 pd first fixed bin.
2 pd_map_addr fixed bin.
2 nrecs_pdmap fixed bin.
2 pd_free fixed bin.
2 pd_uslng fixed bin.
2 pd_wtct fixed bin.
2 pd writes fixed bin.
2 pd=celllng fixed bin.
2 pd steps fixed bin.
2 pd=Sklps_lncore fixed bin,
2 pd_sklps_rws fixed bin.
2 pd_needed fixed bin,
2 mod_durlng_wrlte fixed bin.
2 pd_,wrl te_aborts fixed bin.
2 pd rws active fixed bin,
2 pd no free fixed bin.
2 pd-'read truncates f txed bin,
2 pd-'wrlte truncates fixed bin,
2 pd:htslze fixed bin,
2 pd hash mask bit (18).
2 pdmap astep ptr.
2 zero pages fixed bin.
2 pd_zero_pages fixed bin,
2 trace_sw aligned.
3 pad_trace bit (32) unaligned,
3 pc_trace_pf bit (1) unaligned.
3 tty_trace bit (1) unaligned.
3 pc_trace btt (1) unaligned.
3 BC trace bit (1) unaligned.
2 new pages fixed bin.
2 rws=tlme_temp fixed bin (11),
2 rws time start fixed bin (11),
2 rws-ttme-done fixed bin (11).
2 pd time counts (4) fixed bin,
2 pd--tlme-values (4) fixed bin (71),
2 pd=~no_free_gtpd fixed bin,
2 pd page faults fixed bin.
2 pd--no free first fixed bin.
2 update Index fixed bin.
2 last update fixed bin (11),
2 count pdmes fixed bin.
2 bucket overflow fixed bin,
2 buckets (0:63) fixed bin,
2 ast_track bit (1) aligned,
2 dlrlock wrltebehlnd fixed bin,
2 wr'lte ITmtt fixed bin.
2 pad4 (1) fixed bini

/*
/*
/*
/*
/.

/*
/*
/*
/~

/.
/.

/*
/*
/*
/*
/*
/*

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

pointer to the pd map */
pOinter to the pd hash table */
pvt Index of paging device, 0 If none */
the number of words Ina paging device map entry */
the number of entries In the paging device map */
pointer to head of paging device used list */
first usable record of paging device */
core addres~ of base of paging device map */
number of records In pd map */
number of free records on the paging device */
actual number of pd records being used */
number of read/write sequences queued */
total number of read/write sequences ever made */
number of times too many rws active at once */
total steps taken around·the pd map */
number of entries skipped because page was In core */
number of entries skipped because a rws was active */
total number of pd records need~d */
times a page was mOdified while It was being written */
number of pd wrttes aborted */
count of current number of active rws's */
number of times couldn't find a free pd record */
number of truncated pages during read of rws */
number of truncated pages during write of rws */
number of ent~les in pd hash table */
mask used in pd hashing algorithm */
pointer to temporary segment for pdmap copying */
count of pages truncated because all zero */
as above except also on paging device */
tracing control flags */

/* tracing for page faults, done. etc. */

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

flag used by page control primitives */
flag used by segment control primitives */
newly created pages */
temporary used for rws metering */
flme spent Inttlatlng rws */
time spent finishing up rws */
number of hits In the following bins */
total residency time for the 4 bins */
times pages written to disk because gtpd ON */
total page faults from pd */
times pages were written to disk because first wrfte */
temporary used during paging device map update ./
time last paglng device updat. was' performed $/
If non-zero, pdme stattst1cs will be kept */
counter for overflows */
buckets for pdme stats */
uIMb -> keep SST name table */
/* -I to flush modified dlr pages' In lock$unlock */
/* Max H of outstanding writes by page control */
/* padding to 512 words (1000)8 */

/* END INCLUDE FILE sst.lncl.pI1 */

t nc 1uri
f8~

*

hard. source

,~ot to be reproduced

sst . I nc I . pI 1

ge

97

sst n t . ,nc 1 . P I 1

segment
in:
entry modified:

1+ Begin include file sstnt. incl.pl1

>ldd>lnclude
03/10/82 0836.7

modified 08/24/79 by J. A. Bush

11/01119

1033.0

./

I. Created 10/03/74 by Bernard Greenberg .1

1*

contents modified:

for easier calculation of size of sstnt

*1

/. Segment containing sst name table */
dcl
dcl

sstnp ptr;
1 sstnt based (sstnp) al igned.

/* Major structure */

2 valid bit (1) aligned.
2 multics_or_bos char (4) aligned,

/* 1 => structure ftlled by Multics */
1* Origin of data tn table */
1* number of entries in the sstnt */

2 nentries fixed btn.
2 pad 1 (5) f t xed bi n.
2 (ast_sizes.
ast_name_offsets.
ast offsets.
pad2) (0 : 3) fixed bin.
2 names (0 : 0 refer (sstnt.nentries»

dcl
dcl

/. Pointer to sst name segment */

(sstnmx. ptsi_a) fixed bjn (17);
nm_astep ptr;

I. Sizes of ASTE's at each level */.

I. Starting index for names at each level *1
/. Starting rei addr of each AST region */

char (32) varying; /* Names·of AST entries */

1* Index into name· table *1

1*

astep to be used */

1+ End include file sstnt.incl.pI1 */

include .••• hard.source
F80A - Not to be reproduced

sst n t . i nc I . P 1 1

Page

98

segment
In:
entr'y modU led:

>ldd>Include
03/10/82 0836.7

contents modified:

10/03/79

1601.4

/* BEGIN INCLUDE FILE ... stack_O_data.tncl,pll */
/* Created 790509 by Mike Grady */
dql
dcl
dcl

stack 0 dataS fixed bin ext:
stack-O-data Inlt number of stacks fixed bin:
sdtp ptr:
,--

dcl 1 sdt aligned based (sdtp).
2 lock bit (36).
2 num stacks fixed bin.
2 freap btt (18).
2 pad fixed bin.
2 stacks (stack 0 data Intt number of stacks
refer (sdt.num_stacks) ltke-sdte:
dcl

/. shared stack 0 data base seg ./
/* Make PL/I work */
/* stack 0 database */
/* lock before changing threads ./
/* number of stacks tn pool ./
/. head of' free thread, managed LIFO */

sdtep ptr:

dcl 1 sdte aligned based (sdtep).
2 nextp bit (18) unal,
2 pad bit (18) unal,
2 astep bit (18) unal,
2 aptep bit (18) unal,
2 sdw bit (72);

/. stack data table entry ./
/. thread to next free entry (If free) ./
/. ptr to ASTE for this stack seg ./
/. ptr to APTE of process using this stack. If not free ./
/. SOW for this stack seg */

/. END INCLUDE FILE ... stack_O_data.lncl.pll */

tnclud r
F[-

~*,

hard. source

Jot to be reproduced

0"\ge

99

stack_frame. tncl.pl1

BEGIN INCLUDE FILE

segment
tn:
entry modtfied:
stack_frame. incl .p11 .. ,.

>ldd>lnclude
03/10/82 0836.6

sp pointer;

dcl

stack_frame_min_Iength fixed bin static tntt(48);

dcl

04/13/18

1156. 1

*/

/* Modified: 16 Dec 1911. D. Levin - to add fio_ps_ptr and pI1_ps_ptr ./,
/* Modified: 3 Feb 1978, P. Krupp - to add run unit manager bit & main proc btt */
/* Modified: 21 March 1918. D. Levin - change fTo_p~=ptr to 5upport_ptr-*1
dcl

contents modified:

•

1* pointer to beginning of stack frame */

1 stack frame based(sp) aligned,

2
2
2
2
2
2
2
2
2
2
2
2

potnter_registers(O
1) ptr,
prev_sp pointer,
next_sp pOinter.
return_ptr pOinter.
entry_ptr pointer.
operator_and_lp_ptr ptr,
arg_ptr pointer,
stattc_ptr ptr unaltgned.
support_ptr ptr unal, ./* only used by fortran l/O
on_unit_relp1 bit(18) unaligned,
on_unit_relp2 blt(18) unaltgned,'
translator_td bit(18) unaligned,

2
2
2
2
2
2
2
2

operator return offset bit(18) unaligned,
x ( 0 : 1) b i t ( 18 ) -una I i gned ,
a bit (36),
q bit (36),
e bit (36),
timer blt(21) unaligned,
pad bit(6) unaligned,
ring_alarm_reg bit(3) unaligned;

2
2
2
2
2
2
2
2
2

stack_frame_flags based(sp) aligned,
pad(O : 1) bit(12),
xxO bit(22) unal,
main proc bit(1) unal,
run ~ntt manager bit(1) unal,
signal bTt(1) unal,
crawl out blt(1) unal.
signaller bit(1) unal,
link trap bit(1) unal,
support bit(l) unal,

dcl

include .• *, hard.source
FBOA - Not to be reproduced

I. serves as both +/

*1
/. Translator 10
o => PL/I version II
1 => ALM
2 => PL/I version I
3 => signal caller frame
4 ~> signaller frame +/

/*
/+
/+
/*

Inde)( registe.'s
accumulator +/
q-reoister *1
exponent *1
1* timer

/+ skip over prs
/+ on
/* on
/+ on
/+ on
/* on
/* on
/* on

if
if
if
if
if
If
if

+1
*1

+1

frame beJongs to a main procedure +1
frame belongs to run unit manager */
frame belongs to logical stgnal_ +1
this is a signal caller frame +1
next frame js signaller's *1
this frame was made by the linker *1
frame belongs to a ~upport proc *1

Page

100

2
2
2
2
2
2
2
2
2
2

/* on if condition established tn this·frame */

condition btt(i) unal,
xxOa bit(6) unal.
xxi fixed bin,
xx2 fixed bin,
xx3 btt(25) unal.
old crawl out btt (1) unal,
old-'stgnaller bit( 1) unal.
xx3i btt(9) ~naltgned.
xx4(9) btt(72) aligned.
V2_pI1_op_ret_base ptr.

/* on if this is a signal caller frame */
/* on If next frame is stgnaller's -/
/* When a V2 Pl/I program calls an operator the
* operator puts a pointer to the base of
* the calling procedure here. (text base ptr) */

2 xx5 btt(72) altgned,
2 pI t_.ps_ptr ptr i

/* ptr to ps for this frame; also used by flo. */

END INCLUDE FilE ... stack_frame.tncI.pI1 */

tncludr

*. hard.source
;ot to be reproduced

stack_frame. tnr' 011

r-qe

10t

segment
in:' >ldd>include
entry modified: 03/10/82 0836~6

stack_header.incl.pI1

BEGIN INCLUDE FILE ... stack_header.incl,pI1 " 3/72 Bill StIver */
modified 7/76 by M. Weaver for *system links and more system use of areas
modified 3/77 by M. Weaver to add rnt_ptr */
ptr;

del

Sb

dcl

stack_header

/* the

contents modified:

main p010ter to the stack header */

based (sb) aligned.

1*

(0) also used as arg list by outward_call_handler .*/
(4) pOinter to the lot for current ring (obsolete) */
(6) painter to area containing separate static *1

I.

2 clr ptr
2 max-lot size
2 matn_proc_invoked
2 run unit depth
:2 cur=: I ot_5 ize

ptr.
fixed
fixed
fixed
fixed

/.
/.
/.
/.
I·

(8 )

2 system_free_ptr
2 user_free_ptr

ptr.
ptr,

1*

( 12)
( 14 )

2 null_ptr
2 stack_begin_ptr
2 stack_end_ptr
2 lot_ptr

ptr.
ptr.
ptr.
ptr.

( 16)
( 18)
(20)
(22)

pointer to first stack frame on the stack */
pOinter to next useable stack frame */
pOinter to the lot for the current ring *1

ptr,
ptr,
2 pl1 operators ptr ptr,
2 call_op_ptr ptr,

(24)
(26)
(28)
(30)

pOinter to signal procedure for current ring
value of sp before entering bar mode .1
pOinter to p11_operators_$operator_table */
pointer to standard call operator *1

(32)

(34)
(36)
(38)

pOinter
pointer
pointer
pOinter

to standard push operator *1
to s~andard return operator *1.
to standard return I no pop operator .1
to standard entry operator *1

(40)
(42)
(44)
(46)

pOinter
pointer
pointer
painter

to
to
to
to

(48)
(50)
(52)
(54 )
(56)

pointer to
pOinter to
pointer to
pointer to
for future

bin(17) una',
bin (11) unal,
bin(5) unal.
bin(17) unal,

/*

I·

2 stgnal_ptr
2 bar_mode_sp

push_op_ptr
ptr.
return_op_ptr
ptr.
return_no_pop_op_ptr ptr.
entry_op_ptr
ptr.

2 trans_op_tv_ptr
2 i sot_ptr2 sct_pt.,
2 unwinder_ptr

1156.1

~/

2 pad 1 (4)
fixed bin.
2 old~lot_ptr
ptr.
2 combined_stat_ptr ptr.

2
2
2
2

04/13/78

ptr.
ptr,
ptr.
ptr,

sys_Iink_info_ptr ptr,
rnt_ptr
ptr,
ect_ptr
ptr,
assign_l!nkage_ptr ptr,
2 pad3 (8)
bit (36) aligned;
2
2
2
2

include .••• hard.source
f80A - Not to be reproduced

/.
/*

1*
/*

pointer to area containing linkage sections *1
( 10) DU number of words allowed in lot *1
( 10) Dl nonzero if main procedure invoked in ~un unit
( 10) Dl number of active run units stacked .1
( 11)
number of words (entries) in lot *1

*1

painter to system storage area */
pointer to user storage area *1

./

stack_header. incl.plt

.1

translator operator ptrs *1
ISOT . /
System Condition Table".1
unwtnder for current ring .1
.system link name table .*1
Reference Name Table */
event channel table . /
storage for (obsolete) hcs_$assign_Iinkage ./
expansion */

Page

~02

The following offset refers to a table within the

/*
dcl

tv-:-offset

fixed bin

In It (3(51)

pH

operator table.

Internal static:

/*

The following constants are offsets within this transfer vector table.

/.*
dcl

(ca II_offset
push offset
return offset
return:no_pop_offset
entry_offset

fixed
fixed
fixed
fixed
fixed

bin
bin
bin
bin
bin

inlt(271),
Intt(212).
Intt(273),
Intt( 274).
Intt(275))

stack_header_overlay (slze(stack_header))

(551 )

octal */

*/

Internal statfc:

The folloWing declaration Is an overlay of the whole stack header.
move the whole stack header should use this overlay.
dcl

*/

f hed

bin

Procedures which

based (sb):

END INCLUDE FILE ... stack_header.lncl.pl1 */

Includ
F8~

'*, hard.source

Jot to be reproduced

s tack._header. 1r

•.

p 11

G"' ..

ge

103

stpck_seg. incl .pl 1

1+

START Of:

segment
in:'
entry modH ied:

•

stock_seg. incl.plt

dcl
dcl
dcl
dcl

stock_segp
record_stockp
vtoce_stockp
stock_segS

ptri
ptri
ptr;
ext;

dcl
dcl
dcl

n in record stock
n:=voTmap_pages
n_ in_vtoce_stocl(

fixed bin
fixed bin
fixed bin

dcl

•

~.

>Idd>include
10/13/82

+

+

contents modified:

10/13/82

1310.8

1311.9

•

* •

•

..

•

* +1

aligned based (stock_segp).
2 meters

aligned like rsmeters.

2 record stock entries ftxed bin.
2 vtoce stock entries ftxed btn,
2 record stock size fixed bin.
2 vtoce stock size
fixed bin.
2 n_stock_entrles
fixed bin.
2 record_stock_arrayp ptr.
2 vtoce_stock_arrayp ptr;

dcl

/+ Number of entries in a record stock */
/+ Number of entries tn a VTOCE stock *1
/+ Size of a record stock in words *1
/* Size of a VTOCE stock in words *1
/* Number of stocks of each type·.1
/* Record stock reg ton *1
/* VTOCE stock region *1

aligned based (record_stockp) •

*1

2 pvtep

ptr una I.

2 n_In_stock
2 n_volmap_pages

fixed bin ( 18) uns una I • /* Max number of addresses In stock
fixed bin ( 18) uns una 1. / .. NumbElr of pages In Volume Map *1

2 n free In stock
2 n:=os_ln_stock

fixed bin ( 18) uns unal • /. NumbE!r addresses currently free .1
fixed bin ( 18) uns una I. /* NumbElr addresses currently out-ot-service

2 low thresholld
2 hi gh_ threshc) 1d

fixed bin (18) uns una1.!* Low threshold for withdrawing from volmap
fixed bin (18) uns unal.!. High threshold for depositing to volmap .1

2 target
2 stock_offset

fixed bin (18) uns unal.!* Target for stock *1
btt (18) unal.
, . Offset of stock In th~s.structure

2 n words In stock
2 search_Index

f j xed bin (18) uns una I • / •. Number of words = Number of entr tes
fixed bin (18) uns una1./. Roving pointer *1

2 0Id_v01map_page
3 last
3 pad

(3) aligned,
/* N OLD VOLMAP PAGES (elf)
thed bin (t8) uns una1,/* Roving pointer .1
b tt (18) una I ,

/* PVTE for this stock

(n_volmap_page~ rafar (record_stock.n_volmap_pages»

Include.+., hard.source
F80A - Not to be reproduced

stock_seg.incl.pIJ

*1

•
·1
*1

*1
1

2

*1

*1
aligned,

Page

~04

3 n free
3 baseadd
2 stock

fheed bin (18) uns ul'lal.l. NUmber free records In this volmap page *1
fixed bin (t7) unal.
I. First record address described by this page
(n_In_record stock r,afer (record_stock.n_ln_stock»

I

I. bit 0 ON
dcl

ndlces

.1

dcl

=> out-ot-servlce ./

aligned based (vtoce_stockp).
ptr unal.
' 1 * PVTE for this stoc~ .1
fixed bin (18) uns unal.l. Max number I~dlces In stock *1
fixed bin (18) uns una1.1. Number Indices currently free .1
fixed bin (18) uns una1.1. Target when wlthQrawlng/depostttng .1
fixed bin (18) uns una1.1. Roving pointer .1
(n_In_vtoce stock refer (vtoce_stock.n_ln_stock» fixed bin (17) una1; I. Stock array of VTOCE I

rsmeters

aligned based.

async_read_calls

fixed bin (35).
fixed bin (35).
async_post_lo_calls fixed bin (35).
depOSit_calls
fixed bin (35).
async~ost_Io_tlme fixed bin (71).
deposit time
fixed bin (71).
low thresh detected fixed bin (35).
high thresh detected fixed bin (35).
low thresh falls
fixed btn (35),
wtthdraw_stock_steps fixed bin (35),
withdraw stock losses fixed bin (35),
n_wlthdraw_attempt fixed bin (35),
n_wlthdraw_range
fixed bin (35).
n~ages_wlthdraw_stock fixed bin (35).
n_pages_wlthdraw_async fixed bin (35),
n_v_wlthdraw_attempts fixed bin (35).
withdraw volmap steps fixed bin (35).
depostt stock steps fixed bin (35).
deposlt-stock-losses fixed bin (35),
n_depostt_attempt theed btn (35).
n_pages_deposlt_stock fixed bin (35).
n pages deposit volmap fixed bin (35),
n=v_dep~slt_attempts fixed bin (35),
reset as calls
fixed bin (35).
reset-os-losses
fixed b'ln (35).
wtthdraw-calls
fheed bin (35).
Withdraw-time
fixed bin (71),
pc depostt time
fixed bin (71).
pc=deposlt=cal1s
fixed bin (35).
pc deposit pages
fixed bin (35).
get_free_vtoce_calls fixed bin (35),
return free vtoce call fixed bin (35),
deposit vstock calls fixed bin (35).
deposlt-vstock-falls fixed bin (35),
wlthdraw_vstock_calls fixed bin (35),
async~age_reads

tncludr ' •• hard. source
~t

bit (18) unal; I. Stock array ot addresses.

vtoce stock
2 pvtep
2 n In stock
2 n-free In stock
2 target- 2 search Index
2 stock -

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

F8~

.1

to be reproduced

1*
I.
1*

1*

1*
I.

I.

1*
1*
1*
1*
1*
1*
1*
/*

1*
/*
/*
/*

1*
/*

1*

/+
/*
/*

1*

/*

1*
/*
1*

/*
/*
/*
/*

1*

NUmber of asynchronous read attempts .1
Number of times page read was required *1
Number of times read or write posted */
Number of times deposit called .1 •
CPU time posting I/Os (Interrupt side) ./
CPU time tn deposit (call side) .1
Number of times stock below low threshold */
Number of times stock above high threshold .1
Number of times no records In volmap *1
Number steps thru stock tn withdraw *1
Number lock less losses *1
Number attempts to withdraw a page */
Number attempts to withdraw within range */
Number pages withdrawn from stock *1
Number pages withdrawn from volmap */
Number attempts to withdraw from v01map *1
Number steps thru volmap In withdraw ./
Number steps thru stock In deposit *1
Number lock less losses */
Number attempts to deposit a page ./
NUmber pages deposited to stock .1
Number pages deposited to v01map .1
Number attempts to deposit to volmap ./
Number calls to reset os */
Number lock less losses */
Number calls to withdraw *1
CPU ilme in withdraw (page-fault) ./
CPU time In pc deposit *1
NUmber calls't~ pc_deposit ./
Number pages depOsited by pc_deposit .1
Number calls to get_free_vtoce */
Number calls to return free vtoce */
Number attempts to deposit to vtoce stock ./
Number times deposit failed ./
Number attempts to withdraw from vtoce stock ./

stock __ seg.lncl ' , I

D"'Ige

t05

2
2
2
2
2

dcl
dcl
dcl
. /..

END OF:

wtthdraw_vstock_ fa t ls ftxed bin (35) •
depostt_vtoc_map fixed bin (35) •
withdraw_check_scav fixed bin (35) •
withdraw_conflict fixed bin (35) •
pad ( 1 t)
fixed bin (35) ;

/. Numb.~r times w t thd.'aw fa lied ./
/. Numb(;)r times vtoce depos I ted to map

.. /

/ .. Numbf3r t tmes withdraw checked an address for scavenge ./
/. Numb(~r times conf I tct found .. /

N_OlD_VOlMAP_PAGES
fixed bin InU (3) Int static opttons (constant);
DEFAULT N IN RECORD STOCK ftxed bin Intt (104) tnt static opttons (constant);
DEFAUlT=:N=:IN=:VTOCE_STOCK f txed bin Init (10) tnt stat Ie options (constant);
stock_seg.tncl.pI1

include ..... hard.source
F80A - Not to be reproduced

.. ..

. ..

.~

stock_seg.incl.pl~

.. ..

•

....

./

Page

106

segment
In: >ldd>tnclude
entrv modified: '03/10/82 0836.4

s t r. t nc 1 • P 1 1

/*

contents,modlfled:

BEGIN INCLUDE FILE ... str.lncl.pll ... last modified March 1970 */

dcl str_seg$ ext,
strp ptr;
dcl

str based (strp) 81 tgned.
(2 fp bit (18),
2 bp bit (18).
2
2

/* segment or process trailer declaration */

/* forward ast trailer reI pOinter */
/* backward est tratler reI polnter./

segno b tt (18),
dstep btt (18)) unal tgned;

/. segment number./
/. rel pOinter to ring 0 dste ./

del stra (0:8000) bit (72) based (strp) aligned;
/*

END INCLUDE FILE

Inclu~
F8~

~*.
~t

...

s t r. I nc I . pIt * /

hard. source
to be reproduced

s t r. I nc 1 . P 1 I

04/02/70

1914.7

segment
contents

/

jn:
modified~

>ldd>hard>source
01/26/83 1347.1

system td:
entry modtf ted:

,37" 15
03/27/83

\807.2

........................•.............................•.....
• Copyright. (C) Honeywell Information Systems Inc .•

•

1982 •

•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••• + • • /

/. TC DATA - This is the Traffic Controller Database . • /
/. la;t modified (Date and reason):
2/6/76 by S. Webber Initial coding
6/20/79 by Mike Grady to Init max maxe
3/4/81 by J. Bongiovanni not to set prds length (it's done from the header
or the TBlS Config Card)
3/21/81 by J. Bongiovanni for ma)(_stopped_stack_O. inttlal tzatioll1 NIO.
response time metering
6/27/81 by J. Bongiovanni for tuntng parameter changes (-tcpu. +pre_empt_sample_ttme.
gp_at_nottfy and gp_at_ptlnottfy off by default
1/82 BIM for s~k truncation tuntng parms.
4/27/82 by J. Bongiovanni to change post_purge to OfF
August 1982. J. Bongiovanni. for realtime_to parameters

./
/ • • • + ••••••••••••••••••••••••••••••••••• ¥ •••••••••••••••

•

•
•

•
•

•
•

• Copyright (c) 1972 by Massachusetts Institute of
•
• Technology and Honeywell Information Systems. Inc . •

••••••••••••••••••••••••••••••••••••• * ••••••••••••••••• /

/. This program creates the tC_data base ¥/
/. Automatic ./
dcl
dcl
dcl

1*
dcl

1 cdsa aligned like cds args;
code fixed bin (35); -

big_time fixed bin (71);
Based

.1

1 tC_data aligned like tern based (tcmp):

I. Static ./
dcl

exclude_pad (1) char (32) aligned static options (constant) intt ("pad.");

/. Bu i 1 tins • /

include .••. hard.source
F80A - Not to be reproduced

Page

108

dcl (addr. bin. null. reI. size, string. unspec)

builttn~

/* Entries */
dcl
dcl
dcl
dcl

com_err_ entry options (variable):
create_data_segment_ entry (ptr. ,fixed bin (35));
get_temp_segment_ entry (char (*). ptr. fixed bin (a5));
release_temp_segment_ entry (char (.). ptr, f txed b'ln ,(35):

inclu~

fBG

*, hard. source
~t

to be reproduced

tC_data.cds

"'6

109

/* Check offsets assumed by BaS */
call check offset for bos (addr (tc data.apt offset). 171. "apt offset");
call check-offset-for-bos (addr (tc:data.apt:stze). 203. "apt_s1ze");
call check:offset-for:bos (addr (tc_data.apt_entry_slze), 215. "apt_entry_stze");
tC_data.apt_offset ; rei (addr (tc_data.apt));
tC_data.apt_lock 5 -1;
tc data.meterlng lock = -1;
tC-data~work1ng iet factor .. ~;
tc-data.ncpu ~ 0; tc-data~itt size ~ 155;
tc-data.dst-size = 155;
tc-data.intt1aI1zer td = (36)"1"b;
tC:data.max_ellgible = 6*262144;
tc data.max max eligible = 16~262144;
tc:data.max:stopped_stack_O = 4;
tc data.apt entry stze = size (apte);
tc~data.pds='ength ; 1024;

/* -1 = unlocked */

1*

0 ~ locked

*1

tc data. Interactive q.fp = reI (addr (tc data. interactive q));
tc-data.interacttve-q.bp z reI (addr (tc-data.interacttve-q));
tc:data. tnteracttve:q.senttnel = (36)"1"~;
tc data.max hproc segno m 191;
tc-data. dst - ptr :: -null;
tc-data.old-user = null;
tc-data.tef1rst := 2000000;
tC:data.telast .. 2000000;
tC_data.ttmax = 8000000:
tc data.process tnittal quantum 3 2000000;
tc=data.gp_at_notify = 0;
tc data.gp at ptlnottfy 3 0;
tC:data.pre_empt._sample_ttme ::: 40000;
tc_data.max_timer_register ~ 40000;
tC_data.sort to_elhead = 1;
tC_data.auto_tune_ws = 1;
tC_data.ocore = .01b;
tC_data.stk_truncate = "t"b;
tC_data.stk_truncate_always

=

1* largest (default) hardcore segment number *1

1*
I.
1*

off by default *1
off by default *1
40 milliseconds .1

"O"b;

/* See fast_hc_tpc. but the rolling average of steps/block is· calculated *1
/* as NEW_AVERAGE = factor*NEW_VAlUE + (l-factor)*OlO_AVERAGE *1
tC_data.stk_trum::_avg_f1 .. 0.9375; /+' 15/16 .. /
tC_data.stk_trunc_avg_f2 = 1b - tC_data.stk_trunc_avg_f1:
tC_data.lock_error_severtty

include ..... hard.source
f80A - Not to be reproduced

=

3; /. BEEP BEEP but no crash */

Page

110

tc_data.realttme_q.fp • reI (addr (tc data.realttme q»:
tc_data.realtlme_q.bp • reI (addr (tc-data.realttme-q»:
tC_data.realttme_q.senttnel - (36)"I"b;
tc_data.eltglble_q_head.fp • reI (addr (tc_data.ellgible_q_tall»:
tc_data.ellglble_q_head.bp • "O"b;
tc_data.ellgtble_q_head.senttnel • (36)"1"b:
tC_data.el Iglble_q_tail.fp • rel (addr (tc data. Idle tatl »):
tc_data.eltgible_q_tai1.bp • reI (addr (tc-data.eltglble q head»:tc_data.eltgtble_q_tatl.senttnel
(36)"I"b:
- g

tC_data.ldle_tatl.fp· "O"b:
tc_data.tdle_tall.bp" reI (addr (tc_data.eltglble_q_tatl»:
tc_data.ldle_tatl.sentlnel • (36)"I Mb:
tC_data.mtn_eltgtble • 2*262144:
tC_data.guaranteed_eltg_tnc • 250000;
tc_data.priorlty_sched_lnc • 80000000:
tC_data.tnt_q_enabled • 1:
tc_data.fnp_buffer_threshold • 30:

1* fnp tries to keep> this many free buff *1

unspec (big t I me) • "00000000000000000000 1 11111 'lit t 1111 t 111111111111 till tit 1111111 t t 11 t 11 tit t "b:
tc_data.end:of_tlme .. btg_time:
tc data.next alarm time • big ttme:
1* gets zeroed by tc_InttSpart_2 *1
tc:data.prtortty_sched_time .-btg_tlme:
tc_data,tty_polllng_ttme • big_time;
tC_data.disk_polltng_ttme • big_ttme:
tc_data.tape~0.1ltng_ttme • big_time;
tc_data.lmp~011tng_tlme • btg_tlme;
tC_data.mos_polltng_ttme • btg_ttme:
tc_data.volmap_polllng_tlme • big_time;
tc data.realtlme to deadltne • 0;
tc:data.realtlme:to:quantum u 5000:
5 milliseconds *1

,*

tC_data.tnlt_watt_ttmeout • 5000000:
1* 5 second NTO during tnltlallzatton
tc data.tnlt ttmeout severtty • 0:
1* beep
tc:data. vcpu:response_bounds_s t ze • VCPU_RESPON!iE_BOUNDS;
tc_data.vcpu_response_bounds (1) .. 500000;
1* 1/2 second
tc data.vcpu response bounds (2) • 1000000:
1* 1 second
tc:data.vcpu:response:bounds (3) .. 10000000:
1* to seconds

1* Now set

tc data.default procs required" (8) "l"b:
u~ call to creite daia base *1
cdsa.sectlons (1).p • addr (tc· data):
cdsa.sectlons (1). len • size (ic data):
cdsa. sect ions (1). struct_name
Ii tC_data " :
c:dsa.seg_name .. "tc_data";
c:dsa . num exc 1ude names
1:
C:dsa.excTude_arriy_ptr • addr (exclude_pad);

includ'

*

hard. source

F80A'.>t to be reproduced

1* all CPUs *1

strtng (cdsa.swttches) = "O"b;
cdsa.swttches.have_text = "1"b;
call create_data_segment_ (addr (cdsa). code);

tnclude .••. hard.source
F80A - Not to be reproduced

Page

112

check offset for bos:
proc (Ttem_ptr, bos_offset, item_name);
dcl item_ptr ptr;
dcl bos offset fixed btn (10);
dcl ttem_name char (*);

/* pOinter to item in tc data
/* Vocation assumed by BOS
/* name of ttem in structure

if bin (rei (Item ptr)) ~. bos offset
then call com err (0. "tc data" "~a not at BOS-assumed offset (Ad=Aoo)",
item_name, bos_offset, bos:offset):

"""'ge

Foe

at to be reproduced

113

% include cds_args;

inc 1ude.

:+:+.

ha,'d. source

FOOA - Not to be reproduced

Page

114

%

include apte;

includ'
F80A

•

hard. source

.'ot to be reproduced

.. qe

115

-Yo

include tcrn;

end tC_data;

inc1ude.**. hard. source
FBOA - Not to be reproduced

Page

1~6

tcm. inc 1 . pIt

1*
1*
1*

segment
In:
entry modified:

>ldd>include
10/27/02

contents modified:

10/27/02

1226.2

1226.4

BEGIN INCLUDE FILE ... tcm.lncl.plt ... used to generat~ tC_data cds '*1
NOTE -- This Include f I Ie has TWO counterparts In ALM: .lc meters. Incl .alm and .1
wcte.lncl.alm. They cannot be produced with clf. and mu'st-be kept up to 'date manually. */

dcl

tcmp ptri

dcl , tcm aligned based (temp).
2 pad base (3) fixed bin (10).
2 cld2 fixed bin (10).
2 cid3 fixed bin (t8).
2 cld4 fixed bin (10).
2 depth count fixed bin (IQ).
2 loadings fixed bin (10).

1*

depth last process run *1
/* number of process loadings */

/* number of calls to block */
number of calls to wakeup */
/* number of calls to walt */

2 blocks fixed bin (10).
2 wakeups fixed bin (10),.
2 walts fixed bin (18).
2 nott~les fixed bin (18).
2 schedultngs fixed bin (10).
2 Interactions fixed bin (10).
2 avequeue fixed bin (35. 10).
2 te_walt fixed bin (18).

/. number of interactive schedullngs *1
/* recent time average of number In queue */
1* times te called from watt *1

2
2
2
2
2
2

1* times te updated from block */
/* times te updated from I stop */
/* times te updated from pre_empt */
1* times Interaction bit turned off because of high priority ./
/* total Idle time ,/
1* multi-programming idle */

te block fixed bin (10).
te=:l_istop fixed bin (18).
te_pre_empt fixed bin (10).
p_Interactlons fixed bin.
Idle fixed bin (71).
mp_Idle fixed bin (71).

2 nmp idle fixed bin (71).

2
2
2
2
2
2
2
2
2

2
2
2

2
2
2
2

zero Idle fixed bin (71).
last-time fixed bin (71).
100p=lockS fixed bin (10).
loop lock time fixed bin (18).
ave eligible fixed bin (35. 18).
sort to elhead fixed bin (to).
processor time fixed bin (71).
response time fixed bin (71).
eltgible=tlme fixed bin (71),
response count fixed bin.
eligible-count fixed bin.
quit counts (0:5) fixed bin.
loading Idle fixed bin (71).
delta_vcpu fixed bin (71).
post_purge_switch fixed bin.
t ime_,out_sever I ty f txed bin.

Includr

~*.

hard.source

FOOl """"""",ot to be reproduced

1*

1*

number of callS' to notify

*1

/* non-multi-programming idle time */
/* zero idle time */
1* last time a process was run */
I. times looped on the APT lock *1
/* time looping on the APT lock *1
1* average length of eligible queue *1
/* 0=> no one. 1 -> Int've only~ 2 -> everybody
1* total processor time on system .1
/* estimate of response time */
/* estimate of eligible time *1
1* count of response meters *1
/* count of eligible meters ./
/* array of buckets tndexed by state *1
1* loading_idle time *1
/* delta virtual CPU time for the system *1
/* ON If post purging Is to be done */
1* syserr first arg for notify time outs *1

tern. Inc'l .pl 1

*1

~"ge

117

2
2
2
2
2
2

notify check fixed bin,
quit_priority fixed bin,
iobm_polllng_time fixed bin (11),
end of time fixed bin (11),
gp ~t ~otlfy 'ixed bin (18),
gp=at=ptlnotify fixed bin (18),
2 int q enabled fixed bin (18),
2 fnp=bUffer_threshold fixed bin (18),
/..

100 oc t a I

/*
/*
/*
/*
/*
/*
/*
/*
/*

obsolete */
factor for scheduler quit response */
time to poll lobm */
very large time */
0 => Just do get idle processor */
0 => Just do get=ldle=processor */
0 ;> no Intv q In percent mode */
if fewer free buffs then stingy alloc strategy */
set this to >= half n_ttylines/fnp for safety */

*/

2 depths (8) fixed bin (18),
fixed bin (11),
fixed bin (18),

/* histogram of run depths */.
/* histogram of times run per depth */
/* histogram of page faults per depth ./

2 ptl not waits fixed bin (18),

/* timesptl_waft noticed pt) was unlocked */
/* times window noticed */
/* O=locked, ~lse unlocked */
/* num calls to ptl_wait */
/* to detect gw_gp window 10ssage */

2 tdepths (8)
2 pfdepth (8)

2 gw gp window count fixed bin (18),
2 metering lock fixed bin (18),
2 ptl watts fixed bin (t8),
2 gp start count fixed bin (18),
2 gp-done count fixed bin (18).
2 nt~ check time fixed bin (11),
2 nto-delta-fixed bin (35).
2 nto-count fixed bin (18).
2 tcpu_scheduling fixed bin (18).
2 nto event bit (36),
2 page_notifies fixed bin (18),
2 notify_nobody_count fixed bin (18).
2 notlfy_nobody_event btt (36).
2 system_type fixed bin.

/* used to be

2 s tat ( 0: 15) f t xed bin (18),

/. num apte's tn each state */

/. 200 octal
2 wa

tt

/*
/*
/*
/*
/*

next time at ~htCh nio code will be called */
microsec between nto checks */
number of ttmas nto detected */
obsolete
last event which NTO'd */

tcm.~nter

*/

*/

*/

(8),

3 time fixed bin (18),
3 count fixed bin (18),
2 ready (8),
3 time fixed bin (18),

/* histogram of page fau't waiting times versus did */

/* histogram of times in ready queue */.

3 count fixed bin (18),

2 total pf count fixed bin (t8).
2 auto tune ws fixed bin (18).
2 ocore delta fixed bin (18),
2 ws sum fixed bin (t8),
2 no~idle force c~unt f~xed bin (18),
2 Itt I 1st lock - bit (36) a I I gned •
2 cpu=pf_time fixed btn (11),
2 cpu pf count fixed bin (18).
2 spec i a 1_of fsets una I t ~Jned,

Include .•• , hard. source
F80A

- Not

to be reproduced

/* total time spent from start to end of
all page faults */
/* total number of page faults metered */
/* 0=> dont, atherwise compensate for quantum len */
/* number of pages reserved for Int users */
/* total of eligible's ws sizes +/
/* count of eligibiltt.es-forced */
/* lock on ITT free lts~ */
/* total cpu time spent handling page faults */
/* total count of cpu time ~eterings */

tcm. tncl .plt

Page

~18

2
2
2
2
:!

2
2
2
:!

2
2
2
2
!!

3 apt offset bit (18),
3 pad-b tt (18),
getwork time fl~ed bin (71),
getwork=count fl~ed bin (18),
short_pf_count ft~ed bin (18),
Interrupt ttme ft~ed bin (71),
Interrupt:=count ft~ed btn (71),
ocore fi~ed bin (35, 18),
pre_empt_flag bit (36) aligned,
cumulatlve_memory_usage fl~ed binary (71),
procfessor _ t I me_a t_def t ne_wc f I ~ed bin (71),
boost priority ft~ed bin,
lost ~rtortty fl~ed bin,
totaT_clock_lag ft~ed bin (71),
clock simulations ft~ed bin,
ma~_c'iock~lag f I~ed bin,

/.
/.
/.
/.
/.
/*
/.
/*
/.
/.
/*
/*
/.
/.

total time spent In getwork ./
total times through getwork ./
number of short page faults ./
total time spent In Interrupt */
total number of metered interrupts */
fraction of core for Int've users ./
controls whether preempting at done time ./
total number of memory usage units ./
value of processor time when we's last defined ./ .
number of times prTorlty process given high priortty */
number of times priority process lost ellgtblllty */
sum of all Simulated clock delays ./
number of times alarm clock tnterrupt was simulated */
largest simulated aLarm clock d~lay ./

/* 300 oct,a I .(
2 pdscopyl
:!
:l

2
2
2

:z

2

bin (18),
, t~ed btn,
prds._l ength ft ~ed bin (18),
pds_length ft~ed bin (18),
lock fl~ed bin (18),
Id fi~ed bin (18).
system_shutdown ft~ed bin (18),
worklng_set_factor 'i~ed bin (35, 1S),
fl~ed

ma~_hproc_segno

/* working set factor ./

2 ncpu fixed bin (18),
2 last eligible bit (18).
:~ apt lock f t~ed bin (35),
2 apt-size fl~ed bin (18),
2 rea'ittme_q aligned like based_senttnel.
2 aht size ft~ed bin (IS),
2 ttt=slze fixed bin (IS),

number of processors currently being used */
last process to gain eligibility */
+ write; 0 hidden: -1 unlocked; -(N+I) Nreaders ./
number of APT entries ./
processes with realtime deadltnes ./
./. APT hash table size ./
/* number of ITT entries */

dst size fl~ed bin (18),
Itt-free list bit (18),
usea Itt-ft~ed bin (18),
InitTallzer_fd btt (36) aligned,
n_eligible fl~ed bin (18),
ma~ eligible fl~ed bin (30),
:2 watt enable fl~ed bin (18),
:2 apt_;ntry_size 'I~ed bin (18),

/*
/.
/*
/*
/*
/.
/.
/.

number of allowed DST entries ./
pOinter to ITT free list ./
number of used ITT entries */
process td of Inlttaltzer */
number of processes eligible ./
ma~lmum allowed number of eligible processes ./
turned on when waiting mechanism works */
size of an APT entry */
head cif Interactive queue ./
potnter to device signal table */
last process to run (apt ptr ) ./
time of inltlaltzatlon ./

2
2
2
2
2
2

/*
/*
/*
/*
/*

:2
:2
:2
:2

Interact tve_q a I Igned I tke based_sent inel ,
dst_ptr ptr,
old_user ptr,
Inittallze_tlme fl~ed btn (71),

/*
/*
/*
/.

:2
:2
:2
:2
:2

Inlt event fl~ed bin (18),
oldt-flxed bin (18),
newt fixed bin (t8),
teflrst fixed bin (30),
telast flx~d bin (30),

/. walt event during Initialization ./
/. timer reading from previous process ./
/* timer setting for new process ./
/* first eligible time */
/* Jast eligible time */

TnCTurt
F80~

amount of pds to copy for new process */
largest allowed hardcore segment number */
length of PROS */
length of POS */
.
process Id generator lock */
,* next processld to be given out */
/*
/*
/*
/*
/*

*, hard.'source

.ot to be reproduced

tcm. 10<: 1 . pI 1

'le

119

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

timax fixed bin (35).
empty_q bit (18),
working set addend fixed bin (18),
ready_q=head bit (0) aligned,
eligible_q_head aligned like based_sentinel,
ready q tail bit (0) aligned,
eligl~l; q tall aligned like based sentinel,
idle tail aligned like based sentinel,
min ;'igible fixed bin (30),alarm_timer_list bit (18) aligned,
guaranteed ellg inc fixed bin (35),
prioritY_Sched_Inc fixed bin (35),
next alarm time fixed bin (11).
prlorltY_SChed_t1me fixed bin (11),
tty_polling_time fixed bin (11),
disk_polling_time fixed bin (11),
tape_polling_time fixed bin (11),
imp_polling_time fixed bin (11),
imp_polling_lock fixed bin (18),
max_channels fixed bin (18).

/* t ilRe In queue for lowest level ./
thread of empty APT ent~ies ./
additive working set parameter ./
for added segdef */
head of eligible queue */
for added'segdef */
/* tall of eligible queue */
/* tall of idle list */

/*
/*
/*
/*
/*

/* rei pointer to apt entry for next alarm timer */
/* amount o,f guaranteed eligibility time In mlcrosecs. */
/. amount of block time before process is given priority */
/* clock time for next alarm timer */
/* time for priority process to be given priority ./
/. time to poll TTY DIM */
/. time to poll disk DIM */
/* time to poll tape DIM */
/* time to poll imp */
/* do not poll if lock set */
/* num special channels per process ./

/* 400 octal */
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

system virtual time fixed bin (11).
/* non-idle vlrt~al time ./
credit-bank fiied bin (11).
/* credits not yet passed out */
min wct index bit (18) aligned,
/~ offset of inltializer work class table entry ./
max-wct-index bit (18) aligned,
/. offset of highest wcte currently defined ./
delta vt fixed bin (11),
/* temp used by pxss.compute_virtual_clocks ./
grOSS-idle time fixed bin (11),
/. Idle time used clock */
credits_per_scatter fixed bin (35),
/* total number of credits awarded at once ./
best credit value fixed bin (18).
/* temp for pxss.flnd_next_ellgtble ./
define wc time fIxed bin (11),
/* clock time when workclasses last degfned */
max batch-elig fixed bin (35).
num-batch-elig fixed bin (35),
deadline mode fixed bin (35).
/* 0;> tl sorts. else deadline sorts */
credits scattered fixed bin (35).
max_max=ellgible fixed bin (30),
/. Maxlunum of maxe ./
/. Maxiunumstack_O's suspended by stopped procs
./
max stopped stack
fixed bin (35),
stopped stack
fixed bin (35),
/* Numb,er stack_O' s suspended by stopped procs
./
mas polling Interval fixed bin (35).'
/* for heals */
mas-polling-time fixed bin (11),
/. for heals ./
vcpu response bounds (VCPU RESPONSE BOUNDS) fixed bin (35) •
vcpu -response -bounds she f I xed bln--( 35),
meter_respons;_tlme_calls fixed bin (35).
meter_response_tlme_lnvalid fixed bin (35).
meter_response_time_overhead fixed bin (11).
intt wait time fixed bin (11),
1* used by wait/notify during initialization
*/
init=wait_tlmeout fixed bin (11).
/* notify-timeout Interval during Initialization ./.
init_tlmeout_severity fixed bin,
/. notify-timeout severity during Initialization ./
Init timeout recurse fixed bin.
/* count of NTO recursion during Initialization
./
max timer register fixed bin (11).
/* max cpu burst = H cpus x pre_empt_sample_time ./
pre-empt ;ample time fixed bin (35)~
/* tuning parameter - max time between samples
*/
governing credit bank fixed bin (35),
1* used for limiting eligibility on governed work cnasses*/
proceSS_initial_quantum fixed bin (35).
/* eligibility quantum first eligibility
./
default_procs_requlred bit (8) aligned.
/* default mask of CPUs required ./

° °

include .••• hard.source
faGA - Not to be reproduced

t cm. i nc 1 . P 1 1

/. Idle time due to work class restrictions */

/* Tuning Parameters for Stack Truncation ./
2
2
2
2
2

stk_truncate bit (1) aligned.
stk_truncate_always bit (1) aljgned.
stk trunc avg f1 fixed bin (35. 18).
stk-trunc-avg-f2 fixed bin (35. 18).
lock_error_severlty fixed bin.

2
2
2
2
2
2
2
2
2
2
2

gv_tntegratlon fixed bin (35).
gV_integratlon_set bit (1) aligned.
pad8 fixed bin (35).
volmap_poillng_tlme fixed bin (71).
pad9 fixed bin (7t).
realtlme_io_prlorlty_swltch fixed bin.
realtime 10 deadline fixed bin (35).
realtime-Io-quantum fixed bin (35).
realtlme=prlorltles fixed bin (35).
relinquishes fixed bin (35).
abort_Ips_mask bit (36) aligned.

/. syserr severity ./

I. Integration Interval for governing .1
/. ON

z> gv_tntegratlon set by ctp

*/

/. 0 -> give I/O Interrupt wakeups realtime prlotlry . /
/. Delta to clock for 1/0 realtime deadline */
/. Quantum for I/O realtime burst */
I. Count for metering *1
/* Calls to relinquish_priority */
1* IPS mask for tc_utll$check_abort .1

/* 500 octal */
2 pad5 (192) fixed bin (35).

/* room for expansion compatibly

/* 1000 octal */
2 pad7 (64) fixed bin (35),

/* 1100 octal ./
2 pad6 (8) fixed bin (35).
2 work_class_table aligned.
3 wcte (0:16) aligned like wct_entry.

/* 3000 ()cta 1

/. array of per workclass Information */

./

2 apt fixed bin;
dcl
dcl

wctep ptr:
1 wct_entry aligned based (wctep).
2 thread unaligned.
3 fp bit (18).
3 bp bit (18).
2 flags unaligned.
3 mnbz bit (t).
3 defined bit (1).
3 io_prlorlty bit (1).
3 governed bit (1).
3 interactive q bit (1).
3 pad bit (31)".
2 credits fixed bin (35).
2 mlnf fixed bin (35),

1ncludp ~*, hard.source
F~

.ot to be reproduced

/. Work class entry */
/* Ready list *1
1* Head of ready list */
/* Tall of ready list ./

1*

Sentinel bit must not be zero. */

1*

Current worthiness of group */

/* min fraction of cpu ./

t cm. I nc 1 • pit

P~ge

12 t

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

I.

dcl

pin weight fixod bin (35),
eli 9 i b iIi ties fixed bin (35),
cpu sum fixed bin (71),
res~1 fixed bin (71),
resp2 fixed bin (71),
quantum1 fixed bin (35),
quantum2 fixed bin (35),
rmeter1 fixed bin (71),
rmeter2 fixed bin (71),
rcount1 fixed bin (35),
rcount2 fixed bin (35),
realtime fixed bin (35),
purging fixed bin (35),
maxel fixed bin (35),
nel fixed bin (35),
number thinks fixed bin 1(35),
number=queues fixed bin (35).
total think time fixed bin (71).
total=queue=time fixed bin (71).

The next three arrays

I. number of cycles to pin pages .1

I.
I.

Count of eligibilities awarded
CPU used by members ·1

.1

I. number times process entered "think" state
I."number times process entered "queued" state

correspond to the array vcpu_response_bounds

2
2
2
2
2
2

number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35). 1+ number times entered "processing" state
total processing time (VCPU RESPONSE BOUNDS+1) fixed bin (71).
.
total=vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71)~
maxf fixed bin (35).
I. maximum fraction of cpu time
governing credits fixed bin (35),
1+ for limtting cpu resources
pad1 (4) fixed bin (35);

1
2
2
2

based_sentinel aligned based,
fp bit (18) unal.
bp bit (18) unal,
sentinel bit (36) al1gned;

1+

format of pxss-style sentinel

·1
*1
.1

*1

*1

dcl VCPU_RESPONSE_BOUNDS fixed bin inlt (3) int static options (constant);

1+

END INCLUDE FILE tcm.incl.pI1

include .•• , hard.source
F80A - Not to be reproduced

.1

tcm. inc I . P 11

Page

122

vol_map. tncl .p11

segment
tn:
entry mo.dtf ted:

>ldd>tnclude
03/10/82 0836.5

contents modtfied:

02/24/76

2027.5

/* BEGIN INCLUDE FILE ... vol_map.tncl.p11 */
dcl

vol_mapp

dcl

vol_map based (vol_mapp) altgned.
2
2
2
:Z
2

n ree fixed btn(t7).
bise add ftxed bin(t7).
n free rec ftxed btn(t7).
bTt_map_n_words ftxed btn(t7).
pad (60) btt(36).
:Z btt_map (3*1024 - 64) bU(36)

/*
/*
/*
/*
/*
/.

number of records represented tn the map */
record number for first btt tn bit map */
number of free records */
number of words of the bit map */
pad to 64 words */
btt map - the enttre vol map occupies 3 records */

/* END INCLUDE ... vol_map */

tnClUC' .•
F80,,-

lOt:

hard. source
to be reproduced

'qe

123

vtoc_buffol'.lncl.p11

I·

START OF:

segment
tn:
entry modified:
vtoc_buffer.lncl.plt

dcl

vtoc_buffer_seg$

ext

dcl
dcl
dcl
dcl
dcl

vtoc buffer _segp
vtoc_buf_descp
vtoc_bufp
vtoc buf desc _arrayp
vtoc_buf _arrayp

ptr:
ptr;
ptr;
ptr;
ptr;

dcl
dcl

vtoc_buf _n_buffers
vtoc buf _n_buckets

fixed bin:
fixed bin;

-

-

• * •

November 1982

contents modified:

> 'I dd> I nc I ude
11/19/82
1604.3

• •

*

*

1602.2

11/19/82

• * * • * * ·1

i

a I igned based (vtoc_buf fer _segp),

dcl
2 lOCk,
3 processld
3 walt event
3 notlfy_sw

I. Global lock for VTaC buffers . /

bit (36) aligned,
bit (36) aligned,
b i t (1) ell 1 I gned ,

1*

Owner ./

I.

ON => notify on unlock

I.' IFor loclt .1

n_bufs
fixed bin,
1*
n hash buckets
fixed bin,
I·
hash_mask
bit (36) aligned,
1*
abs_addr
fixed bin (24),
I·
walt event constant fixed bin (36) uns unal,
buf ~esc offset
bit (18),
1*
buf-offset
bit (18),
I·
hash_table_offset bit (18),'
1*
search Index
fixed bin,
1*
unsafe_pvtx
fixed blh,
I·
scavenger_free_p_clock
fixed bin (35),
1*
2 meters,
3 ca 11 _get
fixed bin (35) ,
1*
3 call put
fixed bin (35) ,
I·
fixed bin (35) ,
3 ca 11 alloc
1*
3 ca 11 free
fixed bin (35) ,
1*
3 ca 11 await
fixed bin (35) ,
1*
3 steps
fixed bin (35) ,
1*
3 skip_os
fixed bin (35) ,
1*
3 skip_hot
fixed bin (35) ,
1*
3 skip_wait
fixed bin (35) ,
1*
3 disk reads
fixed bin (35) ,
1*
3 disk writes
fixed bin (35) ,
1*
3 get - buffer - calls fixed bin (35) ,
1*
3 get_buffer_hlts fixed bin (35) ,
1+
3 wa It_ca 11 s
fixed bin (35) ,
1*
3 wa It_os
fixed bin (35) .
I·

2
2
2
2
2
2
2
2
2
2
2

-

include .• *, hard.source
FBOA - Not to be reproduced

*1

Number of full VTOC~ buffers .1
Number of hash table buckets *1
Mask fo~ haSh algorithm *1
Absolute address of vtoc buffer seg *1
1* Constant to add to part index to form watt event
Offset of buf desc .1
Offset of buf-*I
Offset of hash table *1
ROVing pOinter-for buffer selection *1
PVTE index with update in progress *1
Pseudo-Glock for scavenger-free-other-allocate race

*1

*1

Ca II s to get_vtoce .1
Calls to put_vtoce *1
Ca II s to alloc_and_put_vtoce *1
Calls to free_vtoce *1
Calls to await vtoce *1
Steps through Euffer allocation *1
Skipped because out-of-service *1
Skipped because buffer hot *1
Skipped because nottfy_sw set *1
Number of sallie ·1
Number of same *1
Number of calls to GET BUFFER *1
Number times VTOCE In buffer +1
Number of calls to WAIT *1
Number of times had to wait ·1

vtoc_buffer. tnc 1 . pI 1.

Page

124

3 scavenger free checks

-

-

fheed bin (,35).

3 scavenger_free_losses

f heed bIn (35),
3

pad (15)

,*
,*

Number of tImes had to check pseudo-clock

*,

Number of tImes race lost between scavenger freetng and other allocat

fixed bin (35) ,

2 hash_table

(vtoc_bUf _n.....buckets refer

2 buf_desc

(vtoc_buf_n_buffers refer (vtoc_buffer.n_bufs)) allghed like

2 buffer

(vtoc_buf _n_buffers refer (vtoc_buf fer .n_bufs)) al tgned ltke vtoce_buffer;

vtoc buf desc
2 pvtx 2 vtocx
2 parts_used
2 err
2 nottfy_sw
2 wrtte sw
2 os
2 loq
2 used
2 pad
2 wa tt t ndex
2 ht t'hread
2 buf_rel

aligned based (vtoc_t,uf_descp).
fixed bin (17) unal,
PVTE Index */
fixed bIn (17) unal,
VTOCE Index .• '
bit (3) unal.
/* Mask of parts used or os */
bit (1) unal,
,. ON -> I/O error on buffer ./
bit (1) unal,
ON -> notify requled on I/O completion */
btt (1) una',
,. ON ->' write 1/0 •./
bit (1) unal,
ON -> I/O In progress */
bit (1) una1,
,. ON -> I/O has been requested .,
btt (1) una1,
,. ON -> this descriptor Is In use .,
bit (9) una 1 ,
fixed bin (17) unal,
,. Buffer index for forming wait event */
b tt (18) una 1 ,
Offset of next entry in hash table */
b It (18) una 1 ;
Offset of buffer in segment

(vtoc_buffer.~_has~_buckets))

btt ( 18) al 'gned,
v~oc_buf _desc.

dcl
dcl .

dcl
vtoce buffer
2 parts
3 words

dcl
dcl
dcl
dcl
dcl

Faa

N PARTS PER VTOCE
VTOCE PART SIZE
VTOCE-BUFFER SIZE
N VTOCE PER RECORD
N::::SECTOR_PER_VTOCE

lEND OF:

tncludr

,*,*

*,

(vtoc_buffer.n_bufs) aligned based (vtoc_buf_arrayp) like vtoce_buffer:

dcl

,*

,*,*
,*
,*

aligned based (vtoc_bufp),
( 3) a 1 I gned ,
( 64) bit (36) a 1 I gned:
fixed
ftxed
fixed
fixed
fixed

vtoc_buffer.tncl.pl1

*, hard. source

3t to be reproduced

bin
bin
bin
bin
bin

Int
tnt
Int
Int
tnt

static
static
static
static
static

options
opt Ions
options
opt Ions
options

*

(constant)
(constant)
(constant)
(constant)
(constant)
*

*

*

•

Inft
Intt
Int.t
intt
tnl t
*

(3) i
(64) ;
(3 • 64) i
(5) ;
(3);

•

•

*

*

*

•

•

•

•

•

*/

vtoc_header.lncl.pll

segment
tn:
entry modified:

>Idd>tnclude
0::1/10/82 0836.5

contents modified:

05/05/11

0832.2

/* BEGIN INCLUDE FILE ... vtoc_header.lncl.pll */
dcl
dcl

vtoc_headerp ptr;
vtoc_header based (vtoc_headerp) aligned.

2 version fixed bin (17).
2 n vtoce fixed bin (17).
2 vtoc last recno fixed bin (17).

2 n fr~e vt~ce fixed bin (17).
2 f1rst iree vtocx fixed bin (17).
2 pad (3) bit (36),
2 dmpr_blt_map (2048 - 8) bit (36l;

/* version number. The current version number Is 1 . • */
/* number of vtoc entries */
/* record number of the last record of the vtoc */
/* number of free vtoc entries */
/+ 3ndex of the first vtoce In the free list */
/+ space for dmpr bit map */

/+ END INCLUDE .. , vtoc_header */

include.+ •. hard.source
f80A - Not to be roproduced

vtoc_header. Incl .pl 1 _

Page

t26

segment
in:
entry modtf ted:

vtoc_map. incl .pl t

/*

START OF:
dcl
dcl
dcl

dcl

vtoc_~ap.incl.pl1

vtoc mapp
bt t_map_wordp

F80t"

*

*

*

•

*

*

*

•

vtoc_map
2 n vtoce
2 n-free vtoce
2 bTt_map_n_words
2 vtoc last recno
2 pad 2 bit_map

altgned based (vtoc_mapp) ,
f heed bin,
/*
/.
f heed bin,
f heed bin,
/*
f heed bin,
/.
(4) f hed bin,
(0: 1024 - 9) bit (36) : /.

b i t_map_word
2 padt
2 bUs
2 pad2

altgned based (bit_map_wordp),
bit (1) unal,
btt (32) unal,
/. 32 VTOCES ON -> free */
b U (3) una I :

*, hard. source

ot to be reproduced

•

*

•

•

*

•

OS/20/82

*

*

*/

* • •

•

*/

1038.4

ptr;
ptr:

vtoc_map.tncl.pI1

includ

March 1982 ...

contents modtfied:

>ldd>tnclude
OS/20/82 1047.7

Number of VTOCEs on the device */
Number of free VTOCEs */
Number of words tn the bit map below ./
Last record number tn VTOC ./
Thts structure consumes exact1y 1 page */

• * • •

• •

*

•

•

•

•

•

.. qe

t27

segment
in:
entry modtf ted:

vtoce. tncl .p11

BEGIN INCLUDE fiLE ...,vtoce. incl.pl1 ...
/* Template for a VTOC entry. Length
dcl
dcl

=

>ldd>include
111/16/82
1456,6

last modified September 1982

contents moqified:

11/16/82

1454.7

*1

192 words. (3 *·64). */

vtocep ptri
1 vtoce based (vtocep) aligned,
(2 pad_free_vtoce_chain bit (36) ,

1*

~sed

to be pointer to next free VTOCE

*1

2 uid bit (36) ,

1*

liegment's u id - zero if vtoce is free

·1

2 msl bit (9) ,
2 csl btt (9) ,
2 records bit ( 9),
2 pad2 bit (9 ),

I· maximum segment length in 1024 word units .1

2 dtu btt (36) ,

1*

2 dtm bit (36) ,

I· date and time segment was last modified ·1

2
2
2
2
2
2
2
2
2
2
2
2
2
2

/. no quota switch - no checking for pages of this seg *1
true if hc sdw *1
no increme~tal dump switch */
/* Oont null zero pages */
/* Global transparent paging device */
/* Per p~ocess segment (deleted every boot load) *1
/. TRUE if contents damaged */
1* TRUE if filemap checksum bad */
/* TRUE if the checksum has been computed */
/. TRUE ~if this is a data management synchronized segment */

nqsw bit (1),
deciduous bit (1),
nid btt (1),
dnzp bit (1),
gtpd bit (1),
per process bit (1),
damaged btt (1),
fm_damaged bit (1),
fm checksum valid bit (1),
sy~chronizea bit (1),
pad3 bit (8),
d t rsw bit (1).
master dir bit (1),
pad4 btt (16» unaligned,

/* current segment length

-

1n 1024 word untts

date and time segment was last used */

1*
1*

/* dtrector'y sw itch */

1*

-

2 fm_checksum bit (36) aligne~,

1*

Checksum of used portion of file map

(2 quota (0:1) fixed bin (18) unsigned,

1*

sec stor'age quota

-

(0) for non dir pages

2 used (0:1) fixed bin (18) unsigned,

sec stor'age used

-

(0) for non dir pages */

2 received (0:1) fixed bin (18) unsigned.

1*
1*

2 trp (0:1) fixed bin (71),

1*

time record product - (0) for non dir pages

2 t rp _ time (0: 1) bit (36),

1*

time time_record_product was last calculated

include .•• , hard.source
F80A - Not to be reproduced

*1

I· number of records used by the seg in second storage ./

master directory
/* not used *1

vtoce. incl .pl

a root for the logical volume

*1
*1
*1

total amount of storage this dir has received

 deleted each boot load */

/. Overlay for vtoce of segments, which don't have quota ./

/* page fault count: overlays quota ./

END INCLUDE FILE vtoce.tncl.pI1 ./

F80A

-

2 fm (0:255) bit ( 18).

vtoce. incl.plt

APPENDIX 3
MULTICS TECHNICAL PAPERS

Page
:'1ul'Cics - The First Seven Years. . . . . . . . . .
Tile Multics Virtual Memory: Concepr.s and Desi 6 n • •
A Simple Linear tvtodel of Demand Pag ing Per formance
.4, Hardwdre Architecture for Ilnplementi116 Protection
Rin3s
. . . . • • • • . • . • • • • . . . • . .
The i'1ulr.ics PL/I Compiler. . . . . • . . . . • .
Virtual Memory, Processes, and Sharing in Multics
IL1troduc'Cion and- Overvie·w of the Multics Syscem
Systaill Desi 6 n of a Computer for Time Shdring
Applicar.~ons . . . . . . • . . . . . . . . • .
S cr uc r. ure 0 f the ivtul r.ic s Superv isor . . . • -. . . . . • .
A General-Purpose File System for Sacon"dary Storage.
Communicacions and 1/0 Swir.ching in a Multiplexed
Computing System . • • • • • • • • • . ••
...•.
Some r.noushr.s about. cne Social Implications of
Ac c e s s i ;) 1 e Co ro put in 6 • • • • • • • • • • •

3-i

B-1
B-1
B-1
B-1
B-1

B-1
B-1

8-1
8-1
B-1

B-1
B-1

f30

This

pa~e

has intentionally

oeen left bl an k.

B-ii

F80

0556.00
0601.00
0606.00
0611.00
0616.00
0621.00
0626.00
0631.00
0636.00
0641.00
0646.00
0651.00
0656.00
0701.00
0706.00
0711.00
0716.00

S
QS
Q
QS
QS
QS
QS
S
Q
Qe
Q

+1
+
5

+
+
+

+
+

+
S

Q

S

Q

S

*V
** ********* *****t Y V
OV
*** ********* ********* ********* *p y.
· ***V
*****v
· ***V
***** V
· ***V
***~*** **·***tss
y
.
V
+
**-*+****** •• *.***** ****5**** ********* *********I********iitPS.
OVP
- + .
s
***** ********* ********* *********I********itS
y
VP
.
.
********l*****t y V
- +.
j

- +.
- +.

!

I

Iy .

~*******syV

******ty V
******* ****i Y V
** ******iy V
5 I
**** ******ty V
S
-.+
******* ******py V
0721. CO--Q
S
- -. +
******* tc******** **t
0726.00 Qe
.S
- +
Y V
********* ***** •••• ···t. y V
0731.00 Q
S
-.+
OV
0736.00 Qe
- +
******** ********* ******its y
OV
0741.00 Q
- +
S
** ********* ********* *****its y
y
oV
0746.00 Qe
- +
5
** ********* ********* ********* ***iips
y
oV
0751.00 Qe
- +
***** *5******* ********* ********* ****iitps
o V
0756.00 Qe
**-*+***** ********* ********* ********* ****iiiitpss
Y
.0
V
0801.01 Q e
* **********-*+****** ********* ***.***** *****miiiitttppss
y.
o. VP
0806.01 Q**e****** ***.***** ********* **-*+**** ********* *********iiiitStppppssssss
y
0
VP
0811.01 Q***e***** ********* ********* *-*+***** ***iiiiiittppppssss s5
y
0
VP
0816.01 *Q***eq*** ********* ********* ******-i+iiitttppppssssssss 5
y
y
0
VP
0821.01 rQ***eq*** ********* ********* *****-*+*\*miliiittPPPpsss5ss sss
D
VP
0826.01 *Q**e***** ******·.**miiiitttp pssss-s+ss
.y
I
. S
0
VP
0831.01 Qr****e*** ********* ********* *mmmmiii-i+itttpppppssssss5ss
. y
y
0
VP
0836.01 Q**e****** ********* ********* *********-*+*******I*******5miliiitttPP psssss
y
0
S
VP
0841.01 Q****e**** ********* ********* *********I*-*+******mmmiliiltltPPPPPPSS ss
0
VP
0846.01 r*Q*e***** ********* ********* ********* ***-*+**miiliitttpp5pppsssss
y
V
D
0851.11 rQ****e*** ********* ********m miiiiiiiittt-t+pppp pppppppss s
y
y
VP
D
0856.13 Qr*******eq********* ********* *****mmmmmiiii-i+tt tpppppppp pppssssss
VP
5
D
0901.09 Q**r****e**qmnatuwwm mmmmmllli l11ttttPP !ppppp-p+S sssss
y
0
VP
0906.05 Q***mmrmmemmmmmqmmii iiiiiittttppppppppp ppp-p+pss sss .
y. 5
VP
D
s
0911.02 *Q*r***e**'**"''''
~ ~lliliiiittttPIPPP-P+PPPIPpssssss
.y
.y
0
VP
0916.00 Q*****eq**I********* ********* **********mmmm-i+iilttttppppp ppppssssss
0
VP
0921.02 Qr*****e*q********** ********* ********mlmmii-i+itltP5PPPPSS ssss.
Iy
VP
0926.01 Q***e*****I********* ********* ********* **-*+****miiiiiittp pppsssssssS
.y
10
0
VP
0931.01 Qr*****e*q********** ********* ********* **-*+***mlmmiiiiitttPPPPPSSSSI'S
.
51
O.
y.
VP
0936.01 Q*e******* ********* ********* *********-*+******* *********I*miiiiStP ppsssss
V
D.
0941.01 Q**e****** ********* ********* *********-*+******* *******i1 iiitttpppssss.
y
0
VP
0946.12 rQ***eq*** ********* ********* *******-*+*********mmiiiiitttppppsssS I
y
0
VP
S y
0951.01 Q**eq***** ********* ********* *********-*+*******I****1iiiiittPPPpssSS
0
VP
0956.01 rQ**e***** ********* ********* *********I*-i+iliit tppppssssl
S y I
Q
Q
Q
Q

S

S

.

•

-.+
-.+

Ij

II

I

SNAPSHOT 09/17/86

Mu l tic s

08:59

MR 1 0 .2, loa d
Absentee users 114

45. C/6 Q. 0;

=

4 7 use r s, 24

av~
11, elapsed time - 930 sec,
Virtual CPU Time 29.02
41.46
Zero Idle
0.00

\

!

NMP Idle
1
1487

4.87

All

8 • 76

1 9 94

30.02
0.00

o. a 0

0.50

30 active

2263

O.OJ

i n t era c t i ve,

2 2 d a e m0 n s •

last 15 sec.

0.14 70.09

VADIS

O. 50
28 2 8
0 • 01
0 • 3 9 27. 70
o
4.
0.35 3
0.26
2.10
0.26
2.1 CPO R I Init
1
16.
0.09
1
1.00
0.50
1.GC 1 • U CPO R I VA D1 S
P O I System Sy
2
10.
O.
0.95 1
P O l 0 t he r
3
21.
26.
0.80 1
0.13
1.00
0.50 1.JO P 0 R I 10
4
11.
0.02
1
o
0
o 0 0 -1 Id l e
0.008
xLE1D(b) 460
0
a
0
o
0
o 0 0 -1 Id l e
rLEI(a)
341
0
a
0
0.000
0 4 Retriev
o
0
O. 020 34465 Q
wLE
156
13765
1000
8
o 0
a 3 Alonso
b
117
11693
~OOO
0 5267 . 6000 48.105
0 3 Cintro
2003
6000
O. 084 273211 0
wwlE
1 14
13 51 3
200 0 11 8
o 6000
O. 189 -400000000000 0
0 1
wLE
70
4502
1000
3
49
0 162.744
a 0 0 3 Figuero
b
70
817
2000
0
78
0
2. 271
b
47
1 356 2097
0
o 0 ..0 0 Ri os
00
'0 11slaGra
87
0
O. 161
b
39
2223
1000
0
1 61
0
1 • 442
o 0
0
1 Caguas
b
34
2158
1000
0
2717.319
Page Faults
11.74 16.78
laps
124
7.479 sec.
,.., /"\,.,
u.uu
o
0.000
33127
ali. 0 cat i on s
9515
13.95
11 .462
68230
allo C a ti on s
47
3553
10500
88
86
9
261
167
3081
132
300
91
1
7005
185
5091
128
182
91
5000
7
195
158
4294
215
102
4736
15
175
3526
202
263
105
1S
5296
193
3641
131
110
254
6
4787
226
238
1 61
3881
116
4099
5
148
200
592
1566
6264
135
2

341
307
354
291
1 SO 2
73
3636
1 50
255
34346
o
19
27
7.30
18332.578
5.11
Se~ faults
84. 0
706.6
1973.2
Lap Time(sec)
191 .9
10.29 14. 71
Otner fault
6.48
498.232
Getwork
4.53
3.46
HP I J l e
5.92

10
14
S
11
12

2714
2619
617

1 82
209
327
1 58

5095
4437
2835
5869

a

320
327

982
2245
34346

clok 4 ,ast
root dska 1 dskb 2
sehd 400000 10 20 60 2 10
tbIs sstn 32. str 64.
tcd 75.
299.
parm ttyb 14080. ttyq 1536.
part bas dska 1
part dump dska 1
part log dskb 2
a 20 4 a 24 3
rope mspa 451e
rope mspb 451. a 30 4 a 34 2
rope mtpa 601. a 16 1 a 17 1
rope-- urpa 000. a- la 4
fnp a a 14
fnp b a 15
cpu a 7 on dpsS 70. S.
cpu b 6 on dpsS 70. S.
chnl dska a 34 2
chnl dskb a 30 4
sst 600. 400.
300. 750.
salv def
prph dska a 20 4 451. 20
prph dskb a 24 4 451.
20
prph tapa a 16 2 500. 10
prph prta a 10 1600. 600.
136.
prph prtb a 11 1600. 600.
136.
prph rdra a 12 301.
prph opca a 37 6601.
SO.
on
prph puna a 13 300.
intk warm 4
iom a 0 nsa on
mem d 512. on
mem e 512. on
mem b 512. on
mem a 204S. on
fnp e a 36

Drive
dska 05
dska 11
dska 12
dskb-09
dskb-05
dskb-06
dskb-07
dska-Ol
dskb-02
dskb-OT
dska-15
dskb-15
dska 04
dska-06
dska-10
dska-13
dskb-08
dskb-14
dskb-16

Records

Left

%

VTOCEs Left

%

PV
Avg
Size Name

36584
36584
36584
36720
36720
36720
36720
29811
35837
365-a4
36584
36584
37967
37967
37967
37967
38094
37967
37967

1354
2455
6226
27412
2521
1954
2373
1121
1968
2805
3604
5178
182
168
433
398
299
60
310

4
7
17
75
7
5

7625 4605
7625 4814
7625 .4154
7650 7592
7650 1986
7650 1717
7650 1791
17400 12774
7575 2971
-7625 2987
7625 5209
7625 5478
562
710
560
710
563
710
710
561
561
710
561
710
5-61
710

60
63
54
99
26
22
23
73
39
39
68
72
79
79
79
79
79
79
79

11
12
8
160
6
5

6

4
5
8
10
14
0
0
1
1
1
0

1

5

6
7
7
13
14
255
251
255
252
253
254
252

cis2
cisl
lddl
progra
publicOl
public03
public02
rpv
root2
root3
vadis miscl
vadis-misc2
vadis:=pf7
vadis_pf5
vadis_pf3
vadis_pf2
vadis_pf1
vadis pf6
vadis=pf4

PB/PD
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
pb
l

pd
pd
pd

pd
pd

LV Name
cis
cis
ldd
progra
public
public
public
root
root
root
vadis ntis
vadis-mis
vadis-pf
vadis-pf
vadis-pf
vadis-pf
vadis_pf
vadis pf
vadis=pf

Current system tuning parameters:
tefirst
:elast
t.imax
priority sched inc
min_eligIble max_eligible
max batch elig
working set factor
working-set-addend
deadline mode
int_CLenabled
post purge
pre empt sample time
·;gp_at~notify-;
gp_atj)tlnotify
process initial quantum
quit prIority notify timeout interval
notify-timeout-severity
write limit
gv integration

1. seconds
2. seconds
6. seconds

so. seconds
2.

s.
o
0.5

o

off
on
off
0.04 seconds
. off·
off
2. seconds

o.

30. seconds
3

100

s. seconds

realtime_io~riority

off

realtime io deadline
realtime-io-quantum

0.005 seconds

o. seconds

1-;

(r f

rj

,(Jvl
,

Ct 1).5 we. ('

'f e S

I; it"' PO~

nci .. F{

G k~ fj( 1

)1l'"J

\f

'"' bf

t-

t"'-

(CD ""

({i' -~ /

f!. C.

1 "\

C I'

Te (t\~T ,).

r

~

-Se VQ// 71,
I

1

.~

(Ill J r ~ }"2-&r

1'0'

'fve,...~ I
If- I Ow

iJ//er~o,J

1'~
7

~

h.iT ):jlID!
l L,q"

(jCCtY(

rJI

nt)

e

Pf'(!) (e S 5

~ ~rI((Jf'L'2vpy·J3. ;; 'l'ilf-o

cPu

/;,e! fS

0

--------------- -- SIl( ~'1-;;~-~-~;~~;J.:~~I"~
5111 VIJ- fJ ' n
(Q. u1'~""

Oded Ort

";

~ (A tJh'f'r

'7
-.:::;.

Co.."" f3.~ J~t'\~

Vvf v~e

f\~"'T

$,,; '{J.

(a fpr

(..s-u/ry.

~ ''1(MlS;SIrn "V f V' f)~(J(' /1 0. y8p do Oh~
(J/i

"" 'n..

Pr l'

Vb ( VI"'! e

.

Oh

t

~-----

J

'2 " \

~i

\('£ \

t'\

~G'f E 5 c~; <'Ie!

/ c::

tt--,lT

SCG\/h

ure CA]-

Ie: (ow 9r:or:Tj

oP t'rt

t-f

yo v

Co th C ~ ~

It .s 'I() 0

Pit)

loG '2 her,

(:\J

r ~ c...) '( f f\6 CtJS \-- e v ~ ~ \. J! f
\=>" 0 ("5.> ~~d,
c}:-

n{)J ~ Pi L~
tl' '\'e. 't

~

Rl

(jlJ(

C2 up if~

f(\~lS J

iy Joe.5
-.J

'1 TJ

"..t J
l'>A Jc

I-r-... ~J; ~\'el)'

t)

l~oK

f

t

T (' tI r,

o-..~OJu>se) (> elu;;g{e

\,vl,.if\

Ct-

~

)-hI), ~j

s

-c.A

J ~ ~,r

r

.-~ (? ffI

II

"\-- ~ v ~
p.s Q~ rtF- \ "" ~-y

)v..c J"\. \)

Ii

J

¢-t>:Q~

h. ~ Y

fA,

fl....

0\. f~"D\

9 ~ .:S ~ ~ ~J

l:;' Done.

't'\

f\Af'II'r-U'T

G...j:e}

CA If(

MO\"i'

,p ~.\ h ~ Y

Th coy {;...,. f

c::r \I

/

t '"

K ~J

c....

\h()h.:

'.ecel_
fA..

"'--'''''~ __

rA

(l...

~~ r~(Jj 4,,' rp~

5-e {e S -> VARAfV'5
--\)~rJ_et~,G\z
----

Po$' _QV\~~
\Ns ~ -;.

<; "'-.J>

~~c..L""tbr

ws.

PI~o:t

~

f!,J
't- ~ ..... ~ ~ r 0 '"
~
Ai 1"\ A; ~ "e... ~ \x I}J

d \.

\ J(e

\rvl~ <."k 1'---~,,- ~ >
----------_.- - - -

~\!pS

~D

'thft>-d,

L0

\.v

~ r'i1 ((') .5SJ

e\~~ G\ ~ QJ'''(~j.<,('~

M Aj.. %- \

la (.~JPI't}tJ;"<: Q)

"

'

, .'

'.I~· ~:.

..!
f"

~.

\, .~ ~ , ,I :
",I! -. :. . -...~ ~.~ ~ ~ -

7roc. A de.cLd-'\I~I·~ ~ v
\t'\I:)~ ~ 'fo

J

?1OC.a.

B t. C ,

?r

.ifi"t:~'

'.'.

'

.-.
'

rB
o,o,r,

>5{4.. I' hCS_

rt. t . ..,. ~

\

~'Y,55 \~

cnre

t>§7

(QUfliS()

jpc;jl/o.s
f1-\o. of -t 10
rP vP rse

")\)

t co 1--,-

, t3j In~1

CfQC\)0)

df>C;jv6C/J.

c,.;"I fa l

'wLf4('>

1'10\

'je.

J

Ih~r~

IS

\~\.u5~

It

~',T St>

h"'nlk-1-:LI('

'I ~",T

!1vfrJ,

~ ('0 uP-!; ~ /'Itl c;, I

J ~L S
1'(

",lo

WhDh

0<-1'\

~/Jtp",

111V: " -+1 MI1- X V.

~L --(JO~6~ ~f}~~\~~L~ \lJ0Y"
"'-k,- u" l QG ~('j/
h rfr If',.'

l /l.S1-e"" ~

OtJ
0

y \ Ptf'OC~,>5
fJ-

(-f { (

I)

of.< f f " ('J 50~

~ ,(71 ~

mptw.devadd

ute.pvtlC

page table

~
PTW

ASH

c::J~------,

figure b-1. Page Control Data Bases
Page not in main memory or on paging device

\

A

foo \
POT

f\

Ie -('

11-31'

'Fl'::Jr
oRO..
'-':J'

Pfr.h

-------O
.../I ;;"'"1~"1
I e.,,",S
f\ P
I
I
u..Se.J
I
I

(...
0 ...

L{

'/r:"'"

So"

inet:
\A..\..d

o
I "LJ'(

~~S

"-p
u..a4IIIA
SO"

o
~,

0 (

0

~
~~~.----~~~~~

o

'~i.\.

e~~5J ~

0

,

0

"'~

t

~

,

o
o

so"

0

"':\.~

0

w

--

IID1'

'fI\6l..If

o

r-----_-.l8..s.lJ,,;-r.

''-'01

6,4

t

t

1,

CD

Ad\vak. s~.

U

&1)

~,

@

@
(!)

?C1~

E,,;c.+

~ ~~
•

@

A~

I· of.
S-

~

•

":J.OZ2..

(!) o~ 5'""'11

t::JJt()/~

rf]dv",ls
lS

(7

FTqY'

><:?@if"".

<1> I?-.d ~e.
"i!!!J

(J

Ad-i.de

f?aJd

I

.f

00 '"

IC. 2..1

~ 0

e+-


Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Modify Date                     : 2014:11:13 02:14:54-08:00
Create Date                     : 2014:11:13 02:14:54-08:00
Metadata Date                   : 2014:11:13 02:14:54-08:00
Format                          : application/pdf
Document ID                     : uuid:05af3e20-1661-824d-9079-7deb416068c0
Instance ID                     : uuid:369d269c-b7b1-be4c-85d4-ac5ba3b0acda
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 543
EXIF Metadata provided by EXIF.tools

Navigation menu