1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord...

73
1 SOCS Hoofdstuk 4 Besturingssysteme n

Transcript of 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord...

Page 1: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

1

SOCS

Hoofdstuk 4

Besturingssystemen

Page 2: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

2

Inhoud

Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten

Page 3: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

3

Inhoud

Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer

Randapparaten In- en uitvoer-organisatievormen Randapparaat-besturingsroutines (stuurprogramma’s)

Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten

Page 4: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

4

Invoer en uitvoer

Besturingssysteem Besturen van Randapparaten

Opdrachten geven, PO opvangen, fouten … Gebruikersprogramma

Hoog-niveau opdrachten LEZ (= complexe operatie)

Toetsaanslagen code Blanko’s, return-toets, ‘–’, Backspace Omzetten naar decimaal getal

(ev. 10-complement) Tonen op scherm (‘echo’)

Page 5: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

5

Randapparaten

(Mechanisch gedeelte) Elektronisch gedeelte

= Bestuurder (Controller, Adapter) Insteekkaart Vaak meerdere apparaten besturen

Page 6: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

6

Randapparaten

CVOSchijf

bestuurder

Bestuurder

van drukker

GeheugenGeheugen

Geheugen-

bestuurder

BufferBuffer

Speciale RegistersSpeciale Registers

Popdracht/geg.Ptoestand

Bus

Poorten

Page 7: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

7

Randapparaten

Toestandspoort (Pt) Toestand v. (bestuurder) randapparaat

(LEZEN) Opdracht en gegevenspoort (Pog)

Opdracht aan bestuurder geven (SCHRIJVEN)

Gegevens van (bestuurder) apparaat ophalen (LEZEN)

Page 8: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

8

Randapparaten

Lezen/schrijven uit/in “poorten”Twee methodes: Speciale instructies

Twee verschillende adresruimtes:• Geheugenregisters• Poorten van randapparaten

Inpassing in het geheugen Slechts 1 adresruimte

Page 9: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

9

Randapparaten

Speciale instructies INV Ri,Pxxxx (INVoer)

Ri Pxxxx UTV Rj,Pyyyy (UiTVoer)

Pyyyy Rj Pxxxx P0, P1, …, P9998, P9999

8199i9xxxx

8299j9yyyy

Afspraak: Pt : t = even, Pog = Pt+1

Page 10: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

10

Randapparaten

Inpassing in het geheugen Poorten hebben een geheugenadres

(vb. 9900..9909) Voordeel: geen speciale instructies nodig

HIA Ri,xxxx BIG Rj,yyyy

Nadeel: minder geheugen beschikbaar

Page 11: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

11

Randapparaten

Lezen/Schrijven speciale registers (poorten) Inpassing in het centrale geheugen

00000000

……

98999899

99009900

99019901

……

99099909

99109910

……

99999999

P0P0

P1P1

P9P9

Geheugenregisters

Geheugenregisters

Poorten

Page 12: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

12

Randapparaat

Toestandspoort (Pt) Toestand van het randapparaat Alleen uitlezen

Waarde Naam Verklaring

0000000000 Klaar Bestuurder klaar voor nieuwe opdracht

0000000001 Bezig Toestel is bezig met uitvoering van een opdracht

0000000002 Gegevens Er zijn gegevens beschikbaar in de gegevenspoort

9999999999 Fout Er heeft zich een fout voorgedaan

Page 13: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

13

Randapparaat

Klaar

Gegevens

BezigFout

Fout

Fout

Fout

Opdracht

Opdracht klaar

(niet-invoer)

Gegevens beschikbaar

(zonder opdracht)

Laatste gegevens

gelezen

Initialiseer

Initialiseer

Geg

evens

besch

ikbaar

Geg

evens

uitg

elezen

PO-aanvraag

Page 14: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

14

Randapparaat

Fout: Onbestaande/foutieve opdracht Opdracht gegeven terwijl apparaat nog bezig is Apparaat heeft nieuwe gegevens terwijl

