Hur hänger det ihop med användarkommandon, biblioteksfunktioner och systemanrop?



Relevanta dokument
Operativsystem - input/output, skydd, virtualisering

Reservföreläsningen inställd

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Datorteknik ERIK LARSSON

Lösningsförslag till tentamen i IS1350 Operativsystem

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Design och trender. Föreläsning 12

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Grundläggande datavetenskap, 4p

Operativsystem Introduktion

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Föreläsning 2. Operativsystem och programmering

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Filsystem användarvy och implementering. Föreläsning 4

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Systembeskrivning. Systemskiss. Moduler.

Operativsystem (ID2200/06) XX XX:00-XX:00

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Introduktion till hårdvara, mjukvara och operativsystem

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem (IS1350) :00-12:00

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Operativsystem ID hp, ID2200 6hp

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

Tentamen PC-teknik 5 p Lösningar och kommentarer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

Operativsystem - Filsystem

Tentamen PC-teknik 5 p

Minneshantering segmentering och virtuellminne. Föreläsning 3

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Minnet från processorns sida Datorteknik

Operativsystem. Hierarkin för hårdvara läses nerifrån

Datorsystemteknik Föreläsning 7DAVA14

MESI i Intel Core 2 Duo

Operativsystem ID2200/06 omtentamen :00-18:00

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Trådar och Multiprocessorer. Föreläsning 6

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Tentamen den 18 mars svar Datorteknik, EIT070

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Syfte. Praktisk datorkunskap. Personal. Kursinfo. Examination- Krav för godkänt. Agenda idag DVG A06

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Realtidssystem, device drivers. Föreläsning 10

HF0010. Introduktionskurs i datateknik 1,5 hp

Operativsystem IS1350

Tentamen PC-teknik 5 p

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Datorsystemteknik DAV A14 Föreläsning 1

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

DVA315 Operativsystem

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Polling (cyklisk avfrågning) Avbrott

Operativsystem ID1200/06 Tentamen :00-18:00

Fallstudier. Föreläsning 11

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Prestandajämförelse - Sekventiell skrivhastighet i RAID 4 och RAID 5

Administration / Disk Management. EC Utbildning AB

LAB 1 MS-DOS MicroSoft-DiskOperating System -Microsoft MS-DOS = synonymt med DOS -IBM PC-DOS -Novell DR-DOS

32 Bitar Blir 64 Sammanfattning

Dokumentation för funktionsblocksbibliotek MwaCOMLI

DIG IN TO Dator och nätverksteknik

Introduktion till programmering, hösten 2011

Marcus Wilhelmsson 12 april 2013

Tentamen PC-teknik 5 p

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Agenda. Syfte med datorbygge Datorns delar. Datorbygge. Moderkort Processor Minne och hårddisk Instickskort Övrigt

Diskprestanda Tester

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

F7: I/O hantering. Asynkron och synkron busscykel Bussfördelning. Periferikretsar

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Allmänt om programvaror och filer i Windows.

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Digitala System: Datorteknik ERIK LARSSON

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Transkript:

I/O Föreläsning 5

Dagens fråga: Hur hänger det ihop med användarkommandon, biblioteksfunktioner och systemanrop? User space Vanliga program Användarkommandon Kommandon som är inbyggda i kommandotolken (shell) eller som är kompilerade (exekverbara) program som ligger i standard directoryn. Biblioteksfunktion för systemanrop Systemanrop Färdigkompilerad (C-)funktion som har assembler kod för systemanropet, dvs TRAP. Kan också vara användarvänliga med enklare parametrar/returvärden/felkoll. Exekvering av TRAP för systemanropet med parametrar etc. lagda på rätt ställen i minnet så att OS hittar dem. Kernel space Kod i OS-kärnan OS Föreläsning 5, I/O 2

Användarkommandon Användarkommando: Kommando inbyggt i kommandotolken som ofta är ett C-program ex: which kill kill: shell built-in command eller Exekverbar fil, ofta kompilerad från C-program, som gjorts tillgänglig genom att den placeras i ett directory som normalt ingår i användarens sökväg. ex: which rm /usr/bin/rm Använder normalt sett biblioteksfunktioner för systemanrop (eller systemanrop direkt). OS Föreläsning 5, I/O 3

