Kompjuter

**Kompjuter** ili **kompjutor** (engl. *computer*, od lat. *computare*: zbrojiti, računati), složeni uređaj koji služi za izvršavanje matematičkih operacija ili kontrolnih operacija koje se mogu izraziti u numeričkom ili logičkom obliku. Naziva se još i *elektroničko računalo* ili *računar*. Računari su sastavljeni od komponenata koje obavljaju jednostavnije, jasno određene funkcije. Kompleksna interakcija tih komponenata rezultira sposobnošću računara da obrađuje informacije.

Konvencionalno, kompjuter se sastoji od bar procesorskog elementa, tipično centralne procesorske jedinice (CPU), i neke forme memorije. Procesorski element izvodi aritmetičke i logičke operacije, a sekvencirajuća i kontrolna jedinica mogu da promene redosled operacija u responsu na sačuvanu informaciju. Periferni uređaji omogućavaju povraćaj informacije iz spoljašnjih izvora, te oni izvršavaju zapisivanje i čitanje.

Računari u današnjem smislu nastali su polovinom 20. veka, ali koreni računarstva su mnogo stariji. Mehanički analogni računari su počeli da se pojavljuju u prvom veku i kasnije su korišćeni u srednjem veku za astronomske proračune. Tokom Drugog svetskog rata, mehanički analogni računari su korišćeni za specijalizovane vojne namene. Tokom tog vremena razvijeni su prvi elektronski digitalni računari. Originalno oni su bili veličine velike sobe, konzumirajći količinu energije jednaku količini neophodnoj za napajanje nekoliko stotina modernih personalnih računara (PC).

Sposobnosti modernih računara baziranih na integrisanim kolima su milionima ili milijardama puta veće od ranih mašina, i oni zauzimaju malu frakciju prostora neophodnog za smeštaju ranih računara. Jednostavni računari su dovoljno mali da se smeste u mobilne uređaje, i mobilni računari se mogu napajati malim baterijama. Lični računari u njihovim različitim formama su ikone informacionog doba i oni su ono što većina ljudi smatra „računarima“. Međutim, ugrađeni računari prisutni u mnogim uređajima od MP3 plejera do borbenih aviona i od igračaka do industrijskih robota su najbrojniji.

## Etimologija
Prva poznata upotreba reči „kompjuter“ dolazi iz 1613. godine iz knjige zvane „*The Yong Mans Gleanings*“ engleskog pisca Ričarda Brajtvajta: „I haue read the truest computer of Times, and the best Arithmetician that euer breathed, and he reduceth thy dayes into a short number.“ Ona se odnosi na osobu koja vrši proračune, ili izračunavanja. Reč je zadržala to značenje do sredine 20. veka. Od kraja 19. veka reč je počela da poprima njeno poznatije značenje, *mašina koja vrši proračune*.

## Osnovni principi
Rad računara može biti zasnovan na kretanju mehaničkih dijelova, elektrona, fotona, kvantnih čestica ili neke druge fizičke pojave. Iako se računari mogu izgraditi na mnogim postojećim tehnologijama, gotovo svi današnji modeli sadrže u sebi elektroničke komponente.

Kod većine današnjih računara zadati problemi se u biti rješavaju pretvaranjem svih relevantnih informacija u matematičke relacije korištenjem binarnog sistema (nula i jedan). (Međutim, računari ne mogu riješiti sve matematičke probleme.)

Nakon što računar izvrši izračunavanje zadatog problema, rezultat se prikazuje na korisniku (čovjeku) pristupačan način; preko signalnih lampi, LED displeja, monitora, štampača i dr.

Početnici u radu sa računarima, naročito djeca, često ne mogu shvatiti činjenicu da su računari samo uređaji i da ne mogu "misliti" odnosno "razumjeti", čak ni ono što prikažu kao rezultat svog "rada". Slike, boje, riječi i dr. koje vidimo na ekranu računarskog monitora su samo programirani prikazi koje ljudski mozak prepoznaje i daje im značenje i smisao. Računar prosto manipulira tokovima elektrona kojima, na svojoj osnovnoj razini funkcionisanja - tranzistoru, dodjeljuje logičke vrijednosti nula ili jedan, odnosno, stanju "nema napona" ili "ima napona". Do sada nam nije poznat način kojim bi se uspješno imitiralo ljudsko razmišljanje ili samosvjesnost.

### Veliki centralni računari (mejnfrejmovi)

