De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer  Randapparaten  In- en.

Verwante presentaties


Presentatie over: "1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer  Randapparaten  In- en."— Transcript van de presentatie:

1 1 SOCS Hoofdstuk 4 Besturingssystemen

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

3 3 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’)

4 4 Randapparaten (Mechanisch gedeelte) Elektronisch gedeelte  = Bestuurder (Controller, Adapter)  Insteekkaart  Vaak meerdere apparaten besturen

5 5 Randapparaten CVO Schijf bestuurder Bestuurder van drukker Geheugen Geheugen- bestuurder Buffer Speciale Registers P opdracht/geg. P toestand Bus Poorten

6 6 Randapparaten Toestandspoort (P t )  Toestand v. (bestuurder) randapparaat (LEZEN) Opdracht en gegevenspoort (P og )  Opdracht aan bestuurder geven (SCHRIJVEN)  Gegevens van (bestuurder) apparaat ophalen (LEZEN)

7 7 Randapparaten Lezen/schrijven uit/in “poorten” Twee methodes:  Speciale instructies  Twee verschillende adresruimtes: Geheugenregisters Poorten van randapparaten  Inpassing in het geheugen  Slechts 1 adresruimte

8 8 Randapparaten Speciale instructies  INV Ri,Pxxxx (INVoer) Ri  Pxxxx  UTV Rj,Pyyyy (UiTVoer) Pyyyy  Rj  Pxxxx  P0, P1, …, P9998, P9999 8199i9xxxx 8299j9yyyy  Afspraak: P t : t = even, P og = P t+1

9 9 Randapparaten Inpassing in het geheugen  Poorten hebben een geheugenadres (vb. 9900..9909)  Voordeel: geen speciale instructies nodig  HIA Ri,xxxx F BIG Rj,yyyy  Nadeel: minder geheugen beschikbaar

10 10 Randapparaten Lezen/Schrijven speciale registers (poorten)  Inpassing in het centrale geheugen 0000…989999009901…99099910…9999 P0 P1 P9 Geheugenregisters Poorten

11 11 Randapparaat Toestandspoort (P t )  Toestand van het randapparaat  Alleen uitlezen WaardeNaamVerklaring 0000000000 KlaarBestuurder klaar voor nieuwe opdracht 0000000001 BezigToestel is bezig met uitvoering van een opdracht 0000000002 GegevensEr zijn gegevens beschikbaar in de gegevenspoort 9999999999 FoutEr heeft zich een fout voorgedaan

12 12 Randapparaat Klaar Gegevens Bezig Fout Opdracht Opdracht klaar (niet-invoer) Gegevens beschikbaar (zonder opdracht) Laatste gegevens gelezen Initialiseer Gegevens beschikbaar Gegevens uitgelezen PO-aanvraag

13 13 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, …

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

15 15 Randapparaat INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 0000000002 P0 0000000088 P1 0000001000 0000000050 1000000020 … R0 R1 R2R2R2R2 9999999999 R3R3R3R3 0000000000 P2 0000000000 P3 INV R0,P2 PtPt P og

16 16 Randapparaat INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 0000000002 P0 0000000088 P1 0000001000 0000000050 1000000020 … R0 R1 R2R2R2R2 9999999999 R3R3R3R3 0000000000 P2 0000000000 P3 UTV R1,P3 0000000000

17 17 Randapparaat INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 0000000002 P0 0000000088 P1 0000000000 0000000050 1000000020 … R0 R1 R2R2R2R2 9999999999 R3R3R3R3 0000000000 P2 1000000020 P3 INV R2,P1 0000000001

18 18 Randapparaat INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 0000000002 P0 0000000088 P1 0000000000 0000000050 1000000020 … R0 R1 R2R2R2R2 9999999999 R3R3R3R3 0000000001 P2 1000000020 P3 UTV R3,P0 0000000000 Niet toegelaten! (P0 = toestandspoort) 0000000088

19 19 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 C

20 20 PO-routine PO-routine voorstellen als (  C): interrupt po_routine() { … } C Bewaar accumulatoren Herstel accumulatoren KTO Niet te schrijven in C i.p.v. KTG

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

