Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque]

Slides:



Advertisements
Verwante presentaties

Advertisements

Data Acquisition & Control System
Embedded systemen Embedded software.
HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
>>0 >>1 >> 2 >> 3 >> 4 >> Adobe Premiere CS4 – Edius 5.5 – Adobe Elements 7.
Computers Door: Jelle Smits 3TG erste.
PROS2 Les 9 Programmeren en Software Engineering 2.
De PC bestaat uit Systeemkast Monitor of beeldscherm
Kennismaking met de computerconfiguratie
Opdracht 2.3 Een zaak vol willekeur
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.

Customer confidential
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 8(1): Het Operating.
Wa's een NAS? Network Attached Storage voor thuisgebruik.
Mindere specs, hogere prijs! (715 = 1.6???). IBM THINKPAD R51 Mobile Intel Pentium M GHz 40GB vaste schijf, 256MB DDR, maximaal 2GB 10/100Mbps.
Hardware (2) SGDB Informatica.
Wim van Duijn Applicatie engineer Douwe Wagenaar
Programmeren in Java met BlueJ
Opleiding ICT © J.W. Jonker Dia 1/22 Systemen Besturingssoftware Windows XP Mark van Heck.
DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
OPSLAGMEDIA Evy Van Cleemputte.
ADuC8xx MICROCONVERTER
Over computers.
ICT Infrastructuur.
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
HM-ES-th1 Les 1 Hardware/Software Codesign with SystemC.

De computer: Hardware Het beeldscherm Het toetsenbord De muis
ICT 1ste graad Kennismaken met computerconfiguratie Tijdens de eerste jaren van het secundair onderwijs, hebben jullie reeds kunnen kennismaken met de.
Blok 2 les 1.
Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Real-Time Systems (RTSYST) Week IPC inter process communication Shared variabele based (H5) Message based (H6) Kan ook gebruikt worden in systemen.
HM-ES-th1 Les 3 Hardware/Software Codesign with SystemC.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur laag-niveau programmeren uit hoofdstuk 15 van Alan Burns, Andy Wellings,
Werken aan Intergenerationele Samenwerking en Expertise.
1Ben Bruidegom 1 Micro controllers introduction. 2Ben Bruidegom 2 Areas of use & Numbers of machines You might have 1 or 2 Pentium class chips at home.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  basis files: ram-rom.zip.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen seriele interface (UART -
Economische impact sluiting Ford Genk Ludo Peeters en Mark Vancauteren (Universiteit Hasselt)
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
Hoofdstuk 13.6 File-I/O. Files n40 verschillende klassen in library java.io Exceptions niet meegeteld... nMethodes voor het plegen van Input en Output.
Een presentatie door Marthijn Loermans, Antonio Deda en Axel Martens
Contributie van videomateriaal voor broadcast Klaas-Pieter Looren de Jong.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
Moederbord en blu-ray.
Raw Device Mapping Bouke Groenescheij Technical Trainer, XTG.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen Code paging Switch bounce.
Les 1a De PC © Johan Jacobs.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
Achterkant laptop. Zijkant laptop S-Video Poort Deze poort wordt gebruikt om de computer via een kabel aan de tv te koppelen. De S-video poort verdeeld.
[Lat: datarum initus exitusque]
Computersystemen Module Initiatie – Jurgen Peeters.
Module code: 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer 1 Operating Systems.
Hardware (2) SGDB Informatica.
Operating Systems Informatica.
3 Hardware 3.4. Extern geheugen.
3 Hardware 3.3 Moederbord, slots en bussen.
Hardware (2) SGDB Informatica.
Hardeware.
Computer Quiz.
Transcript van de presentatie:

best8-1 Les 8: Input/Output [Lat: datarum initus exitusque]

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

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

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

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

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

best8-7 Geprogrammeerde I/O copy_from_user(buffer, p, count); for (i=0; i<count; i++) { while (*printer_status != READY) /* wacht */; *printer_data = p[i]; } copy_from_user(buffer, p, count); for (i=0; i<count; i++) { while (*printer_status != READY) /* wacht */; *printer_data = p[i]; }

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

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

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

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

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

best8-13 kern IO-structuur

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

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

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

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

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

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

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

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

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

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

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).

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

best8-26 Device drivers Blokapparaten Tekenapparaten Netwerkapparaten Andere (klokken, timers,…)

best8-27 Blokapparaten Leest/schrijft per blok (typisch 512 bytes) Adresseerbaar, kan elk blok apart benaderen (random access) Operatie: ioctl Vaak gelinkt met een bestandssysteem Vb: schijf Blokken kunnen in het geheugen afgebeeld worden (memory mapped files).

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

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 Vb: sockets, maar ook pipes, FIFOs, streams, queues, mailboxes

best8-30 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)

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.

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

best8-33 Windows Device Driver Model IO Request Packet

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

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

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); }

best8-37 Unix System V Streams

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

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

best8-40 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

best8-41 Schijfgeometrie

best8-42 Cilinderverschuiving (cylinder skew)

best8-43 Indeling: interleaving

best8-44 Foutafhandeling: Magnetische fouten Sector slippingSector forwarding

best8-45 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) Frame: totale omvang 7203 bytes, zeer veel overhead (251,7%)

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

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

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

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

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

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

best8-52 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

best8-53 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

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

best8-55 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

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

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

best8-58 RAID-1+0 Mirroring + striping

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

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

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

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

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

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

best8-65 Network-Attached Storage (NAS)

best8-66 Storage-Area Network (SAN)