Gotovo istovremeno su uvedeni udaljeni (tzv. „glupi“) terminali koji su imali monitor i tastaturu za unos podataka u jednom kućištu ali se obrada podataka i dalje obavljala u glavnom (i jedinom) računaru ().

Kasnije su se pojavili i „inteligentni“ terminali koji su deo operacija mogli da obavljaju sami. Vikipedija, danas, je u elektronskom smislu organizovana na sličan način - glavni računar je u SAD a inteligenti terminali (PC računari) kod korisnika. Internet ima ulogu „mreže“.

### Bitne odrednice za konstruktivna rješenja
#### Binarni ili decimalni?
Važan korak naprijed u razvoju digitalnog računarstva bilo je uvođenje binarnog sistema za unutrašnje numeričke procese. Ovim je prestala potreba za kompleksnim izvršnim mehanizmima koje su računari zasnovani na drugim numeričkim sistemima, npr. decimalnom ili heksadecimalnom, zahtijevali. Usvajanje binarnog sistema rezultiralo je pojednostavljenjem konstruktivnih rješenja kod implementacije aritmetičkih funkcija i logičkih operacija, znači, i pojednostavljenjem sklopova i komponenata samog računara.

#### Mogućnost programiranja
Mogućnost da se računar programira, tj. opremi nizom izvršnih instrukcija bez potrebe za fizičko-konstruktivnim izmjenama, osnovna je funkcionalna karakteristika većine računara. Ova osobina je značajno unaprijeđena njihovim razvojem do stepena na kojem su bili sposobni kontrolirati redoslijed izvršavanja instrukcija na osnovu podataka dobijenih tokom samog vršenja određenog programa. Ovo konstruktivno unaprijeđenje je još više pojednostavljeno uvođenjem (v. prethodnu cjelinu) binarne aritmetike kojom se mogu predstaviti različite logičke operacije.

#### Pohrana podataka
Tokom računskih operacija često je potrebno pohraniti među-vrijednosti ("dva pišem a jedan pamtim") koje će se upotrijebiti u daljem računanju. Performanse nekog računara su najčešće ograničene brzinom kojom se vrijednosti čitaju/zapisuju iz/u memoriju i njenim kapacitetom. Prvobitno je zamišljeno da se memorija koristi samo za pomenute među-vrijednosti, međutim, ubrzo su se i sami programi počeli pohranjivati na ovaj način i to se uveliko primjenjuje kod današnjih kompjutera.

## Kako rade digitalni računari
Iako se tehnologija izrade računara značajno izmijenila od vremena prvih elektroničkih modela sagrađenih u četrdesetim godinama XX vijeka, još uvijek je većina današnjih rješenja zasnovana na fon Njumanovoj arhitekturi. Računar kao sklop sastavljen od tri glavna dijela:
 
# Mikroprocesor zajedno sa Aritmetičko-logičkom jedinicom ALU (eng. Arithmetic and Logic Unit),
# memorija, 
# I/O (eng. Input and output system) ulazni i izlazni sklopovi.

Ovi dijelovi su međusobno povezani mnoštvom žica - "bus"; magistrala/sabirnica. Svi su obično pogonjeni vremenskim uređajem (tajmer, sat, generator takta), mada i drugi "događaji" mogu pogoniti kontrolne sklopove.

### Memorija
Ovdje podrazumijevamo da je **[[memorija]]** niz obrojčenih/numerisanih ćelija, od kojih svaka sadrži djelić informacije. Informacija može biti instrukcija kojom se računaru zadaje neki zadatak. Ćelija može sadržavati i podatak koji je potreban računaru da bi izvršio neku instrukciju. U svakom slučaju, bilo koja od ćelija može sadržavati djelić informacije koji u datom trenutku može predstavljati podatak a već u slijedećem - instrukciju. Znači, sadržaj memorijskih ćelija se neprestano mijenja.

Veličina svake ćelije i njihov broj, razlikuje se od računara do računara a i tehnologije izrade tokom njihovog razvoja su bile bitno različite. Tako smo imali elektromehaničke memorije - releje, cijevi ispunjene živom u kojima su se stvarali zvučni pulsevi, matrice stalnih/trajnih magneta, pojedinačnih tranzistora, sve do integralnih kola sa više miliona diskretnih i aktivnih elemenata.

### Mikroprocesor, mikročip

