Hoofdstuk 4 Besturingssystemen

Slides:



Advertisements
Verwante presentaties
KWALITEITSZORG november 2012
Advertisements


‘SMS’ Studeren met Succes deel 1
Wat was toen het grootste het grootste probleem van de van de FOD?

NEDERLANDS WOORD BEELD IN & IN Klik met de muis

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.
MMNM 2011 Marketingcommunicatie.
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.
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.

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 4 Besturingssystemen
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
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
Regelmaat in getallen … … …
Centrummaten gemiddelde
Regelmaat in getallen (1).
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Bewegen Hoofdstuk 3 Beweging Ing. J. van de Worp.
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
User management voor ondernemingen en organisaties
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
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
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.
Centrummaten en Boxplot
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

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 Randapparaten In- en uitvoer-organisatievormen Randapparaat-besturingsroutines (stuurprogramma’s) Processortoestanden Multiprogrammatie Soorten Besturingssystemen Taken van een besturingssysteem Kosten en Baten

Invoer en uitvoer Besturingssysteem Gebruikersprogramma Besturen van Randapparaten Opdrachten geven, PO opvangen, fouten … Gebruikersprogramma Hoog-niveau opdrachten LEZ (= complexe operatie) Toetsaanslagen  code Blanko’s, return-toets, ‘–’, Backspace Omzetten naar decimaal getal (ev. 10-complement) Tonen op scherm (‘echo’)

Randapparaten (Mechanisch gedeelte) Elektronisch gedeelte = Bestuurder (Controller, Adapter) Insteekkaart Vaak meerdere apparaten besturen

Bestuurder van drukker Randapparaten Buffer Speciale Registers Popdracht/geg. Ptoestand Poorten Schijf bestuurder Bestuurder van drukker CVO Geheugen- bestuurder Geheugen Bus

Randapparaten Toestandspoort (Pt) Opdracht en gegevenspoort (Pog) Toestand v. (bestuurder) randapparaat (LEZEN) Opdracht en gegevenspoort (Pog) Opdracht aan bestuurder geven (SCHRIJVEN) Gegevens van (bestuurder) apparaat ophalen (LEZEN)

Randapparaten Lezen/schrijven uit/in “poorten” Twee methodes: Speciale instructies Twee verschillende adresruimtes: Geheugenregisters Poorten van randapparaten Inpassing in het geheugen Slechts 1 adresruimte

Afspraak: Pt : t = even, Pog = Pt+1 Randapparaten Speciale instructies INV Ri,Pxxxx (INVoer) Ri  Pxxxx UTV Rj,Pyyyy (UiTVoer) Pyyyy  Rj Pxxxx  P0, P1, …, P9998, P9999 8199i9xxxx 8299j9yyyy Afspraak: Pt : t = even, Pog = Pt+1

Randapparaten Inpassing in het geheugen Poorten hebben een geheugenadres (vb. 9900..9909) Voordeel: geen speciale instructies nodig HIA Ri,xxxx BIG Rj,yyyy Nadeel: minder geheugen beschikbaar

Randapparaten Lezen/Schrijven speciale registers (poorten) Inpassing in het centrale geheugen 0000 … 9899 9900 9901 9909 9910 9999 Geheugenregisters P0 P1 P9 Poorten Geheugenregisters

Randapparaat Toestandspoort (Pt) Toestand van het randapparaat Alleen uitlezen Waarde Naam Verklaring 0000000000 Klaar Bestuurder klaar voor nieuwe opdracht 0000000001 Bezig Toestel is bezig met uitvoering van een opdracht 0000000002 Gegevens Er zijn gegevens beschikbaar in de gegevenspoort 9999999999 Fout Er heeft zich een fout voorgedaan

Randapparaat Fout Bezig Klaar Gegevens Fout Fout Fout Initialiseer PO-aanvraag Randapparaat Fout Fout Fout Initialiseer Bezig Opdracht klaar (niet-invoer) Gegevens beschikbaar Fout Opdracht Gegevens uitgelezen Initialiseer Klaar Laatste gegevens gelezen Gegevens beschikbaar (zonder opdracht) Gegevens

