DEC - PDP11



 ____  ______  __     _ _ __  __       ____  _    _   _ ____ 
|  _ \/ ___\ \/ /    / / |  \/  |     |  _ \| |  | | | / ___|
| |_) \___ \\  /_____| | | |\/| |_____| |_) | |  | | | \___ \
 |  _ < ___) /  \_____| | | |  | |_____|  __/| |__| |_| |___) |
|_| \_\____/_/\_\    |_|_|_|  |_|     |_|   |_____\___/|____/
                                                             
 ____  _____ ____ ____   _    ____
/ ___|| ____/ ___|  _ \ / \  |  _ \
\___ \|  _|| |   | |_) / _ \ | |_) |
 ___) | |__| |___|  __/ ___ \|  _ <
|____/|_____\____|_| /_/   \_\_| \_\

                        
In questa pagina andremo ad ottimizzare la memoria del nostro RSX-11M-PLUS in modo da poterla utilizzare tutta correttamente e poter utilizzare più programmi contemporaneamente senza avere problemi di memoria.

RSX-11M-PLUS dispone essenzialmente di due pool di memoria, il primario e il secondario, di seguito viene ripotato un estratto del manuale "System management guide" dove vengono descritte i due pool ed il loro utilizzo:


Primary and Secondary Pool:

Primary pool (usually referred to simply as "pool") occupies part of the region in memory allocated to the Executive.

When you run a task or perform some other action that requires pool, the system allocates pool space in units of memory called "packets" or "nodes."

However, because the Executive (and consequently, pool) is permanently loaded in low memory, primary pool does not appear in the list of available partitions.

Primary pool contains the Executive's database and temporary data structures that are used by tasks while they execute.

Secondary pool is allocated from main memory and is extensible. However, when you extend secondary pool, you do so at the expense of main memory. Each time you increase the amount of secondary pool space, you decrease the amount of available memory. As a system manager, you need to create an appropriate balance between the two resources.

Ora, visto che abbiamo assegnato il massimo della ram disponibile al nosto PDP11 virtuale (4MB) possiamo tranquillamente aumentare al massimo il pool secondario in modo da non avere problemi nel far girare diversi programmi contemporaneamente.

Per fare questo agiamo come segue:

NOTA BENE: Per lavorare correttamente con l'editor di RSX-11M-PLUS è necessario che il terminale sul quale siete loggati sia compatibile con il terminale VT100, se siete in locale ma in ambiente X-Windows vi consiglio di utilizzare rxvt, altrimenti se siete collegati alla macchina dove gira l'emulatore in telnet o in ssh allova vi consiglio di utilizzare putty in emulazione VT100.
Io utilizzo PUTTY e non ho mai avuto problemi.

Dopo aver fatto il boot usciamo dalla console e logghiamoci come system.

>bye

Have a Good Evening
21-MAR-2020 19:42 TT0:  logged off EMULO 
>
>hello system
Password:

RSX-11M-PLUS V4.6   BL87    [1,54] System    EMULO 
21-MAR-2020 19:42  Logged on Terminal TT0:  as SYS1

Good Evening

 
*****************************************************************
*                                                               *
*                    Welcome to RSX-11M-PLUS                    *
*                                                               *
*                  Version 4.6  Base level 87                   *
*                This is file LB:[1,2]LOGIN.TXT                 *
*                                                               *
*****************************************************************
 

    Last interactive login on Thursday, March 19, 2020  18:10:25 (TT0:)

 
>


Carichiamo in memoria il programma EDT (Editor) e poi posizioniamoci nella directory dove risiede il nostro executive (core).


>INS $EDT
>SET DEF [1,54]


Ora editiamo il file SYSVMR.CMD dove risiedono le definizioni per i parametri modificabili dell'executive.
 

>EDT SYSVMR.CMD

Ci apparirà l'editor in modalità "riga":


    1       RSX11M.SYS
*


Per cambiare la visuale da riga a schermo intero dare il comando "CHANGE"


>EDT SYSVMR.CMD
    1       RSX11M.SYS
*CHANGE


Passeremo in questo modo alla modalità visuale dell'editor.


