De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 4 Besturingssystemen

Verwante presentaties


Presentatie over: "Hoofdstuk 4 Besturingssystemen"— Transcript van de presentatie:

1 Hoofdstuk 4 Besturingssystemen
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? Oplossing:
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 Halt-, Uitvoeringstoestand
H/U S/P CC ONV OVI SOI BT GPF WEK DRK G IN UIT SCH OVL SPL MFT Alleen 4de stap bevelencyclus 0: Halttoestand 1: Uitvoeringstoestand Volledige bevelencyclus

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

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 Halt-, Uitvoeringstoestand
Beter: lijst met taken Taak afgewerkt: volgende uit lijst Lijst leeg: STP TAAK1: … TAAK2: … TAAK3: … NULL

9 Probleem-, Supervisietoestand
Ik mag alles Ik mag niet alles! Gebruikersprogramma Besturingsprogramma 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 Halt-, Uitvoeringstoestand
H/U S/P CC ONV OVI SOI BT GPF WEK DRK G IN UIT SCH OVL SPL MFT CVO voert besturings-programma uit 0: Supervisietoestand 1: Probleemtoestand CVO voert gebruikers-programma uit

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

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

14 Geprivilegieerde bevelen
Probleem- toestand Supervisie- toestand Niet-geprivilegieerd bevel Geprivilegieerd bevel 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 Dienst- nummer Dienst 1 Lees getal in R0 in 2
Druk R0 af op scherm 3 Naar nieuwe lijn op scherm 4 Huidige datum + tijd in R0 9999 Stop de uitvoering van dit programma Verschillend van besturingsprogramma tot besturingsprogramma

17 1000 x 4 + 1 = 4001 supervisie-oproepen
/* 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 NWL OPT.w R1,1 SPR FOR EFOR: STP OND 1 | LEZ OND 2 | DRU OND 2 | DRU OND 3 | NWL OND 9999 | STP 1000 x = 4001 supervisie-oproepen

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

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 Behandelingsroutine voor supervisie-oproepen
Supervisie- toestand | Gebruikersprogramma MAIN: … OND 2 Probeemtoestand (1) PO_R1: … SBR DRU_PROC KTO OND 2 (2) (6) PO-vectoren (3) (5) (4) DRU_PROC: UTV R5,P3 KTG LEZ_PROC: INV R0,P1 KTG LEZ_PROC: INV R0,P1 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 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 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) { /* 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 */

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

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

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

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

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

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

31 Werkloos? Zelden processor 100% bezighouden Merk op:
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 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 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 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 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) Vaste tijdslimieten 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 Geheugenbeheer Multiprogrammatie  meerdere programma’s gelijktijdig in geheugen Verschillende algoritmes: Aaneengesloten, gepagineerd, … A B C E BP D A1 A2 A3 B1 B2 B3 PB1 PB2 PB3 PB4 E1 E2 D1 D2 C1 HW: verspreide delen als 1 geheel laten voorkomen

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

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

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

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

44 Geheugenbeheer PO_R1: BIG R0,BEWAAR …
PO-vectoren 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 In supervisortoestand!

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 Geheugenbeheer PO_R1: BIG R0,BEWAAR …
PO-vectoren 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,9991 HIA R1,INSTR BIG R1,0(R0)

47 Geheugenbeheer PO_R1: BIG R0,BEWAAR … SPR LABEL
PO-vectoren 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

48 Geheugenbeheer PO_R1: BIG R0,BEWAAR … SPR LABEL
PO-vectoren 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 In supervisortoestand!

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

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

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

52 Geheugenbeheer Besturingsprogramma: tabel met vrij/bezet Beginadres
Lengte Toegekend aan … 0000 1140 A 1060 Vrij 2200 2253 B 4453 76 4529 1271 C 5800 1150 D 6950 50 7000 3000 Besturings-programma

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

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

55 Processorbeheer Besturingssysteem: tabel met info programma’s Prog.
Toestand Prio R0 PTW A klaar 10 B 7 C wacht 3 D 1 E passief 15 ???

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

57 Processorbeheer Te Doen: Practicum Perl Practicum BvP SOCS studeren
Vakantiebrochures Karweien thuis

58 Processorbeheer Te Doen: Practicum Perl Practicum BvP SOCS studeren
Vakantiebrochures Karweien thuis

59 Processorbeheer Te Doen: Klaar! Practicum Perl Practicum BvP
SOCS studeren Vakantiebrochures Karweien thuis Klaar!

60 Processorbeheer Te Doen: Practicum Perl Practicum BvP SOCS studeren
Vakantiebrochures Karweien thuis Enz.

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

62 Processorbeheer Wekker: Opdrachtpoort: P9 P9  interval Wekker actief:
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 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 Principe tijd PO6 PROG_A PROG_B PROG_C PROG_D PO_ROUT1 PO_ROUT2
halt KTO KTO KTO PO6 KTO OND 73 KTO KTO Kies Prog. Kies Prog. I/O (A) gestart Kies Prog. Kies Prog. Kies Prog. tijd PO6 Lezen van schijf: OND 73

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 Beheer van randapparaten
Apparaat Toestand Opdrachten Scherm bezig A Schrijf “xyz = …” Toetsenbord klaar Beschikbaar 12345, abcde Drukker --- Schijf Schrijf cil:4,…, Data B Lees cil:6,…,Adres Schijf2 defect

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 Bestandenbeheer Inhoudstafel Socs.doc Prog.java Spel Naam Lengte
Plaats Prog.java 19820 Cil:8/spoor:4/sec:2-7 Socs.doc 98172 Cil:2/spoor:5/sec:32-59 Spel 8729 Cil:1/spoor:8/sec:11-13

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 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 Referentie datum + tijd Huidige datum + tijd # PO-en 24 april 2002 24 april 2002 10:00:00 s later 15:34:02 Niet nauwkeurig (PO uitstellen, missen, …)

71 Informatiebeheer Bijhouden van de tijd DRAMA: Klok v/d 2de soort
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 Informatiebeheer Samenwerkende programma’s Informatie uitwisselen
= Communicatie A B | zend(B,boodschap) OND 234 | boodsch = ontvang(A) OND 235 A B Besturingssysteem

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

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 Baten Gebruiksvriendelijkheid Correcte werking Efficienter
Geprivilegieerde bevelen, … Efficienter

76 Kosten Apparatuur Programmatuur Overhead aan tijd
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 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 Cursustekst Hoofdstuk 4: pag. 146  einde


Download ppt "Hoofdstuk 4 Besturingssystemen"

Verwante presentaties


Ads door Google