Hoofdstuk 4 Besturingssystemen

Slides:



Advertisements
Verwante presentaties
KWALITEITSZORG november 2012
Advertisements

De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
‘SMS’ Studeren met Succes deel 1
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
WAAROM? Onderzoek naar het meest geschikte traject voor de verlenging tot in Sint-Niklaas van het bestaande fietspad naast de Stekense Vaart en de Molenbeek.
BRIDGE Vervolgcursus Vervolg op starterscursus Bridgeclub Schiedam ‘59 info: Maandagavond: 19: – of
1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
1 COVER: Selecteer het grijze vlak hiernaast met rechtsklik & kies ‘change picture’ voor een ander beeld of verwijder deze slide & kies in de menubalk.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
 Deel 1: Introductie / presentatie  DVD  Presentatie enquête  Ervaringen gemeente  Pauze  Deel 2 Discussie in kleinere groepen  Discussies in lokalen.
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
Hoofdstuk 4 Besturingssystemen
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays  Klassiek gebruik  For opdracht, Increment/Decrement  Wijzers, Arrays en Wijzers.
INITIATIE DEFINITIESELECTIECONCIPIËREN INBEDDING IN ORGANISATIE ONDERHOUD Opdrachtgever/ Projectleider Eigenaar Architect en zijn team Stakeholders INITIATIEDEFINITIESELECTIECONCIPIËRENINBEDDINGONDERHOUD.
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
Kb.1 Ik leer op een goede manier optellen en aftrekken
Tevredenheids- enquête 2012 P. Grouwels Inleiding Mogelijke antwoorden: Zeer goed: 4 sterren ****: volledig tevreden; Goed: 3 sterren ***:
© BeSite B.V www.besite.nl Feit: In 2007 is 58% van de organisaties goed vindbaar op internet, terwijl in 2006 slechts 32% goed vindbaar.
9 januari 2013 Bodegraven 1. 1Korinthe 11 1 Wordt mijn navolgers, gelijk ook ik Christus navolg. 2.
© GfK 2012 | Title of presentation | DD. Month

Nooit meer onnodig groen? Luuk Misdom, IT&T
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker  Werking van vertolker  Voor- en nadelen.
Hoofdstuk 3 Basisprogrammatuur
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler  Enkel MACRO en MCREINDE directieven  Extra macro-directieven De Lader De.
Hoofdstuk 4 Besturingssystemen
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
Softwarepakket voor het catalogeren en determineren van fruitsoorten
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen &  vorige toestand uitgang.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
1 WIJZIGINGEN UNIEK VERSLAG. 2 Agenda Verbeteringen Veranderingen formulieren Praktische herinneringen Nieuwe formulieren Sociale en culturele participatie.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
Seminarie 1: Pythagoreïsche drietallen
Afrika: Topo nakijken en leren.
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen;  vorige toestand uitgang.
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
aanvallen moeten ten allen tijden worden weerstaan
Hoe gaat dit spel te werk?! Klik op het antwoord dat juist is. Klik op de pijl om door te gaan!
Eerst even wat uitleg. Klik op het juiste antwoord als je het weet.
1 SOCS Hoofdstuk 4 Besturingssystemen. 2 Inhoud Inleiding Programmatoestandswoord Programma-onderbrekingen Invoer en uitvoer  Randapparaten  In- en.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
STIMULANS KWALITEITSZORG juni 2014.
De financiële functie: Integrale bedrijfsanalyse©
In opdracht van NOC*NSF
Waar gaat het nou toch om?!
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
12 sept 2013 Bodegraven 1. 2  vooraf lezen: 1Kor.7:12 t/m 24  indeling 1Korinthe 7  1 t/m 9: over het huwelijk  10 t/m 16: over echtscheiding  16.
1 Week /03/ is gestart in mineur De voorspellingen van alle groten der aarden dat de beurzen zouden stijgen is omgekeerd uitgedraaid.
Openbaar je talent Service public, talent particulier.
23 mei 2013 Bodegraven vanaf hoofdstuk 6: hoofdst.1: de wijsheid van de wereld hoofdst.2: de wijsheid van God hoofdst.3: Gods akker en Gods bouwwerk.
SOCS Test 1.
Transcript van de presentatie:

Hoofdstuk 4 Besturingssystemen 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 Meerdere programma’s tegelijk, in- en uitvoer, … Voldoende hardware ondersteuning! Programmaonderbrekingen, processortoestanden, geprivilegieerde bevelen, beschermingsregisters, wekker, …

Besturingssystemen Gebruikers Toepassingen Besturingssysteem Hardware

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

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

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

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

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

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! …

Programmatoestandswoord 20 decimale cijfer Verschillende velden PTW3 = CC, PTW6..9 = BT, … Stapel- overloop- indicator Conditie-code Overloop- indicator Bevelen- teller H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 GPF WEK DRK G IN UIT SCH OVL SPL MFT 10 11 12 13 14 15 16 17 18 19

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

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)

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 ... */ } ... LEZ LUS: VSP NUL,ENDWH HIA R1,R0 AFT R1,R0 VSP NNEG,POS VER.w R1,-1 POS: BST R1 SPR LUS ENDWH: … CC? CC? a, c  R1 b  R0

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 ... */ } ... LEZ LUS: VSP NUL,ENDWH HIA R1,R0 AFT R1,R0 VSP NNEG,POS VER.w R1,-1 POS: BST R1 SPR LUS ENDWH: … Overloop? Geen informatie over aantal of bereik van getallen

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 ... */ } ... LEZ LUS: VSP NUL,ENDWH HIA R1,R0 AFT R1,R0 VSP OVL,OVERL VSP NNEG,POS VER.w R1,-1 POS: BST R1 SPR LUS ENDWH: … OVERL: … Overloop? Geen informatie over aantal of bereik van getallen

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 ... */ } ... LEZ LUS: VSP NUL,ENDWH HIA R1,R0 AFT R1,R0 VSP OVL,OVERL VSP NNEG,POS VER.w R1,-1 POS: BST R1 SPR LUS ENDWH: … OVERL: … Stapel- overloop? Geen informatie over aantal of bereik van getallen

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 ... */ } ... LEZ LUS: VSP NUL,ENDWH HIA R1,R0 AFT R1,R0 VSP OVL,OVERL VSP NNEG,POS VER.w R1,-1 POS: BST R1 VSP SO,STOVL SPR LUS ENDWH: … OVERL: … STOVL: … Overloop? Overloop? Stapel- overloop? Geen informatie over aantal of bereik van getallen

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 …

Elektronica reeds aanwezig! Overloop 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 Onmiddellijk testen na berekening Zoniet: OVI  Nieuwe waarde Beter: Automatisch onderbreken  Minder geheugen  Sneller uitvoeren = – 5.000.000.000 Elektronica reeds aanwezig!

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

Oneindige Lus Meerdere programma’s Editor Vertaler 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

Oneindige Lus int a, b, c; main() { a = 0; b = 17; while (a < b) ... } | 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: …

Bevelencyclus Volgorde besturing: Doorbreken volgorde: Ophalen bevel BT  BT + 1 Instructie analyseren Functiecode Operand(en) berekenen Instructie uitvoeren Doorbreken volgorde: Sprongbevel: BT  nieuwe waarde Programma-onderbreking

Programma-onderbreking Uitvoering van een programma onderbreken + uitvoering van ander programma beginnen

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

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

Programma-onderbreking Verschillende oorzaken …

Programma-onderbreking H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 GPF WEK DRK G IN UIT SCH OVL SPL MFT 10 11 12 13 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 Onderbreking gevraagd! 1 Onderbrekingsvlaggen CVO (processor)

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

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) 0000009000 0000009500 0000009584 0000009112 0000009228 0000009012 0000009212 0000009612 0000009712 9991 9992 9993 9994 9995 9996 9997 9998 9999 PO4