Randapparaat Fout: Onbestaande/foutieve opdracht Opdracht gegeven terwijl apparaat nog bezig is Apparaat heeft nieuwe gegevens terwijl vorige nog niet uitgelezen zijn Fout in het apparaat: Vb. papierlade leeg, inktpatroon leeg, …

Randapparaat Sommige overgangen: PO-aanvraag Interventie van het CVO gewenst Verklaring Eind- toestand Begin-toestand ??? Fout CVO moet fout herstellen (herinitialisatie) Bezig Klaar CVO mag nieuwe opdracht geven Bezig Gegevens CVO moet gegevens inlezen (beschikbaar na opdracht) Klaar Gegevens CVO moet gegevens inlezen (beschikbaar zonder opdracht)

Randapparaat … 0000000002 P0 0000000088 P1 INV R0,P2 INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 Pt Pog 0000000000 P2 P3 0000001000 0000000050 1000000020 … R0 R1 R2 9999999999 R3

Randapparaat … 0000000002 P0 0000000088 P1 INV R0,P2 UTV R1,P3 0000000000 P2 P3 0000000000 0000001000 0000000050 1000000020 … R0 R1 R2 9999999999 R3

Randapparaat … 0000000002 P0 0000000088 P1 INV R0,P2 UTV R1,P3 0000000000 P2 1000000020 P3 0000000001 INV R2,P1 0000000000 0000000050 1000000020 … R0 R1 R2 9999999999 R3

Niet toegelaten! (P0 = toestandspoort) Randapparaat 0000000002 P0 0000000088 P1 0000000000 INV R0,P2 UTV R1,P3 INV R2,P1 UTV R3,P0 0000000001 P2 1000000020 P3 0000000000 UTV R3,P0 0000000000 0000000050 1000000020 … R0 R1 R2 9999999999 R3 Niet toegelaten! (P0 = toestandspoort) 0000000088

Lezen/Schrijven poorten Twee C-functies: int getPort(int poortnr) void putPort (int poortnr, int waarde) Voorbeeld: a = getPort(0); // lees poort P0 in putPort (1, b); // kopieer b in poort P1 Constanten: #define KLAAR 0 #define BEZIG 1 #define GEG 2 #define FOUT -1

Herstel accumulatoren PO-routine PO-routine voorstellen als ( C): interrupt po_routine() { … } Bewaar accumulatoren Niet te schrijven in C Herstel accumulatoren KTO i.p.v. KTG

In- en uitvoer organisatievormen Geprogrammeerd (met actief wachten) M.b.v. programma-onderbrekingen D.m.v. directe geheugentoegang M.b.v. speciale invoer/uitvoer-processoren M.b.v. satelliet-computers

Geprogrammeerde in/uitvoer Alle gegevenstransport via de processor Processor synchroniseert met randapparaat Nieuwe opdracht mag slechts gegeven als toestand = KLAAR Gegevens kunnen slechts uitgelezen worden als toestand = GEGEVENS Wachten tot juiste toestand Actief wachten = continu testen

Geprogrammeerde in/uitvoer int Pt, Pog, opdracht, geg; Pt = 6; Pog = 7; opdracht = …; /* geven van opdracht */ while (getPort(Pt) != KLAAR); putPort(Pog, opdracht); /* lezen van gegevens */ while (getPort(Pt) != GEG); geg = getPort(Pog);

Geprogrammeerde in/uitvoer int Pt, Pog, opdracht, geg; Pt = 6; Pog = 7; opdracht = …; /* geven van opdracht */ while (getPort(Pt) != KLAAR); putPort(Pog, opdracht); /* lezen van gegevens */ while (getPort(Pt) != GEG); geg = getPort(Pog); Actief wachten Actief wachten

Geprogrammeerde in/uitvoer Gegevens inlezen Actief Wachten Opdracht geven Actief Wachten CVO Randapparaat klaar bezig gegevens Toestand uitlezen

