Title: Besturingssystemen / hoofdstuk 13

Naam: IO escape
Wat is/doet het?: rechtstreekse toegang geven tot de device driver
Hoe werkt het?: ioctl(): /dev/...., commandonummer, en stuk geheugen meegeven
Pagina: 587

Naam: Nonblocking vs asynchronous IO
Welke types zijn er?: nonblocking: IO system call komt onmiddellijk terug met alle informatie die beschikbaar is
asynchronous: IO syscall wordt op de achtergrond uitgevoerd
Alternatieven: blocking IO (niet altijd mogelijk, soms continu IO nodig tijdens uitvoering)
Pagina: 590
Figuur: 13.8

Naam: vector IO
Wat is/doet het?: IO naar verschillende locaties in 1 system call (bv meerdere buffers meegeven die allemaal wegggeschreven worden)
Pagina: 591

Naam: IO scheduling
Hoe werkt het?: voor elk IO apparaat een queue bijhouden met requests, die dan volgens een apparaatspecifiek algoritme geordend wordt (FCFS, SJF, ...)
Welke types zijn er?: vaak vastgemaakt aan device status table om meerdere IO queues tegelijk te beheren
Pagina: 592
Figuur: 13.9

Naam: waar wordt buffering gebruikt bij IO
Welke types zijn er?: 1. sender en receiver hebben verschillende snelheden, bv bij modem die trager resultaten binnenlevert dan de harde schijf kan opslaan
=> double buffering om al in volgende buffer te kunnen schrijven terwijl de eerste wordt behandeld
2. gegevens in kleine pakketten worden in buffer samengezet (sender en receiver hebben verschillende grootttes van data waarmee ze werken)
3. copy semantics: bij wegschrijven van een blok geheugen op schijf wordt een buffer gemaakt zodat wijzigingen in dat blok geheugen niet meer op de schijf worden geschrevne
Pagina: 593
Figuur: 13.10

Naam: spooling
Hoe werkt het?: als meerdere applicaties output sturen naar een outputapparaat (dat maar 1 request tegelijk kan behandelen), worden al deze outputs naar aparte bestanden geschreven. Als het outputapparaat vrij is, een nieuwe spool file uit de queue gehaald

Naam: IO Error handling
Hoe werkt het?: bij fout van een apparaat wordt soms opnieuw geprobeerd. Meestal zal een read(), write(), etc een foutencode teruggeven (0 = OK, 1 = fout 1, 2 = fout 2,....) (zie UNIX)
Pagina: 595