Sökväg - hur shell hittar kommandon Kommandotolken har environment variabler: som t.ex. talar om vilken DISPLAY/terminal som används eller vilka directoryn som skall sökas igenom då man ger ett kommando, PATH ripper:fri> echo $PATH /opt/local/lprng/3.6.19/bin:/afs/it.kth.se/opt/commercial/ netscape/communicator4.73:/afs/cell/opt/commercial/acrob at/acroread4.05/bin:/opt/gnu/emacs/20.7/bin:/opt/gnu/bin :/opt/mail/exmh/2.5/bin:/opt/lang/tcl/8.3/bin:/opt/local /bin:/usr/afsws/bin:/usr/athena/bin:/afs/it.kth.se/home/ ds/robertr/bin:/usr/sbin:/usr/local/bin:/usr/lang:/usr/u cb:/usr/bin:/bin:/usr/local/etc:/etc:/usr/local/bin/x11: /usr/etc:/usr/local/gnubin:/afs/cell/misc/hacks/bin:/afs /cell/misc/local/bin:/usr/openwin/bin:.:/usr/local/bin/x 11 ripper:fri> OS Föreläsning 5, I/O 4

Generiskt systemanrop Steg i ett generiskt systemanrop 1. Lägg information (nummer) om vilket systemanrop man gör på förutbestämd plats, oftast ett register 2. Gör mjukvaruavbrott, TRAP, till OS-kärnan 3. OS-kärnan hittar parametrar till systemanropet på något av följande vis: - på stacken - i register - i datablock som pekas ut via register Vilka systemanrop som finns är OS-beroende Deras exakta implementation på assembler/registernivå beror på datorarkitekturen Systemanrop kan vara standardiserade på biblioteksfunktionsnivå (ex: POSIX) OS Föreläsning 5, I/O 5

Biblioteksfunktioner var finns de? - C s standardbibliotek /usr/lib/libc.a header objekt modul kill.o objekt modul header objekt modul Arkiv (bibliotek av objektmoduler) ripper:fri> nm -A -g /usr/lib/libc.a grep kill /usr/lib/libc.a:thr_stub.o:000003c0 W thr_kill /usr/lib/libc.a:kill.o: U _cerror /usr/lib/libc.a:kill.o: U _cerror64 /usr/lib/libc.a:kill.o:00000000 T _kill /usr/lib/libc.a:kill.o:00000000 W _libc_kill ripper:fri> ls ripper:fri> ar -x /usr/lib/libc.a kill.o ripper:fri> ls kill.o OS Föreläsning 5, I/O 6

Hur ser systemanropet kill ut? ripper:fri> /usr/ccs/bin/dis kill.o **** DISASSEMBLER **** disassembly for kill.o section.text _kill() _libc_kill() 0: 82 10 20 25 mov 37, %g1 4: 91 d0 20 08 ta 0x8 8: 1a 80 00 05 bgeu 0x1c c: 1b 00 00 00 sethi %hi(_cerror64), %o5 10: 9a 13 60 00 or %o5, _cerror64, %o5! _cerror64 14: 81 c3 40 00 jmp %o5 18: 01 00 00 00 nop 1c: 81 c3 e0 08 jmp %o7 + 8 20: 90 10 00 00 clr %o0 ripper:fri> OS Föreläsning 5, I/O 7

I/O - Föreläsningen Vad händer då man läser en fil eller öppnar en webbsida? Hur hanterar man alla olika typer av I/O-enheter? Organisation av I/O-systemet Några viktiga typer av I/O-enheter I/O i UNIX Kap: 5.1-5.5, 5.7-5.9, 10.5 OS Föreläsning 5, I/O 8

Om I/O I/O är tillsammans med processning den viktigaste uppgiften för ett OS Utan I/O kan man inte kommunicera med datorsystemet... I/O- systemet är ofta komplext: Många enheter Många olika typer av enheter från olika tillverkare Nya enheter I/O-systemet utgör ofta en stor (största?) del av OS-koden OS Föreläsning 5, I/O 9

Tillbakablick - organisation av OS Applikationer ex. Webb, spel, administrativa system Editorer Kommandotolk/shell Kompilatorer Operativsystem CPU/Processer Kommunikation Systemanrop I/O Filsystem Minneshantering User space Kernel space Maskininstruktioner Mikroarkitektur Fysiska komponenter OS Föreläsning 5, I/O 10