Geprogrammeerde in/uitvoer int Pt, Pog, opdracht, geg; Pt = 6; Pog = 7; opdracht = …; /* geven van opdracht */ while (getPort(Pt) != KLAAR); putPort(Pog, opdracht); /* lezen van gegevens */ while (getPort(Pt) != GEG); geg = getPort(Pog); MEVA Pt,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1: INV R0,P<Pt> VGL.w R0,<KLAAR> VSP NGEL,LUS1 HIA R0,opd UTV R0,P<Pog> LUS2: INV R0,P<Pt> VGL.w R0,<GEG> VSP NGEL,LUS2 INV R0,P<Pog> … opd: …

Geprogrammeerde in/uitvoer MEVA Pt,6 MEVA Pog,7 MEVA KLAAR,0 MEVA GEG,2 LUS1: INV R0,P<Pt> VGL.w R0,<KLAAR> VSP NGEL,LUS1 HIA R0,opd UTV R0,P<Pog> LUS2: INV R0,P<Pt> VGL.w R0,<GEG> VSP NGEL,LUS2 INV R0,P<Pog> … opd: … Actief wachten Actief wachten

Geprogrammeerde in/uitvoer Voorbeeld: Scherm Toestandspoort = P2; Opdrachtpoort = P3 Opdracht Betekenis … 1000000ccc Druk een letter af op het scherm ccc: ASCII voorstelling van de letter

Geprogrammeerde in/uitvoer char zone[100] = { ‘v’, … }; int n = 100; int idx = 0; int cmd; do { while (getPort(2) != KLAAR); cmd = 1000000000 + zone[idx++]; putPort (3, cmd); } while (idx < n); HIA.w R2,0 LUS: INV R0,P2 VGL.w R0,<KLAAR> VSP NGEL,LUS HIA R1,OPDR OPT R1,ZONE(R2+) UTV R1,P3 VGL R2,N VSP KL,LUS … OPDR: 1000000000 N: 100 ZONE: 0000000086 0000000111

Geprogrammeerde in/uitvoer HIA.w R2,0 LUS: INV R0,P2 VGL.w R0,<KLAAR> VSP NGEL,LUS HIA R1,OPDR OPT R1,ZONE(R2+) UTV R1,P3 VGL R2,N VSP KL,LUS … OPDR: 1000000000 N: 100 ZONE: 0000000086 0000000111 Actief wachten Nuttige bevelen

Geprogrammeerde in/uitvoer Performantie Actief wachten Actief wachten Actief wachten 5 s 1 ms Derde letter Tweede letter Eerste letter Scherm: 1000 tekens/s Drama: 1 MIPS Nuttig: 5/1000 = 0,5 %

Geprogrammeerde in/uitvoer 100 letters  100 ms 1 MIPS computer: 0,5 % nuttig gebruik CVO 10 MIPS computer: 0,05 % nuttig gebruik 100 MIPS computer: 0,005% nuttig gebruik …

Geprogrammeerde in/uitvoer Voorbeeld 2: inlezen van toetsaanslagen Geen opdracht nodig Toetsaanslag: Pt == GEGEVENS Aanduiding toets in Pog Performantie? Gebruiker: 5 letters/s  1 letter / 200 ms 1 MIPS machine Inlezen van toetsaanslag + lus < 10 bevelen Rendement < 0,005 %

Programma-onderbrekingen CVO test niet voortdurend de toestandspoort Bestuurder van randapparaat: Meldt aan CVO wanneer klaar met opdracht, gegevens beschikbaar, fout, … Geen actief wachten meer! Toepassing: gegevensdebiet eerder laag Zelfde voorbeeld: Scherm 100 letters afbeelden 1ste letter via vorige methode