vorige nog niet uitgelezen zijn Fout in het apparaat:

Vb. papierlade leeg, inktpatroon leeg, …

Page 15: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

15

Randapparaat

Sommige overgangen: PO-aanvraag Interventie van het CVO gewenst

CVO moet gegevens inlezen(beschikbaar zonder opdracht)

GegevensKlaar

CVO moet gegevens inlezen

(beschikbaar na opdracht)

GegevensBezig

CVO mag nieuwe opdracht geven

KlaarBezig

CVO moet fout herstellen(herinitialisatie)

Fout???

VerklaringEind-toestand

Begin-toestand

Page 16: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

16

Randapparaat

INV R0,P2

UTV R1,P3

INV R2,P1

UTV R3,P0

0000000002P0

0000000088P1

0000001000

0000000050

1000000020

R0R0

R1

RR22

9999999999 RR33

0000000000P2

0000000000P3

INV R0,P2Pt

Pog

Page 17: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

17

Randapparaat

INV R0,P2

UTV R1,P3

INV R2,P1

UTV R3,P0

0000000002P0

0000000088P1

0000001000

0000000050

1000000020

R0R0

R1

RR22

9999999999 RR33

0000000000P2

0000000000P3

UTV R1,P3

0000000000

Page 18: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

18

Randapparaat

INV R0,P2

UTV R1,P3

INV R2,P1

UTV R3,P0

0000000002P0

0000000088P1

0000000000

0000000050

1000000020

R0R0

R1

RR22

9999999999 RR33

0000000000P2

1000000020P3INV R2,P1

0000000001

Page 19: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

19

Randapparaat

INV R0,P2

UTV R1,P3

INV R2,P1

UTV R3,P0

0000000002P0

0000000088P1

0000000000

0000000050

1000000020

R0R0

R1

RR22

9999999999 RR33

0000000001P2

1000000020P3

UTV R3,P0

0000000000

0000000000

Niet toegelaten!(P0 = toestandspoort)

0000000088

Page 20: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

20

Lezen/Schrijven poorten

Twee C-functies: int getPort(int poortnr)

void putPort (int poortnr, int waarde) Voorbeeld:

a = getPort(0); // lees poort P0 in

putPort (1, b); // kopieer b in poort P1 Constanten:

#define KLAAR 0

#define BEZIG 1

#define GEG 2

#define FOUT -1

CC

Page 21: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

21

PO-routine

PO-routine voorstellen als ( C): interrupt po_routine() {

}

CC

Bewaar accumulatoren

Herstel accumulatoren

KTO

Niet te Niet te schrijven schrijven in Cin C

i.p.v. KTGi.p.v. KTG

Page 22: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

22

In- en uitvoer organisatievormen

Geprogrammeerd(met actief wachten)

M.b.v. programma-onderbrekingen D.m.v. directe geheugentoegang M.b.v. speciale invoer/uitvoer-processoren M.b.v. satelliet-computers

Page 23: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

23

Geprogrammeerde in/uitvoer

Alle gegevenstransport via de processor Processor synchroniseert met randapparaat

Nieuwe opdracht mag slechts gegeven als toestand = KLAAR

Gegevens kunnen slechts uitgelezen worden als toestand = GEGEVENS

Wachten tot juiste toestand Actief wachten = continu testen

Page 24: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

24

Geprogrammeerde in/uitvoer

int Pt, Pog, opdracht, geg;

Pt = 6; Pog = 7;

opdracht = …;

/* geven van opdracht */

while (getPort(Pt) != KLAAR);

putPort(Pog, opdracht);

/* lezen van gegevens */

while (getPort(Pt) != GEG);

geg = getPort(Pog);

Page 25: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

25

Geprogrammeerde in/uitvoer

int Pt, Pog, opdracht, geg;

Pt = 6; Pog = 7;

opdracht = …;

/* geven van opdracht */

