1 Input/Output 1. I/O műveletek hardveres háttere 2. I/O műveletek szoftveres háttere 3. Diszkek (lemezek) ------------------------------------------------ 4. Órák, Szöveges terminálok 5. GUI - Graphical user interfaces
2 I/O műveletek hardveres háttere I/O sebességek *** up to 600 mbytes per second for SATA III (2014. march)
3 Kontrollerek (device controllers) I/O egységek a következő elemekből állnak: a. mechanikai rész b. elektronikus rész Az I/O egység elektronikus része = device controller a. Egy kontroller több egységet menedzselhet Kontroller feladatai a. Konvertálás/adatcsere: bitfolyam (serial bit stream) bájtblokkok (block of bytes) b. Hibák kezelése c. Kommunikáció fő memóriával (operációs rendszerrel)
4 Minden kontroller rendelkezik saját (SFR- Special Function Registers) regiszterekkel, amelyeken keresztül kontroller kommunikál a fő memóriával (az operációs rendszerrel). OS ír ezekbe a regiszterekbe és ezzel értesíti kontrollert arról, hogy mi neki a teendője: be/kikapcsolni az áltála vezérelt I/O egységet, adatokat olvasni/írni, várakozni, indulni, stb. Kontrollerek rendelkeznek saját memóriával (adat puffer, eng. data buffer), amelyen keresztül történik adatcsere. OS hozzáférése a kontrollereken lévő regiszterekhez és pufferekhez két alternatív mód: 1. Minden regiszter kap egy 8 (16, 32, 64, ) bites azonosítót (port), amelyen keresztül történik kommunikáció (IBM-360). (a). ábra. 2. Minden regiszter főmemóriában kap saját megfelelő méretű (1,2,3,8..) mezőt, amelyen keresztül történik kommunikáció (PDP-11). (b). ábra
5 a. I/O portok és memória b. Memória alapú I/O, tükrözés felső címekre c. Hibrid megoldás IBM PC (x86, Pentium), 0-64K portok + 640 Kb- 1Mb tükrözés (pufferek)
6 a. Egy sínes megoldás (egyszerű megvalósítás, lassan működik) b. Dupla (vagy több) sínes megoldás (CPU és RAM közötti közvetlen gyors sín, növekszik biztonság). Pentium sínek: Ram bus, PCI bus (korábban ISA bus) A sín (busz) logikailag több egységet (perifériát) kapcsol össze, mely során ugyanazt a vezetékrendszert használja. Minden buszhoz számos csatlakozó tartozik, amelyek lehetővé teszik a kártyák, egységek vagy kábelek fizikai és elektromos csatlakoztatását
7 Kiterjedés szerinti osztályozás Helyi sín (local bus): Egyedi kialakításúak (nincs rájuk szabvány), általában egy nyomtatott kártyán vagy egy lapkán belül helyezkednek el. Belső jeleket továbbítanak, melyeknek a kártyán (lapkán) kívül nem használhatók Rendszer sín (system bus): Fontos rendszer komponensek összeköttetésére szolgálnak, rendszerint szabványosak. A szabvány magába foglalja az elektromos és a mechanikai specifikációkat is (pl. az adat- és címvonalak számát, vezérlővonalak típusait és funkcióit, jelek feszültségszintjeit, csatlakozási lehetőségeket, időzítési viszonyok, stb. Memória sín (memory bus): Az operatív tár és a processzor közötti kapcsolat kialakításáért felelős. Nem minden rendszerben különül el kifejezetten a rendszer síntől. Növeli a teljesítményt és az adatbiztonságot. Hátránya: előállítási költségek magasabbak. Rendszerközi sín (intersystem bus): Számítógéprendszereket köt össze. Az összekötött rendszerek számítógép hálózatokat alkotnak. Az áthidalt távolságtól és a kialakítástól függően lehet LAN, MAN stb. PCI busz: Peripheral Component Interconnect biztosít összeköttetést a központi egység (CPU) és a perifériák között.
8 Direct Memory Access (DMA) Memóriához való közvetlen hozzáférés
9 Folyamat (OS) hozzáfér a memóriához/adatokhoz DMA kontrollerem keresztül: 1. CPU küld parancsot DMA-ra (regiszterekre) arról, hogy melyik címről van szó, milyen műveletről, stb. 2. A DMA síneken keresztül küld parancsot egységnek (lemeznek), mit kell beolvasni. 3. Az egység kontrollere beolvass adatokat saját pufferbe és továbbítja beolvasott adatokat memóriába. 4. A folyamat végeztével a kontroller visszajelez a DMA-nak a tranzakció lebonyolításáról, majd DMA visszajelez a CPU-nak a tranzakció befejezéséről. DMA használatával a processzor nem vesz részt aktívan az adatátvitelben. DMA átvitel a következők között történhet: memória memória memória periféria periféria periféria A processzor az átvitel közben más feladatokkal foglalkozhat
Alaplapon Megszakítások (Interruptions) 10 1. I/O egység befejezte műveletet és értesít kontrollert, hogy neki kell megszakítás 2. Kontroller kezdeményez/indít megszakítást 3. Processzor nyugtát küld kontrollernek és végrehajtja azt a kódot, amelyre mutat a megszakítási vektor (interrupt vector). (Megszakítási tábla).
11 I/O műveletek szoftveres háttere I/O rétegei
12 Az I/O meghajtók (drivers) logikai helye
13 példa: 8 karakteres nyomtatás a. A folyamat pufferében megjelenik kinyomtatandó karakterlánc b. c. A folyamat pufferéből adatok kerülnek az OS áltál kezelt pufferbe és onnan az adatok kerülnek nyomtatóra egyenként megszakítással.
14 Pufferezés a. nem pufferezett I/O kezelés b. pufferezés a folyamat területén c. dupla pufferezés: folyamat+mag d. tripla pufferezés: folyamat+2 puffer magban
15 Többszörös pufferezés
16 a. nem szabványosított meghajtók b. szabványosított meghajtók
17 Diszkek (lemezek) Floppy lemez (régi, 360 Kb) és WD WDE18300 SCSI Merev Lemez (kb. >10 Gb) tulajdonságai
18 Formatálás: egy- és kétzónás geometria Belső cilinderek szektorainak hossza csökken
19 1. szektor 1. szektor 1. szektor Szektorok eltolódása (skew - ferdeség)
20 Interleaving váltogatás a. Váltogatás nélküli formatálás b. Egyszeres váltogatás c. Kétszeres váltogatás
21 Sérült szektorok (bad sectors) kezelése 29. Szektor után két pótszektor a. Keletkezik hiba 7. szektorban b. 7. Szektor tartalma másolása pótszektorba és helyettesítése c. Újraszámozás - új (átugrós, bypass) sorrend létrehozása