miten vähintään kaksi toimijaa työskentelee yhteisen päämäärän hyväksi



Samankaltaiset tiedostot
Johdatus tietojenkäsittelytieteeseen - silmäys tietojenkäsittelyn ydineknologioihin

Johdatus tietojenkäsittelytieteeseen 5. Tietojenkäsittelyn mekaniikat. Kurssin sisältö

Johdatus tietojenkäsittelytieteeseen - tietojenkäsittelyn mekaniikat. Matemaattis-luonnontieteellinen tiedekunta Tietojenkäsittelytieteen laitos

Käyttöjärjestelmät: Virtuaalimuisti

Johdatus diskreettiin matematiikkaan Harjoitus 7,

Johdatus tietojenkäsittelytieteeseen - silmäys tietojenkäsittelyn ydinteknologioihin

Johdatus tietojenkäsittelytieteeseen 4. Silmäys tietojenkäsittelyn ydineknologioihin. Kurssin sisältö

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Algoritmit 2. Luento 8 Ke Timo Männikkö

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Luento 6. June 1, Luento 6

Johdatus tietojenkäsittelytieteeseen 4. Silmäys tietojenkäsittelyn ydineknologioihin. Kurssin sisältö

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Induktio kaavan pituuden suhteen

2.2 Täydellinen yhtälö. Ratkaisukaava

Lisää segmenttipuusta

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Lue ohjeet huolellisesti ennen laitteen käyttöä.

Stabilointi. Marja Hassinen. p.1/48

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Matematiikan tukikurssi

OSI ja Protokollapino

Turingin koneen laajennuksia

Matematiikan tukikurssi 3.4.

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Algoritmit 1. Luento 2 Ke Timo Männikkö

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

Kuva maailmasta Pakettiverkot (Luento 1)

Diskreetit rakenteet

FILOSOFIA JA USKONTO LÄNSIMAINEN NÄKÖKULMA USKONTOON. Thursday, February 19, 15

2.7 Neliöjuuriyhtälö ja -epäyhtälö

Ulkoiset mediakortit Käyttöopas

Algoritmit 2. Luento 13 Ti Timo Männikkö

T Tietokoneverkot kertaus

SKYPE-RYHMÄN LUOMINEN

Matematiikan tukikurssi

Luku 8. Aluekyselyt. 8.1 Summataulukko

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Stabiloivat synkronoijat ja nimeäminen

TW- EAV510: WDS- TOIMINTO KAHDEN TW- EAV510 LAITTEEN VÄLILLÄ

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa

Täydentäviä muistiinpanoja laskennan rajoista

ESTON LASKENTA VERKOSSA

3. Laskennan vaativuusteoriaa

Markkinoiden helpoin ja käytännöllisin IP Kamera

Stabilointi. arvosana. arvostelija. Marja Hassinen

- Valitaan kohta Asetukset / NAT / Ohjelmallinen palvelin - Seuraavassa esimerkki asetuksista: valitaan käytössä oleva ohjelmistorajapinta

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Tehtävä 2: Tietoliikenneprotokolla

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Kolmogorov-kompleksiteetti

Kenguru 2016 Mini-Ecolier (2. ja 3. luokka) Ratkaisut

Algoritmit 1. Luento 1 Ti Timo Männikkö

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Kenguru 2006 sivu 1 Benjamin 6. ja 7. luokka ratkaisut

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Hae Opiskelija käyttöohje

Dynaaminen optimointi

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

KiVa Koulu tilannekartoituskysely 2016 sivu 1/31. KiVa Koulu tilannekartoituskysely 2016 sivu 2/31. KiVa Koulu tilannekartoituskysely 2016 sivu 3/31

Aluksi Kahden muuttujan lineaarinen epäyhtälö

TILASTOLLINEN LAADUNVALVONTA

Algoritmit 2. Luento 2 Ke Timo Männikkö

Empatiaosamäärä. Nimi: ********************************************************************************

Johdatus tietojenkäsittelytieteeseen 4. Silmäys tietojenkäsittelyn ydineknologioihin. Kurssin sisältö

Johdatus tietojenkäsittelytieteeseen - silmäys tietojenkäsittelyn ydineknologioihin