while (getPort(Pt) != KLAAR);

putPort(Pog, opdracht);

/* lezen van gegevens */

while (getPort(Pt) != GEG);

geg = getPort(Pog);

Actief wachten

Actief wachten

Page 26: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

26

Geprogrammeerde in/uitvoer

CVO

Randapparaat klaar bezig gegevens

Actief Actief WachtenWachten

Opdracht gevenOpdracht geven

Gegevens inlezenGegevens inlezen

Act

ief

Act

ief

Wach

teW

ach

tenn

Toestand uitlezen

Page 27: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

27

Geprogrammeerde in/uitvoer

int Pt, Pog, opdracht, geg;

Pt = 6; Pog = 7;

opdracht = …;

/* geven van opdracht */

while (getPort(Pt) != KLAAR);

putPort(Pog, opdracht);

/* lezen van gegevens */

while (getPort(Pt) != GEG);

geg = getPort(Pog);

MEVA Pt,6MEVA Pog,7MEVA KLAAR,0MEVA GEG,2

LUS1: INV R0,P<Pt>VGL.w R0,<KLAAR>VSP NGEL,LUS1HIA R0,opdUTV R0,P<Pog>

LUS2: INV R0,P<Pt>VGL.w R0,<GEG>VSP NGEL,LUS2INV R0,P<Pog>…

opd: …

Page 28: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

28

Geprogrammeerde in/uitvoer

MEVA Pt,6MEVA Pog,7MEVA KLAAR,0MEVA GEG,2

LUS1: INV R0,P<Pt>VGL.w R0,<KLAAR>VSP NGEL,LUS1HIA R0,opdUTV R0,P<Pog>

LUS2: INV R0,P<Pt>VGL.w R0,<GEG>VSP NGEL,LUS2INV R0,P<Pog>…

opd: …

Actief wachten

Actief wachten

Page 29: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

29

Geprogrammeerde in/uitvoer

Voorbeeld: Scherm

Toestandspoort = P2; Opdrachtpoort = P3

Opdracht Betekenis

1000000ccc Druk een letter af op het schermccc: ASCII voorstelling van de letter

Page 30: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

30

Geprogrammeerde in/uitvoer

char zone[100] = { ‘v’, … };

int n = 100;

int idx = 0;

int cmd;

do {

while (getPort(2) != KLAAR);

cmd = 1000000000 + zone[idx++];

putPort (3, cmd);

} while (idx < n);

HIA.w R2,0LUS: INV R0,P2

VGL.w R0,<KLAAR>VSP NGEL,LUSHIA R1,OPDROPT R1,ZONE(R2+)UTV R1,P3VGL R2,NVSP KL,LUS…

OPDR: 1000000000N: 100ZONE: 0000000086

0000000111…

Page 31: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

31

Geprogrammeerde in/uitvoer

HIA.w R2,0LUS: INV R0,P2

VGL.w R0,<KLAAR>VSP NGEL,LUSHIA R1,OPDROPT R1,ZONE(R2+)UTV R1,P3VGL R2,NVSP KL,LUS…

OPDR: 1000000000N: 100ZONE: 0000000086

0000000111…

Actief wachten

Nuttige bevelen

Page 32: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

32

Geprogrammeerde in/uitvoer

Performantie

Actief wachtenActief wachten

Eerste letterEerste letter

Tweede letterTweede letter

Actief wachtenActief wachten Actief wachtenActief wachten

Derde letterDerde letter

Scherm: 1000 tekens/sScherm: 1000 tekens/sDrama: 1 MIPSDrama: 1 MIPS

1 ms1 ms5 5 ss

Nuttig:Nuttig: 5/1000 = 0,5 %5/1000 = 0,5 %

Page 33: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

33

Geprogrammeerde in/uitvoer

100 letters 100 ms 1 MIPS computer: 0,5 % nuttig gebruik CVO 10 MIPS computer: 0,05 % nuttig gebruik 100 MIPS computer: 0,005% nuttig gebruik …

