SOCS

Post on 02-Feb-2016

58 views 0 download

description

SOCS. Hoofdstuk 4 Besturingssystemen. 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 - PowerPoint PPT Presentation

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