Learning cafen yhteenveto. Helsinki

Esimerkkejä derivoinnin ketjusäännöstä

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Outlook Microsoft Outlook 2007 PIKAOHJE: SÄHKÖPOSTIN UUSI ILME. Kieliversio: suomi Materiaaliversio 1.0 päivitetty

Hei, mitä täällä tapahtuu? Äiti? Eipäs kun opettaja. Kuka näistä asioista päättää? Ei, vaan kansanedustajat! Eduskuntatiedotus 2012

D B. Tiedostojen käsittely

Algoritmit 2. Luento 9 Ti Timo Männikkö

Paavo Kyyrönen & Janne Raassina

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

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Päätöksentekomenetelmät

Monimutkaisempi stop and wait -protokolla

Windows Live SkyDrive - esittely

T U K E A T A R V I T S E V A O P I S K E L I J A L U K I O S S A.

TimeEdit henkilökunnan ohje

P A R T. Professional Assault Response Training Seppo Salminen Auroran koulu. Valtakunnalliset sairaalaopetuksen koulutuspäivät

Sonera Hosted Mail -palvelun käyttöohje

ABT 2000kg Haarukkavaunun käyttöohje

Johdatus tietojenkäsittelytieteeseen 4. Silmäys tietojenkäsittelyn ydineknologioihin. Kurssin sisältö

TURBOKOODAUS. Miten turbokoodaus eroaa konvoluutiokoodauksesta? A Tietoliikennetekniikka II Osa 26 Kari Kärkkäinen Syksy 2015

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

PHYS-C0220 Termodynamiikka ja statistinen fysiikka Kevät 2016

Muita vaativuusluokkia

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

IHTE-1100 Käytettävyyden perusteet syksy 2007 Liite 1: Käsitteellinen suunnittelu

Valuuttamääräiset maksut RM-järjestelmässä Toimitusjohtajan päätös RM-järjestelmän liikkeeseenlaskijoille RM-järjestelmän tilinhoitajille

Opettajalle ohje opintojakson toteutuksen tekemiselle mallipohjana ja mallipohjan tuominen opintojakson toteutukseen.

1. Universaaleja laskennan malleja

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Transkriptio:

informaation tallentaminen ja hakeminen mitä voidaan laskea tai päätellä algoritmisin menetelmin tietokoneella suoritettavat kognitiiviset (ihmiselle tyypilliset tietojenkäsittelyn) tehtävät sanoman välittäminen paikasta toiseen miten vähintään kaksi toimijaa työskentelee yhteisen päämäärän hyväksi

Laskenta (computing) Mitä voidaan laskea tai päätellä algoritmisilla menetelmillä? keskeisiä käsitteitä algoritmit (algorithms), ohjausrakenteet (control structures), tietorakenteet (data structures), automaatit (automata), formaalit kielet (formal languages), kompleksisuus (complexity), predikaattilogiikka (predicate logic), likimääräismenetelmät (approximation algorithms), heuristiset algoritmit (heuristics), satunnaisalgoritmit (probabilistic algorithms) ratkeavuus (solvability).

Esimerkki: Turingin kone abstrakti laskulaite, jolla voidaan määritellä laskentoja matemaattinen vastine algoritmin käsitteelle eli kaikki algoritmit voidaan esittää Turingin koneen avulla vastaa kysymykseen mitä voidaan laskea tai päätellä? (vastaus: kaikkea sitä, mikä onnistuu Turingin koneella) Turingin kone muodostuu äärellisestä tilasysteemistä muistista, joka on toiseen suuntaan ääretön nauha muisti on jaettu luku kirjoitus kohtiin, joihin voidaan tallentaa sovittuun aakkostoon kuuluva merkki lisäksi koneessa on luku kirjoitus pää, joka on aina täsmälleen yhden nauhan luku kirjoitus kohdan päällä yhdessä askeleessa kone lukee pään kohdalla olevan merkin, siirtyy sen ja nykyisen tilan perusteella uuteen tilaan ja kirjoittaa siirron yhteydessä vanhaan luku kirjoitus kohtaan uuden merkin

