De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque] The value of a system grows as the square of its number of users Metcalfe’s law – Robert Metcalfe.

Verwante presentaties


Presentatie over: "Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque] The value of a system grows as the square of its number of users Metcalfe’s law – Robert Metcalfe."— Transcript van de presentatie:

1 best8-1 Les 8: Input/Output [Lat: datarum initus exitusque] The value of a system grows as the square of its number of users Metcalfe’s law – Robert Metcalfe.

2 best8-2 I/O hardware Toetsenbord: 10 B/s Muis: 100 B/s Modem: 7 KiB/s Laserprinter: 100 KiB/s Scanner: 400 KiB/s Ethernet: 12.5 MB/s USB 1.0: 1,5MB/s CD-ROM: 6 MB/s FireWire: 50MB/s SCSI: 80MB/s Sun Gigaplane: 20 GB/s

3 best8-3 Kenmerken Input/Output AspectVariatieVoorbeeld TransfergrootteTeken Blok Terminal Disk ToegangsmethodeSequentieel Direct Modem CD-ROM TransferSynchroon Asynchroon Tape Toetsenbord DelenGedeeld Exclusief Toetsenbord Tape Snelheid10 B/s 80 MB/s Toetsenbord Disk IO-richtingRead-only Write-only Read-write CD-ROM Graphics controller Disk Doel IO: uniforme interface voor gebruiker, applicatie, kern

4 best8-4 Overzicht Situering IO-systeem –IO-bibliotheek –IO-subsysteem –Device drivers –Onderbrekingsroutines Schijfbeheer –Opbouw –Schijfplanning –RAID –Opslagsystemen

5 best8-5 Problematiek toetsenbord harde schijfCD-ROMmuis kern Communicatie met randapparaat gebeurt in systeemmode

6 best8-6 Interactie met randapparaten Geprogrammeerde overdracht Onderbrekingen Directe geheugentoegang (DMA)

