slide1
Download
Skip this Video
Download Presentation
SOCS

Loading in 2 Seconds...

play fullscreen
1 / 69

SOCS - PowerPoint PPT Presentation


  • 177 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' SOCS' - chad


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

SOCS

Hoofdstuk 4

Besturingssystemen

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
      • Meerdere programma’s tegelijk, in- en uitvoer, …
  • Voldoende hardware ondersteuning!
      • Programmaonderbrekingen, processortoestanden, geprivilegieerde bevelen, beschermingsregisters, wekker, …
besturingssystemen1
Besturingssystemen

Gebruikers

Toepassingen

Besturingssysteem

Hardware

inhoud
Inhoud
  • Inleiding
  • Programmatoestandswoord
  • Programma-onderbrekingen
  • Invoer en uitvoer
  • Processortoestanden
  • Multiprogrammatie
  • Soorten Besturingssystemen
  • Taken van een besturingssysteem
  • Kosten en Baten
inhoud1
Inhoud
  • Inleiding
  • Programmatoestandswoord
  • Programma-onderbrekingen
  • Invoer en uitvoer
  • Processortoestanden
  • Multiprogrammatie
  • Soorten Besturingssystemen
  • Taken van een besturingssysteem
  • Kosten en Baten
inleiding
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
inleiding1
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
inhoud2
Inhoud
  • Inleiding
  • Programmatoestandswoord
  • Programma-onderbrekingen
  • Invoer en uitvoer
  • Processortoestanden
  • Multiprogrammatie
  • Soorten Besturingssystemen
  • Taken van een besturingssysteem
  • Kosten en Baten
programmatoestandswoord
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 0090

Conditiecode = 2

Oei, Overloop!

programmatoestandswoord1

ONV

H/U

S/P

CC

OVI

SOI

BT

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

Programmatoestandswoord
  • 20 decimale cijfer
  • Verschillende velden
    • PTW3 = CC, PTW6..9 = BT, …

Stapel-overloop-indicator

Conditie-code

Overloop-indicator

Bevelen-teller

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

programmatoestandswoord2
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
programmatoestandswoord3
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)
programmatoestandswoord4
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();

}

...

}

LEZ

LUS: VSP NUL,ENDWH

HIA R1,R0

LEZ

AFT R1,R0

VSP NNEG,POS

VER.w R1,-1

POS: BST R1

LEZ

SPR LUS

ENDWH: …

Programmatoestandswoord

CC?

CC?

a, c  R1b  R0

programmatoestandswoord5
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();

}

...

}

LEZ

LUS: VSP NUL,ENDWH

HIA R1,R0

LEZ

AFT R1,R0

VSP NNEG,POS

VER.w R1,-1

POS: BST R1

LEZ

SPR LUS

ENDWH: …

Programmatoestandswoord

Overloop?

Geen informatie over

aantal of bereik van getallen

programmatoestandswoord6
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();

}

...

}

LEZ

LUS: VSP NUL,ENDWH

HIA R1,R0

LEZ

AFT R1,R0

VSP OVL,OVERL

VSP NNEG,POS

VER.w R1,-1

POS: BST R1

LEZ

SPR LUS

ENDWH: …

OVERL: …

Programmatoestandswoord

Overloop?

Geen informatie over

aantal of bereik van getallen

programmatoestandswoord7
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();

}

...

}

LEZ

LUS: VSP NUL,ENDWH

HIA R1,R0

LEZ

AFT R1,R0

VSP OVL,OVERL

VSP NNEG,POS

VER.w R1,-1

VSP OVL,OVERL

POS: BST R1

LEZ

SPR LUS

ENDWH: …

OVERL: …

Programmatoestandswoord

Stapel-overloop?

Geen informatie over

aantal of bereik van getallen

programmatoestandswoord8
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();

}

...

}

LEZ

LUS: VSP NUL,ENDWH

HIA R1,R0

LEZ

AFT R1,R0

VSP OVL,OVERL

VSP NNEG,POS

VER.w R1,-1

VSP OVL,OVERL

POS: BST R1

VSP SO,STOVL

LEZ

SPR LUS

ENDWH: …

OVERL: …

STOVL: …

Programmatoestandswoord

Overloop?

Overloop?

Stapel-overloop?

Geen informatie over

aantal of bereik van getallen

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

Elektronica reeds aanwezig!

Overloop
  • Onmiddellijk testen na berekening
  • Zoniet:
    • OVI  Nieuwe waarde
  • Beter:
    • Automatisch onderbreken
    •  Minder geheugen
    •  Sneller uitvoeren

