1 / 195

Input / output

Input / output. Operativsystemer. Input / output. En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus, harddisk, CD/DVD enheter, printer, … En viktig oppgave for et operativsystem er å kommunisere med enheter tilkoblet datamaskinen. Input / output.

kapila
Télécharger la présentation

Input / output

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Input / output Operativsystemer

  2. Input / output • En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus, harddisk, CD/DVD enheter, printer, … • En viktig oppgave for et operativsystem er å kommunisere med enheter tilkoblet datamaskinen. Operativsystemer

  3. Input / output • Input/output utstyr kan deles i to kategorier etter hvordan det overfører data • Blokk utstyr • Bokstav utstyr Operativsystemer

  4. Input / output • Blokk utstyr (block devices) lagrer data i blokker. • Hardisker, CD-ROM og USB-penner er eksempler på blokk utstyr. Operativsystemer

  5. Input / output • Hver blokk har en adresse. • Vanlig størrelse på en blokk er mellom 512 bytes og 32768 bytes. Operativsystemer

  6. Input / output • Bokstav utstyr (Character Devices) er en annen type input/output utstyr. • Bokstav utstyr sender og mottar data som bokstaver. Operativsystemer

  7. Input / output • Eksempler på bokstav utstyr er tastatur, mus, skrivere og nettverktilkoblinger. • Utstyr som ikke er disker er oftest bokstav utstyr. Operativsystemer

  8. Input / output • Input og output har vært et problem innen operativsystemer. • En årsak er den store forskjellen i hastigheter i et datamaskinsystem. Operativsystemer

  9. Input / output Hastigheter for ulikt utstyr Tastatur 10 bytes / sekund Mus 100 bytes / sekund 72x CD-ROM 11 Mb / sekund SAS disk 129 Mb / sekund USB 3.0 400 MB/ sekund PCI buss 528 MB / sekund Operativsystemer

  10. Input / output • I prosessor og minne behandles data veldig raskt. • Kommunikasjon med perifere enheter går til sammenligning svært langsomt. Operativsystemer

  11. Input / output • Å skrive til skjerm er en langsom prosess. • Å skrive til fil er en langsom prosess. • En bruker som skriver på et tastatur venter ofte flere sekunder før han taster et tegn. Operativsystemer

  12. Input / output • Å vente på input/output enheter er for prosessor dårlig utnyttelse av tiden. • For å unngå venting brukes derfor mekanismer som bufring og direkte tilgang til minne. Operativsystemer

  13. Input / output • Enheter som knyttes til en datamaskin er av mange forskjellige fabrikater. • For eksempel er det mange typer skjermer og skrivere. Operativsystemer

  14. Input / output • Det ville være tungvint hvis programmerere skulle lage kode for hver type skjerm eller skriver som skulle bruke programmet. • For at det ikke skal bli tungvint for programmer å kommunisere med I/O enheter tar operativsystemet seg av dette. Operativsystemer

  15. Input / output • En programmerer kan for eksempel bruke WriteLine() i et program uten å behøve tenke på hva slags type skjerm som er knyttet til datamaskinen. Operativsystemer

  16. Input / output • Operativsystemet tar seg av kommunikasjonen med skjerm, filer, printere og liknende. • Programmere behøver ikke tenke på dette når de lager programmer. • Programmer skal fungere på forskjellige maskiner som har ulikt utstyr tilkoblet. Operativsystemer

  17. Input / output • Operativsystemet tar seg også av feil som kan oppstå ved kommunikasjon med input/output enheter. • Operativsystemet bør kunne • Oppdage feil. • Rette opp feil. Operativsystemer

  18. Input / output • Det er mange feil som kan oppstå ved bruk av input/output enheter. • Operativsystemet bør for eksempel kunne oppdage om et program forsøker å skrive til en fil som er åpnet for lesing. • Operativsystemet bør også kunne gjenkjenne korrupte data. Operativsystemer

  19. Input / output • Iblant lykkes operativsystemet med å rette opp feil som oppstår. • Klarer operativsystemet å rette opp en feil vil det normalt ikke gi beskjed om dette til programmet hvor feilen oppsto. Operativsystemer

  20. Input / output • Kommunikasjon mellom programmer og perifert utstyr blir tatt hånd om av I/O subsystem. • I/O subsystem kalles den del av operativsystemet som tar seg av kommunikasjonen med skjerm, skrivere, filer, osv. Operativsystemer

  21. Input / output • Før et program kan benytte en input/output enhet må det åpnes en forbindelse til den (Stream). • For eksempel skal et program åpne en fil benyttes funksjonskall som open(pathname, flags); Operativsystemer

  22. Input / output • Følgende gir en oversikt over hva som skjer når en fil åpnes • Lete opp katalogen filen er på. • Hvis filen ikke fins, opprette den. • Sjekke rettigheter tilknyttet filen. • Sjekke om filen allerede er åpnet. • Lage datastrukturer som representerer. • Gi brukerprogram en peker til filen. Operativsystemer

  23. Input / output • Når en datastrøm (Stream) er åpnet kan den være åpen så lenge vi ønsker. • Operativsystemet må imidlertid holde rede på datastrømmer som er åpne. • Operativsystemet har derfor en datastruktur for å holde rede på dette. Operativsystemer

  24. Input / output • Før operativsystemet kan åpne en fil må det undersøke hvilken tilgang brukeren har til filen. • Det er mange forskjellige rettigheter som kan være til filer • Skrive, lese, endre, slette, … Operativsystemer

  25. Input / output • Når et program åpner en fil blir dette registrert i en fildeskriptor. • Prosessen og alle tråder tilhørende prosessen har tilgang til denne fildeskriptoren. Operativsystemer

  26. Input / output • Fildeskriptoren er en tabell som holder rede på åpne filer. • Hver gang et program åpner en fil blir det opprettet en ny rad i tabellen som har informasjon om filen som er åpnet. Operativsystemer

  27. Input / output • Når en ny prosess starter blir det automatisk opprettet tre datastrømmer for prosessen. • Standard input // Tastatur • Standard output // Skjerm • Standard error // Skjerm Operativsystemer

  28. Input / output • I forbindelse med filer har systemet to tabeller. • Lokal filtabell • Global filtabell Operativsystemer

  29. Input / output • Systemet har en array med datastrukturer som kalles lokal filtabell. • Den lokale filtabellen innholder data om filen som er gitt med åpningen av filen. • Den lokale filtabellen inneholder data som er relevante for prosessen som har åpnet filen. Operativsystemer

  30. Input / output • Det er også informasjon om åpne filer som ikke er av interesse for prosessen som har åpnet filen. • Slike data lagres i en global filtabell. Operativsystemer

  31. Input / output • Input og output er langsomme prosesser. Dette innebærer at systemet må vente ved input/output. • Hvor lenge systemet må vente varierer. • Fra noen millisekunder for å lagre til disk og opp til flere minutter for å vente på tegn fra tastaturet. Operativsystemer

  32. Input / output • Istedenfor å vente på input/output operasjoner ville det kanskje være bedre for en tråd å gjøre noe annet. • Men dette lar seg i mange tilfeller ikke gjøre. • Har man for eksempel i et program skrevet ReadLine(), kan ikke programmet forsette før det har lest inn dataene. Operativsystemer

  33. Input / output • Ved output går det gjerne noe bedre. • Har vi skrevet WriteLine() i et program kan programmet som oftest fortsette uten å vente til utskriften har skjedd. Operativsystemer

  34. Input / output • Det er to måter for en tråd å forholde seg til input/output. • Blokkering • Ikke blokkering Operativsystemer

  35. Input / output • Ved blokkering vil et program vente med å fortsette inntil en input/output operasjon er utført. • Denne ventingen kan skje ved at tråden sover. Som ved Thread::Sleep(). • Blokkering kalles på engelsk for Synchronous I/O eller Wait I/O. Operativsystemer

  36. Input / output • Ved ikke blokkering fortsetter programmet å kjøre uten å vente på at input/output operasjonen er utført. • Dette kalles på engelsk for Asynchronous I/Oeller Nowait I/O. Operativsystemer

  37. Input / output • Ikke blokkering krever synkronisering i programkoden til programmet. • Synkronisering kan for eksempel skje ved hjelp av en semafor, som får programmet til å vente til det får et signal fra driveren. Operativsystemer

  38. Input / output • Bruk av semafor ved ikke blokkering gir gjerne samme effekt som blokkering. • Men det er mulig at programmet utfører noe programkode før semaforen stopper programmet, for å vente på en input/output operasjon. Operativsystemer

  39. Input / output • Ved output benyttes ofte et buffer. • Skal man for eksempel skrive til en skriver og skriveren er opptatt kan man skrive utskriften til et buffer isteden. • Programmet kan da fortsette og skriveren kan skrive ut innholdet i bufret når den er klar med andre oppgaver. Operativsystemer

  40. Input / output • Fordelen ved å bruke buffer er at det sparer tid. • Straks et program har skrevet til bufret kan det fortsette. • En ulempe med bufring er at det krever plass på en harddisk. Operativsystemer

  41. Input / output • Når en prosess skriver til en fil kan det være nødvendig å lukke tilgang til den for andre prosesser. • Mekanismer som lukker en fil eller en del av en fil kalles på engelsk for Locks. Operativsystemer

  42. Input / output • Vi skal nå se på hvordan operativsystemet kommuniserer med hardware. • Det som skal skje er at signaler fra perifert utstyr som for eksempel tastatur skal overføres til datamaskinens minne. Operativsystemer

  43. Input / output • En måte å ta vare på data fra tastaturet på er å legge det i et register. • Da kan prosessor sjekke registeret ved jevne mellomrom og oppdatere programmer med disse dataene. • Denne metoden kalles Polling. Operativsystemer

  44. Input / output • Å bruke et register til å ta vare på tastatur trykk har den ulempen at lesing og skriving til registeret ikke er synkronisert. • Skrivingen til registeret kan gå fortere enn lesingen eller omvendt. Operativsystemer

  45. Input / output • Et tastetrykk kan bli overskrevet fordi det kommer to trykk etter hverandre før prosessor har lest registeret. • Eller prosessor kan lese inn det samme tastetrykket to ganger fordi det ikke har kommet noe nytt. Operativsystemer

  46. Input / output • For å løse dette problemet brukes to registre • Et register som tar vare på tastetrykket. • Et register som viser status. Det vil si om prosessor har lest registeret eller ikke. Operativsystemer

  47. Input / output • Ved Polling kontrollerer prosessor registrene med jevne mellomrom. • Dette er imidlertid en tungvint metode fordi det er mange registre. • Hver perifer enhet har registre. Operativsystemer

  48. Input / output • Polling metoden er ikke god fordi det mangler synkronisering. • Prosessor kan sjekke på feil tidspunkt. Enten er det ikke noe i registrene eller de er overfylt. Operativsystemer

  49. Input / output • Derfor benyttes avbruddssignaler (Interrupts). • Interrupts gjør at hver perifer enhet kan gi beskjed til prosessor om at nå er det noe nytt i registeret. Operativsystemer

  50. Input / output • Ved å bruke avbruddssignaler kan prosessor holde på med sitt uten å tenke på perifere enheter. • De perifere enhetene gir beskjed til prosessor, når de har data til prosessor. Operativsystemer

More Related