Programma-onderbrekingen char zone[100] = { ‘v’, … }; int n = 100; int idx = 0; main () { /* eerste letter */ int cmd; while (getPort(2) != KLAAR); cmd = 1000000000 + zone[idx++]; putPort(3, cmd); /* doe iets anders */ … } /* volgende letters */ interrupt po_rout4 () { int cmd; /* bewaar accumulatoren */ if (getPort(2) == KLAAR) { if (idx < n) { cmd = 1000000000 + zone[idx++]; putPort (3, cmd); } } else { /* fout */ } /* herstel accumulatoren */

Programma-onderbrekingen interrupt po_rout4 () { int cmd; /* bewaar accumulatoren */ if (getPort(2) == KLAAR) { if (idx < n) { cmd = 1000000000 + zone[idx++]; putPort (3, cmd); } } else { /* fout */ } /* herstel accumulatoren */ PO_R4: BIG R0,BEWAAR BIG R5,BEWAAR+1 BIG R6,BEWAAR+2 INV R0,P<Pt> VGL.w R0,<KLAAR> VSP NGEL,FOUT HIA R6,INDEX VGL R5,AANTAL VSP GEL,EINDE HIA R5,OPDR OPT R5,ZONE(R6+) UTV R5,P<Pog> BIG R6,INDEX EINDE: HIA R0,BEWAAR … KTO

Programma-onderbrekingen 17 bevelen / letter PO_R4: BIG R0,BEWAAR BIG R5,BEWAAR+1 BIG R6,BEWAAR+2 INV R0,P<Pt> VGL.w R0,<KLAAR> VSP NGEL,FOUT HIA R6,INDEX VGL R5,AANTAL VSP GEL,EINDE HIA R5,OPDR OPT R5,ZONE(R6+) UTV R5,P<Pog> BIG R6,INDEX EINDE: HIA R0,BEWAAR … KTO

Programma-onderbrekingen CVO en Bestuurder beide bezig Toestand uitlezen Nuttig werk CVO gebruikersprogr. PO Schermbestuurder klaar bezig Opdracht geven Letter afbeelden

Programma-onderbrekingen Performantie Extra overhead door PO Bewaar R0, R5, R6 … Herstel R0, R5, R6 Index in geheugen bewaren … 17 instructies / letter  17 s Scherm: 1 ms / letter Overige tijd: 983 s besteden aan de uitvoering van een ander programma = ± 983 instructies!

Geprogrammeerde in/uitvoer Performantie Nuttig werk!!! Iets anders Iets anders Iets anders 17 s 1 ms Derde letter Tweede letter Eerste letter Scherm: 1000 tekens/s Drama: 1 MIPS

Programma-onderbrekingen Niet voor apparaten met hoog debiet Na KTO, onmiddellijk een nieuwe PO Geen tijd om iets anders te doen Risico dat PO-routine te lang duurt en gegevens verloren gaan

Toestenbord- bestuurder Transport via CVO Schijf bestuurder Toestenbord- bestuurder CVO   Geheugen- bestuurder Geheugen

Transport via CVO   Schijf bestuurder Scherm- bestuurder CVO Geheugen- bestuurder Geheugen

Directe geheugentoegang DGT Engels: DMA (Direct Memory Access) Optimisatie van vorige schema CVO geeft opdracht aan bestuurder Bestuurder zorgt zelf voor het transport van/naar het geheugen Na transport: Bestuurder  PO-aanvraag

Directe geheugentoegang Lezen …  Schijf bestuurder Bestuurder van drukker CVO  Geheugen- bestuurder Geheugen Opdracht Transport

Directe geheugentoegang Schrijven …  Schijf bestuurder Bestuurder van drukker CVO  Geheugen- bestuurder Geheugen Opdracht Transport

Directe geheugentoegang Schijf: Kam Spoor Sector Cilinder (= alle sporen voor bep. positie kam) Lezen/Schrijven: 2 stappen Positioneer kam (+ selecteer kop) Lees/Schrijf # opeenvolgende sectoren

Directe geheugentoegang Voorbeeld: DRAMA-Schijf Toestandspoort = P6; Opdrachtpoort = P7 300 cilinders elke cilinder: 40 sporen (40 koppen) elk spoor: 50 sectoren elke sector: 100 getallen van 10 cijfers Alfanumerische informatie (3 cijfers/letter) Per sector  100 getallen  3 letters/getal  300 letters 1000 letters inlezen  4 opeenvolgende sectoren

Directe geheugentoegang Opdrachten voor de schijfbestuurder: Opdracht Betekenis … 100ttt0ccc Positioneer kam op cilinder ccc en activeer lees/schrijfkop ttt 200lll0sss Lees lll opeenvolgende sectoren vanaf sector sss 500000gggg gggg is het adres van de DGT-geheugenzone

Directe geheugentoegang int inlezen; main() { /* positioneer kam */ int cmd = 1000000000 + kop * 10000 + cil; while (getPort(6) != KLAAR); putPort (7, cmd); inlezen = 1; /* doe iets anders */ … } MAIN: HIA R5,KOP VER R5,TDZD OPT R5,CIL OPT R5,P_OPD LUS: INV R0,P6 VGL.w R0,<KLAAR> VSP NGEL,LUS UTV R5,P7 | iets anders … … TDZD: 10000 KOP: 13 CIL: 37 P_OPD: 1000000000

Directe geheugentoegang interrupt po_rout6() { /* bewaar accumulatoren */ if (getPort(6) == KLAAR) { if (--inlezen == 0) lees( ); else /* anders */ … } else { /* fout */ … } /* herstel accumulatoren */ } void lees ( ) { /* geef &dgt_zone door */ … /* geef lees opdracht */ PO_R6: … | bewaar Ri INV R0,P6 VGL.w R0,<KLAAR> VSP NGEL,FOUT HIA R0,INLEZEN AFT.w R0,1 BIG R0,INLEZEN VSP NNUL,ANDERS SBR LEES SPR EINDE ANDERS: … EINDE: … | herstel Ri KTO FOUT: …

Directe geheugentoegang void lees ( ) { /* geef & dgt_zone door */ int cmd = 5000000000 + (int) &zone; putPort(7,cmd); /* geef lees-opdracht */ if (getPort(6) == KLAAR) { cmd = 2000000000 + aantal * 10000 + sector; putPort (7,cmd); } else { /* fout */ … } } LEES: HIA R5,D_OPD OPT.a R5,DGT_ZONE UTV R5,P7 INV R0,P6 VGL.w R0,<KLAAR> VSP NGEL,FOUT HIA R5,AANTAL VER R5,TDZD OPT R5,SECTOR OPT R5,L_OPD KTG D_OPD: 5000000000 L_OPD: 2000000000 TDZD: 10000 DGT_ZONE: RESGR 400 …

Directe geheugentoegang CVO en Bestuurder beide bezig CVO en Bestuurder beide bezig Nuttig werk Nuttig werk CVO progr. PO Schijfbest. klaar bezig DGT-adres opdracht Lees-opdracht Positioneer Sectoren inlezen en in geheugen plaatsen

Directe geheugentoegang Bus kan niet gelijktijdig gebruikt worden! Schijf bestuurder Bestuurder van drukker CVO Geheugen- bestuurder Geheugen CVO of Bestuurder zal moeten wachten tot andere klaar is met geheugentoegang.

Directe geheugentoegang Schijf: Geheugencyclus-diefstal L1 L2 S3 L4 CVO Geheugen Schijfbestuurder Cyclusdiefstal L1 L2 S1 S3 S2 L4 S1 S2

Directe geheugentoegang Grote computerinstallaties: Aparte gegevenspaden + gespreid geheugen Geheugen (module 1) Geheugen- bestuurder Geheugen (module 2) CPU Schijf bestuurder

Directe geheugentoegang Bestuurder heeft geen GEGEVENS-toestand Fout Fout Fout Initialiseer Bezig Opdracht klaar Opdracht Klaar

Speciale in/uitvoer processoren Teveel tijd met I/O bezig! Kanaalbestuurder! Lees … Schrijf … … Lees … Schrijf … … Kanaalbestuurder (Speciale I/U Processor) CVO

Speciale in/uitvoer processoren Echte Rekenwerk … Klaar! CVO

Speciale in/uitvoer processoren Geheugen- bestuurder Geheugen CVO Kanaal bestuurder Mainframes Drukker bestuurder Schijf bestuurder Speciale in/uitvoer processor

Speciale in/uitvoer processoren CVO Lijst met uit te voeren opdrachten opstellen = speciaal kanaalprogramma opstellen Doorspelen aan kanaalbestuurder Kanaalbestuurder Voert het kanaalprogramma uit Opdrachten geven aan bestuurders PO’s van bestuurders afhandelen (fouten, klaar, …) DGT verzorgen Als volledige kanaalprogramma afgewerkt: PO aanvragen Voordeel: CVO minder PO’s afhandelen CVO meer tijd voor ander werk

Speciale in/uitvoer processoren Opdrachten voor de kanaalbestuurder: Toestandpoort = P8, Opdracht/Geg.Poort = P9 Opdracht Betekenis … 200000gggg Begin uitvoering van het kanaal- programma dat op adres gggg begint.

Speciale in/uitvoer processoren Kanaalprogramma: Eigen machinetaal Vaak lange bevelen (veel argumenten) Voorbeeld: KAM BESTUURDER=7,SCHIJF=0,CIL=13,SPOOR=37 KAM BESTUURDER=8,SCHIJF=1,CIL=200,SPOOR=18 LEES BESTUURDER=7,SCHIJF=0,DGT_ADRES=6000,\ LENGTE=4,SECTOR=7 SCHRIJF BESTUURDER=8,SCHIJF=1,DGT_ADRES=7000,\ LENGTE=2,SECTOR=24 STOP 6700370013 6810180200 3700006000 9000040007 4810008000 9000020024 9999999999

Speciale in/uitvoer processoren int kanaalprogr[100]; main() { /* stel kanaalprogramma op */ … int cmd = 2000000000 + (int) &kanaalprogr; while (getPort(8) != KLAAR); putPort (9, cmd); /* doe iets anders */ } MAIN: … | kanaalprog. … HIA R5,K_OPD OPT.a R5,KPROG LUS: INV R0,P8 VGL.w R0,<KLAAR> VSP NGEL,LUS UTV R5,P9 | Doe iets anders KPROG: RESGR 100 K_OPD: 2000000000

Satellietcomputers Front-end Back-end Computer verbonden met in/uitvoer apparaten Back-end Computer verbonden met hulpgeheugens Hoofd- computer Back-end Front-end

Satellietcomputers Front-end: Verbonden met 100-den terminals Invoer van toetsenborden: Inlezen toetsaanslagen Lokaal editeren (backspace, …) Op scherm tonen wat ingetypt is Als lijn volledig  doorsturen naar hoofdcomputer Uitvoer naar schermen …

Satellietcomputers Voordelen: Voordelen t.o.v. kanaalbestuurder: Minder PO-en Hoofdcomputer meer tijd voor berekeningen Satellietcomputer hoeft niet snel te zijn Voordelen t.o.v. kanaalbestuurder: Satellietcomputers  grotere varieteit randapparatuur Satellietcomputer  ook gewone berekeningen Programmatuur eenvoudiger te vervangen Onafhankelijk van een fabrikant

Satellietcomputers Nadelen satellietcomputers Minder betrouwbaar Kans(defect) = Kans(Hoofdcomputer=defect) + Kans(Satellietcomputer=defect) Oplossing: Reserve (backup) computers Onderhoudscontract Idem voor kanaalbestuurders

Stuurprogramma Invoer/uitvoer = Complex Op hoogte van HOE besturen Welke bevelen, bevelenopmaak, volgorde, … Weinig systematiek Soms standardisatie maar veel standaarden! Indien met programma-onderbrekingen: Buffering + boekhouding Tijdsafhankelijke problemen Verloren gaan van gegevens, …

Stuurprogramma Voor elk soort randapparaat: Stuurprogramma (Engels: device driver) PO-routine Onderdeel v/h Besturingsprogramma (Operating System) Device driver uitgevoerd als: Gebruikersprogramma invoer/uitvoer  apparaat PO vanwege het randapparaat  PO-routine  nog werk?  device driver

Besturings- programma Stuurprogramma’s Geheugen PO-vectoren Besturings- programma Gebruikers- programma Niet rechtstreeks PO-routine (schijf) PO-routine (scherm) PO-routine (klavier) stuurprogramma (schijf) stuurprogramma (scherm) stuurprogramma (klavier)

Cursustekst Hoofdstuk 4: pag. 124  pag. 146