RSX11M.SYS
;
; Set system and library UFDs
;
SET /SYSUIC=[1,54]
SET /LIBUIC=[3,54]
;
; Make primary pool as large as possible
;
SET /POOL=*
;
; Create secondary pool
;
; You can increase or decrease the size of secondary pool as you wish.
; The third parameter on the /PAR switch is the size of secondary pool
; in 64 byte blocks.  1000 blocks is 16KW.  Here are some critera for
; judging how much secondary pool you will need:
;
;       2 blocks        for every error logging device
;       2 blocks        for every terminal
;       2 blocks        for every prototype TCB
;       2 blocks        for every logged in terminal with accounting



Cerchiamo la seguente riga con i tasti cursore e la cambiamo da:

SET /PAR=SECPOL:*:1000:POOL

a:

SET /PAR=SECPOL:*:4000:POOL

Poi tornare in modalità riga digitando <CTRL+Z>


*EXIT
DB0:[1,54]SYSVMR.CMD;2 309 lines
>

Ora carichiamo il programma per modificare l'executive. facciamo una copia di backup dell'attuale executive su RSX11M.TSK e poi assegnamo l'unità di sistema all'unità di libreria.

>INS $VMR

 
>PIP RSX11M.SYS/NV/CO/BL:1026.=RSX11M.TSK

 
>ASN SY:=LB:

>


Fatto questo lanciamo il programma VMR facendogli eseguire il file appena modificato.


>VMR @SYSVMR

Loading Executive data space
Data space loading completed
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=SYSPAR:-*
VMR -- *DIAG*-Loadable driver larger than 4K
LOA TT:
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=DRVPAR:-*
SECPOL 117734 00173700 00400000  SEC POOL
SYSPAR 117670 00573700 00205500  MAIN
       117624 00573700 00115200  RO COM !DIR11M!
       117434 00711100 00005200  TASK   [...LDR]
       117230 00716300 00033500  TASK   [MCR...]
       117024 00752000 00010500  TASK   [TKTN  ]
       116620 00762500 00003200  TASK   [SHF...]
       116414 00765700 00013500  TASK   [RCT...]
DRVPAR 116334 01001400 00173600  MAIN
       116270 01001400 00006600  RO COM !TTEXT !
       116204 01010200 00020600  RO COM !TTCOM !
       116120 01031000 00035000  DRIVER (TT:)
       115320 01066000 00003500  DRIVER (DL:)
       115254 01071500 00005100  RO COM !PUCOM !
       114454 01076600 00014000  DRIVER (DU:)
       114120 01112600 00011500  DRIVER (MU:)
       113610 01124300 00005300  DRIVER (MS:)
       113300 01131600 00001700  DRIVER (DX:)
       113060 01133500 00001300  DRIVER (LP:)
       112640 01135000 00000500  DRIVER (PP:)
       112254 01135500 00000400  DRIVER (PR:)
       112064 01136100 00000100  DRIVER (NL:)
       112020 01136200 00004700  DRIVER (DB:)
       111754 01143100 00005500  DRIVER (DR:)
       111710 01150600 00017700  DRIVER (VF:)
       111644 01170500 00000300  DRIVER (CO:)
       111600 01171000 00002500  DRIVER (VT:)
       111534 01173500 00001500  DRIVER (RD:)