Målsättning med I/O-systemet Användarvänligt Rent gränssnitt mot I/O-systemet Transparent kapsla in/dölj detaljer om hur olika enheter fungerar och den exakta implementationen i I/O-systemet Lätt att lägga till nya enheter (både typer och tillverkare) Effektivt OS Föreläsning 5, I/O 11

ISA expansion bus Ultra I/O I/O-hårdvara -ett exempel: en hyfsat modern PC omkring 1998 interrupt parallel port serial port graphics controller AGP port/bus CPU cache Memory DRAM system controller (north bridge) PCI bridge DMA controller (south bridge) floppy USB bus IDE bus SCSI controller PCI bus SCSI bus IDE-disk controller disk disk disk disk CD-R OS Föreläsning 5, I/O disk 12

Struktur hos I/O-system Hur får vi en bra struktur? Abstraktion Inkapsling Skiktad (layered) arkitektur OS Föreläsning 5, I/O 13

Karaktäristika för I/O-enheter Aspekt Variant Exempel Dataöverföringssätt Accessmetod Överförings-shemaläggning Delad access Hastighet Riktning Teckenvis Blockvis Sekventiell Random Synkron Asynkron Dedicerad Möjlig att dela Latency Söktid Överföringshastighet Fördröjning mellan operationer read-only write-only read-write Terminal Hårddisk Ethernetport CD-ROM Band Tangentbord Band Tangentbord CD-ROM Bildskärm Hårddisk OS Föreläsning 5, I/O 14

Abstraktion -huvudklasser av I/O-enheter Block-devices Läser och skriver block av data Typiska operationer (systemanrop): read, write, (seek) Ex: disk, cd-rom, band Character-devices Skriver/läser en ström av tecken Typiska operationer: put, get Ex: tangentbord, skrivare, nätverksenheter, mus Operationerna på dessa liknar operationer på filer! I UNIX monteras I/O enheter i filsystemet (/dev ) OS Föreläsning 5, I/O 15

Abstraktion - det som inte riktigt passar i vår klassifiering Klockor Operationer: läs av tid, läs av förfluten tid, starta timer Ofta inte standardiserade operationer Nätverksenheter Ofta inte helt optimalt att accessa med samma operationer som filer (även om det går...) Sockets: vanligt användargränssnitt (UNIX, NT) Kontakt för att skicka/ta emot meddelanden från system som är inpluggat via an annan kontakt/socket OS Föreläsning 5, I/O 16

Inkapsling och skiktad arkitektur Först måste vi förstå hur I/O fungerar...

Blockerande icke-blockerande I/O - synkron asynkron I/O Blockerande I/O processen som begärt I/O väntar till dess I/O-operationen är klar Ex: läsning blockerar oftast Icke-blockerande I/O - processen som begärt I/O väntar inte på att I/O-operationen skall bli klar Ex: skrivning är ofta icke-blockerande OBS! Någon (läs OS) måste i samtliga fall kontrollera att I/O blivit klar och ta hand om eventuella fel... OS Föreläsning 5, I/O 18

Typisk I/O-operation 1. Ge enheten order att genomföra I/O genom att skriva i kontrollregister 2. Vänta medan enheten utför operationen 3. Returnera när enheten är klar OS Föreläsning 5, I/O 19

Hur styr man I/O-enheterna? Memory mapped I/O - Ports Memory mapped I/O: För att förenkla för programmeraren mappas kan kontrollregisters och dataregisters adresser in i den vanliga adressrymden Memory mapped I/O När man ger order genom att skriva i kontrollregistret sätter man alltså bitar i något som ser ut att ligga på en vanlig adress Ports: I/O-enheten får ett portnummer Kontrollregistren läses/skrivs med speciella I/O-instruktioner Vissa arkitekturer som Pentium använder både minnesmappad I/O och I/O-portar OS Föreläsning 5, I/O 20

Hur väntar man bäst på I/O? Alternativen: Programstyrd I/O pollning Avbrottsstyrd (interruptstyrd) DMA OS Föreläsning 5, I/O 21

Programstyrd I/O - pollning I/O-enheten signalerar att den är klar genom att sätta en bit (I/O-klar) i ett av dess kontrollregister Programmet ligger i en loop och läser ett kontrollregister för att upptäcka när I/Oenheten är klar. Kallas pollning. OS Föreläsning 5, I/O 22