Page 34: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

34

Geprogrammeerde in/uitvoer

Voorbeeld 2: inlezen van toetsaanslagen Geen opdracht nodig Toetsaanslag:

Pt == GEGEVENS

Aanduiding toets in Pog

Performantie? Gebruiker: 5 letters/s 1 letter / 200 ms 1 MIPS machine Inlezen van toetsaanslag + lus < 10 bevelen Rendement < 0,005 %

Page 35: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

35

Programma-onderbrekingen

CVO test niet voortdurend de toestandspoort Bestuurder van randapparaat:

Meldt aan CVO wanneer klaar met opdracht, gegevens beschikbaar, fout, …

Geen actief wachten meer! Toepassing: gegevensdebiet eerder laag Zelfde voorbeeld:

Scherm 100 letters afbeelden 1ste letter via vorige methode

Page 36: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

36

Programma-onderbrekingen

char zone[100] = { ‘v’, … };int n = 100;int idx = 0;main (){

/* eerste letter */int cmd;while (getPort(2) != KLAAR);cmd = 1000000000 +

zone[idx++];putPort(3, cmd);/* doe iets anders */…

}

/* volgende letters */interrupt po_rout4 (){

int cmd;/* bewaar accumulatoren */if (getPort(2) == KLAAR) {

if (idx < n) {cmd = 1000000000 +

zone[idx++];putPort (3, cmd);

}} else { /* fout */ }/* herstel accumulatoren */

}

Page 37: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

37

Programma-onderbrekingen

interrupt po_rout4 (){

int cmd;/* bewaar accumulatoren */if (getPort(2) == KLAAR) {

if (idx < n) {cmd = 1000000000 +

zone[idx++];putPort (3, cmd);

}} else { /* fout */ }/* herstel accumulatoren */

}

PO_R4: BIG R0,BEWAARBIG R5,BEWAAR+1BIG R6,BEWAAR+2INV R0,P<Pt>VGL.w R0,<KLAAR>VSP NGEL,FOUTHIA R6,INDEXVGL R5,AANTALVSP GEL,EINDEHIA R5,OPDROPT R5,ZONE(R6+)UTV R5,P<Pog>BIG R6,INDEX

EINDE: HIA R0,BEWAAR…KTO

Page 38: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

38

Programma-onderbrekingen

PO_R4: BIG R0,BEWAARBIG R5,BEWAAR+1BIG R6,BEWAAR+2INV R0,P<Pt>VGL.w R0,<KLAAR>VSP NGEL,FOUTHIA R6,INDEXVGL R5,AANTALVSP GEL,EINDEHIA R5,OPDROPT R5,ZONE(R6+)UTV R5,P<Pog>BIG R6,INDEX

EINDE: HIA R0,BEWAAR…KTO

17 bevelen / letter

Page 39: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

39

Programma-onderbrekingen

CVO gebruikersprogr. PO

Schermbestuurder klaar bezig

Opdracht geven

Nuttig werkNuttig werkToestand uitlezen

Letter afbeelden

CVO en Bestuurderbeide bezig

Page 40: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

40

Programma-onderbrekingen

Performantie Extra overhead door PO

Bewaar R0, R5, R6 … Herstel R0, R5, R6 Index in geheugen bewaren …

17 instructies / letter 17 s Scherm: 1 ms / letter Overige tijd: 983 s besteden aan de uitvoering

van een ander programma = ± 983 instructies!

Page 41: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

41

Geprogrammeerde in/uitvoer

Performantie

Iets andersIets anders

Eerste letterEerste letter

Tweede letterTweede letter

Derde letterDerde letter

Scherm: 1000 tekens/sScherm: 1000 tekens/sDrama: 1 MIPSDrama: 1 MIPS

1 ms1 ms17 17 ss

Iets andersIets anders Iets andersIets anders

Nuttig werk!!!Nuttig werk!!!

