Vahemälu

From ICO wiki
Revision as of 11:27, 5 September 2011 by Raarop (talk | contribs)

Autor: Raido Aarop, A21

Sissejuhatus

Vahemälu (ingl. k. cache) Kasutatakse korduvalt vajaminevate andmete hoidmiseks ja serveerimiseks. Vahemälu kasutamisel puudub vajadus pöörduda andmete algallika poole (kõvaketas, RAM, CPU jne), vaid andmed serveeritakse vahemälust. Tänu selle suureneb arvutisüsteemi töö kiirus.

Valimaks, millised andmeid vähemälus hoida on kasutusel erinevaid loogikaid, vastavalt süsteemi otstarbele.

Vahemälu õige kasutamisega on võimalik kogu süsteemi tööd kardinaalselt optimiseerida (kiirendada).

Erinevad süsteemid, kus vahemälu on kasutusel: 1) Arvuti protsessor (CPU) 2) Salvestuseadmed (Information Storage) 3) Interneti sirvijad (Web brauser) 4) Muud (DNS, Search engines jne)

Arvuti protsessor (ingl. k. CPU – Central Processing Unit)

Tänapäeval on protsessorite kiirus (sagedus) ületanud mälude kiiruse (sageduse) mitmekordselt. On võimalik valmistada ka sama kiired mälukiipe, kuid nende hind oleks väga kõrge. Suure mahuga kiired mälud oleksid väga kallid. Samuti tekiks probleem mälu andmete kirjutamisega salvestuseadmetele.

Lahendus tekib siis, kui kasutaba väikese mahuga kiiret mälukiipi, mis on toimiks protssesori ja ülejäänud mälu vahel. See kiire mälukiip täidaks vahemälu ülesannet. Vahemällu salvestatakse enim kasutatavad käsud ja nende vastused. Seega sama käsu saamisel teisel korral jääb ära põhimällu pöördumine käsu väljalugemiseks ja protsessori töö käsu täitmisel.

Kuigi von Neumann-i arhitektuuri järgi on tänapäeva arvutitel andmed ja käsud säilitatud samas mälus, siis vahemälude puhul, see reegel ei kehti. Andmeid ja käske hoitakse erinevates vahemäludes. Tänapäeva protsessoritel on enamjaolt kolme tasandilised vahemälud.

Vahemälud on eriti efektiivsed, kuna tänapäeva operatsioonisüsteemid ja programmid kasutavad väga palju samu meetoteid korduvalt.

Salvestuseadmed (ingl. k. Information Storage Devices)

Kõige tavalisem kasutus vahemälule on tavalises kõvakettas, mida leidub pea igas arvutis. Selleks et operatsioonisüsteem saaks mingi infolt kõvakettalt lugeda, peab kõvaketas lugemispea viima õigesse kohta ja liigutama magnetketast. See on aga füüsiline töö ja võib väga palju aega nõuda, eriti kui andmed ei asu järest ühel kettal.

Vahemäluna on kasutusel mälukiip, kuhu siis salvestatakse kettalt loetud andmed ja kettale salvestatavad andmed.

Kõvaketta vahemälu jaguneb kaheks osas vastavalt andemete osa ja märgistusosa, milles registreeritakse andmeta asukoht kõvakettal, kas andmed on kirjutatud kõvakettale ja samuti ka aeg millal neid andmeid viimati kasutati. Märgistusosa oleva aja järgi otsustatakse, kas need andmed on veel vajalikud ja jäävad edasi vahemällu või siis võib vastavad andmed kustutada.

Kõvaketta lugemisoperatsiooni ajal pöördutakse kõige pealt vahemälu poole sooviga saada andmeid. Kui need andmed on olemas, siis tagastatakse need väga kiirelt, kõvaketta enda poole pöördumata. Kui aga andemd puuduvad, siis pöördutakse edasi kõvaketta poole, loetakse sealt vajalikud andmed vahemällu ja alles siis tagastatakse süsteemile.

Kõvakettale kirjutamisoperatisooni ajal kirjutatakse andmeid kõigepealt vahemällu. Seejärel võib süsteem käituda kahel viisil, kas kirjutada andmed kohe vahemälust kõvakettale, mis on ohutum aga aeglasem, või siis kirjutda andmed kõvakettale hetkedel, kui kõvaketta kirjutamispea on sobivates kohtades. Viimane viis on kiirem kuid mitte nii ohutu ,kuna vähemälus olevad admed võivad rikke puhul kaduma minna.

Interneti sirvijad (ingl. k. Web browsers, Web cache)

Interneti sirvijad/brauserid kasutatavad vahemälu salvestamaks sinna viimati külastatud lehekülgi. Kasutajad veedavad sageli ühel leheküljel palju aega ja laevad seda lehekülg uuesti. Sellisel juhul laetakse info vahemälust ja ei koormata interneti ühendust.

Vahemälus oleva info õigsuse kontoroll käib läbi HTTP protokolli.

Muud

DNS (Domain Name System)

Domeeninimede süsteem on kasutusel üle interneti eesmärgiga viia kokku domeeninimed neile vastava IP aadressiga. Seega kui kasutaja esitab päringu mingile konkreetsele nimele, siis kõigepealt otsitakse üles sellele nimele vastav IP aadress ja alles siis saadetakse päring aadressile.

Domeeninimede süsteem koosneb DNS serverite infrastruktuurist.

DNS-i kaudu IP aadressi pärimimine võib võtta kaua aega, kuna vastet omab DNS server ei pruugi olla kasutajale lähim. Selle parandamiseks hoitakse juba vaste saanud nimedele vastavaid IP aadresse kõigiss serverites mida see päring on läbinud. Need serverid moodustavadki vahemälu.

Search Engines

Paljud otsingumootorid salvestavad enda vahemällu lehekülgi, mida nad on indekseerinud. Otsingumootorit kasutades on võimalik laadida otsitav leht ka otsinugmootori vahemälust.


Allikad

What Every Programmer Should Know About Memory

Information Storage and Management: Storing, Managing, and Protecting Digital Information, G. Somasundaram; Alok Shrivastava, 2009

Lingid