22 22 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 (GEG)  Wachten tot juiste toestand  Actief wachten = continu testen

23 23 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); Alleen als bestuurder klaar is voor een opdracht! Alleen als gegevens beschikbaar zijn!

24 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); Actief wachten

25 25 Geprogrammeerde in/uitvoer CVO Randapparaat klaar bezig gegevens Actief Wachten Opdracht geven Gegevens inlezen Actief Wachten Toestand uitlezen

26 26 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,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 opd:…

27 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,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1:INVR0,P VGL.wR0, VSPNGEL,LUS1 opd:…

28 28 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,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1:INVR0,P VGL.wR0, VSPNGEL,LUS1 HIAR0,opd UTVR0,P opd:…

29 29 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,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1:INVR0,P VGL.wR0, VSPNGEL,LUS1 HIAR0,opd UTVR0,P LUS2:INV R0,P VGL.w R0, VSP NGEL,LUS2 opd:…

30 30 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,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1:INVR0,P VGL.wR0, VSPNGEL,LUS1 HIAR0,opd UTVR0,P LUS2:INV R0,P VGL.w R0, VSP NGEL,LUS2 INV R0,P … opd:…

31 31 Geprogrammeerde in/uitvoer MEVA Pt,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1:INVR0,P VGL.wR0, VSPNGEL,LUS1 HIAR0,opd UTVR0,P LUS2:INV R0,P VGL.w R0, VSP NGEL,LUS2 INV R0,P … opd:… Actief wachten

32 32 Geprogrammeerde in/uitvoer Voorbeeld:  Scherm  Toestandspoort = P2; Opdrachtpoort = P3 OpdrachtBetekenis … 1000000ccc Druk een letter af op het scherm ccc: ASCII voorstelling van de letter …

33 33 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,0 LUS: INV R0,P2 VGL.w R0, VSP NGEL,LUS HIA R1,OPDR OPT R1,ZONE(R2+) UTV R1,P3 VGL R2,N VSP KL,LUS … OPDR:1000000000 N:100 ZONE:0000000086 0000000111 … | cmd  R1; idx  R2

34 34 Geprogrammeerde in/uitvoer HIA.w R2,0 LUS:INV R0,P2 VGL.w R0, VSP NGEL,LUS HIA R1,OPDR OPT R1,ZONE(R2+) UTV R1,P3 VGL R2,N VSP KL,LUS … OPDR:1000000000 N:100 ZONE:0000000086 0000000111 … Actief wachten Nuttige bevelen

35 35 Geprogrammeerde in/uitvoer Performantie Actief wachten Eerste letter Tweede letter Actief wachten Derde letter Scherm: 1000 tekens/s Drama: 1 MIPS 1 ms 5  s Nuttig: 5/1000 = 0,5 %

36 36 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 …

37 37 Geprogrammeerde in/uitvoer Voorbeeld 2: inlezen van toetsaanslagen  Geen opdracht nodig  Toetsaanslag:  P t == GEGEVENS  Aanduiding toets in P og  Performantie?  Gebruiker: 5 letters/s  1 letter / 200 ms  1 MIPS machine  Inlezen toetsaanslag + organ. lus < 10 bevelen  Rendement < 0,005 %

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

39 39 Programma-onderbrekingen char zone[100] = { ‘v’, … }; int aantal = 100; int idx = 0; main () { int cmd; /* eerste letter */ while (getPort(2) != KLAAR); cmd = 1000000000 + zone[idx++]; putPort(3, cmd); /* doe iets anders */ … } /* volgende letters */ interrupt po_rout4 () { int cmd; /* bewaar accum. */ … if (getPort(2) == KLAAR) { if (idx < aantal) { cmd = 1000000000 + zone[idx++]; putPort (3, cmd); } } else { /* fout */ } /* herstel accum. */ … }