**Artimetičko-logička jedinica** (ALU - arithmetic and logic unit) vrši osnovne aritmetičke operacije (sabiranje, oduzimanje i dr.), logičke operacije (I, ILI, NE) i upoređivanje, npr. da li se sadržaj dva bajta podudara. U ovoj jedinici se zapravo "odrađuje glavni posao".

**[[Kontrolna jedinica]]** vodi računa o tome koji bajtovi u memoriji sadrže instrukciju koju računar trenutno obrađuje, određuje koje operacije će ALU izvršavati, nalazi informacije u memoriji koje su potrebne za te operacije i prenosi rezultate na odgovarajuća memorijska mjesta. Kada je to obavljeno, kontrolna jedinica ide na narednu instrukciju (obično smještenu na slijedećem memorijskom mjestu) ukoliko instrukcija ne govori računaru da je slijedeća instrukcija smještena negdje drugo.
Kada se poziva na memoriju, data instrukcija može na različite načine odrediti odgovarajuću memorijsku adresu. Uz to, neke matične ploče podržavaju dva ili više procesora. Takve obično nalazimo kod servera/poslužitelja.

### Ulaz i izlaz
Putem **ulaza i izlaza (I/O)**, računar dobija informacije iz vanjskog svijeta i šalje rezultate natrag. Postoji širok spektar I/O uređaja; od običnih tastatura, preko miševa, monitora, disketnih pogona, CD/DVD (optičkih) pogona, štampača, sve do skenera i kamera.

Zajednička osobina svih ulaznih jedinica je da pretvaraju informacije određene vrste u podatke koji dalje mogu biti obrađeni u digitalnom sistemu računara. Nasuprot tome, izlazne jedinice pretvaraju podatke u informacije koje korisnik računara može razumjeti. U ovom slučaju, digitalni sistem računara predstavlja sistem za obradu podataka.

### Instrukcije
Računarske instrukcije nisu bogate kao što je ljudski jezik. Računar poznaje samo ograničen broj jasno definiranih i jednostavnih instrukcija. Evo nekoliko primjera: "kopirati sadržaj ćelije 7 u ćeliju 19", "ako je sadržaj ćelije 999 veći od 1, slijedeća instrukcija se nalazi u ćeliji 100", "sadržaj ćelije 6 oduzeti sadržaju ćelije 33 a rezultat upisati u ćeliju 50".

Instrukcije su u računaru predstavljene binarnim sistemom brojeva. Operacija "kopiraj" je, npr. kod Intelovih mikroprocesora u binarnom sistemu predstavljena ovako: 10110000. Određeni niz instrukcija koje određeni kompjuter može razumjeti naziva se mašinski jezik. U stvarnosti, ljudi ne stvaraju instrukcije direktno u mašinskom jeziku već koriste programske jezike koje se prevode u mašinski jezik putem posebnih računarskih programa "prevodilaca" i kompajlera. Neki programski jezici su veoma bliski mašinskom jeziku, kao što je Assembler a drugi, kao Prolog, su zasnovani na apstraktnim principima koji imaju malo sličnosti sa stvarnim operacijama unutar računara.

### Arhitektura
Kod današnjih računara, aritmetičko-logička i kontrolna jedinica smješteni su na jednom integralnom kolu kojeg nazivamo centralna procesorska jedinica (CPU - central processing unit). Memorija računara smještena je na nekoliko malih integralnih kola pored centralnog procesora. Nesrazmjerno veliki dio ukupne mase računara zapravo je sadržan u sistemu napajanja električnom energijom - napojna jedinica i I/O uređajima.

Neki od većih računara razlikuju se od gore opisanog modela uglavnom po većem broju procesora i kontrolnih jedinica koji rade simultano. Dodajmo ovome da i neki računari, čija je isključiva namjena naučno istraživanje i računanje, imaju sasvim drugačiju arhitekturu i zbog drugačijeg, nestandardiziranog načina programiranja, nisu našli širu komercijalnu primjenu.

Dakle, u biti, princip funkcionisanja računara je prilično jednostavan; kod svakog takta, računar povlači instrukcije i podatke iz svoje memorije, izvršava instrukcije, pohranjuje rezultate i ponavlja ciklus. Ponavljanje se vrši sve do nailaska na instrukciju "stop".