Pollning - exempel Process som skriver ut text på en terminal OS Skriv ut en textsträng på en terminal: 1. Skriv ett tecken till terminalens dataregister 2. Sätt biten som talar om att det finns ett nytt tecken att skriva ut på terminalen i terminalens kontrollregister 3. Loopa (pollning) Läs terminalens kontrollregister Om inte I/O klar biten är satt så fortsätt loopa 4. Upprepa från 1 till dess alla tecken skrivits ut I/O klar Ny data 10 01 Kontrollregister V Q Dataregister Q OS Föreläsning 5, I/O 23

Om pollning Att notera: Pollning belastar CPU:n Är bra om: Kort väntan på att enheten skall bli klar Man inte har råd med avbrott eller DMA t.ex i små inbyggda system Används normalt inte i någon större utsträckning i mer avancerade system Om minnesmappad I/O: Sidan som innehåller adressen där kontrollregistret mappats in får inte cachas då upptäcker man inte när enheten blir klar OS Föreläsning 5, I/O 24

Avbrottstyrd I/O Låt I/O-enheten generera ett avbrott (interrupt) när enheten är klar med I/O En avbrottsrutin fångar upp avbrottet och kontrollerar ev. fel och ser till att en ev. blockerad process som väntar på I/O hamnar i READY-kön Avbrott kostar att hantera! involverar processbyte till avbrottshanterare i kärnan mm. OS Föreläsning 5, I/O 25

Avbrottsstyrd I/O - ett exempel med blockerande I/O Processen initierar I/O Processen blockeras till dess I/O klar BLOCKED Låt en annan/andra process/er köra Abrottsrutin: kontrollerar ev fel och lägger processen i READY-kön Avbrott I/O-klar READY Förr eller senare får processen exekvera igen OS Föreläsning 5, I/O 26

Regler för avbrottsrutiner Får inte påverka processen som avbröts Måste bli klara snabbt Ta bara hand om det som måste tas omhand Får inte vänta på något Kan inte bli blockerad (hamna i tillståndet BLOCKED) Får inte generera sidfel Får inte utföra systemanrop OS Föreläsning 5, I/O 27

Precisa avbrott och inte... För den som skriver en avbrottsrutin är det viktigt att veta om avbrott är precisa eller ej Precist avbrott: hårdvaran sparar undan ett väldefinierat tillstånd då avbrottet inträffade Icke-precist avbrott: avbrottsrutinen får reda ut tillståndet som t.ex. eventuella halvt utförda instruktioner etc. OS Föreläsning 5, I/O 28

I/O med DMA Hur undviker man en massa avbrott om mer än en byte/ett ord skall skrivas/läsas? DMA Direct Memory Access En hårdvaruenhet som kan instrueras att överföra en mängd data (block) till/från minne och någon I/O enhet Beroende på var DMA-controllern är placerad går data via DMA-enheten eller direkt till/från minne (fly-by-mode) OS Föreläsning 5, I/O 29

I/O med DMA - exempel: page-in läs in en sida från disk 1. Programmera DMA-controllern att läsa in en sida till minnet med startadress X avbrott 2. Programmera disk-controllern att skicka data till DMA-controllern CPU cache Memory DRAM 3. DMA-controllern skickar data till minnet 4. När sidan är på plats i minnet genererar DMAcontrollern ett avbrott 5. Avbrottet tas omhand av avbrottsrutin i kärnan system controller (north bridge) PCI bus PCI bridge DMA controller (south bridge) IDE bus IDE-disk controller OS Föreläsning 5, I/O disk 30 CD-R

Var läggs data som läses in/skall skrivas ut med DMA? Sidan som data läses från/skrivs till får inte kastas ut från minnet (page-out) innan DMA (I/O) är klar Sidan måste vara låst i minnet Normalt går I/O till/från buffert i kernel-space, dvs: Vid läsning: läs till kernel-space kopiera sedan till processens adressrymd Vid skrivning: kopiera data från processen till kernel-space Onödig kopiering kan undvikas vid överföring av hela sidor genom att man mappar om sidtabellerna OS Föreläsning 5, I/O 31

Exempel: hantering av sidfel 1. Trap till OS 2.Konstatera var på disken sidan ligger 3.Instruera DMA att föra över sidan till buffert i minnet 4.Låt annan process köra 5.Interrupt från DMA 6.Kopiera buffert till ledig ram i user space 7.Uppdatera sidtabellen memory memory user space sidtabell user space sidtabell kernel space kernel space DMA controller DMA controller PCI bus PCI bus Disk controller Disk controller disk disk OS Föreläsning 5, I/O 32

