1 / 69

SOCS

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

chad
Download Presentation

SOCS

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  10. 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

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

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

  15. 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

  16. 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

  17. 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

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

  20. 4.000.000.00 +1.000.000.000 = –5.000.000.000 Overloop Oeps! Overloop!!! Stop de uitvoering!!! Rekenwerk Controle

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

  23. Bevelencyclus • Volgorde besturing: • Ophalen bevelBT  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. 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

  26. Programma-onderbreking Boek lezen Bezoeker ontvangen Toestand bewaren Toestand herstellen Bezoeker weg

  27. Programma-onderbreking Verschillende oorzaken …

  28. 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)

  29. 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

  30. 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)

  31. 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 …

  32. 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

  33. 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

  34. 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

  35. 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

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

  37. 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

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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

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

  46. 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.

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

More Related