### Programi
Računarski programi je zapravo niz instrukcija koje računar treba izvršiti, nekad uključujući i tabele podataka. Mnogo računarskih programa sadrži milione instrukcija i mnogo njih se neprekidno ponavlja. Tipični moderni personalni računar (PC - personal computer) može izvršiti nekoliko milijardi instrukcija u sekundi. Recimo i to da izvanredne sposobnosti računara nisu posljedica izvršavanja složenih instrukcija već miliona jednostavnih koje programeri uobličavaju u svrsishodne funkcije. Dobar programer, naprimjer, izradi niz instrukcija kojim se izvršava neki jednostavan zadatak kao što je iscrtavanje jedne tačke na ekranu i taj niz zatim učini dostupnim drugim programerima.

Sadašnji računari su u stanju izvršavati nekoliko programa istovremeno. U stvarnosti, određeno kratko vrijeme procesor izvršava instrukcije jednog programa a zatim se prebacuje na drugi program i izvršava dio njegovih instrukcija. To određeno kratko vrijeme često nazivamo vremenski isječak. Ovaj način rada stvara iluziju izvršavanja nekoliko programa istovremeno a u stvarnosti se radi o tome da programi dijele procesorsko "radno vrijeme". Operativni sistem je program koji najčešće ima ulogu kontroliranja ovakvog dijeljenja procesorskog vremena.

#### Operativni sistem
Da bi računar radio, barem jedan program mora biti neprestano u funkciji. Pod normalnim uslovima, taj program je operativni sistem (OS - operating system). Operativni sistem odlučuje koji će program u datom trenutku bit izvršavan, koliko i kojih resursa će mu biti dodijeljeno (memorija, I/O) i sl. OS takođe obezbjeđuje takozvani apstraktni omotač oko hardvera i programima dozvoljava pristup preko servisa kao što su kodovi (upravljački programi - "drajveri" od engl. driver) koji omogućavaju programerima pisanje programa bez potrebe za poznavanjem intimnih detalja o svim priključenim uređajima.

### Računarske mreže i Internet

Kompjuteri su korišteni za koordiniranje informacije između višestrukih lokacija od 1950-tih godina. Američki vojni SAGE sistem je bio prvi primer takvog sistema na velikoj skali, što je dovelo do razvoja brojnih komercijalnih sistema specijalne namene kao što je Sabre.

Tokom 1970-tih godina, računarski inženjeri u istraživačkim institucijama širom SAD su počeli da povezuju računare koristeći telekomunikacionu tehnologiju. Inicijativu je finansirala ARPA (danas DARPA), a računarska mreža koja je proizašla se zvala ARPANET. Tehnologije koje omogućile postojanje Arpaneta su se proširile i evoluirale.

Vremenom se mreža proširila izvan akademskih i vojnih institucija i postala je poznata kao Internet. Pojava umrežavanja je bila praćena redefinisanjem prirode i granica računara. Računarski operativni sistemi i aplikacije su modifikovani kako bi obuhvatili sposobnost definisanja i pristupa resursima drugih računara na mreži, kao što su periferni uređaji, zapisane informacije, i slično, kao oblik proširenja resursa pojedinačnih računara. Inicijalno su instalacije bile dostupne samo ljudima koji su radilu u visoko tehničkim okruženjima, dok tokom 1990-tih širenje aplikacija poput imejla i World Wide Web, u kombinaciji sa razvojom jeftine, brze mrežne tehonologije poput Eterneta i ADSL nije omogućilo sveprisutnost računara. Zapravo, broj umreženih računara i dalje doživljava fenomenalni rast. Veoma velika porcija personalnih računara se regularno povezuje za Internet radi komunikacije i prijema informacije. „Bežično“ umrežavanje, koje često koristi mreže mobilnih telefona, je omogućilo da računarsko umređavanje postane sveprisutno i u mobilnom računarskom okruženju.

### Paradigmi kompjuterske arhitekture
Postoje brojni tipovi računarskskih arhitektura:
* Kvantni računar vs hemijski računar
* Skalarni procesor vs vektorski procesor
* Računari sa nejednoličnim pristupom memoriji (NUMA)
* Registarska mašina vs stak mašina
* Harvardska arhitektura vs fon Njumanova arhitektura
* Celularna arhitektura

Od svih tih apstraktnih mašina, kvantni računar verovatno najviše obećava da će revolucionizirati računarstvo.

Ligičke kapije su česta apstrakcija koja se može primeniti kod većine digitalnih i analognih paradigama.

