De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Werking van de computer besturen/regelen In geheugen geladen bij opstarten v/d computer Voordelen:  Eenvoudiger.

Verwante presentaties


Presentatie over: "1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Werking van de computer besturen/regelen In geheugen geladen bij opstarten v/d computer Voordelen:  Eenvoudiger."— Transcript van de presentatie:

1 1 SOCS Hoofdstuk 4 Besturingssystemen

2 2 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 3 Besturingssystemen Hardware Besturingssysteem Toepassingen Gebruikers

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

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

6 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 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 8 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten

9 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 0090 Conditiecode = 2 Oei, Overloop! …

10 10 Programmatoestandswoord 20 decimale cijfer Verschillende velden  PTW 3 = CC, PTW 6..9 = BT, … H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT Conditie- code Bevelen- teller Overloop- indicator Stapel- overloop- indicator

11 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 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 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(); }... } 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:… CC? a, c  R1 b  R0

14 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(); }... } 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:… Overloop? Geen informatie over aantal of bereik van getallen

15 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(); }... } 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:… Overloop? Geen informatie over aantal of bereik van getallen

16 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(); }... } 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:… Stapel- overloop? Geen informatie over aantal of bereik van getallen

17 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(); }... } 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:… Overloop? Stapel- overloop? Geen informatie over aantal of bereik van getallen

18 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 19 Overloop Overloop = resultaat kan niet meer voorgesteld worden Voorbeeld: HIA R1,a OPT R1,b VSP OVL,OVLP … OVLP:… = = –  Onmiddellijk testen na berekening  Zoniet:  OVI  Nieuwe waarde  Beter:  Automatisch onderbreken   Minder geheugen   Sneller uitvoeren Elektronica reeds aanwezig!

20 20 Overloop Rekenwerk Oeps! Overloop!!! Stop de uitvoering!!! Controle = –

21 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 22 Oneindige Lus int a, b, c; main() { a = 0; b = 17; while (a < b) c += 10;... } | a  R1 | b  R2 HIA.wR1,0 HIA.wR2,17 LUS:VGLR1,R2 VSPGRG,EINDE OPT.wR3,10 SPRLUS EINDE:…

23 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 24 Programma-onderbreking Uitvoering van een programma onderbreken + uitvoering van ander programma beginnen

25 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 26 Programma-onderbreking Boek lezenBezoeker ontvangen Toestand bewaren Toestand herstellen Bezoeker weg

27 27 Programma-onderbreking Verschillende oorzaken …

28 28 Programma-onderbreking H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT Onderbrekingsvlaggen CVO (processor) Onderbreking gevraagd! 1

29 29 Programma-onderbreking Op elk ogenblik aangevraagd (asynchroon) Eventueel ingaan na uitvoering huidige instructie Bevelencyclus  Ophalen bevel BT  BT + 1  Analyseren bevel  Functiecode  Operanden  Uitvoeren bevel  Programmaonderbreking aangevraagd?  Toestand bewaren  Ander programma uitvoeren

30 30 Programma-onderbreking Toestand bewaren  Toestand = BT, CC, OVI, SOI, …  Op vaste plaats  Op stapel   Eerste deel van PTW: PTW 0..9  Risico! Ander programma uitvoeren  BT  Nieuwe waarde  Vaste waarde of afhankelijk onderbreking  Adres vast bepaald of instelbaar  “Programma-onderbrekingsvectoren”  DRAMA: k (k = nummer PO) PO 4

31 31 Voorbeeld BIG R3,RES SPR VERDER RES:RESGR 1 VERDER:HIA.w R2,0 … … PO_ROUT4:BIG R0,BEWAAR … PO-vectoren R9 Stapel

32 32 Voorbeeld Processor R BR BT 0 SOI 0 OVI 2CC R R Onderbrekingsvlaggen Ophalen

33 33 Voorbeeld Processor 0 1 BT 0SOI R BR 0OVI 2CC R R Onderbrekingsvlaggen Analyseren, Uitvoeren

34 34 Voorbeeld Processor 0 1 BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen PO aangevraagd?

35 35 Voorbeeld Processor 0 1 BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen Ophalen

36 36 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen Analyseren, Uitvoeren

37 37 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen PO aangevraagd?

38 38 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen PO aangevraagd? Push(PTW 0..9 )

39 39 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen PO aangevraagd? PO-vlag[4]  0

40 40 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen PO aangevraagd? PTW 6..9  …

41 41 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen Ophalen

42 42 Voorbeeld Processor BT 0SOI R BR 0OVI 1CC R R Onderbrekingsvlaggen Enz …

43 43 Soorten Onderbrekingen 1.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