= – 5.000.000.000

overloop1

4.000.000.00

+1.000.000.000

= –5.000.000.000

Overloop

Oeps! Overloop!!!

Stop de uitvoering!!!

Rekenwerk

Controle

oneindige lus
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
oneindige lus1
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: …

Oneindige Lus
bevelencyclus
Bevelencyclus
  • Volgorde besturing:
    • Ophalen bevelBT  BT + 1
    • Instructie analyseren
      • Functiecode
      • Operand(en) berekenen
    • Instructie uitvoeren
  • Doorbreken volgorde:
    • Sprongbevel:BT  nieuwe waarde
    • Programma-onderbreking
programma onderbreking
Programma-onderbreking
  • Uitvoering van een programma onderbreken+ uitvoering van ander programma beginnen
programma onderbreking1
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

Programma-onderbreking
programma onderbreking2
Programma-onderbreking

Boek lezen

Bezoeker ontvangen

Toestand bewaren

Toestand herstellen

Bezoeker weg

programma onderbreking3
Programma-onderbreking

Verschillende oorzaken …

programma onderbreking4

0

0

0

0

ONV

H/U

S/P

CC

OVI

SOI

BT

0

0

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

0

0

0

Programma-onderbreking

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

123

45

6789

Onderbreking gevraagd!

1

Onderbrekingsvlaggen

CVO (processor)

programma onderbreking5
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

Programma-onderbreking
programma onderbreking6

9991

9992

9993

9994

9995

9996

9997

9998

9999

0000009712

PO4

0000009000

0000009500

0000009584

0000009112

0000009228

0000009012

0000009212

0000009612

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

1221300102

3221900103

0000000000

1111200000

Stapel

0000909090

1221009100

R9

1221009900

PO-vectoren

0000009212

0000009050

Voorbeeld

0100

0101

0102

0103

8999

9000

9050

9993

9994

BIG R3,RES SPR VERDERRES: RESGR 1VERDER: HIA.w R2,0 …

PO_ROUT4: BIG R0,BEWAAR …

voorbeeld1

CC

BT

OVI

SOI

0 1 0 0

2

0

0

0

1

1

0

1111111111

0000009000

0000000020

0

R0

R9

R3

0

0

0

0

0

0

0

1112000000

BR

Voorbeeld

Ophalen

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0000000000

123

45

6789

1111200000

0000909090

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld2

CC

BT

OVI

SOI

0 1 0 1

2

0

0

0

0000000020

0000009000

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

1221300102

BR

Voorbeeld

Analyseren, Uitvoeren

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

0000000000

123

45

6789

1111200000

0000909090

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld3

CC

BT

OVI

SOI

0 1 0 1

1

0

0

0

0000000020

0000009000

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

1221300102

BR

Voorbeeld

PO aangevraagd?

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0000909090

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld4

CC

BT

OVI

SOI

0 1 0 1

1

0

0

0

0000000020

0000009000

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

1221300102

BR

Voorbeeld

Ophalen

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0000909090

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld5

CC

BT

OVI

SOI

0 1 0 2

1

0

0

0

0000000020

0000009000

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

Analyseren, Uitvoeren

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0000909090

1

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld6

CC

BT

OVI

SOI

0 1 0 3

1

0

0

0

0000000020

0000009000

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

PO aangevraagd?

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0000909090

1

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld7

CC

BT

SOI

OVI

0 1 0 3

1

0

0

0

0000000020

1111111111

0000009000

0

R9

R0

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

PO aangevraagd?

Push(PTW0..9)

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0000909090

1

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld8

CC

BT

SOI

OVI

0 1 0 3

1

0

0

0

0000000020

1111111111

0000008999

0

R9

R0

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

PO aangevraagd?

PO-vlag[4]  0

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0111000103

1

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld9

CC

BT

OVI

SOI

0 1 0 3

1

0

0

0

0000000020

0000008999

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

PO aangevraagd?

PTW6..9 …

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

1

1111111111

123

45

6789

1111200000

0111000103

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld10

CC

BT

OVI

SOI

9 0 5 0

1

0

0

0

0000000020

0000008999

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

3221900103

BR

Voorbeeld

Ophalen

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

0

1111111111

123

45

6789

1111200000

0111000103

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

voorbeeld11

CC

BT

OVI

SOI

9 0 5 0

1

0

0

0

0000000020

0000008999

1111111111

0

