Operating Systems 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer Module code: 1 I/O-apparaten Apparaat Partner Snelheid (B/s) Toetsenbord mens 10 Muis mens 100 Luidsprekers mens 150 K CD-rom machine 1M DVD-ROM machine 2M USB 2.0 machine 50 M Netwerk (1GB) machine 100 M USB 3.0 machine 500 M Harddisk machine 1G Werkgeheugen machine 10 G Module code: 2 I/O-communicatietechnieken • • • • I/O-instructies Geprogrammeerde I/O Interruptgestuurde I/O Directe geheugentoegang (DMA) Module code: 3 I/O-instructies • Speciale I/O-instructies (speciale poorten op cpu) MOV DX, poortnummer OUTDX, 56h • Memory mapped I/O (op bepaalde adressen zit speciale hardware) MOV MOV Module code: AL, 56h 400h, AL 4 Geprogrameerde I/O Processor geeft signaal aan I/O-module en wacht tot deze klaar is check: MOV AL, 08h OUT 10h, AL IN AL, 11h CMP AL, 01h JNE check IN AL, 12h Module code: ; zet byte op poort 16 ; lees byte van poort 17 ; klaar? ; lees byte van poort 18 5 Interrupt-gestuurde I/O Processor geeft signaal aan I/O-module en gaat meteen verder. I/O resulteert later in interrupt. MOV AL, 08h OUT 10h, AL … RET Handler: IN AL, 12h MOV buf, AL … IRET Module code: 6 DMA 1. CPU geeft opdracht aan DMA-module: apparaat#, blok#, r/w, geheugenadres, datalengte 2. CPU gaat verder, DMA-module werkt zelfstandig 3. DMA-module geeft interrupt Module code: 7 DMA-modes • Cycle stealing CPU en DMA mogen beurtelings op de bus • Burst mode DMA doet blok in één keer. (deel van) geheugen tijdelijk geblokkeerd Module code: 8 Mogelijke DMA-configuraties Losgekoppelde DMA Geïntegreerde DMA-I/O Processor DMA Processor DMA ... I/O I/O DMA Memory Memory I/O I/O I/O System Bus I/O Bus Processor Memory I/O Bus I/O Module code: DMA I/O I/O 9 Geen buffer / enkele buffer Stroom- versus blokgerichte dataoverdracht Operating System I/O Device User Process In No buffering Vooruitlezen Operating System Invoer systeembuffer Voltooid I/O Device In User Process Move Systeembuffer adresruimte Verzoekt onmiddellijk om een nieuw blok Module code: Single buffering 10 Dubbele buffer Operating System I/O Device User Process Move In Double buffering Cyclische buffer Operating System In I/O Device User Process Move . . Circular buffering Module code: 11 Parameters voor schijfprestaties Module code: De overdrachtstijd T is T = B / (R x N) B = aantal over te dragen bytes N = aantal bytes op een spoor 12 R = rotatiesnelheid in omwentelingen Strategie voor schijfscheduling Verzoek: 10, 67, 15, 40, 110 (Spoor 70) • FIFO • LIFO ! • Shortest service time first (SSTF) • Scan (Look, Elavator) • C-Scan (C-Look) Module code: 13 Raid • Een verzameling fysieke schijfstations die door het besturingssysteem worden behandeld als één logisch station. • Gegevens worden verdeeld over de fysieke schijven • Er wordt redundantie toegevoegd om gegevens die corrupt raken te herstellen. Module code: 14 Raid 0. 1. 2. 3. 4. 5. 6. Striping zonder redundantie Spiegelen Parallel redundant Parallel pariteit Pariteit per blok Gedistribueerde pariteit per blok Dubbel gedistribueerde pariteit Module code: 15 12. Bestandsbeheer Module code: 16 Soorten files Module code: 17 Filetypen • • • • • Normale bestanden Symbolic link Directory Character special files Block special files Module code: 18 Hiërarchische directorysystemen Master Directory System User A User B User C Directory “User A’ Directory “User B’ Directory “User C” Draw Word Directory “Word” Directory “Draw” Unit A ABC Directory “Unit A” ABC File “ABC” File “ABC” Module code: Pathname: /User B/Word/Unit A/ABC 19 Blokvorming van records R5 R6 R7 Track 2 R8 Vaste Blokvorming R1 R6 R2 R7 R3 R8 R4 R9 R4 R9 R10 R5 R6 Track 1 R11 R12 R13 Track 2 Variabele Blokvorming R1 R2 R6 R4 R3 R7 R8 Variabele Blokvorming: niet aaneengesloten Module code: Track 1 R5 R9 R10 Track 2 Data Gaten door hardwareontwerp record aanpassen aan blokgrootte Verspilling door beperkte blokgrootte Verspilling door aanpassen van Voor vaste recordgrootte 20 blokken aan de spoorgrottte Aaneengesloten bestandstoewijzing File Allocation Table FileA 0 5 1 6 2 3 7 4 8 9 13 14 FileB 10 15 11 16 12 17 18 19 23 24 27 28 29 32 33 34 FileC 20 21 22 FileE 25 26 FileD 30 31 Module code: File Name FileA FileB FileC FileD FileE Start Block Length 2 9 18 30 26 3 5 8 2 3 Alle blokken worden achtereenvolgens aansluitend weggeschreven. Voordelen: zGemakkelijk te administreren zSnel Nadelen: zDe filegrootte moet tevoren bekend zijn en mag niet veranderen. zVeel fragmentatie of men moet verschuiven. 21 Geketende bestandstoewijzing Directory FileB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Module code: File Name ... FileB ... Start Block Length ... 1 ... ... 5 ... 22 Gelinkte lijsten met index Module code: 23 Opgave USB-stick met 8192 MB geheugen, verdeeld in blokken van 16KB. • Hoeveel ingangen heeft de tabel voor gelinkte lijsten met index? • Hoeveel geheugenruimte neemt deze tabel in beslag (in KB). Module code: 24 Administratie van vrije blokken Module code: 25 Unix / Linux Module code: 26 I-nodes Module code: 27 Opzoeken van /usr/ast/mbox Module code: 28