44 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 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 MFTMachinefout Ongeldige instructie Ongeoorloofde instructie TypeMaskerOorzaakPO- vector Nr = Prio

46 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 MFTMachinefout Ongeldige instructie Ongeoorloofde instructie TypeMaskerOorzaakPO- vector Nr = Prio

47 47 Verbieden van programma- onderbrekingen

48 48 Uitstellen van programma- onderbrekingen Wie eerst?

49 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 50 Maskers H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT Globaal Masker Globaal Programma Fout Masker Wekker Masker Drukker Masker Invoer Masker Uitvoer Masker Schijf Masker Overloop Masker Stapeloverloop Masker Machinefout Masker 0: PO-aanvraag toegelaten (enabled) 1: PO-aanvraag niet toegelaten(disabled)

51 51 Maskers G==1  geen enkele PO-aanvraag toegelaten H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT

52 52 Maskers GPF==1  PO 7 en PO 8 genegeerd(ignored) (vlaggen kunnen niet gezet worden) H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT

53 53 Maskers Masker == 1  PO-aanvraag uitgesteld(pending) H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT

54 54 Maskers Speciale instructies  MKH xxx (Masker Hoog)  PTW xxx  1  MKL xxx (Masker Laag)  PTW xxx  0  TSM xxx (Test Masker)  CC  PTW xxx  TSO xxx (Test Onderbrekingsvlag)  CC  PO-vlag xxx

55 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 WEK MKH DRK MKH SPL TSO DRK VSP POS,PO_AANGEVRAAGD TSM G VSP NUL,G_MASKER_AF

56 56 Prioriteiten H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT Alleen op PO-aanvragen met prioriteit hoger dan ONV kan ingegaan worden.

57 57 Prioriteiten Voorbeelden:  ONV == 4  ? PO-aanvraag Wekker  ? PO-aanvraag Schijf  ? PO-aanvraag Machinefout  ONV == 9  Toekenning prioriteiten? PrioOorzaak 9Machinefout Ongeldige instructie Ongeoorloofde instr. 8Programmafout (SO) 7Programmafout (OVL) 6Schijfbestuurder 5Schermbestuurder 4Toetsenbordbest. 3Drukkerbestuurder 2Wekker 1Supervisie-oproep UITGESTELD TOEGESTAAN Geen enkele PO TOEGESTAAN Prio(dringend) > Prio(minder dringend) Prio(snel apparaat) > Prio(traag apparaat)

58 58 Bevelencyclus 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) { /* PO k */ 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 59 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

60 60 KTO-instructie Na programma-onderbreking  terug verder met onderbroken programma n KTO  Keer Terug van Onderbreking  Beëindigt de programma-onderbreking  PTW 0..9  pop()  BT terug de oorspronkelijke waarde  CC, OVI, SOI opnieuw oorspronkelijke waarde  … Vergelijk KTG  Alleen BT hersteld  PTW 6..9  pop() % 10000

61 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 ONV=4 ONV=9 ONV=4 ONV=7 ONV=4 ONV=0 KTO PO 4 PO 9 PO 7 PO 5 Masker PO 5 = 1 Andere maskers = 0

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

63 63 Geprogrammeerde programma- onderbreking PO-vlag[1] geplaatst via speciale instructie  OND  (Onderbreking)   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 64 DRAMA - machine Opstarten van DRAMA-machine H/US/PCC0OVISOI BT KTO

65 65 DRAMA - machine Voorbeeld: PO voor drukker (PO 3 ) toelaten H/US/PCC0OVISOI BT … PO_DRK:… … KTO 9123 BIG R0, HIA.a R0,PO_DRK

66 66 DRAMA - machine Voorbeeld: PO voor drukker (PO 3 ) toelaten H/US/PCC0OVISOI BT HIA.a R0,PO_DRK BIG R0, … PO_DRK:… … KTO MKL DRK 9123

67 67 DRAMA - machine Voorbeeld: PO voor drukker (PO 3 ) toelaten H/US/PCC0OVISOI BT HIA.a R0,PO_DRK BIG R0, MKL DRK … PO_DRK:… … KTO MKL G 9123

68 68 DRAMA - machine Voorbeeld: PO voor drukker (PO 3 ) toelaten H/US/PCC0OVISOI BT HIA.a R0,PO_DRK BIG R0, MKL DRK MKL G … PO_DRK:… … KTO 9123

69 69 Cursustekst Hoofdstuk 4: pag. 94  pag. 123


Download ppt "1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Werking van de computer besturen/regelen In geheugen geladen bij opstarten v/d computer Voordelen:  Eenvoudiger."

Verwante presentaties


Ads door Google