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

Verwante presentaties


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

1 1 SOCS Hoofdstuk 4 Besturingssystemen

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

3 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 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 5 Halt-, Uitvoeringstoestand H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT : Halttoestand 1: Uitvoeringstoestand Alleen 4de stap bevelencyclus Volledige bevelencyclus

6 6 Halt-, Uitvoeringstoestand Halt- toestand Uitvoerings- toestand STP KTO Ander bevel Programma-onderbreking Stapel Stapel

7 7 Halt-, Uitvoeringstoestand int * tedoen = (int *) –1; main() { /* twee taken te doen */ tedoen = &andere_taak; /* begin eerste taak */ … if (tedoen == (int *) –1) { /* stop */ } else { /* begin taak */ } MAIN:HIA.a R0,TAAK BIG R0,TEDOEN … | eerste taak … HIA R0,TEDOEN VGL.w R0,-1 VSP GEL,NIETS SPR 0(R0) NIETS:STP TEDOEN:-1

8 8 Halt-, Uitvoeringstoestand Beter: lijst met taken  Taak afgewerkt: volgende uit lijst  Lijst leeg: STP TAAK1: … … TAAK2: … … TAAK3: … … NULL

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

10 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 11 Halt-, Uitvoeringstoestand H/US/PCCONVOVISOI BT GPFWEKDRKGINUITSCHOVLSPLMFT : Supervisietoestand 1: Probleemtoestand CVO voert besturings- programma uit CVO voert gebruikers- programma uit

12 12 Halt-, Uitvoeringstoestand Halt- toestand Uitvoerings- toestanden STP KTO Ander bevel Programma- onderbreking Stapel Probleem- Toestand (1) Supervisie Toestand (0) KTO Stapel Niet- gepriv. bevel PO Stapel PO

13 13 DRAMA bevelen Geprivilegieerde bevelen Probleemtoestand:  Niet alle bevelen toegelaten! INV, UTV, MKH, MKL, TSM, TSO, STP, KTO HIA, BIG OPT, AFT, VER, DEL, MOD, VGL SPR, VSP, SBR, KTG, OND Geprivilegieerde bevelen Niet-geprivilegieerde bevelen

14 14 Geprivilegieerde bevelen Uitgevoerd PO 9 UitgevoerdUitgevoerd Probleem- toestand Supervisie- toestand Niet- geprivilegieerd bevel Geprivilegieerd bevel

15 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 16 Supervisie-oproep Dienst- nummer Dienst 1Lees getal in R0 in 2Druk R0 af op scherm 3Naar nieuwe lijn op scherm 4Huidige datum + tijd in R0 … 9999Stop de uitvoering van dit programma Verschillend van besturingsprogramma tot besturingsprogramma

17 17 Supervisie-oproep /* 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 OND 1 | LEZ OND 2 | DRU OND 3 | NWL OND 9999 | STP 1000 x = 4001 supervisie-oproepen

18 18 Behandelingsroutine voor supervisie-oproepen | Gebruikersprogramma MAIN:… OND 2 … PO_R1:BIG R0,BEWAAR … BIG R9,BEWAAR+9 | welke dienst? … … Gebruikers- programma Stapel R9 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

19 19 Behandelingsroutine voor supervisie-oproepen 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 DST2:VGL.w R1,2 VSP NGEL,DST3 SBR DRU_PROC SPR TERUG DST3:… TERUG:HIA R0,BEWAAR TERUG1:HIA R1,BEWAAR+1 … HIA R9,BEWAAR+9 KTO BEWAAR:RESGR 10 TDZD:10000

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

21 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 22 Bevelencyclus int skip_uitvoering; while (true) { if (PTW[1] == 1) { /* uitvoeringstoest. */ /* haal bevel op */ … /* analyseer bevel */ … skip_uitvoering = 0; if (PTW[2] == 1 && gepriv(fc)) { PO_vlag[9] = 1; skip_uitvoering = 1; } if (! skip_uitvoering) { /* voeruit */ switch (fc) { … case STP: PTW[1] = 0; break; … } } } /* if (PTW[1] == 1) */

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

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

25 25 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 */ … Dit moet een ander programma zijn. Programma heeft die gegevens nodig.

26 26 Principe PROG_B PROG_A Besturingsprog PO_ROUT1 PO_ROUT6 halt tijd OND 73 KTO STP PO 6 Lezen van schijf: OND 73 I/O (A) gestart I/O (A) klaar Schijf bezig I/O (A) klaar I/O (B) gestart

