1 / 79

SOCS

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

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

  3. Inhoud • Inleiding • Programmatoestandswoord • Programma-onderbrekingen • Invoer en uitvoer • Processortoestanden • Halttoestand en uitvoeringstoestand • Probleemtoestand en supervisietoestand • Geprivilegieerde bevelen • Supervisie-oproep • De volledige bevelencyclus • Multiprogrammatie • …

  4. Processortoestanden • Als CVO niets te doen? • Geen programma om uit te voeren • Huidige programma wacht op gegevens • Oplossing: • Actief wachten • LUS: SPR LUS • Nadeel: DGT-transporten worden gestoord • “Halttoestand” • Alleen 4de stap van bevelencyclus (nagaan of PO-aanvraag mag optreden)

  5. ONV H/U S/P CC OVI SOI BT G GPF WEK DRK IN UIT SCH OVL SPL MFT 0: Halttoestand 1: Uitvoeringstoestand Halt-, Uitvoeringstoestand 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Alleen 4de stapbevelencyclus Volledigebevelencyclus

  6. Anderbevel Programma-onderbreking PO STP KTO 3001111200 7100100298 Stapel Stapel Halt-, Uitvoeringstoestand STP? Halt-toestand Uitvoerings-toestand PO? KTO? ander? KTO

  7. NULL TAAK1: … … TAAK2: … … TAAK3: … … Halt-, Uitvoeringstoestand • Lijst met taken • Taak = functie (op einde KTG) • Taak afgewerkt: volgende uit lijst • Lijst leeg: STP

  8. struct taak { int * beginAdres; struct taak * volgendeTaak; } struct taak * taken = (struct taak *) -1; main() { taken = maakTakenLijst(); while (taken != (struct taak *) –1) { int * taak = taken->beginAdres; taken = taken->volgendeTaak; /* start uitvoering taak */ } } MAIN: … | creeer taken … WHILE: HIA R0,TAKEN VGL.w R0,-1 VSP GEL,STOP HIA R1,0(R0) | adres HIA R0,1(R0) | volg. BIG R0,TAKEN SBR 0(R1) | start … SPR WHILE STOP: STP TAKEN: -1 Halt-, Uitvoeringstoestand

  9. Gebruikersprogramma Besturingsprogramma Probleem-, Supervisietoestand Ik mag alles Ik mag niet alles! CVO moet weten welk programma uitgevoerd wordt!

  10. Probleem-, Supervisietoestand • Correcte werking van computer garanderen: • Verhinderen: gebruiker zelf apparaten aanstuurt • Onderscheid tussen: • Gebruikersprogramma • Besturingsprogramma • Twee toestanden: • Supervisietoestand (monitortoestand) • CVO voert Besturingsprogramma uit • Probleemtoestand • CVO voert Gebruikersprogramma uit

  11. ONV H/U S/P CC OVI SOI BT G GPF WEK DRK IN UIT SCH OVL SPL MFT 0: Supervisietoestand 1: Probleemtoestand Halt-, Uitvoeringstoestand 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 CVO voert besturings-programma uit CVO voert gebruikers-programma uit

  12. Programma-onderbreking Anderbevel KTO STP PO KTO PO Niet-gepriv.bevel 3001111200 5100100298 0110100132 Stapel Stapel Stapel Halt-, Uitvoeringstoestand Uitvoerings-toestanden SupervisieToestand (0) Halt-toestand KTO Probleem-Toestand (1)

  13. Geprivilegieerde bevelen • Probleemtoestand: • Niet alle bevelen toegelaten! DRAMA bevelen HIA, BIGOPT, AFT, VER, DEL, MOD, VGLSPR, VSP, SBR, KTG,OND INV, UTV,MKH, MKL, TSM, TSO,STP, KTO Geprivilegieerdebevelen Niet-geprivilegieerdebevelen

  14. Geprivilegieerdbevel Niet-geprivilegieerdbevel Supervisie-toestand Probleem-toestand Geprivilegieerde bevelen Uitgevoerd Uitgevoerd PO9 Uitgevoerd

  15. Supervisie-oproep • Gebruikerprogramma: • Niet rechtstreeks randapparaten aanspreken • Hulp vragen aan besturingsprogramma • Mag wel geprivilegieerde bevelen uitvoeren • Supervisietoestand! • Overgang afdwingen: • Geprogrammeerde PO (OND) • = supervisor call, system call • Operand = ‘dienst’ • Mogelijk extra argumenten (via stapel, acc., …)

  16. Supervisie-oproep Verschillend van besturingsprogramma tot besturingsprogramma

  17. /* lees 1000 getallen in en druk getal, getal^2 af */ main() { int k, x; for (k=0; k<1000; k++) { x = getint(); printint(x); printint(x*x); } } MAIN: HIA.w R1,0 FOR: VGL.w R1,1000 VSP GRG,EFOR LEZ DRU VER R0,R0 DRU NWL OPT.w R1,1 SPR FOR EFOR: STP R1 R0 Supervisie-oproep OND 1 | LEZ OND 2 | DRU OND 2 | DRU OND 3 | NWL OND 9999 | STP 1000 x 4 + 1 = 4001 supervisie-oproepen

  18. | Gebruikersprogramma MAIN: … OND 2 … PO_R1: BIG R0,BEWAAR … BIG R9,BEWAAR+9 | welke dienst? … 0123 Gebruikers-programma 6199990002 0124 … 0125 8999 0110000125 Stapel 9000 0000000000 R9 Behandelingsroutine voorsupervisie-oproepen HIA R0,0(R9)MOD R0,TDZD AFT.w R0,1 HIA R1,0(R0) MOD R1,TDZD DST1: VGL.w R1,1 VSP NGEL,DST2 SBR LEZ_PROCSPR TERUG1

  19. PO_R1: BIG R0,BEWAAR … BIG R9,BEWAAR+9 | welke dienst? HIA R0,0(R9) MOD R0,TDZD AFT.w R0,1 HIA R1,0(R0) MOD R1,TDZD DST1: VGL.w R1,1 VSP NGEL,DST2 SBR LEZ_PROC SPR TERUG1 Behandelingsroutine voorsupervisie-oproepen DST2: VGL.w R1,2 VSP NGEL,DST3 SBR DRU_PROC SPR TERUG DST3: … TERUG: HIA R0,BEWAARTERUG1: HIA R1,BEWAAR+1 … HIA R9,BEWAAR+9 KTO BEWAAR: RESGR 10 TDZD: 10000

  20. PO_R1: … SBR DRU_PROC KTO (2) (1) (3) PO-vectoren (5) (6) (4) Behandelingsroutine voorsupervisie-oproepen Supervisie-toestand Probeemtoestand | Gebruikersprogramma MAIN: … OND 2 … OND 2 xxx_PROC: … … … KTG DRU_PROC: … UTV R5,P3 … KTG yyy_PROC: … … … KTG LEZ_PROC: … INV R0,P1 … KTG

  21. Supervisie-oproep • Voordelen: • Programmeur geen laag-niveau details • Complexe taken correct uitgevoerd • Buffering en boekhouding • Timing, fouten opvangen, … • echo-transmissie, lokaal editeren, … • Optimisaties mogelijk • Actief wachten vermijden • Uitgesteld wegschrijven • Vooraf inlezen • Vooraf intypen (type ahead) • …

  22. int skip_uitvoering; while (true) { if (PTW[1] == 1) { /* uitvoeringstoest. */ /* STAP 1: haal bevel op */ … /* STAP 2: analyseer bevel */ fc = BR % 100000000; … skip_uitvoering = 0; if (PTW[2] == 1 && gepriv(fc)) { /* probleemtoestand */ PO_vlag[9] = 1; skip_uitvoering = 1; } /* STAP 3: voer uit */ if (! skip_uitvoering) { switch (fc) { case 11: /* HIA */ reg[acc] = OR; break; … case 99: /* STP */ PTW[1] = 0; break; }}} /* if (PTW[1] == 1) */ Bevelencyclus

  23. /* --------------------- STAP 4: toegelaten programma- onderbreking? -------------------- */ if (PTW[10] != 1) {/* G masker af */ int onv = PTW[0]; int k; /* Toeg. PO? */for (k=9; k>onv; k--) if ((PO_vlag[k] && ((k == 1) || ! PTW[10+k])) break; if (k > onv) { /* POk */ opStapel(PTW, 0, 9); PTW[0] = k; /* ONV */ PO_vlag[k] = 0; /* uitv. + superv. */PTW[1] = 1; PTW[2] = 0; vulin( Geheugen[9990+k] % 10000,PTW,6,9); } } /* if (G-masker) */ } /* while */ Bevelencyclus

  24. Inhoud • Inleiding • Programmatoestandswoord • Programma-onderbrekingen • Invoer en uitvoer • Processortoestanden • Multiprogrammatie • Principe • Doorvoer • STP-bevel • Besturingsprogramma • Opstarten van de computer • Soorten Besturingssystemen • …

  25. Programma heeft diegegevens nodig. Dit moet een anderprogramma zijn. Multiprogrammatie • Randapparaten traag t.o.v. CVO • Actief wachten: heel onefficient • PO en DGT: CVO kan iets anders doen • Iets anders? /* lees sector in */ while (getPort(6) != KLAAR); putPort (7, cmd); /* doe iets anders */ …

  26. PROG_B PROG_A Besturingsprog PO_ROUT1 PO_ROUT6 halt OND 73 OND 73 OND 73 KTO KTO PO6 KTO KTO STP PO6 tijd PO6 PO6 Principe Schijfbezig I/O (A) klaarI/O (B) gestart I/O (A) gestart I/O (A) gestart I/O (A) klaar Lezen van schijf: OND 73

  27. Principe • Monoprogrammatie • Programma’s sequentieel uitgevoerd • Slechts 1 programma tegelijk geladen • Multiprogrammatie • = Gelijktijdig (afwisselend) uitvoeren van verschillende programma’s • CVO ‘bezig’ houden • Veel programma’s  nooit werkloos

  28. Doorvoer • 2 Identieke programma: • Initialisatie 100 ms • 4 x (100 ms wachten invoer + 100 ms rekenen) • 100 ms wegschrijven • = totaal 1 s • Uitvoering: • Monoprogrammatie (na elkaar) • Multiprogrammatie

  29. Doorvoer Prog_A Prog_B halt Monoprogrammatie Doorvoer: 1 prog/s 1 2 Multiprogrammatie Prog_A Prog_B halt Doorvoer: ±2 prog/s 1,1 1

  30. Prog_A Prog_B halt Prog_A Prog_B PO_R1 PO_R6 halt Prog_A Prog_B halt Prog_A Prog_B PO_R1 PO_R6 halt Doorvoer Vorige figuur Realiteit StartI/O I/O klaar StartI/O I/O klaar

  31. Werkloos? • Zelden processor 100% bezighouden • Zwaar belast: 90 .. 95 % • Licht belast: 0 .. 30 % • Merk op: • Hoge multiprogrammatiegraad (= aantal programma’s in geheugen) • Processor weinig (of niet) werkloos • Elk programma slechts fractie van beschikbare tijd •  lijkt dat de processor traag werkt

  32. STP-bevel • Geprivilegieerd • Alleen besturingsprogramma (BP) weet of er nog taken zijn • Gebruikersprogramma aan BP vragen omgestopt te worden • Programma uit geheugen verwijderen • Ander programma inbrengen?

  33. R0R1 … R9 PTW R0R1 … R9 PTW R0R1 … R9 PTW Progr. A Progr. B Progr. C Boekhouding • Voor elk programma: gegevensstructuur • Inhouden van accumulatoren • BT, CC, OVI, … (eerste deel PTW) • Gebruikt bij programmawisseling

  34. Opstarten van de computer • Programma in ROM uitvoeren • Lader(s) inladen (bootstrap)  besturingsprogramma inladen • Hoofdprogramma van besturingsprogramma: • Gegevensstructuren initialiseren • Op zoek naar werk • Gebruikersprogramma’s • of (geen werk) STP • Besturingsprogramma alleen nog via POgeactiveerd

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

  36. Soorten besturingssystemen Algemeen Nut(general purpose) Specifiek Doel(dedicated,embedded) Niet-interactief Interactief Reële tijd(real time) = Stapelverwerking(batch system) Vastetijdslimieten 1 Gebruiker(Single User) Meerdere gebruikers(Multi-User)(Time sharing)

  37. Inhoud • … • Processortoestanden • Multiprogrammatie • Soorten Besturingssystemen • Taken van een besturingssysteem • Geheugenbeheer • Processorbeheer • Het beheer van de randapparaten • Bestandenbeheer • Informatiebeheer • Boekhouding • Kosten en Baten

  38. Taken/diensten besturingsprogramma • Geheugenbeheer • Waar elk programma in het geheugen • Processorbeheer • Aan welk programma zal CVO werken? • Beheer in/uitvoer • Besturen van alle randapparaten • Bestandenbeheer • Bestanden bijhouden op hulpgeheugens • Informatiebeheer

  39. A B E BP A2 D1 BP1 B3 A1 E1 BP2 D C1 B1 D2 BP3 C E2 A3 B2 BP4 Geheugenbeheer • Multiprogrammatie  meerdere programma’s gelijktijdig in geheugen • Verschillende algoritmes: • Aaneengesloten, gepagineerd, … HW: verspreide delenals 1 geheel laten voorkomen

  40. A B E BP D C Geheugenbeheer • Verschillende programma’s  bescherming In uitvoering Resultaatcorrect ? Privacygeschonden?

  41. Niet toegestaanin probleem-toestand Geheugenbeheer • Geen geheugenbescherming: Elk programma kan in supervisor-mode uitvoeren! MAIN: … … … LABEL: … INV R0,P2 UTV R1,P3 …

  42. PO-vectoren Uitvoeren inSupervisor-toestand! Geheugenbeheer PO_R1: BIG R0,BEWAAR … MAIN: … … … LABEL: … INV R0,P2 UTV R1,P3 …

  43. PO-vectoren Geheugenbeheer PO_R1: BIG R0,BEWAAR … MAIN: HIA.a R0,LABEL BIG R0,9991 … LABEL: … INV R0,P2 UTV R1,P3 …

  44. PO-vectoren Geheugenbeheer PO_R1: BIG R0,BEWAAR … MAIN: HIA.a R0,LABEL BIG R0,9991 … LABEL: … INV R0,P2 UTV R1,P3 … OND 1

  45. PO-vectoren In supervisortoestand! Geheugenbeheer PO_R1: BIG R0,BEWAAR … MAIN: HIA.a R0,LABEL BIG R0,9991 OND 1 LABEL: … INV R0,P2 UTV R1,P3 … … INV R0,P2

  46. Geheugenbeheer • Geen geheugenbescherming:  IV tegen overschrijven beschermen  Onvoldoende! MAIN: HIA R0,9991 HIA R1,INSTR BIG R1,0(R0) OND 1 INSTR: SPR LABEL LABEL: … INV R0,P2 UTV R1,P3

  47. PO-vectoren Geheugenbeheer 9991 PO_R1: BIG R0,BEWAAR … MAIN: HIA R0,9991 HIA R1,INSTR BIG R1,0(R0) OND 1 INSTR: SPR LABEL LABEL: … INV R0,P2 UTV R1,P3 HIA R0,9991HIA R1,INSTRBIG R1,0(R0)

  48. PO-vectoren Geheugenbeheer PO_R1: BIG R0,BEWAAR … SPR LABEL MAIN: HIA R0,9991 HIA R1,INSTR BIG R1,0(R0) OND 1 INSTR: SPR LABEL LABEL: … INV R0,P2 UTV R1,P3 OND 1

  49. PO-vectoren In supervisortoestand! Geheugenbeheer PO_R1: BIG R0,BEWAAR … SPR LABEL MAIN: HIA R0,9991 HIA R1,INSTR BIG R1,0(R0) OND 1 INSTR: SPR LABEL LABEL: … INV R0,P2 UTV R1,P3 … INV R0,P2

  50. ondergrens bovengrens  < Adres Ja Ja bus Neen Neen Geheugenbescherming Geheugen Prog. A CVO Geheugenbeheer eenheid Ondergrens Bovengrens

More Related