SOCS
description
Transcript of SOCS
1
SOCS
Hoofdstuk 4
Besturingssystemen
2
Besturingssystemen
Werking van de computer besturen/regelen In geheugen geladen bij opstarten v/d computer Voordelen:
Eenvoudiger om met computer te werken Laag niveau taken, verbergen details, …
Computer efficiënt laten werken Meerdere programma’s tegelijk, in- en uitvoer, …
Voldoende hardware ondersteuning! Programmaonderbrekingen, processortoestanden,
geprivilegieerde bevelen, beschermingsregisters, wekker, …
3
Besturingssystemen
HardwarHardwaree
BesturingssysteBesturingssysteemem
ToepassingeToepassingenn
GebruikeGebruikersrs
4
Inhoud
Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten
5
Inhoud
Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten
6
Inleiding
Besturingssysteem (Operating System) Doelstellingen
Gebruiksvriendelijker Efficiënter
Geen sine qua non Zonder BS: niet eenvoudig! Laden van programma, bewaren informatie, …
Eerste computers zeer duur Efficiëntie erg belangrijk
7
Inleiding
Voor bepaald type hardware DOS, OS/2 Intel PC VMS Dec (VAX) MVS IBM Mainframes
Voor verschillende hardware platformen Unix/Linux
Grote verschillen Verschillende hardware, gebruikers, beheerders
Gemeenschappelijke kenmerken
8
Inhoud
Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten
9
Programmatoestandswoord
Register van het CVO(Program Status Word, PSW)
Bevat informatie over: Toestand van het programma in uitvoering Toestand van de machine zelf
Bezig met uitvoering van instructie op adres 0090Conditiecode = 2Oei, Overloop!…
10
Programmatoestandswoord
20 decimale cijfer Verschillende velden
PTW3 = CC, PTW6..9 = BT, …
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Conditie-code
Bevelen-teller
Overloop-indicator
Stapel-overloop-indicator
11
Programmatoestandswoord
Sommige velden krijgen impliciet hun waarde neveneffect van uitvoering van een bevel
CC (HIA, BIG, OPT, …, VGL, LEZ, DRU) Indien overloop bij +,-,*,/,%, dan OVI 1,
anders OVI 0 Indien stapeloverloop, dan SOI 1,
anders SOI 0 BT wordt tijdens het ophalen van een bevel
opgehoogd of bij een sprong aangepast
12
Programmatoestandswoord
Waarde van sommige velden indirect testen: VSP-instructie
CC: NUL, NNUL, POS, NPOS, NEG, NNEG OVI: OVL (overloop), GOVL (geen overloop) SOI: SO (stapeloverloop), GSO (geen SO)
13
Programmatoestandswoord
int a, b, c;
main() {
a = getint();
while (a != 0) {
b = getint();
c = a – b;
if (c < 0) c = – c;
/* ... Zet c op stapel ... */
a = getint();
}
...
}
LEZLUS: VSP NUL,ENDWH
HIA R1,R0LEZAFT R1,R0 VSP NNEG,POSVER.w R1,-1
POS: BST R1 LEZSPR LUS
ENDWH: …
CC?
CC?
a, c R1b R0
14
Programmatoestandswoord
int a, b, c;
main() {
a = getint();
while (a != 0) {
b = getint();
c = a – b;
if (c < 0) c = – c;
/* ... Zet c op stapel ... */
a = getint();
}
...
}
LEZLUS: VSP NUL,ENDWH
HIA R1,R0LEZAFT R1,R0VSP NNEG,POSVER.w R1,-1
POS: BST R1LEZSPR LUS
ENDWH: …
Overloop?
Geen informatie overaantal of bereik van getallen
15
Programmatoestandswoord
int a, b, c;
main() {
a = getint();
while (a != 0) {
b = getint();
c = a – b;
if (c < 0) c = – c;
/* ... Zet c op stapel ... */
a = getint();
}
...
}
LEZLUS: VSP NUL,ENDWH
HIA R1,R0LEZAFT R1,R0VSP OVL,OVERLVSP NNEG,POSVER.w R1,-1
POS: BST R1LEZSPR LUS
ENDWH: …OVERL: …
Overloop?
Geen informatie overaantal of bereik van getallen
16
Programmatoestandswoord
int a, b, c;
main() {
a = getint();
while (a != 0) {
b = getint();
c = a – b;
if (c < 0) c = – c;
/* ... Zet c op stapel ... */
a = getint();
}
...
}
LEZLUS: VSP NUL,ENDWH
HIA R1,R0LEZAFT R1,R0VSP OVL,OVERLVSP NNEG,POSVER.w R1,-1VSP OVL,OVERL
POS: BST R1LEZSPR LUS
ENDWH: …OVERL: …
Stapel-overloop?
Geen informatie overaantal of bereik van getallen
17
Programmatoestandswoord
int a, b, c;
main() {
a = getint();
while (a != 0) {
b = getint();
c = a – b;
if (c < 0) c = – c;
/* ... Zet c op stapel ... */
a = getint();
}
...
}
LEZLUS: VSP NUL,ENDWH
HIA R1,R0LEZAFT R1,R0VSP OVL,OVERLVSP NNEG,POSVER.w R1,-1VSP OVL,OVERL
POS: BST R1VSP SO,STOVLLEZSPR LUS
ENDWH: …OVERL: …STOVL: …
Overloop?
Overloop?
Stapel-overloop?
Geen informatie overaantal of bereik van getallen
18
Inhoud
Inleiding Programmatoestandswoord Programma-onderbrekingen
Overloop en Oneindige lussen Bevelencyclus Programma-onderbrekingsmechanisme Soorten onderbrekingen Verbieden van programma-onderbrekingen Programma-onderbrekingsroutines Geprogrammeerde programma-onderbrekingen
Invoer en uitvoer …
19
Overloop
Overloop= resultaat kan niet meer voorgesteld worden
Voorbeeld:
HIA R1,a
OPT R1,b
VSP OVL,OVLP
…
OVLP: … 4.000.000.000
+1.000.000.000
=5.000.000.000
= – 5.000.000.000
Onmiddellijk testen na berekening
Zoniet: OVI Nieuwe waarde
Beter: Automatisch onderbreken Minder geheugen Sneller uitvoeren
Elektronica reeds aanwezig!
20
Overloop
RekenwerkRekenwerk
Oeps! Overloop!!!Stop de
uitvoering!!!
ControleControle
4.000.000.00
+1.000.000.000
= –5.000.000.000
21
Oneindige Lus
Meerdere programma’s Gebruikersprogramma Besturingssysteem …
Editor
Vertaler
Wisselen tussen programma’s Via SPR-bevel Niet op willekeurig ogenblik!
Programma controle over de processor bevelen van dit programma uitgevoerd worden CVO monopoliseren!!! Vb. Oneindige Lus
22
Oneindige Lus
int a, b, c;
main() {
a = 0;
b = 17;
while (a < b)
c += 10;
...
}
| a R1
| b R2
HIA.w R1,0
HIA.w R2,17
LUS: VGL R1,R2
VSP GRG,EINDE
OPT.w R3,10
SPR LUS
EINDE: …
23
Bevelencyclus
Volgorde besturing: Ophalen bevel
BT BT + 1 Instructie analyseren
Functiecode Operand(en) berekenen
Instructie uitvoeren
Doorbreken volgorde: Sprongbevel:
BT nieuwe waarde Programma-onderbreking
24
Programma-onderbreking
Uitvoering van een programma onderbreken+ uitvoering van ander programma beginnen
25
Programma-onderbreking
Boek lezen= programma uitvoeren Voor achter
(= sequentieel) Bel gaat
Bladwijzer (= onthouden waar gekomen)
Naar deur, deur openen, interactie bezoeker (= uitvoeren ander programma)
Bezoeker weg … Boek verderlezen
(bladwijzer) = onderbroken
programma hernemen
26
Programma-onderbrekingBoek lezen Bezoeker ontvangen
Toestand bewaren
Toestand herstellen
Bezoeker weg
27
Programma-onderbreking
Verschillende oorzaken …
28
Programma-onderbrekingH/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19000
0
00000
Ond
erbr
ekin
gsvl
agge
n 123456789
CVO (processor)
Onderbreking gevraagd!
1
29
Programma-onderbreking
Op elk ogenblik aangevraagd(asynchroon)
Eventueel ingaan nauitvoering huidige instructie
Bevelencyclus Ophalen bevel
BT BT + 1 Analyseren bevel
Functiecode Operanden
Uitvoeren bevel Programmaonderbreking
aangevraagd? Toestand bewaren Ander programma
uitvoeren
30
Programma-onderbreking
Toestand bewaren Toestand = BT, CC, OVI, SOI, … Op vaste plaats Op stapel
Eerste deel van PTW: PTW0..9
Risico! Ander programma uitvoeren
BT Nieuwe waarde Vaste waarde of afhankelijk onderbreking Adres vast bepaald of instelbaar
“Programma-onderbrekingsvectoren” DRAMA: 9990 + k (k = nummer PO)
0000009000
0000009500
0000009584
0000009112
0000009228
0000009012
0000009212
0000009612
000000971299919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
PO4
31
Voorbeeld01000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
1221009900
3221900103
0000000000
1111200000
1221300102
0000009212
0000009050
1221009100
0000909090
BIG R3,RESBIG R3,RES
SPR VERDERSPR VERDER
RES:RES: RESGR 1RESGR 1
VERDER:VERDER: HIA.w R2,0HIA.w R2,0
… …
……
PO_ROUT4:PO_ROUT4: BIG BIG R0,BEWAARR0,BEWAAR
……
PO-vectoren
R9R9
Stapel
32
Voorbeeld
3221900103
0000000000
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0000000020R0 R0
1112000000BRBR
0 1 0 0BTBT
0
SOISOI
0
OVIOVI
2
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
Ophalen
33
Voorbeeld
3221900103
0000000000
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 1BTBT
0
SOISOI
0000000020R0 R0
1221300102BRBR
0
OVIOVI
2
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
Analyseren, Uitvoeren
34
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 1BTBT
0
SOISOI
0000000020R0 R0
1221300102BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
PO aangevraagd?
35
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 1BTBT
0
SOISOI
0000000020R0 R0
1221300102BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
Ophalen
36
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 2BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
1
Analyseren, Uitvoeren
37
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 3BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
1
PO aangevraagd?
38
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 3BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0000909090
0000009000R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
1
PO aangevraagd? Push(PTW0..9)
39
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 3BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0111000103
0000008999R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
1
PO aangevraagd? PO-vlag[4] 0
40
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
0 1 0 3BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
110
1111111111R3 R3 1221009100
0111000103
0000008999R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
PO aangevraagd? PTW6..9 …
41
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
9 0 5 0BTBT
0
SOISOI
0000000020R0 R0
3221900103BRBR
0
OVIOVI
1
CCCC
010
1111111111R3 R3 1221009100
0111000103
0000008999R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
Ophalen
42
Voorbeeld
3221900103
1111111111
1111200000
1221009900
122130010201000100
01010101
01020102
01030103
89998999
90009000
90509050
99939993
99949994
0000009212
0000009050
Processor
9 0 5 0BTBT
0
SOISOI
0000000020R0 R0
1221009900BRBR
0
OVIOVI
1
CCCC
010
1111111111R3 R3 1221009100
0111000103
0000008999R9 R9
0
0
0
0
0
0
0
0
0
Ond
erbr
ekin
gsvl
agge
n
1
2
3
4
5
6
7
8
9
Enz …
43
Soorten Onderbrekingen
1. Externe oorzaken Externe klok, wekker, reset-toets, …
2. Randapparatuur Bestuurder van invoer-, uitvoerapparaat, hulpgeheugen,
netwerkkaarten, … Klaar met aangevraagde bewerking,
Gegevens beschikbaar, Fout, …
3. Machinefout Elektrische spanning uitgevallen, Geheugenfout, …
4. Programmafout Overloop, Stapeloverloop, Ongeldig adres,
Ongeldige instructie, …
5. Geprogrammeerde programma-onderbreking Hulp vragen aan het besturingsprogramma
44
Soorten Onderbrekingen
Engels: Interrupt Trap, Exception (oorz. = programma)
Synchroon vs asynchroon Synchroon = op welbepaald tijdstip
Voorbeeld: ongeldige instructie (bij analyse) Asynchroon = op willekeurig tijdstip
Randapparaat klaar met opdracht
45
Soorten Onderbrekingen
Synch.Supervisie-oproep
Asynch.Wekker
Asynch.Drukkerbestuurder
Asynch.Toetsenbordbestuurder
Asynch.Schermbestuurder
Asynch.Schijfbestuurder
Synch.Programmafout (OVL)
Synch.Programmafout (SO)
Asynch.Synch.Synch.
---
WEK
DRK
IN
UIT
SCH
OVL
SPL
MFTMachinefoutOngeldige instructieOngeoorloofde instructie
9991
9992
9993
9994
9995
9996
9997
9998
9999
1
2
3
4
5
6
7
8
9
TypeMaskerOorzaakPO-vector
Nr= Prio
46
Soorten Onderbrekingen
Synch.Supervisie-oproep
Asynch.Wekker
Asynch.Drukkerbestuurder
Asynch.Toetsenbordbestuurder
Asynch.Schermbestuurder
Asynch.Schijfbestuurder
Synch.Programmafout (OVL)
Synch.Programmafout (SO)
Asynch.Synch.Synch.
---
WEK
DRK
IN
UIT
SCH
OVL
SPL
MFTMachinefoutOngeldige instructieOngeoorloofde instructie
9991
9992
9993
9994
9995
9996
9997
9998
9999
1
2
3
4
5
6
7
8
9
TypeMaskerOorzaakPO-vector
Nr= Prio
47
Verbieden van programma-onderbrekingen
48
Uitstellen van programma-onderbrekingen
Wie eerst?
49
Verbieden/Uitstellen van programma-onderbrekingen
Onderbreking onmogelijk PO-vlag kan niet gezet worden
Onderbreking tijdelijk opschorten Niet ingaan op PO-aanvraag
Mechanismen: Maskers Prioriteiten
50
Maskers
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Globaal M
asker
Globaal Program
ma Fout M
asker
Wekker M
askerD
rukker Masker
Invoer Masker
Uitvoer M
askerSchijf M
askerO
verloop Masker
Stapeloverloop Masker
Machinefout M
asker
0: PO-aanvraag toegelaten (enabled)1: PO-aanvraag niet toegelaten (disabled)
51
Maskers
G==1 geen enkele PO-aanvraag toegelaten
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
52
Maskers
GPF==1 PO7 en PO8 genegeerd (ignored)(vlaggen kunnen niet gezet worden)
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
53
Maskers
Masker == 1 PO-aanvraag uitgesteld (pending)
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
54
Maskers
Speciale instructies MKH xxx (Masker Hoog)
PTWxxx 1
MKL xxx (Masker Laag) PTWxxx 0
TSM xxx (Test Masker) CC PTWxxx
TSO xxx (Test Onderbrekingsvlag) CC PO-vlagxxx
55
Maskers
Voorbeelden: PO vanwege wekker en drukker niet toegestaan
Toch nagaan of drukker PO aangevraagd heeft
R9 niet gebruikt voor stapel
Staat Globaal Masker af?
MKH WEKMKH DRK
MKH SPL
TSO DRKVSP POS,PO_AANGEVRAAGD
TSM GVSP NUL,G_MASKER_AF
56
Prioriteiten
H/U S/P CCONV OVI SOI BT
GPF WEK DRKG IN UIT SCH OVL SPL MFT
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Alleen op PO-aanvragen met prioriteit hoger dan ONVkan ingegaan worden.
57
Prioriteiten
Voorbeelden: ONV == 4
? PO-aanvraag Wekker
? PO-aanvraag Schijf
? PO-aanvraag Machinefout
ONV == 9
Toekenning prioriteiten?
Prio Oorzaak
9 MachinefoutOngeldige instructieOngeoorloofde instr.
8 Programmafout (SO)
7 Programmafout (OVL)
6 Schijfbestuurder
5 Schermbestuurder
4 Toetsenbordbest.
3 Drukkerbestuurder
2 Wekker
1 Supervisie-oproep
UITGESTELD
TOEGESTAAN
TOEGESTAAN
Geen enkele PO TOEGESTAAN
• Prio(dringend) > Prio(minder dringend)• Prio(snel apparaat) > Prio(traag apparaat)
58
Bevelencyclusstop = 0;while (! stop) {
/* haal bevel op */ …/* analyseer bevel */ …/* voeruit */ …if (PTW[10] != 1) {
/* G masker af */int onv = PTW[0];int k;/* Toeg. PO-aanvraag? */for (k=9; k>onv; k--)
if ((PO_vlag[k] && ((k == 1) ||
! PTW[10+k])) /* && (PTW[11]==0 ||
(k!=7 && k!=8))*/ )break;
if (k > onv) {
/* POk */
PTW[0] = k; /* ONV */
PO_vlag[k] = 0;
vulin(Geheugen[9990+k]% 10000,PTW,6,9);
}
} /* if (G-masker) */
} /* while */
Indien PTW[11] == 1 PO_vlag[7] en PO_vlag[8] kunnen niet gezet worden
59
PO-behandelingsroutine
Elk soort programma-onderbreking apart programma (= PO-behandelingsroutine)
Engels: Interrupt (service) routine
HIA.w R1,10HIA.w R2,50OPT R1,R2
……
HIA.w R1,1000…
! Na onderbreking:
Onderbroken programma hernemen
Alle accumulatoren terug oorspronkelijke waarde
CC, OVI, SOI terug oorspronkelijke waarde
BT terug oorspronkelijke waarde
60
KTO-instructie Na programma-onderbreking
terug verder met onderbroken programma KTO
Keer Terug van Onderbreking 6299999999
Beëindigt de programma-onderbreking PTW0..9 pop()
BT terug de oorspronkelijke waarde CC, OVI, SOI opnieuw oorspronkelijke waarde …
Vergelijk KTG Alleen BT hersteld PTW6..9 pop() % 10000
61
Voorbeeld
tijd
Gebruikers-programma
PO-routine-1
PO-routine-2
PO-routine-3
PO-routine-4
PO-routine-5
PO-routine-6
PO-routine-7
PO-routine-8
PO-routine-9
ONV=0
ON
V=4
ONV=9
ONV=4
ONV=7
ONV=4
ONV=0
KT
O
KT
O
KT
O
PO
4
PO
9
PO
7
PO
5
Masker PO5 = 1Andere maskers = 0
62
PO-behandelingsroutine
| Bewaar inhouden van accumulatorenPO_routineN:
| Hier begint de eigenlijke behandeling…
| Herstel de inhouden v/d accumulatoren
| Keer terugKTO
BIG R0,BEWAAR+0BIG R1,BEWAAR+1…BIG R9,BEWAAR+9
HIA R0,BEWAAR+0HIA R1,BEWAAR+1…HIA R9,BEWAAR+9
BEWAAR: RESGR 10
63
Geprogrammeerde programma-onderbreking
PO-vlag[1] geplaatst via speciale instructie OND (Onderbreking) 619999
Waarde niet gebruikt bij uitvoering Programma vraagt “hulp” aan het besturingsprogramma
Bijvoorbeeld: Hoe laat is het? Schrijf “PO-aanvraag” weg in bestand “Socs.doc”
= dienstnummer PO_routine voor geprogrammeerde PO
moet zelf nummer ophalen (cfr. Verder)
64
DRAMA - machine
Opstarten van DRAMA-machine99909990
99919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
6299999999
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990 H/U S/P CC0 OVI SOI BT
1 1 11 1 1 1 1 1 1
KTO
65
DRAMA - machine
Voorbeeld: PO voor drukker (PO3) toelaten6299999999
0000009990
99909990
99919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990
0000009990 H/U S/P CC0 OVI SOI BT
1 1 11 1 1 1 1 1 1
…
PO_DRK: ……KTO
91239123
BIG R0,9990+3HIA.a R0,PO_DRK
66
DRAMA - machine
Voorbeeld: PO voor drukker (PO3) toelaten6299999999
0000009990
99909990
99919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
0000009990
0000009990
0000009990
0000009990
0000009990
0000009123
0000009990
0000009990 H/U S/P CC0 OVI SOI BT
1 1 11 1 1 1 1 1 1
HIA.a R0,PO_DRKBIG R0,9990+3 …
PO_DRK: ……KTO
MKL DRK
91239123
67
DRAMA - machine
Voorbeeld: PO voor drukker (PO3) toelaten6299999999
0000009990
99909990
99919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
0000009990
0000009990
0000009990
0000009990
0000009990
0000009123
0000009990
0000009990 H/U S/P CC0 OVI SOI BT
1 1 01 1 1 1 1 1 1
HIA.a R0,PO_DRKBIG R0,9990+3MKL DRK …
PO_DRK: ……KTO
MKL G
91239123
68
DRAMA - machine
Voorbeeld: PO voor drukker (PO3) toelaten6299999999
0000009990
99909990
99919991
99929992
99939993
99949994
99959995
99969996
99979997
99989998
99999999
0000009990
0000009990
0000009990
0000009990
0000009990
0000009123
0000009990
0000009990 H/U S/P CC0 OVI SOI BT
1 1 00 1 1 1 1 1 1
HIA.a R0,PO_DRKBIG R0,9990+3MKL DRKMKL G…
PO_DRK: ……KTO
91239123
69
Cursustekst
Hoofdstuk 4: pag. 94 pag. 123