Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system
13.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Översikt Det är operativsystemets uppgift att kontrollera I/O- operationer och I/O-enheter I/O-enheters funktion och hastighet varierar kraftigt – olika metoder behövs Dessa metoder ligger i I/O subsystem – en del av kärnan I/O subsystem oberoende av hårdvaran – drivrutiner används som gränssnitt
13.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition I/O-hårdvara Gemensamma koncept En I/O-enhet kommunicerar med datorn via en port Om enheter använder samma kabel, kallas denna för en buss En controller (host adapter) är elektronik som opererar en port, en buss eller en enhet Processorn kommunicerar med controllern genom att läsa och skriva i controllerns register Enheter har adresser som används av: Speciella I/O-instruktioner Memory-mapped I/O
13.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Strukturen hos en typisk PC-buss
13.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition I/O-portar i en PC (delar)
13.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Polling / Interrupts Polling – CPU:n läser en controllers busy-bit (i en loop) ända tills den sätts till 0 Bra om enheten är snabb Interrupt – controllern säger till när den är klar Controllern signalerar på interrupt-request line CPU:n hoppar till interrupt-handler routine
13.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Intel Pentium Processor Event-Vector Table
13.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Direct Memory Access Vid stora dataöverföringar är det slöseri att använda CPU:n En speciell processor används - DMA controller 1. CPU:n skriver ett DMA-kommando i minnet 2. Kommandot innehåller pekare till sändare och mottagare av datan + antalet bytes som ska överföras 3. CPU:n skickar adressen till kommandot till DMA controller 4. När överföringen är klar skickas ett interrupt till CPU:n
13.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Six Step Process to Perform DMA Transfer
13.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Applikationers I/O-gränssnitt Hur kan nya enheter kopplas till ett system utan att operativsystemet behöver skrivas om? Svar: abstraktion, inkapsling, mjukvara i lager I/O-enheter delas in i klasser med var sitt standardgränssnitt Varje enhet har en drivrutin som döljer skillnader inom klassen Enheter varierar i flera dimensioner Character-stream eller block Sequential eller random-access Sharable eller dedicated Speed of operation read-write, read only, eller write only
13.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition En kärnas I/O-struktur
13.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Egenskaper hos I/O-enheter
13.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Olika gränssnitt Blockgränssnitt – t ex hårddiskar Kommandon såsom read, write, seek Raw I/O eller access genom filsystemet Teckengränssnitt – t ex tangentbord, möss, serieportar Kommandon såsom get(), put() Bibliotek kan läggas ovanpå Nätverksgränssnitt – BSD socket interface
13.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition I/O-subsystemet Schemaläggning Bestämma ordningen på I/O-requests Väntekön kan kopplas till en statustabell Buffring – lagra data i minnet medan data överförs mellan enheter Enheterna är inte lika snabba Enheterna har olika storlekar på data som ska överföras Upprätthålla “copy semantics” Cachning, spooling, felhantering, skydd av I/O-enheter
13.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Device-status Table
13.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sun Enterprise 6000 Device-Transfer Rates
13.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Kärnans datastrukturer Kärnan måste lagra tillståndsinformation för I/O-enheter, t ex tabeller med öppna filer och nätverksförbindelser Många komplexa datastrukturer behövs för buffring, minnesallokering mm
13.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition UNIX I/O Kernel Structure
13.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Prestanda I/O är väldigt viktig för systemets prestanda: Minska antalet context switches Minska kopierandet av data Minska antalet interrupt Använd DMA Balansera CPU, minne, buss och I/O-prestanda
13.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Intercomputer Communications