Page 42: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

42

Programma-onderbrekingen

Niet voor apparaten met hoog debiet Na KTO, onmiddellijk een nieuwe PO Geen tijd om iets anders te doen Risico dat PO-routine te lang duurt en

gegevens verloren gaan

Page 43: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

43

Transport via CVO

CVOSchijf

bestuurder

Toestenbord-

bestuurder

GeheugenGeheugen

Geheugen-

bestuurder

Page 44: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

44

Transport via CVO

CVOSchijf

bestuurder

Scherm-bestuurde

r

GeheugenGeheugen

Geheugen-

bestuurder

Page 45: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

45

Directe geheugentoegang

DGT Engels: DMA (Direct Memory Access) Optimisatie van vorige schema

CVO geeft opdracht aan bestuurder Bestuurder zorgt zelf voor het transport van/naar

het geheugen Na transport: Bestuurder PO-aanvraag

Page 46: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

46

Directe geheugentoegang

CVOSchijf

bestuurder

Bestuurder

van drukker

GeheugenGeheugen

Geheugen-

bestuurder

Lezen …

Opdracht

Transport

Page 47: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

47

Directe geheugentoegang

CVOSchijf

bestuurder

Bestuurder

van drukker

GeheugenGeheugen

Geheugen-

bestuurder

Schrijven …

Opdracht

Transport

Page 48: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

48

Directe geheugentoegang

KamSpoor

SectorCilinder(= alle sporen voor bep. positie kam)

Lezen/Schrijven: 2 stappena) Positioneer kam (+ selecteer kop)b) Lees/Schrijf # opeenvolgende sectoren

Schijf:

Page 49: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

49

Directe geheugentoegang

Voorbeeld: DRAMA-Schijf

Toestandspoort = P6; Opdrachtpoort = P7 300 cilinders elke cilinder: 40 sporen (40 koppen) elk spoor: 50 sectoren elke sector: 100 getallen van 10 cijfers

Alfanumerische informatie (3 cijfers/letter) Per sector 100 getallen 3 letters/getal

300 letters 1000 letters inlezen 4 opeenvolgende sectoren

Page 50: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

50

Directe geheugentoegang

Opdrachten voor de schijfbestuurder:

Opdracht Betekenis

100ttt0ccc Positioneer kam op cilinder ccc enactiveer lees/schrijfkop ttt

200lll0sss Lees lll opeenvolgende sectoren vanafsector sss

500000gggg gggg is het adres van de DGT-geheugenzone

Page 51: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

51

Directe geheugentoegang

int inlezen;main(){

/* positioneer kam */int cmd = 1000000000 +

kop * 10000 + cil;

while (getPort(6) != KLAAR);putPort (7, cmd);inlezen = 1;/* doe iets anders */…

}

MAIN: HIA R5,KOPVER R5,TDZDOPT R5,CILOPT R5,P_OPD

LUS: INV R0,P6VGL.w R0,<KLAAR>VSP NGEL,LUSUTV R5,P7| iets anders ……

TDZD: 10000KOP: 13CIL: 37P_OPD: 1000000000

Page 52: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

52

Directe geheugentoegang

interrupt po_rout6() {/* bewaar accumulatoren */if (getPort(6) == KLAAR) {

if (--inlezen == 0) lees( );else /* anders */ …

} else { /* fout */ … }/* herstel accumulatoren */

}void lees ( ){

/* geef &dgt_zone door */…/* geef lees opdracht */…

}

PO_R6: … | bewaar RiINV R0,P6VGL.w R0,<KLAAR>VSP NGEL,FOUTHIA R0,INLEZENAFT.w R0,1BIG R0,INLEZENVSP NNUL,ANDERSSBR LEESSPR EINDE

ANDERS: …EINDE: … | herstel Ri

KTOFOUT: …

Page 53: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

53

Directe geheugentoegang