40 40 Programma-onderbrekingen interrupt po_rout4 () { int cmd; /* bewaar accumulatoren */ if (getPort(2) == KLAAR) { if (idx < aantal) { cmd = 1000000000 + zone[idx++]; putPort (3, cmd); } } else { /* fout */ } /* herstel accumulatoren */ } PO_R4:BIG R0,BEWAAR BIG R5,BEWAAR+1 BIG R6,BEWAAR+2 INV R0,P2 VGL.w R0, VSP NGEL,FOUT HIA R6,IDX VGL R6,AANTAL VSP GEL,EINDE HIA R5,OPDR OPT R5,ZONE(R6+) UTV R5,P3 BIG R6,IDX EINDE:HIA R0,BEWAAR … KTO | cmd  R5; idx  R6

41 41 Programma-onderbrekingen PO_R4:BIG R0,BEWAAR BIG R5,BEWAAR+1 BIG R6,BEWAAR+2 INV R0,P2 VGL.w R0, VSP NGEL,FOUT HIA R6,IDX VGL R6,AANTAL VSP GEL,EINDE HIA R5,OPDR OPT R5,ZONE(R6+) UTV R5,P3 BIG R6,IDX EINDE:HIA R0,BEWAAR … KTO 17 bevelen / letter

42 42 Programma-onderbrekingen CVO gebruikersprogr. PO Schermbestuurder klaar bezig Opdracht geven Nuttig werk Toestand uitlezen Letter afbeelden CVO en Bestuurder beide bezig

43 43 Programma-onderbrekingen Performantie  Extra overhead door PO  Bewaar R0, R5, R6 … Herstel R0, R5, R6  Index “Idx” 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!

44 44 Programma-onderbrekingen Performantie Iets anders Eerste letter Tweede letter Derde letter Scherm: 1000 tekens/s Drama: 1 MIPS 1 ms 17  s Iets anders Nuttig werk!!! 5  s

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

46 46 Transport via CVO CVO Schijf bestuurder Toestenbord- bestuurder Geheugen Geheugen- bestuurder 

47 47 Transport via CVO CVO Schijf bestuurder Scherm- bestuurder Geheugen Geheugen- bestuurder  

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

49 49 Directe geheugentoegang CVO Schijf bestuurder Bestuurder van drukker Geheugen Geheugen- bestuurder Lezen …  Opdracht Transport

50 50 Directe geheugentoegang CVO Schijf bestuurder Bestuurder van drukker Geheugen Geheugen- bestuurder Schrijven … Opdracht  Transport

51 51 Directe geheugentoegang Kam Spoor Sector Cilinder (= alle sporen voor bep. positie kam) Lezen/Schrijven: 2 stappen a)Positioneer kam (+ selecteer kop) b)Lees/Schrijf # opeenvolgende sectoren Schijf:

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

53 53 Directe geheugentoegang Opdrachten voor de schijfbestuurder: OpdrachtBetekenis … 100ttt0ccc Positioneer kam op cilinder ccc en activeer lees/schrijfkop ttt 200lll0sss Lees lll opeenvolgende sectoren vanaf sector sss 500000gggg gggg is het adres van de DGT- geheugenzone …

54 54 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,KOP VER R5,TDZD OPT R5,CIL OPT R5,P_OPD LUS:INV R0,P6 VGL.w R0, VSP NGEL,LUS UTV R5,P7 HIA.w R0,1 BIG R0,INLEZEN | doe iets anders … … TDZD:10000 KOP:13 CIL:37 P_OPD:1000000000

55 55 Directe geheugentoegang interrupt po_rout6() { /* bewaar accum. */ … if (getPort(6) == KLAAR) { if (--inlezen == 0) lees( ); else /* anders */ … } else { /* fout */ … } /* herstel accum. */ … } void lees ( ) { /* geef &dgt_zone door */ … /* geef lees opdracht */ … } PO_R6:… | bewaar Ri INV R0,P6 VGL.w R0, VSP NGEL,FOUT HIA R0,INLEZEN AFT.w R0,1 BIG R0,INLEZEN VSP NNUL,ANDERS SBR LEES SPR EINDE ANDERS:… EINDE:… | herstel Ri KTO FOUT:…

56 56 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_OPD OPT.a R5,DGT_ZONE UTV R5,P7 INV R0,P6 VGL.w R0, VSP NGEL,FOUT HIA R5,AANTAL VER R5,TDZD OPT R5,SECTOR OPT R5,L_OPD UTV R5,P7 KTG D_OPD:5000000000 L_OPD:2000000000 TDZD:10000 DGT_ZONE:RESGR 400 …