Vem programmerar olika I/O-enheter (och DMA controllern)? Hårdvaruenheter är: Ofta komplicerade att styra Kräver ofta att hänsyn tas till realtidsaspekter Kan fungera lite olika beroende på tillverkare Styrs via drivrutiner (device drivers) Drivrutinen ger ett enklare gränssnitt mot hårdvaran (kaplsar in och döljer en del detaljer) Skrivs normalt av hårdvarutillverkaren som tillverkade I/O-enheten! OS:et måste tillhandahålla ett väl definierat gränssnitt mot drivrutinerna För att möjliggöra att någon annan skriver dem För att kunna isolera felaktiga drivrutiner OS Föreläsning 5, I/O 33

Drivrutiner forts. Drivrutiner anropas (indirekt) av systemanrop Processen som anropade systemanropet kan anses köra drivrutinen En I/O-enhet kan ofta ha fler än en I/O-operation igång samtidigt (eller köade) Drivrutinskoden måste vara re-entrant Drivrutiner och avbrottsrutiner i UNIX-terminologi: Drivrutin = top half device driver Avbrottsrutin = bottom half device driver OS Föreläsning 5, I/O 34

Drivrutiner forts. Vilka drivrutiner som finns i OS-kärnan kan: Konfigureras när man bygger kärnan -Vanligt i äldre system och i system där nya I/O-enheter inte kommer till särskilt ofta Länkas in vid behov (dynamisk länkning) - Vanligt i system där nya I/O-enheter tillkommer ofta och där användaren inte kan förväntas veta hur man konfigurerar/bygger en kärna (PC) Hur hanteras enheter som kan ryckas ur läggas till under drift? (hot-pluggable) OS Föreläsning 5, I/O 35

Hårdvaruoberoende I/O-kod i kärnan Inte del av drivrutin Sköter infrastruktur Enhetligt gränssnitt mot I/O-enheter Större delen av kärnan behöver inte bry sig om något är en fil, terminal, tangentbord, pipe... Enhetlig blockstorlek Namngivning, åtkomstskydd, reservering Buffring Filsystem OS Föreläsning 5, I/O 36

Delar av I/O-systemet utanför kärnan Spooling lägga filer i kö för utskrift Biblioteksrutiner för: Mer direkta systemanrop ex: read, open, creat Formatterad I/0: printf, scanf OS Föreläsning 5, I/O 37

Skiktad struktur hos I/O-system OS-kärna hårdvara user level device independent kernel code device drivers interrupt handlers device controller (adapter) device Spooling, I/O-biblioteksrutiner Filsystem, namn, skydd, buffring, reservering, blockstorlek OS-vänligare gränssnitt för att styra I/O-enheter. Skrivs av tillverkaren. Kontrollerar resultat, schemalägger processen som väntat på I/O Styr- och kontrolldelen av I/Oenheten: -kontroll- och dataregister -mer avancerad styrenhet med processor mm. Ex. IDE-controller OS Föreläsning 5, I/O 38

Skiktat I/O-system Kernel Kernel I/O subsystem SCSI device driver keyboard device driver mouse device driver... PCI device driver IDE device driver floppy device driver SCSI device controller keyboard device controller mouse device controller... PCI device controller IDE device controller floppy device controller SCSI disk keyboard mouse... PCI device IDE disk floppy device OS Föreläsning 5, I/O 39

Några detaljer Buffring och cachning Strömförsörjning

Buffring och cachning User space Kernel Network controller Buffert håller original Cache håller kopia för effektivitetsskäl Vissa I/O-enheter kan man inte styra hur mycket data som kommer in över Ex: nätverksenheter Man använder ofta dubbla buffertar i kärnan för att ta hand om indata OS Föreläsning 5, I/O 41

Strömförsörjning - energibesparing Alla världens datorer drar mycket ström! Det finns mycket energi att spara Portabla och handhållna terminaler: Som är batteridrivna är extra känsliga för stor effektförbrukning kort batterlivslängd Ex: NOKIA körde om Ericsson genom - längre batterilivslängd (och design) OS kan spara ström b.la. genom att: Stänga av enheter vid behov Schemalägga I/O på så effektsnålt sätt som möjligt I vissa fall kan man sänka spänning och klockfrekvens på CPUn för att spara energi OS Föreläsning 5, I/O 42

Exempel på I/O-enheter Hårddiskar (Klockor) Terminaler

