Fungovanie počítača Hoci sa počítačové technológie od čias prvých elektronických všeobecných počítačov zo štyridsiatych rokov dramaticky zmenili, väčšina stále používa von Neumannovu architektúru. Fungovanie takéhoto počítača je principiálne pomerne jednoduché. Zvyčajne v každom hodinovom cykle prenesie počítač inštrukcie a dáta z pamäte. Inštrukcie sa vykonajú, výsledky uložia a prinesie sa ďalšia inštrukcia. Procedúra sa opakuje až do výskytu inštrukcie pre zastavenie. Von Neumannova architektúra opisuje počítač pomocou štyroch hlavných častí: aritmeticko-logická jednotka (ALU), radiaca jednotka (CU), pamäť a vstupno/výstupné zariadenia (spoločne označované V/V). Tieto časti sú poprepájané kabelážou (zbernica) a zvyčajne synchronizované hodinami (hoci môžu byť riadené aj inými udalosťami). Inštrukcie Inštrukcie počítača nemusia byť nevyhnutne výrazovo bohaté ako ľudský jazyk. Počítač pracuje s obmedzeným počtom dobre definovaných, jednoduchých, jednoznačných inštrukcií. Typickou inštrukciou, implementovanou vo väčšine počítačov, je „skopíruj obsah pamäťovej bunky 5 do pamäťovej bunky 10“, „pričítaj obsah bunky 7 k obsahu bunky 13 a ulož výsledok do bunky 20“, „ak obsah bunky 999 je 0, ďalšiu inštrukciu nájdeš v bunke 30“. Inštrukcie sú v počítači reprezentované binárnym kódom. Napríklad kód jednej z operácií kopírovania v mikroprocesoroch radu Intel je 10110000. Inštrukčná sada podporovaná počítačom, vyjadrená vo forme čísel tak, ako je reprezentovaná v stroji, je známa ako strojový kód. V praxi sa nepíše program priamo v strojovom kóde, ale používajú sa programovacie jazyky "vyššej úrovne", ktoré do strojového kódu automaticky prekladajú špecializované programy (interpreter alebo kompilátor). Niektoré programovacie jazyky, ako assembler, sú mapované veľmi blízko na strojový kód (jazyky "nízkej úrovne"); na druhej strane jazyky ako Prolog sú založené na abstraktných princípoch nezávislých od skutočnej reprezentácie operácií strojom (jazyky „vyššej úrovne“). Pamäť Pamäte RAM Pamäť je postupnosť očíslovaných homogénnych buniek, z ktorých každá obsahuje malé množstvo informácie. Informáciou môže byť inštrukcia, ktorá hovorí počítaču, čo má robiť. Bunka môže obsahovať údaje, ktoré počítač potrebuje na vykonanie inštrukcie. Ľubovoľná bunka môže obsahovať inštrukciu alebo údaj a reprezentácia uloženej hodnoty môže byť v čase odlišná. Vo všeobecnosti je možné obsah ktorejkoľvek pamäťovej bunky kedykoľvek zmeniť. Veľkosť jednotlivej bunky a počet buniek sa medzi rôznymi počítačmi výrazne líši, ako aj technológie použité na implementáciu pamäte—od elektromechanických relé, cez ortuťou naplnené tuby (a neskôr pružiny) v ktorých sa formujú akustické impulzy, jednotlivé tranzistory až po integrované obvody s miliónmi tranzistorov a kondenzátorov na jedinom čipe. Procesor left|CPU Aritmeticko-logická jednotka (ALU) je zariadenie, vykonávajúce jednotlivé operácie ako aritmetické operácie (sčítanie, odčítanie atď.), logické operácie (and, or, not) a operácie porovnania (napr. porovnanie rovnosti dvoch bajtov). Toto je jednotka, ktorá vykonáva výpočty. Radiaca jednotka Radiaca jednotka (CPU) sleduje, ktoré bajty v pamäti obsahujú aktuálne vykonávanú inštrukciu, hovorí aritmeticko-logickej jednotke, ktorú operáciu má vykonať, získava informácie (z pamäte), ktoré sú potrebné na jej vykonanie a prenáša výsledok naspäť na správne miesto v pamäti. Po dokončení tohto cyklu sa prejde na ďalšiu inštrukciu (zvyčajne sa nachádza v ďalšej pamäťovej bunke—na ďalšej adrese, v prípade, že nenastala inštrukcia skoku oznamujúca počítaču, že ďalšia informácia sa nachádza na inom mieste). Keď hovoríme o pamäti, pri hľadaní aktuálnej inštrukcie je možné použiť niekoľko adresných modelov určenia relevantnej adresy. Niektoré základné dosky tiež podporujú dva alebo viac procesorov. Počítačové servery často využívajú dva a viac procesorov na zvýšenie výkonu. Vstup a výstup O výstup na obrazovku sa stará grafická karta. V/V umožňuje počítaču výmenu informácií s vonkajším svetom. Existuje široké spektrum V/V zariadení, od známej klávesnice, myši, monitora a tlačiarne po menej zvyčajné ako skener, webkamera a dotyková obrazovka. Všetky vstupné zariadenia charakterizuje to, že kódujú (konvertujú) určitý druh informácie na dáta, ktoré je schopný počítač ďalej spracovať. Výstupné zariadenia zasa dekódujú dáta na informáciu, ktorá je zrozumiteľná používateľovi. V tomto zmysle je počítač príkladom systému spracovania dát. Architektúra Súčasné počítače integrujú aritmeticko-logickú jednotku a riadiacu jednotku do jediného integrovaného obvodu známeho ako Centrálna procesná jednotka alebo CPU. Počítačová pamäť sa zvyčajne nachádza na niekoľkých integrovaných obvodoch v blízkosti CPU. Prevažnú väčšinu hmotnosti počítača tvoria pomocné systémy (napríklad zdroj napätia) alebo V/V zariadenia. Niektoré veľké počítače sa líšia od hore uvedeného modelu v jednom bode—majú viaceré CPU pracujúce súčasne. Navyše sa niekoľko počítačov používaných prevažne na výskumné a vedecké účely od modelu významne líšili, ale našli len malé komerčné uplatnenie, pretože ich programovací model nebol štandardizovaný. Programy Balík kancelárskych aplikácií OpenOffice.org umožňuje bežné kancelárske činnosti, ako práca s tabuľkami, textom, atď Počítačové programy sú veľké zoznamy inštrukcií na vykonanie počítačom, zvyčajne s tabuľkami dát. Mnohé počítačové programy obsahujú milióny inštrukcií a mnohé z nich sa vykonávajú opakovane. Typický moderný osobný počítač (v roku 2003) je schopný vykonať 2-3 miliardy inštrukcií za sekundu. Počítače nezískavajú výnimočné schopnosti vďaka vykonávaniu komplexných operácií. Namiesto toho vykonávajú milióny jednoduchých inštrukcií, ktoré zostavujú ľudia známi ako programátori. V súčasnosti sa zdá, že počítače sú schopné vykonávať niekoľko programov súčasne. Toto sa nazýva multitasking. V skutočnosti CPU vykonáva inštrukcie z jedného programu, po krátkom časovom intervale sa prepne, a vykonáva inštrukcie druhého atď. až sa dostane opäť k prvému. Tak vzniká dojem viacerých programov bežiacich súčasne zdieľaním času CPU medzi programami. Podobá sa to na ilúziu pohybu pri premietaní filmu ako rýchleho sledu obrázkov. Operačný systém je program, ktorý má zvyčajne na starosti zdieľanie času. Operačný systém Keď počítač beží, potrebuje vykonávať program, či už preň existuje užitočná práca alebo nie. V typickom stolovom počítači je takýto program operačný systém (OS). Operačný systém rozhoduje, ktoré programy sa budú vykonávať, kedy, a aké zdroje (ako pamäť, V/V) im budú pridelené. Operačný systém tiež poskytuje vrstvu abstrakcie nad hardvérom a poskytuje služby iným programom ako kódy („ovládače“), ktoré umožňujú programátorom písať programy bez toho, aby museli poznať detaily použitej elektroniky. Väčšina operačných systémov s vrstvou abstrakcie hardvéru tiež poskytuje štandardizované používateľské rozhranie.