R0

R9

R3

0

0

0

0

0

0

0

1221009900

BR

Voorbeeld

Enz …

0100

0101

0102

0103

8999

9000

9050

9993

9994

1221300102

Processor

3221900103

0

1

0

1111111111

123

45

6789

1111200000

0111000103

1221009100

Onderbrekingsvlaggen

1221009900

0000009212

0000009050

soorten onderbrekingen
Soorten Onderbrekingen
  • Externe oorzaken
    • Externe klok, wekker, reset-toets, …
  • Randapparatuur
    • Bestuurder van invoer-, uitvoerapparaat, hulpgeheugen,netwerkkaarten, …
    • Klaar met aangevraagde bewerking, Gegevens beschikbaar, Fout, …
  • Machinefout
    • Elektrische spanning uitgevallen, Geheugenfout, …
  • Programmafout
    • Overloop, Stapeloverloop, Ongeldig adres, Ongeldige instructie, …
  • Geprogrammeerde programma-onderbreking
    • Hulp vragen aan het besturingsprogramma
soorten onderbrekingen1
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
soorten onderbrekingen2

Nr= Prio

PO-vector

Oorzaak

Masker

Type

9

9999

MFT

8

9998

SPL

7

9997

OVL

6

9996

SCH

5

9995

UIT

4

9994

IN

3

9993

DRK

2

9992

WEK

1

9991

---

Soorten Onderbrekingen

MachinefoutOngeldige instructieOngeoorloofde instructie

Asynch.Synch.Synch.

Programmafout (SO)

Synch.

Programmafout (OVL)

Synch.

Schijfbestuurder

Asynch.

Schermbestuurder

Asynch.

Toetsenbordbestuurder

Asynch.

Drukkerbestuurder

Asynch.

Wekker

Asynch.

Supervisie-oproep

Synch.

soorten onderbrekingen3

Nr= Prio

PO-vector

Oorzaak

Masker

Type

9

9999

MFT

8

9998

SPL

7

9997

OVL

6

9996

SCH

5

9995

UIT

4

9994

IN

3

9993

DRK

2

9992

WEK

1

9991

---

Soorten Onderbrekingen

MachinefoutOngeldige instructieOngeoorloofde instructie

Asynch.Synch.Synch.

Programmafout (SO)

Synch.

Programmafout (OVL)

Synch.

Schijfbestuurder

Asynch.

Schermbestuurder

Asynch.

Toetsenbordbestuurder

Asynch.

Drukkerbestuurder

Asynch.

Wekker

Asynch.

Supervisie-oproep

Synch.

verbieden uitstellen van programma onderbrekingen
Verbieden/Uitstellen van programma-onderbrekingen
  • Onderbreking onmogelijk
    • PO-vlag kan niet gezet worden
  • Onderbreking tijdelijk opschorten
    • Niet ingaan op PO-aanvraag
  • Mechanismen:
    • Maskers
    • Prioriteiten
maskers

ONV

H/U

S/P

CC

OVI

SOI

BT

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

Maskers

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

Schijf Masker

Invoer Masker

Uitvoer Masker

Wekker Masker

Globaal Masker

Drukker Masker

Overloop Masker

Machinefout Masker

Stapeloverloop Masker

Globaal Programma Fout Masker

0: PO-aanvraag toegelaten (enabled)

1: PO-aanvraag niet toegelaten (disabled)

maskers1

ONV

H/U

S/P

CC

OVI

SOI

BT

Maskers

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

G==1  geen enkele PO-aanvraag toegelaten

maskers2

ONV

H/U

S/P

CC

OVI

SOI

BT

Maskers

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

GPF==1  PO7 en PO8 genegeerd (ignored)

(vlaggen kunnen niet gezet worden)

maskers3

ONV

H/U

S/P

CC

OVI

SOI

BT

Maskers

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

Masker == 1  PO-aanvraag uitgesteld (pending)

maskers4
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
maskers5
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 WEK

MKH DRK

TSO DRK

VSP POS,PO_AANGEVRAAGD

MKH SPL

TSM G

VSP NUL,G_MASKER_AF

prioriteiten

ONV

H/U

S/P

CC

OVI

SOI

BT

G

GPF

WEK

DRK

IN

UIT

SCH

OVL

SPL

MFT

Prioriteiten

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.

prioriteiten1
Prioriteiten

Voorbeelden:

  • ONV == 4
    • ? PO-aanvraag Wekker
    • ? PO-aanvraag Schijf
    • ? PO-aanvraag Machinefout
  • ONV == 9
  • Toekenning prioriteiten?