Hårddiskar Hårddisken indelad i spår med ett antal sektorer per spår Kan ha en fysisk geometri med t.ex: Olika antal sektorer/spår beroende på var på disken spåret ligger Virtuell geometri (det programmeraren ser) kan skilja sig från den fysiska En sektor innehåller b.la. felrättande koder för att kunna upptäcka och ev. korrigera läs/skrivfel. preamble data ECC ex: 512 byte ex: 16 byte OS Föreläsning 5, I/O 44

Diskparametrar exempel Parameter IBM 360KB floppy WD 18.3 GB Söktid intilliggande cylinder 6 msec 0.8 msec Söktid i medel 77 msec 6.9 msec Rotationstid 200 msec 8.33 msec Motor start/stopp tid Överföringstid 1 sektor 250 msec 20 sec 22 msec 17 microsec OS Föreläsning 5, I/O 45

Diskarmsschemaläggning FCFS SSF SCAN Eftersom söktiderna är relativt stora är det viktigt att schemalägga hur diskarmen (läs/skrivhuvudena) flyttas Varianter FCFS: First Come First Serve (inte särskilt bra) SSF: Shortest Seektime First (svältningsrisk) SCAN (hissalgoritm), C-SCAN LOOK, C-LOOK C-SCAN OS Föreläsning 5, I/O 46

Varför buffert i disk enheten? I många diskenheter finns en buffert (eller cache) Den kan användas för att: Mellanlagra information som läses från den fysiska disken men som inte hinner skickas över bussarna Mellanlagra läs/skrivbegäran för att bättre kunna schemalägga dem Cacha information som läses med read-ahead, dvs. man chansar på att block som följer direkt efter ett läst block också kommer att läsas OS Föreläsning 5, I/O 47

Stable storage - hur man undviker att tappa data vid diskkrasch Ha två (eller flera) fysiska diskar Alla skrivningar/läsningar går till bägge diskarna (spegling) Vid skrivning kontrollera att bägge skrivningarna lyckas Vid läsning kontrollera att bägge läsningarna lyckas och ger samma resultat OS Föreläsning 5, I/O 48

RAID - Redundant Array of Inexpensive (Independent) Disks Block En hårddisk controller kan ofta hantera flera hårddiskar och läsa/skriva samtidigt till dem Data strimlas stripas till flera olika diskar Block striping: Ett block delas i flera delar som skrivs/läses samtidigt till flera diskar Genom att dessutom placera ut felrättande koder på diskarna kan man återskapa innehållet om en (eller möjligen några) av diskarna kraschar OS Föreläsning 5, I/O 49

Grafiska terminaler graphics controller AGP Video RAM CPU cache DRAM (north bridge) De flesta grafiska terminaler använder raster (bitmap) grafik Windows har en uppsjö systemanrop för att hantera grafiska terminaler och fönster UNIX: Vanligast är X-klient/server i user-space OS Föreläsning 5, I/O 50

X - grafik som användarprocesser i UNIX Applikation Window manager Utseende (Motif) Intrinsic toolkit Xlib X-klient UNIX Hårdvara X-server UNIX Hårdvara Remote host (shell.it.kth.se) Terminal (laptop) OS Föreläsning 5, I/O 51

I/O i UNIX I/O-enheter monteras i filsystemet i /dev Character special files Block special files Major device number: identifierar device driver som används Minor device number: identifierar enheten om device drivern hanterar flera enheter Sockets: en abstraktion som används för nätverkskommunikation Man har försökt ha ett systemanrop som skulle klara alla typer av enheter: ioctl() Blev ganska komplicerat till slut inte del av POSIX OS Föreläsning 5, I/O 52

UNIX - kärnans datastrukturer för I/O Per process fildescriptortabeller Gemensam tabell för öppna filer Filsystemsrecords Filposition r/w pekare till i-node Filposition r/w pekare till i-node Nätverksrecords Pekare till: nätverksinfo läs/skriv funk. etc. i-nodes tabell för öppna filer Nätverks informations tabell (med i-noder) OS Föreläsning 5, I/O 53

Summering vad vi pratat om idag I/O Typer av I/O-enheter Struktur hos I/O-systemet Hårddiskar, terminaler I/O i UNIX OS Föreläsning 5, I/O 54

Kommande föreläsningar och övningar Nästa föreläsning: Trådar och multiprocessorer OS Föreläsning 5, I/O 55