alkutilanteessa nauhalla on koneen syöte ja kone on erikseen määritellyssä alkutilassaan kone tekee peräkkäisiä siirtymiä, kunnes se joutuu umpikujaan (seuraavaa toimintaa ei ole määritelty) tai se päätyy erikseen määriteltyyn lopputilaan Turingin kone voi muuntaa nauhan alkusisällön uudeksi sisällöksi (toteuttaa jonkun funktion) vastata kyllä tai ei (tunnistaa joukon alkioita tai ratkaista päätösongelman) määritellä joukon (myös äärettömän) luettelemalla sen alkiot

Turingin kone, joka saa syötteekseen binääriluvun ja poistaa siitä viimeisen bitin (korvaa sen tyhjä merkillä β).

Yksi Turingin kone toteuttaa yhden funktion Universaali Turingin kone pystyy simuloidaan mitä tahansa Turingin konetta millä tahansa syötteellä Universaalin Turingin koneen itseensäviittaamiseen perustuvat laskennan teorian perustulokset kaikkia ongelmia ei voida ratkaista algoritmisesti kaikki funktiot eivät ole laskettavissa (millään Turingin koneella) kaikki päätösongelmat eivät ole ratkeavia Esimerkki ratkeamattomasta päätösongelmasta: Pysähtyykö Turingin kone annetulla syötteellä?

Turingin koneiden aika ja tilavaatimukset paljonko tietyn ongelman ratkaiseminen vaatii aikaa ja tilaa syötteen koon funktiona mielekästä, koska Turingin koneen resurssivaatimukset ovat polynomisessa suhteessa ohjelmointikielillä kirjoitettujen vastaavien ratkaisujen kanssa Ratkeamattomat ongelmat Vaikeat ongelmat Polynomisessa ajassa ratkeavat Ratkeavat ongelmat Vastaavasti tilan suhteen

Kommunikaatio (communication) Yksinkertaistettuna: sanoman välittäminen paikasta toiseen keskeisiä käsitteitä: tiedonsiirto (data transmission), tiedon fyysinen esittäminen (encoding to medium), kanavan kapasiteetti (channel capacity), kohinanpoisto (noise suppression), tiedon tiivistäminen (data compression), salakirjoitus (cryptography), pakettiverkko (reconfigurable packet networks) virheiden havaitseminen ja korjaaminen (error detection and correction).

Esimerkki: OSI malli Seitsemänkerroksinen kehikko : Sovelluskerroksella keskitytään kunkin sovelluksen vuoropuheluun eli dialogin määrittelyyn, määritellään viestit, niiden rakenne ja merkitys. Yleisimpiä sovellustason protokollia ovat sähköposti, uutisryhmät ja Web. Esitystapakerroksella keskitytään sanoman sisällön esitystapaan, esim. eri merkistökoodauksien yhteensovittamiseen. Istuntokerros mahdollistaa istunnon (session) muodostamisen ja useiden yhdessä yhteydessä kulkevien istuntojen käsittelyn. Kuljetuskerros keskittyy sanoman siirtämiseen päätepisteiden välillä. Internet maailman keskeiset kuljetusprotokollat ovat TCP ja UDP.

Verkkokerroksella keskitytään pääasiassa sanomien reititykseen mitä reittiä pitkin sanoma kulkee lähettäjältä vastaanottajalle. Verkkokerroksella huolehditaan myös ruuhkanhallinnasta. Internetmaailmassa verkkokerroksen keskeisin protokolla on IP eli Internet Protocol. IP:n ruuhkanhallinta on suoraviivaista: jos sanomia on liikaa, jotkut sanomat yksinkertaisesti tuhotaan. Linkkikerroksen tärkein tehtävä on muuntaa fyysinen tiedonsiirtokanava tiedonsiirtolinjaksi siten, että fyysisessä tiedon siirrossa tapahtuvat virheet eivät näy verkkokerrokselle. Tavanomaisin tapa on ryhmitellä bitit muutaman sadan tai tuhannen tavun paketeiksi. Pakettiin liitetään joitakin ylimääräisiä bittejä, joiden avulla vastaanottaja pystyy päättelemään, onko kehyksen sisältö muuttunut matkan varrella. Muuttumattomat paketit kuitataan vastaanotetuiksi, rikkoutuneet pyydetään lähettämään uudelleen. Fyysisellä kerroksella keskitytään bittien lähettämiseen tiedonsiirtokanavaa pitkin. Tyypillisesti määritellään, kuinka monta volttia käytetään esittämään arvoa 1 ja kuinka monta arvoa 0. Lisäksi määritellään bitin kesto.