57 57 Directe geheugentoegang CVO progr. PO Schijfbest. klaar bezig Lees- opdracht Nuttig werk Sectoren inlezen en in geheugen plaatsen Positioneer DGT-adres opdracht Nuttig werk CVO en Bestuurder beide bezig

58 58 Directe geheugentoegang CVO Schijf bestuurder Bestuurder van drukker Geheugen Geheugen- bestuurder Bus kan niet gelijktijdig gebruikt worden! CVO of Bestuurder zal moeten wachten tot andere klaar is met geheugentoegang.

59 59 Directe geheugentoegang Schijf: Geheugencyclus-diefstal CVO CVO GeheugenSchijfbestuurder L1L2 L1L2 S1 S3 S2 L4 Cyclusdiefstal

60 60 Directe geheugentoegang Grote computerinstallaties:  Aparte gegevenspaden + gespreid geheugen CPU Schijf bestuurder Geheugen (module 1) Geheugen- bestuurder Geheugen (module 2)

61 61 Directe geheugentoegang Bestuurder heeft geen GEGEVENS-toestand Klaar Bezig Fout Opdracht Initialiseer Opdracht klaar

62 62 Kanaalbestuurder! Speciale in/uitvoer processoren Lees … Schrijf … … CVO Kanaalbestuurder (Speciale I/U Processor) Teveel tijd met I/O bezig! Lees … Schrijf … …

63 63 Speciale in/uitvoer processoren CVO Klaar! Echte Rekenwerk …

64 64 Speciale in/uitvoer processoren CVO Kanaal bestuurder Schijf bestuurder Drukker bestuurder Geheugen- bestuurder Geheugen Mainframes Speciale in/uitvoer processor

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

66 66 Speciale in/uitvoer processoren Opdrachten voor de kanaalbestuurder:  Toestandpoort = P8, Opdracht/Geg.Poort = P9 OpdrachtBetekenis … 200000gggg Begin uitvoering van het kanaal- programma dat op adres gggg begint. …

67 67 Speciale in/uitvoer processoren Kanaalprogramma:  Eigen machinetaal  Vaak lange bevelen (veel argumenten)  Voorbeeld: KAMBESTUURDER=7,SCHIJF=0,CIL=13,SPOOR=37 KAMBESTUURDER=8,SCHIJF=1,CIL=200,SPOOR=18 LEESBESTUURDER=7,SCHIJF=0,DGT_ADRES=6000,\ LENGTE=4,SECTOR=7 SCHRIJFBESTUURDER=8,SCHIJF=1,DGT_ADRES=7000,\ LENGTE=2,SECTOR=24 STOP 6700370013 6810180200 3700006000 9000040007 4810008000 9000020024 9999999999

68 68 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, VSP NGEL,LUS UTV R5,P9 | Doe iets anders … KPROG:RESGR 100 K_OPD:2000000000

69 69 Satellietcomputers Front-end  Computer verbonden met in/uitvoer apparaten Back-end  Computer verbonden met hulpgeheugens Back-endFront-end Hoofd- computer

70 70 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  …

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

72 72 Satellietcomputers Nadelen satellietcomputers  Minder betrouwbaar  Kans(defect) = Kans(Hoofdcomputer=defect) + Kans(Satellietcomputer=defect)  Oplossing:  Reserve (backup) computers  Onderhoudscontract Idem voor kanaalbestuurders

73 73 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, …

74 74 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/h Besturingsprogramma (Operating System)

75 75 Geheugen Besturings- programma Stuurprogramma’s Gebruikers- programma PO-routine (schijf) stuurprogramma (schijf) PO-routine (scherm) stuurprogramma (scherm) PO-routine (klavier) stuurprogramma (klavier) PO-vectoren Niet rechtstreeks

76 76 Cursustekst Hoofdstuk 4: pag. 124  pag. 146


Download ppt "1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer  Randapparaten  In- en."

Verwante presentaties


Ads door Google