27 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 28 Doorvoer 2 Identieke programma:  Initialisatie 100 ms  4 x (100 ms wachten invoer ms rekenen)  100 ms wegschrijven  = totaal 1 s Uitvoering:  Monoprogrammatie (na elkaar)  Multiprogrammatie

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

30 30 Doorvoer Prog_A Prog_B halt Prog_A Prog_B PO_R1 PO_R6 halt Prog_A Prog_B PO_R1 PO_R6 halt Prog_A Prog_B halt Start I/O I/O klaar I/O klaar Start I/O RealiteitVorige figuur

31 31 Werkloos? Zelden processor 100% bezighouden  Zwaar belast: %  Licht belast: % 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 32 STP-bevel Geprivilegieerd Alleen besturingsprogramma (BP) weet of er nog taken zijn Gebruikersprogramma aan BP vragen om gestopt te worden  Programma uit geheugen verwijderen  Ander programma inbrengen?

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

34 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 PO geactiveerd

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

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

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

38 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 39 Geheugenbeheer Multiprogrammatie  meerdere programma’s gelijktijdig in geheugen Verschillende algoritmes:  Aaneengesloten, gepagineerd, … A B C E BP D A1A1 A2A2 A3A3 B1B1 B2B2 B3B3 PB 1 PB 2 PB 3 PB 4 E1E1 E2E2 D1D1 D2D2 C1C1 HW: verspreide delen als 1 geheel laten voorkomen

40 40 Geheugenbeheer Verschillende programma’s  bescherming A B C E BP D In uitvoering Resultaat correct ? Privacy geschonden?

41 41 Geheugenbeheer Geen geheugenbescherming: MAIN:HIA.a R0,LABEL BIG R0,9991 OND 1 LABEL:… INV R0,P2 UTV R1,P3 …

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

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

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

45 45 Geheugenbeheer Geen geheugenbescherming: MAIN:HIA R0,9991 HIA R1,INSTR BIG R1,0(R0) OND 1 INSTR:SPR LABEL LABEL:… INV R0,P2 UTV R1,P3

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

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

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

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

50 50 Geheugenbescherming Geheugen Prog. A CVO 455 Geheugenbeheer eenheid bus  0200 < 1234 Ja Ja HIA R0,

51 51 Geheugenbescherming Geheugen Prog. A CVO 9991 Geheugenbeheer eenheid bus  0200 < 1234 Ja Neen BIG R0,9991 Adres!

52 52 Geheugenbeheer Besturingsprogramma: tabel met vrij/bezet BeginadresLengteToegekend aan … A 1060Vrij B Vrij C D Vrij Besturings- programma

53 53 Processorbeheer Meerdere programma’s  wie processor? Keuze gebaseerd op:  Hoogdringendheid (prioriteit)  Beurtrol  … Sommige programma’s aan het wachten …

54 54 Processorbeheer afgewerkt klaar wachten uitvoering passief Klaar om uitgevoerd te worden Nog niet in het geheugen gebracht I/O klaar Gekozen Supervisie- oproep (I/O) Supervisie- oproep (STOP)

55 55 Processorbeheer Besturingssysteem: tabel met info programma’s Prog.ToestandPrioR0…PTW Aklaar … Bklaar … Cwacht … Dklaar … Epassief15???…

56 56 Processorbeheer Timesharing systeem: meerdere gebruikers Tijd eerlijk verdelen Respons-tijd (reactie-tijd):  Elke gebruiker:  Indruk persoonlijke computer ter beschikking

57 57 Processorbeheer Te Doen: 1.Practicum Perl 2.Practicum BvP 3.SOCS studeren 4.Vakantiebrochures 5.Karweien thuis

58 58 Processorbeheer Te Doen: 1.Practicum Perl 2.Practicum BvP 3.SOCS studeren 4.Vakantiebrochures 5.Karweien thuis

59 59 Processorbeheer Te Doen: 1.Practicum Perl 2.Practicum BvP 3.SOCS studeren 4.Vakantiebrochures 5.Karweien thuis Klaar!

60 60 Processorbeheer Te Doen: 1.Practicum Perl 2.Practicum BvP 3.SOCS studeren 4.Vakantiebrochures 5.Karweien thuis Enz.

61 61 Processorbeheer Vóór: CVO  gebruikersprogramma:  Wekker zetten Twee mogelijkheden:  Gebruikersprogramma doet supervisor-oproep  wachten  Wekker afzetten  Volgende taak kiezen + eerst wekker instellen  Wekker loopt af  Huidige taak tijdelijk uitstellen  Volgende taak kiezen + eerst wekker instellen

62 62 Processorbeheer Wekker:  Opdrachtpoort: P9  P9  interval  interval > 0  wekker actief (telt af)  interval <= 0  wekker inactief  Wekker actief:  Elke  s: P9  P9 – 1 Indien P9 == 0  PO_vlag[3]  1