Koordinointi (coordination) Miten vähintään kaksi toimijaa työskentelee yhteisen päämäärän hyväksi? ihmisten välinen koordinointi, ihmisen ja tietokoneen välinen koordinointi, tietokoneiden välinen koordinointi. Ihmisten välinen: toimintaketjut (action loops) ja tietokoneiden tukema työnkulku. Ihmisen ja tietokoneen välinen: rajapinta (interface), syöte (input), tuloste (output) ja vasteaika (response time). Tietokoneiden välinen: synkronointi (synchronization), kilpatilanteet (race conditions), lukkiutuminen (deadlock), sarjallistuvuus (serializability) ja atomiset toimenpiteet (atomic actions).

Esimerkki: synkronointi Synkronointi eli tahdistaminen on aikaan liittyvää koordinointia. Monissa tilanteissa tietovirtojen tulee edetä samaa tahtia. Synkronoinnilla varmistetaan, että itsenäisten toimijoiden aikaansaannokset valmistuvat oikeassa järjestyksessä. Hajautetuissa järjestelmissä sanomiin liitetään usein lähettäjän aikaleima ja on tärkeää, että kellot on synkronoitu. Erilaiset synkronointiongelmat liittyvät usein yhteiskäyttöisten resurssien hallintaan. Ratkaisujen on estettävä sekä nälkiintyminen (joku joutuu odottamaan vuoroaan ikuisesti) että lukkiutuminen (kaikki odottavat, että joku toinen tekisi jotain).

Synkronointiongelmia Tuottaja kuluttaja ongelma. Tuottaja 1 Tuottaja 2 Tuottaja n Varasto Kuluttaja 1 Kuluttaja 2 Kulutttaja m Kuluttaja ei voi kuluttaa ennen kuin tuottaja on tuottanut. Toisaalta välivaraston täyttymisen jälkeen tuottajan on odotettava, että kuluttaja ehtii kuluttamaan. Kun tuottajia ja kuluttajia on useita, niin on myös huolehdittava poissulkemisesta: kaksi kuluttajaa ei saa saada samaa tuotosta samanaikaiset lisäykset ja poistot eivät saa sotkea kirjanpitoa.

Lukija kirjoittaja ongelma. Kirjoittaja 1 Kirjoittaja 2 Kirjoitttaja n Lukukirjoitus -alue Lukija 1 Lukija 2 Lukija m Kaikki voivat lukea samanaikaisesti, mutta vain yksi kerrallaan voi kirjoittaa. Kirjoittajan nälkiintymisen estäminen on erityisen tärkeää. Jos kirjoittaja ei saa kirjoitusvuoroa, niin kaikki lukijat lukevat vanhentunutta tietoa.

Kilpatilanne (race hazard). Järjestelmässä oleva suunnitteluvirhe, jonka seurauksena järjestelmän toiminta riippuu ennalta arvaamattomalla tavalla tapahtumien käsittelyjärjestyksestä. Pros. 1 Pros. 2 i:n arvo 0 Lue i 0 Inc i 0 Kirj i 1 Lue i 1 Inc i 1 Kirj i 2 Pros. 1 Pros. 2 i:n arvo 0 Lue i 0 Lue i 0 Inc i 0 Inc i 0 Kirj 1 1 Kirj i 1

Aterioivien filosofien ongelma Viisi filosofia istuu pyöreän pöydän ympärillä. Jokaisen filosofin edessä on spagettilautanen. Jokaisen lautasen välissä on yksi haarukka. Filosofien elämässä on kaksi vuorottelevaa tilaa: syöminen ja ajattelu. Jokainen filosofi tarvitsee kaksi haarukkaa syödäkseen, mutta haarukat otetaan yksitellen. Saatuaan kaksi haarukkaa filosofi syö jonkin aikaa, minkä jälkeen hän vapauttaa molemmat haarukat ja jatkaa ajatteluaan.

