http://en.wikipedia.org/wiki/Input/output
Kahe süsteemi välissüsteemi(keskkonnaga) suhtlemine.
nt inimene ja arvuti; arvuti ja internet; millegi allalaadimine jne
Arvuti eesmärk juhtida mingit protsessi /seadet.
sisendid on signaalid või andmed mida vastu võetakse ja vastupidi.
(pildil kast on arvuti)
Seadmeid võivad kasutada inimesed või teised seadmed.
Sisendseadmead - keyboard, mouse, scannerid
Väljundseadmed - monitor, printer, kõlarid
modem -
modulate &
demodulate, nagu raadio. seade mis eristab signaale. modulaaror liidab 2 signaali, demodulaator lahutab 2 signaali. võtab ja väljundab singaale. võimaldab kahepoolset sidet.
Oli kunagi esmane interneti saamise viis. tänapäeval kasutame selle asemel võrgukaablit. tänapäeva sülearvutites on modemid sisseehitatud.
I/O SEADMETE LIIGID(external)
1. Human readable - sobilikud inimesega suhtlemiseks. printerid, terminalid, klaviatuur, video kuvarid, hiir.
2. Machine readable - masinloetavad. sobilikud elektroonika seadmetega suhtlemiseks - kettad, USB, sensorid(tajurid, mõeldud mingite signaalide lugemiseks/tuvastamiseks, nt robotid, tänavavalgustid), controllerid.
3. Communication - side. mõeldud kaugel töötavate arvutitega suhtlemiseks. nt saadame facebooki servelile päringu, on meil vaja seda liiki seadet. modemid, digital line drivers, nic
NIC - võrgukaardi ühend - network interface card
ERINEVUSED
esimesed kasutame sisevigade kontrollimiseks
- Data rate - andme edastus kiirus.bitti sekundis.
- Application - rakendatavus, kus kasutatakse, mis eesmärgil
- Complexity of control -juhtimise/reguleerimise keerukus
- Unit of transfer -ülekantava info ühik. info ülekande ühik
- Data representation - andmete kuju/esitlus. andmete esitlemise viis
- Error conditions - vea tingimused. neid hakkame koodidesse kirjutama et määratleda vea tingimusi, mis vea korral mida peab tegema jne
Arvutis on emaplaat. sellele paigutame prootsessori, sellel olemas kiibistikud - üks põhjasild, teine lõunasild. Põhjasild e. memory controller hub e. mälu controller.MCH Ühendab kiireid seadmeid nt mälu, protsessor, videokaart. Andmeedastuskiirus on seal aeglasem.
Lõunasild ehk I/O controller hub - kettad, hiired, klaviatuurid, võrgukaardid - ICH
Arvuti arhidektuuris protsessori ja peamälu kombinatsioon on arvuti aju eest. (süda =CPU + RAM)
Läbi käskude töötab arvuti.
Kõik andmete liigutamised arvuti ajusse või välja neid käsitletakse I/O-na.
KUIDAS VÄLJUNDSEADMETEGA SUHELDA?
Võime kasutada vahekontrollereid.
Kuidas andmed mällu jõuavad?
SSelleks, et mälus olevate asjadega midagi teha tuleb need välja kutsude protsessorisse. sellega saab rääkida erinevatest seadme ajuritset või i/O kanalitest või ka isegi teatud algoritmidest(eeskiri) kuidas teha. Erinevate seadmete keerukus ja kiirused peavad andmed jõudma mällu selleks et neid oleks võimalik protsessori poolt töödelda. arvutis ei juhtu midagi, kui see protsessorisse ei jõua. kõik tuleb välja kutsuda protsessorisse. nt isegi hiire liigutamine - liigutamisega ei jõuaks nt pilt ekraanile jne. klaviatuuri kasutamine - kui läbi protsessori ei käiks, me seda ei näeks.
Selleks, et sedmed saaksid protsessoriga suheldA ma kasutame liideseid e interface. (kõikide nuppude vajutamine). nupukeste vajutamine tekitab reziimi ja seade hakkab tööle. nupukesed on liidesed.
kuidas seade ja protsessor saavad üksteistest aru - handshaking (haha). ei üks tükike teist tunneks, peab toimuma handshaking.
interface kasutab selliseid käskusi - busy, ready ja wait(seade ootab juhiseid prtsessorilt või protsessor ootab vajalikku infot seadmest). protsessoril on oma liides ja kõikidel seadmete on omad liidesed. MCH - protsessor, videoseade, mälu. ICH interface-id on klaviatuur, hiir jne.
andmete teisendamine töö käigus, siis os-ides teisendused kirjutatud Os-ide sees.
seadmeid võib liigitada selle järgi, kuidas nad mäluga suhtlevad.
sisend-väljund süsteemid.
- programmed I/O - annab protsessor käsu io seadmele ja ootab kuni seade oma töö lõpetab ja signaliseerib selle lõpetamisest.
- interrupt-driven IO - katkestuspõhine sinsed-väljund süsteem. kui protsessor saadab IO korralduse mingi protsessi nimel. kõik masinas töötavad asjad on protsessidena process control blokis - sealt nad tulevad ja kui järjekord jõuab kohani kus peab toimima io-ga suhtlemine, korraldus läheb protsessorisse kes hakkab seda käsutama.
programmeeritavates süsteemides on katkestussignaal protsessorile mis väljastab riistvaraseade. võivad tulla tarkvarast, protsessorist või riistavrast.
processor halts thread execution- protsessor järab pooleli käimasoleva töö ning kirjutab kõik siiamaani tehtud tulemused protsessi control blokki ja hakkab tegema programmiga kes katksetussignaali saatis. täitma hakatakse signaali mis tuli kusagilt mujalt. töö käigust võetakse mõned tööd vahele.
processor resumes thread execution - jätkab tavalist tööjärjekorda.
3.
direct memory access - DMA otsene mälu aadress, selleks et tema poole pöörduda, peab pöörduma otsese mälupiirkonna poole.
tehnikad seadmetega suhtlemisel (tavaliselt katkestuspõhised). osad seadmed suudavad ka ilma katekestussignaalideta suhelda(programmeeritavad).
muudel juhtudel on katkestussignaallide kasutamised. ka handshaking nõuab katkestuust töö käigus et seadme info kuhugi kirjutada.
kõikidel controlleritel on data lines, aadressijalakesed,
typical DMA block diagram(all pilt).
ükskõik millise controlleri põhiskeem.
Direct memory access(üleval)
single bus, detatched dma
alternative -single bus, integrated dma -i/o
configurations - i/o bus.
desing objectives
efficency - effektiivsus (kiirjuste püramiid, multiplexing), suurem osa IO seadetest on väga aeglased võrreldes põhiliste mälu ja protsessoriga
generality - üldistamine, selleks et erinevad protsessid saaksid seadmeid kasutada. kuidas OS neid haldab, selleks vaja üldistamist.
buffering - puhverdamine - seadmed eri kiirstega, siis selleks, et eirnevate sedametega suhtlemine oleks võimalikult ladus, siis kogutakse andmed kokku ja alles siis jagatakse.
nt blokkseadmed kuidas infot jagatakse blokkide kaupa. block-oriented device. saadame teatud hulga infot korraga. (kettad, USB-d), andmevahetus käib blokkajaühikus - blokk sekundis jne
stream-oriented device- voogseadmed,ei ole blokk struktuuri, kantakse edasi andmevoogusid biti voogudena. bitivood - bitti sekundis. (bitt kõige väiksem infoliik arvutis, 8 bitti = bait) mõõdame kiiruseid bitti sekundis. nt terminalid, printerid- suhtlevad voo kaupa nt loevad 1 sümbol korraga sellest voost.
blokkvahetusel saadame suure portsu korraga, voogude korral saadame voo ja loeme sealt elemente(pärast see element kustutatakse)
puhverdus- konpensatsiooni register.
http://www.slideshare.net/nadhrahnini/io-buffering
buffer on tavaliselt mälu ruum.
ringpuhvrid - teeme eraldi puhvritega tööd.(üleval)võimalik sinna rohkem talletada.
Tehnika mis võimaldab io nõudluse tippkoormusi ühtlustada.