Notes
Slide Show
Outline
1
Luento 9
Järjestelmän ulkoinen muisti
  • Muistihierarkia
  • Kiintolevyt
  • Muut pyörivät levyt
  • I/O:n toteutus


2
Muistihierarkia (4)
  • 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!
3
Virtuaalimuisti
  • 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
4
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
      • osoitetta ei tarvitse laskea usealla konekäskyllä, kun MMU tekee sen laitteistotasolla
    • rakenne ja toiminta vaihtelee virtuaalimuistin toteutustavan
      mukaan
5
 
6
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ä lohkoina (0.5-8 KB?)
    • käyttäjätason prosessit käsittelevät tiedostoja tavuittain eikä niiden tarvitse tietää tiedoston todellista fyysistä rakennetta (KJ:n laiteajuri huolehtii siitä)


7
Levymuisti (2)
  • Levykkö
    • pyörii nopeasti (koko ajan?)
    • luku/kirjoituspäät liikkuvat kaikki yhtä aikaa?
    • monta levyä
  • Levypinta
    • 2 per levy (tai 1)
    • ura
    • sektori: pienin kerralla
      osoitettavissa oleva alue
    • sylinteri: päällekkäin olevat urat,
      luku/kirj. pää samalla kohtaa
8
Levymuistin saantiaika (2)
  • Tiedon osoite:  levypinta + ura + sektori
    • laiteajuri etsii KJ-taulukoista
      loogisen osoitteen perusteella
  • Saantiaika:
    • hakuvarren siirtoaika
      Esim: aver 6.3 ms,  min-max 2-15 ms?
    • odota kunnes sektori kohdalla
      Esim: pyörähdysviive kun 3600 rpm:   8.33 ms
        (keskim. puolen kierroksen aika)
    • siirrä sektorin verran tietoa
      Esim: pyör.aika / sekt. lkm = 0.42 ms
9
Tiedoston talletus levylle (2)
  • Tiedosto koostuu useista lohkoista
    • lohko per sektori (lohko per usea sektori?)
  • Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista
    • luetaan lohkot annetussa järjestyksessä
10
Levyn käyttö
11
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 ja itse tiedosto)
12
FAT - File Allocation Table (DOS)
13
Mikä on hyvä levylohkon koko?
  • Mihin  käyttöön?
  • Videokuvan talletus/playback?
    • 1 minuutti
    • 12.3 MB
    • lohko 4KB?
      osoitetaulu?
    • epäsuorat viittaukset?
    • riittääkö levyn/väylän/ohjaimien nopeus?
    • entä jos 1 tunti? riittääkö levyn kapasiteetti?
14
 
15
Laitteiden liittäminen järjestelmään
16
Laiteohjain (I/O Moduuli)
17
Laitteiden käytön toteutus (5)
  • 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
18
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 laiterekisterin nro (oma I/O osoiteavaruus)
    • vaikea laajentaa käyttöä uusiin laitteisiin, joilla ”laiterekisterit” voivat olla hyvinkin erilaisia
    • suorittimen konekäskyjä ei voi muuttaa
19
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
    • voidaan käyttää rinnan I/O käskyjen kanssa
      (laiterekistereihin voi siis viitata sekä I/O-käskyillä että muistiinkuvatun I/O:n
      avulla)
20
I/O tyypit (2)
  • Suora I/O: laiteajuri odottaa tiukassa silmukassa, kunnes laiteohjaimen statusrekisteri ilmoittaa
    I/O-pyynnön valmistuneen
    • laiteajuri siirtää tietoa muistin ja datarekisterin välillä
  • Epäsuora I/O: I/O:n odotusaikana
    suorittimella suoritetaan
    jotain muuta ohjelmaa
    • 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ä
21
I/O tyypit (jatkoa) (4)
  • DMA - Direct Memory Access
    • ä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ä
22
Tiedostopalvelin
  • (Lähi)verkossa oleva palvelin
  • Käytettäessä tiedoston (osien) kopio on muistissa (ja ehkä myös paikallisella levyllä)



23
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ä?


24
 
25
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 Print toimii etuoikeutetussa tilassa
  • Kutsu:
26
Esim: laiteajurin toteutus (12)
27
 
28
Erilaisia levyjä
  • Kiintolevy
  • ZIP levyke
  • Levyke
  • CD-ROM, CD-R, CD-RW
  • DVD
  • ...?...
29
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
30
Zip & Jaz levykeasemat
  • Vaihdettava levyke
  • Tila: 0.1-2 GB
  • Hakuaika: 10-30 ms
  • Pyörimisnopeus: 3000-5400 rpm
  • Siirtonopeus: 1-6 MB/sec



31
Levykeasema
  • Vaihdettava
    levyke
  • Tila: 1.44 MB
  • Hakuaika 90 ms
  • Pyörimisnopeus
    300 rpm
  • Siirtonopeus
    0.05 MB/sec
32
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


33
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
34