Voorbeeld Stapel PO-vectoren 0100 0101 0102 0103 8999 9000 9050 9993 9994 BIG R3,RES SPR VERDER RES: RESGR 1 VERDER: HIA.w R2,0 … 1221009900 3221900103 0000000000 1111200000 1221300102 0000009212 0000009050 1221009100 0000909090 Stapel R9 … PO_ROUT4: BIG R0,BEWAAR … PO-vectoren

Onderbrekingsvlaggen Voorbeeld Ophalen 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 0 1 0 0 BT SOI OVI 2 CC 1 3221900103 0000000000 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 1112000000 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld Analyseren, Uitvoeren 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 2 CC OVI SOI 0 1 0 1 BT 3221900103 1 1 0000000000 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 1221300102 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld PO aangevraagd? 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 1 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 1221300102 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld Ophalen 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 1 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 1221300102 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld Analyseren, Uitvoeren 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 2 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld PO aangevraagd? 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 3 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld PO aangevraagd? Push(PTW0..9) 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 3 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0000909090 1 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000009000 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld PO aangevraagd? PO-vlag[4]  0 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 3 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0111000103 1 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000008999 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld PO aangevraagd? PTW6..9  … 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 0 1 0 3 BT 3221900103 1 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0111000103 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000008999 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld Ophalen 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 9 0 5 0 BT 3221900103 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0111000103 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000008999 R9 1221009900 3221900103 BR 0000009212 0000009050

Onderbrekingsvlaggen Voorbeeld Enz … 0100 0101 0102 0103 8999 9000 9050 9993 9994 1221300102 Processor 1 CC OVI SOI 9 0 5 0 BT 3221900103 1 1111111111 1 2 3 4 5 6 7 8 9 1111200000 0000000020 R0 0111000103 1111111111 R3 1221009100 Onderbrekingsvlaggen 0000008999 R9 1221009900 1221009900 BR 0000009212 0000009050

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

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

Soorten Onderbrekingen Type Masker Oorzaak PO-vector Nr = Prio 1 2 3 4 5 6 7 8 9 9991 9992 9993 9994 9995 9996 9997 9998 9999 Machinefout Ongeldige instructie Ongeoorloofde instructie --- WEK DRK IN UIT SCH OVL SPL MFT Asynch. Synch. Synch. Programmafout (SO) Synch. Programmafout (OVL) Synch. Schijfbestuurder Asynch. Schermbestuurder Asynch. Toetsenbordbestuurder Asynch. Drukkerbestuurder Asynch. Wekker Asynch. Supervisie-oproep Synch.

Soorten Onderbrekingen Type Masker Oorzaak PO-vector Nr = Prio 1 2 3 4 5 6 7 8 9 9991 9992 9993 9994 9995 9996 9997 9998 9999 Machinefout Ongeldige instructie Ongeoorloofde instructie --- WEK DRK IN UIT SCH OVL SPL MFT Asynch. Synch. Synch. Programmafout (SO) Synch. Programmafout (OVL) Synch. Schijfbestuurder Asynch. Schermbestuurder Asynch. Toetsenbordbestuurder Asynch. Drukkerbestuurder Asynch. Wekker Asynch. Supervisie-oproep Synch.

Verbieden van programma-onderbrekingen

Uitstellen van programma-onderbrekingen Wie eerst?

Verbieden/Uitstellen van programma-onderbrekingen Onderbreking onmogelijk PO-vlag kan niet gezet worden Onderbreking tijdelijk opschorten Niet ingaan op PO-aanvraag Mechanismen: Maskers Prioriteiten

Maskers 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 10 11 12 13 14 15 16 17 18 19 GPF WEK DRK G IN UIT SCH OVL SPL MFT Invoer Masker Schijf Masker Globaal Masker Wekker Masker Drukker Masker Uitvoer Masker Overloop Masker Machinefout Masker Stapeloverloop Masker Globaal Programma Fout Masker 0: PO-aanvraag toegelaten (enabled) 1: PO-aanvraag niet toegelaten (disabled)