63 63 Processorbeheer Besturingsprogramma: … | Stel wekker in HIA R1,interval UTV R1,P9 | Herstel accumulatoren HIA R0,bewaar+0 HIA R1,bewaar+1 … HIA R9,bewaar+9 KTO bewaar:RESGR 10 interval:1000

64 64 Principe PROG_A PROG_B PROG_C PROG_D PO_ROUT1 PO_ROUT2 PO_ROUT6 halt tijd OND 73 KTO Lezen van schijf: OND 73 PO 6 Kies Prog. I/O (A) gestart Kies Prog. Kies Prog. KTO

65 65 Beheer van randapparaten Besturingsprogramma:  Toestand van elk apparaat bijhouden  Opdrachten bijhouden indien apparaat bezig Bezig (lezen) CVO: Iets anders Schrijven op schijf  in wachtrij

66 66 Beheer van randapparaten ApparaatToestandOpdrachten SchermbezigA Schrijf “xyz = …” ToetsenbordklaarBeschikbaar 12345, abcde Drukkerklaar--- SchijfbezigA Schrijf cil:4,…, Data B Lees cil:6,…,Adres Schijf2defect---

67 67 Bestandenbeheer Bestand = ‘container’ voor informatie  (bron)programma’s, teksten, gegevens, … = Hoog-niveau concept Gebruiker/programma hoeft plaats niet te kennen (alleen naam) Besturingsprogramma houdt bestanden bij op hulpgeheugen

68 68 Bestandenbeheer Prog.java Socs.doc Spel Inhoudstafel NaamLengtePlaats Prog.java19820Cil:8/spoor:4/sec:2-7 Socs.doc98172Cil:2/spoor:5/sec:32-59 Spel8729Cil:1/spoor:8/sec:11-13

69 69 Informatiebeheer Besturingsprogramma houdt heel wat informatie bij  Huidige datum/tijd  Wie werkt op het systeem?  Programma’s in uitvoering  Beschikbare schijfruimte  … Opvragen via supervisie-oproepen  Voorbeeld OND 100 | R0  dag,R1  maand,R2  jaar

70 70 Informatiebeheer Bijhouden van de tijd  M.b.v. circuit dat regelmatige PO aanvraagt vb. Om de 20 ms (freq. van lijnspanning)  Referentiedatum + tijd opvragen bij opstarten  # PO-en tellen   huidige datum en tijd berekenen 24 april :00: # PO-en 15:34:02 Referentie datum + tijd 24 april 2002 Huidige datum + tijd s later  Niet nauwkeurig (PO uitstellen, missen, …)

71 71 Informatiebeheer Bijhouden van de tijd  Kristal-oscillator  Onder spanning  zeer nauwkeurig periodisch signaal  Signaal naar tel-circuit geleid  Eenmalig initialiseren  Vaak batterij  klok blijft doorlopen DRAMA: Klok v/d 2de soort  Poort P8  Inhoud = # 1/10 s sinds 1 januari 1990 (00:00)

72 72 Informatiebeheer Samenwerkende programma’s  Informatie uitwisselen  = Communicatie AB AB | zend(B,boodschap) OND 234 | boodsch = ontvang(A) OND 235 Besturingssysteem

73 73 Boekhouding Ten behoeve van facturatie  Commercieel systeem Statistieken t.b.v. computersysteemplanning  Knelpunten  Afregelen (Tunen)

74 74 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten  Baten  Kosten  Uiteindelijk rendement

75 75 Baten Gebruiksvriendelijkheid Correcte werking  Geprivilegieerde bevelen, … Efficienter

76 76 Kosten Apparatuur  CVO complexer: PO, GBE, …  Groot centraal geheugen (besturingsprogramma, multiprogrammatie)  Voldoende randapparaten Programmatuur  Verschillende manjaren Overhead aan tijd  PO  toestand bewaren (+ later herstellen)  Extra controles (of geoorloofd)  Deels gecompenseerd door tijdswinst (multiprogrammatie, optimisaties, …)

77 77 Rendement 80% processortijd: BP 20% processortijd: gebuikersprogramma 80% apparatuur: beheer van apparatuur 20% apparatuur: uitvoeren van bevelen 75% programma: organisatie (lussen, …) 25% programma: rekenen 0,2 * 0,2 * 0,25 = 0,01 = 1 % echte rekenwerk

78 78 Cursustekst Hoofdstuk 4: pag. 146  einde


Download ppt "1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer Processortoestanden Multiprogrammatie."

Verwante presentaties


Ads door Google