Jos jokainen filosofi saisi samanaikaisesti päähänsä tarttua oikeanpuoleiseen haarukkaan, niin syntyisi lukkiutuminen. Kullakin filosofilla olisi yksi haarukka ja jokainen odottaisi ikuisesti toisen haarukan vapautumista. Vaihtoehtoisesti filosofit voisivat olla kohteliaita: Jos toinen haarukka ei ole vapaa, niin filosofi vapauttaa varaamansa haarukan, odottaa hetken ja yrittää varata haarukoita uudelleen. Nyt järjestelmä ei lukkiudu, mutta vaikka odotusaika olisikin satunnainen, niin ei ole mitään takeita, että jokainen filosofi pääsee joskus syömään. Aterioivien filosofien ongelman ratkaisuun tarvitaan algoritmi, joka estää sekä edellä kuvatun lukkiutumisen että nälkiintymisen. Tällaisia ratkaisuja on useita.

Automatisointi Automatisoinnin (automation) peruskysymykset liittyvät tietokoneella suoritettaviin kognitiivisiin tehtäviin. Automatisoinnin keskeisiä käsitteitä ovat kognitiivisten tehtävien simulointi (simulation of cognitive tasks), asiantuntemus ja asiantuntijajärjestelmät (expertise and expert systems), Turingin testit (Turing tests) sekä koneoppiminen ja tunnistaminen (machine learning and recognition).

Turingin testi Turingin testin taustalla on englantilainen seuraleikki Imitation Game. Alan Turing tarjosi siihen perustuvaa testiään älykkyyden määritelmäksi. Turingin testissä ihminen kirjoittaa kahdelle testattavalle kysymyksiä. Saamiensa kirjallisten vastausten perusteella hän yrittää erottaa, kumpi testattavista on tietokone. Tekoälyn maailmassa Turing testi edustaa tekoälyn toimii kuin ihminen määritelmää. Muita tekoälyn määritelmiä ovat ajattelee kuin ihminen, ajattelee rationaalisesti ja toimii rationaalisesti.

Turingin testin käyttökelpoisuutta koneälyn määritelmänä on arvosteltu voimakkaasti. Kone, joka läpäisisi Turingin testin, kyllä jäljittelisi ihmisen käyttäytymistä keskustelussa, mutta tällainen jäljittely on vielä kaukana todellisesta älykkyydestä. Kone vain noudattaisi jotain nokkelasti laadittua säännöstöä. John Searlen kiinalainen huone: Syntakstista ei voi johtaa semantiikkaa. Searlen mukaan semantiikka on riippumaton syntaksista. Tietokone kykenee Searlen mukaan ainoastaan syntaksiin eikä lainkaan semantiikkaan. Hieman toisin sanoin sama kritiikki: Turingin testi ei edellytä tietoisuutta tai tavoitteellisuutta, eikä jäljittelyllä ei ole mitään tekemistä todellisen ajattelun kanssa. Turingin testin läpäisevän järjestelmän tulisi käyttäytyä kuin ihminen. Useimpiin tietojenkäsittelyn sovelluksiin tavoite on virheellinen. Tunnetusti ihminen tekee virheitä, joita muut ihmiset eivät välttämättä huomaa. Siten Turingin testin läpäisevä palkanlaskujärjestelmä voisi tehdä virheitä.

Turingin testin läpäisevän järjestelmän olisi kuitenkin ratkaistava ainakin neljä tietojenkäsittelyn keskeistä ongelmaa: Luonnollisen kielen käsittely: Järjestelmän on ymmärrettävä sille esitetyt kysymykset ja muotoiltava vastaukset. Luonnollisen kielen käsittelyssä erityisenä ongelmana on, että usealla sanalla on useita asiayhteydestä riippuvia merkityksiä. Tietämyksen esittämisen: Järjestelmän on tallennettava tietämänsä ja kuulemansa. Tietämyksen laajentuessa tallennuksen ja etsinnän tehokkuus nousevat keskeiseen asemaan. Automaattinen päättely: Järjestelmän on pystyttävä tallennetun informaation perusteella tekemään päätelmiä, joiden perusteella vastaus voidaan muotoilla. Koska loogisen päättelyn jotkut ongelmat ovat todistetusti ratkeamattomia, niin järjestelmän on myös tiedettävä, mitä se ei pysty päättelemään. Koneoppiminen: Järjestelmän on sopeuduttava uusin tilanteisiin. Koneoppimisessa järjestelmän maailmankuva muuttuu järjestelmän saaman datan perusteella