void lees ( ) {/* geef & dgt_zone door */int cmd = 5000000000 +

(int) &zone;putPort(7,cmd);/* geef lees-opdracht */if (getPort(6) == KLAAR) {

cmd = 2000000000 +aantal * 10000 +sector;

putPort (7,cmd);} else { /* fout */ … }

}

LEES: HIA R5,D_OPDOPT.a R5,DGT_ZONEUTV R5,P7INV R0,P6VGL.w R0,<KLAAR>VSP NGEL,FOUTHIA R5,AANTALVER R5,TDZDOPT R5,SECTOROPT R5,L_OPDUTV R5,P7KTG

D_OPD: 5000000000L_OPD: 2000000000TDZD: 10000DGT_ZONE: RESGR 400…

Page 54: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

54

Directe geheugentoegang

CVO progr. PO

Schijfbest. klaar bezig

Lees-opdracht

Nuttig werkNuttig werk

Sectoren inlezen enin geheugen plaatsen

Positioneer

DGT-adresopdracht

Nuttig werkNuttig werk

CVO en Bestuurderbeide bezig

CVO en Bestuurderbeide bezig

Page 55: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

55

Directe geheugentoegang

CVOSchijf

bestuurder

Bestuurder

van drukker

GeheugenGeheugen

Geheugen-

bestuurder

Bus kan nietgelijktijdig gebruiktworden!

CVO of Bestuurder zalCVO of Bestuurder zalmoeten wachten tot anderemoeten wachten tot andereklaar is met geheugentoegang.klaar is met geheugentoegang.

Page 56: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

56

Directe geheugentoegang

Schijf: Geheugencyclus-diefstal

CVOCVO

GeheugenGeheugen

SchijfbestuurderSchijfbestuurder

L1 L2

L1 L2

S1

S1

S3

S3

S2

S2

L4

L4

CyclusdiefstalCyclusdiefstal

Page 57: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

57

Directe geheugentoegang

Grote computerinstallaties: Aparte gegevenspaden + gespreid geheugen

CPU

Schijfbestuurde

r

Geheugen Geheugen (module 1)(module 1)

Geheugen-

bestuurder

GeheugenGeheugen(module 2)(module 2)

Page 58: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

58

Directe geheugentoegang

Bestuurder heeft geen GEGEVENS-toestand

Klaar

BezigFout

FoutFout

Opdracht

InitialiseerOpdracht klaar

Page 59: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

59

Kanaalbestuurder!

Speciale in/uitvoer processoren

Lees …Schrijf ……

CVO

Kanaalbestuurder(Speciale I/U Processor)

Teveel tijd met

I/O bezig!

Lees …Schrijf ……

Page 60: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

60

Speciale in/uitvoer processoren

CVO

Klaar!Echte Rekenwerk

Page 61: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

61

Speciale in/uitvoer processoren

CVO

Kanaalbestuurde

r

Schijfbestuurde

r

Schijfbestuurde

r

Drukkerbestuurde

r

Drukkerbestuurde

r

Geheugen-

bestuurder

GeheugenGeheugen

MainframesMainframes

Specialein/uitvoerprocessor

Page 62: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

62

Speciale in/uitvoer processoren

CVO Lijst met uit te voeren opdrachten opstellen

= speciaal kanaalprogramma opstellen Doorspelen aan kanaalbestuurder

Kanaalbestuurder Voert het kanaalprogramma uit

Opdrachten geven aan bestuurders PO’s van bestuurders afhandelen (fouten, klaar, …) DGT verzorgen

Als volledige kanaalprogramma afgewerkt: PO aanvragen Voordeel:

CVO minder PO’s afhandelen CVO meer tijd voor ander werk

Page 63: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

63

Speciale in/uitvoer processoren

Opdrachten voor de kanaalbestuurder: Toestandpoort = P8, Opdracht/Geg.Poort = P9

Opdracht Betekenis

200000gggg Begin uitvoering van het kanaal- programma dat op adres gggg begint.

Page 64: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

