Luento 9 Järjestelmän ulkoinen muisti

Samankaltaiset tiedostot
Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia Kiintolevyt I/O:n toteutus

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Järjestelmän ulkoinen muisti I/O

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Luentokerta 5 Ohjelman toteutus järjestelmässä (prosessi, käyttöjärjestelmä) Järjestelmän ulkoinen muisti

Muistihierarkia Kiintolevyt I/O:n toteutus. Käännös, Linkitys Lataus

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessin elinkaari (10) Prosessin vaihto (4) Prosessin esitysmuoto järjestelmässä (4)

Muistihierarkia. Virtuaalimuisti. Tiedostojärjestelmä. Levymuistin saantiaika. Tietokoneen toiminta Luento 9, Ulkoinen muisti ja I/O 1

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Ulkoinen muisti ja IIO:n toteutus

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Jakso 5 Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

1. Keskusyksikön rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 4 Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä

Jakso 8 Ohjelman toteutus järjestelmässä

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Jakso 4 Aliohjelmien toteutus

Luento 5 Suoritin ja väylä

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Osio 3: Siirräntä ja tiedostojärjestelmä

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) Aihepiiri. Mitä hyötyä tästä on? (3) Tavoitteet. Kurssien välisiä riippuvuuksia

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Luento 5 Suoritin ja väylä

Tietokoneen toiminta (Computer Organization I)

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Luento 5 Suoritin ja väylä

Kertausluento luennoista 1-3 1

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4)

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Jakso 4 Aliohjelmien toteutus

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Luento 4 Aliohjelmien toteutus

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2: LAITTEISTOSTA

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Tietokoneen toiminta, K Tavoitteet (4)

