Računar
automatski uređaj za izračunavanje aritmetičkih ili logičkih operacija From Wikipedia, the free encyclopedia
automatski uređaj za izračunavanje aritmetičkih ili logičkih operacija From Wikipedia, the free encyclopedia
Računar,[1] kompjuter[2] ili računalo[3] složeni je 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. 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.
Uređaji koji pomažu u računanju prisutni su hiljadama godina i većinom su koristili bijekciju s prstima. Kasnije se pojavljuju razna pomagala za brojanje na Bliskom istoku (Plodni polumjesec) u obliku raznih računaljki koje su vjerovatno pomagale u brojanju stoke ili žitarica.
Abakus se u početku koristio za aritmetičke zadatke. Rimski abakus razvijen je iz uređaja koji su korišteni u Babilonu 2400. p.n.e. Od tada, izumljeni su mnogi drugi oblici registarskih ploča.
Smatra se da je Mehanizam iz Antikitere najraniji mehanički analogni "računar". Dizajniran je za izračunavanje astronomskih položaja. Ovako složeni uređaji neće se ponovo skoro hiljadu godina kasnije.
Mnoga mehanička pomagala za proračun i mjerenje izgrađena su za astronomsku i navigacijsku upotrebu. Planisfera je bila nebeska karta koju je izumio Ebu Rahim el-Biruni u ranom 11. vijeku.[4] Astrolab je izumljen u helenističkom svijetu u 1. ili 2. vijeku prije nove ere. Kombinacija planisfere i dioptre, astrolaba je bila efektivan analogni računar sposoban da razradi nekoliko različitih vrsta problema u sferičnoj astronomiji. Astrolabu koji je imao mehanički računarski kalendar [5][6] i zupčanike, izumio je Abi Bakr iz Isfahana, Perzija 1235. godine.[7] Ebu Rahim el-Biruni je oko 1000. godine izmislio prvi mehanički usmjeren lunisolarni kalendarski astrolab,[8] što je predstavljalo ranu mehaničku mašinu sposobnu da procesira informaciju.
Proporcionalni kompas, računski instrument koji se koristio za rješavanje problema u proporciji, trigonometriji, množenju i dijeljenju i za različite funkcije, poput kvadrata i korijena, razvijen je u kasnom 16. vijeku i pronašao je primjenu u oružju, geodetici i plovidbi.
Planimetar je bio ručni instrument za izračunavanje površine zatvorenih oblika.
Logaritmar izumljen je oko 1620-1630, ubrzo nakon objavljivanja koncepta logaritma. To je analogni ručno upravljani računar za obavljanje množenja i dijeljenja. Kasnije je unaprijeđivan pa su dodate vage koje su pružale recipročne, kvadratne i četvrtaste korijene, kao i transcendentalne funkcije kao što su logaritmi i eksponencije, kružna i hiperbolička trigonometrija i druge funkcije. I dalje se koristi za brzo izvršavanje rutinskih izračuna.
1770-ih, Pierre Jaquet-Droz, švicarski urar, napravio je mehaničku lutku (automat) koja je mogla pisati držeći olovku. Mijenjanjem broja i redoslijeda njegovih unutrašnjih točkića mogla su se proizvesti različita slova, a samim tim i različite poruke. Lutka se nalazi u Muzeju umjetnosti i historije u Neuchâtelu, Švicarska i dalje radi.[9]
Mašina za predviđanje plime i oseke koju je 1872. godine izmislio Sir William Thomson bila je od velike koristi za plovidbu u plitkim vodama.
Diferencijalni analizator, mehanički analogni računar dizajniran za rješavanje diferencijalnih jednadžbi integracijom, koristio je mehanizme kotača i diska za izvođenje integracije. Godine 1876. lord Kelvin već je raspravljao o mogućoj konstrukciji takvih kalkulatora, ali nije uspio. Pojačivač zakretnog momenta bio je napredak koji je omogućio ovim mašinama da rade. Počev od 1920-ih, Vannevar Bush i drugi su razvili mehaničke diferencijalne analizatore.
Charles Babbage, engleski inženjer mehanike i polimat, načinio je koncept programabilnog računara. Smatra se "ocem računara" jer je izumio prvi mehanički računar početkom 19. vijeka. Nakon rada na revolucionarnoj diferencijalnoj mašini, koja je pomagala u navigacijskim proračunima, 1833. shvatio je da je moguć dizajn koji će imati opću namjenu, a to je bila analitička mašina. Unos programa i podataka trebao je biti dostavljen mašini putem bušenih kartica. Za izlaz, mašina bi imala pisač, ploter i zvono. Mašina će također moći bušiti brojeve na karticama koje će kasnije čitati. Analitička mašina je uključivala aritmetičku logičku jedinicu, upravljanje tokom u obliku kondicionalnog grananja i petlji, te integrisanu memoriju, što je prvi dizajn za računar opće namjene koji bi se mogao opisati kao Turing potpun.[10][11]
Mašina bila ispred svog vremena. Svi dijelovi za njegovu mašinu morali su biti izrađeni ručno. Na kraju je projekt raspušten odlukom britanske vlade. Neuspjeh Babbagea da dovrši analitičku mašinu uglavnom se može pripisati političkim i finansijskim poteškoćama, kao i njegovoj želji da razvije sve sofisticiraniji računar. Njegov sin, Henry Babbage, dovršio je 1888. pojednostavljenu verziju računarske jedinice analitičke mašine. Uspješno je demonstrirao njegovu upotrebu u računarskim tablicama 1906. godine.
Tokom prve polovine 20. vijeka, mnoge su naučne računarske potrebe su zadovoljila znatno uznapredovani analogni računari. Međutim, oni nisu bili programibilni i općenito nedostajala im je svestranost i tačnost modernih digitalnih računala. Prvi moderni analogni računar bio je stroj za predviđanje plime, koji je izumio Sir William Thomson 1872. godine.
Vrhunac analognih računara je dostignut diferencijalnim analizatorom, kojeg su 1927. napravili H. L. Hazen i Vannevar Bush na MIT-u. Mašinu su usavršili uz pomoć mehaničkih integratora Jamesa Thomsona i pojačivača zakretnog momenta koje je izumio HW Nieman. Desetak ovih uređaja izgrađeno je prije nego što je njihova zastarjelost postala očita. 1950-tih se pojavljuju prva digitalni računari koja će označiti kraj većini analognih računarskih mašina.
Do 1938. Ratna mornarica Sjedinjenih Država razvila je elektromehanički analogni računar dovoljno mali da se može koristiti u podmornici. Torpedo Data Computer je pomoću trigonometrije riješio problem ispaljivanja torpeda na pokretnu metu. Tokom Drugog svjetskog rata slični uređaji razvijeni su i u ostalim zemljama.
Rani digitalni računari su bili elektromehanički; električni prekidači pokretali su mehaničke releje da bi izvršili proračun. Bili su prilično spori, ali brzo su počeli da se pojavljuju mnogo brži potpuno električni računari, prvobitno napravljeni od vakuumskih cijevi. Z2, kojeg je stvorio njemački inženjer Konrad Zuse 1939. godine, bio je jedan od najranijih primjera elektromehaničkog relejnog računara.[12]
1941. Zuse napravio Z3, prvi elektromehanički programabilni, potpuno automatski digitalni računar.[13][14] Z3 je izgrađen sa 2000 releja, implementirao je 22 bitne riječi na taktnoj frekvenciji od oko 5–10 Hz. Programski kod se unosio na bušenim filmovima dok su podaci mogli sadržavati 64 riječi ili biti utipkani direktno sa tastature. Umjesto decimalnog sistema koji je teško primjenjiv (koji se koristio u ranijem dizajnu Charlesa Babbage-a), korištenje binarnog sistema značilo je da su Zuseove mašine bile puno jednostavnije za napraviti.[15] Z3 je bio Turing potpun.[16][17]
Elementi sa elektroničkim krugovima ubrzo su zamijenili svoje mehaničke i elektromehaničke ekvivalente, a istovremeno digitalni proračun zamijenio je analogni. Inženjer Tommy Flowers je 1930-ih počeo je istraživati moguće korištenje elektronike za telefonsku centralu. Eksperimentalna oprema koju je izgradio 1934. godine puštena je u rad pet godina kasnije, pretvarajući dio mreže telefonske centrale u elektronički sistem za obradu podataka, koristeći hiljade vakuumskih cijevi. U SAD, John Vincent Atanasoff i Clifford E. Berry sa Državnog univerziteta Iowa razvili su i testirali Atanasoff-Berry Computer (ABC) 1942.[18] Ovaj dizajn je također bio potpuno elektronički i koristio je oko 300 vakuumskih cijevi.[19]
Tokom Drugog svjetskog rata, Britanci u parku Bletchley postigli su brojne uspjehe u razbijanju šifriranih njemačkih vojnih komunikacija. Kako bi probili sofisticiraniji njemački stroj Lorenz SZ 40/42, koji se koristio za jako bitnu komunikaciju, Max Newman i kolege su zadužili Flowers-a da napravi Colossus.[19] Od početka februara 1943. godine proveo je jedanaest mjeseci dizajnirajući i gradeći prvi Colossus.[20] Nakon funkcionalnog testa u decembru 1943, otpremljen je u Bletchley Park, gdje je dostavljen 18. januara 1944.[21] a svoju prvu poruku presreo je 5. februara. Colossus je bio prvi svjetski elektronski digitalni programibilni računar. Koristio je velik broj vakuumskih cijevi. Imao je unos pomoću papirne trake i mogao je biti konfigurisan za izvođenje različitih logičkih operacija sa svojim podacima, ali nije bio Turing potpun.
ENIAC[22] je bio prvi elektronički programibilni računar izgrađen u SAD-u. Iako je ENIAC bio sličan Colossusu, bio je mnogo brži, fleksibilniji i bio je Turing potpun. Programeri ENIAC-a bile su žene, njih šest, često zajednički poznatih kao "djevojke ENIAC-a".[23][24]
Mogao je sabrati ili oduzeti 5000 puta u sekundi, hiljadu puta brže od bilo koje druge mašine. Također je imao module za množenje, dijeljenje i uvrštavanje korijena. Izgrađen pod rukovodstvom John Mauchlya i J. Presper Eckerta na Univerzitetu u Pensilvaniji, razvoj i izgradnja ENIAC-a trajali su od 1943. do pune operacije krajem 1945. godine. Mašina je bila ogromna, teška 30 tona, koristila je 200 kilovata električne snage i sadržavala je preko 18.000 vakuumskih cijevi, 1.500 releja i stotine hiljada otpornika, kondenzatora i induktora.[25]
Princip savremenog računara predložio je Alan Turing u svom seminarskom radu iz 1936. godine.[26] On je predložio jednostavan uređaj koji je nazvao "Univerzalna računska mašina" i koji danas znamo kao univerzalna Turingova mašina. Dokazao je da je takva mašina sposobna izračunati sve što se da izračunati izvršavajući upute (program) pohranjene na traci, omogućujući tako da se stroj može programirati. Glavni koncept Turingovog dizajna je pohranjeni program, gdje su sva uputstva za računanje pohranjena u memoriji. Turingove mašine do danas su glavni predmet proučavanja u teoriji računanja.
Rane računarske mašine imale su fiksne programe. Promjena njegove funkcije zahtijevala je ponovno ožičavanje i restrukturiranje mašine.[19] Računar sa pohranjenim programom uključuje dizajnirani set instrukcija i može u memoriju pohraniti skup uputa (program) koji detaljno opisuje računanje. Teoretsku osnovu za računar sa pohranjenim programom postavio je Alan Turing u svom radu iz 1936. godine. On se 1945. pridružio Nacionalnoj fizičkoj laboratoriji u Velikoj Britaniji i započeo rad na razvoju elektroničkog digitalnog računara sa pohranjenim programom. Njegovo rad iz 1945. "Predloženi elektronički kalkulator" bilo je prva specifikacija takvog uređaja. John von Neumann sa Univerziteta u Pennsylvaniji također je objavio svoj Prvi Nacrt izvještaja o EDVAC-u iz 1945.
Manchester Baby bio je prvi računar sa pohranjenim programom na svijetu. Izgradili su ga Frederic C. Williams, Tom Kilburn i Geoff Tootill, a svoj prvi program izveli su 21. juna 1948.[27] Iako se prema standardima svog vremena računar smatrao "malim i primitivnim", to je bila prva radna mašina koja je sadržavala sve elemente neophodne za moderno elektroničko računalo.[28] Čim se ovaj projekat pokazao uspješnim, vrlo brzo je napravljen prvi upotrebljivi računar Manchester Mark 1. Grace Hopper je prva je osoba koja je razvila kompajler za programski jezik.[29]
Mark 1 je zauzvrat brzo postao prototip za Ferranti Mark 1, prvi komercijalno dostupan računar opće namjene.[30]
Koncept unipolarnih tranzistora prvi je predložio je Julius Edgar Lilienfeld 1925. godine. John Bardeen i Walter Brattain, dok su radili pod William Shockley-em u Bell Labsu, izgradili su prvi radeći tranzistor. Od 1955. pa nadalje, tranzistori su zamijenili vakuumske cijevi u računarima, što je rezultiralo "drugom generacijom" računara. U usporedbi s vakuumskim cijevima, tranzistori imaju brojne prednosti: manji su i manji su potrošači od vakuumskih cijevi.
Na Unverzitetu u Manchesteru, tim pod vodstvom Tom Kilburn-a dizajnirao je i izgradio mašinu koristeći tranzistore umjesto vakuumskih cijevi.[31] Prvi tranzistorski računar postao je operativan 1953, a druga verzija je završena u aprilu 1955. godine. Međutim, mašina je koristila nešto malo vakuumskih cijevi, tako da nije bio potpuni tranzistorski računar. Prvi potpuno tranzistorski računar je Harwell CADET iz 1955.
Metal-oksidni-poluvodič tranzistor sa efektom polja (MOSFET), poznat i kao MOS tranzistor, su izmislili Mohamed M. Atalla i Dawon Kahng u Bell Labsu, 1959.[32] To je bio prvi zaista kompaktni tranzistor koji je mogao biti minijaturisan i masovno proizveden za široku upotrebu. S velikom nadogradivošću,[33] i mnogo nižom potrošnjom energije i većom gustoćom od bipolarnih spojnih tranzistora,[34] MOSFET je omogućio izgradnju integrisanih kola visoke gustoće.[35][36] MOSFET je kasnije doveo do revolucije mikroračunara, i postao pokretačka snaga računarske revolucije.[37] Taj se tranzistor najviše koristi u računarima,[38][39] i osnovni je dio digitalne elektronike.[40]
Sljedeći veliki napredak u računarskoj snazi došao je s pojavom integralnih kola (IC). Ideju o integralnom kolu prvi je zamislio radarski naučnik, Geoffrey WA Dummer. On je predstavio prvi javni opis integralnog kola 7. maja 1952.
Prva funkcionalna integralna kola izumili su Jack Kilby iz kompanije Texas Instruments i Robert Noyce iz kompanije Fairchild Semiconductor.[41] Kilby je zabilježio svoje početne ideje o integriranom krugu u julu 1958, uspješno demonstrirajući prvi radni integrirani primjer 12. septembra 1958.[42]
Razvoj MOS integralnog kola doveo je do pronalaska mikroprocesora,[43] i najavio je ekspanziju u komercijalnoj i ličnoj upotrebi računara. Prvi mikroprocesor s jednim čipom bio je Intel 4004,[44] kojeg je dizajnirao Federico Faggin sa svojom MOS tehnologijom sa silikonskim vratima, zajedno s Ted Hoffom, Masatoshi Shimaom i Stanley Mazorom u Intelu.[45][46] Početkom 1970-ih, MOS IC tehnologija omogućila je integraciju više od 10.000 tranzistora na jednom čipu.[36]
Sistem na čipu jesu kompletni računari na mikročipu (ili čipu) veličine novčića.[47] Mogu imati, ali ne nužno, integrisanu RAM i fleš memoriju. Od izuma ENIAC mašine 1945. godine, računari su otišli jako daleko. Moderni sistemi na čipu su veličine novčića, a istovremeno su hiljade puta moćniji od ENIAC-a, s milijardama tranzistora i trošeći samo nekoliko vati snage.
Prvi mobilni računari bili su teški, a IBM 5100 od 22 kilograma je rani primjer. Kasniji prenosivi prenosnici poput Osborne 1 i Compaq Portable bili su znatno lakši. Prvi laptopi, kao što je Grid Compass, imali su bateriju i uz kontinuiranu minijaturizaciju računskih resursa i napretka u trajanju baterija, prenosni računari su postali popularniji 2000-ih.[48] Isti razvoj omogućio je proizvođačima da integrišu računarske resurse u mobilne telefone do ranih 2000-ih.
Ovi pametni telefoni i tableti rade na različitim operativnim sistemima i 2010-ih postali su dominantni računski uređaj na tržištu.[49] Pokreće ih sistem na čipu, koji su kompletni računari na mikročipu veličine novčića.[47]
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).
Nakon što računar izvrši izračunavanje zadanog problema, rezultat se prikazuje na korisniku (čovjeku) pristupačan način; preko signalnih lampi, LED displeja, monitora, štampača i drugi. 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.
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, 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 da se računar programira i 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 dobivenih 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.
Tokom računskih operacija često je potrebno pohraniti međuvrijednosti ("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đuvrijednosti, međutim, ubrzo su se i sami programi počeli pohranjivati na ovaj način i to se uveliko primjenjuje kod današnjih kompjutera.
Iako se tehnologija izrade računara značajno izmijenila od vremena prvih elektroničkih modela sagrađenih u četrdesetim godinama 20. vijeka, još uvijek je većina današnjih rješenja zasnovano na von Neumannovoj arhitekturi. Ta arhitektura podrazumijeva računar kao sklop sastavljen od četiri glavna dijela: Aritmetičko-logička jedinica (engleski: Arithmetic and Logic Unit) , kontrolna jedinica, memorija i ulazni i izlazni sklopovi (engleski: Input and output, I/O) . Ovi dijelovi su međusobno povezani sabirnicom. Svi su obično pogonjeni vremenskim uređajem (programator, sat, generator takta), mada i drugi "događaji" mogu pogoniti kontrolne sklopove.
Prva generacija (mehanička/elektromehanička) | Kalkulatori | Paskalov kalkulator, Aritmometar, Diferencijalna mašina, Quevedove analitičke mašine |
Programibilni uređaji | Jacquardov razboj, Analitička mašina, IBM ASCC/Harvard Mark I, Harvard Mark II, IBM SSEC, Z1, Z2, Z3 | |
Druga generacija (vakuumske cijevi) | Kalkulatori | Atanasoff – Berry Computer, IBM 604, UNIVAC 60, UNIVAC 120 |
Programibilni uređaji | Colossus, ENIAC, Manchester Baby, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Mercury, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22 | |
Treća generacija (diskretni tranzistori i SSI, MSI, LSI integralna kola) | Glavni centralni računari | IBM 7090, IBM 7080, IBM System/360, BUNCH |
Miniračunar | HP 2116A, IBM System/32, IBM System/36, LINC, PDP-8, PDP-11 | |
Stolni računar | Programma 101, HP 9100 | |
Četvrta generacija (VLSI integralna kola) | Miniračunar | VAX, IBM System i |
4-bitni mikroračunar | Intel 4004, Intel 4040 | |
8-bitni mikroračunar | Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80 | |
16-bitni mikroračunar | Intel 8088, Zilog Z8000, WDC 65816/65802 | |
32-bitni mikroračunar | Intel 80386, Pentium, Motorola 68000, ARM | |
64-bitni mikroračunar[50] | Alpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64, ARMv8-A | |
Ugrađeni računar | Intel 8048, Intel 8051 | |
PC | Stolni računar, laptop računar, lični digitalni pomoćnik (PDA), prenosni računar, Tablet PC, nosivi računar | |
Teoretski/eksperimentalni | Kvantni računar, Hemijski računar, DNK računar, optički računar, Wetware/Organski računar |
Ovdje se podrazumijeva da je memorija niz obrojčanih/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 sljedeć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.
Procesor je elektronički sklop koji može izvršavati računarske programe. Ovako široka definicija se može primijeniti i na rane računare koji su postojali mnogo prije nego što je izraz "CPU" dobio široku primjenu. Pojam i skraćenica se koriste u računarskoj industriji od 1960-ih.
Oblik, arhitektura i primjena procesora su pretrpjeli ogromne promjene od vremena prvih primjeraka ali je njihovo osnovno funkcioniranje ostalo približno isto.
Prvi procesori su bili rađeni po narudžbi kao dio većeg računara i ponekad su bili jedini primjerci svoje vrste. Međutim, izraditi samo jedan procesor ili tek nekoliko primjeraka namijenjenih samo određenoj aplikaciji bilo je skupo te je to otvorilo put za masovnu proizvodnju procesora koji imaju višestruku primjenu. Tranzistori, a zatim i integralna kola, omogućili su minijaturizaciju procesora i danas se ugrađuju u veliki broj uređaja: automobile, mobilne telefone, dječje igračke i slično.
Artimetičko-logička jedinica (engleski: ALU - arithmetic and logic unit) jest sklop koji vrši osnovne aritmetičke operacije (sabiranje, oduzimanje), logičke operacije (i, ili, ne) i upoređivanje, kao na primjer da li se sadržaj dva bajta podudara.
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 sljedećem memorijskom mjestu) ukoliko instrukcija ne govori računaru da je sljedeć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.
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.
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 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, zasnovani su na apstraktnim principima koji imaju malo sličnosti sa stvarnim operacijama unutar računara.
Kod današnjih računara, aritmetičko-logička i kontrolna jedinica smješteni su na jednom integralnom kolu kojeg nazivamo centralna procesorska jedinica. 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.
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, nestadardiziranog načina programiranja, nisu našli širu komercijalnu primjenu.
Računarski softver ili samo softver jest skup podataka ili računarskih instrukcija koje računaru govore kako treba da radi. U računarskoj nauci i softverskom inženjerstvu, računarski softver jeste sva informacija koju obrađuju računarski sistemi, programi i podaci. Računarski softver uključuje računarske programe, biblioteke i srodne neizvršive podatke, poput digitalnih medija. Računarski hardver i softver su usko povezani, i nije ih moguće koristiti samostalno.
Operativni sistem/Sistemski softver | Unix i BSD | UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, Lista BSD operativnih sistema |
GNU / Linux | Spisak Linux distribucija | |
Microsoft Windows | Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 | |
DOS | 86-DOS (QDOS), IBM PC DOS, MS-DOS, DR-DOS, FreeDOS | |
Macintosh operativni sistemi | Klasični Mac OS, macOS (ranije OS X i Mac OS X) | |
Ugrađeni i u stvarnom vremenu | Lista ugrađenih operativnih sistema | |
Eksperimentalno | Amoba, Oberon/Bluebottle, Plan 9 iz Bell Labs-a | |
Biblioteka | Multimedija | DirectX, OpenGL, OpenAL, Vulkan (API) |
Biblioteka programa | C standardna biblioteka | |
Podaci | Protokol | TCP/IP, Kermit, FTP, HTTP, SMTP |
Format datoteke | HTML, XML, JPEG, MPEG, PNG | |
Korisnički interfejs | Grafički korisnički interfejs (WIMP) | Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua |
Tekstualni korisnički interfejs | Interfejs komandne linije, tekstualni korisnički interfejs | |
Aplikativni softver | Softver za produktivnost | Obrada teksta, DTP softver, Sistemi upravljanja bazama podataka, proračunska tabela, računovodstveni softver |
Pristup Internetu | Preglednik, klijent za e-poštu, web server, brzo slanje poruka | |
Dizajn i proizvodnja | Računarski potpomognut dizajn, računarski potpomognuta proizvodnja, upravljanje fabrikama, robotska proizvodnja, upravljanje lancem snabdijevanja | |
Grafika | Rasterski grafički program, vektorski grafički program, 3D modeliranje, program za računarsku animaciju, 3D računarska grafika, program za uređivanje videa, obrada slike | |
Zvuk | Digitalni audio urednik, Reprodukcija audio zapisa, Miksanje, Sinteza zvuka, Računarska muzika | |
Softverski inženjering | Kompajler, Asembler, Interpreter, Debugger, uređivač teksta, integrisano razvojno okruženje, Analiza performansi softvera | |
Obrazovni | Obrazovanje, poučne videoigre, ozbiljne igre, simulatori leta | |
Igre | Strategija, Arkadna igra, Slagalica, Simulacija, pucačina u prvom licu, masivne multiplayer igre, Interaktivna fikcija | |
Razno | Umjetna inteligencija, antivirusni softver, antivirusni programi, instalacijski/paketni sistemi za upravljanje, Program za upravljanje datotekama |
Postoji hiljade različitih programskih jezika. Neki su za općenitu upotrebu, dok su neki visoko specijalizirani za određenu namjenu.
Popisi programskih jezika | Hronologija programskih jezika, Spisak programskih jezika po kategorijama, Generacijski spisak programskih jezika, Spisak programskih jezika |
Često korišteni asemblerski jezici | ARM, MIPS, x86 |
Najčešće korišteni programski jezici visokog nivoa | Ada, BASIC, C, C++, C#, COBOL, Fortran, PL/I, REXX, Java, Lisp, Pascal, Object Pascal |
Najčešće korišteni skriptni jezici | Bourne skripta, JavaScript, Python, Ruby, PHP, Perl |
Računarski programi su zapravo duge liste 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 može izvršiti nekoliko milijardi instrukcija u sekundi.
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.
Greške u računarskim programima nazivaju se bugovi. Mogu biti bezopasne i da ne utiču na korisnost programa, ali u nekim slučajevima mogu prouzrokovati da se program ili cijeli sistem sruši, te da ne reaguje na unos podataka kao što su klikovi miša ili pritisak tipke. Za greške obično nije kriv računar. Obzirom da računari samo izvršavaju upute, greške su gotovo uvijek rezultat greške programera ili nadzora nad dizajnom programa.[51] Admiral Grace Hopper, američki informatičar i programer prvog kompajlera, prvi je upotrijebio riječ "bug" (engleski: buba) nakon što je pronađen mrtvi moljac koji je spržio relej na računaru Harvard Mark II u septembru 1947.
Da bi računar radio, barem jedan program mora biti neprestano u funkciji. Pod normalnim uslovima, taj program je operativni sistem. On odlučuje koji će program u datom trenutku biti izvršavan, koliko i kojih resursa će mu biti dodijeljeno (memorija, I/O). On također obezbjeđuje apstraktni omotač oko hardvera i programima dozvoljava pristup preko servisa kao što su kodovi koji omogućavaju programerima pisanje programa bez potrebe za poznavanjem intimnih detalja o svim priključenim uređajima.
Većina operativnih sistema koji imaju te apstraktne omotače također imaju i standardiziran korisnički interfejs. Najzastupljeniji operativni sistemi su Windows, slobodni Linux i Apple-ov Mac OS.
Kako se upotreba računara raširila širom društva, sve je veći broj poslova koje uključuju računala.
Hardverska veza | Elektrotehnika, Elektronski inženjering, Računarstvo, Telekomunikacijski inženjering, Optički inženjering, Nanoinžinjering |
Softverski vezan | Računarstvo, Računarski inženjering, Interakcija čovjeka i računara, Informaciona tehnologija, Informacioni sistemi, Računarska nauka, Softverski inženjering, Industrija video igara, Web dizajn |
Potreba da računari dobro rade zajedno i da mogu razmijeniti informacije sa sobom donijela je potrebu mnogih organizacija.
Standardi | ANSI, IEC, IEEE, IETF, ISO, W3C |
Profesionalna društva | ACM, AIS, IET, IFIP, BCS |
Besplatne/otvorene programske grupe softvera | Fondacija slobodnog softvera, Mozilla fondacija, Apache Software Foundation |
Računari se koriste za koordiniranje informacija između više lokacija od 1950-ih. SAGE sistem američke vojske bio je prvi opsežni primjer takvog sistema, koji je doveo do velikog broja komercijalnih sistema posebne namjene, poput Sabrea. 1970-ih računarski inženjeri u istraživačkim institucijama širom Sjedinjenih Država počeli su povezivati svoje računare pomoću telekomunikacijske tehnologije. Projekt je finansirao ARPA (danas DARPA), a računarska mreža koju su napravili zvala se ARPANET.[52]
Vremenom se mreža proširila izvan akademskih i vojnih institucija i postala je poznata kao Internet. U početku je bio dostupan prvenstveno ljudima koji rade u visokotehnološkim okruženjima, ali tokom 1990-ih širenje aplikacija poput e-pošte i World Wide Web-a, u kombinaciji s razvojem jeftinih, brzih mrežnih tehnologija poput Etherneta i ADSL-a, umrežavanje računara je postalo sveprisutno.
Trenutno se aktivno radi na novim vrstama tehnologije koje bi mogle rezultirati novom vrstom računara kao što su optički računari, DNK računari, neuronski računari i kvantni računari. Većina računara su univerzalna i mogu izračunati bilo koju računsku funkciju, a ograničena su samo njihovim memorijskim kapacitetom i radnom brzinom. Međutim, različiti dizajni računara mogu dati različite performanse za određene probleme; na primjer, kvantni računari mogu vrlo brzo probiti neke moderne algoritme šifriranja (Šorov algoritam).
Od svih apstraktnih mašina, kvantni računar ima najviše potencijala da revolucionira računarstvo.
Računar će riješiti probleme na tačno onaj način na koji je programiran, bez obzira na efikasnost, alternativna rješenja, moguće prečice ili moguće greške u kodu. Računarski programi koji uče i prilagođavaju se su dio novog polja umjetne inteligencije i mašinskog učenja. Proizvodi koji se baziraju na umjetnoj inteligenciji uglavnom spadaju u dvije glavne kategorije: sistemi koji se baziraju na pravilima i sistemi za prepoznavanje uzorka. Primjeri sistema koji se baziraju na uzorcima uključuju prepoznavanje glasa, prepoznavanje fontova, prevođenje i online marketing.