Muistaminen Muistamisen (recollection) peruskysymykset liittyvät informaation tallentamiseen ja hakemiseen. Muistamisen keskeisiä käsitteitä ovat tallennusvälineiden hierarkiat (hierarchies of storage), viittausten paikallisuus (locality of reference), välimuistit (caching), osoiteavaruudet ja niiden väliset kuvaukset (address space and mappings), yhteiskäyttö (sharing), etsintä (searching), haku nimen perusteella (retrieval by name) ja haku sisällön perusteella (retrieval by content).

Välimuisti Prosessorit ovat huomattavasti nopeampia kuin keskusmuistit, keskusmuistit huomattavasti nopeampia kuin levymuistit. Erilaisia välimuisteja (cache) käytetään nopeuttamaan tulosten valmistumista. Tieto tallennetaan tilapäisesti välimuistiin lähemmäksi käsittelypaikkaa. Välimuistit ovat osoittautuneet erittäin tehokkaiksi useilla tietojenkäsittelyn alueilla, koska datan käyttö on tyypillisesti paikallista. Paikallisuus (locality) esiintyy tietojenkäsittelyssä useissa eri muodoissa. Tavanomaisimmin käsite tarkoittaa, että samoja tietoalkioita käsitellään useita kertoja ajallisesti lähekkäin tai että lähellä toisiaan sijaitsevia tietoalkioita käsitellään ajallisesti lähekkäin.

Kun välimuistin käyttäjä (prosessori, Web selain, käyttöjärjestelmä) haluaa käyttää varsinaisessa muistissa olevaa tietoa, niin se ensimmäiseksi tarkistaa, löytyykö kyseinen tieto välimuistista. Jos tarvittavan tiedon kopio on välimuistissa, niin käytetään kopiota. Jos välimuistissa ei ole kopiota, niin tietoalkio noudetaan varsinaisesta muistista ja useimmiten tallennetaan myös välimuistiin. Käyttäjä (tiedon tarvitsija) cache Muisti

Välimuisti on useimmiten huomattavasti pienempi kuin varsinainen muisti. Tällöin välimuistista joudutaan poistamaan alkioita uusien tietoalkioiden tieltä. Heuristiikkaa, jolla poistettava alkio valitaan, kutsutaan poistopolitiikaksi (replacement policy). Poistopolitiikka perustuu usein aikaisemmin mainittuun paikallisuuteen. Ohjelmallisesti toteutetuissa välimuisteissa yleisin poistopolitiikka on LRU (least recently used) eli poistetaan alkio, joka on ollut pisimpään käyttämättä.

Kun välimuistissa olevaa tietoa muutetaan, niin jossakin vaiheessa muuttunut tieto on kirjoitettava myös varsinaiseen muistiin. Tämän kirjoituksen ajoitusta ohjaa kirjoituspolitiikka (write policy). Läpikirjoittavassa (write through) välimuistissa jokainen välimuistiin kirjoitus aiheuttaa välittömän kirjoituksen varsinaiseen muistiin. Tavallista välimuistin laitteistototeutuksessa (prosessorien välimuistit), Vaihtoehtoisesti kirjoitusta voidaan viivästää (write back cache). Tällöin välimuisti pitää kirjaa niistä tietoalkioista, joita on muutettu. Nämä kirjoitetaan varsinaiseen muistiin, kun alkio poistetaan välimuistista. Tavallista ohjelmallisesti toteutetuissa välimuisteissa (tiedostovälimuistit). Välimuistissa oleva tietoalkio voi vanhentua (stale) myös siten, että varsinaisen muistin sisältö muuttuu. Tällöin välimuistin toteutuksessa tarvitaan eheysprotokolla (coherency protocol), jonka avulla välimuistien sisällöt pidetään yhtenäisinä.