GEN    111470 01175200 16562600  MAIN
...LDR 12.01  117500  SYSPAR 248. 00005200 LB0:-00145401 FIXED
TKTN   07.01  117070  SYSPAR 248. 00010500 LB0:-00056556 FIXED
F11MSG 15.00  107410  GEN    200. 00006300 LB0:-00045045
MTAACP 17.00  107014  GEN    200. 00016200 LB0:-00051525
SHE... 06.01  106544  GEN    200. 00014500 LB0:-00055174
MCR... 07.00  117274  SYSPAR 160. 00033500 LB0:-00050504 FIXED
F11ACP 07.00D 111254  GEN    149. 00041000 LB0:-00043565
ERRLOG 05.03  110714  GEN    148. 00056200 LB0:-00043433
PMT... 02.02  110254  GEN    148. 00007500 LB0:-00052435
COT... 02.04  107534  GEN    145. 00014300 LB0:-00037671
HRC... 05.00  107140  GEN    140. 00042500 LB0:-00045631
PMD... 07.05  106670  GEN    140. 00017600 LB0:-00052405
SYSLOG 04.03  110004  GEN    130. 00024500 LB0:-00055434
SHF... 07.01  116664  SYSPAR 105. 00003200 LB0:-00055213 FIXED
RCT... 06.02  116460  SYSPAR 100. 00013500 LB0:-00053100 FIXED
FXR... 03.02  107264  GEN    100. 00003300 LB0:-00045037
BAP0   04.11  111040  GEN     80. 00050300 LB0:-00035350
QMG... 06.04  110130  GEN     75. 00037300 LB0:-00053037
LP0    07.04  110474  GEN     70. 00020300 LB0:-00050022
ACNT   06.04  107660  GEN     50. 00057100 LB0:-00034736
SHUTUP 04.04  106420  GEN     50. 00016500 LB0:-00055220
...RMD 05.00  001775+ GEN    225. 00042000 LB0:-00053122
...DCL 06.01  001751+ GEN    160. 00062500 LB0:-00040175
...DMO 04.02  001753+ GEN    160. 00017300 LB0:-00041150
...MCR 07.00  001767+ GEN    160. 00040300 LB0:-00050542
...MOU 26.06  001771+ GEN    160. 00045600 LB0:-00051434
...CA. 01.00  002025+ GEN    150. 00026100 LB0:-00055463
...INS 16.00  001765+ GEN    100. 00053200 LB0:-00046516
...SAV 11.00  002021+ GEN    100. 00070500 LB0:-00150110
...UFD 07.02  002027+ GEN    100. 00014500 LB0:-00056571
...VCP V04.10 002031+ GEN     90. 00020300 LB0:-00056757
...ACS 04.00  002003+ GEN     70. 00006200 LB0:-00035171
...ACC 05.00  001743+ GEN     65. 00032100 LB0:-00034477
...SHA 06.01  002023+ GEN     65. 00032000 LB0:-00055021
...AT. 10.0   001757+ GEN     64. 00056500 LB0:-00046102
...INI 24.00  001761+ GEN     60. 00037200 LB0:-00046422
...HOM 24.00  001763+ GEN     60. 00037200 LB0:-00046422
...BRO 09.10  001745+ GEN     50. 00041500 LB0:-00035476
...BYE 05.01  001747+ GEN     50. 00021700 LB0:-00036002
...HEL 06.00  001755+ GEN     50. 00031600 LB0:-00045175
...PIP 21.00  001773+ GEN     50. 00027500 LB0:-00052132
...UNL 05.04  001777+ GEN     50. 00021500 LB0:-00056705
...ACD 03.00  002001+ GEN     50. 00042500 LB0:-00034570
...BOO 03.10  002005+ GEN     50. 00047200 LB0:-00035276
...CON 05.00  002007+ GEN     50. 00135600 LB0:-00037467
...ELI 04.03  002011+ GEN     50. 00032600 LB0:-00043376
...LOA 05.03  002013+ GEN     50. 00040000 LB0:-00047625
...MAG 03.00  002015+ GEN     50. 00037300 LB0:-00050442
...PSW 03.02  002017+ GEN     50. 00017500 LB0:-00052522
RHAOFLCPACSR=176700VEC=254PRI=5
YLAOFLCPACSR=177560VEC=60PRI=5
YZAOFLCPACSR=160100VEC=300PRI=5
YZBOFLCPACSR=160110VEC=310PRI=5
DLAOFLCPACSR=174400VEC=160PRI=5
DUAOFLCPACSR=172150VEC=154PRI=5
MUAOFLCPACSR=174500VEC=260PRI=5
MSAOFLCPACSR=172522VEC=224PRI=5
DXAOFLCPACSR=177170VEC=264PRI=5
LPAOFLCPACSR=177514VEC=200PRI=4
PPAOFLCPACSR=177560VEC=100PRI=4
PRAOFLCPACSR=177554VEC=74PRI=4
PRBOFLCPACSR=177550VEC=70PRI=4
DB0:RHA0:OFLDRIVER
DB1:RHA1:OFLDRIVER
DB2:RHA2:OFLDRIVER
DB3:RHA3:OFLDRIVER
DR0:RHA4:OFLDRIVER
DR1:RHA5:OFLDRIVER
DR2:RHA6:OFLDRIVER
DR3:RHA7:OFLDRIVER
VF0:OFLDRIVER
VF1:OFLDRIVER
VF2:OFLDRIVER
VF3:OFLDRIVER
CO0:OFLDRIVER
TT0:YLA0:OFLDRIVER
TT1:YZA0:OFLDRIVER
TT2:YZA1:OFLDRIVER
TT3:YZA2:OFLDRIVER
TT4:YZA3:OFLDRIVER
TT5:YZB0:OFLDRIVER
TT6:YZB1:OFLDRIVER
TT7:YZB2:OFLDRIVER
TT10:YZB3:OFLDRIVER
VT0:OFLDRIVER
RD0:ONLDRIVER
DL0:DLA0:OFLDRIVER
DL1:DLA1:OFLDRIVER
DL2:DLA2:OFLDRIVER
DL3:DLA3:OFLDRIVER
DU0:DUA0:OFLDRIVER
DU1:DUA1:OFLDRIVER
DU2:DUA2:OFLDRIVER
DU3:DUA3:OFLDRIVER
MU0:MUA0:OFLDRIVER
MS0:MSA0:OFLDRIVER
DX0:DXA0:OFLDRIVER
DX1:DXA1:OFLDRIVER
LP0:LPA0:OFLDRIVER
PP0:PPA0:OFLDRIVER
PR0:PRA0:OFLDRIVER
PR1:PRB0:OFLDRIVER
NL0:OFLDRIVER
POOL=1200:12398.:12398.:1737