7 best8-7 Geprogrammeerde I/O copy_from_user(buffer, p, count); for (i=0; i

8 best8-8 Onderbrekingen copy_from_user(buffer, p, count); while (*printer_status != READY) /* wacht */; enable_interrupt(PRINTER); *printer_data = p[0]; i = 1; wait(signaal); copy_from_user(buffer, p, count); while (*printer_status != READY) /* wacht */; enable_interrupt(PRINTER); *printer_data = p[0]; i = 1; wait(signaal); if (i > count) { disable_interrupt(PRINTER); signal(signaal); } else { *printer_data = p[i]; i++; } return_from_interrupt(); if (i > count) { disable_interrupt(PRINTER); signal(signaal); } else { *printer_data = p[i]; i++; } return_from_interrupt(); onderbrekingsroutine

9 best8-9 DMA copy_from_user(buffer, p, count); set_up_DMA (p, count, port); wait(signaal); copy_from_user(buffer, p, count); set_up_DMA (p, count, port); wait(signaal); signal(signaal); return_from_interrupt(); signal(signaal); return_from_interrupt(); onderbrekingsroutine Asynchrone communicatie

10 best8-10 Blokkerende en niet-blokkerende IO blokkerendniet-blokkerendasynchroon

11 best8-11 Overzicht Situering IO-systeem –IO-bibliotheek –IO-subsysteem –Device drivers –Onderbrekingsroutines Schijfbeheer –Opbouw –Schijfplanning –RAID –Opslagsystemen

12 best8-12 Uniforme interface toetsenbordharde schijfCD-ROMmuis kern blokapparatentekenapparaten IO-subsysteem IO: subsysteem

13 best8-13 kern IO-structuur

14 best8-14 Overzicht I/O Softwarelagen IO-bibliotheek IO-subsysteem Device driver s printf, scanf, >>, << write, read usb_write, usb_read usb_interrupt IO-bibliotheek IO-subsysteem Device drivers Onderbrekingen Hardware IO: bibliotheek & IO: subsysteem

15 best8-15 IO-bibliotheek vs. IO-subsysteem char buffer[N]; int sum = 0; int h = open(“t.t",O_RDONLY); while (sum < 8192*1024) { read(h, buffer, N); sum += N; } close(h); char buffer[N]; int sum = 0; FILE *h = fopen(“t.t","r"); while (sum < 8192*1024) { fread(buffer, 1, N, h); sum += N; } fclose(h); IO-bibliotheekIO-subsysteem

16 best8-16 IO-bibliotheek vs. IO-subsysteem read (syscall) fread (io-bib) ms log 2 (N) Buffergrootte Totale uitvoeringstijd

17 best8-17 Uitvoeringstijd read vs. fread log 2 (N) ns read (syscall) fread (io-bib) Kost syscall overweegt Kopieerkost overweegt 5 μs 70 ns 1,6-2,0 ns/byte Buffergrootte Uitvoeringstijd leesoperatie

18 best8-18 IO-subsysteem IO Planning Buffering Caches Spooling Foutafhandeling Apparaatbeheer IO-subsysteem read/write

19 best8-19 IO-Planning IO-subsysteem Device driver ? IO: planning

20 best8-20 Buffering 100 MiB/s10 MiB/s 10 KiB 1 KiB 10 KiB 1MiB/s Snelheidsverschil overbruggen Verschil in blokgrootte overbruggen Kopieersemantiek bewaren

21 best8-21 Caches OmstandigheidUitvoeringstijd Eerste keer249 ms Tweede keer25 ms Na enige tijd140 ms Lezen van 8 MiB in 8 blokken van 1 MiB Bestandssysteem: cache

22 best8-22 Spooling Device driver IO-subsysteem Printer daemon Proces 1Proces 2

23 best8-23 Foutafhandeling int h = open(“…); if (h == -1) { printf(“%d\n”, errno); printf(“%s\n”, strerror(errno)); perror(“testprogramma”); }./a.out 2 No such file or directory testprogramma: No such file or directory

24 best8-24 Apparaatbeheer Beheer ondeelbare apparaten –Via open() en close() op speciale bestanden. Indien apparaat in gebruik, faalt de open(). –Soms zijn er speciale primitieven die blokkeren indien het apparaat in gebruik is (allocate/deallocate).

25 best8-25 Overzicht I/O Software lagen IO-bibliotheek IO-subsysteem Device drivers printf, scanf, >>, << write, read usb_write, usb_read usb_interrupt IO-bibliotheek IO-subsysteem Device drivers Onderbrekingen Hardware

26 best8-26 Device drivers Er zijn essentieel vier types Blokapparaten Tekenapparaten Netwerkapparaten Andere (klokken, timers,…)

27 best8-27 Blokapparaten Doorgaans gebruikt bij opslagapparaten: bv. schijf Leest/schrijft per blok (bv.512 bytes) Adresseerbaar, kan elk blok apart manipuleren (random access) Operatie: ioctl voor extra commando buiten read, write, seek. Vaak gelinkt met een bestandssysteem Blokken kunnen in het geheugen afgebeeld worden (memory mapped files). Device driver: blokapparaat

28 best8-28 Tekenapparaten Leest/schrijft stroom van bytes Niet adresseerbaar (sequentiële toegang) Operaties: read, write Soms interactieve editeermogelijkheden Vb: toetsenbord, muis, seriële poort Device driver: tekenapparaat

29 best8-29 Netwerkapparaten Verschillen voldoende van blok- en tekenapparaten om een eigen interface te hebben. Unix en Windows voorzien in een socketinterface –Scheiding tussen protocol en werking van het netwerk –Biedt een select functie aan om tegelijk verschillende sockets in het oog te kunnen houden. Vb: sockets, maar ook pipes, FIFOs, streams, queues, mailboxes Device driver: netwerkapparaat

30 best8-30 Andere: klokken en timers Basisfuncties: huidige tijd, verstreken tijd, timer Programmeerbare intervaltimer wordt gebruikt b.v. om een tijdskwantum af te bakenen, om processen te alarmeren op een afgesproken tijdstip, als waakhond, of om te profileren. De aansturing van de timers gebeurt doorgaans via ioctl (bij gebrek aan beter) Device driver: timer

31 best8-31 Kloksoftware: tijd bijhouden Tijd sinds 1 januari 1970 (Unix) 1980 (Windows) Synchronisatie  computers over netwerk: NTP (network time protocol) 60 kloktikken/seconde: 32 bit gaat maar voor 2 jaar → meer bits nodig.

32 best8-32 Kloksoftware: alarmeren van processen Huidige tijd timerlijst PCB Timerwaarde 40 softwaretimers

33 best8-33 Windows Device Driver Model IO Request Packet IO requests Plug-and-play Vermogenbeheer Herbetreedbaar Alle Windows versies Herconfigureerbaar Device driver: windows

34 best8-34 Unix Special Files mknod naam c major minor mknod naam b major minor mknod naam p mknod naam c major minor mknod naam b major minor mknod naam p In /dev directory driverrandapparaat

35 best8-35 Device tabel init open close write read ioctl intr strategy Device major number

36 best8-36 Voorbeeld #include #define DEVICE ”/dev/ttyp5” main() { int handle = open(DEVICE,O_WRONLY); if (handle != -1) { write(handle, ”Hallo\n”, 6); close(handle); } else fprintf(stderr, ”Cannot open %s\n”,DEVICE); }

37 best8-37 Unix System V Streams

38 best8-38 Prestaties IO is een belangrijke factor in de prestatie van een systeem (zeker voor b.v. databanken en webservers). –De driver moet zo efficiënt mogelijk gecodeerd worden, de aanwezige hardware moet maximaal geëxploiteerd worden (b.v. DMA) –Het aantal contextwisselingen (incl. onderbrekingen) moet tot het minimum beperkt worden –Het kopiëren van data moet zoveel mogelijk beperkt worden

39 best8-39 Overzicht Situering IO-systeem –IO-bibliotheek –IO-subsysteem –Device drivers –Onderbrekingsroutines Schijfbeheer –Opbouw –Schijfplanning –RAID –Opslagsystemen

40 Structuur harde schijf best8-40

41 best8-41 Formattering 1.Fysieke formattering: verkaveling van de schijfoppervlakte in sporen en sectoren. 2.Partitioneren: aanbrengen van partities + master boot record. 3.Logische formattering: aanbrengen in een partitie van de boot sector en leeg bestandssysteem preamble dataecc preamble dataeccvrij preamble: synchronisatiepatroon, ID ECC (paar % overhead) Vrij: veiligheidsmarge

42 best8-42 Schijfgeometrie

43 best8-43 Cilinderverschuiving ( cylinder skew )

44 best8-44 Indeling: interleaving

45 best8-45 Foutafhandeling: Magnetische fouten Sector slippingSector forwarding

46 Wet van Kryder best8-46 Schijfcapaciteit verdubbelt per jaar Kryder, wet van

47 LMR vs. PMR best nm x 14 nm

48 Shingled Magnetic Recording best8-48

49 Heat assisted magnetic recording best8-49

50 Bit Patterned Media best8-50

51 Disk cost-per-byte best8-51

52 Evolutie opslagdensiteit best8-52

53 Flash Veel duurder dan harde schijven ($0,50/GiB ipv $0,05/GiB) Onvoldoende productiecapaciteit (fabs) Betrouwbaarheid: cycli voor SLC (cellen met 1 bit) en cycli voor MLC (50 nm technologie; voor <20nm: cycli) Retentie: jaar voor nieuwe cellen. Na cycli: 6-12 maand bij 50°C. Ook lezen beschadigt de cel. best8-53

54 best8-54 CD-ROM Muziek: symbolen en frames; 2x foutcorrectie Frame past niet echt bij data (588 bit = 73,5 B) Sector: 98 frames –bevat 2048 data bytes + 3e foutcontrole (ECC) Sector: totale omvang 7203 bytes, zeer veel overhead (351,7%)

55 best8-55 Schijfplanning 98, 183, 37, 122, 14, 124, 65, 67 De kop bevindt zich op spoor 53 Zoektijd Latentie Transfertijd

56 best8-56 First-Come First-Served ( FCFS ) Totale afgelegde afstand = 640 cilinders.

57 best8-57 Shortest Seek Time First ( SSTF ) Totale afgelegde afstand = 236 cilinders

58 best8-58 SCAN (busalgoritme) Totale afgelegde afstand 236 cilinders.

59 best8-59 C-SCAN Totale afgelegde afstand 382 cilinders.

60 best8-60 C-LOOK (liftalgoritme) Totale afgelegde afstand 322 cilinders.

61 best8-61 RAID Redundant Array of Independent/Inexpensive Disks Idee: meerdere schijven om de betrouwbaarheid en/of de prestatie te verhogen Transparant, lijkt op gewone enkele schijf Typisch SCSI schijven, nu ook IDE RAID controllers

62 best8-62 Betrouwbaarheid verhogen door redundantie Verlies van 1 schijf is geen ramp indien de informatie van de schijf kan gereconstrueerd worden. Systeem is kwetsbaar indien er tijdens de hersteltijd een tweede fout optreedt Probleem: wet van Kryder (capaciteit x 2 per jaar) → hersteltijd neemt toe (tot 1 dag)

63 best8-63 Prestatie verbeteren door parallellisme Indien informatie over verschillende schijven verspreid ligt, kunnen de verschillende schijven parallel gebruikt worden.

64 best8-64 RAID-0 Striping op sector/blokniveau Grote transfers: lees/schrijfsnelheid x N (N=4) Kleine transfers ≤ 1 blok: geen verbetering Grote bestanden: 1 schijf kapot: alle bestanden verloren

65 best8-65 RAID-1 mirroring Leessnelheid x 2, schrijfsnelheid / 1,2 Capaciteit: /2

66 best8-66 RAID-0+1 Striping+mirroring Leessnelheid: x 2N, schrijfsnelheid x N / 1,2 (N=4) Blokken 0-7 kunnen parallel gelezen worden Blokken 0-3 kunnen parallel geschreven worden

67 best8-67 RAID-1+0 Mirroring + striping

68 best8-68 RAID-2 Striping op bitniveau + ECC p0p1p2 p3p4p5 p6p7p8 ECC

69 best8-69 RAID-3 Striping op bitniveau + pariteit p0 p1 p2

70 best8-70 RAID-4 Striping op sector/blok-niveau + pariteit p0 p1 p2

71 best8-71 RAID-5 Striping op sector/blok-niveau + gedistribueerde pariteit p1 89p2 10 p0 7 11

72 best8-72 RAID-6 Striping op sector/blok-niveau + 2 pariteitsbits p1 89p2 p2’ p0 p1’ 10 p0’ 7 11

73 Raid-6 effect best8-73 [dam Leventhal, Triple-Parity RAID and Beyond, Communications of the ACM, Vol. 53 No. 1, Pages 58-63, Jan 2010]

74 best8-74 Opslagsystemen Schijven kunnen verbonden worden met een computer 1.Via een IO-poort (IDE, SCSI, SATA,…) 2.Via een netwerk 1.NAS: Network attached storage 2.SAN: Storage area network

75 best8-75 Network-Attached Storage ( NAS )

76 best8-76 Storage-Area Network ( SAN )

77 best8-77


Download ppt "Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque] The value of a system grows as the square of its number of users Metcalfe’s law – Robert Metcalfe."

Verwante presentaties


Ads door Google