Difference between revisions of "Vahemälu"

From ICO wiki
m
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
Autor: Raido Aarop, A21
+
Autor: Raido Aarop, A21<br />
 +
--[[User:Raarop|Raarop]] 23:46, 24 October 2011 (EEST)
  
 
=Sissejuhatus=
 
=Sissejuhatus=
Line 9: Line 10:
 
Vahemälu õige kasutamisega on võimalik kogu süsteemi tööd kardinaalselt optimiseerida (kiirendada).  
 
Vahemälu õige kasutamisega on võimalik kogu süsteemi tööd kardinaalselt optimiseerida (kiirendada).  
  
Erinevad süsteemid, kus vahemälu on kasutusel:
+
Mõned süsteemid, kus vahemälu on kasutusel:
1) Arvuti protsessor (CPU)
+
* Arvuti protsessor (CPU)
2) Salvestuseadmed (Information Storage)
+
* Salvestuseadmed (Information Storage)
3) Interneti sirvijad (Web brauser)
 
4) Muud (DNS, Search engines jne)
 
  
 
=Arvuti protsessor (ingl. k. CPU – Central Processing Unit)=
 
=Arvuti protsessor (ingl. k. CPU – Central Processing Unit)=
Line 37: Line 36:
 
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.
 
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)=
+
=Vahemälu koherentsus=
 
+
Kui on kasutustel kaks paraleelset toimivat süsteemi tekib probleeme vahemälude koherentusega. Ühe süsteemi vahemälus olevad andmed võivad olla juba töödeldud, kuid teine süsteem ei tea sellest midagi. Nii võivad tekkida vead süsteemi töös. Selleks, et seda vältida on kasutusele võetud koherentsuse tagamise protokollid.  
Interneti sirvijad/brauserid kasutatavad vahemälu salvestamaks sinna viimati külastatud lehekülgi.
+
Erinevad süsteemid kasutavad erinevaid protokolle, vastavalt süsteemi ülesehitusele pöörates rõhku optimaalsesle töökiirusele.
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 otsigumootorid salvestavad enda vahemällu lehekülgi, mida nad on indekseerinud. Otsingumootorit kasutades on võimalik, laadida otsitav leht ka otsinugmootori vahemälust.
 
  
 +
Üks levinumaid viise tomib selliselt, et süsteem kuulutab milliseid andmeid ta soovib vahemälust lugeda/kirjutada. Teine süsteem kuulab ja reageerib vastavalt. Kui teise süsteemi vahemälus on uuemad andmed, siis tagastab ta need ise. Kui aga juhtub et teisel süteemil on vanemad andmed, siis ta märgib need andmed hoopis kehtetuks.
  
 
=Allikad=
 
=Allikad=
 
[http://www.unilim.fr/sci/wiki/_media/cali/cpumemory.pdf What Every Programmer Should Know About Memory]
 
[http://www.unilim.fr/sci/wiki/_media/cali/cpumemory.pdf What Every Programmer Should Know About Memory]
  
 +
[http://en.wikipedia.org/wiki/Cache_coherence Wikipedia: Cache coherence]
 +
 +
Multicore Application Programming: For Windows, Linux, and Oracle® Solaris, Darryl Gove, 2010
 
Information Storage and Management: Storing, Managing, and Protecting Digital Information, G. Somasundaram; Alok Shrivastava, 2009
 
Information Storage and Management: Storing, Managing, and Protecting Digital Information, G. Somasundaram; Alok Shrivastava, 2009
 +
  
 
=Lingid=
 
=Lingid=
  
 
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
 
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 20:14, 12 January 2012

Autor: Raido Aarop, A21
--Raarop 23:46, 24 October 2011 (EEST)

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).

Mõned süsteemid, kus vahemälu on kasutusel:

  • Arvuti protsessor (CPU)
  • Salvestuseadmed (Information Storage)

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.

Vahemälu koherentsus

Kui on kasutustel kaks paraleelset toimivat süsteemi tekib probleeme vahemälude koherentusega. Ühe süsteemi vahemälus olevad andmed võivad olla juba töödeldud, kuid teine süsteem ei tea sellest midagi. Nii võivad tekkida vead süsteemi töös. Selleks, et seda vältida on kasutusele võetud koherentsuse tagamise protokollid. Erinevad süsteemid kasutavad erinevaid protokolle, vastavalt süsteemi ülesehitusele pöörates rõhku optimaalsesle töökiirusele.

Üks levinumaid viise tomib selliselt, et süsteem kuulutab milliseid andmeid ta soovib vahemälust lugeda/kirjutada. Teine süsteem kuulab ja reageerib vastavalt. Kui teise süsteemi vahemälus on uuemad andmed, siis tagastab ta need ise. Kui aga juhtub et teisel süteemil on vanemad andmed, siis ta märgib need andmed hoopis kehtetuks.

Allikad

What Every Programmer Should Know About Memory

Wikipedia: Cache coherence

Multicore Application Programming: For Windows, Linux, and Oracle® Solaris, Darryl Gove, 2010 Information Storage and Management: Storing, Managing, and Protecting Digital Information, G. Somasundaram; Alok Shrivastava, 2009


Lingid