G==1  geen enkele PO-aanvraag toegelaten Maskers 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 10 11 12 13 14 15 16 17 18 19 G GPF WEK DRK IN UIT SCH OVL SPL MFT G==1  geen enkele PO-aanvraag toegelaten

Maskers 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 10 11 12 13 14 15 16 17 18 19 G GPF WEK DRK IN UIT SCH OVL SPL MFT GPF==1  PO7 en PO8 genegeerd (ignored) (vlaggen kunnen niet gezet worden)

Maskers 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 10 11 12 13 14 15 16 17 18 19 G GPF WEK DRK IN UIT SCH OVL SPL MFT Masker == 1  PO-aanvraag uitgesteld (pending)

Maskers Speciale instructies MKH xxx (Masker Hoog) PTWxxx  1 MKL xxx (Masker Laag) PTWxxx  0 TSM xxx (Test Masker) CC  PTWxxx TSO xxx (Test Onderbrekingsvlag) CC  PO-vlagxxx

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

Prioriteiten 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 0 1 2 3 4 5 6 7 8 9 H/U S/P CC ONV OVI SOI BT 10 11 12 13 14 15 16 17 18 19 GPF WEK DRK G IN UIT SCH OVL SPL MFT Alleen op PO-aanvragen met prioriteit hoger dan ONV kan ingegaan worden.

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

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) { /* POk */ 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

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

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

Gebruikers- programma Voorbeeld Masker PO5 = 1 Andere maskers = 0 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=9 KTO ONV=7 KTO ONV=4 ONV=4 ONV=4 KTO ONV=0 ONV=0 PO4 PO9 PO7 PO5 tijd

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

Geprogrammeerde programma-onderbreking PO-vlag[1] geplaatst via speciale instructie OND  (Onderbreking) 619999 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)

DRAMA - machine Opstarten van DRAMA-machine KTO H/U S/P CC OVI SOI BT 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 KTO 6299999999 0000009990 H/U S/P CC OVI SOI BT 1

DRAMA - machine Voorbeeld: PO voor drukker (PO3) toelaten H/U S/P CC 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 6299999999 0000009990 H/U S/P CC OVI SOI BT 0000009990 1 1 1 1 1 1 1 1 1 1 0000009990 0000009990 … PO_DRK: … KTO HIA.a R0,PO_DRK 0000009990 BIG R0,9990+3 0000009990 0000009990 0000009990 9123 0000009990

DRAMA - machine Voorbeeld: PO voor drukker (PO3) toelaten H/U S/P CC 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 6299999999 0000009990 H/U S/P CC OVI SOI BT 0000009990 1 1 1 1 1 1 1 1 1 1 0000009123 0000009990 HIA.a R0,PO_DRK BIG R0,9990+3 … PO_DRK: … KTO 0000009990 0000009990 MKL DRK 0000009990 0000009990 9123 0000009990

DRAMA - machine Voorbeeld: PO voor drukker (PO3) toelaten H/U S/P CC 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 6299999999 0000009990 H/U S/P CC OVI SOI BT 0000009990 1 1 1 1 1 1 1 1 1 0000009123 0000009990 HIA.a R0,PO_DRK BIG R0,9990+3 MKL DRK … PO_DRK: … KTO 0000009990 0000009990 MKL G 0000009990 0000009990 9123 0000009990

DRAMA - machine Voorbeeld: PO voor drukker (PO3) toelaten H/U S/P CC 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 6299999999 0000009990 H/U S/P CC OVI SOI BT 0000009990 1 1 1 1 1 1 1 1 0000009123 0000009990 HIA.a R0,PO_DRK BIG R0,9990+3 MKL DRK MKL G … PO_DRK: … KTO 0000009990 0000009990 0000009990 0000009990 9123 0000009990

Cursustekst Hoofdstuk 4: pag. 94  pag. 123