Vähän tiedon tiivistämisestä tallennustilan säästämiseksi ja tiedonsiirtokustannusten pienentämiseksi tiivistettävä tieto koodaus tiivistetty informaatio dekoodaus alkuperäinen tieto säilyttävä / hukkaava teksti / kuva / ääni / video /.. tekstin tiivistyksestä teksti, joka jakautuu sanoihin koodi, joka jakautuu koodisanoihin kiinteämittaiset / vaihtelevat sanat ja koodisanat koodisanojen oltava yksikäsitteisesti tulkittavissa tulkinta onnistuu esim. silloin, kuin koodisanojen joukolla ns. prefixominaisuus eli mikään koodisana ei ole toisen koodisanan etuosa

Tarkastellaan informaatiolähdettä, joka tuottaa lähdeaakkoston {s1,..., sk} merkkejä yksi kerrallaan, merkkien esiintyminen on toisistaan riippumatonta ja merkki s1 esiintyy todennäköisyydellä pi. Näillä oletuksilla mahdollisuus tiivistää lähteen merkkivirtaa riippuu ainoastaan merkkien esiintymisen todennäköisyysjakaumasta. Vakiolähteen tapauksessa jollain merkillä si on esiintymistodennäköisyys pi = 1. Tällöin muilla merkeillä pj, j i, on oltava pj = 0. Toinen ääritapaus on satunnaislähde, jolla pi = 1/k kaikilla merkeillä pi. Vakiolähteen merkkivirtaan ei sisälly informaatiota, eikä sen tiivistämiseen tarvita yhtään bittiä. Satunnaislähteellä on korkea informaatiosisältö, ts. seuraavaa merkkiä ei voida ennustaa. Seuraavan merkin koodaamiseen tarvitaan log k bittiä. Mitä vakioisempi lähde, sen vähemmän bittejä tarvitaan. Tätä kuvaa lähteen entropia.

Lähteen entropia määrää informaatioteoreettisen alarajan tiivistämisessä tarvittavien bittien lukumäärälle. Sen alle mikään tiivistysmenetelmä ei voi päästä. Tarkastellaan vielä vinoa lähdettä: p1 = ½ ja pi = 1 /(k 1), kun i > 1. Koodisanat kannattaa valita niin, että p1 koodataan nollaksi ja muut merkit niin, että koodisanan alussa on ykkönen, ja sen jälkeen log (k 1) bittiä. Bittejä tarvitaan keskimäärin 1 + log (k 1) / 2. Oletus merkkien toisistaan riippumattomasta esiintymisestä ei kuitenkaan yleensä päde. Ajattele esimerkkinä suomenkielistä tekstiä, jossa on peräkkäin merkit h e v o n e. Mikä todennäköisyys, että seuraava merkki on a? Mikä todennäköisyys, että seuraava merkki on n? Helpompi ennustaminen vähentää tarvittavien bittien lukumäärää.

Optimaalinen staattinen koodausmenetelmä: Huffman koodaus staattinen : sanat ja koodisanat eivät muutu tiivistysprosessin aikana järjestään koodattavat sanat esiintymistiheyden mukaan laskevaan järjestykseen muodostetaan binääripuu, jonka lehtinä koodattavat sanat ovat alkutilanteessa jokainen sana muodostaa oman puunsa, jonka paino on sanan esiintymistiheys yhdistetään aina kaksi keveintä puuta uudeksi puuksi, jonka paino on osien summa jatketaan, kunnes kaikki sanat ovat samassa puussa koodisanat saadaan kulkemalla puun juuresta lehteen, ja ottamalla koodisanaan ykkönen, kun käännytään vasemmalle, ja nolla, kun käännytään oikealle

Esimerkki: Sanat ja niiden esiintymistodennäköisyydet: A 0.1 B 0.2 C 0.3 D 0.4 Yhdistetään puut, joissa A ja B 0.1 + 0.2 = 0.3 0.6 Yhdistetään AB puu ja C puu C A B Yhdistetään kaksi jäljellä olevaa puuta. D Esim. B:n koodisana on 110. C A B