64

Speciale in/uitvoer processoren

Kanaalprogramma: Eigen machinetaal Vaak lange bevelen (veel argumenten) Voorbeeld:

KAM BESTUURDER=7,SCHIJF=0,CIL=13,SPOOR=37

KAM BESTUURDER=8,SCHIJF=1,CIL=200,SPOOR=18

LEES BESTUURDER=7,SCHIJF=0,DGT_ADRES=6000,\ LENGTE=4,SECTOR=7

SCHRIJF BESTUURDER=8,SCHIJF=1,DGT_ADRES=7000,\

LENGTE=2,SECTOR=24

STOP

6677000370370013001366881101801802000200

33770000000060006000

90900004000400070007

44881100000080008000

90900002000200240024

99999999999999999999

Page 65: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

65

Speciale in/uitvoer processoren

int kanaalprogr[100];

main()

{

/* stel kanaalprogramma op */

int cmd = 2000000000 +

(int) &kanaalprogr;

while (getPort(8) != KLAAR);

putPort (9, cmd);

/* doe iets anders */

}

MAIN: … | kanaalprog.

HIA R5,K_OPD

OPT.a R5,KPROG

LUS: INV R0,P8

VGL.w R0,<KLAAR>

VSP NGEL,LUS

UTV R5,P9

| Doe iets anders

KPROG: RESGR 100

K_OPD: 2000000000

Page 66: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

66

Satellietcomputers

Front-end Computer verbonden met in/uitvoer apparaten

Back-end Computer verbonden met hulpgeheugens

Back-endBack-end Front-endFront-endHoofd-Hoofd-computercomputer

Page 67: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

67

Satellietcomputers

Front-end: Verbonden met 100-den terminals Invoer van toetsenborden:

Inlezen toetsaanslagen Lokaal editeren (backspace, …) Op scherm tonen wat ingetypt is Als lijn volledig doorsturen naar hoofdcomputer

Uitvoer naar schermen …

Page 68: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

68

Satellietcomputers

Voordelen: Minder PO-en

Hoofdcomputer meer tijd voor berekeningen Satellietcomputer hoeft niet snel te zijn

Voordelen t.o.v. kanaalbestuurder: Satellietcomputers grotere varieteit

randapparatuur Satellietcomputer ook gewone berekeningen Programmatuur eenvoudiger te vervangen Onafhankelijk van een fabrikant

Page 69: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

69

Satellietcomputers

Nadelen satellietcomputers Minder betrouwbaar Kans(defect) = Kans(Hoofdcomputer=defect)

+ Kans(Satellietcomputer=defect) Oplossing:

Reserve (backup) computers Onderhoudscontract

Idem voor kanaalbestuurders

Page 70: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

70

Stuurprogramma

Invoer/uitvoer = Complex Op hoogte van HOE besturen

Welke bevelen, bevelenopmaak, volgorde, … Weinig systematiek Soms standardisatie maar veel standaarden!

Indien met programma-onderbrekingen: Buffering + boekhouding

Tijdsafhankelijke problemen Verloren gaan van gegevens, …

Page 71: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

71

Stuurprogramma

Voor elk soort randapparaat: Stuurprogramma

(Engels: device driver) PO-routine

Device driver uitgevoerd als: Gebruikersprogramma invoer/uitvoer apparaat PO vanwege het randapparaat PO-routine nog werk? device driver

Onderdeel v/hBesturingsprogramma(Operating System)

Page 72: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

72

Geheugen

Besturings-Besturings-programmaprogramma

Stuurprogramma’s

Gebruikers-programma

PO-routine(schijf)

stuurprogramma(schijf)

PO-routine(scherm)

stuurprogramma(scherm)

PO-routine(klavier)

stuurprogramma(klavier)

PO-vectorenPO-vectoren

Niet rechtstreeks

Page 73: 1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie.

73

Cursustekst

Hoofdstuk 4: pag. 124 pag. 146