UITGESTELD

TOEGESTAAN

TOEGESTAAN

Geen enkele PO TOEGESTAAN

  • Prio(dringend) > Prio(minder dringend)
  • Prio(snel apparaat) > Prio(traag apparaat)
bevelencyclus1
stop = 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 */

Bevelencyclus

Indien PTW[11] == 1 PO_vlag[7] en PO_vlag[8] kunnen niet gezet worden

po behandelingsroutine
PO-behandelingsroutine
  • Elk soort programma-onderbreking apart programma (= PO-behandelingsroutine)
  • Engels: Interrupt (service) routine

HIA.w R1,10

HIA.w R2,50

OPT 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
kto instructie
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
voorbeeld12

PO-routine-9

ONV=9

PO-routine-8

PO-routine-7

ONV=7

KTO

PO-routine-6

KTO

PO-routine-5

PO-routine-4

ONV=4

PO-routine-3

ONV=4

PO-routine-2

KTO

PO-routine-1

Gebruikers-programma

ONV=0

ONV=0

tijd

PO5

PO4

PO7

PO9

Voorbeeld

Masker PO5 = 1

Andere maskers = 0

ONV=4

po behandelingsroutine1
PO-behandelingsroutine

| Bewaar inhouden van accumulatoren

PO_routineN:

| Hier begint de eigenlijke behandeling

| Herstel de inhouden v/d accumulatoren

| Keer terug

KTO

BIG R0,BEWAAR+0

BIG R1,BEWAAR+1

BIG R9,BEWAAR+9

HIA R0,BEWAAR+0

HIA R1,BEWAAR+1

HIA R9,BEWAAR+9

BEWAAR: RESGR 10

geprogrammeerde programma onderbreking
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)
drama machine

6299999999

0000009990

0

H/U

S/P

CC

OVI

SOI

BT

0000009990

1

1

1

1

1

1

1

1

1

1

0000009990

0000009990

0000009990

0000009990

0000009990

0000009990

0000009990

DRAMA - machine
  • Opstarten van DRAMA-machine

9990

9991

9992

9993

9994

9995

9996

9997

9998

9999

KTO

drama machine1
DRAMA - machine
  • Voorbeeld: PO voor drukker (PO3) toelaten

9990

9991

9992

9993

9994

9995

9996

9997

9998

9999

6299999999

0000009990

0

H/U

S/P

CC

OVI

SOI

BT

0000009990

1

1

1

1

1

1

1

1

1

1

0000009990

0000009990

PO_DRK: …

KTO

HIA.a R0,PO_DRK

0000009990

BIG R0,9990+3

0000009990

0000009990

0000009990

9123

0000009990

drama machine2
DRAMA - machine
  • Voorbeeld: PO voor drukker (PO3) toelaten

9990

9991

9992

9993

9994

9995

9996

9997

9998

9999

6299999999

0000009990

0

H/U

S/P

CC

OVI

SOI

BT

0000009990

1

1

1

1

1

1

1

1

1

1

0000009123

0000009990

HIA.a R0,PO_DRK

BIG R0,9990+3

PO_DRK: …

KTO

0000009990

MKL DRK

0000009990

0000009990

0000009990

9123

0000009990

drama machine3
DRAMA - machine
  • Voorbeeld: PO voor drukker (PO3) toelaten

9990

9991

9992

9993

9994

9995

9996

9997

9998

9999

6299999999

0000009990

0

H/U

S/P

CC

OVI

SOI

BT

0000009990

1

1

1

0

1

1

1

1

1

1

0000009123

0000009990

HIA.a R0,PO_DRK

BIG R0,9990+3

MKL DRK

PO_DRK: …

KTO

0000009990

0000009990

MKL G

0000009990

0000009990

9123

0000009990

drama machine4
DRAMA - machine
  • Voorbeeld: PO voor drukker (PO3) toelaten

9990

9991

9992

9993

9994

9995

9996

9997

9998

9999

6299999999

0000009990

0

H/U

S/P

CC

OVI

SOI

BT

0000009990

0

1

1

0

1

1

1

1

1

1

0000009123

0000009990

HIA.a R0,PO_DRK

BIG R0,9990+3

MKL DRK

MKL G

PO_DRK: …

KTO

0000009990

0000009990

0000009990

0000009990

9123

0000009990

cursustekst
Cursustekst
  • Hoofdstuk 4: pag. 94  pag. 123
ad