>


Come potete vedere il programma è andato a modificare alcuni parametri e poi ha presentato un dump della configurazione dell'executive.
Ora per poter utilizzare il nuovo core è necessario effettuare il boot dal nuovo core e salvare il boot block nel disco di avvio, come abbamo precedentemente fatto alla fine del SYSGEN.
 

>BOO [1,54]

 
RSX-11M-PLUS V4.6   BL87 


>SAV /WB


RSX-11M-PLUS V4.6  BL87   2044.KW  System:"EMULO "

 
>RED DB:=SY:

 
>RED DB:=LB:

 
>RED DB:=SP:

 
>MOU DB0:"RSX11MPBL87"

 
>@DB:[1,2]STARTUP

>; PLEASE NOTE

>;

>;If you have not yet read the system release notes, please do so

>;now before attempting to perform a SYSGEN or to utilize the new

>;features of this system.

>;

>;

>* Please enter time and date (Default:21-MAR-2020 19:54) [S]:
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE LP0:/SP/FL:2/LOWER/FO:0
>QUE BAP0:/BATCH
>QUE LP0:/AS:PRINT
>QUE BAP0:/AS:BATCH
>@ <EOF>
>

>@ <EOF>
>


Verifichiamo ora che la partizione secondaria sia effettivamente di 4000 blocchi.
lanciamo il comando RMD


>RMD


Apparirà una finesta che si auto aggiorna con una serie di informazioni che per il momento non vedremo, quello che ci interessa è il valore del campo SECPOOL:


RSX-11M-PLUS V4.6  BL87   (EMULO )  2044K  UP 000:00:06 8-APR-2020  14:12:38
TASK=  *IDLE*                FREE=   SY0:275487.      DB2:DMO
                                     DB1:DMO          DB3:DMO        PARS
POOL=11532.:11652.:13.       SECPOOL=1929.:2048.:94%
     11532.:11652.:13.               1929.:2048.:94%                SECPOL:P
                                                                    SYSPAR:D
IN:   D RDPFFR QB                                                   DRVPAR:D
9     I CUMC1M MA                                                   GEN   :D
61K   R T:TS1D GP
OUT:  1 . .RAT .0
0     1 . .EC0 .
0K    M . .SP  .
     !=!])>!>><>>
0*******127*****255*****383*****511*****638*****766*****894*****
EP---D--DD------------------------------------------------------
----------------------------------------------------------------
1022****1149****1277****1405****1533****1660****1788****1916****

                                                                    ERRSEQ
                                                                    0.



Come possiamo vedere il pool secondario è di 2048 blocchi che equivalgono a 4KB. :)
Per uscrie dall'utility RMD basta utilizzare la combo <CTRL+Z>

Nel prossimo tutorial andremo ad installare la rete DECNET.


Installazione DECNET
Torna a SYSGEN RSX-11M-PLUS
Torna su PDP 11
Torna su DEC
Torna su Mimac