Transkriptio:

Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus 1 Muistihierarkia (4) ks. Fig. 4-1 [Stal99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on hyvin paljon hitaampaa kuin sisäinen muisti Aika/tila optimointi suuret tietomäärät täytyy (kannattaa) kustannussyistä pitää ulkoisessa muistissa pienet tietomäärät täytyy (kannattaa) tehokkuussyistä pitää sisäisessä muistissa Kaiken viitatun tiedot tulee suoritusaikana olla sisäisessä muistissa! 2 Luento 9, Ulkoinen muisti & I/O 1

Virtuaalimuisti (3) Osa muistihierarkiaa Vastaus ongelmaan miten tehdä suoritusaikaisesta muistista yhtä suuri kuin levymuisti ja yhtä nopea kuin keskusmuisti? Kaksitasoinen: keskusmuistissa kulloinkin käytössä olevat alueet levyllä kaikki tiedot kopiointi tarvittaessa Muisti väylä levy 3 Virtuaalimuistin toteutus (4) Toteutustavat kanta- ja rajarekisterit sivutus (segmentointi ja sivuttava segmentointi) Pääosa toteutuksesta ohjelmistotasolla Laitteistotuki MMU muistinhallintayksikkö nopeuttaa viitatun muistipaikan todellisen osoitteen laskentaa rakenne ja toiminta vaihtelee virtuaalimuistin toteutustavan Tietomukaan Lisää tietoa? Käyttö- järj.- I ja II koneen rakenne 4 Luento 9, Ulkoinen muisti & I/O 2

5 Tiedostojärjestelmä (5) KJ:n osa, hallitsee kaikkia tiedostoja Valvoo oikeuksia tiedostoa avattaessa Muuntaa tiedostonimet fyysisiksi osoitteiksi Ylläpitää taulukoita, joista näkee mitä kohtaa mistäkin tiedostosta kukin prosessi on käsittelemässä Tiedostojärjestelmä lukee ja kirjoittaa tiedostoja suurina kerralla käsiteltävinä ina (0.5-8 KB?) käyttäjätason prosessit käsittelevät tiedostoja tavuittain eikä niiden tarvitse tietää tiedoston todellista fyysistä rakennetta (laiteajuri huolehtii siitä) 6 Luento 9, Ulkoinen muisti & I/O 3

Levymuisti (9) Levykkö pyörii nopeasti (koko ajan?) luku/kirjoituspäät liikkuvat kaikki yhtä aikaa? monta levyä Levypinta ks. Figs 5.3, 5.4 [Stal99] 2 per levy (tai 1) ura sektori: pienin kerralla osoitettavissa oleva alue sylinteri: päällekkäin olevat urat, luku/kirj. pää samalla kohtaa ks. Fig 5.3 [Stal99] 150 MB-181GB/levykkö ~ 3600-10800 rpm ~ 1-16 levyä/levykkö ~ 2000-3000 uraa/pinta ~ 20-100 sektoria/ura ~ 0.5-8KB/sektori ~ 1-32 uraa/sylinteri 7 Levymuistin saantiaika (5) Tiedon osoite: levypinta + ura + sektori laiteajuri etsii KJ-taulukoista loogisen osoitteen perusteella Saantiaika: ks. Fig 5.4 [Stal99] hakuvarren siirtoaika (seek time) Esim: aver 6.3 ms, min-max 2-15 ms? odota kunnes sektori kohdalla (rotational delay) Esim: pyörähdysviive kun 3600 rpm: 8.33 ms (keskim. puolen kierroksen aika) siirrä sektorin verran tietoa (data transfer time) Esim: pyör.aika / sekt. lkm = 0.42 ms 8 Luento 9, Ulkoinen muisti & I/O 4

Tiedoston talletus levylle (2) Tiedosto koostuu useista ista per sektori ( per usea sektori?) Levyn hakemistossa on tieto kunkin tiedoston käyttämistä ista luetaan t annetussa järjestyksessä hakemisto alkio FileA (unix) indeksi 9 Levyn käyttö Virtuaalimuistin tukimuistina Tiedostojen talletukseen Virtuaalimuistin voi toteuttaa tiedostojärjestelmän päälle, tai päinvastoin! Muisti page page page page page page page page sivu (tdsto) sivu (tav.) Väylä Levy VM tukimuisti sivu sivu sivu sivu sivu sivu sivu sivu Tiedostot 10 Luento 9, Ulkoinen muisti & I/O 5

DOS-levykkeen rakenne (2) FAT File Allocation Table kertoo, mitkä sektorit ovat vapaana kertoo, mitkä sektorit ovat käytössä millekin tiedostolle kiinteä paikka levykkeellä, 2 kopiota Hakemisto erikoistyyppinen tiedosto sisältää hakemistoalkion joka tiedostolle nimi, tyyppi, koko, muutos pvm ja kellonaika attribuutit (invisible, read-only,...) linkki ensimmäiseen sektoriin FAT:ssä 11 FAT - File Allocation Table (DOS) hakemistoalkio aa: 32 hak. tdsto FAT FAT varaustaulu tied. sektorit 1. 34 36-1 32... 36 3. 32 33 34 35 36 34 2.... DOS levykkeet: 1.44MB, 512 B, 2.9K a entä: 1 GB, 64 KB, 64K a OK? 12 Luento 9, Ulkoinen muisti & I/O 6

Mikä on hyvä levyn koko? Mihin käyttöön? Videokuvan talletus/playback? 1 minuutti 12.3 MB 4KB? osoitetaulu? 1.5 Mbit/sek (koko ajan) epäsuorat viittaukset? riittääkö levyn/väylän/ohjaimien nopeus? entä jos 1 tunti? riittääkö levyn kapasiteetti? 13 14 Luento 9, Ulkoinen muisti & I/O 7

Laitteiden liittäminen järjestelmään (4) suoritin (CPU) muisti väylä tai väylät laiteohjaimet Liitännät muiden koneiden kanssa Liitännät laitteiden kanssa Liitännät ihmisten kanssa Kaikki samalla tavalla: ks. Fig. 2-29 [Tane99] 15 Laiteohjain (I/O Moduuli) Muisti väylä suoritin käyttäjäprosessi laiteajuri KJ prosessi (tai aliohjelma?) laite data c/s laiteohjain laiteohjainprosessi (device controller, device controller process) laite Ks. Fig 6.4 [Stal99] 16 Luento 9, Ulkoinen muisti & I/O 8

Laitteiden käytön toteutus (5) ks. laiteohjainkuva (ed. kalvo) Käyttäjäohjelma kutsuu käyttöjärjestelmän laiteajuria tekemään I/O:n. Laiteajuri suoritetaan samalla suorittimella kuin käyttäjäohjelmakin. Laiteajuri ohjaa laitteen toimintaa laitteen laiteohjaimella olevien kontrollirekisterien (muistialue c ) avulla Laiteajuri voi lukea laitteen tilatietoa laiteohjaimella olevien statusrekisterien (muistialue s ) avulla Laiteajuri voi lukea (kirjoittaa) laitteen lukemaa (laitteelle kirjoitettavaa) tietoa laiteohjaimella olevien datarekistereiden (muistialue data ) avulla Kontrolli-, status- ja datarekisteri kolmikko muodostaa I/O portin suorittimen näkökulmasta 17 Laiteohjaimen rekistereihin viittaaminen (5) Ongelma: miten suorittimella suorittavan laiteajuri viittaa eri kortilla oleviin rekistereihin? Ratkaisu 1: omat I/O-konekäskyt tätä tarkoitusta varten käskyssä annetaan laiteohjaimen identifikaatio ja rekisterin nro (I/O osoiteavaruus) vaikea laajentaa käyttöä uusiin laitteisiin, joilla laiterekisterit voivat olla hyvinkin erilaisia suorittimen konekäskyjä ei voi muuttaa x86: IN, OUT INS, OUTS KOKSI: IN, OUT ks. laiteohjainkuva ks. Minix esimerkin port_out [Tane87] 18 Luento 9, Ulkoinen muisti & I/O 9

Ratkaisu 2: muistiinkuvattu I/O (5) Laiteajuri lukee/kirjoittaa laiteohjaimella olevia rekistereitä (data, status/kontrolli) tavallisilla muistin luku/kirjoitus käskyillä ei tarvita erillisiä I/O-konekäskyjä! laiteohjaimella olevat laiterekisterit ovat samanlaista viitattavaa muistia kuin normaali muisti muistisoitteen ensimmäiset bitit valitsevat, mille laitteelle (vai tavallisen muistiin) viittaus kohdistuu DiskCtr EQU 0x80000001 voidaan käyttää rinnan I/O käskyjen kanssa (laiterekistereihin voi siis viitata sekä I/O-käskyillä että muistiinkuvatun I/O:n avulla) esim. Intelin arkkitehtuurit ks. laiteohjainkuva load R1,=DiskRd store R2, DiskCtr 19 I/O tyypit (2) ks. laiteohjainkuva Suora I/O: laiteajuri odottaa tiukassa silmukassa, kunnes laiteohjaimen statusrekisteri ilmoittaa I/O-pyynnön valmistuneen (direct I/O) laiteajuri siirtää tietoa muistin ja datarekisterin välillä Epäsuora I/O: I/O:n odotusaikana suorittimella suoritetaan (indirect I/O jotain muuta ohjelmaa interrupt driven I/O) Kun I/O-pyyntö valmistuu, laiteohjain antaa keskeytyksen (laitekeskeytys, I/O interrupt) suorittimelle, joka (jonkin ajan kuluttua) jatkaa kesken jäänyttä I/O-pyynnön esittänyttä ohjelmaa. laiteajuri siirtää tietoa muistin ja datarekisterin välillä 20 Luento 9, Ulkoinen muisti & I/O 10

I/O tyypit (jatkoa) (4) DMA - Direct Memory Access ks. laiteohjainkuva älykkäämpi laiteohjain laiteohjain voi suoraan kopioida tiedot keskusmuistiin laiteajurin ei tarvitse laiterekistereitä käyttäen siirtää tietoa muistin ja datarekisterin välillä laiteohjain tekee paljon suuremman määrän työtä itsenäisesti (kuin epäsuorassa I/O:ssa) ennen suorittimelle annettavaa laitekeskeytystä 21 Tiedostopalvelin (Lähi)verkossa oleva palvelin Käytettäessä tiedoston (osien) kopio on muistissa (ja ehkä myös paikallisella levyllä) orig. tiedsto tiedston kopio? Tiedostopalvelin suoritin muisti suoritin muisti väylä väylä levy levy 22 Luento 9, Ulkoinen muisti & I/O 11

Tiedostopalvelin (4) Käytetään kuten paikallista levyä oman systeemin KJ:n liitospalikan avulla Paljon hitaampi kuin paikallinen levy Tiedostovälimuistit (muistipuskurit tai levypuskurit) nopeuttavat toimintaa käytännössä omassa järjestelmässä palvelimella 50% oman järjestelmän keskusmuistista voi olla varattu tiedostovälimuistille tiedon päivitys tiedoston kirjoituksen yhteydessä? Lisää tietoa? (file cache) KJ kurssit 23 24 Luento 9, Ulkoinen muisti & I/O 12

Esimerkki: kirjoittimen laiteajuri ttk-91 koneelle (5) Laitteella voi tulostaa kokonaislukuja yksi kerrallaan Muistiinkuvattu I/O, suora I/O Laiteportti kontrollirekisteri muistipaikka 1048576 = 0x80000 tilarekisteri muistipaikka 1048577 = 0x80001 datarekisteri muistipaikka 1048578 = 0x80002 Laiteajuri toimii etuoikeutetussa tilassa Kutsu: PUSH SP, =0 ; space for return value PUSH SP, X ; parameter to print SVC SP, =Print ; returns Success/Failure POP SP, R1 JNZER R1, TakeCareOfTrouble 25 Esim: laiteajurin toteutus (12) ptrctr DC 1048576 ; control register address ptrstat DC 1048577 ; status register address ptrdata DC 1048578 ; Print data register PUSHR address SP ;save regs retval EQU -3 LOAD R1, pardata(fp) pardata EQU -2 Oleta: SVC:n ja IRET:n toteutus samalla tavalla kuin CALL ja EXIT ptrctl ptrstat ptrdata 1 01 200 See: driver.k91 Solution with no timeout STORE R1, @ptrdata ; data to print LOAD R1, =0 STORE R1, @ptrstat ; init (clear) state register LOAD R1, =1 STORE R1, @ptrctr ; give command to print Wait LOAD R1, @PtrStat ; check state register JNZER R1, Done JUMP Wait ; wait until I/O done Done LOAD R1, =0 ; return Success STORE R1, retval(fp) POPR SP ; recover regs IRET SP, =1 26 Luento 9, Ulkoinen muisti & I/O 13

27 Erilaisia levyjä Kiintolevy ZIP levyke Levyke CD-ROM, CD-R, CD-RW DVD...?... 28 Luento 9, Ulkoinen muisti & I/O 14

Kiintolevy Kiinteä, ei vaihdettavissa oleva levy Tila: 0.150-181 GB (v. 2000) Hakuaika: 5-15 ms 1-10 levyä Pyörimisnopeus: 4500-10800 rpm Siirtonopeus: 5-50 MB/sec 16 g 43 x 36 x 5 mm 29 Zip & Jaz levykeasemat Vaihdettava levyke Tila: 0.1-2 GB Hakuaika: 10-30 ms Pyörimisnopeus: 3000-5400 rpm Siirtonopeus: 1-6 MB/sec 30 Luento 9, Ulkoinen muisti & I/O 15

Levykeasema Vaihdettava levyke Tila: 1.44 MB Hakuaika 90 ms Pyörimisnopeus 300 rpm Siirtonopeus 0.05 MB/sec 31 CD - Compact Disc Vaihdettava levyke CD-R (Recordable) CD-RW (Rewritable) Yksi pitkä spiraalimainen ura Tila: 650 MB Hakuaika 90 ms Pyörimisnopeus 200-9000 rpm Siirtonopeus 0.1-2 MB/sec 32 Luento 9, Ulkoinen muisti & I/O 16

DVD - Digital Versatile Disk Vaihdettava levyke DVD-ROM DVD-R (Recordable) DVD-RAM kuten tavallinen kovalevy Tila: 4.7-17 GB Hakuaika 100-180 ms Pyörimisnopeus 2000-8000 rpm Siirtonopeus 2-8 MB/sec hitaampi kuin kovalevy 33 -- Luennon 9 loppu -- Fig. 5.47 from Hennessy-Patterson, Computer Architecture Alpha AXP 21064 memory hierarchy käsky TLB (virt.muistin tueksi) data TLB datavälimuisti käskyvälimuisti Käskyjen ja datan yhteinen L2 välimuisti Lisää tietoa? Tietokoneen rakenne muisti levy 34 Luento 9, Ulkoinen muisti & I/O 17