Sposobnost zapisivanja i izvršavanja liste instrukcije zvanih programi čini računare ekstremno svestranim, i čini ih različitim od kalkulatora. Turingova teza je matematički izraz te svestranosti: svaki računar sa minimalnom sposobnošću (koji je Turing-kompletan), u principu, ima sposobnost izvršavanja istih zadataka koje bilo koji drugi računar može da izvrši. Stoga, svaki tip računara (netbook, superračunar, celularni automaton, etc.) ima sposobnost izvršavanja istih računarskih zadataka, ako se dozvoli dovoljno vremena i kapaciteta memorije.

## Reference

## Literatura

* Fuegi, J. and Francis, J. "Lovelace & Babbage and the creation of the 1843 'notes'". *IEEE Annals of the History of Computing* 25 No.&nbsp;4 (October–December 2003): Digital Object Identifier
*  
*  
*  
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* Konrad Zuse: Der Computer – Mein Lebenswerk. Springer, Berlin 1993, .
* Ron White: So funktionieren Computer. Ein visueller Streifzug durch den Computer & alles, was dazu gehört. Markt+Technik, München 2004, .
* Michael Budde: Computer-Allgemeinwissen. (PDF; Kostenloses Computerbuch für absolute Anfänger).
* Edmund Callis Berkeley: Giant Brains or Machines That Think. 7. Auflage. John Wiley & Sons 1949, New York 1963 (die erste populäre Darstellung der EDV, trotz des für moderne Ohren seltsam klingenden Titels sehr seriös und fundiert – relativ einfach antiquarisch und in fast allen Bibliotheken zu finden).
* B. V. Bowden (Hrsg.): Faster Than Thought. Pitman, New York 1953 (Nachdruck 1963, ) – eine frühe populäre Darstellung der EDV, gibt den Stand seiner Zeit verständlich und ausführlich wieder; nur mehr antiquarisch und in Bibliotheken zu finden
* Michael Friedewald: Der Computer als Werkzeug und Medium. Die geistigen und technischen Wurzeln des Personalcomputers. GNT-Verlag, 2000, .
* Simon Head: The New Ruthless Economy. Work and Power in the Digital Age. Oxford UP 2005,  (der Einsatz des Computers in der Tradition des Taylorismus).
* Ute Hoffmann: Computerfrauen. Welchen Anteil hatten Frauen an der Computergeschichte und -arbeit? München 1987, 
* Loading History. Computergeschichte(n) aus der Schweiz. Museum für Kommunikation, Bern 2001, , Ausstellungskatalog zu einer Sonderausstellung mit Schweizer Schwerpunkt, aber für sich alleine lesbar
* HNF Heinz Nixdorf Forum Museumsführer. Paderborn 2000,  – Museumsführer des nach eigener Darstellung weltgrößten Computermuseums
* Karl Weinhart: Informatik und Automatik. Führer durch die Ausstellungen. Deutsches Museum, München 1990,  – Katalog zu den permanenten Ausstellungen des Deutschen Museums zum Thema; vor allem als ergänzende Literatur zum Ausstellungsbesuch empfohlen
* H. R. Wieland: Computergeschichte(n) – nicht nur für Geeks: Von Antikythera zur Cloud. Galileo Computing, 2010, 
* Christian Wurster: Computers. Eine illustrierte Geschichte. Taschen, 2002,  (eine vom Text her leider nicht sehr exakte Geschichte der EDV mit einzelnen Fehlern, die aber durch die Gastbeiträge einzelner Persönlichkeiten der Computergeschichte und durch die zahlreichen Fotos ihren Wert hat).
* Anfre Reifenrath: Geschichte der Simulation, Humboldt Universität, Dissertation, Berlin 2000. Geschichte des Computers von den Anfängen bis zur Gegenwart unter besonderer Berücksichtigung des Themas der Visualisierung und Simulation durch den Computer.
* Claude E. Shannon: A Symbolic Analysis of Relay and Switching Circuits. In: Transactions of the American Institute of Electrical Engineers, Volume 57. 1938 (Seite 713–723).

## Vanjske veze

* Warhol & The Computer
* Verzeichnis nahezu aller je gebauten Computertypen 
* Liste der 500 leistungsstärksten Computer 
* Computergeschichte.de
* CRE193 Old School Computing Podcast über die Computertechnik der 1970er Jahre vor der Erfindung des Mikrocomputers
* 8-Bit-Museum
* Homecomputermuseum.de
* technikum29: Museum für Rechnertechnik und Computer mit funktionsfähigen Exponaten
* Reich illustriertes und kommentiertes Computermuseum