univerzitet u nišugimnazijakm.edu.rs/wp-content/uploads/2020/03/racunarski... · 2020-03-18 ·...
TRANSCRIPT
Univerzitet u Nišu
Elektronski fakultet
Suzana Stojković, Natalija Stojanović, Dragan Stojanović
Uvod u računarstvo
Niš, 2014
UVOD U RAČUNARSTVO
i
Sadržaj
1 UVOD 1
1.1 Preporuka čitaocima 1
1.2 Organizacija knjige 2
2 ISTORIJAT RAČUNARSTVA 5
3 BROJNI SISTEMI 13
3.1 Binarni, oktalni i heksadekadni brojni sistemi 14
3.2 Prevođenje brojeva između različitih brojnih sistema 15 3.2.1 Prevođenje brojeva iz brojnog sistema sa proizvoljnom osnovom u brojni
sistem osnove 10 15 3.2.2 Prevođenje brojeva iz dekadnog brojnog sistema u pozicioni brojni sistem sa
proizvoljnom osnovom 16 3.2.3 Prevođenje brojeva iz binarnog brojnog sistema u brojni sistem čija je osnova
stepen dvojke i obrnuto 18
3.3 Osnovne računske operacije u pozicionim brojnim sistemima 18
Pitanja i zadaci 21
4 PREDSTAVLJANJE PODATAKA U RAČUNARU 23
4.1 Predstavljanje numeričkih podataka u računaru 24 4.1.1 Predstavljanje celih neoznačenih brojeva 24 4.1.2 Predstavljanje celih označenih brojeva 25
4.1.2.1 Prosto označavanje celih brojeva 25 4.1.2.2 Nepotpuni komplement celih brojeva 27 4.1.2.3 Potpuni komplement celih brojeva 29 4.1.2.4 Predstavljanje celih brojeva sa pomerajem 31
4.1.3 Predstavljanje realnih brojeva 32 4.1.3.1 Predstavljanje realnih brojeva u formatu sa fiksnim zarezom 32 4.1.3.2 Predstavljanje realnih brojeva u formatu sa pokretnim zarezom 33
4.1.4 BCD kodovi 36
4.2 Predstavljanje znakovnih podataka u računaru 42 4.2.1 ASCII kod 42 4.2.2 EBCDIC kod 44 4.2.3 UNICODE 44
4.3 Predstavljanje zvuka u računaru 45
4.4 Predstavljanje slika u računaru 47
4.5 Predstavljanje video zapisa u računaru 49
Pitanja i zadaci 51
5 PREKIDAČKA ALGEBRA 53
5.1 Bulova algebra 53 5.1.1 Aksiome Bulove algebre 54 5.1.2 Teoreme Bulove algebre 55
5.2 Prekidačka algebra 57
S A D R Ž A J
ii
Pitanja i zadaci 58
6 PREKIDAČKE FUNKCIJE 59
6.1 Načini predstavljanja prekidačkih funkcija 60 6.1.1 Predstavljanje prekidačkih funkcija tablicom istinitosti 60 6.1.2 Predstavljanje prekidačkih funkcija vektorom istinitosti 61 6.1.3 Predstavljanje prekidačkih funkcija skupovima decimalnih indeksa 61 6.1.4 Predstavljanje prekidačkih funkcija decimalnim indeksom funkcije 63
6.2 Bulove operacije 64
6.3 Predstavljanje prekidačkih funkcija analitičkim formama 66 6.3.1 Potpuna disjunktivna normalna forma 67 6.3.2 Potpuna konjuktivna normalna forma 68 6.3.3 Potpuna polinomna normalna forma 70 6.3.4 Kanonički polinom 71
Pitanja i zadaci 72
7 PREKIDAČKE MREŽE 73
7.1 Logička kola 74
7.2 Kombinacione prekidačke mreže 75 7.2.1 Analiza kombinacionih prekidačkih mreža 76 7.2.2 Sinteza kombinacionih prekidačkih mreža 77 7.2.3 Minimizacija prekidačkih funkcija 78
7.2.3.1 Minimizacija prekidačkih funkcija algebarskim metodama 80 7.2.3.2 Minimizacija prekidačkih funkcija pomoću Karnoovih mapa 82
7.2.4 Realizacija kombinacionih prekidačkih mreža u bazisu I, ILI, NE 89 7.2.5 Realizacija kombinacionih prekidačkih mreža u bazisima NI i NILI 92 7.2.6 Standardni kombinacioni moduli 94
7.2.6.1 Multiplekseri 95 7.2.6.2 Demultiplekseri 98 7.2.6.3 Koderi 100 7.2.6.4 Dekoderi 102 7.2.6.5 Konvertori kodova 104 7.2.6.6 Sabirači 105 7.2.6.7 Inkrementatori i dekrementatori 107 7.2.6.8 Komparatori 109
7.3 Sekvencijalne prekidačke mreže 109
7.4 Načini predstavljanja konačnih automata 112 7.4.1 Predstavljanje automata tablicama prelaza i izlaza 112 7.4.2 Predstavljanje konačnih automata pomoću grafova 113 7.4.3 Predstavljanje konačnih automata pomoću matrica 114 7.4.4 Predstavljanje konačnih automata pomoću prekidačkih funkcija 116 7.4.5 Memorijski elementi 119
7.4.5.1 Osobine i zakoni funkcionisanja flip-flopova 119 7.4.6 Standardni sekvencijalni moduli 121
7.4.6.1 Registar sa paralelenim upisom i čitanjem 122 7.4.6.2 Registar sa serijskim upisom i čitanjem 122 7.4.6.3 Brojački registri 123
Pitanja i zadaci 125
UVOD U RAČUNARSTVO
iii
8 ARHITEKTURA RAČUNARA 129
8.1 Centralni procesor 130 8.1.1 Aritmetičko-logička jedinica 131 8.1.2 Kontrolna jedinica 132
8.2 Memorije 132 8.2.1 Glavna memorija 133 8.2.2 Sekundarne memorije 134
8.2.2.1 Hard disk 134 8.2.2.2 USB fleš disk 136 8.2.2.3 Optički diskovi 137
8.2.3 Keš memorija 139
8.3 Ekspanzioni slotovi i kartice 140
8.4 Portovi 141
8.5 Magistrale 142
8.6 Čipset 143
8.7 BIOS 143
Pitanja i zadaci 144
9 CENTRALNA PROCESORSKA JEDINICA 145
9.1 Organizacija procesora 146
9.2 Mašinsko programiranje 147 9.2.1 Adresnost računara 149 9.2.2 Naredbe procesora 150
9.2.2.1 Naredbe za prenos podataka 150 9.2.2.2 Aritmetičko-logičke naredbe 151 9.2.2.3 Naredbe za upravljanje tokom izvršenja programa 155 9.2.2.4 Ulazno-izlazne naredbe 155
9.3 Izvršenje programa i ciklus izvršenja naredbe 156
9.4 Načini adresiranja 158 9.4.1 Implicitno adresiranje 158 9.4.2 Neposredno adresiranje 158 9.4.3 Direktno memorijsko adresiranje 159 9.4.4 Direktno registarsko adresiranje 159 9.4.5 Indirektno memorijsko adresiranje 161 9.4.6 Indirektno registarsko adresiranje 162 9.4.7 Indeksno adresiranje 162 9.4.8 Bazno adresiranje 163 9.4.9 Programski relativno adresiranje 164
Pitanja i zadaci 165
10 ULAZNO/IZLAZNI UREĐAJI 167
10.1 Ulazni uređaji 170 10.1.1 Uređaji za ručno unošenje podataka 170 10.1.2 Uređaji za automatsko unošenje podataka 172
10.2 Izlazni uređaji 173 10.2.1 Monitori 174
S A D R Ž A J
iv
10.2.2 Štampači 174
Pitanja i zadaci 176
11 SOFTVER RAČUNARA 177
11.1 Aplikativni softver 177
11.2 Sistemski softver 178
11.3 Operativni sistemi 180
11.4 Klasifikacija operativnih sistema 181
11.5 Funkcije operativnog sistema 182
11.6 Korisnički interfejs 183
11.7 Upravljanje procesima 184
11.8 Upravljanje memorijom 186
11.9 Upravljanje U/I uređajima 190
11.10 Upravljanje datotekama (File system) 190
11.11 Sigurnost i zaštita 192
Pitanja i zadaci 193
12 RAČUNARSKE MREŽE 195
12.1 Tipovi računarskih mreža 195
12.2 Komunikacioni medijumi i mrežni komunikacioni uređaji 197
12.3 LAN tehnologije 201
12.4 Prenos podataka kroz računarsku mrežu 202
12.5 ISO/OSI referentni model 203
Pitanja i zadaci 206
13 INTERNET I WEB 207
13.1 Internet protokoli 207
13.2 Protokoli višeg nivoa 211
13.3 Simboličke adrese i DNS 212
13.4 Broj porta 213
13.5 World Wide Web 214
13.6 Dinamičke Web strane 218
13.7 Standardizacija WWW 218
Pitanja i zadaci 220
14 RAČUNARSKA SIGURNOST 223
14.1 Pretnje računarskoj sigurnosti 223
14.2 Zaštita računara 226
14.3 Kriptovanje i digitalni potpis 227
Pitanja i zadaci 231
LITERATURA 233
1 . U V O D
1
1 UVOD
Računarstvo (Computing, Computer Science) je disciplina u okviru koje se primenjuju
inženjerske i naučne metode i principi u dizajnu i razvoju hardvera i softvera računara. Da
biste postali stručnjaci u oblasti računarstva, nije dovoljno samo da poznajete neke od
pojedinačnih tema u računarstvu, ili da naučite kako da koristite neki od aktuelnih
softverskih alata i aplikacija. U cilju razumevanja i savladavanja fundamentalnih
inženjerskih i naučnih principa računarstva neophodno je detaljno razmotriti sve teme koje
čine računarstvo, kao i njihove međusobne veze i zavisnosti. Na primer, ne mogu se na
pravi način razumeti operativni sistemi i njihove funkcije, ako se ne poznaje arhitektura i
organizacija hardvera računara; ne može se biti stručnjak u oblasti Interneta i Web-a ako se
ne poznaju tehnologije i principi funkcionisanja računarskih mreža i slično.
Ova knjiga je napisana sa ciljem da obezbedi osnovu za izučavanje računarstva i
informatike. Ona predstavlja sveobuhvatni uvod u osnovne teme koje čine računarstvo,
počev od binarnog predstavljanja podataka u računaru i osnova prekidačke algebre, preko
manipulacije tim podacima kroz logička kola, kao gradivnih elemenata svih komponenti
računara (procesora, memorije, kontrolera, itd.), do operativnih sistema koji upravljaju
ovim komponentama, računarskih mreža i Interneta.
1.1 Preporuka čitaocima
Knjiga je namenjena studentima elektronskih i elektrotehničkih fakulteta, tehničkih
fakulteta, prirodno-matematičkih fakulteta, kao i i ostalih srodnih fakulteta kao udžbenik za
uvodni kurs iz oblasti računarstva i informatike. Mnogi od studenata ovih fakulteta
započinju svoje studije smatrajući da se računarstvo i informatika svode samo na Web
programiranje i korišćenje gotovih softverskih alata/aplikacija, jer to je ono sa čime se
najčešće sreću u predmetima iz oblasti računarstva i informatike u osnovnim i srednjim
školama. Ali, računarstvo i informatika predstavljaju daleko više, počev od osnovnih
principa, metoda i tehnologija za predstavljanje podataka, njihovo upravljanje i obradu, do
koncepata veštačke intelgencije, mobilnog računarstva i realistične 3D animacije.
Studentima računarstva i informatike ovaj udžbenik obezbeđuje dobru osnovu i
detaljan pregled osnovnih tema računarstva i informatike. Time ih priprema za nastavak
studiranja i stručne predmete iz oblasti računarstva i informatike na višim godinama
akademskih i master studija. Studentima drugih studijskih programa elektronskih i
elektrotehničkih fakulteta, kao i drugih tehničkih i prirodno-matematičkih fakulteta pruža
širok uvid u oblast računarstva i informatike kao i razumevanje osnovnih metoda,
U V O D U R A Č U N A R S T V O
2
tehnologija i principa ove sve aktuelnije naučne i inženjerske discipline koja veoma
značajno utiče na sve aspekte ljudskog društva.
Udžbenik ovog tipa je široko prisutan kao podrška uvodnom kursu iz računarstva i
informatike koji se na međunardnim univerzitetima, posebno u USA, označava kao CS0.
Napisan je u skladu sa preporukama „Computing Curricula 2005“, kao i „Computer
Science Curriculum 2008“ i „Computer Science Curricula 2013”, koje zajedno razvijaju i
konstantno unapređuju globalne organizacije u oblasti računarstva i informatike,
Association of Computing Machinery (ACM)1 i IEEE Computer Society
2.
1.2 Organizacija knjige
U predstavljanju osnovnih koncepata i principa računarstva i informatike sadržaj ove
knige je organizovan po principu „od dna ka vrhu“ (eng. bottom-up). Po ovom redosledu
najpre je dato upoznavanja različitih brojnih sistema, osnove 2, 8 i 16, kao i načini
predstavljanja podataka u računaru u binarnom obliku: numeričkih, znakovnih
(alfanumeričkih) i složenih tipova podataka (slika, zvuk, multimedija). Svako poglavlje se
zasniva na konceptima prezentovanim u prethodnom poglavlju sve do predstavljanja
principa i tehnologija Intereneta i Weba i neophodnosti zaštite i obezbeđenja sigurnosti
računarskog sistema i informacija koje ovaj sistem skladišti, obrađuje i prenosi
računarskom mrežom. Udžbenik je podeljen u sledeća poglavlja:
1. Uvod
2. Istorijat računarstva
3. Brojni sistemi
4. Predstavljanje podataka u računaru
5. Prekidačka algebra
6. Prekidačke funkcije
7. Prekidačke mreže
8. Arhitektura računara
9. Centralna procesorska jedinica
10. Ulazno-izlazni uredjaji
11. Softver računara
12. Računarske mreže
13. Internet i Web
14. Računarska sigurnost
U poglavlju 2 daje se pregled istorije računarstva, od prvobitnih računskih mašina, prvih
elektro-mehaničkih i električnih računara, do današnjih savremenih računara. Uz pregled
razvoja hardvera računara predstavljen je i razvoj operativnih sistema i softvera računara.
U poglavlju 3 definisani su pozicioni brojni sistemi i prikazani brojni sistemi osnove:
10, 2, 8, 16, kao i prevođenje brojeva iz zapisa u jednom u zapis u drugom brojnom
1http://www.acm.org/education/curricula-recommendations
2http://www.computer.org/portal/web/education/Curricula
1 . U V O D
3
sistemu. Takođe je ilustrovano izvođenje osnovnih računarskih operacija u binarnom
brojnom sistemu, tzv. binarna aritmetika.
Poglavlje 4 se bavi načinima predstavljanja podataka različitih tipova u računarskim
sistemima. U početku su računari služili samo za obradu numeričkih podataka, dok danas,
osim numeričkih, računari obrađuju i takozvane multimedijalne podatke: tekst, slike, zvuk,
video zapise. S obzirom da računari „razumeju samo jezik nula i jedinica“, ovo poglavlje se
bavi načinom prevođenja podataka navedenih tipova u binarnu reprezentaciju.
U poglavlju 5 definiše se matematički aparat koji se koristi za obradu binarnih podataka
– prekidačka algebra.
Rad svakog digitalnog uređaja, pa i računara, opisuje se sistemom prekidačkih funkcija.
U poglavlju 6 je data definicija prekidačkih funkcija, kao i standardni načini za
predstavljanje prekidačkih funkcija.
Poglavlje 7 se bavi hardverskom realizacijom prekidačkih funkcija – tj. prekidačkim
mrežama. Generalno, prekidačke mreže mogu biti sekvencijalne i kombinacione. Deo koji
se bavi kombinacionim prekidačkim mrežama je organizovano tako da da se prvo upoznaju
logička kola – jednostavne kombinacione prekidačke mreže koje realizuju prekidačke
funkcije jedne i dve promenljive; zatim je obrađeno projektovanje složenijih mreža i na
kraju se čitaoci upoznaju sa standardnim kombinacionim modulima (multiplekserima,
demultiplekserima, sabiračima, komparatorima...) koji su sastavni delovi svakog
računarskog sistema. U delu o sekvencijalnim mrežama pažnja je najpre posvećena
načinima predstavljanja sekvencijalnih mreža, zatim memorijskim elementima koji sa
logičkim kolima čine gradivne elemente sekvencijalnih prekidačkih mreža i na kraju
standardnim sekvencijalnim modulima (različitim vrstama registara) koji se pojavljuju u
strukturi računara.
U poglavlju 8 je opisana Von Neumann-ova arhitektura računara koja predstavlja
osnovu za dizajn savremenih računara. Predstavljene su osnovne komponente računara:
centralno-procesorka jedinica, memorijska jedinica, ulazna jedinica i izlazna jedinica.
Opisana je uloga i princip rada centralnog procesora, memorijske jedinice (glavna
memorija, sekundarne memorije i keš memorija), ekpanzionih katrica, magistrala, portova...
U poglavlju 9 predstavljena je detaljna organizacija centralnog procesora, njegovi
gradivni elementi i putevi komunikacije, koji omogućavaju da se izvršavaju instrukcije
pribavljene iz glavne memorije. Grupa instrukcija procesora čini mašinski jezik računara.
Posebna pažnja u ovom poglavlju je posvećena formatu mašinske instrukcije, kao i
vrstama mašinskih instrukcija procesora. Opisan je i ciklus tj. faze u izvršenju kroz koje
prolazi svaka instrukcija, kao i mogući načini formiranja adrese operanda nad kojim se
obavlja zadata instrukcija.
U poglavlju 10 predstavljani su ulazno-izlazni uređaji računara koji obavljaju razmenu
podataka sa spoljnim okruženjem. Opisani su i detaljno objašnjeni načini izvođenja ulazno-
izlazne aktivnosti. Data je podela i opisan princip rada najvažnijih ulaznih i izlaznih
uređaja.
U poglavlju 11 prikazana je klasifikacija softvera računara, koji čine aplikativni i
sistemski softver. Osnovu sistemskog softvera predstavlja operativni sistem, čijim
funkcijama i karakteristikama je posvećen ostatak poglavlja.
U poglavlju 12 predstavljene su računarske mreže i opisani principi komunikacije
između računara zasnovane na komunikacionim uređajima korišćenjem skupa protokola.
U V O D U R A Č U N A R S T V O
4
U poglavlju 13 prikazan je World Wide Web (Web) kao aplikacija/servis Interneta koji
omogućava pristup udaljenim resursima koji čine hipertekstualni i hipermedijalni
dokumenti, datoteke različitog formata, datoteke sa programskim kodom, itd.
Poglavlje 14 predstavlja rizike kojima se narušava sigurnost računara, opisuje mere
zaštite računara, kao i metode i tehnike zaštite zasnovane na kriptovanju.
Na kraju svakog poglavlja nalazi se skup pitanja i zadataka koji su namenjeni da
studenti provere svoje znanje i tako se pripreme za polaganje ispita, kao i da kreativno
razmišljaju o problematici koja je u poglavlju izneta.
2 . I S T O R I J A T R A Č U N A R S T V A
5
2 ISTORIJAT RAČUNARSTVA
Današnji računari, na koje smo sve više upućeni u poslovnim, zabavnim i slobodnim
aktivnostima, imaju dugu i bogatu istoriju. Jedan od najranijih računarskih uređaja je bio
abakus. Njegov nastanak i upotreba su bili vezani za stare civilizacije Egipta, antičke Grčke
i starog Rima. Uređaj je bio krajnje jednostavan i podsećao je na današnju računaljku,
sastavljen od perli nanizanih na štapiće i uokvirenih pravouganim okvirom (Slika 2.1).
Pomeranjem perli u jednom i drugom pravcu duž šipki i njihovim položajem određivane su
sačuvane vrednosti, ili predstavljane vrednosti dobijene izračunavanjem. Dakle, pozicijama
perli ovaj „računar“ je predstavljao i čuvao brojne vrednosti.
Slika 2.1 Abakus (Computer History Museum-Mountain View, California, USA3)
Kasnije, počev od 17. veka, dizajn računskih mašina je bio zasnovan na tehnologiji
točkića i zupčanika. Među značajnim pronalazačima toga vremena izdavajaju se Blaise
Pascal (1623-1662) u Francuskoj, Gootfried Wilhelm Leibniz (1646-1716) u Nemačkoj i
Charles Babbage (1792-1871) u Engleskoj.
Slika 2.2 Pascal-ova mašina - Pascaline (Computer History Museum)
3http://www.computerhistory.org/
U V O D U R A Č U N A R S T V O
6
Ove mašine su predstavljale numeričke podatke preko položaja zupčanika pri čemu su
ulazni podaci bili definisani početnim položajem zupčanika. Izlazne vrednosti iz Pascal-ove
(Slika 2.2) i Leibniz-ove (Slika 2.3) mašine su bile određene konačnim pozicijama
zupčanika na sličan način kako se određuje vrednost pređenog puta u automobilima.
Babbage je u svojim nacrtima predvideo mašine koje bi štampale rezultat na papiru tako da
bi time bila eliminisana mogućnost greške usled pogrešnog tumačenja rezultata. Takođe se
može primetiti i napredak u fleksibilnosti ovih računskih mašina. Pascal-ova mašina je bila
predviđena da obavlja samo operaciju sabiranja, tako da je odgovarajući skup koraka za
obavljanje sabiranja bio ugrađen u strukturu same mašine. I Leibniz-ova mašina je imala
ugrađene algoritme za obavljanje osnovnih računskih operacija: sabiranja, oduzimanja
množenja i deljenja, koje su mogle biti izabrane od strane operatera.
Slika 2.3 Leibnitz-ova mašina (Computer History Museum)
Babbage je u svojim istraživanjima pokušao da prevaziđe ova ograničenja pa je 1822.
godine započeo projektovanje Diferencijalne mašine koja bi mogla biti modifikovana da
obavlja različite operacije. Međutim uspeo je da konstruiše samo njen demonstracioni
model (Slika 2.4). Kompletna Diferencijalna mašina je konstruisana tek u periodu 1989–
1991. godine u Londonu u skladu sa Babbage-ovim originalnim nacrtima. Njegova
Analitička mašina, za čiju konstrukciju nije dobio neophodna finansijska sredstva, bila je
projektovana da čita instrukcije sa rupica u papirnim karticama. Na taj način je Analitička
mašina bila programabilna. Augusta Ada Byron, prijateljica Charlesa Babbage-a, bila je
veoma zainteresovana za njegov rad na ovim računskim mašinama. Godine 1843.
publikovala je članak u kome je objasnila na koji način Analitička mašina može biti
programirana tako da izvršava različita izračunavanja. Uvela je pojam petlje i objasnila
kako se ona može izvršavati na Analitičkoj mašini. Ovim je zaslužila epitet prvog
programera u svetu. Mnogo godina kasnije, sredinom prošlog veka, u njenu čast je jedan
programski jezik dobio ime po njoj – ADA.
Međutim, ideja o definisanju i zadavanju algoritama putem rupica na papiru nije
poticala od Babbage-a. On je ideju preuzeo od Joseph Jacard-a (1752-1834) koji je, 1801.
godine, razvio razboj za tkanje u kome su koraci koji se izvode prilikom procesa tkanja bili
određeni šablonima rupica na papirnim karticama. Na taj način je algoritam koji upravlja
radom razboja mogao biti lako zamenjen drugim da bi se proizveo različit dizajn u tkanju.
2 . I S T O R I J A T R A Č U N A R S T V A
7
Slika 2.4 a) Babbage-ova Diferencijalna mašina b) Generalni plan Analitičke mašine
(Computer History Museum)
Drugi korisnik Jacard-ove ideje je bio Herman Holerith (1860-1929) koji je primenio
koncept predstavljanja podataka u vidu rupica u papirnim karticama da bi ubrzao tabelarna
izračunavanja u popisu SAD 1890. godine (Slika 2.5). Ovaj Holerith-ov izum je kasnije
omogućio formiranje kompanije IBM (International Business Machines), jedne od najvećih
računarskih kompanija današnjice. Papirne kartice su bile poznate i kao bušene kartice i kao
takve su se zadržale kao osnovno sredstvo komunikacije sa računarima sve do 1970-ih
godina.
Slika 2.5 Holerith-ova mašina za obradu popisa (Computer History Museum)
Tehnologija tog vremena nije bila u mogućnosti da proizvede kompleksne, zupčanicima
pokretane mašine Pascal-a, Leibnitz-a i Babbage-a, kako zbog finansijskih razloga, tako i
zbog nemogućnosti proizvodnje sitnih mehaničkh delova koji su činili srž ovih mašina.
Posle neuspelih pokušaja Babbage-a, razvoj računarstva i digitalnih računara je veoma
U V O D U R A Č U N A R S T V O
8
malo napredovao sve do Drugog svetskog rata koji je pokrenuo mnoge aktivnosti na tom
polju.
Sa napretkom elektronike, početkom XX veka, ova barijera je prevaziđena i u periodu
1940-1955 nastala je prva generacija računarstva. Primeri razvoja i napretka
elektromehaničkih računarskih mašina bile su mašine George Stibitz-a, koja je završena
1940. godine u Bell Laboratorijama i Mark I razvijen 1944. godine na Univerzitetu
Harvard, od strane Howard Aiken-a i grupe IBM inženjera (Slika 2.6)
Slika 2.6 Mark I računar (Computer History Museum)
Ove računarske mašine su bile zasnovane na korišćenju elektronski kontrolisanih
mehaničkih releja. Samim tim su, na neki način, bile zastarele čim su proizvedene, budući
da su ostali istraživači tog vremena već počeli sa primenom tehnologije vakuumskih cevi
radi konstruisanja potpuno elektronskih računara. Prva takva mašina je bila Atanasoff-
Berry računar konstruisan u periodu od 1937. do 1941. godine na Iowa State koledžu
(danas Iowa State univerzitetu) od strane John Atanasoff-a i njegovog asistenta Cliford
Berry-a. U isto vreme Konrad Zuse u Berlinu je korišćenjem releja konstruisao računar Z3. Godine 1944. je u Engleskoj konstruisan računar Colossus pod vođstvom Tommy Flowers-
a u cilju dekodiranja nemačkih šifrovanih poruka tokom poslednjih meseci Drugog
svetskog rata. U tom periodu su nastale i druge, mnogo fleksibilnije mašine, poput ENIAC-
a (Electronic Numerical Integrator And Calculator) razvijenog od strane John Mauchly i
John Presper Eckert na Moore School of Electrical Engineering, Univerziteta Pensilvanija u
periodu od 1943. do 1945. godine (Slika 2.7).
ENIAC predstavlja prvi digitalni elektronski računar napravljen u svrhu izračunavanja
kompleksnih balističkih tabela za američku vojsku. Ovaj računar je takođe bilo moguće
programirati u cilju rešavanja zadataka opšte namene. Zahvaljujući elektronskim
tehnologijama zasnovanim na vakuumskim cevima postizao je do 1000 puta brža
izračunavanja od svog prethodnika, računara Mark I. Ubrzo su Maughly i Eckert zajedno sa
timom inženjera i naučnika među kojima je bio i John Von Neumann, izgradili računar
EDVAC (Electronis Discrete Variable Automatic Computer). Ovaj računar, koji je po
modelu rada odgovorao današnjim računarima, postao je poznat kao Von Neumman-ova
mašina, a sam princip rada, Von Neumann-ov. Njegov rad je bio upravljan programom
smeštenim u memoriju koji je mogao da modifikuje samog sebe tokom izvršavanja. Ovaj
računar je mogao biti programiran da obavlja različite funkcije. Program je bio smešten
zajedno sa podacima i mogao je više puta biti izvršavan nad različitim skupom podataka.
Početkom 50-tih godina prošlog veka ista grupa naučnika je učestvovala u razvoju računara
UNIVAC, kao prvog komercijalnog računara, koji je do sredine te decenije bio prodat u
2 . I S T O R I J A T R A Č U N A R S T V A
9
devetnaest primeraka velikim kompanijama i organizacijama u SAD, poput popisnog biroa
i kompanije U.S Steel. Programski jezici i operativni sistem nisu bili poznati na ovim
računarima. Programiranje je obavljano primenom osnovnog mašinskog jezika i
povezivanjem hiljada kablova na odgovarajućoj ploči preko koje se obavljalo upravljanje
operacijama računara. Početkom 1950-ih razvijena je tehnologija bušenih kartica, pa se
program zapisivao u binarnom obliku bušenjem kartica i kao takav dostavljao računaru na
izvršavanje.
a) b)
Slika 2.7 a) ENIAC računar (Computer History Museum) b) ENIAC na čipu konstruisan
povodom 50-to godišnjice nastanka
Drugu generaciju računarstva (1955-1965) omogućio je napredak elektronskih
tehnologija, pre svega pronalazak tranzistora. Generacije velikih (mainframe) računara su
se brzo smenjivale unapređene primenom ovih tehnologija. Računari druge generacije su
obično bili smešteni u specijalnim, rashlađenim prostorijama i njima su upravljali
profesionalni operateri. Magnetne trake su počele da zamenjuju bušene kartice kao uređaji
za trajno čuvanje podataka i programa. Magnetna jezgra, mali točkasti magneti koji su
mogli biti polarizovani u jednom od dva smera za reprezentovanje podataka, povezani
žicom postali su primarna tehnologija za konstruisanje glavne memorije i za interno
smeštanje podataka i programa. Izlaz izvršenja programa generisan je korišćenjem
štampača. Programi su razvijani korišćenjem asemblerskih jezika, a pojavili su se i prvi
programski jezici višeg nivoa, poput Fortran-a i COBOL-a. Tipični operativni sistemi tog
vremena su bili FMS (eng. Fortran Monitor System) i IBSYS, IBM-ov operativni system za
računar 7094. Najmoćnija kompanija tog vremena u proizvodnji i prodaji mainframe
računara postao je IBM, poznat još i kao “Big Blue”, koji je 1960-ih godina kontrolisao
preko 70% računarskog tržišta. Značajni računari tog vremena su bili IBM 1401 i 7094.
Sa razvojem integrisanih kola (LSI), računari su postajali sve manjih dimenzija i sve
boljih performansi. Ovo je označilo početak treće generacije računarstva (1965-1980).
Period tokom 70-ih godina prošlog veka karakteriše pojava VLSI (eng. Very Large Scale
U V O D U R A Č U N A R S T V O
10
Integration) računarskih komponenti i početak važenja tzv. Moore-ovog zakona. Gordon E.
Moore, jedan od osnivača kompanije Intel, u svom radu iz 1965. godine predvideo je
dupliranje tranzistora (logičkih kola) na integrisanom kolu svakih 18 meseci. Važnost ovog
“zakona” zadržala se do današnjih dana. Karakteristike mnogih digitalnih elektronskih
uređaja takođe su povezane sa Moore-ovim zakonom, poput: brzine procesora, kapaciteta
memorije, ili broja i veličine piksela na digitalnim kamerama. Umesto magnetnih jezgara
počele su da se proizvode MOS (eng. Metal Oxide Semiconductor) memorije koje su bile
napravljene korišćenjem tehnologija integrisanih kola. Jedan od najznačajnijih računara u to
vreme je bio IBM System/360 (Slika 2.8). System/360 je predstavljao u stvari seriju
softverski kompatibilnih računara, koji su se razlikovali po ceni i performansama,
namenjenih i za naučnu i komercijalnu upotrebu. Operativni sistem System/360 računara
bio je OS/360.
Slika 2.8 IBM System/360 računar
Ovaj i slični operativni sistemi računara treće generacije uveli su koncept
multiprogramiranja kojim je omogućeno da se više programa (kvazi-)paraleleno izvršava na
računaru. Drugi značajan koncept tog vremena je i podela vremena (eng. time sharing)
zasnovana na multiprogramiraju, gde su korisnici korišćenjem terminala, putem tastature
istovremeno zadavali komande računaru, izvršavali svoje programe i analizirali njihove
rezultate na monitoru. Značajni multiprogramski, timesharing operativni sistemi tog
vremena bili su CTSS (eng. Compatible Time Sharing System) i MULTICS (eng.
MULTiplexed Information and Computing Service), razvijen od strane MIT univerziteta i
kompanija Bell Labs i General Electric.
Napredak u proizvodnji integrisanih kola doveo je do razvoja miniračunara i pojave
kompanija Digital Equipment Corporation (DEC) sa svojim PDP i VAX računarima (poput
PDP7 i PDP-11), kao i kompanije Data General sa Nova računarima. Unapređenje
MULTICS-a i njegovo prilagođenje za miniračunare omogućilo je razvoj UNIX
operativnog sistema. Razvijaju se strukturni programski jezici treće generacije, poput C i
Basic-a. Uporedo sa razvojem skupih mainframe i miniračunara za poslovnu i istraživačku
upotrebu nastala je i ideja od strane računarskih hobista o konstruisanju malih računara u
2 . I S T O R I J A T R A Č U N A R S T V A
11
“kućnim” uslovima. Tako su i dva računarska entuzijasta, Steve Jobs i Stephene Wozniak
konstruisali jedan od prvih komercijalno raspoloživih kućnih računara i 1976. godine
osnovali kompaniju Apple Computer Inc za proizvodnju i prodaju ovih računara, Apple I i
Apple II (Slika 2.9a). Ostale kompanije toga vremena, koje su proizvodile i prodavale
slične male računare, bile su MITS, Commodore, Heathkit i Radio Shack. To je označilo
početak ere mikroračunara. Iako su ovi proizvodi bili veoma popularni među računarskim
hobistima, ipak nisu bili prihvaćeni od strane poslovnih krugova u kojima se poslovanje
zasnivalo u sve većoj meri na računarskim proizvodima kompanije IBM, kao najmoćnije
računarske kompanije tog vremena.
a) b)
Slika 2.9 a) Apple II računar b) IBM PC (Computer History Museum)
Međutim sve je bilo spremno za novi trend i četvru generaciju u razvoju računarstva
(1980-1995). Godine 1981. IBM je predstavio svoj prvi desktop računar nazvan personal
computer (PC), čiji je operativni system, MS-DOS, kao i prateći softver, razvijen od strane
mlade kompanije u usponu, Microsoft-a (Slika 2.9b). PC je predstavljao veliki uspeh i
koncept koji je prihvaćen u poslovnom svetu. PC danas predstavlja naziv za računare
različitih proizvođača čiji je dizajn zasnovan na inicijalnom IBM desktop računaru. Velika
većina PC-a opremljena je Microsoft-ovim operativnim sistemom i softverom, i koristi se
kako za desktop tako i za laptop računare. Početak 90-ih godina označava smanjene učešća
IBM-a na PC tržištu, i pojavu PC klonova kompanija poput Compaq, Dell, Toshiba, i
drugih. Ove godine su donele veliki uspon i dominaciju Microsoft-a, budući da su svi PC
klonovi bili zasnovani na Microsoft Windows operativnim sistemima i pratećem softveru
poput, Microsoft Office paketa. Međutim, sa napretkom mobilnog računarstva, pametnih
telefona i tableta, posle više od 30 godina od nastanka, sve više se postavlja pitanje da li je
PC era završena. Na moćnijim miniračunarima, tzv. radnim stanicama, najzastupljeniji je
UNIX operativni system. Godine 1991. razvijen je Linux operativni sistem, kao proizvod
kolaborativnog rada globalno distribuirane grupe softverskih inženjera. Linux predstavlja
najreprezentativniji primer besplatnog i open source softvera današnjice. Interakcija
korisnika sa operativnim sistemom omogućena je putem grafičkog korisničkog interfejsa
(GUI – Graphical User Inerface) u obliku prozora, menija, toolbar-ova, dugmadi i
korišćenjem računarskog miša. Ovu generaciju računarstva karakteriše pojava objektno-
orijentisanih programskih jezika Smalltalk, C++, Java, objektno-orijentisnog projektovanja
softvera i dalji razvoj softverskog inženjerstva.
U V O D U R A Č U N A R S T V O
12
Kraj XX-og i početak XXI-og veka, sa daljim razvojem poluprovodničkih tehnologija i
razvoj mikroprocesora sa stotinama miliona elektronskih komponenti/tranzistora na čipu,
doneli su petu generaciju računarstva (1995-danas). Računarski uređaji postaju sve manji
i ugrađeni u objekte oko nas, činjeći princip sveprisutnog (eng. ubiquitous) i prožimajućeg
(eng. pervasive) računartsva. Razvoj Interneta i Web-a omogućili su globalnu povezanost
računara, kao i pristup, kreiranje i publikovanje velike količine podataka. Dalja
minijaturizaciju računarskih komponenti i razvoj bežičnih komunikacija omogućili su
pojavu mobilnih računarsko-komunikacionih uređaja, pametnih telefona, tableta, pametnih
satova, itd. U cilju postizanja visokih performansi u obradi velikog obima podataka
razvijene su tehnike paralelnog računarstva i paralelnih i distribuiranih računarskih sistema.
Neograničen i globalan pristup velikoj količini informacija i servisa obezbeđen je
konceptom računarstva u oblaku (eng. cloud computing). Razvojem veštačke inteligencije i
tehnika obrade prirodnog jezika treba da se omogući jednostavna i efikasna interakcija
čoveka sa računarom, čiji softver bi se adaptirao i prilagođavao kontekstu korisnika
korišćenjem tehnika mašinskog učenja.
Razvoj računarstva utiče na široko prisustvo računarskih tehnologija u savremenom
društvu. Milioni ljudi širom sveta obavljaju svoje poslovne, zabavne, edukativne i
društvene aktivnosti korišćenjem računarskih uređaja (PC-a, pametnih telefona, tableta,
servera, itd.) povezanih na Internet. Računari su izvršili nepovratan uticaj na savremeni
život i način našeg školovanja, poslovanja, zabave i održavanja društvenih kontakata da se
ponekad zapitamo da li bi uopšte mogli bez njih.
3 . B R O J N I S I S T E M I
13
3 BROJNI SISTEMI
Brojevi se koriste za prebrojavanje stvari i pokazuju količinu elemenata u nekom skupu.
Svejedno da li se radi o kilometrima koje treba preći do odredišta, novcu na računu, ili
gledaocima neke utakmice, brojevi se koriste da predstave koliko je predmeta, ili lica u
određenom skupu.
Brojni sistem definiše način zapisa brojeva i pravila izvođenja osnovnih aritmetičkih
operacija (sabiranja, oduzimanja, množenja i deljenja) nad tako zapisanim brojevima. Način
zapisa brojeva određuje skup simbola (cifara) koji će se koristiti za njihovo zapisivanje
(alfabet) i pravila odredjivanja vrednosti svakog simbola u zapisu broja. Na primer, dekadni
brojni sistem ima alfabet sa deset simbola {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, dok alfabet rimskih
brojeva ima sedam simbola {I, V, X, L, C, D, M}. Prema tome kako se određuje vrednost
koju neki simbol predstavlja u zapisu broja, sve brojne sisteme delimo na:
pozicione i
nepozicione.
Kod nepozicionih brojnih sistema cifre imaju unapred definisane vrednosti koje su im
pridružene. Rimski brojni sistem je primer nepozicionog brojnog sistema. Pošto je vrednost
cifre X 10, vrednost rimskog broja XXX je 30. Vrednost koju cifra predstavlja je ista bez
obzira gde se ona u zapisu nalazi.
Kod pozicionih brojnih sistema vrednost pridružena cifri (elementu alfabeta brojnog
sistema) iz zapisa nekog broja zavisi od pozicije te cifre u zapisu. Primer pozicionog
brojnog sistema je dekadni brojni sistem koji smo mi navikli da koristimo u matematici.
Ako se kaže da imamo na računu 2395 dinara to znači da imamo 2 hiljade, 3 stotine, 9
desetica i 5 jedinica dinara. Dakle, da bi se dobila vrednost koju cifra u zapisu predstavlja,
njena osnovna vrednost se množi nekim faktorom (težinom). Uočimo da u slučaju
dekadnog brojnog sistem ti faktori kojima se cifre množe su stepeni broja 10 (1=100,
10=101, 100=10
2, 1000=10
3… ). Zato kažemo da je 10 osnova dekadnog brojnog sistema.
To znači da se broj 2395 može zapisati kao 2·103+ 3·10
2+ 9·10
1+ 5·10
0.
Generalni zapis celog broja u dekadnom brojnom sistemu je:
, gde je
Ukoliko se radi o razlomljenom (realnom) broju tada su težine iza decimalne tačke
stepenovane negativnim vrednostima pozicija cifara sa desne strane decimalne tačke.
U V O D U R A Č U N A R S T V O
14
Primer 3.1 Vrednost decimalnog broja kao zbir proizvoda cifara i težina
Ovakvi pozicioni brojni sistemi kod kojih je težina (poziciona vrednost) cifre definisana
sa qp (q – osnova brojnog sistema, p – pozicija u zapisu broja) nazivaju se prirodni brojni
sistemi. U svakom pozicionom sistemu vrednost broja može da se predstavi kao:
Ukoliko se radi o dekadnom broju, . Generalno alfabet pozicionog
brojnog sistema sa osnovom q sadrži cifre .
3.1 Binarni, oktalni i heksadekadni brojni sistemi
Za predstavljanje brojeva u okviru računara se koristi binarni brojni sistem čija je
osnova 2, a samim tim cifre ovog brojnog sistema su 0 i 1. Broj zapisan u binarnom
brojnom sistemu ima vrednost jednaku sledećem izrazu:
Primer 3.2 Broj 1011.011 zapisan u binarnom brojnom sistemu može da se predstavi kao:
Oktalni brojni sistem je definisan osnovom 8 i ciframa 0, 1, 2, 3, 4, 5, 6, 7. Vrednost
broja u oktalnom brojnom sistemu data je sledećim izrazom:
Heksadekadni brojni sistem je definisan osnovom 16, kao i sa 16 cifara: A B, C, D, E, F. Pri tome simbol A predstavlja cifru ovog brojnog sistema kojoj odgovara
dekadna vrednost 10, cifra B predstavlja cifru sa dekadnom vrednošću 11, i tako redom,
dok cifra F predstavlja cifru sa dekadnom vrednošću 15. Vrednost broja u heksadekadnom
brojnom sistemu data je sledećim izrazom:
Kada brojimo u binarnom brojnom sistemu, koristimo isti princip kao i u dekadnom
brojnom sistemu. Kada u brojanju stignemo do najvećeg jednocifrenog broja, sledeći broj je
10, kada se odbroji najveći dvocifreni broj, sledeći je 100, i tako redom:
Na isti način brojanje u heksadekadnom brojnom sistemu izgleda ovako:
3 . B R O J N I S I S T E M I
15
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A B C D E F F FF
3.2 Prevođenje brojeva između različitih brojnih sistema
Pošto svaki broj predstavlja način za prebrojavanje elemenata nekog skupa, logično je
zaključiti da za svaku vrednost postoji broj napisan u određenom brojnom sistemu koji je
predstavlja. U Tabela 3.1 prikazano je kako su vrednosti od 0 do 20 predstavljene
brojevima u brojnim sistemima osnove 10, 2, 8 i 16.
Tabela 3.1 Brojevi od 0 do 20 u napisani u brojnim sistemima osnove 10, 2, 8, i 16
Osnova 10 Osnova 2 Osnova 8 Osnova 16
0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9
10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11 18 10010 22 12 19 10011 23 13 20 10100 24 14
3.2.1 Prevođenje brojeva iz brojnog sistema sa proizvoljnom osnovom u brojni sistem
osnove 10
Broj napisan u bilo kom pozicionom brojnom sistemu, gde svakoj cifri odgovara
određena poziciona vrednost (težina) predstavlja način za prebrojavanje elemenata nekog
skupa. Ukoliko je broj napisan u brojnom sistemu koji nije dekadni, da bi stekli uvid u broj
elemenata ili vrednost koju predstavlja, treba ga prevesti u dekadni brojni sistem.
Primer 3.3 Binarni broj 1011 može da se predstavi kao:
U V O D U R A Č U N A R S T V O
16
Dakle, ukoliko se pomnoži svaka cifra sa njenom pozicionom vrednošću (težinom) i
izvrši sabiranje tako dobijenih vrednosti, dobija se broj u dekadnom brojnom sistemu, koji
u prethodnom primeru iznosi 11.
Praktično prevođenje brojeva napisanih u bilo kom pozicionom brojnom sistemu u
dekadni brojni sistem može se obaviti po sledećim koracima:
1. Izračunati težinu na svakoj poziciji broja stepenovanjem osnove brojnog sistema
brojem (oznakom) pozicije.
2. Pomnožiti dobijenu težinu cifrom na datoj poziciji.
3. Sabrati sve dobijene vrednosti.
Pri tome se sva izračunavanja obavljaju u dekadnom brojnom sistemu.
Primer 3.4 Izračunavanje numeričke vrednosti broja 642 zapisanog u brojnom sistemu
osnove 8 (zapisuje se kao 6428) može se obaviti sledeći ove korake:
(u dekadnom
brojnom sistemu)
Dakle, može se napisati 6428 = 41810
Primer 3.5 Na isti naćin se može odrediti dekadna vrednost broja 5A7F16, zapisanog u
brojnom sistemu osnove 16.
Primer 3.6 Koristeći isti postupak, za binarni broj 10100110.112 određuje se njegova
dekadna vrednost:
3.2.2 Prevođenje brojeva iz dekadnog brojnog sistema u pozicioni brojni sistem sa
proizvoljnom osnovom
Konvertovanje celog broja iz dekadnog brojnog sistema u bilo koji drugi brojni sistem
obavlja se sledećim koracima:
1. Podeliti broj napisan u dekadnom brojnom sistemu osnovom brojnog sistema u koji
prevodimo.
2. Zapisati ostatak pri deljenju.
3. Dok je celobrojni deo količnika različit od nule ponavljati korake 4 i 5.
4. Celobrojni deo količnika podeliti osnovom brojnog sistema u koji prevodimo.
5. Zapisati ostatak pri deljenju s leve strane poslednjeg upisanog ostatka.
3 . B R O J N I S I S T E M I
17
Ukoliko se radi o realnom broju koji ima razlomljeni deo, tj. deo iza decimalne tačke,
taj razlomljeni deo broja se prevodi sledećim koracima:
1. Pomnožiti razlomljeni deo broja osnovom brojnog sistema u koji prevodimo.
2. Zapisati celi deo proizvoda, kao prvu cifru razlomljenog dela broja u novom
brojnom sistemu.
3. Ponavljati korake 3 i 4 dok razlomljeni deo proizvoda ne dobije vrednost 0 ili dok
se ne postigne zahtevana tačnost u zapisu broja u novom brojnom sistemu
4. Razlomljeni deo proizvoda pomnožiti osnovom brojnog sistema u koji prevodimo.
5. Zapisati celi deo proizvoda s desne strane u odnosu na prethodno zapisanu cifru.
Nakon završetka ovog postupka biće određen ekvivalent dekadnog broja u traženom
brojnom sistemu. Postupak prevođenja razlomljenog dela broja ne mora uvek da dâ
konačan rezultat i konačan zapis u traženom brojnom sistemu, već se određuje onoliko
cifara iza decimalne tačke zavisno od zahtevane tačnosti.
Primer 3.7 Da bi odredili ekvivalent dekadnog broja 356710 u brojnom sistemu osnove 16
obavljamo definisane korake:
3567:16=222 222:16=13 13:16=0 32 16 0 36 62 13D16 32 48 47 14 E16 32 15F16
356710 = DEF16
Primer 3.8 Pri prevođenju dekadnog broja 29.77510 u binarni broj posebno se prevodi celi
deo broja, a posebno razlomljeni deo broja po prethodno opisanim postupcima:
2910 = 111012
Ovaj postupak nije konačan već se prevođenje u ovom primeru završava sa tačnošću do
šeste decimale binarnog broja.
0.77510 =0.1100012
U V O D U R A Č U N A R S T V O
18
Za prevođenje brojeva iz proizvoljnog brojnog sistema u neki drugi brojni sistem
primenjuje se postupak kojim se dati broj najpre prevede u dekadni brojni sistem (poglavlje
3.2.1), a zatim iz dekadnog brojnog sistema u traženi brojni sistem.
3.2.3 Prevođenje brojeva iz binarnog brojnog sistema u brojni sistem čija je osnova
stepen dvojke i obrnuto
Zanimljiv je slučaj prevođenja iz binarnog u oktalni i heksadekadni brojni sistem i
obrnuto. Pošto za osnove heksadekadnog i oktalnog brojnog sistema važi da predstavljaju
odgovarajući stepen osnove binarnog brojnog sistema, tačnije, 16 = 24 i 8 = 23, prevođenje
brojeva između ovih brojnih sistema u binarni brojni sistem obavlja se pojedinačnim
prevođenjem svake cifre heksadekadnog, odnosno oktalnog brojnog sistema. Tako svakoj
cifri heksadekadnog brojnog sistema odgovaraju četiri binarne cifre zapisane u binarnom
brojnom sistemu, u skladu sa Tabela 3.1.
Primer 3.9 Prevođenje brojeva iz oktalnog i heksadekadnog u binarni brojni sistem
A36D16 = 1010 0011 0110 1100 2
7248 = 111 010 100 2
F12.B316 = 1111 0001 0010. 1011 00112
Na analogni način vrši se prevođenje brojeva iz binarnog brojnog sistema u
heksadekadni i oktalni brojni sistem, grupisanjem po četiri, odnosno tri, cifre binarnog
brojnog sistema i njihovim prevođenjem u heksadekadni, odnosno oktalni brojni sistem.
Primer 3.10 Prevođenje brojeva iz binarnog u oktalni i heksadekadni brojni sistem
101010112 = 1010 1011 = AB16
A B
101010112 = 010 101 011 = 2538
2 5 3
1111.1012 = 001 111 . 101 = 17.58
1 7 . 5
3.3 Osnovne računske operacije u pozicionim brojnim sistemima
Osnovne računske operacije nad brojevima napisanim u dekadnom brojnom sistemu se
uče u početnim razredima osnovne škole i jednostavne su za većinu ljudi. Međutim, isti
postupak se koristi i kod računskih operacija nad brojevima u drugim brojnim sistemima.
Postupak sabiranja dva broja u određenom brojnom sistemu započinje sabiranjem dve cifre
koje se nalaze na krajnjim desnim pozicijama u zapisu brojeva. Ukoliko je rezultat zbira
veći od osnove brojnog sistema, na datoj poziciji rezultata piše se vrednost zbira umanjena
3 . B R O J N I S I S T E M I
19
za osnovu brojnog sistema, a pri sabiranju cifara na poziciji veće težine dodaje se osnova
brojnog sistema koja na toj poziciji ima vrednost 1. Ovaj elementarni postupak se nastavlja
dok se ne saberu cifre najveće težine.
Oduzimanje brojeva u drugim brojnim sistemima zasniva se na istom postupku kao i
oduzimanje brojeva u dekadnom brojnom sistemu, pri čemu oduzimanje počinje od cifri
najmanje težine (krajnje desnih u zapisu brojeva). Kada je cifra umanjenika na određenoj
poziciji manja od cifre umanjioca na toj poziciji, pozajmljuje se jedinica sa mesta veće
težine koja na toj poziciji ima vrednost osnove brojnog sistema. U dekadnom brojnom
sistemu pozajmljuje se 10, u binarnom 2, a u heksadekadnom 16. Pozajmica sa mesta veće
težine smanjuje vrednost cifre umanjenika na toj poziciji za 1. Na sledećem primeru
prikazano je oduzimanje brojeva u binarnom brojnom sistemu.
Primer 3.11 Sledeći primer ilustruje postupak sabiranja dva binarna broja.
1 + 1 = 10 (upisati 0 i preneti 1 na poziciju veće težine)
1 + 0 + 0 = 1 (upisati 1)
1 + 0 + 1 = 10 (upisati 0 i preneti 1 na poziciju veće težine)
1 + 1 + 1 = 11 (upisati 1 i preneti 1 na poziciju veće težine)
1 1 1 1 + 1 = 10 (upisati 0 i preneti 1 na poziciju veće težine)
1 0 0 1 1
+ 1 0 1 1 1
1 0 1 0 1 0
Primer 3.12 Oduzimanje dva binarna broja
0 je manja od 1, tako da je pozajmljena 1 od cifre veće težine koja dobija
vrednost 0, a ova jedinica na ovoj poziciji ima vrednost osnove, tj. 10 – 1 = 1
1 0 = 1
0 10 1 1 = 0
1 0 1 1
0 1 0 1
0 1 1 0
Operacije množenja i deljenja se obavljaju po istom principu kao i u dekadnom brojnom
sistemu, budući da se svode na operacije sabiranja i oduzimanja. Tablice množenja i
deljenja binarnih cifara date su na sledeći način.
Tablica množenja Tablica deljenja
/ 0 1
0 e 0
1 e 1
∙ 0 1
0 0 0
1 0 1
U V O D U R A Č U N A R S T V O
20
Primer 3.13 Množenje i deljenje dva binarna broja
1 0 1 1 1 0 1 1 1 0 1 1 1 / 1 0 1 = 1 0 1 1
1 0 1 1 1 0 1
0 0 0 0 1 1 1
+ 1 0 1 1 1 0 1
1 1 0 1 1 1 1 0 1
1 0 1
0
Istim postupkom se obavljaju računske operacije množenja i deljenja i u brojnim sistemima
osnove 8 i 16, pa i u nekom „egzotičnom“ brojnom sistemu, na primer osnove 13.
Primer 3.14 Sabiranje dva oktalna broja i dva binarna broja
11 1 111 5768 1101112 + 1738 + 101112
7718 10011102
Primer 3.15 Oduzimanje u heksadekadnom brojnom sistemu
7 2 5 - 3 C D
3 5 8
Primer 3.16 Izvršimo sledeće množenje paralelno u dekadnom i oktalnom brojnom
sistemu
4610 3710 568 458
322 346 4610 = 568
+138 +270 3710 = 458
170210 32468
Provera: 32468 = 3⋅83+2⋅82+4⋅8+6=170210
3 . B R O J N I S I S T E M I
21
Pitanja i zadaci
1. Prevesti broj 507.23 iz dekadnog brojnog sistema u binarni brojni sistem.
2. Prevesti broj 1234.56 iz dekadnog brojnog sistema u heksadekadni brojni sistem.
3. Prevesti broj 3104.76 iz dekadnog brojnog sistema u oktalni brojni sistem.
4. Prevesti broj 11010110.1101 iz binarnog brojnog sistema u dekadni brojni sistem.
5. Prevesti broj 3104.76 iz oktalnog brojnog sistema u binarni brojni sistem.
6. Prevesti broj 10111011.1001 iz binarnog brojnog sistema u heksadekadni brojni
sistem.
7. Prevesti broj A2C8.12B iz heksadekadnog brojnog sistema u binarni brojni sistem.
8. Prevesti broj 3D91.3A iz heksadekadnog brojnog sistema u dekadni brojni sistem.
9. Prevesti broj 276.45 iz oktalnog brojnog sistema u heksadekadni brojni sistem preko
binarnog brojnog sistema.
10. Naći proizvod brojeva 1101.01 i 100.11
11. Naći količnik brojeva 1011101.11 i 110.1
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
23
4 PREDSTAVLJANJE PODATA KA
U RAČUNARU
Po definiciji, računari su električni uređaji (mašine) koji služe za obradu podataka. To
znači da je prvi problem koji treba rešiti pri realizaciji računara, kako predstaviti podatke u
njemu. Podaci koje računar obrađuje su vrlo heterogene prirode. To mogu biti:
brojevi (numerički podaci),
tekst (alfanumerički podaci),
zvuk (ili bilo koji drugi analogni signal),
slike,
video zapisi...
Tekst, zvuk, slike i video zapisi zajedno su u računarstvu poznati još i kao
multimedijalni podaci.
Slika 4.1 Čovekova i kompjuterska reprezentacija realnog sveta
321 domaći
TEXT
111001111011
110111100001
000000100001
000011110100
U V O D U R A Č U N A R S T V O
24
S obzirom na to da je računar električni uređaj svi podaci se u računaru predstavljaju
naponskim nivoima i to najčešće pomoću 2 naponska nivoa koji se obeležavaju kao 0 i 1.
To znači da se svi podaci u računaru predstavljaju takozvanom binarnom azbukom
(azbukom sa 2 simbola) (slika 4.1). U ovom poglavlju ćemo videti kako se podaci različite
prirode prevode u nizove nula i jedinica koje je jedino moguće registrovati (pamtiti) i
obrađivati u računaru.
Najmanja količina podataka koja može biti registrovana u računaru je 1 bit koji
predstavlja jednu binarnu cifru ili jedno slovo binarne azbuke (0 ili 1). U računarima se kao
osnovna jedinica za količinu podataka (a samim tim i za kapacitet memorije) koristi bajt
(niz od 8 bitova). Inače, memorija računara je organizovana kao skup memorijskih reči
(koje su sastaljene od 2, 4, ili 8 bajtova).
4.1 Predstavljanje numeričkih podataka u računaru
Za predstavljanje numeričkih podataka u računaru koristi se:
binarni brojni sistem i
binarno-kodirani dekadni brojni sistem (tj. različiti BCD kodovi).
Ovo poglavlje će se više baviti formatima za predstavljanje različitih vrsta brojeva koji
su zasnovani na korišćenju binarnog brojnog sistema, a zatim će, ukratko, biti predstavljeni
i BCD kodovi. Zbog preglednosti i ograničenosti prostora, za reprezentovanje podataka
koristiće se memorijske reči dužine 4 bajta (32 bita), iako su danas najrasprostranjeniji PC
računari sa 64-bitnim memorijskim rečima.
Iako se u matematici definiše veći broj skupova brojeva, sa aspekta načina
predstavljanja u računaru, sve brojeve možemo podeliti na:
cele neoznačene brojeve,
cele označene brojeve i
realne brojeve.
4.1.1 Predstavljanje celih neoznačenih brojeva
Celi neoznačeni brojevi se predstavljaju tako što se, najpre, prevedu u binarni brojni
sistem. Ukoliko je broj cifara u zapisu broja manji od dužine memorijske reči, broj se
dopunjuje nevažećim nulama sa leve strane.
Primer 4.1 Predstavimo broj 25 u 32-bitnoj reči računara.
Prvi korak pri kreiranju memorijske reprezentacije broja je uvek prevođenje broja u
binarni brojni sistem. U našem slučaju:
(25)10=(11001)2.
Smeštanje broja u memorijsku reč počinjemo od pozicije najmanje težine, a u
neiskorišćene pozicije viših težina upisujemo nevažeće nule:
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
25
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
Opseg brojeva koji se u ovom formatu mogu predstaviti u 32-bitnoj memorijskoj reči je
[0, 232
-1].
4.1.2 Predstavljanje celih označenih brojeva
Za predstavljanje celih označenih brojeva u digitalnim sismemima koriste se 4 različita
formata:
prosto označavanje (prosto kodiranje znaka, znak i apsolutna vrednost),
nepotpuni komplement,
potpuni komplement,
format s pomerajem.
Zbog jednostavnosti izvođenja operacija, u praksi je najčešće u upotrebi potpuni
komplement. Ipak, u okviru ovog poglavlja ćemo se upoznati sa svim navedenim
formatima jer se neki od njih koriste i kao pomoćni fomati pri predstavljanju realnih
brojeva.
4.1.2.1 Prosto označavanje celih brojeva
Kod prostog označavanja (ili kod prostog kodiranja znaka), kako i samo ime kaže, znak
broja se prosto kodira binarnom azbukom. S obzirom da su 2 moguća znaka broja (+ i -), za
kodiranje znaka se izdvaja jedna pozicija u zapisu broja (odnosno jedan bit u memorijskoj
reči). Za znak broja se koristi bit najveće težine. Ostaje još i problem definisati kako
predstaviti znak +, a kako znak -. Dogovoreno je da se znak + predstavlja (kodira) cifrom 0,
a znak - cifrom 1.
Primer 4.2 Predstaviti brojeve +25 i -25 u 32-bitnoj reči računara.
+25: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
-25: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
Obeležena ćelija u memorijskoj reči predstavlja poziciju znaka.
Maksimalna vrednost koja u ovom formatu može biti predstavljena u 32-bitnoj reči
računara je 231
-1, a minimalna -(231
-1), tj.-231
+1. Zapis ovih vrednosti u memorijskoj reči
bio bi:
U V O D U R A Č U N A R S T V O
26
231
-1: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-231
+1: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Jedan od nedostataka ovog formata je što nije jednoznačno određeno kako će se
predstaviti broj 0. 0 je po prirodi neutralan broj. Međutim, u računaru se mora znati šta će
se upisati na poziciju najveće težine. Dakle, moramo je tretirati kao pozitivan ili kao
negativan broj. Ako nulu tretiramo kao pozitivan broj njen zapis u 32-bitnoj reči računara
je:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ukoliko nulu tretiramo kao negativan broj, njen zapis bi bio:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Izvođenje aritmetičkih operacija u formatu „znak + apsolutna vrednost“:
Da bismo uporedili efikasnost izvođenja aritmetičkih operacija kada su brojevi
predstavljeni u različitim formatima, razmotrićemo izvođenje operacije sabiranja u svakom
od razmatranih formata. Algoritam za sabiranje brojeva predstavljenih u formatu „znak +
apsolutna vrednost“ se sastoji od sledećih koraka:
Korak 1. Ispitati znake oba sabirka, ako su isti preći na korak 2, u suprotnom preći na
korak 4.
Korak 2. Na poziciji znaka upisati znak prvog sabirka.
Korak 3. Apsolutnu vrednost rezultata kreirati kao zbir apsolutnih vrednosti sabiraka.
Kraj.
Korak 4. Uporediti apsolutne vrednosti sabiraka.
Korak 5. Na poziciju znaka upisati znak sabirka čija je apsolutna vrednost veća.
Korak 6. Apsolutnu vrednost rezultata odrediti kao razliku veće i manje apsolutne
vrednosti sabiraka.
Očigledano je da je algoritam sabiranja kako hardverski tako i vremenski jako zahtevan
u ovom formatu jer je potrebno: uporediti znake, u slučaju različitih znaka uporediti i
apsolutne vrednosti brojeva i na kraju izršiti sabiranje ili oduzimanje apsolutnih vrednosti.
To znači da su nam za realizaciju ove operacije potrebni i komparator i sabirač i oduzimač
binarnih brojeva.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
27
4.1.2.2 Nepotpuni komplement celih brojeva
Nepotpuni komplement se u literaturi naziva još i komplementom najveće cifre, a u
slučaju binarnog brojnog sistema i komplementom jedinice. I u ovom formatu pozicija
najveće težine se koristi za znak broja. Znak + se kodira nulom, a znak - najvećom cifrom
brojnog sistema, pa se u slučaju binarnog brojnog sistema, znak - kodira jedinicom.
Vrednost broja koja se upisuje u preostale pozicije dobija se po obrascu:
0,1
0,
AAq
AAA n .
Kao što se vidi, zapis pozitivnih brojeva u nepotpunom komplementu je isti kao i kad je
korišćeno prosto kodiranje znaka.
U praksi, komplement najveće cifre negativnih brojeva se dobija tako što se najpre
kreira zapis njemu suprotnog broja (pozitivnog), zatim se na poziciju znaka (odnosno na
poziciju najveće težine) upiše najveća cifra brojnog sistema, a cifre sa svih ostalih pozicija
se zamene svojom dopunom do najveće cifre brojnog sistema.
Primer 4.3 Predstavićemo broj -25 u dekadnom brojnom sistemu u nepotpunom
komplementu sa 8 pozicija.
Najpre kreiramo zapis broja + 25:
7 6 5 4 3 2 1 0
0 0 0 0 0 0 2 5
Zatim na poziciju najveće težine upisujemo najveću cifru brojnog sistema (9), a sve
ostale cifre zamenjujemo njihovom dopunom do najveće cifre (odnosno do 9). Tako će se
izvršiti sledeće zamene: 09, 27 i 54, pa će zapis broja -25 biti:
7 6 5 4 3 2 1 0
9 9 9 9 9 9 7 4
Da vidimo sada kako bi se kreirao nepotpuni komplement negativnog broja u binarnom
brojnom sistemu. Na poziciju znaka bi se upisala jedinica, a dopuna ostalih cifara do cifre
naveće težine (u ovom slučaju do cifre 1) zahtevala bi sledeće zamene: 10 i 01. Ovo
praktično znači, da sve ostale cifre treba jednostavno komplementirati.
Primer 4.4 Predstavićemo broj -25 u nepotpunom komplementu u 32-bitnoj reči računara.
Krećemo ponovo od zapisa njemu suprotnog broja, tj. od zapisa broja + 25:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
Zatim na poziciju najveće težine upisujemo najveću cifru brojnog sistema (1), a sve
ostale cifre komplementiramo. Zapis broja -25 će biti:
U V O D U R A Č U N A R S T V O
28
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0
Opseg brojeva koji se na ovaj način može predstaviti u 32-bitnoj reči računara ostaje isti
[-231
+1, 231
-1].
I u ovom formatu ostaje nedostatak nejednoznačnog predstavljanja broja 0. Ako nulu
tretiramo kao pozitivan broj njen zapis u 32-bitnoj reči računara je:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ukoliko nulu tretiramo kao negativan broj, njen zapis bi bio:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Izvođenje aritmetičkih operacija u nepotpunom komplementu:
Operacija sabiranja u nepotpunom komplementu se izvodi po sledećem algoritmu:
Korak 1. Izvršiti sabiranje po pravilima za sabiranje binarnih brojeva.
Korak 2. Ukoliko postoji prenos sa pozicije najveće težine (pozicije znaka), dodati ga
na poziciju najmanje težine.
Očigledno je da je za realizaciju ovog algoritma dovoljno posedovati samo sabirač
binarnih brojeva.
Primer 4.5 Predstaviti brojeve +27 i -25 u nepotpunom komplementu sa 8 pozicija i
izvršiti njihovo sabiranje.
8210 00011011)11011()27( NK
8210 )11100110()11001()25( NK
01000000
1
100000001
01100111
11011000
Dakle, rezultat je 108 )2()00000010( NK .
Odavde je očigledno da, iako je algoritam za sabiranje znatno pojednostavljen u odnosu
na algoritam koji se primenjuje kada je broj predstavljen pomoću znaka i apsolutne
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
29
vrednosti, nedostatak nepotpunog komplementa je i što se operacija sabiranja izvodi u 2
koraka.
4.1.2.3 Potpuni komplement celih brojeva
Potpuni komplement se u literaturi još naziva i komplementom osnove, tj. u slučaju
binarnog brojnog sistema, komplementom dvojke (odnosno dvoičnim komplementom).
Znak broja se i u ovom formatu kodira na isti način kao kod prethodna dva formata, a
vrednost koja se upisuje u preostale pozicije dobija se po obrascu:
0,
0,
AAq
AAA n .
Kao što se vidi, zapis pozitivnih brojeva i u potpunom komplementu ostaje
nepromenjen. Ako uporedimo formule za transformaciju negativnih brojeva u nepotpuni i u
potpuni komplement, vidimo da se vrednost negativnih brojeva u potpunom komplementu
razlikuje za 1 od vrednosti istog broja u nepotpunom komplementu. To, praktično, znači da
će se potpuni komplement negativnog broja dobiti tako što se na njegov nepotpuni
komplement dodati cifra 1 na poziciju najmanje težine.
Primer 4.6 Predstavićemo broj -25 u potpunom komplementu u 32-bitnoj reči računara.
Krećemo ponovo od zapisa njemu suprotnog broja, tj. od zapisa broja + 25:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
Zatim na već poznati način kreiramo nepotpuni komplement ovog broja i na poziciju
najmanje težine dodajemo jedinicu:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0
+ 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1
Opseg brojeva koji na ovaj način mogu biti registrovani u računaru sa 32-bitnim rečima
je [-231
, 231
-1]. Jedan broj više koji je moguće registrovati je dobijen na račun toga što se 0
sada predstavlja na jedinstven način. Pokušajmo da predstavimo nulu kao pozitivan i kao
negativan broj:
+0:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Formirajmo sad potpuni komplement za broj -0:
U V O D U R A Č U N A R S T V O
30
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Da vidimo kako izgleda broj -231
. Pozitivni ekvivalent ovog broja nije moguće
predstaviti u 32-bitnoj reči, ali, ako ga tretiramo kao neoznačeni broj njegov zapis će biti:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Na osnovu ovog zapisa kreiraćemo potpuni komplement broja -231
:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Izvođenje aritmetičkih operacija u potpunom komplementu:
Algoritam za sabiranje brojeva u potpunom komplementu se može opisati na sledeći
način:
Korak 1. Izvršiti sabiranje po pravilima za sabiranje binarnih brojeva.
Korak 2. Ukoliko postoji prenos sa pozicije najveće težine (pozicije znaka), odbaciti ga.
Primer 4.7 Predstaviti brojeve +27 i -25 u potpunom komplementu sa 8 pozicija i izvršiti
njihovo sabiranje.
8210 00011011)11011()27( PK
8210 )11100111()11001()25( PK
010000001
11100111
11011000
Sada smo u jednom koraku dobili konačan rezultat sabiranja: 108 )2()00000010( PK ,
a za realizaciju operacije su nam bili potrebni samo binarni sabirači.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
31
4.1.2.4 Predstavljanje celih brojeva sa pomerajem
Opseg celih brojeva koji se mogu predstaviti u 32-bitnoj reči računara prikazan je na
brojnoj pravoj na slici 4.2.
Slika 4.2 Opseg celih brojeva koji se u potpunom komplementu mogu predstaviti 32-
bitnoj reči računara
Format sa pomerajem preslikava interval sa slike 4.2 na pozitivan deo x-ose, odnosno
pre upisa u memorijsku reč brojevi se transformišu po obrascu
pAA ,
gde p predstavlja pomeraj. Vrednost pomeraja zavisi od osnove brojnog sistema u kojem je
broj predstavljen (q) i od broja pozicija kojima se broj predstavlja (n). Za vrednost
pomeraja se, obično uzima:
1 nqp , ili
11 nqp .
Ako je osnova brojnog sistema 2, a n=32, p može biti 231
ili 231
-1, tj.:
p=10000000000000000000000000000000, ili
p=01111111111111111111111111111111.
Primer 4.8 Predstaviti brojeve +25 i -25 u formatu sa pomerajem u 32-bitnoj reči
računara. Za vrednost pomeraja koristiti p=231
.
Kreirajmo najpre zapis broja +25 kao:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 1 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
Zapis broja -25 biće:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 1 1 0 0 1
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1
-231
-231
-1 0
U V O D U R A Č U N A R S T V O
32
Obeležena pozicija najveće težine se i u ovom slučaju tretira kao znak broja. Vidimo da
se jedino kod ovog formata kodiranje znaka razlikuje od uobičajenog. Pozitivni brojevi
sada na poziciji najveće težine (odnosno, na poziciji znaka) imaju vrednost 1, a negativni 0.
Ako uporedimo sada zapise brojeva +25 i -25 u potpunom komplementu i u formatu sa
pomerajem, uočavamo da se ti zapisi razlikuju samo na poziciji znaka.
4.1.3 Predstavljanje realnih brojeva
Za predstavljanje realnih brojeva u računaru koriste se 2 formata:
format sa fiksnim zarezom i
format sa pokretnim zarezom (tj. eksponencijalni zapis broja).
Ova dva načina predstavljanja brojeva se, uglavnom, koriste i za zapis realnih brojeva u
matematici. Format sa fiksnim zarezom bi značio da se decimalna tačka u zapisu nalazi
tamo gde joj je i stvarno mesto. Na taj način predstavljeni brojevi u matematici su npr: 5.32,
,...96.37 Medjutim, "suviše velike" ili "suviše male" brojeve nikada ne zapisujemo na
ovaj način, već vršimo pomeranje decimalne tačke tako što broj dodatno množimo nekim
stepenom broja deset (što je, u stvari, osnova brojnog sistema). Na primer, vrednost
Avogadrovog broja je 000000000000006022141500 , ali se on, skoro uvek, zapisuje u
obliku 23100221415.6 . Nalektrisanje elektrona iznosi: 00000000160000000000.0 C, ali
ćete ga u svim udžbenicima naći u obliku: 19106.1 C. Slične notacije se koriste i za
predstavljanje realnih brojeva u računarima.
4.1.3.1 Predstavljanje realnih brojeva u formatu sa fiksnim zarezom
Kod ovog načina predstavljanja brojeva, memorijska reč se deli na 3 zone (slika 4.3):
poziciju za znak broja,
skup pozicija koje se koriste za predstavljanje celog dela broja i
skup pozicija koje se koriste za predstavljanje razlomljenog dela broja.
Koliko pozicija se koristi za predstavljanje celobrojnog dela, a koliko za predstavljanje
razlomljenog nije fiksno definisano. Nekada je to bilo odredjeno hardverski, dok se danas
dozvoljava da programeri sami to podešavaju u svojim programima.
Za predstavljanje negativnih brojeva u fiksnom zarezu koristi se jedna od metoda koje
se koriste i za predstavljanje celih brojeva: prosto kodiranje znaka, nepotpuni komplement i
potpuni komplement. Mi ćemo u svojim primerima uvek koristiti prosto označavanje.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
Slika 4.3 Zapis realnog broja u fiksnom zarezu
znak celobrojni deo razlomljeni deo
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
33
Primer 4.9 Predstaviti broj 27.125 u 32-bitnoj reči računara u formatu sa fisknim zarezom
ukoliko se za predstavljanje celog dela broja koristi 15, a za predstavljanje razlomljenog
dela broja 16 pozicija.
Izvršimo najpre prevođenje ovog broja u binarni brojni sistem:
210 11011.001)()125.27( ,
pa će zapis u memorijskoj reči izgledati:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Interval brojeva koji se na ovaj način mogu predstaviti u jednoj reči računara prikazan je
na slici 4.4.
Slika 4.4 Opseg realnih brojeva koji se u fiksnom zarezu mogu predstaviti u jednoj
memorijskoj reči
Na slici 4.4 sa Rmin i Rmax označene su minimalna apsolutna vrednost i maksimalna
apsolutna vrednost koje u ovom formatu mogu biti predstavljene u računaru. Kolika će
vrednost ovih konstanti biti zavisi od broja pozicija koje se koriste za predstavljanje celog
(odnosno razlomljenog) dela broja. Ako sa n označima broj pozicija koje se koriste za
predstavljanje celobrojnog dela, a sa m broj pozicija za predstavljanje razlomljenog dela,
mR 2min , a mnR 22max .
Svi brojevi iz intervala min]min,[ RR će u računaru biti zamenjeni nulom, pa se ovaj
interval u računarstvu naziva oblašću mašinske nule. Rmin je razlika izmedju 2 susedna
broja koja u ovom formatu mogu biti predstavljena u računaru, pa se zbog toga ova
vrednost naziva i korakom diskretizacije.
Nedostatak ovakvog načina predstavljanja brojeva je što je opseg brojeva koji se na taj
način mogu predstaviti veoma mali: ]22 ,22[ mnmn . Jasno je da je ovaj interval čak
mnogo manji od intervala celih brojeva koji se mogu registrovati u memorijskim rečima
istih dužina. Zbog toga se u praksi za predstavljanje realnih brojeva mnogo češće koristi
format sa pokretnim zarezom.
4.1.3.2 Predstavljanje realnih brojeva u formatu sa pokretnim zarezom
U opštem slučaju, predstavljanje brojeva u pokretnom zarezu nije jedinstveno. Na
primer, naelektrisanje elektrona možemo zapisati u obliku:
182019 1016.01016106.1
-Rmax Rmax -Rmin 0 Rmin
U V O D U R A Č U N A R S T V O
34
Na isti način i binarni brojevi u eksponencijalnom obliku mogu biti predstavljeni na više
načina. Na primer, broj iz primera 4.8 u eksponencijalnom obliku može da izgleda:
3541 211011001211011001.021011001.121001.1101001.11011
Napomena: U prethodnom zapisu su namerno osnova brojnog sistema i eksponent pisani u
dekadnom brojnom sistemu da bi se jasno videla veza izmedju broja pozicija za koliko se
decimalna tačka pomera i eksponenta (broja kojim se stepenuje osnova 2). Ako bismo sve
predstavili u binarnom brojnom sistemu, prethodni primer bi se transformisao na sledeći
način:
111011001 10110110011011011001.0101011001.1101001.1101001.11011
Računaru ne smemo ostaviti nikakvu proizvoljnost u pogledu kako će nešto biti
zapisano. Zato je standardom IEEE 754 strogo definisano kako treba da izgleda
eksponencijalni zapis broja. Po tom standardu realni brojevi se u pokretnom zarezu
predstavljaju u obliku:
Emz 2 ,
gde je:
z - znak broja,
m - normalizovana mantisa,
E - eksponent.
Normalizovana mantisa znači da je mantisa svedena na oblik:
1.bbbb...
gde je sa b označena proizvoljna cifra binarnog brojnog sistema. Jednostavnije rečeno, u
normalizovanoj mantisi decimalna tačka se nalazi iza prve jedinice u zapisu broja, odnosno,
celobrojni deo normalizovane mantise je uvek 1.
Kao što se iz zapisa vidi, pri memorisanju eksponencijalnog zapisa broja, memorijsku
reč opet delimo na tri zone: u prvu upisujemo znak broja, u drugu eksponent, a u treću
normalizovanu mantisu. Veličine ovih zona su ovog puta fiksne (propisane standardom). Za
predstavljanje eksponenta se koristi 8 bitova, a za predstavljanje normalizovane mantise
preostali deo memorijske reči (23 bita). Raspored ovih zona u memorijskoj reči prikazan je
na slici 4.5.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
Slika 4.5 Zapis realnog broja u pokretnom zarezu
Za predstavljanje mantise broja koristi se prosto označavanje, što znači da znak ima
vrednost 0 za pozitivne brojeve, a vrednost 1 za negativne, a u polju koje smo nazvali
normalizovana mantisa upisuje se njena apsolutna vrednost. U tom polju se prva jedinica
(jedinica koja se nalazi ispred decimalne tačke) ne piše, već se tu navode samo cifre iz
znak eksponent normalizovana mantisa
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
35
razlomljenog dela normalizovane mantise. Pošto je cifra 1 ispred decimalne tačke
obavezna, ona se podrazumeva.
Eksponent se u ovom zapisu predstavlja u formatu sa pomerajem, pri čemu se kao
pomeraj koristi vrednost 11 nq , tj. 127127 , odnosno 01111111 u binarnom brojnom
sistemu.
Primer 4.10 Predstaviti broj 27.125 u 32-bitnoj reči računara u formatu sa pokretnim
zarezom.
Izvršimo najpre prevodjenje ovog broja u binarni brojni sistem i zatim izvršimo
normalizaciju mantise
2100
210 )101011011.1(11011.001)()125.27( .
Da bismo memorisali broj, treba još odrediti zapis eksponenta u formatu sa pomerajem:
Dakle, u memorijskoj reči biće upisano:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ovo odbacivanje cifre koja se nalazi ispred decimalnog zareza dovodi do povećanja
broja cifara koje možemo zapisati u memorijskoj reči, ali stvara problem pri predstavljanju
nule u ovom formatu. Da bi se taj problem prevazišao, standardom je propisano da se nula
predstavlja tako što se i na mesto eksponenta i na mesto mantise upišu sve nule.
Druga karakteristična vrednost eksponenta je 11111111. Ona označava da je došlo do
prekoračenja opsega vrednosti koje mogu biti registrovane u ovom formatu (tada su u
mantisi sve cifre 0) ili je došlo do neke izuzetne situacije prilikom izračunavanja, kao što su
0/0, 1 i slično (tada u mantisi nisu sve cifre jednake 0). Potonje vrednosti se
obeležavaju sa NaN (što je skraćenica engleskog izraza Not a Number).
Najmanji broj po apsolutnoj vrednosti koji na ovaj način može biti registrovan u
računaru je:
38126 1020.1 ,
a najveći:
38128127 102211111111111111111111111.1 .
To znači da je opseg brojeva koji se na ovaj način mogu predstaviti u računaru
]10 ,10[ 3838 , a da je preciznost kojom se brojevi predstavljaju do 24 binarne cifre, što
odgovara preciznosti od 7 dekadnih cifara.
Niti ovaj opseg brojeva, niti ovaj broj značajnih cifara često nisu dovoljni da zadovolje
potrebe korisnika. Zato je uveden i proširen oblik za predstavljanje brojeva u računaru u
pokretnom zarezu koji se zove još i pokretni zarez sa dvostrukom preciznošću (ili
0 1 1 1 1 1 1 1
+ 1 0 0
1 0 0 0 0 0 1 1
U V O D U R A Č U N A R S T V O
36
ekponencijalni zapis sa dvostrukom preciznošću). U skladu sa tim, oblik pokretnog zareza o
kojem je do sada bilo reč, se u literaturi sreće i pod nazivom pokretni zarez jednostruke
preciznosti (odnosno, eksponencijalni zapis jednostruke preciznosti).
Za predstavljanje realnih brojeva u formatu sa pokretnim zarezom dvostruke preciznosti
koriste se 2 susedne memorijske reči. U prvu reč se upisuje znak broja, eksponent (za čije
predstavljanje se sad koristi 11 bitova) i viši deo mantise (prvih 20 bitova iz razlomljenog
dela mantise). Cela druga reč se koristi za niži deo mantise (za preostale cifre mantise).
Ovakav zapis broja prikazan je na slici 4.6.
Slika 4.6 Zapis realnog broja u pokretnom zarezu dvostruke preciznosti
Pomeraj koji se u ovom formatu dodaje ekspnentu je 1210 , odnosno, 01111111111 u
binarnom brojnom sistemu.
Opseg brojeva koji se može registrovati je povećan na čak ]10 ,10[ 308308, dok
preciznost sad iznosi 53 binarne cifre, tj. 15 dekadnih cifara.
4.1.4 BCD kodovi
Pošto je čovek navikao da brojeve predstavlja u dekadnom brojnom sisemu, on ih
obično u tom obliku i unosi u računar i očekuje da će računar sve rezultate svoje obrade
prikazati u istom tom obliku. Dakle, čovek, obično, i nije svestan toga da računar isključivo
radi sa nulama i jedinicama. To znači da su obavezni koraci u svakoj obradi numeričkih
podataka:
Korak 1. Prevođenje ulaznih numeričkih podataka iz dekadnog brojnog sistema u
binarni,
Korak 2. Obrada,
Korak 3. Prevodjenje rezultata iz binarnog brojnog sistema u dekadni i prikaz
korisniku.
Ukoliko je stvarna obrada podataka koja se u računaru obavlja minimalna (npr.
sabiranje cena artikala pri kreiranju fiskalnog računa u trgovini), vreme potrošeno na
prevodjenje podataka iz jednog brojnog sistema u drugi i obrnuto, biće mnogo veće od
samog vremena izvršenja željenih operacija.
znak eksponent viši deo normalizovane mantise
niži deo normalizovane mantise
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
37
Drugi nedostatak korišćenja binarnog brojnog sistema je neizbežno uvođenje greške pri
prevodjenju brojeva iz jednog brojnog sistema u drugi.
Primer 4.11 Prevesti broj 0.1 iz dekadnog u binarni brojni sistem.
Primenićemo klasični algoritam za prevođenje brojeva iz brojnog sistema sa jednom
osnovom u brojni sistem sa drugom opisan u poglavlju 3. Dakle, pošto ovaj broj ima samo
razlomljeni deo, množićemo ga osnovom 2:
Korak 1. 2.21.0 0
Korak 2. 4.22.0 0
Korak 3. 8.24.0 0
Korak 4. 6.28.0 1
Korak 5. 2.26.0 1
Korak 6. 4.22.0 0 ...
Vidimo da su korak 6 i korak 2 identični, što znači da će se u nastavku prevođenja cifre
dobijene u koracima 2-5 ponavljati. To znači da će ovaj broj u binarnom brojnom sistemu
biti 00110.0 . Dakle, iako ovaj broj u dekadnom brojnom sistemu ima sasvim jednostavan
zapis, u binarnom brojnom sistemu on je periodičan i ne može se ni u jednom formatu
predstaviti bez greške.
Zbog navedenih problema, u nekim situacijama se umesto binarnog brojnog sistema, za
predstavljanje numeričkih podataka koriste takozvani binarno-kodirani dekadni brojni
sistem.
Pre nego što razmotrimo načine za kodiranje dekadnog brojnog sistema, potrebno je
definisati pojam kodiranje.
Definicija 4.1. Kodiranje znači preslikavanje konačnog skupa reči kreiranih od simbola
jedne azbuke u reči kreiranih od simbola druge azbuke. Reči odredišne azbuke se nazivaju
kodnim rečima.
Primer 4.12 Kodirati skup imena dana u nedelji binarnom azbukom.
Skup koji treba kodirati je:
{Ponedeljak, Utorak, Sreda, Četvrtak, Petak, Subota, Nedelja}.
Ovaj skup sadrži 7 elemenata, što znači da nam je za njegovo kodiranje potrebno 7 reči
binarne azbuke. Uobičajeno je da kodne reči budu iste dužine, što znači da najpre treba
odrediti potrebnu dužinu kodne reči. Poznato je da se od 2 simbola binarne azbuke može
napraviti maksimalno 2n reči dužine n. Ako nam je poznat broj reči koje treba napraviti (k),
dužinu ćemo odrediti po obrascu kn 2log . U našem slučaju, za k=7, n=3. Kako je broj
reči dužine 3 koje možemo napraviti od simbola binarne azbuke 8, ostaje još da odlučimo
koja će reč ostati neiskorišćena i kako ćemo izvršiti preslikavanje polaznog skupa (skupa
dana u nedelji) u skup tih kodnih reči. Jedno moguće rešenje je dato u tabeli 4.1. Ovako
kreirana tabela koja pokazuje preslikavanje polaznih reči u odgovarajuće kodne reči naziva
se kodnom tablicom.
U V O D U R A Č U N A R S T V O
38
Tabela 4.1 Primer kodiranja dana u nedelji binarnom azbukom
Dan u nedelji Kodna reč
Ponedeljak 000
Utorak 001
Sreda 010
Četvrtak 011
Petak 100
Subota 101
Nedelja 110
Definicija 4.2. Binarno-kodirani dekadni brojni sistem je pozicioni brojni sistem sa
osnovom 10 u kojem se svaka dekadna cifra kodira binarnom azbukom (odnosno zamenjuje
se binarnim rečima).
Minimalna dužina kodnih reči kojima se mogu predstaviti sve dekadne cifre je
410log2 n pa su kod većine BCD kodova kodne reči dužine 4. Kako broj kodnih reči
dužine 4 iznosi 16, a 10 je dekadnih cifara, ostaje problem koje kodne reči treba da ostanu
neiskorišćene i kako izabrati kodnu reč u koju će se odredjena dekadna cifra preslikati.
Jedno od rešenja je da se svakoj poziciji u kodnoj reči dodeli neka težina te da se
vrednost dekadne cifre koja se kodira dobija po formuli:
n
iiitcd
1
gde je:
n - dužina kodne reči,
ci - binarna cifra na poziciji i u kodnoj reči,
ti - težina pridružena poziciji i u kodnoj reči.
Ovako kreirani BCD kodovi se nazivaju težinski kodovi (jer svaka pozicija u kodnoj
reči ima svoju težinu).
Postoji više različitih težinskih BCD kodova od kojih je najkorišćeniji kod sa težinama
"8421" koji se naziva još i prirodni BCD kod. Smatra se prirodnim jer su težine stepeni
dvojke, pa odgovaraju težinama na prve 4 pozicije ispred decimalne tačke u binarnom
brojnom sistemu. Kodne tablice nekih pozicionih BCD kodova prikazane su u tabeli 4.2.
Primer 4.13 Predstaviti broj 27.625 u prirodnom BCD kodu.
Svaku cifru u zapisu broja zamenjujemo odgovarajućom kodnom rečju iz tabele 4.1 i
dobijamo broj:
0010 0111. 0110 0010 0101
Obratiti pažnju da u ovom slučaju svaka cifra mora biti predstavljena sa tačno 4 binarne
cifre te da se prve dve nule ne mogu smatrati "nevažećim", tj. ne mogu se izostaviti iz
zapisa broja.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
39
Tabela 4.2 Kodne tablice nekih težinskih BCD kodova
Dekadna cifra 8421
2421
(Ajkenov kod) 5421 5211 4221 3321
0 0000 0000 0000 0000 0000 0000
1 0001 0001 0001 0001 0001 0001
2 0010 0010 0010 0010 0010 0010
3 0011 0011 0011 0011 0011 0011
4 0100 0100 0100 0111 1000 0101
5 0101 1011 1000 1000 0111 1010
6 0110 1100 1001 1001 1100 1100
7 0111 1101 1010 1011 1101 1101
8 1000 1110 1011 1101 1110 1110
9 1001 1111 1100 1111 1111 1111
Osim težinskih, često su u upotrebi i kodovi sa nekim karakterističnim osobinama koje
su pogodne za specijalne primene.
Tabela 4.3 Kodne tablice nekih BCD kodova sa specijalnim osobinama
Dekadna cifra Grejov kod
Hafmenov kod
AB8C421 "višak 3"
0 0000 0000000 0011
1 0001 1101001 0100
2 0011 0101010 0101
3 0010 1000011 0110
4 0110 1001100 0111
5 0111 0100101 1000
6 0101 1100110 1001
7 0100 0001111 1010
8 1100 1110000 1011
9 1101 0011001 1100
Na primer, Grejov kod je karakterističan po tome da se kodne reči za dve susedne
dekadne cifre uvek razlikuju samo na jednoj poziciji. Kodna tablica Grejovog koda data je
u tabeli 4.3. Zbog navedene osobine, Grejov kod se koristi u A/D i D/A konvertorima jer se
očekuje da će vrednost analognog signala u 2 susedna trenutka odmeravanja razlikovati
maksimalno za 1 kvant pa će pri generisanju 2 susedne kodne reči biti potrebno promeniti
maksimalno 1 bit. O A/D konverziji biće više reči u poglavlju 4.3.
U V O D U R A Č U N A R S T V O
40
U grupu kodova specijalnih namena svakako treba pomenuti i Hafmenov kod. Ovaj kod
se može posmatrati proširenim prirodnim BCD kodom jer on osim cifara sa težinama 8421
sadrži i dodatne cifre za takozvanu kontrolu parnosti. Bit za kontrolu parnosti uzima
vrednost 1 ukoliko je ukupan broj jedinica na pozicijama koje kontroliše neparan, a
vrednost 0 ukoliko je ukupan broj jedinica na pozicijama paran. U Hafmenovom kodu
postoje čak tri bita za kontrolu parnosti, tako da je dužina kodne reči Hafmenovog koda 7.
Bitovi u Hafmenovom kodu se obeležavaju na sledeći način: AB8C421. Bitovi na
pozicijama 8421 odgovaraju prirodnom BCD kodu, dok cifra C "kontroliše parnost" na
pozicijama sa težinama 4, 2 i 1, cifra B vrši kontrolu parnosti na pozicijama sa težinama 8,
2 i 1, a cifra A je bit za kontrolu parnosti na pozicijama sa težinama 8, 4 i 1. Kodna tablica
Hafmenovog koda prikazana je, takodje, u tabeli 4.3.
Hafmenov kod se uglavnom koristi pri prenosu podataka. U tom slučaju se na prijemnoj
strani ponovo preračunavaju vrednosti bitova za kontrolu parnosti i porede sa primljenim
vrednostima. Ukoliko se pojavi odstupanje, znači da je došlo do greške. Ukoliko je greška
pri prenosu nastala na tačno jednom bitu, pomoću Hafmenovog koda grešku je moguće
detektovati i ispraviti. Ukoliko je greška nastala na 2 ili 3 bita, grešku je moguće samo
detektovati.
U grupu kodova sa specijalnim osobinama spadaju i komplementarni kodovi. Kod
komplementarnih kodova, komplementarnim dekadnim ciframa odgovaraju
komplementarne kodne reči.
Komplementarne dekadne cifre su one čiji je zbir jednak 9. To znači da su
komplementarne cifre 0 i 9, 1 i 8, 2 i 7, 3 i 6, kao i 4 i 5. U opštem slučaju, komplementarne
cifre u brojnom sistemu sa proizvoljnom osnovom su cifre koje se dopunjuju do najveće
cifre tog brojnog sistema.
Komplementarne kodne reči su one koje se mogu dobiti jedna od druge
komplementiranjem svake cifre ponaosob. Npr. kodne reči 0010 i 1101 su
komplementarne. Iz tabele 4.1 se vidi da i neki težinski kodovi imaju osobinu
komplementarnosti. Od navedenih u tabeli, komplementarni su kodovi "2421", "4221" i
"3321". Osim ovih, komplementaran je i kod "višak 3" koji je karakterističan po tome što je
kodna reč svake dekadne cifre jednaka kodnoj reči "8421" koda cifre koja je za 3 veća.
Dakle kod cifre 0, odgovaraće kodu cifre 3 u prirodnom BCD kodu, itd. Celokupna kodna
tablica koda "višak 3" prikazana je u tabeli 4.3.
Očigledno je da je prevođenje brojeva korišćenjem BCD kodova znatno olakšano, ali je
izvođenje računskih operacija u BCD kodovima znatno složenije. S obzirom da je prirodni
BCD kod najlakši za razumevanje pokazaćemo kako se izvodi operacija sabiranja u ovom
kodu.
Sabiranje brojeva u prirodnom BCD kodu:
Ukoliko brojeve predstavljenje BCD kodom saberemo korišćenjem obične binarne
aritmetike, u rezultatu će se pojaviti tetrade koje ne odgovaraju dekadnim ciframa. Zato je u
takvim slučajevima potrebno izvršiti dodatne korekcije. Za sabiranje podataka u BCD kodu
koriste se 2 algoritma. Po jednom korekcija se vrši samo nakon sabiranja, a po drugom
izvesne korekcije se vrše pre, a neke posle sabiranja.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
41
Prvi algoritam se zasniva na dodavanju korekcionog niza "0110" nakon sabiranja i on se
sastoji iz sledećih koraka:
Korak 1. Sabrati brojeve korišćenjem pravila binarne aritmetike.
Korak 2. Dodati korekcioni niz 0110 u sledećim slučajevima:
1. ukoliko je vrednost tetrade veća od 9 (tj. od 1001), ili
2. ukoliko je bilo prenosa sa tekuće tetrade na narednu (prvu levu), ili
3. ukoliko je vrednost tetrade 9 (1001), a prethodna tetrada (prva desno) je
korigovana na osnovu pravila 1 ili 3.
Primer 4.14 Sabrati brojeve 275 i 328 u prirodnom BCD kodu.
Najpre kodiramo ove brojeve i vršimo sabiranje tretirajući ih kao brojeve u binarnom
brojnom sistemu.
110110010101
100000100011
010101110010
Vrednost tetrada na poziciji najmanje težine je veća od 9, pa je po pravilu 1 treba
korigovati. Vrednost druge tetrade je 9, a tetrada koja se nalazi desno od nje se koriguje, pa
po pravilu 3 i nju treba korigovati. Nakon ovih korekcija dobijamo rezultat:
001100000110
01100110
110110010101
Nakon dekodiranja ovog rezultata dobijamo broj 603 (603=275+328).
Drugi algoritam za sabiranje BCD brojeva (algoritam sa korekcijama i pre i posle
sabiranja) sadrži sledeće korake:
Korak 1. Svim tetradama prvog sabiraka dodati korekcioni niz 0110. (Prilikom ove
korekcije prenosa izneđu tetrada nema.)
Korak 2. Izvršiti sabiranje korišćenjem pravila binarne aritmetike.
Korak 3. Tetrade iz kojih nije bilo prenosa na sledeću tetradu korigovati dodavanjem
korekcionog niza 1010. Prilikom ovog sabiranja prenose na tetrade viših
težina ignorisati.
Primer 4.15 Sabrati brojeve 275 i 328 u prirodnom BCD kodu korišćenjem algoritma sa
korekcijom pre i posle sabiranja.
U V O D U R A Č U N A R S T V O
42
001100000110
1010:3
001100001100
100000100011 :2
101111011000
011001100110 :1
010101110010
Korak
Korak
Korak
4.2 Predstavljanje znakovnih podataka u računaru
U znakovne (alfanumeričke) podatke spadaju velika i mala slova, cifre, specijalni znaci,
kao i izvesni znaci koji služe za upravljanje radom ulazno-izlaznih uređaja, za formatiranje
podataka i sl. Osnovna namena znakovnih podataka je da omoguće da se u računaru
predstavi i obrađuje tekst. Pošto je tekst jedini zapis koji čovek može da razume (čita ili
piše), čovek obično, i numeričke podatke saopštava računaru kao tekst koji se zatim
transformiše u neki od formata za predstavljanje numeričkih podataka i nakon završene
obrade, rezultati se ponovo transformišu u tekstualni zapis i tako prikazuju korisniku.
Za predstavljanje znakovnih podataka u računaru koriste se različiti binarni kodovi od
kojih su najpoznatiji:
ASCII (American Standard Code for Information Interchange),
EBCDIC (Extended Binary Coded Decimal Interchange Code) i
UNICODE.
Osim načina predstavljanja, za svaku vrstu podataka se definiše i skup standardnih
operacija koje se izvode nad njima. Osnovne operacije koje se izvode nad znakovnim
podacima su: nadovezivanje, izdvajanje pojedinih delova (podstringova), poređenje...
4.2.1 ASCII kod
ASCII kod je usvojen od strane Međunarodne organizacije za standardizaciju
(Interational Standardization Organization) pod nazivom ISO 7. Ovo je 7-bitni kod, što
znači da kodna tablica sadrži 128 znakova. S obzirom da je najmanja memorijska jedinica
koja se adresira u računaru veličine 1 bajt, za predstavljanje ASCII kodova u računaru se
koristi ceo bajt, pri čemu se bit najmanje težine ili koristi za kontrolu parnosti, ili za
proširenje ASCII tabele dodatnim znacima karakterističnim za pojedine jezike. Kodna
tablica osnovnog ASCII koda prikazana je u tabeli 4.4.
Do nedavno je ASCII kod bio najkorišćeniji kod u računarstvu. Međutim, njegov
osnovni nedostatak je bio nemogućnost da podrži različite svetske jezike. Za jezike čije se
pismo nije znatno razlikovalo od engleskog, uvođene su modifikacije ASCII tabele tako da
su pojedini specijalni znaci zamenjivani karakterističnim slovima samo za tu azbuku. Na
primer, standardom JUS I.B1.002 definisana je verzija ASCII tabele za naše latinično
pismo. Izmene koje ovaj standard uvodi u ASCII tabelu prikazane su u tabeli 4.5.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
43
Tabela 4.4 ASCII tabela
Binarni kod
Hexa kod
Kara-kter
Binarni kod
Hexa kod
Kara-kter
Binarni kod
Hexa kod
Kara-kter
Binarni kod
Hexa kod
Kara-kter
0000000 00 NUL 0100000 20 SP 1000000 40 @ 1100000 60 `
0000001 01 SOH 0100001 21 ! 1000001 41 A 1100001 61 a
0000010 02 STX 0100010 22 " 1000010 42 B 1100010 62 b
0000011 03 ETX 0100011 23 # 1000011 43 C 1100011 63 c
0000100 04 EOT 0100100 24 $ 1000100 44 D 1100100 64 d
0000101 05 ENQ 0100101 25 % 1000101 45 E 1100101 65 e
0000110 06 ACK 0100110 26 & 1000110 46 F 1100110 66 f
0000111 07 BEL 0100111 27 ' 1000111 47 G 1100111 67 g
0001000 08 BS 0101000 28 ( 1001000 48 H 1101000 68 h
0001001 09 HT 0101001 29 ) 1001001 49 I 1101001 69 i
0001010 0A LF 0101010 2A * 1001010 4A J 1101010 6A j
0001011 0B VT 0101011 2B + 1001011 4B K 1101011 6B k
0001100 0C FF 0101100 2C , 1001100 4C L 1101100 6C l
0001101 0D CR 0101101 2D - 1001101 4D M 1101101 6D m
0001110 0E SO 0101110 2E . 1001110 4E N 1101110 6E n
0001111 0F SI 0101111 2F / 1001111 4F O 1101111 6F o
0010000 10 DLE 0110000 30 0 1010000 50 P 1110000 70 p
0010001 11 DC1 0110001 31 1 1010001 51 Q 1110001 71 q
0010010 12 DC2 0110010 32 2 1010010 52 R 1110010 72 r
0010011 13 DC2 0110011 33 3 1010011 53 S 1110011 73 s
0010100 14 DC4 0110100 34 4 1010100 54 T 1110100 74 t
0010101 15 NAK 0110101 35 5 1010101 55 U 1110101 75 u
0010110 16 SYN 0110110 36 6 1010110 56 V 1110110 76 v
0010111 17 ETB 0110111 37 7 1010111 57 W 1110111 77 w
0011000 18 CAN 0111000 38 8 1011000 58 X 1111000 78 x
0011001 19 EM 0111001 39 9 1011001 59 Y 1111001 79 y
0011010 1A SUB 0111010 3A : 1011010 5A Z 1111010 7A z
0011011 1B ESC 0111011 3B ; 1011011 5B [ 1111011 7B {
0011100 1C FS 0111100 3C < 1011100 5C \ 1111100 7C |
0011101 1D GS 0111101 3D = 1011101 5D ] 1111101 7D }
0011110 1E RS 0111110 3E > 1011110 5E ^ 1111110 7E ~
0011111 1F US 0111111 3F ? 1011111 5F _ 1111111 7F DEL
Tabela 4.5 Razlika između osnovne ASCII tabele i verzije po standardu JUS I.B1.002
Binarni kod Heksadekadni kod Karakter primarne ASCII tabele
Karakter iz tabele poJUS I.B1.002 standardu
1000000 40 @ Ž
1011011 5B [ Š
1011100 5C \ Đ
1011101 5D ] Ć
1011110 5E ^ Č
1100000 60 ` Ž
1111011 7B { Š
1111100 7C | Đ
1111101 7D } Ć
1111110 7E ~ Č
U V O D U R A Č U N A R S T V O
44
Očigledan nedostatak ovakvih izmena osnovne ASCII tabele je da kada se koristi srpsko
pismo ne mogu se upotrebljavati svi specijalni znaci. Zato danas sve popularniji postaje
UNICODE.
4.2.2 EBCDIC kod
EBCIDIC kod je 8-bitni kod koji je razvila firma IBM, jedna od vodećih firmi u
proizvodnji računara i danas se koristi uglavnom u IBM-ovim operativnim sistemima za
mainframe i super računare. Nastao je kao proširenje 6-bitnog dekadnog koda BCDIC.
4.2.3 UNICODE
UNICODE je nastao iz težnje da se omogući da se u jedinstvenoj tabeli nađu kodovi za
simbole iz svih svetskih jezika te da je pomoću njega moguće bez problema kreirati
višejezične dokumente. Prva standardizovana verzija ovog koda je UCS-2 (2-byte
Universal Character Set) u kojoj su kodne reči dužine 2 bajta. To znači da kodna tablica
sadrži 65536216 kodnih reči (tj. karaktera). Kodne reči su u opsegu 0000-FFFF
(heksadekadno). Prvih 27 kodnih reči iz ovog prostora odgovara istim karakterima kao i u
ASCII tabeli. Ono što je loše kod ovog standarda je da se za smeštanje znakovnih podataka
troši previše memorijskog prostora (za svaki karakter 2 bajta), a realno, u velikom broju
slučajeva koriste se samo karakteri sa početka tabele (karakteri koji postoje u ASCII tabeli
ili u proširenoj ASCII tabeli). Zato su uvedeni i algoritmi za preslikavanje kodova u nizove
bitova promenljive dužine. Ovi algoritmi su poznati kao UTF (Unicode Transformation
Format). Dužina finalnog koda (nakon transformacije) je celobrojni umnožak dužine
osnovne kodne jedinice pa ovi algoritmi u svojoj oznaci nose i dužinu osnovne kodne
jedinice. Danas je najkorišćeniji UTF-8 algoritam (8-bit Unicode Transformation Format),
a razvijeni su i standardi UTF-16 i UTF-32.
UTF-8 algoritam preslikava kodne reči UCS-2 tabele u niske dužine 1, 2 ili 3 osnovne
kodne jedinice (tj. u niske dužine 1, 2 ili 3 bajta). Sve kodne reči koje u sebi imaju do 7
značajnih cifara preslikavaju se u nizove dužine 1B. Kodne reči koje imaju između 8 i 11
značajnih cifara u svom zapisu, preslikavaju se u kodne reči dužine 2B. Kodne reči koje u
svom zapisu imaju više od 11 značajnih cifara preslikavaju se u niske dužine 3B. Tablica
preslikavanja UCS-2 kodnih reči po UTF-8 algoritmu prikazana je u tabeli 4.6.
S obzirom da se i prostor od 216
smatra malim u budućnosti za kodiranje znakova svih
svetskih jezika razvijen je i standard UCS-4 u kojem je dužina dužina kodne reči 4 bajta (32
bita). Po ovom standardu bi se svi kodovi delili u kodne strane. Prvih 16 bitova u kodu
predstavljalo bi oznaku kodne strane, a preostalih 16 kod odgovarajućeg znaka u okviru te
kodne strane. Za sada je definisana samo prva kodna strana i u njoj su smešteni karakteri
koji postoje u standardu UCS-2. Preslikavanjem kodnih reči iz UCS-4 tabele po UTF-8
algoritmu dobile bi se kodne reči dužine od 1 do čak 6 bajtova. Standard UCS-4 još uvek
nije doživeo praktičnu primenu.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
45
Tabela 4.6 Preslikavanje UCS-2 kodnih reči u UTF-8 format
UCS-2 opseg (heksadekadno) UTF-8 binarni zapis
0000-007F 0xxxxxxx
0080-07FF 110xxxxx 10xxxxxx
0800-FFFF 1110xxxx 10xxxxxx 10xxxxxx
4.3 Predstavljanje zvuka u računaru
Obrada zvuka na računaru se poslednjih godina primenjuje u različitim oblastima kao
što su:
1. Muzička produkcija (za snimanje CD-ova, dodavanje zvučnih efekata...),
2. Video produkcija (za dodavanje zvučnih efekata i prateće muzike video
zapisima...),
3. Web (za dodavanje zvučnih efekata na Web stranama, slušanje muzičkih CD-
ova preko Web-a, Web-radio...),
4. Digitalni radio,
5. Sinteza i prepoznavanje govora...
Zvuk je po svojoj prirodi mehanički talas, koji se odgovarajućim uređajima za prijem
(mikrofonima) pretvara u elektromagnetni talas (analogni signal) čija je osnovna osobina
kontinualnost. To znači, da bi se on predstavio u računaru, on mora da se pretvori u
takozvani digitalni (diskretan) oblik, odnosno, u niz nula i jedinica. Transformacija bilo kog
analognog signala u digitalan oblik se naziva diskretizacijom signala. U digitalnim
sistemima kontinualni signal se predstavlja skupom svojih vrednosti u konačnom broju
tačaka. To znači da je prvi korak u diskretizaciji signala, očitavanje vrednosti signala u
konačnom broju vremenskih trenutaka. Ovaj postupak se naziva odmeravanjem ili
uzorkovanjem ili kvantovanjem vremenske ose. Na slici 4.7 (a) prikazan je originalni
analogni signal, a na slici 4.7 (b) njegova aproksimacija nakon odmeravanja.
Vrednosti koje signal uzima, takođe, pripadaju kontinualnom skupu, što znači da ni
svaku tačku sa vrednosne ose ne možemo predstaviti u računaru. Zato se vrši i
diskretizacija vrednosne ose, odnosno kvantovanje vrednosne ose. Diskretizacija vrednosne
ose podrazumeva da se cela vrednosna osa deli na konačan broj nepreklapajućih intervala
(kvanata) i da se svakom takvom intervalu pridružuje jedinstveni binarni kod. Na koliko
kvanata će se vrednosna osa podeliti zavisi od toga sa koliko bitova ćemo kodirati vrednosti
signala. Uobičajeno je da se vrednosti audio signala kodiraju sa 16 bitova.
Na slici 4.7 (c) prikazano je kvantovanje vrednosne ose ukoliko se kodiranje
podintervala vrši sa 4 bita, tj. kada se interval vrednosne ose u kojem se nalaze sve
vrednosti signala podeli na 16 podintervala. Konačno, analogni signal sa slike 4.7 (a) će
pretvoriti u niz nula i jedinica kao što je prikazano u tabeli 4.7.
U V O D U R A Č U N A R S T V O
46
Slika 4.7 Analogni signal (a), rezultat njegovog odmeravanja (b) i rezultat kvantovanja
vremenske ose (c)
Tabela 4.7 Kodiranje vrednosti analognog signala
Trenutak t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Vrednost 0 3 6 6 4 1 -3 -7 -6 -2 1
4-bitni
kod 0000 0011 0110 0110 0100 0001 1101 1001 1010 1110 0001
Kvalitet audio signala će biti veći ukoliko je frekvenca odmeravanja veća. No, sa
porastom frekvence odmeravanja raste i veličina memorijskog prostora potrebnog za
čuvanje audio zapisa. Zbog toga su razvijene različite metode za kompresiju audio zapisa.
Neki od standarda za kompresiju audio materijala su:
1. MP3 – često korišćena kompresija na raznim multimedijalnim plejerima,
t t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
t t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
(a)
(b)
S(t)
S(t)
t t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
S(t)
0 1 2 3 4 5 6 7
-1 -2 -3 -4 -5 -6 -7 -8
(c)
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
47
2. AAC – najkorišćeniji za kompresiju audio zapisa koji ide uz video zapis,
3. Ogg Vorbis – koristi se u video igricama, na internet sajtovima i u internet
radio stanicama.
4.4 Predstavljanje slika u računaru
Za predstavljanje slika u računarskim sistemima koriste se 2 metode:
vektorska grafika,
rasterska grafika.
Kod vektorske grafike, slika se predstavlja kao skup elementarnih geometrijskih oblika
koje se nazivaju još i geometrijske primitive. U geometrijske primitive spadaju:
polilinije (prave linije, Bezierove krive,...) i
polimarkeri (pravougaonici, krugovi, elipse...).
Za svaku geometrijsku primitivu sa slike se pamti njen oblik (matematički model),
položaj, boja, vrsta linije kojom je iscrtana, debljina linije... S obzirom da je svaka
geometrijska primitiva definisana svojim matematičkim modelom, veoma je jednostavno
vršiti njihove transformacije (pomeranje, rotiranje, skaliranje...). Vektorska grafika se
isključivo koristi za predstavljanje slika koje su kreirane u samom računaru, korišćenjem
nekog od alata za kreiranje i obradu slika, pa se zbog toga često kaže da vektorska grafika
služi za predstavljanje crteža. Najpopularniji alati za obradu slika koji koriste vektorsku
grafiku za zapis slike su:
CorelDraw (koristi CDR format),
Adobe Illustrator (AI format),
različiti alati za tehničko crtanje (CAD alati) među kojima je najpopularniji
AutoCAD (koji koristi DXF format)...
Kod rasterske grafike slika se pamti kao matrica tačaka (piksela) i obično se za svaki
piksel na slici pamti njegova boja i intenzitet osvetljenja. Broj piksela po jedinici površine
se naziva rezolucijom slike u rasterskoj grafici. Rasterska grafika se može koristiti i za
predstavljanje slika kreiranih u samom računaru (npr. pomoću alata Adobe Phooto Shop,
Paint i sl.), tako i slike preuzete sa različitih digitalnih uređaja: fotoaparata, skenera...).
Zavisno od toga koje boje koristimo na slici razlikujemo:
crno-bele slike,
slike u nijansame sive boje i
slike u boji.
Kod crno-belih slika se koriste samo 2 boje pa je za predstavljanje svakog piskela na
slici dovoljan 1 bit.
Ono što se u žargonu naziva "crno-belom" slikom je, u stvari, slika u nijansama sive
boje. Obično se koristi 256 nijansi sive, tako da se za predstavljanje svakog piksela na
slikama ove vrste koristi po 1 bajt.
U V O D U R A Č U N A R S T V O
48
Slike u boji zahtevaju najviše memorijskog prostora jer se u digitalnim uređajima boje,
uglavnom, predstavljaju navođenjem intenziteta za 3 osnovne boje: crvenu, zelenu i plavu
(ili engleski: red, green i blue, pa se zbog toga ovaj format naziva još i RGB format). Jedan
od načina za predstavljanje slika u boji je da se za svaki piksel na slici navedu intenziteti
sve 3 komponente i da se za svaki od njih iskoristi po 1 bajt. U toj notaciji boje bi bile
predstavljene na sledeći način:
crvena (255, 0, 0),
zelena (0, 255, 0),
plava (0, 0, 255),
crna (0, 0, 0),
bela (255, 255, 255).
Ovaj način predstavljanja slike se koristi u BMP (Bitmap) formatu. Ovakvo
predstavljanje daje najbolji kvalitet slike, ali je veličina memorijskog prostora za pamćenje
slike izuzetno veliki.
Najgrublji način da se smanji memorijski prostor potreban za pamćenje slike je da se
smanji rezolucija (tj. broj tačaka po jedinici površine), čime se drastično smanjuje kvalitet
slike. Na slici 4.8. prikazana je ista slika predstavljena sa rezolucijom 256x256 piksela (a),
64x64 (b) i 8x8 (c).
(a) (b) (c)
Slika 4.8 Slika "Lena" predstavljena sa različitim rezolucijama
Sledeća metoda za sažimanje veličine memorijskog prostora potrebnog za pamćenje
slike je da se na jednom mestu zapamte definicije svih boja koje se na slici koriste. To se
obično naziva paletom boja. Tada se u matrici piksela ne pamte intenziteti sve 3
komponente boje, već pozicija (indeks) boje u paleti. Neki formati (poput GIF ili PCX
formata) uvode i ograničenje veličine palete na 256 različitih boja tako da je za
predstavljanje boje piskela dovoljan 1 bajt.
I pored uvođenja paleta, pamćenje podataka o svakom piskelu traži previše
memorijskog prostora pa su zbog toga širu primenu našli formati za predstavljanje slika
koji vrše i izvesnu kompresiju. Zavisno toga da li koriste kompresiju ili ne i koju vrstu
kompresije koriste sve formate delimo na:
formate bez kompresije (npr. BMP),
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
49
formate sa kompresijom bez gubitaka (npr. GIF),
formate sa kompresijom sa gubicima (npr. JPG).
GIF format vrši kompresiju samo u okviru iste vrste. Umesto da se za svaki piksel u
vrsti zapamti indeks boje kojom je obojen, pamte se parovi (indeks boje, broj uzastopnih
piksela u vrsti koji su obojeni tom bojom). S obzirom na to da je i paleta ograničena na 256
boja, GIF fajlovi su veoma kratki tako da se GIF format uglavnom koristi za transport kroz
mrežu, tj. slike koje se nalaze na Web stranama su obično u GIF formatu. Razlog zašto se
GIF format koristi na Internetu je i taj što GIF format podržava transparentost boja (pa slike
mogu da posluže i kao pozadina) i što u GIF fajlu može da se zapamti i veći broj slika (tako
da se pomoću GIF formata mogu da predstave i kratke animacije).
JPG format je najšire korišćen format za predstavljanje slika. Osnovna mu je namena za
predstavljanje velikih slika sa velikim brojem različitih boja u sebi. Broj boja na slici u JPG
formatu može da bude i svih 624 107,162 boja. JPG format vrši kompresiju tako što se
slika razlaže na matrice piksela veličine 8x8 koje se kompresuju po veoma složenom
algoritmu. U JPG formatu korisnik sam može da se definiše stepen kompresije (tako da on
sam pravi balans između kvaliteta slike i veličine memorijskog prostora koji će biti
korišćen za njeno pamćenje). Na slici 4.9 prikazana je ista slika u BMP formatu, JPG
formatu sa srednjim stepenom kompresije i JPG formatu sa maksimalnim stepenom
kompresije. Očigledno je da korišćenjem algoritama za kompresiju mnogo manje gubi na
kvalitetu nego kada se grubo smanjuje njena rezolucija.
(a) (b) (c)
Slika 4.9 Slika "Lena" u JPG formatu bez kompresije, sa srednjim stepenom kompresije i
sa maksimalnim stepenom kompresije
4.5 Predstavljanje video zapisa u računaru
Video zapis, u stvari, predstavlja veliki broja slika koje se pri emitovanju smenjuju
određenom brzinom i time se stvara utisak kontinualne scene. Za predstavljanje jedne slike
u visokoj rezoluciji potrebno je i do 1MB memorijskog prostora. Ako jedna sekunda video
materijala sadrži 25 slika, onda će nam za film od 90 minuta trebati oko 135GB
memorijskog prostora. Zbog velikog memorijskog prostora koji zauzimaju nekompresovani
video podaci njihova kompresija igra važnu ulogu u manipulaciji video podacima.
U V O D U R A Č U N A R S T V O
50
Programi za kompresiju video podataka se popularno zovu kodeci. Oni u sebi sadrže
koder koji vrši kompresiju video zapisa u veoma specifičan format, koji može biti
reprodukovan samo korišćenjem dekodera koji odgovara koderu. Kompresija kod video
zapisa se postiže redukcijom statičnih delova scene. Na primer, kod video zapisa koji sadrži
neku informativnu emisiju, delovi scene koji se pomeraju su voditeljeva usta i glava, dok je
ostatak scene statičan. Nema svrhe memorisati više puta isti deo scene, dovoljno je
memorisati jednom deo scene koji se ne menja i potom ga koristiti više puta, dok se za deo
scene koji se menja memorišu sve promene. Na ovaj način se drastično smanjuje
memorijski prostor potrebam za predstavljanje video zapisa. Na slici 4.10 prikazana su 2
susedna frejma (slike) u jednom video zapisu i razlika između njih. Očigledno je da razlika
između frejmova sadrži velike površine obojene istom bojom pa je zgodna za kompresiju.
Ovo je samo jedna od tehnika koje se koriste u kompresiji video zapisa. U praksi,
kompresija video podataka je mnogo kompleksnija.
1. Frejm 2. Frejm Razlika između frejmova
Slika 4.10 Dva susedna kadra u jednom video zapisu i razlika između njih
Organizacija koja se bavi standardizacijom metoda za kompresiju video zapisa je
MPEG (eng. Motion Picture Experts Group). Ova grupa je do sada objavila više standarda
za predstavljanje video podataka:
1) MPEG-1: Standard za audio i video kompresiju. Namenjen za CD-ROM video
aplikacije, ali je stekao popularnost na Internetu gde se video podaci prenose u
formi .mpg fajlova. Nivo 3 ovog standarda je već pomenuti MP3 standard za
kompresiju audio zapisa.
2) MPEG-2: Standard za digitalnu televiziju i DVD.
3) MPEG-4: Standard za multimediju i Web kompresiju. Glavna karakteristika
ovog standarda je da se kompresija ne vrši na nivou piksela, već na nivou
objekata koji se nalaze i pomeraju na slici.
4) MPEG-7: Standard u razvoju čiji je osnovni cilj da, za razliku od predhodnih
MPEG standarda koji opisuju sadržaje, on definiše informacije o sadržaju
(meta - sadržaj).
5) MPEG-21: Takođe, standard u razvoju - Multimedia Framework.
4 . P R E D S T A V L J A N J E P O D A T A K A U R A Č U N A R U
51
Pitanja i zadaci
1) Navesti formate za predstavljanje celih brojeva u računaru i u svakom od njih
predstaviti brojeve +5 i -5 u 32-bitnoj reči računara.
2) Objasniti kako izgleda nepotpuni komplement celih brojeva i predstaviti brojeve +362 i
-362 u nepotpunom komplementu u 32-bitnoj reči računara.
3) Objasniti kako se kreira potpuni komplement celih brojeva i predstaviti brojeve +1 i -1
u 32-bitnoj reči računara u ovom formatu.
4) Objasniti kako se celi brojevi predstavljaju u formatu sa pomerajem i predstaviti brojeve
+3 i -3 u 32-bitnoj reči računara u ovom formatu.
5) Objasniti postupak sabiranja brojeva predstavljenih u nepotpunom i potpunom
komplementu.
6) Predstaviti brojeve +9 i -5 u nepotpunom komplementu i izvršiti njihovo sabiranje.
7) Predstaviti brojeve +9 i -5 u potpunom komplementu i izvršiti njihovo sabiranje.
8) Navesti formate za predstavljanje realnih brojeva u računaru i u svakom od njih
predstaviti broj 15.625.
9) Objasniti predstavljanje realnih brojeva u formatu sa pokretnim zarezom i predstaviti
broj 0.25 u ovom formatu.
10) Predstaviti broj 22 u binarnom brojnom sistemu i u prirodnom BCD kodu.
11) Kodirati imena meseci u godini binarnom azbukom. Voditi računa da dužina kodnih
reči bude minimalna.
12) Korišćenjem tabele 4.1 kodirati broj 27.625 težinskim kodovima "2421", "5421",
"5211", "4221" i "3321".
13) Kreirati kodnu tablicu težinskog komplementarnog koda „2421“ i korišćenjem kreirane
tabele kodirati broj 75. (Kodne reči ovog koda za cifre 0-4 identične su kodnim rečima
ovih cifara u prirodnom BCD kodu).
14) Kreirati kodnu tablicu Hafmenovog koda i predstaviti broj 75 u Hafmenovom kodu.
Napomena:Hafmenov kod proširuje prirodni BCD kod ciframa za kontrolu parnosti.
Pozicije u Hafmenovom kodu su AB8C421 pri čemu cifra A kontroliše pozicije 8, 4 i 1,
cifra B pozicije 8, 2 i 1, a cifra C pozicije 4, 2 i 1.
15) Objasniti kako se alfanumerički (tekstualni) podaci predstavljaju u računaru.
16) Ukratko objasniti razliku između ASCII i UNICODE kodova.
17) Objasniti postupak diskretizacije analognih signala.
18) Objasniti razliku između vektorske i rasterske grafike.
19) Kako se u računaru može predstaviti skenirana fotografija (korišćenjem vektorske ili
rasterske grafike)? Zašto?
20) Da li se slika predstavljenja u nekom formatu koji koristi vektorsku grafiku može
konvertovati u neki format koji koristi rastersku grafiku? Da li je obrnuta konverzija
moguća? Zašto?
7 . P R E K I D A Č K E M R E Ž E
53
5 PREKIDAČKA ALGEBRA
U prethodnom poglavlju je pokazano da se svi podaci u računaru predstavljaju pomoću
samo 2 vrednosti: 0 i 1. To znači da se sva obrada podataka u računaru svodi na izvođenje
određenih operacija nad skupom B={0,1}. Kako je u matematici poznato da skup podataka
sa operacijama koje su u njemu definisane čini neku algebarsku strukturu, algebarska
struktura koja predstavlja matematičku osnovu celokupne obrade podataka u računaru je
prekidačka algebra.
Za formalno definisanje prekidačke algebre potrebno je uvesti najpre pojam Bulove
algebre.
5.1 Bulova algebra
Bulova algebra je dobila ime po svom tvorcu
Džordžu Bulu (George Boole), engleskom
matematičaru iz 19. veka. U nastavku je data formalna
definiciju Bulove algebre.
Definicija 5. 1: Neka je u skupu ,,, cbaB
definisana unarna operacija ¯ i binarne operacije + i .
Algebarska struktura (B, ¯, +, ) predstavlja Bulovu
algebru ukoliko su operacije ¯, + i zatvorene u skupu
B i zadovoljavaju aksiome Bulove algebre.
Operacija je zatvorena u nekom skupu ukoliko za
svaki skup operanada koji pripada tom skupu, rezultat
operacije, takođe, pripada tom skupu. U konkretnom
slučaju to znači:
BaBaa
BbaBbBaba ,
BbaBbBaba ,
Slika 5.1 George Boole -
tvorac Bulove algebre
Slika 4.1 George Boole -
tvorac Bulove algebre
Slika 4.2
Slika 4.3
Slika 4.4 dfsdfs
Slika 4.5 Džorž Bul
Slika 4.6
Slika 4.7
U V O D U R A Č U N A R S T V O
54
Sve aksiome Bulove algebre se definišu kao jednakosti Bulovih izraza. Zato uvodimo i
pojam Bulovog izraza:
Definicija 5. 2: Bulov izraz se formira korišćenjem sledećih pravila:
1. Bulovi izrazi su konstante (0,1) i promenljive (a,b,c,x,y,z,...).
2. Ukoliko su 1E i 2E Bulovi izrazi, tada su i
21 EE , 21 EE , 1E i )( 1E
takođe Bulovi izrazi.
3. Bulov izraz se može kreirati samo primenom pravila 1. i 2. konačan broj
puta.
Primer 5.1 Neki primeri Bulovih izraza su: )( , , , , , ,0 zyxxyxyxyxxx
5.1.1 Aksiome Bulove algebre
(1) Operacije + i su asocijativne, tj:
,, BcBbBacba cbacba , cbacba
(2) Operacije + i su komutativne, tj:
, BbBaba abba , abba
(3) U skupu B postoje neutralni elementi za sabiranje (0) i množenje (1); tj:
Baa aaa 00 , aaa 11
(4) Za svaki element a iz skupa B, u skupu B postoji i njegov komplement a koji
zadovoljava sledeće osobine:
Baa Baa 1 aaaa , 0 aaaa
(5) Operacije + i su distributivne jedna u odnosu na drugu, tj:
,, BcBbBacba cabacba ,
cabacba
Osim ovih, operacije Bulove algebre zadovoljavaju još neka tvrđenja koja se mogu
dokazati na osnovu navedenih aksioma, pa se ta tvrđenja nazivaju teoremama Bulove
algebre.
7 . P R E K I D A Č K E M R E Ž E
55
5.1.2 Teoreme Bulove algebre
(1) Zakon involutivnosti (dvostruke negacije):
aaBaa
(2) Zakon idempotencije:
Baa aaa , aaa
(3) U skupu B postoje nulti elementi za sabiranje (1) i množenje (0); tj:
Baa 111 aa , 000 aa
(4) Zakon sažimanja:
, BbBaba ababa , ababa )(
(5) Zakon apsorpcije:
, BbBaba abaa , abaa
(6) De Morganovi zakoni:
, BbBaba baba , baba
Da bi se skratio postupak dokazivanja teorema Bulove algebre koristi se princip
dualnosti koji je dat u sledećim definicijama:
Definicija 5. 3: Ako se Bulovom izrazu izvrši uzajamna zamena operacija “+” i “·” i
konstanti 0 i 1, a simboli promenljivih i simbol negacije ostanu nepromenjeni, dobiće se
dualni Bulov izraz.
Definicija 5. 4: Princip dualnosti - Istinitostna vrednost dualnih Bulovih izraza je jednaka,
tj. ako je neki Bulov izraz istinit, istinit je i njemu dualan izraz.
Ukoliko se pažljivo pogledaju aksiome i teoreme Bulove algebre, uočava se da se one,
uglavnom, sastoje iz dva dela, dva dualna Bulova izraza. To znači da je pri dokazivanju
teorema Bulove algebre uvek dovoljno dokazati da je samo njihov prvi deo istinit, pa na
osnovu principa dualnosti možemo tvrditi da je i odgovarajući drugi deo istinit. Inače, kad
smo već dokazali istinitiost prvog dela bilo koje teoreme, istinitost drugog dela se može
dokazati istovetnim postupkom (korišćenjem dualnih izraza istih aksioma).
Dokazi teorema Bulove algebre:
(1) Zakon involutivnosti:
Pođimo od aksiome (4) po kojoj za svaki element skupa B i njegov komplement
važe jednakosti:
U V O D U R A Č U N A R S T V O
56
1 aa , 0aa
Ukoliko u navedenim jednakostima a zamenimo sa a dobićemo:
1 aa , 0aa
Primenom aksiome (2) dati izrazi se transformišu u
1 aa , 0aa
Poređenjem poslednjih i prvih navedenih izraza u dokazu zaključujemo da je
aa .
(2) Zakon idempotencije:
aa 1)( aa - Aksioma (3)
)()( aaaa - Aksioma (4)
aaa - Aksioma (5)
0a - Aksioma (4)
a - Aksioma (3)
(3) Postojanje nultih elemenata:
1a 1)1( a - Aksioma (3)
)()1( aaa - Aksioma (4)
aa 1 - Aksioma (5)
aa - Aksioma (3)
1 - Aksioma (4)
(4) Zakon sažimanja
abba )( bba - Aksioma (5)
1a - Aksioma (4)
= a - Aksioma (3)
(5) Zakon apsorpcije
aba baa 1 - Aksioma (3)
)1( ba - Aksioma (5)
1a - Teorema (3), već dokazana
= a - Aksioma (3)
(6) De Morganovi zakoni
Da bismo dokazali da je baba , po aksiomi (4), treba dokazati da je
1)( baba i da je 0)()( baba .
7 . P R E K I D A Č K E M R E Ž E
57
baba )( )()( bbaaba - Aksioma (5)
= )()( bbabaa - Aksioma (2)
= )1()1( ab - Aksioma (4)
= 11 - Teorema (3), već dokazana
= 1 - Teorema (2), već dokazana
baba )( babbaa - Aksioma (5)
= abbbaa - Aksioma (2)
= ab 00 - Aksioma (4)
= 00 - Teorema (3), već dokazana
= 0 - Teorema (2), već dokazana
5.2 Prekidačka algebra
Definicija 5. 5: Bulova algebra nad skupom od samo dva elementa (B={0,1}) u kojoj su
operacije +, , i ¯ definisane tablicama prikazanim u tabelama 5.1, 5.2 i 5.3, respektivno,
predstavlja prekidačku algebru.
Tabela 5. 1. Definicija operatora +
+ 0 1
0 0 1
1 1 1
Tabela 5. 2. Definicija operatora
0 1
0 0 0
1 0 1
Tabela 5. 3. Definicija operatora ¯
¯
0 1
1 0
Operacija + prekidačke algebre je poznata još i pod nazivom LOGIČKO ILI, operacija
kao LOGIČKO I, a operacija ¯ kao LOGIČKO NE.
U V O D U R A Č U N A R S T V O
58
Pitanja i zadaci
1) Korišćenjem aksioma i već dokazanih teorema Bulove algebre, dokazati druge delove
teorema (2)-(6).
2) Proveriti da li operacije ILI, I i NE zadovoljavaju aksiome Bulove algebre.
3) Navesti De Morganova pravila i primenom ovih pravila transformisati izraz yzxyzx
tako da u izrazu ne postoji komplement ni jednog složenog izraza (sume ili proizvoda).
4) Kako se formira dualan Bulov izraz? Napisati dualan izraz izraza: yzxyx
6 . P R E K I D A Č K E F U N K C I J E
59
6 PREKIDAČKE FUNKCIJE
Rad svakog digitalnog uređaja, pa samim tim i svakog dela računarskog sistema, se
može opisati pomoću sistema prekidačkih funkcija. U ovom poglavlju ćemo, najpre, dati
definiciju prekidačkih funkcija, a zatim ćemo se upoznati sa načinima njihovog
predstavljanja.
Definicija 6. 1: Prekidačka funkcija n-promenljivih ),...,,( 21 nxxxf se definiše kao
preslikavanje
}1,0{}1,0{: nf
Uređene n-torke (k1,k2,…,kn) gde k1,k2,…,kn uzimaju vrednosti iz skupa {0,1} se
nazivaju vekrotima prostora {0,1}n, ili ulaznim vektorima funkcije f. Ulazni vektori se
kraće zapisuju kao k1k2…kn.
Primer 6.1 Neki ulazni vektori funkcije ),,,,( 54321 xxxxxf su:
(0,0,1,0,1) ili 00101,
(1,0,0,1,1) ili 10011,
(1,1,1,1,1) ili 11111, itd.
S obzirom da svaka ulazna promenljiva prekidačke funkcije ima dve moguće vrednosti,
ukupan broj ulaznih vektora prekidačke funkcije n-promenljivih je 2n.
Primer 6.2 Ulazni vektori prekidačke funkcije 3 promenljive ),,( 321 xxxf su: 000, 001,
010, 011, 100, 101, 110 i 111.
Definicija 6. 2: Prekidačka funkcija koja ima definisanu vrednost na svkom ulaznom
vektoru se naziva potpuno definisana prekidačka funkcija.
Definicija 6. 3: Prekidačka funkcija koja nema definisanu vrednost za sve ulazne vektore
se naziva nepotpuno definisana prekidačka funkcija.
Vrednost funkcije se ne definiše na pojedinim ulaznim vektorima onda kada ne postoji
realna situacija u kojoj bi se takav vektor pojavio na ulazu. Na primer, funkcije koje opisuju
rad konvertora BCD kodova nisu definisane na svim ulaznim vektorima, jer svi ulazni
vektori nisu kodovi dekadnih cifara.
U V O D U R A Č U N A R S T V O
60
Kada funkcija nije definisana na nekom ulaznom vektoru, njena vrednost na tom
vektoru se obeležava zvezdicom. Uvođenje zvezdice u skup mogućih vrednosti funkcije će
omogućiti da se napravi optimalna mreža za realizaciju nepotpuno definisane prekidačke
funkcije o čemu će detaljnije biti reči u poglavlju 7.
6.1 Načini predstavljanja prekidačkih funkcija
Pošto je domen prekidačke funkcije ograničen (rečeno je već da je ukupan broj ulaznih
vektora prekidačke funkcije n-promenljivih 2n), zadavanje prekidačke funkcije može da se
izvrši tako što se navede vrednost funkcije za svaki mogući ulazni vektor. U takve metode
predstavljanja prekidačkih funkcija spadaju:
predstavljanje prekidačkih funkcija tablicom istinitosti,
predstavljanje prekidačkih funkcija vektorom istinitosti,
predstavljanje prekidačkih funkcija skupovima decimalnih indeksa,
predstavljanje prekidačkih funkcija decimalnim indeksom funkcije.
Druge grupe metoda za predstavljanje prekidačkih funkcija koje će u okviru ovog
udžbenika biti razmatrane su predstavljanje prekidačkih funkcija pomoću analitičkih formi
(tj. korišćenjem Bulovih izraza).
6.1.1 Predstavljanje prekidačkih funkcija tablicom istinitosti
Tablica istinitosti prekidačke funkcije n-promenljivih je tabela koja ima 2n vrsta i 2
kolone. U prvoj koloni se navode ulazni vektori funkcije, a u drugoj vrednosti funkcije za
odgovarajuće ulazne vektore.
Primer 6.3 U tabeli 6.1 prikazana je tablica istinitosti jedne potpuno definisane prekidačke
funkcije 3 promenljive.
Tabela 6.1 Tablica istinitosti potpuno definisane prekidačke funkcije
321 xxx ),,( 321 xxxf
000 0
001 1
010 1
011 0
100 1
101 1
110 0
111 0
6 . P R E K I D A Č K E F U N K C I J E
61
Primer 6.4 Tabela 6. 2 sadrži tablicu istinitosti jedne nepotpuno definisane prekidačke
funkcije 3 promenljive.
Tabela 6.2 Tablica istinitosti nepotpuno definisane prekidačke funkcije
321 xxx ),,( 321 xxxf
000 0
001 1
010 1
011 *
100 0
101 1
110 *
111 *
6.1.2 Predstavljanje prekidačkih funkcija vektorom istinitosti
Iz tabela 6.1 i 6.2 se vidi da se u tablici istinitosti ulazni vektori uvek ređaju po
leksikografskom uređenju od najmanjeg prema najvećem. To znači da je prva kolona za sve
funkcije sa istim brojem ulaznih promenljivih u tablici istinitosti uvek ista pa je za
jednoznačno određenje funkcije dovoljno pamtiti samo drugu kolonu, tj. samo kolonu sa
vrednostima funkcije. Vektor vrednosti funkcije u kojem je zadržan navedeni redosled
navođenja članova je poznat kao vektor istinitosti funkcije.
Primer 6.5 Prekidačka funkcija iz primera 6. 3 se može predstaviti vektorom istinitosti:
T01101100F .
Primer 6.6 Prekidačka funkcija iz primera 6. 4 se može predstaviti vektorim istinitosti:
T**01*011F .
6.1.3 Predstavljanje prekidačkih funkcija skupovima decimalnih indeksa
Svaki ulazni vektor prekidačke funkcije možemo posmatrati kao jedan binarni broj. Ako
taj broj prevedemo u dekadni brojni sistem dobijamo decimalni indeks ulaznog vektora.
Decimalni ideks ulaznog vektora se izračunava po formuli:
n
i
inikd
0
2 ,
gde je ik vrednost promenljive sa rednim brojem i u ulaznom vektoru.
U V O D U R A Č U N A R S T V O
62
Decimalni indeks ulaznog vektora funkcje n-promenljivih uzima vrednosti iz intervala
]12,0[ n.
Primer 6.7 U tabeli 6. 3 je prikazana proširena tablica istinitosti prekidačke funkcije iz
primera 6. 3. Prva kolona u tabeli (obeležena sa d) predstavlja decimalni indeks
odgovarajućeg ulaznog vektora.
Tabela 6.3 Proširena tablica istinitosti prekidačke funkcije
d 321 xxx ),,( 321 xxxf
0 000 0
1 001 1
2 010 1
3 011 0
4 100 1
5 101 1
6 110 0
7 111 0
Za potpuno definisanu funkciju n-promenljivh možemo definisati 2 skupa decimalnih
indeksa:
skup decimalnih indeksa ulaznih vektora na kojima funkcija ima vrednost 0 (koji
se obeležava sa )0(f i
skup decimalnih indeksa ulaznih vektora na kojima funkcija ima vrednost 1 (koji
se obeležava sa )1(f .
Primer 6.6 Skupovi decimalnih indeksa za funkciju iz primera 6.3 (prikazanu u tabeli 6.1)
su:
7,6,3,0)0( f i
5,4,2,1)1( f .
Potpuno defininisana prekidačka funkcija je jednoznačno određena i kada je dat samo
jedan od navedenih skupova decimalnih indeksa, tj. dovoljno je navesti samo skup )0(f ili
samo skup )1(f jer je nff 1,0)1()0( .
Za nepotpuno definisane prekidačke funkcije uvodi se i treći skup decimalnih indeksa ((*)f ) koji sadrži decimalne indekse ulaznih vektora na kojima funkcija nije definisana.
Za definisanje nepotpuno definisane prekidačke funkcije dovoljno je navesti dva od tri
moguća skupa desimalnih indeksa jer je kod nepotpuno definisanih funkcija
nfff 1,0(*))1()0( .
6 . P R E K I D A Č K E F U N K C I J E
63
Primer 6.7 Proširena tablica istinitosti nepotpuno definisane funkcije iz primera 6. 4 data
je u tabeli 6. 4. Skupvi decimalnih indeksa ove funcije su:
4,0)0( f ,
5,2,1)1( f i
7,6,3(*) f .
Tabela 6.4 Proširena tablica istinitosti nepotpuno definisane prekidačke funkcije
d 321 xxx ),,( 321 xxxf
0 000 0
1 001 1
2 010 1
3 011 *
4 100 0
5 101 1
6 110 *
7 111 *
6.1.4 Predstavljanje prekidačkih funkcija decimalnim indeksom funkcije
Pošto je i sam vektor istinitosti prekidačke funkcije je jedan niz binarnih cifara, i njega
možemo tretirati kao binarni broj. Dekadni ekvivalent tog binarnog broja predstavlja
decimalni indeks funkcije. Ostaje samo problem kojim redosledom ćemo formirati taj
binarni broj (od prve vrste iz tablice istinitosti ka poslednjoj ili od poslednje ka prvoj).
Ukoliko se broj čita počev od prve vrste, prva pročitana cifra bi imala najveću težinu, a ona
odgovara ulaznom vektoru koji ima najmanji decimalni indeks (0). Zbog toga se pri
određivanju decimalnog indeksa funkcije prva vrednost iz tablice istinitosti uzima sa
najmanjom težinom (sa težinom 20). Dakle formula za izračunavanje decimalnog indeksa
funkcije je
12
0
2)(
n
i
if ifD ,
gde je i decimalni indeks ulaznog vektora.
Primer 6.8 Decimalni indeks funkcije iz primera 6. 3 (čija je proširena tablica istinitosti
data u tabeli 6. 3) je:
542020212120212120 76543210 fD .
U V O D U R A Č U N A R S T V O
64
NAPOMENA: Decimalnim indeksom mogu biti predstavljenje samo potpuno definisane
prekidačke funkcije.
6.2 Bulove operacije
U definiciji Bulove, pa samim tim i prekidačke algebre, navedene su 3 osnovne Bulove
operacije ¯, +, . Međutim, pod Bulovim operacijama u širem smislu se podrazumevaju sve
prekidačke funkcije jedne i dve promenljive. U tabeli 6.5 su navedene sve prekidačke
funkcije jedne promenljive, a u tabeli 6. 6 sve prekidačke funkcije 2 promenljive. U tabeli
6.6 je dodata i kolona sa naslovom Bulov izraz koja pokazuje kako se navedena operacija
može predstaviti pomoću osnovnih Bulovih operacija.
Bulove operacije se veoma jednostavno realizuju elektronskim komponentama koje se
nazivaju logička kola (o čemu će biti reči u poglavlju 7). Kombinacijom logičkih kola se
projektuju prekidačke mreže koje realizuju složenije prekidačke funkcije. To znači da se
složenije prekidačke funkcije mogu predstaviti pomoću Bulovih operacija. Skup Bulovih
operacija kojima se mogu predstaviti sve prikidačke funkcije predstavlja bazis prekidačke
algebre. Skup operacija {¯, +, } se naziva pripodni bazis prekidačke algebre. Za neki skup
operacija kažemo da je minimalni bazis prekidačke algebre ukoliko izostavljanjem bilo
koje operacije iz tog skupa, skup prestaje da bude bazis.
Tvrđenje: Skup {¯, +, } nije minimalni bazis prekidačke algebre jer skupovi {¯, } i {¯, +}
jesu bazisi prekidačke algebre i to minimalni bazisi prekidačke algebre.
Dokaz: Da bi se dokazalo da neki skup operacije jeste bazis prekidačke algebre dovoljno je
pokazati da se pomoću tih operacija mogu da realizuju sve operacije prirodnog bazisa.
Dakle, da bismo pokazali da je skup {¯, } bazis prekidačke algetre treba pokazati da se
pomoću ovog skupa operacija može da realizuje i operacija +.
yx = yx - Zakon dvostruke negacije
= yx - De Morganov zakon
Tvrđenje: Bazisi prekidačke algebre su i skupovi {¯,, }, {, }, {} i {}.
Dokaz:Pokazaćemo da skup koji sadrži samo NI operaciju ({}) jeste bazis prekidačke
algebre.
1. Pokažimo da se operacija ¯može realizovati pomoću operacije.
x = xx - Zakon idempotencije
= x x
2. Pokažimo da se operacija može realizovati pomoću operacije.
yx = yx - Zakon dvostruke negacije
= (x y) (xy) - Na osnovu već pokazane realizacije komplementa
3. Pokažimo da se operacija + može realizovati pomoću operacije.
6 . P R E K I D A Č K E F U N K C I J E
65
yx = yx - Zakon dvostruke negacije
= yx - De Morganov zakon
= (x x) (y y) - Na osnovu već pokazane realizacije komplementa
Tabela 6.5 Prekidačke funkcije jedne promenljive
x 0 1 Naziv operacije Oznaka
f0 0 0 Konstanta 0 0
f1 0 1 Promenljiva x x
f2 1 0 Negacija x
f3 1 1 Konstanta 1 1
Tabela 6.6 Prekidačke funkcije dve promenljive
x1
x2
0 0 1 1
0 1 0 1 Naziv operacije Oznaka Bulov izraz
f0 0 0 0 0 Konstanta 0 0 0
f1 0 0 0 1 Konjukcija (Logičko I) 21xx 21xx
f2 0 0 1 0 Zabrana po x2 21 xx 21 xx
f3 0 0 1 1 Promenljiva x1 x1 x1
f4 0 1 0 0 Zabrana po x1 12 xx
21xx
f5 0 1 0 1 Promenljiva x2 x2 x2
f6 0 1 1 0 Suma po modulu 2 (Isključivo ILI) 21 xx
2121 xxxx
f7 0 1 1 1 Disjunkcija(Logičko ILI) 21 xx 21 xx
f8 1 0 0 0 Pierce-ova strelica (NILI funkcija) 21 xx 21 xx
f9 1 0 0 1 Ekvivalencija 21 xx
2121 xxxx
f10 1 0 1 0 Negacija x2 2x 2x
f11 1 0 1 1 Implikacija od x2 ka x1 12 xx
21 xx
f12 1 1 0 0 Negacija x1 1x 1x
f13 1 1 0 1 Implikacija od x1 ka x2 21 xx
21 xx
f14 1 1 1 0 Sheffer-ova crtica, (NI funkcija) 21 xx
21xx
f15 1 1 1 1 Konstanta 1 1 1
U V O D U R A Č U N A R S T V O
66
6.3 Predstavljanje prekidačkih funkcija analitičkim formama
Predstavljanje funkcije pomoću analitičkih formi, u stvari, znači predstavljanje
prekidačkih funkcija pomoću Bulovih izraza. Problem kod ovakvog načina predstavljanja
funkcija je u tome što se svaka prekidačka funkcija može predstaviti pomoću više različitih
Bulovih izraza što pokazuje sledeći primer:
Primer 6.9 Prekidačka funkcija zadata tablicom istinitosti iz tabele 6. 7 se može
predstaviti sledećim Bulovim izrazima:
321321 ),,( xxxxxxf
321321 )(),,( xxxxxxf
3231321 ),,( xxxxxxxf
Tabela 6.7 Prekidačka funkcija iz primera 6.9
321 xxx ),,( 321 xxxf
000 1
001 0
010 1
011 0
100 0
101 0
110 1
111 0
Ako se tome doda da se Bulovi izrazi mogu formirati i korišćenjem operacija iz
proširenog skupa Bulovih operacija, onda je jasno da je vrlo teško odrediti optimalnu
analitičku formu za predstavljanje prekidačkih funkcija. Zbog toga je bilo potrebno uvesti
standardizaciju u tome kakve Bulove izraze ćemo koristiti za predstavljanje prekidačkih
funkcija. Najčešće korišćene standardne analitičke forme za predstavljanje prekidačkih
funkcija su:
potpuna disjunktivna normalna forma (PDNF)
potpuna konjuktivna normalna forma (PKNF)
potpuna polinomna normalna forma (PPNF)
kanonički polinom (polinom po modulu 2).
Prve dve navedene forme za predstavljanje prekidačkih funkcija koriste prirodni bazis
Bulove algebre, (¯, +, ), dok polinomna normalna forma koristi bazis (¯,, ), a kanonički
polinom bazis (, ).
6 . P R E K I D A Č K E F U N K C I J E
67
6.3.1 Potpuna disjunktivna normalna forma
Da bi se formalno definisala potpuna disjunktivna normalna forma funkcije, potrebno je
upoznati se sa elementarnim i potpunim proizvodom i njihovim osobinama.
Definicija 6. 4: Elementarni proizvod je Bulov izraz oblika kjjj xxx ~~~
21 gde
],1[,,, 21 njjj k , a x~ predstavlja promenljivu ili njen komplement (tj. },{~ xxx ).
Primer 6.10 Neki elementarni proizvodi 3 promenljive su:
3213121 , , , xxxxxxx .
Definicija 6. 5: Bulov izraz koji se formira kao suma elementarnih proizvoda se naziva
disjunktivnom normalnom formom.
Primer 6.11 Jedna disjunktivna normalna forma 3 promenljive je:
321 xxx .
Definicija 6. 6: Elementarni proizvod u kojem učestvuju sve nezavisno promenljve
funkcije naziva se potpuni proizvod ili mintem, tj. potpuni proizvod je Bulov izraz oblika
nxxx ~~~21 .
Primer 6.12 Neki potpuni proizvodi 3 promenljive su:
321321321 , , xxxxxxxxx .
Kako proizvod ima vrednost 1 samo u slučaju kada svi njegovi članovi imaju vrednost
1, bitna osobina potpunih proizvoda je da oni imaju vrednost 1 samo na jednom ulaznom
vektoru. To znači i da je ukupan broj potpunih proizvoda n-promenljivih jednak ukupnom
broju ulaznih vektora, odnosno 2n.
Primer 6.13 Ispitajmo kada potpuni proizvod 321 xxx ima vrednost 1.
Pošto svaki proizvod ima vrednost 1 samo kada svi njegovi članovi imaju vrednost 1,
navedeni proizvod će imati vrednost 1 ako je: 1 ,1 ,1 321 xxx , tj. kada je
1 ,0 ,1 321 xxx , odnosno samo na ulaznom vektoru 101.
U tabeli 6. 8 su prikazani svi mogući ulazni vektori prekidačke funkcije 3 promenljive i
potpuni proizvodi koji imaju vrednost 1 na tim vektorima.
Definicija 6. 7: Svaka prekidačka funkcija (osim konstante 0) se može predstaviti kao
suma potpunih proizvoda koji imaju vrednost 1 na onim ulaznim vektorima na kojima i
funkcija ima vrednost 1. Ovakav Bulov izraz se naziva potpunom disjunktivnom
normalnom formom(PDNF) ili savršenom disjunktivnom normalnom formom (SDNF).
U V O D U R A Č U N A R S T V O
68
Tabela 6.8 Ulazni vektori prekidačke funkcije 3 promenljive i potpuni proizvodi koji
imaju vrednost 1 na tim vektorima
321 xxx Potpuni proizvod
000 321 xxx
001 321 xxx
010 321 xxx
011 321 xxx
100 321 xxx
101 321 xxx
110 321 xxx
111 321 xxx
Primer 6.14 Kreirajmo potpunu disjunktivnu normalnu formu funkcije koja je zadata
tablicom istinitosti iz tabele 6. 3.
Ulazni vektori na kojima ova funkcija ima vrednost 1 su:
001,
010,
100 i
101.
Potpuni proizvodi koji imaju vrednost 1 za ove ulazne vektore su:
321 xxx ,
321 xxx ,
321 xxx i
321 xxx
pa se data prekidačka funkcija može predstati sledećom PDNF:
321321321321321 ),,( xxxxxxxxxxxxxxxf .
6.3.2 Potpuna konjuktivna normalna forma
U definiciji potpune konjuktivne normalne forme se pojavljuju potpune sume nezavisno
promenljivih funkcije. Zato moramo, najpre, definisati elementarne i potpune sume
promenljivih.
6 . P R E K I D A Č K E F U N K C I J E
69
Definicija 6. 8: Elementarna suma je Bulov izraz oblika kjjj xxx ~ ~ ~
21 gde
],1[,,, 21 njjj k .
Primer 6.15 Neke elementarne sume 3 promenljive su:
321321321 , , , xxxxxxxxx
Definicija 6. 9: Bulov izraz koji se kreira kao proizvod elementarnih suma se naziva
konjuktivnom normalnom formom.
Primer 6.16 Jedna konjuktivna normalna forma 3 promenljive je:
)()( 32121 xxxxx .
Definicija 6. 10: Elementarna suma u kojoj učestvuju sve nezavisno promenljve funkcije
naziva se potpuna suma ili maksterm, tj. potpuna suma je Bulov izraz oblika
nxxx ~~~21 .
Primer 6.17 Neke potpune sume 3 promenljive su:
321321321 , , xxxxxxxxx .
Osobina bilo koje sume je da ona ima vrednost 0 samo kada svi njeni članovi imaju
vrednost 0. Zbog toga potpune sume imaju vrednost 0 samo na jednom ulaznom vektoru.
To znači i da je ukupan broj potpunih suma n-promenljivih jednak ukupnom boju ulaznih
vektora, odnosno 2n.
Primer 6.18 Ispitajmo kada potpuna suma 321 xxx ima vrednost 0.
Da bi suma imala vrednost 0, svaki njen član treba da ima vrednost 0. U ovom primeru
cela suma će imati vrednost 0 ako je: 0 ,0 ,0 321 xxx , tj. kada je
0 ,1 ,0 321 xxx , odnosno samo na ulaznom vektoru 010.
U tabeli 6.9 su prikazani svi mogući ulazni vektori prekidačke funkcije 3 promenljive i
potpune sume koje imaju vrednost 0 na tim vektorima.
Definicija 6. 11: Svaka prekidačka funkcija (osim konstante 1) se može predstaviti kao
proizvod potpunih suma koje imaju vrednost 0 na onim ulaznim vektorima na kojima i
funkcija ima vrednost 0. Ovakav Bulov izraz se naziva potpuna konjuktivna normalna
forma(PKNF) ili savršena konjuktivna normalna forma (SKNF).
Primer 6.19 Kreirajmo potpunu konjunktivnu normalnu formu funkcije koja je zadata
tablicom istinitosti iz tabele 6.3.
Ulazni vektori na kojima ova funkcija ima vrednost 0 su:
000,
011,
110 i
111.
U V O D U R A Č U N A R S T V O
70
Dakle, ova funkcija u obliku PKNF izgleda:
)()()()(),,( 321321321321321 xxxxxxxxxxxxxxxf
Tabela 6.9 Ulazni vektori prekidačke funkcije 3 promenljive i potpune sume koje
imaju vrednost 0 na tim vektorima
321 xxx Potpuna suma
000 321 xxx
001 321 xxx
010 321 xxx
011 321 xxx
100 321 xxx
101 321 xxx
110 321 xxx
111 321 xxx
6.3.3 Potpuna polinomna normalna forma
Definicija 6. 12: Svaka prekidačka funkcija (osim konstante 0) se može predstaviti kao
suma po modulu 2 potpunih proizvoda koji imaju vrednost 1 na onim ulaznim vektorima na
kojima i funkcija ima vrednost 1. Ovakav Bulov izraz se naziva potpunom polinomnom
normalnom formom(PPNF) ili savršenom polinomnom normalnom formom (SPNF).
Ako uporedimo definicije 6.6 i 6.11 uočićemo da se prekidačka funkcija može
predstaviti i kao suma i kao suma po modulu 2 istih potpunih proizvoda. U opštem slučaju
suma i suma po modulu 2 istih izraza nemaju istu istinitostnu vrednost. No, ako pažljivo
pogledamo tablice istinitosti operacija + i (koje su ponovo prikazane u tabeli 6. 10),
videćemo da se njihova istinitostna vrednost razlikuje samo u slučaju kada oba operanda
imaju vrednost 1. Kako dva različita potpuna proizvoda nikada ne mogu istovremeno da
imaju vrednost 1, to će suma i suma po modulu 2 potpunih proizvoda uvek imati istu
vrednost.
Tabela 6.10 Tablice istinitosti operacija + i
21xx 21 xx 21 xx
00 0 0
01 1 1
10 1 1
11 1 0
6 . P R E K I D A Č K E F U N K C I J E
71
Primer 6.20 Potpuna polinomna normalna forma funkcije zadate tablicom istinitosti iz
tabele 6. 3 biće:
321321321321321 ),,( xxxxxxxxxxxxxxxf .
6.3.4 Kanonički polinom
Definicija 6. 13: Svaka prekidačka funkcija se može predstaviti u obliku:
nn
nnnnn
xxxcxxxc
xxcxxcxcxccxxxf
21...12321123
11211211021
),,,(
gde konstante ncc 120 uzimaju vrednosti iz skupa {0,1}. Ovakav Bulov izraz se naziva
kanonički polinom ili polinom po modulu 2.
Kanonički polinom se može dobiti iz potpune polinomne normalne forme zamenom
komplementa svake promenljive kx izrazom kx1 . Pri sređivanju izraza koriste se još i
sledeće osobine operacije :
xzxyzyx )( (distributivnost množenja u odnosu na operaciju ) i
0 xx
xx 0
Primer 6.21 Kreirajmo kanonički polinom funkcije predstavljene potpunom polinomnom
normalnom formom iz primera 6.16.
),,( 321 xxxf = 321321321321 xxxxxxxxxxxx
= 321321321321 )1()1)(1()1()1()1)(1( xxxxxxxxxxxx
= 3212132232131323 xxxxxxxxxxxxxxxx
3213132121311 xxxxxxxxxxxxx
= 31321 xxxxx
U V O D U R A Č U N A R S T V O
72
Pitanja i zadaci
1) Šta je prekidačka funkcija, a šta Bulova operacija?
2) Objasniti kako izgleda tablica istinitosti prekidačke funkcije.
3) Objasniti kako se potpuno i nepotpuno definisane prekidačke funkcije predstavljaju
skupovima decimalnih indeksa.
4) Šta je to vektor istinitosti funkcije?
5) Šta je to decimalni indeks prekidačke funkcije? Da li se nepotpuno definisana funkcija
može predstaviti decimalnim indeksom? Objasniti zašto.
6) Objasniti kako izgleda potpuna disjunktivna normalna forma, a kako potpuna
polinomna normalna forma.
7) Objasniti kako izgleda potpuna konjuktivna normalna forma.
8) Šta je to kanonički polinom. Objasniti način za kreiranje kanoničkog polinoma.
9) Navesti načine za predstavljanje prekidačkih funkcija i predstaviti funkciju
( , )f x y x y na svakom od njih.
10) Navesti standardne analitičke forme za predstavljanje prekidačkih funkcija i Bulovu
operaciju "ekvivalencija" predstaviti pomoću svake od njih.
11) Kreirati tablicu istinitosti operacije NI i predstaviti je u obliku PDNF i PKNF.
12) Koja Bulova operacija ima decimalni indeks 14? Kreirati tablicu istinitosti Bulove
operacije čiji je decimalni indeks 14.
13) Kreirati tablicu istinitosti prekidačke funkcije date sledećim Bulovim izrazom:
321 )( xxxy .
14) Кreirati tablicu istinitosti prekidačke funkcije 1 2 3y x x x .
15) Za Bulovu funkciju 3 promenljive zadatu brojnim indeksom 97 odrediti potpunu
polinomnu normalnu formu.
16) Kreirati tablicu istinitosti za potpuno definisanu Bulovu funkciju 4 promenljive čiji je
decimalni indeks 157.
17) Šta je bazis u prekidačkoj algebri? Navesti 3 najčešće korišćena bazisa.
18) Korišćenjem aksioma i teorema Bulove algebra pokazati da skup koji sadrži samo NILI
operaciju ({}) jeste bazis prekidačke algebre.
7 . P R E K I D A Č K E M R E Ž E
73
7 PREKIDAČKE MREŽE
Prekidačke mreže su osnovne komponente svakog digitalnog uređaja pa i računara.
Prekidačka mreža je skup električnih komponenata sa n ulaza i m izlaza na čije se ulaze
dovode binarni signali i na čijim izlazima se generišu, takođe, binarni signali. Praktično,
prekidačka mreža je skup električnih komponenti kojima se realizuje sistem m prekidačkih
funkcija sa n ulaznih promenljivih. Drugačije rečeno, rad prekidačke mreže se može opisati
sistemom od m prekidačkih funkcija sa n ulaznih promenljivih. Blok dijagram prekidačke
mreže prikazan je na slici 7.1.
Slika 7.1 Blok-šema prekidačke mreže
Postoje dva osnovna tipa prekidačkih mreža:
kombinacione prekidačke mreže - prekidačke mreže kod kojih vrednosti
izlaznih signala zavise isključivo od trenutnih vrednosti ulaznih signala,
sekvencijalne prekidačke mreže - prekidačke mreže kod kojih vrednosti
izlaznih signala zavise od trenutnih vrednosti ulaznih signala i od vrednosti
signala na nekim unutrašnjim linijama mreže koji opisuju stanje mreže.
Osim po zakonitostima po kojima funkcionišu, kombinacione i sekvencijalne mreže se
razlikuju i po svojoj strukturi. Kombinacione prekidačke mreže se realizuju kao skup
međusobno povezanih logičkih elemenata (logičkih kola), dok u realizaciji sekvencijalnih
prekidačkih mreža, osim logičkih kola, učestvuju i memorijski elementi koji pamte stanje
mreže.
Šema koja pokazuje kako su povezani logički elementi u kombinacionoj prekidačkoj
mreži ili logički i memorijski elementi u sekvencijalnoj prekidačkoj mreži predstavlja
strukturnu šemu prekidačke mreže.
Određivanje skupa prekidačkih funkcija koje opisuju rad prekidačke mreže na osnovu
njene strukturne šeme naziva se analizom prekidačke mreže.
Obrnut postupak, projektovanje strukturne šeme prekidačke mreže na osnovu sistema
prekidačkih funkcija koje ona treba da realizuje naziva se sintezom prekidačke mreže.
U V O D U R A Č U N A R S T V O
74
Problemima analize i sinteze prekidačkih mreža bavi se posebna naučna oblast koja se u
literaturi može sresti pod nazivom prekidačka teorija (engl. switching theory) ili logičko
projektovanje (engl. logic design).
7.1 Logička kola
Logičko kolo, ili logički element, je skup električnih komponenti koje realizuju jednu
Bulovu operaciju. Kako su Bulove operacije definisane kao funkcije jedne ili 2
promenljive, očekuje se da logička kola imaju 1 ili 2 ulaza. U praksi se prave i logička kola
sa većim brojem ulaza, ali je broj ulaza u logičko kolo obično stepen dvojke (2,4,8...).
U strukturnim šemama prekidačkih mreža, logički elementi se prikazuju:
uniformnim grafičkim simbolom u koji je upisana oznaka operacije koju kolo
realizuje, ili
posebnim grafičkim simbolima za svaki tip logičkog elementa (tip logičkog
elementa odgovara operaciji koju realizuje).
U tabeli 7.1 navedeni su nazivi i oba navedena tipa grafičkih simbola logičkih
elemenata koji se najčešće koriste u prekidačkim mrežama.
Tabela 7.1 Grafički simboli najbitnijih logičkih elemenata
Naziv logičkog elementa Uniformni grafički simbol Poseban grafički simbol
NE kolo
I kolo ·
ILI kolo +
NI kolo ·
NILI kolo +
ISKLJUČIVO ILI kolo
Pri izboru koje ćemo logičke elemente koristiti za realizaciju svoje prekidačke mreže
treba voditi računa o različitim parametrima koji opisuju njihov rad i pouzdanost.
Najbitiniji parametri logičkih elemenata su:
1. Zakon funkcionisanja - predstavlja Bulovu operaciju koju element realizuje.
7 . P R E K I D A Č K E M R E Ž E
75
2. Broj ulaza - određuje broj ulaznih priključaka.
3. Maksimalno opterećenje izlaza ili koeficijent izlaza - definiše broj logičkih
elementata na čije ulaze se može dovoditi izlazni signal datog logičkog
elementa.
4. Kašnjenje signala - vremenski period koji protekne od trenutka promene
vrednosti ulaznih signala do trenutka kada se uspostavi odgovarajući izlazni
signal,
5. Način kodiranja binarnih vrednosti - Binarne vrednosti 0 i 1 se u digitalnim
sistemima najčešće predstavljaju naponskim nivoima. Koliki će ti naponski
nivoi biti zavisi od tehnologije koja je korišćena za realizaciju logičkih kola.
Uobičajeno je da se logička kola se napajaju naponom nominalne vrednosti
5V. Idealno bi bilo da se logička nula predstavlja naponskim nivoom od 0V, a
logička jedinica naponskim nivoom od 5V. Međutim, ove idealne uslove je
teško postići pa se u praksi svi naponski nivoi u opsegu 0V-0.8V smatraju
binarnom nulom, a svi naponski nivoi u opsegu 2V-5V binarnom jedinicom.
Ovakav način kodiranja binarnih vrednosti naponskim nivoom se naziva
pozitivnom logikom. Neka logička kola koriste i negativnu logiku kodiranja
što podrazumeva da se logička nula kodira višim, a logička jedinica nižim
naponskim nivoom.
6. Disipacija snage - određuje količinu energije koja se troši na logičkom
elementu u jedinici vremena.
7. Temperaturni opseg pouzdanog rada - Za svaki logički element se propisuje
temperaturni opseg u kojem se garantuje njegov pouzdani rad. U slučaju kada
će elementi raditi u uslovima sobne temperature, temperaturni opseg
pouzdanog rada je 0C-70C. Za rad u ekstremnim temperaturnim uslovima
koriste se logički elementi sa temperaturnim opsegom -25C-125C.
8. Cena.
Obično su zahtevi pri odabiru logičkih elemenata kontradiktorni - traži se da cena
elemenata bude što niža, disipacija snage, takođe, manja, a pouzdanost rada veća. Zavisno
od toga u koje svrhe će se prekidačka mreža koristiti traži se kompromis između ovih
kriterijuma.
7.2 Kombinacione prekidačke mreže
Kao što je već rečeno, kombinacione mreže predstavljaju kompoziciju logičkih
elemenata ili preciznije, kompoziciju logičkih elemenata u kojoj ne postoje povratne veze.
Pod povratnom vezom se podrazumeva put u prekidačkoj mreži kojim može da prođe
signal od izlaza nekog logičkog elementa do njegovog ulaza.
Pravila za povezivanje logičkih elemenata u kombinacionoj prekidačkoj mreži su
sledeća:
1. Na ulaz logičkog elementa se može priključiti:
primarni ulaz mreže,
U V O D U R A Č U N A R S T V O
76
izlaz drugog logičkog elementa, ili
konstanta 0 ili 1.
2. Izlazni priključci dva logička elementa ne mogu biti direktno vezani.
3. Izlazni priključak logičkog elementa ne sme biti direktno ili indirektno vezan sa
svojim ulazom.
Strukturna šema jedne kombinacione mreže prikazana je na slici 7.2. Kao što se sa slike
vidi, ulazni signal prolazi kroz više logičkih elemenata u mreži dok ne dođe do izlaza.
Maksimalni broj logičkih elemenata kroz koje prođe signal od ulaza u mrežu do njenog
izlaza naziva se stepen prekidačke mreže. Takođe, za svaki element u mreži se može
definisati stepen ili nivo kojem pripada kao maksimalni broj logičkih elemenata kroz koje
signal prođe od ulaza u mrežu do njegovog izlaza.
a
b
c
f
Slika 7.2 Strukturna šema kombinacione mreže
Mreža sa slike 7. 2 je trostepena. Na prvom nivou (stepenu) se nalazi NE kolo i I kolo
čiji su ulazi signali b i c. Na drugom nivou je I kolo na čije je ulaze priključen signal a i
izlaz NE kola, a na trećem nivou ILI kolo.
7.2.1 Analiza kombinacionih prekidačkih mreža
Analiza kombinacione mreže treba da nam omogući da razumemo kako radi prekidačka
mreža predstavljena svojom strukturnom šemom, ili formalno: zadatak analize
kombinacione mreže je da odredi sistem prekidačkih funkcija koje opisuju rad date mreže.
Koraci u analizi kombinacione mreže su:
1. Obeležiti pomoćnim simbolima izlazne signale iz svih logičkih elemenata u
mreži čiji izlazi ne predstavljaju izlaze čitave mreže.
2. Napisati izraze funkcionalnih zavisnosti izlaznih signala od ulaznih za svaki
logički element u mreži.
3. U izrazima koji definišu funkcionalnu zavisnost izlaznih signala cele mreže vršiti
zamenu pomoćnih promenljivih izrazima definisanim u koraku 2. dok se ne
dobije zavisnost izlaznih signala isključivo u funkciji primarnih ulaznih signala.
4. Predstaviti dobijenu funkciju na neki od standardnih načina.
Primer 7.1 Izvršićemo analizu kombinacione mreže sa slike 7.2.
Korak 1. Obeležićemo izlaze iz logičkih elemenata kao na slici 7.3.
7 . P R E K I D A Č K E M R E Ž E
77
a
b
c
ed
g
f
Slika 7.3 Strukturna šema kombinacione mreže sa obeleženim izlaznim signalima iz svih
logičkih elemenata
Korak 2. Napisaćemo izraze koji opisuju rad svakog logičkog elementa u mreži:
gef
cbg
dae
bd
Korak 3. Transformisaćemo izraz za izlazni signal f.
cbbacbdagef
Korak 4. Kreiraćemo tablicu istinitosti dobijene funkcije.
Tabela 7.2 Tablica istinitosti prekidačke funkcije koja opisuje rad kombinacione
prekidačke mreže sa slike 7.2
cba b ba cb ),,( cbaf
000 1 0 0 0
001 1 0 0 0
010 0 0 0 0
011 0 0 1 1
100 1 1 0 1
101 1 1 0 1
110 0 0 0 0
111 0 0 1 1
7.2.2 Sinteza kombinacionih prekidačkih mreža
Proces sinteze kombinacionih prekidačkih mreža se odvija kroz 3 faze:
1. izbor logičkih elemenata koji će se koristiti u realizaciji mreže,
U V O D U R A Č U N A R S T V O
78
2. određivanje neke minimalne analitičke forme na osnovu koje će se mreža
realizovati (minimizacija funkcije),
3. crtanje same strukturne šeme mreže.
Pri izboru logičkih elemenata koji će se u mreži koristiti treba voditi računa o tome da
operacije koje su realizovane izabranim logičkim elementima čine bazis u prekidačkoj
algebri (tako smo sigurni da ćemo pomoću izabranih kola moći da realizujemo bilo koju
prekidačku funkciju) i da izabrani elementi zadovoljavaju dodatne kriterijume korisnika
mreže.
Dodatni kriterijumi korisnika mogu biti:
cena celokupne mreže,
vreme kašnjenja kroz mrežu (što možemo minimizovati smanjenjem stepena
mreže ili izborom elemenata sa manjim kašnjenjem),
potrošnja energije, ...
Ipak, centralni problem koji se rešava pri sintezi kombinacionih prekidačkih funkcija je
minimizacija analitičke forme kojom je funkcija predstavljena ili kraće rečeno minimizacija
prekidačke funkcije.
7.2.3 Minimizacija prekidačkih funkcija
Da bismo razumeli cilj i postupak minimizacije prekidačkih funkcija treba najpre uvesti
pojam minimalnih analitičkih formi. Analitičke forme koje se koriste za predstavljanje
prekidačkih funkcija koje smo do sada upoznali su: potpuna disjunktivna normalna forma,
potpuna konjuktivna normalna forma, potpuna polinomna normalna forma i kanonički
polinom. Pri navođenju ovih formi istaknuta je reč "potpuna" jer ona ukazuje da u
odgovarajućim izrazima učestvuju potpune sume ili potpuni proizvodi. Potpune forme za
predstavljanje prekidačkih funkcija jesu jedinstvene, ali su često jako glomazne i sinteza
prekidačkih funkcija se nikada ne vrši na osnovu potpune forme već se one određenim
transformacijama svode na svoj minimalni oblik. Uočimo da jedino u nazivu kanoničkog
polinoma ne postoji reč potpun. Razlog je jednostavan, u kanoničkom polinomu ne
učestvuju nikakvi potpuni izrazi i jedino kanonički polinom je jedinstven.
Dakle, svaku prekidačku funkciju možemo predstaviti različitim konjuktivnim,
disjunktivnim ili polinomnim normalnim formama. Pošto ćemo sintezu kombinacionih
prekidačkih mreža raditi uglavnom na osnovu konjuktivnih i disjunktivnih normalnih formi
uvešćemo kriterijume kada ćemo neku disjunktivnu ili konjuktivnu formu smatrati
minimalnom.
Da bismo došli do pojma minimalne disjunktivne normalne forme, uvešćemo najpre
pojam imlikante i proste imlikante prekidačke funkcije.
Definicija 7. 1: Implikanta funkcije f je funkcija koja ima vrednost 0 na svim ulaznim
vektorima na kojima funkcija f ima vrednost 0 i ima vrednost 1 bar na jednom ulaznom
vektoru na kojem funkcija f ima vrednost 1.
Iz prethodne definicije se lako uočava da svaki potpuni proizvod koji učestvuje u PDNF
funkcije predstavlja implikantu te funkcije.
7 . P R E K I D A Č K E M R E Ž E
79
Definicija 7. 2: Elementarni propizvod p1 je deo elementarnog proizvoda p ako je p1
dobijen iz proizvoda p izostavljanjem nekih promenljivih.
Primer 7.2 Elementarni proizvodi 1x , 2x , 3x , 21 xx , 31xx i 32 xx su delovi
elementarnog proizvoda 321 xxx .
Definicija 7. 3: Elementarni proizvod je prosta implikanta funkcije f ako on jeste
implikanta funkcije f, a ni jedan njegov deo nije implikanta funkcije f.
Definicija 7. 4: Nepreopširna DNF funkcije f je suma elementarnih proizvoda prostih
implikanata funkcije f takvih da je:
unija skupova vektora istinitosti na kojima svaki od elementarnih proizvoda
koji učestvuje u sumi ima vrednost 1 predstavlja skup ulaznih vektora na
kojima funkcija f ima vrednost 1,
za svaki elementarni proizvod koji učestvuje u sumi postoji bar 1 ulazni vektor
na kojem samo taj proizvod ima vrednost 1.
Ono što treba ovde učiti je da nepreopširna DNF nije jedinstvena.
Primer 7.3 Prekidačka funkcija f čija je potpuna disjunktivna normalna forma:
321321321321321321 ,, xxxxxxxxxxxxxxxxxxf
se može predstaviti sledećim nepreopširnim disjunktivnim normalnim formama:
312131321 ,, xxxxxxxxxf i
313231321 ,, xxxxxxxxxf .
Dokaz: Iz PDNF funkcije se lako uočava da funkcija ima vrednost 1 na skupu ulaznih
vektora S={000, 010, 011, 101, 111}.
Elementarni proizvod 311 xxp ima vrednost 1 na ulaznim vektorima S1={000, 010}.
Dakle proizvod 1p jeste implikanta funkcije f. Treba proveriti još i da li je prosta
implikanta. Delovi proizvoda 1p su 1x i 3x . 1x ima vrednost 1 na ulaznim vektorima
000, 001, 010 i 011 pa ovo nije implikanta funkcije f. 3x ima vrednost 1 na ulaznim
vektorima 000, 010, 100 i 110 pa ni to nije nije implikanta funkcije f. Pošto nijedan deo
proizvoda 1p nije implikanta funkcije f, tvrdimo da je 1p prosta implikanta funkcije f.
Na isti način se pokazuje i da su proizvodi 2p i 3p proste implikante funkcije f.
Elementarni proizvod 212 xxp ima vrednost 1 na ulaznim vektorima S2={010, 011}.
Elementarni proizvod 313 xxp ima vrednost 1 na ulaznim vektorima S3={101, 111}.
Lako se uočava da je SSSS 321 , da na ulaznom vektoru 000 jedino proizvod 1p
ima vrednost 1, na ulaznom vektoru 011 jedino elementarni proizvod 2p ima vrednost 1, a
U V O D U R A Č U N A R S T V O
80
na ulaznim vektorima 101 i 111 jedino proizvod 3p ima vrednost 1 pa izraz
312131 xxxxxx jeste nepreopširna disjunktivna normalna forma funkcije f.
U prethodnoj definiciji smo koristili pojam nepreopširna, a ne pojam minimalna. Iz
skupa nepreopširnih formi se može birati minimalna po različitim kriterijumima: tako da
broj operanada u izrazu bude minimalan (čime se minimizuje broj ulaza u logička kola) ili
da broj operacija u izrazu bude minimalan (čime se minimizuje broj korišćenih logičkih
kola), itd. Međutim, čak i uzimajući sve te kriterijume u obzir može se desiti da ne možemo
doći do jedinstvene minimalne forme.
U daljem tekstu ovog udžbenika ćemo pod pojmom minimalna disjunktivna normalna
forma funkcije smatrati bilo koju nepreopširnu disjunktivnu normalnu formu.
Pošto smo potpunu konjuktivnu normalnu formu definisali kao proizvod potpunih suma
koje imaju vrednost 0 tamo gde i funkcija ima vrednost 0, za određivanje minimalne
konjuktivne normalne forme koristićemo implicente i proste implicente funkcije.
Definicija 7. 5: Implicenta funkcije f je funkcija koja ima vrednost 1 na svim ulaznim
vektorima na kojima funkcija f ima vrednost 1 i ima vrednost 0 bar na jednom ulaznom
vektoru na kojem funkcija f ima vrednost 0.
Dakle, svaka potpuna suma koja učestvuje u PKNF funcije predstavlja implicentu te
funkcije.
Definicija 7. 6: Elementarnasuma s1 je deo elementarne sume s ako je s1 dobijena iz sume
s izostavljanjem nekih promenljivih.
Primer 7.4 Elementarne sume 1x , 2x , 3x , 21 xx , 31 xx i 32 xx su delovi
elementarnog proizvoda 321 xxx .
Definicija 7. 7: Elementarna suma je prosta implicenta funkcije f ako ona jeste implicenta
funkcije f, a ni jedan njen deo nije implicenta funkcije f.
Definicija 7. 8: Nepreopširna KNF funkcije f je proizvod elementarnih suma prostih
implicenata funkcije f takvih da je:
unija skupova vektora istinitosti na kojima svaka od elementarnih suma ima
vrednost 0 predstvlja skup ulaznih vektora na kojima funkcija f ima vrednost 0,
za svaku elementarnu sumu koja učestvuje u niminalnoj DNF postoji bar 1
ulazni vektor na kojem samo ta suma ima vrednost 0.
U daljem tekstu ovog udžbenika ćemo pod pojmom minimalna konjuktivna normalna
forma funkcije smatrati bilo koju nepreopširnu konjuktivnu normalnu formu.
7.2.3.1 Minimizacija prekidačkih funkcija algebarskim metodama
Pod pojmom minimizacije prekidačkih funkcija algebarskim metodama
podrazumevamo transformaciju potpunih analitičkih formi u minimalne korišćenjem
aksioma i teorema Bulove algebre.
7 . P R E K I D A Č K E M R E Ž E
81
Pri minimizaciji disjunktivne normalne forme koriste se sledeće teoreme:
teorema sažimanja: ababa i
teorema apsorpcije: abaa
Primer 7.5 Izvršićemo minimizaciju prekidačke funkcije datu potpunom disjunktivnom
normalnom formom:
43214321
432143214321432143214321
,,,
xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxf
Zbog kraćeg pisanja, za svaki potpuni proizvod u PDNF uvešćemo posebnu oznaku na
sledeći način:
.
i
,
,
,
,
,
43217
43216
43215
43214
43213
43212
43211
xxxxp
xxxxp
xxxxp
xxxxp
xxxxp
xxxxp
xxxxp
Teoremu sažimanja možemo primeniti nad sledećim parovima proizvoda: ),( 21 pp ,
),( 43 pp , ),( 65 pp i ),( 76 pp . Kao što vidimo, proizvod p6 se može udružiti i sa
proizvodom p5 i sa proizvodom p7. S obzirom da u Bulovoj algebri važi da je a+a=a,
proizvod p6 možemo napisati 2 puta u zbiru pa napraviti sledeće parove za sažimanje:
)( )(
)()(,,
431321321321
4321432143214321
4321432143214321321
xxxxxxxxxxxx
xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxf
Ako postupak udruživanja i sažimanja nastavimo dalje, dobićemo minimalnu
disjunktivnu normalnu formu na sledeći način:
)()(,,
4313221
431321321321321321
xxxxxxx
xxxxxxxxxxxxxxxxxxf
Minimizacija konjuktivne normalne forme algebarskom metodom se vrši na istovetan
način, samo uz primenom dualnih izraza istih teorema:
teorema sažimanja: ababa )()( i
teorema apsorpcije: abaa )(
U V O D U R A Č U N A R S T V O
82
7.2.3.2 Minimizacija prekidačkih funkcija pomoću Karnoovih mapa
Karnoove mape predstavljaju još jednu tabličnu metodu za predstavljanje prekidačkih
funkcija. Karnoova mapa je tablica sa:
2n/2
vrsta i 2n/2
kolona za parno n,
2(n-1)/2
vrsta i 2(n+1)/2
kolona za neparno n.
U svakoj ćeliji Karnoove mape upisana je vrednost funkcije na jednom vektoru
istinitosti i to tako da fizički susednim ćelijama odgovaraju vektori koji se razlikuju samo
na jednoj koordinati. Na slici 7. 4 dat je raspored polja u Karnoovoj mapi za funkcije 2, 3, 4
i 5 promenljivih. Ulazni vektor koji odgovara ćeliji se dobija nadovezivanjem njegovih
delova koji se nalaze u oznakama odgovajuće vrste i kolone matrice. Sa slike se može
uočiti i da se ulazni vektori koji odgovaraju ćelijama prve i poslednje vrste mape, takođe,
razlikuju samo na jednoj koordinati. Isto tako vektori koji odgovaraju ćelijama prve i
poslednje kolone mape se, takođe, razlikuju na samo jednoj koordinati. To znači da su prva
i poslednja vrsta Karnoove mape susedne, pa ako izvršimo savijanje mape i fizički spojimo
te vrste, dobićemo cilindar. Ako nakon toga savijemo cilindar tako da spojimo susedne
ćelije iz prve i poslednje kolone, dobićemo torus. Dakle Karnoovu mapu treba posmatrati
kao jednu torusnu površinu. Na slici 7. 5 (b) u uglovima polja Karnoove mape prikazani su
decimalni indeksi odgovarajućih ulaznih vektora.
Ako se posmatra Karnoova mapa za funkcije 5 promenljivih uočava se i da se vektori
koji odgovaraju ćelijama koje se nalaze u kolonama 001 i 101, kao i 011 i 111, takođe,
razlikuju samo na jednoj koordinati, pa i ove kolone treba smatrati susednim. Zbog toga
korišćenje Karnoovih mapa nije preporučljivo za predstavljanje funkcija većeg broja
promenljivih.
Slika 7.4 Raspored ćelija u Karnoovoj mapi
7 . P R E K I D A Č K E M R E Ž E
83
(a) (b)
Slika 7.5 Karnoova mapa posmatrana kao torus
Primer 7.6 U tabeli 7.3 data je tablica istinitosti, a na slici 7. 6 Karnoova mapa,
prekidačke funkcije f čija je potpuna disjunktivna normalna forma:
321321321321321321 ,, xxxxxxxxxxxxxxxxxxf
Tabela 7.3 Tablica istinitosti funkcije iz primera 7.6
321 xxx f
000 1
001 0
010 1
011 1
100 0
101 1
110 0
111 1
Slika 7.6 Karnoova mapa funkcije iz primera 7.6
Da bismo razumeli postupak određivanja minimalnih DNF pomoću Karnoovih mapa,
uočimo u Karnoovoj mapi sa slike 7. 6 dve susedne ćelije u koje su upisane jedinice. Neka
U V O D U R A Č U N A R S T V O
84
su to ćelije koje odgovaraju ulaznim vektorima 000 i 010. Potpuni proizvodi koji imaju
vrednost 1 na ovim ulaznim vektrima su: 321 xxx i 321 xxx , odnosno implikanta funkcije f
koja ima vrednost 1 na ovim ulaznim vektorima je 321321 xxxxxxg . Primenom
teoreme sažimanja, ova implikanta će se transformisati u 31 xxg . Ako pogledamo ulazne
vektore 000 i 010, uočavamo da se u njima razlikuje samo vrednost promenljive 2x , a da u
konačnom izrazu za funkciju g učestvuju sve ostale promenljive (u ovom slučaju 1x i 3x ).
U opštem slučaju u Karnoovoj mapi se mogu uočiti pravilne figure ("pravougaonici")
veličine 2r (ranga r) koje su kompletno pokriveni jedinicama. Svaka takva figura određuje
po jedan elementarini proizvod koji predstavlja implikantu funkcije f, u kojem će
učestvovati n-r promenljivih koje imaju konstantnu vrednost na svim ćelijama figure.
Formalno, pravilna figura u Karnoovoj mapi se može definisati na sledeći način:
Definicija 7. 9: Pravilna figura ranga r u Karnoovoj mapi je skup od 2r susednih ćelija
koje imaju k=n-r zajedničkih koordinata. Svakoj pravilnoj figuri u Karnoovoj mapi
odgovara po jedan elementarni proizvod koji ima vrednost 1 na svim ćelijama te figure i
jedna elementarna suma koja ima vrednost 0 na svim ćelijama figure. Članovi tih proizvoda
(suma) su promenljive koje imaju konstantnu vrednost za sve ćelije figure.
Slika 7.7 Pravilne figure u Karnoovoj mapi
Primer 7.7 Na slici 7.7 dati su neki karakteristični slučajevi položaja pravilnih figura u
Karnoovoj mapi.
Algoritam za minimizaciju DNF pomoću Karnoovih mapa
Korak 1. Formirati pravilne figure maksimalnih rangova koje pokrivaju samo jedinice i
to tako da svaka jedinica bude pokrivena bar jednom pravilnom figurom,
Korak 2. Ukloniti figure za koje ne postoji ćelija koja je pokrivena samo tom figurom,
Korak 3. Definisati elementarne proizvode koji imaju vrednost 1 na tako kreiranim
figurama,
7 . P R E K I D A Č K E M R E Ž E
85
Korak 4. Kreirati minimalnu DNF kao sumu elementarnih proizvoda određenih u
prethodnom koraku.
Primer 7.8 Korišćenjem Karnoovih mapa kreiraćemo minimalnu DNF za funkciju iz
primera 7.5. Da bi se lakše popunila Karnoovu mapa krenućemo od tablice istinitosti
funkcije koja je prikazana u tabeli 7.4. Karnoova mapa date funkcije sa obeleženim
pravilnim figurama koje pokrivaju jedinice i na osnovu tako kreiranih figura minimalna
DNF funkcije prikazani su na slici 7.8.
Tabela 7.4 Tablica istinitosti funkcije iz primera 7.8
4321 xxxx f
0000 1
0001 1
0010 1
0011 1
0100 0
0101 0
0110 0
0111 0
1000 0
1001 0
1010 1
1011 1
1100 0
1101 0
1110 0
1111 1
Slika 7.8 Minimazacija DNF pomoću Karnoove mape
U V O D U R A Č U N A R S T V O
86
Analogno postupku dobijanja minimalne DNF, pomoću Karnoove mape može se
definisati i postupak dobijanja minimalne KNF. Problem kod kreiranja minimalne KNF je
odrediti elementarne sume proste implicente date funkcije. Prema tome, polazna tačka u
ovom postupku biće kreiranje pravilnih regiona koji pokrivaju nule funkcije.
Algoritam za minimizaciju KNF pomoću Karnoovih mapa
Korak 1. Formirati pravilne figure maksimalnih rangova koje pokrivaju samo nule i to
tako da svaka nula bude pokrivena bar jednom pravilnom figurom,
Korak 2. Ukloniti figure za koje ne postoji ćelija koja je pokrivena samo tom figurom,
Korak 3. Definisati elementarne sume koje imaju vrednost 0 na tako kreiranim figurama,
Korak 4. Kreirati minimalna KNF kao proizvod elementarnih suma određenih u
prethodnom koraku.
Primer 7.9. Korišćenjem Karnoovih mapa kreiraćemo minimalnu KNF za funkciju iz
prethodnog primera. Koristićemo istu Karnoovu mapu, ali ćemo ovoga puta u njoj obeležiti
pravilne regione koji pokrivaju nule (slika 7.9).
Slika 7.9 Minimizacija KNF pomoću Karnoovih mapa
Isprekidanom linijom je obeležena pravilna figura koja je, takođe, ranga 2, ali za koju
ne postoji ćelija koja je pokrivena samo tom figurom pa je ona suvišna.
Karnoove mape su posebno pogodne za minimizaciju nepotpuno definisanih funkcija.
Kod nepotpuno definisanih funkcija pozicije u vektoru istinitosti obeležene zvezdicom
možemo zameniti bilo nulom, bilo jedinicom. Zamenićemo ih takvom vrednošću da tražena
minimalna forma bude što jednostavnija. U Karnoovoj mapi je najlakše uočiti kojom
vrednošću treba zameniti konkretnu zvezdicu. Zamenićemo je uvek onom vrednošću koja
povećava rang uočenih pravilnih figura i/ili smanjuje broj pravilnih fuigura koje su kreirane
bez uzimanja u obzir moguće vrednosti zvezdice. Postupak određivanja kojom vrednošću
treba zameniti zvezdicu ćemo najlakše objasniti kroz primer.
Primer 7.10 Korišćenjem Karnoovih mapa kreiraćemo minimalnu DNF za nepotpuno
definisanu funkciju čija je tablica istinitosti prikazana u tabeli 7.5.
7 . P R E K I D A Č K E M R E Ž E
87
Tabela 7.5 Tablica istinitosti nepotpuno definisane funkcije
4321 xxxx F
0000 1
0001 0
0010 0
0011 0
0100 *
0101 *
0110 *
0111 1
1000 1
1001 0
1010 0
1011 *
1100 *
1101 0
1110 1
1111 *
Pokušajmo da nađemo minimalnu DNF funkcije pomoću Karnoove mape. Kreirajmo
najpre pravilne regione u mapi koje pokrivaju isključivo jedinice funkcije (slika 7. 10).
DNF kreirana na osnovu ovako uočenih pravilnih figura bila bi:
432143214324321 ,,, xxxxxxxxxxxxxxxf
Slika 7.10 Karnoova mapa nepotpuno definisane funkcije iz primera 7.10 sa obeleženim
regionima koji pokrivaju samo jedinice
Ako zvezdice koje se nalaze na pozicijama kojima odgovaraju ulazni vektorima 0100 i
1100 zamenimo jedinicama, umesto regiona ranga 1 (koji pokriva jedinice na ulaznim
U V O D U R A Č U N A R S T V O
88
vektorima 0000 i 1000), dobićemo region ranga 2 koji pokriva celokupnu prvu vrstu
Karnoove mape. Analogno tome, ako zvezdice koje se nalaze na pozicijama koje
odgovaraju ulaznim vektorima 0110 i 1111 zamenimo jedinicama, umesto dva regiona
ranga 0, dobićemo jedan ragion ranga 2. Ovako transformisana Karnoova mapa izgledaće
kao na slici 7.11.
Slika 7.11 Karnoova mapa nepotpuno definisane funkcije iz primera 7.10. sa obeleženim
regionima koji dovode do kreiranja minimalne DNF
Ako bismo zvezdice koje se nalaze na pozicijama koje odgovaraju ulaznim vektorima
0101 i 1011 zamenili jedinicama, prouzrokovali bismo kreiranje novih regiona za njihovo
pokrivanje pa bismo na taj način DNF funkcije usložnili. Dakle, regioni prikazani na slici
7.11 odgovaraju potpuno definisanoj funkciji, nastaloj dodefinisanju funkcije iz primera
7.10, koja ima minimalnu DNF. DNF tako dobijene funkcije je:
32434321 ,,, xxxxxxxxf
Zaključak: zvezdice u Karnoovoj mapi ćemo uključiti u pravilne figure (čime ih,
praktično, tretiramo kao jedinice) samo ako time smanjujemo broj kreiranih figura, ili
povećavamo njihov rang.
Primer 7.11 Kreirajmo minimalnu KNF nepotpuno definisane funkciju iz primera 7.10.
Slika 7.12 Karnoova mapa nepotpuno definisane funkcije iz primera 7.10 sa obeleženim
regionima koji dovode do kreiranja minimalne KNF
U Karnoovoj mapi sada obeležavamo pravilne figure koje pokrivaju nule funkcije. Pri
tome zvezdice uključujemo u te figure pod istim uslovima, ako time smanjujemo broj
7 . P R E K I D A Č K E M R E Ž E
89
figura ili povećavamo njihov rang. Karnoova mapa sa tako obeleženim figurama je
prikazana na slici 7.12, a minimalna KNF je:
)()(),,,( 32434321 xxxxxxxf x .
7.2.4 Realizacija kombinacionih prekidačkih mreža u bazisu I, ILI, NE
Konačni ishod sinteze prekidačke mreže treba da bude strukturna šema mreže koja
pokazuje koji elementi učestvuju u realizaciji i kako su međusobno povezani.
Najjednostavnija realizacija kombinacionih prekidačkih mreža je korišćenjem I, ILI i NE
elemenata, jer se ova realizacija direktno izvodi na osnovu minimalne DNF ili minimalne
KNF.
Ukoliko se realizacija vrši na osnovu minimalne DNF funkcije, mreža se realizuje kao
tronivoska u kojoj se:
na prvom nivou nalaze NE elementi koji realizuju potrebne komplemente
promenljivh,
na drugom nivou se nalaze I kola koja realizuju proste implikante funkcije,
na trećem nivou je jedno ILI kolo.
Primer 7.12 Nacrtaćemo strukturnu šemu mreže koja realizuje prekidačku funkciju čija je
minimalna DNF data izrazom:
43132214321 ),,,( xxxxxxxxxxxf .
Dakle, na prvom nivou u ovoj mreži će se naći 2 NE kola koja realizuju 1x i 2x .
Na drugom nivou ćemo imati 2 I kola sa po 2 ulaza (koja realzuju proizvode 21xx i
32xx ) i jedno I kolo sa 3 ulaza (koje realizuje proizvod 431 xxx ).
Na poslednjem, trećem, nivou će se naći ILI kolo koje realizuje sumu proizvoda
realizovanih na drugom nivou mreže.
Konačno, strukturna šema mreže kreirane na osnovu minimalne DNF prikazana je na
slici 7.13.
f
x1
x2 x
3x4
Slika 7.13 Šema prekidačke mreže realizovane na osnovu DNF iz primera 7.12
U V O D U R A Č U N A R S T V O
90
Potpuno analogan postupak se može primeniti i za kreiranje strukturne šeme mreže na
osnovu minimalne KNF. U tom slučaju će na prvom nivou ponovo biti NE elementi, na
drugom nivou ILI elementi i na poslednjem nivou jedan I element.
Primer 7.13 Minimalna KNF funkcije iz primera 7.12 je
))()((),,,( 3142214321 xxxxxxxxxxf .
Šema prekidačke mreže kreirane na osnovu ovog izraza prikazana je na slici 7.14.
f
x1
x2 x
3x4
Slika 7.14 Šema prekidačke mreže realizovane na osnovu KNF iz primera 7.13
Prvi nedostatak ovakve realizacije kombinacionih prekidačkih mreža je korišćenje
logičkih kola sa proizvoljnim brojem ulaza. U praksi se najčešće proizvode logička kola sa
2 ulaza ili logička kola čiji je broj ulaza jednak stepenu dvojke (2, 4, 8,...). Zato ćemo sada
razmotriti način realizacije prekidačkih mreža ukoliko su nam na raspolaganju samo
logička kola sa 2 ulaza.
Prva mogućnost za realizaciju prekidačkih mreža pomoću logičkih kola sa 2 ulaza je da
svako logičko kolo sa više ulaza zamenimo odgovarajućim skupom logičkih kola sa 2
ulaza. Na slici 7.15 je prikazano kako se proizvodi, odnosno sume, 3 ili 4 promenljive
mogu realizovati pomoću logičkih kola sa 2 ulaza.
Û
x1
x3
x2
x1x2
x3
Û
x1
x3
x2
x1x2
x3
Ûx
1
x4
x2
x1x2
x3x3
x4
Ûx
1
x4
x2
x1x2
x3x3
x4
Slika 7.15 Realizacija logičkih kola sa više ulaza pomoću logičkih kola sa 2 ulaza
Primer 7.14 Na slici7.16 prikazana je strukturna šema kombinacione prekidačke mreže
koja realizuje funkciju zadatu minimalnom DNF
7 . P R E K I D A Č K E M R E Ž E
91
43132214321 ),,,( xxxxxxxxxxxf ,
ako se za realizaciju koriste isključivo dvoulazna logička kola.
f
x1
x2 x
3x4
Slika 7.16 Šema prekidačke mreže realizovane na osnovu DNF kada se za realizaciju
koriste isključivo dvoulazna logička kola
Iz prethodnog primera se vidi, da se korišćenjem dvoulaznih logičkih kola povećava i
broj korišćenih logičkih kola i broj nivoa u prekidačkoj mreži, a samim tim i cena mreže, i
potrošnja energije i kašnjenje signala kroz mrežu. Zato je preporučljivo, umesto da se svaki
element sa više ulaza direktno zameni skupom elemenata sa 2 ulaza, da se pokuša sa
faktorizacijom minimalne forme kako bi se dobili podizrazi u kojima učestvuju po 2
operanda.
Primer 7.15. DNF iz primera 7.14 se može transformisati na sledeći način:
)(),,,( 41232143132214321 xxxxxxxxxxxxxxxxxf
Šema, kreirana na osnovu ovako transformisanog izraza prikazana je na slici 7.17.
f
x1
x2 x
3x4
Slika 7.17 Šema prekidačke mreže realizovane na osnovu faktorizovane DNF kada se za
realizaciju koriste isključivo dvoulazna logička kola
U šemi sa slike 7.16 upotrebljeno je ukupno 8 logičkih kola, dok je u šemi sa slike 7.17
ista funkcija realizovana sa ukupno 7 logičkih kola. Ta ušteda može biti mnogo značajnija
kada se realizuju realne, mnogo kompleksnije, prekidačke funkcije.
U V O D U R A Č U N A R S T V O
92
7.2.5 Realizacija kombinacionih prekidačkih mreža u bazisima NI i NILI
Korišćenje bazisa koji sadrže samo jednu operaciju (kakvi su bazisi koje čine samo NI
ili samo NILI operacije) se pokazalo jako pogodnim za realizaciju prekidačkih mreža jer u
tom slučaju sva kola koja čine prekidačku mrežu imaju iste karakteristike (kašnjenje,
potrošnja energije, temperaturni opseg pouzdanog rada,...) pa je samim tim i lakše proceniti
karakteristike (ponašanje) cele mreže. U poglavlju 6.2 je pokazano kako se pomoću NI
operacije mogu realizovati sve operacije prirodnog bazisa (NE, I i ILI). To znači, da se
izraz u kojima učestvuju NE, I i ILI operacije, lako može transformisati u izraz koji koristi
isključivo NI operacije. Dakle, kada vršimo realizaciju prekidačkih mreža pomoću NI ili
NILI elemenata, kao polazni izrazi se mogu koristiti minimalne DNF i minimalne KNF.
Ukoliko se za realizaciju prekidačke mreže koriste NI elementi, prekidačku funkciju
treba predstaviti izrazom u kojem učestvuju isključivo NI operacije. Najzgodnije je krenuti
od minimalne DNF funkcije. Potrebne transformacije koje treba izvršiti su sledeće:
Korak 1. Ceo izraz (DNF) 2 puta komplementirati,
Korak 2. Unutrašnji (donji komplement) transformisati primenom DeMorganove teoreme
(tj. komplement zbira transformisati u proizvod komplemenata sabiraka).
Korak 3. Svaki izraz oblika nkkk xxx
21 zameniti izrazom
nkkk xxx |||21
.
Korak 4. Komplement svake promenljive kx zameniti izrazom kk xx , tj. kk xx | .
Primer 7.16 DNF iz primera 7.14 ćemo transformisati tako da omogućimo realizaciju
funkcije isključivo pomoću NI elemenata.
)||(|)|)|((|))|(|)|((
)||(|)|(|)|(
),,,(
4313222211
4313221
4313221
431322143132214321
xxxxxxxxxx
xxxxxxx
xxxxxxx
xxxxxxxxxxxxxxxxxxf
U praksi se koraci 3 i 4 i ne rade. Na osnovu izraza dobijenog nakon primene
DeMorganove teoreme može se direktno crtati šema kombinacione prekidačke mreže.
Šema prekidačke mreže koja realizuje funkciju iz primera 7.16, a koja sadrži isključivo NI
elemente, prikazana je na slici 7.18.
f
x1 x2 x3 x4
Slika 7.18 Šema prekidačke mreže kada se za realizaciju koriste isključivo NI kola
7 . P R E K I D A Č K E M R E Ž E
93
Ukoliko pri realizaciji treba koristiti samo kola sa ograničenim brojem ulaza (npr. 2), NI
operacije sa više operanada, možemo realizovati pomoću NI operacija sa 2 operanda na
sledeći način:
32121321321 |))|(|)|(( xxxxxxxxxxx ,
))|(|)|((|))|(|)|(( 4343212143214321 xxxxxxxxxxxxxxxx .
Primer 7.17 Na slici 7.19 prikazana je šema prekidačke mreže koja relizuje funkciju iz
primera 7.16 pri čemu su u realizaciji korišćena isključivo dvoulazna NI logička kola.
f
x1 x2 x3 x4
Slika 7.19 Šema prekidačke mreže kada se za ralizaciju koriste isključivo dvoulazna NI
kola
Ako se opredelimo da kombinacionu prekidačku mrežu realizujemo pomoću NILI kola,
funkciju treba predstaviti izrazom koji sadrži isključivo NILI operacije. Za to je najzgodnije
izvršiti transformaciju minimalne KNF na sledeći način:
Korak 1. Ceo izraz (KNF) 2 puta komplementirati,
Korak 2. Unutrašnji (donji komplement) transformisati primenom DeMorganove teoreme
(tj. komplement proizvoda transformisati u sumu komplemenata njegovih
činilaca).
Korak 3. Svaki izraz oblika nkkk xxx
21 zameniti izrazom
nkkk xxx 21
.
Korak 4. Komplement savake promenljive kx zameniti izrazom kk xx , tj. kk xx .
Primer 7.18 KNF iz primera 7.13 ćemo transformisati tako da omogućimo realizaciju
funkcije isključivo pomoću NILI elemenata.
U V O D U R A Č U N A R S T V O
94
))(())(())((
)()()(
))()(())()((),,,(
311422221
314221
314221
3142213142214321
xxxxxxxxx
xxxxxx
xxxxxx
xxxxxxxxxxxxxxxxf
Prekidačka mreža kreirana na osnovu ovako dobijenog izraza prikazana je na slici 7.20.
f
x1
x2 x
3x4
Slika 7.20 Šema prekidačke mreže kada se za realizaciju koriste isključivo NILI kola
7.2.6 Standardni kombinacioni moduli
Uočeno je da se u mnogim kombinacionim mrežama, koje su sastavni delovi različitih
digitalnih uređaja (uključujući i računare), stalno pojavljuju isti delovi. Takvi delovi se
nazivaju standardnim kombinacinim modulima. Oni se proizvode kao posebne komponente
i koriste se za projektovanje složenijih kombinacionih mreža.
Svaki standardni modul je definisan:
skupom ulaznih i izlaznih priključaka i
funkcionalnom zavisnošću izlaznih od ulaznih signala.
U struktrunim šemama se standardni moduli predstavljaju pomoću grafičkih simbola na
kojim su obeleženi ulazni i izlazni priključci.
Najčešće korišćeni standardni kombinacioni moduli su:
multiplekseri,
demultiplekseri,
koderi,
dekoderi,
konvertori kodova,
sabirači,
inkrementatori i dekrementatori,
komparatori,...
7 . P R E K I D A Č K E M R E Ž E
95
7.2.6.1 Multiplekseri
Multiplekseri su kombinacione mreže sa n upravljačkih (selektorskih) ulaza, 2n
informacionih ulaza i jednim izlazom. Pomoću selektorskih ulaza multipleksera se određuje
sa kog informacionog ulaza će signal biti prosleđen na izlaznu liniju. Dakle, multiplekser se
ponaša kao prekidač sa više položaja pri čemu se selektorskim signalima određuje položaj
prekidača. Na slici 7.21 (a) prikazan je princip rada multipleksera, a na slici 7.21 (b)
grafički simbol koji se koristi za predstavljanje multipleksera u strukturnim šemama.
MUX
2nx1
1l
2l
n2l
1x 2x
nx
y
1l
2l
n2l
y3l 3l
(b)(a)
1x 2x nx...
Slika 7.21 Princip rada multipleksera (a) i njegov grafički simbol (b)
Zavisno od broja informacionih ulaza razlikujemo različite vrste multipleksera: "2 u 1",
"4 u 1", "8 u 1",... koji se češće označavaju kao: 21, 41, 81,...
Tablica istinitosti multipleksera tipa 21 prikazana je u tabeli 7.6. Rad ovog
multipleksera se može opisati prekidačkom funkcijom:
2111 lxlxy
Tabela 7.6 Tablica istinitosti multipleksera tipa 21
211 llx Y
000 0
001 0
010 1
011 1
100 0
101 1
110 0
111 1
U V O D U R A Č U N A R S T V O
96
Strukturna šema realizacije multipleksera tipa 2x1 pomoću I, ILI i NE elemenata na slici
7.22.
y
l1
l2 x
1
Slika 7.22 Realizacija multipleksera 2x1 u bazisu I, ILI, NE
Multiplekseri se često koriste za projektovanje složenijih prekidačkih mreža, jer se
svaka prekidačka funkcija može predstaviti izrazom:
),...,1,...,,(),...,0,...,,(),...,,...,,( 212121 nknknk xxxfxxxxfxxxxxf 4.
Ovo ukazuje da se funkcija f može realizovati pomoću multipleksera tipa 2x1 tako što se
na selektorski ulaz multipleksera dovede jedna od nezavisno promenljivih, a na
informacione ulaze podfunkcije ),...,0,...,,()0( 21 nk xxxfxf i
),...,1,...,,()1( 21 nk xxxfxf kao što je prikazano na slici 7.23. Podfunkcije )0( kxf i
)1( kxf se ponovo na istovetan način mogu realizovati korišćenjem multipleksera.
MUX
2x1
f(xk=0)
kx
y
f(xk=1)
Slika 7.23 Realizacija prekidačke funkcije pomoću multipleksera tipa 2x1
Primer 7.19 Realizovati prekidačku funkciju f iz primera 7.5 pomoću multipleksera tipa
2x1.
Da bismo lakše pratili postupak, tablica istinitosti funkcije je ponovljena u tabeli 7.7.
Krenućemo sa dekompozicijom funkcije po poromenljivoj x1. U tabelama 7.8 i 7.9,
respektivno, date su tablice istinitosti podfunkcija )0( 1 xf i )1( 1 xf .
4Ovaj izraz je u literaturi poznat kao Shanonova teorema razvoja
7 . P R E K I D A Č K E M R E Ž E
97
Da bismo realizovali podfunkciju )0( 1 xf , dalje ćemo vršiti dekompoziciju po
promenljivoj 2x . Tablica istinitosti podfunkcije )0,0( 21 xxf je data u tabeli 7.10, a iz
tabele 7.8 se vidi da je podfunkcija 1)1,0( 21 xxf .
Tabela 7.7 Tablica istinitosti funkcije iz primera 7.5
321 xxx f
000 1
001 0
010 1
011 1
100 0
101 1
110 0
111 1
Tabela 7.8 Tablica istinitosti podfunkcije )0( 1 xf iz primera 7.19
32xx )0( 1 xf
00 1
01 0
1 0 1
11 1
Tabela 7.9 Tablica istinitosti podfunkcije )1( 1 xf iz primera 7.19
32xx )1( 1 xf
00 0
01 1
10 0
11 1
Tabela 7.10 Tablica istinitosti podfunkcije )0,0( 21 xxf iz primera 7.19
3x )0( 1 xf
0 1
1 0
U V O D U R A Č U N A R S T V O
98
Iz tabele 7.9 se vidi da je 31 )1( xxf tako da dalju dekompoziciju ni ove
podfunkcije nećemo vršiti.
Konačno, realizacija prekidačke funkcije f iz primera 7.19 pomoću multipleksera tipa
2x1 prikazana je na slici 7.24.
MUX
2x1
f(x1=0)
1x
f
f(x1=1)
MUX
2x1
3x
2x
f(x1=0, x2=0)MUX
2x1
3x
1f(x1=0, x2=1)
f(x1=0, x2=0, x3=0)1
0f(x1=0, x2=0, x3=1)
Slika 7.24 Realizacije prekidačke funkcije iz primera 7.19 pomoću multipleksera tipa 2x1
Multiplekseri se mogu koristiti i za konvertovanje paralelne informacije u serijsku.
Dakle, kada reč od n bitova treba transportovati kroz neki komunikacioni kanal u serijskom
obliku (bit po bit) na informacione ulaze multipleksera tipa nx1 se dovodi reč koju treba
transportovati, a na selektorske ulaze se smenjuju redni brojevi bitova u reči koji se
prosleđuju na izlaz. To znači da se na selektorske ulaze obično dovode izlazi iz brojača koji
broji po modulu n (više o brojačima možete naći u poglavlju 7.4.6).
Multiplekseri se u telekomunikacijama koriste još i da omoguće da se informacije sa
više izvora prenose kroz jedan komunikacioni kanal. Npr. signali iz više teritorijalno bliskih
telefonskih priključaka se dovode na ulaz multipleksera, a zatim se jednom bržom
komunikacionom linijom prenose dalje. Na selektorskim ulazima se i u tom slučaju
smenjuju adrese linije sa koje će se signal prenositi (propuštati) dalje.
MUX
2nx1
1x 2x
nx
Slika 7.25 Upotreba multipleksera u telekomunikacionim linijama
7.2.6.2 Demultiplekseri
Demultiplekseri obavljaju funkciju obrnutu od one koju obavljaju multiplekseri. Dakle,
oni imaju jedan informacion ulaz, n selektorskih ulaza i 2n izlaza. Pomoću selektorskih
7 . P R E K I D A Č K E M R E Ž E
99
ulaza se određuje koji će izlaz biti povezan sa ulazom, tj. na koju izlaznu liniju će biti
prosleđen signal koji se dovodi na informacioni ulaz demultipleksera. Tip demultipleksera
je određen brojem izlaznih linija, dakle može biti: 12, 1x4, 1x8,... Princip rada i grafički
simbol demultipleksera prikazani su na slikama 7.26 (a) i 7.26 (b), respektivno.
DMUX
1x2n
1y
2y
n2y
1x 2x
nx
l
1y
2y
n2y
l3y 3y
(b)(a)
1x 2x nx...
Slika 7.26 Princip rada (a) i grafički simbol (b) demultipleksera
Tablica istinitosti demultipleksera 1x4 je data u tabeli 7.11, odnosno izlazne funkcije
ovakvog demultipleksera su definisane izrazima:
.
,
,
,
214
213
212
211
lxxy
lxxy
lxxy
lxxy
Tabela 7.11 Tablica istinitosti demultipleksera tipa 14
lxx 21 y1 y2 y3 y4
000 0 0 0 0
001 1 0 0 0
010 0 0 0 0
011 0 1 0 0
100 0 0 0 0
101 0 0 1 0
110 0 0 0 0
111 0 0 0 1
Realizacija demultipleksera 1x4 na osnovu navedenih izraza prikazana je na slici 7.27.
U V O D U R A Č U N A R S T V O
100
Pošto je funkcija demultipleksera obrnuta od funkcije multipleksera, demultiplekser se
može koristiti i za konverziju serijske informacije u paralelnu. Ako komunikacionu liniju
kroz koju se informacija prenosi u serijskom obliku (bit po bit) vežemo na ulaz
demultipleksera, a izlaze demultipleksera povežemo na ulaze jednog registra sa paralelnim
čitanjem, selektorskim ulazima demultipleksera ćemo birati u koji bit registra će se upisati
ulazni bit. Smenjivanjem adrese bita gde se ulazna informacija upisuje, popunićemo
registar i spremiti ga za paralelno očitavanje. Kompletan put informacije kroz serijski
komunikacioni kanal kada se za konverziju podataka iz paralelnog u serijski oblik vrši
pomoću multipleksera, a iz serijskog u paralelni pomoću demultipleksera, prikazan je na
slici 7.28.
y
l x1 x
2
1
y2
y3
y4
Slika 7.27 Realizacija demultipleksera tipa 1x4 pomoću I i NE logičkih kola
MUX
2nx1
1x 2x
nx
PREDAJNIK
a0
a1
an
komunikacioni kanal
DMUX
1x2n
1x 2x
nx
a0
a1
an
PRIJEMNIK
Slika 7.28 Upotreba multipleksera i demultipleksera u komunikacionim sistemima za
konverziju paralelne informacije u serijsku i obrnuto
7.2.6.3 Koderi
Kao što je već rečeno, svi podaci (signali) se u računaru predstavljaju binarnom
azbukom. Koderi su prekidačke mreže koje imaju više ulaza i više izlaza i koje generišu
kodnu reč za onaj ulazni signal koji je trenutno aktivan. To znači da jedan potpuni koder
ima 2n ulaznih priključaka i n izlaznih priključaka uz ograničenje da u jednom vremenskom
trenutku vrednost samo jednog ulaznog signala može biti jednaka jedinici. Termin potpuni
7 . P R E K I D A Č K E M R E Ž E
101
označava da su sve kodne reči iskorišćene. Ako broj različitih informacija (ili signala) koje
treba kodirati nije stepen dvojke, pravi se takozvani nepotpuni koder.
Na primer, koder je sastavni deo tastature računara. Izlaz iz takvog kodera je ASCII kod
karaktera (tastera) koji je trenutno pritisnut. (Naravno, savremene tasture dozvoljavaju da
više tastera istovremeno bude pritisnuto, pa je za kodovanje potrebno koristiti i neku
dodatnu logiku).
Tip kodera se označava sa broj_ulaza/broj_izlaza pa potpuni koderi mogu biti tipa 2/1,
4/2, 8/3, 16/4... Na slici 7.29 prikazan je grafički simbol kodera.
KODER
2n/n
1x
2x
n2x
3x
1y
2y
ny
3y
Slika 7.29 Grafički simbol kodera
Tablica istinitosti kodera tipa 8/3 prikazana je u tabeli 7.11. Iz tabele su izostavljene
vrste koje odgovaraju ulaznim vektorima na kojima izlazi nisu definisani (tj. vrste koje
odgovaraju ulaznim vektorima u kojima je broj jedinica različit od 1).
Tabela 7.12 Tablica istinitosti kodera tipa 8/3
1x 2x 3x 4x 5x 6x 7x 8x 1y 2y 3y
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
Izlazne funkcije kodera tipa 8/3 date su izrazima:
87651 xxxxy
87432 xxxxy
86423 xxxxy
Realizacija kodera tipa 8/3 prikazana je na slici 7.30.
U V O D U R A Č U N A R S T V O
102
y
x1 x
2
1
y2
y3
x3 x
4x
5 x6
x7 x
8
Slika 7.30 Realizacija kodera tipa 8/3
7.2.6.4 Dekoderi
Dekoderi su prekidačke mreže sa više ulaza i više izlaza koje imaju obrnutu funkciju od
kodera. Dakle, na ulaze dekodera se dovode kodne reči, a na izlazu se aktivira onaj signal
čija je kodna reč (ili redni broj) dovedena na ulazne priključke. Potpuni dekoder sa n ulaza
imaće 2n izlaza. Tip dekodera se, takođe, označava sa broj_ulaza/broj_izlaza pa dekoderi
mogu biti tipa 1/2, 2/4, 3/8... Grafički simbol koji se koristi za prikaz dekodera u šemama
prekidačkih preža prikazan je na slici 7.31.
DEKODER
n/2n
1x
2x
n2
y
3x
1y
2y
nx
3y
Slika 7.31 Grafički simbol dekodera
Tablica istinitosti dekodera tipa 3/8 prikazana je u tabeli 7.13, a njegove izlazne
funkcije definisane su izrazima:
,3211 xxxy ,3212 xxxy
,3213 xxxy ,3214 xxxy
,3215 xxxy ,3216 xxxy
,3217 xxxy .3218 xxxy
7 . P R E K I D A Č K E M R E Ž E
103
Tabela 7.13 Tablica istinitosti dekodera tipa 3/8
1x 2x 3x 1y 2y 3y 4y 5y 6y 7y 8y
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
Realizacija dekodera tipa 3/8 na osnovu datih izraza prikazana je na slici 7.32.
y
x2 x
3
1
y2
y3
y4
x1
y1
y2
y3
y4
Slika 7.32 Realizacija dekodera tipa 3/8
Iz izraza za izlazne funkcije dekodera se vidi da svaka izlazna funkcija predstavlja
jedan potpuni proizvod ulaznih promenljivih. Kako je u poglavlju 6.3.1 pokazano da se
svaka funkcija može realizovati kao disjunkcija potpunih proizvoda koji imaju vrednost 1
tamo gde funkcija ima vrednost 1 (PDNF), otuda sledi da se svaka prekidačka funkcija n
promenljivih može realizovati pomoću jednog dekodera tipa n/2n i jednog ILI kola.
U V O D U R A Č U N A R S T V O
104
Primer 7.20 Na slici 7.33 prikazana je realizacija pomoću dekodera prekidačke funkcije
čija je PDNF data izrazom:
321321321321321321 ,, xxxxxxxxxxxxxxxxxxf
DECODER
3/8
1x
2x
3x
1y
2y
3y
4y
5y
6y
7y
8y
f
Slika 7.33 Realizacija prekidačke funkcije iz primera 7.20 pomoću dekodera
7.2.6.5 Konvertori kodova
Ponekad se u različitim digitalnim uređajima koriste različiti načini za predstavljanje
istih podataka. Da bi takvi uređaji mogli međusobno da se povežu potrebno je omogućiti
prevođenje podataka iz jednog načina predstavljanja u drugi. Najočigledniji primeri
različitih načina predstavljanja istih podataka su: različiti BCD kodovi za predstavljanje
numeričkih podataka ili različiti kodovi za predstavljanje tekstualnih podataka (ASCII,
EBCDIC, UNICODE...). Konvertori kodova vrše prevođenje podataka iz jednog načina
kodiranja u drugi. Na primer, u tabeli 7.14 prikazana je tablica istinitosti konvertora koji
prevodi prirodni BCD kod u Grejov kod.
Tabela 7.14 Tablica istinitosti konvertora prirodnog BCD koda u Grejov kod
BCD kod Grejov kod
4321 xxxx 4321 yyyy
0000 0 0 0 0
0001 0 0 0 1
0010 0 0 1 1
0011 0 0 1 0
0100 0 1 1 0
0101 0 1 1 1
0110 0 1 0 1
0111 0 1 0 0
1000 1 1 0 0
7 . P R E K I D A Č K E M R E Ž E
105
1001 1 0 0 0
1010 * * * *
1011 * * * *
1100 * * * *
1101 * * * *
1110 * * * *
1111 * * * *
7.2.6.6 Sabirači
Sabirači, kao i kombinacioni moduli koji su obrađeni u sledećim sekcijama, spadaju u
grupu aritmetičkih kombinacionih modula. Ime im potiče otuda što realizuju izvesne
aritmetičke operacije, a i u računarima se koriste u realizaciji takozvane aritmetičko-logičke
jedinice (o kojoj će detaljnije biti reči u poglavlju 9). Kada pričamo o realizaciji sabirača
binarnih brojeva, svakako je prvi problem koji treba rešiti sabiranje jednobitnih brojeva,
odnosno realizovati sabirač za jednu poziciju u broju. Podsetimo se još jednom algoritma za
sabiranje višecifrenih brojeva. Pretpostavimo da treba sabrati 2 n-tocifrena broja
01221 aaaaaA nn i 01221 bbbbbB nn . Postupak sabiranja je prikazan na slici
7.34.
1np 2np 2p 1p 0p
1na 2na 2a 1a 0a
+ 1nb 2nb 2b 1b 0b
nc 1nc 2nc 2c 1c 0c
Slika 7.34 Sabiranje 2 n-tocifrena broja
Sa slike 7.34 se vidi da se jedino razlikuje sabiranje cifara (bitova) najmanje težine.
Jedino u tom slučaju se vrši sabiranje 2 cifre, na svim ostalim pozicijama u sabiranju
učestvuju 3 ulazna podatka: cifre sa odgovarajućih pozicija iz brojeva koji se sabiraju i
prenos koji se pojavio pri sabiranju na prethoodnoj poziciji, tj. na poziciji prve manje
težine. To znači da pri realizaciji jednobitnih sabirača razlikujemo 2 slučaja:
sabirač koji ne uzimaju u obzir prenos sa prethodne pozicije - polusabirač
(engleski Half adder),
sabirač koji uzima u obzir i prenos sa prethodne pozicije - potpuni
sabirač(engleski Full adder).
Tablica istinitosti polusabirača prikazana je u tabeli 7.15, a tablica istinitosti potpunog
sabirača prikazana je u tabeli 7.16.
Na slici 7.35 (a) prikazan je grafički simbol polusabirača, a na slici 7.35 (b) grafički
simbol potpunog sabirača.
U V O D U R A Č U N A R S T V O
106
Tabela 7.15 Tablica istinitosti polusabirača
ii ba ii pc
00 0 0
01 1 0
10 1 0
11 0 1
Tabela 7.16 Tablica istinitosti potpunog sabirača
1 iii pba ii pc
00 0 0 0
0 0 1 1 0
0 10 1 0
0 11 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
HA
ci
pi
ai
bi
(a)
FA
ci
pi
ai
bi
(a)
pi-1
Slika 7.35 Grafički simbol polusabirača (a) i potpunog sabirača (b)
Za realizaciju sabirača višecifrenih brojeva, moguće je koristiti samo jedan potpuni
sabirač, ali će se u tom slučaju sabiranje bitova na različitim pozicijama vršiti u
sukcesivnim vremenskim intervalima. Takva realizacija višebitnog sabirača se naziva još i
serijski sabirač (jer se sabiranje vrši u serijskom režimu - bit po bit). Realizacija
višecifrenog serijskog sabirača prikazana je na slici 7.36. Komponenta označena kao ME na
slici predstalja memorijski element koji čuva prenos sa prethodne pozicije dok ne krene
sabiranje cifara sa sledeće pozicije.
7 . P R E K I D A Č K E M R E Ž E
107
FA
ci
pi
ai
bi
pi-1
ME
Slika 7.36 Serijski višecifreni binarni sabirač
FA FA . . . FA FA
an-1 bn-1 an-2 bn-2 a1 b1 a0 b0 0
c0c1cn-2cn-1pn-1 pn-2 p1 p0
Slika 7.37 Paralelni višecifreni binarni sabirač
Drugi način za realizaciju višecifrenog sabirača je da se koristi n posebnih potpunih
sabirača te da se izlazni prenos iz prethodnog sabirača vezuje na ulazni priključak sledećeg
sabirača (kao što je prikazano na slici 7.37). U tom slučaju sabiranje bitova na svim
pozicijama se vrši istovremeno pa se ovakva realizacija sabirača naziva paralelni sabirač.
Ipak, kod ovakve realizacije višecifarskog sabirača, sabiranje na poziciji i neće dati validan
rezultat dok se ne generiše prenos na poziciji i-1, za generisanje prenosa na poziciji i-1,
potrebno je generisati prenos na poziciji i-2... Zbog toga je precizniji naziv ovog sabirača
paralelni sabirač sa serijskim prostiranjem prenosa.
7.2.6.7 Inkrementatori i dekrementatori
Inkrementatori (dekrementatori) vrše povećanje (smanjenje) binarnog broja za 1. Za
inkrametiranje (odnosno dekrementiranje) se mogu koristiti i sabirači, ali se ponekad prave
posebni inkrementatori i dekrementatori jer je njihova realizacija jednostavnija od
realizacije sabirača.
Pogledajmo algoritam za inkrementiranje jednog n-tocifrenog binarnog broja (slika
7.38). Sa slike 7.38 uočavamo da se na svim pozicijama, osim na poziciji najmanje težine,
vrši sabiranje odgovarajućeg bita iz broja koji se inkrementira sa prenosom sa pozicije niže
težine. Na poziciji najmanje težine se vrši sabiranje bita najmanje težine sa jedinicom. To
znači da za inkrementiranje na svakoj poziciji možemo koristiti istu kombinacionu
prekidačku mrežu, s tim što ćemo na ulaz p na poziciji 0 stalno dovoditi jedinicu. Tablica
istinitosti jednobitnog inkrementatora u tom slučaju izgleda kao u tabeli 7.17. Ako
uporedimo tablice istinitosti polusabirača i jednobitnog inkrementatora, vidimo da su
apsolutno iste. To znači da se za realizaciju inkrementatora, u stvari, koriste polusabirači.
Naravno, višebitni inkrementator, isto kao i višebitni sabirač, može biti realizovan kao
serijski i kao paralelan.
U V O D U R A Č U N A R S T V O
108
1np 2np 2p 1p 0p
1na 2na 2a 1a 0a
+ 1
nc 1nc 2nc 2c 1c 0c
Slika 7.38 Inkrementiranje višecifrenog broja
Tabela 7.17 Tablica istinitosti jednobitnog inkrementatora
1 ii pa ii pc
00 0 0
01 1 0
10 1 0
11 0 1
Proces dekrementiranja višecifrenog binarnog broja prikazan je na slici 7. 39. Sa pi je u
ovom slučaju obeležena pozajmica koju treba izvršiti sa pozicije više težine (odnosno cifra
koju treba oduzeti od pozicije više težine). To znači da se pri dekrementiranju broja, od
svake cifre oduzima pozajmica generisana pri dekrementiranju na prethodnom razredu,
osim na poziciji najmanje težine. Na poziciji najmanje težine se uvek oduzima cifra 1. To
znači da, ako to tretiramo kao pozajmicu sa pozicije niže težine i fiksiramo vrednost te
pozicije na 1, rad dekrementatora na svakoj poziciji se može opisati sistemom funkcija
prikazanim u tabeli 7.18.
1np 2np 2p 1p 0p
1na 2na 2a 1a 0a
- 1
nc 1nc 2nc 2c 1c 0c
Slika 7.39 Dekrementiranje višecifrenog broja
Tabela 7.18 Tablica istinitosti jednobitnog dekrementatora
1 ii pa ii pc
00 0 0
01 1 1
10 1 0
11 0 0
7 . P R E K I D A Č K E M R E Ž E
109
7.2.6.8 Komparatori
Komparatori su kombinacione mreže koje vrše poređenje dva binarna broja. Poređenje
brojeva, u stvari, predstavlja izvršenje relacionih operatora (=, ≠, <, , >, ). Iako formalno
postoji 6 relacionih operacija, 3 su osnovne: =, < i >. Dakle, komparator 2 binarna broja (A
i B) ima 3 izlaza: A=B, A<B i A>B. Naravno u realizaciji komparatora višecifrenih
binarnih brojeva koriste se komparatori jednocifrenih binarnih brojeva. Tablica istinitosti
komparatora jednocifrenih binarnih brojeva data je u tabeli 7.19, a njegov grafički simbol
na slici 7.40.
Tabela 7.19 Tablica istinitosti jednobitnog komparatora
ii ba iiiiii bababa
00 0 1 0
01 1 0 0
10 0 0 1
11 0 1 0
ai
bi
ai bi<
ai bi=
ai bi>
Slika 7.40 Grafički simbol jednobitnog binarnog komparatora
Izlazne funkcije višebitnog binarnog komparatora (tj. komparatora binarnih brojeva
0121 aaaaA nn i 0121 bbbbB nn definisane su sledećim izrazima:
00112211221111 bababababababaBA nnnnnnnnnn ,
00112211 babababaBA nnnn ,
00112211221111 bababababababaBA nnnnnnnnnn .
7.3 Sekvencijalne prekidačke mreže
Već je poznato da stanje na izlazu kombinacione mreže zavisi od trenutne kombinacije
ulaznih promenljivih. Sa druge strane, stanje na izlazu sekvencijalnih mreža je određeno
kombinacijom ulaznih promenljivih i trenutnim (internim) stanjem mreže. Na taj način,
izlaz sekvencijalne mreže zavisi od predistorije rada mreže, a ne samo od kombinacije
ulaznih promenljivih. Kao posledica promena ulaza, ove mreže prolaze kroz sekvencu
stanja pa se iz tog razloga mreže koje pokazuju ovakvo ponašanje nazivaju sekvencijalne
mreže.
U V O D U R A Č U N A R S T V O
110
Sekvencijalne mreže se u arhitekturnom smislu razlikuju od kombinacionih mreža u
postojanju memorijskih elemenata koji „pamte” prethodno stanje mreže.
Takođe, kao što je već napomenuto ranije, funkcionalno ponašanje kombinacione
mreže može se opisati tablicama istinitosti, gde se za svaku moguću kombinaciju ulaznih
promenljivih specificira izlaz. Sa druge strane, funkcionalno ponašanje sekvencijalne mreže
se opisuje matematičkim modelom koji se naziva konačni automat (eng. Finite State
Machine).
Funkcionalno ponašanje konačnog automata može se opisati sa dve funkcije:
funkcijom stanja i funkcijom izlaza. Funkcijom stanja određeno je sledeće stanje konačnog
automata, dok funkcija izlaza definiše odgovarajući izlaz. Naziv konačni potiče iz činjenice
da se konačni automat može naći u konačnom broju stanja. Mi ćemo se ovde baviti
determinističkim konačnim automatima, koji imaju osobinu da pod dejstvom jedne
kombinacije ulaznih signala, iz tekućog stanja prelaze u najviše jedno novo stanje. Nadalje
u tekstu će se termin konačni automat koristiti za ovu vrstu automata.
Pre formalnog opisa konačnog automata biće objašnjen način njegovog funkcionisanja.
Na početku rada konačni automat se nalazi u nekom početnom stanju. Nakon toga se zada
znak sa ulaza i prelazi u stanje definisano funkcijom stanja. Isti postupak se ponavlja tj. čita
se znak po znak i prelazi se iz stanja u stanje dok se ne stigne do kraja ulaza. Nakon čitanja
određenog znaka i prelaska u novo stanje, konačni automat se više ne vraća na taj znak. Na
osnovu prethodnog može se zaključiti da bismo predvideli dalje ponašanje automata
potrebno je znati tekuće stanje i preostali deo ulazne reči.
Ponašanje konačnih automata prisutno je u mnogim uređajima u savremenom društvu
koji izvode unapred određenu sekvencu akcija zavisno od niza događaja koji su prethodili.
Jednostavni primeri su: automat za prodaju koji u slučaju ubacivanja odgovarajuće
kombinacije novčića izbacuje određeni proizvod, liftovi čije ponašanje zavisi od toga na
kom spratu se trenutno nalaze i koje dugme je pritisnuto, brave koje zahtevaju unos brojeva
u pravilnom rasporedu radi otvaranja itd. Konačni automati nalaze primenu u mnogim
oblastima računarstva kao što su: projektovanje hardvera računara, softversko inženjerstvo,
dizajn komunikacionih protokola, veštačka intelegencija itd.
Prethodni opis konačnog automata može se izraziti i sledećom formalnom definicijom.
Definicija7.10: Rad konačnog automata se može definisati kao uređena petorka
M=(A,Q,Z,fq,fz) gde je:
A - konačan neprazan skup simbola ulazne azbuke
Q - konačan neprazan skup azbuke stanja automata
Z - konačan neprazan skup simbola izlazne azbuke
fq - funkcija prelaza (stanja)
fz - funkcija izlaza
Pretpostavlja se da se na početku rada automat nalazi u nekom određenom stanju koje
pripada skupu Q.
Na slici 7.41 je dat šematski prikaz konačnog automata. Kao što se može videti sa slike
7. 41 konačni automat sadrži kombinacionu mrežu (KM) koja realizuje funkciju stanja i
funkciju izlaza, kao i memoriju (M) koja čuva informaciju o stanju. Konačni automati su
7 . P R E K I D A Č K E M R E Ž E
111
definisani različitim simbolima koji se koriste za ulaznu azbuku automata, azbuku stanja
automata, kao i za izlaznu azbuku automata. Kako se za njihovu praktičnu realizaciju
koriste komponente koje se baziraju na binarnoj logici ove simbole je neophodno
predstaviti binarnim sekvencama.Tako su simboli konačnih azbuka automata A, Q i Z pri
praktičnoj realizaciji predstavljeni binarnim azbukama X, Y i S, respektivno, tj. svakom
simbolu azbuke odgovara vektor vrednosti prekidačkih promenljivih. U diskretnim
vremenskim intervalima se na ulaz automata dovodi simbol iz konačne azbuke A
predstavljen vektorom x1,x2,...xl. Na izlazu automata se formira simbol koji pripada
konačnoj azbuci Z predstavljen vektorom y1,y2,...ym. U svakom trenutku automat se nalazi u
jednom od stanja koji pripada konačnom skupu stanja Q predstavljeno vektorom s1,s2,...sn.
Stanje automata se menja sa promenom ulaznog simbola u stanje predstavljeno vektorom
s1’,s2’,...sn’.
Slika 7.41 Šematski prikaz konačnog automata
U odnosu na to od čega zavisi funkcija izlaza, konačne automate možemo podeliti na
dve vrste: Milijev i Murov konačni automat. Kod konačnog automata Milijevog tipa izlazni
simbol je određen prethodnim stanjem automata i simbolom koji se trenutno nalazi na ulazu
automata, dok je kod Murovog automata izlazni simbol određen samo stanjem automata u
datom trenutku. Formalni opisi Milijevog i Murovog automata dati su kroz definicije.
Definicija 7.11: Konačni automat je Milijevog tipa ako je:
Funkcija prelaza data sa QAQfq : i,
Funkcija izlaza data sa ZAQfq :
Definicija7.12: Konačni automat je Murovog tipa ako je:
Funkcija prelaza data sa QAQfq : i,
Funkcija izlaza data sa ZQfq :
U V O D U R A Č U N A R S T V O
112
Iz navedenih definicija se može zaključiti da je funkcija prelaza u slučaju oba automata
ista. Ona definiše novo stanje q(t) u diskretnom vremenskom trenutku t u zavisnosti od
prethodnog stanja q(t-1) (tj. stanja u prethodnom vremenskom trenutku) i ulaznog simbola
u datom vremenskom trenutku, a(t). Tako u slučaju oba automata važi:
)).(),1(()( tatqftq q
Funkcija izlaza definiše izlazni simbol, i u slučaju Milijevog automata izlazni simbol
z(t) u diskretnom vremenskom trenutku t je određen prethodnim stanjem q(t-1) i ulaznim
simbolom u istom vremenskom trenutku a(t) tj. važi:
))(),1(()( tatqftz z .
U slučaju Murovog automata izlazni simbol z(t) u diskretnom vremenskom trenutku t
je određen samo stanjem u datom trenutku tj. q(t) pa za izlaznu funkciju ovog automata
važi:
))(()( tqftz z .
Može se dokazati da su ova dva modela konačnih automata ekvivalentna. To znači da
se za svaki Milijev može naći ekvivalentan Murov i obratno. Način prelaza iz jednog u
drugi tip automata neće biti detaljnije razmatrani.
7.4 Načini predstavljanja konačnih automata
Za opis funkcija prelaza i izlaza se može koristiti više različitih načina. U zavisnosti od
svrhe za koju se koriste, konačni automati se mogu predstaviti preko tablica prelaza i izlaza,
grafova, različitih vrsta matrica ili sistemima prekidačkih funkcija.
7.4.1 Predstavljanje automata tablicama prelaza i izlaza
Tablica prelaza je tabela kod koje oznake kolona predstavljaju stanja konačnog
automata, oznake vrsta predstavljaju simboli ulazne azbuke, a element na poziciji (i,j)
predstavlja stanje u koje se prelazi iz stanja koje odgovara koloni j kada se na ulazu pojavi
simbol koji odgovara vrsti i. Tablica izlaza je tabela koja ima iste vrste i kolone kao tabela
prelaza. Element tabele izlaza je simbol izlazne azbuke koji se generiše na izlazu kada je
automat u stanju koje odgovara koloni j, a na ulazu se pojavi simbol koji odgovara vrsti i.
Umesto tablicama prelaza i izlaza, konačni automat se može predstaviti jedinstvenom
tablicom prelaza/izlaza čiji su elementi parovi novo_stanje/izlazni_simbol. U tabelama 7.
20, 7. 21 i 7. 22 dati su primeri tablice prelaza, tablice izlaza i tablice prelaza/izlaza
A={a,b}, Z={0,1,2}, Q={q1,q2,q3}.
7 . P R E K I D A Č K E M R E Ž E
113
Tabela 7.20 Tablica prelaza
Tabela 7.21 Tablica izlaza
Tabela 7.22 Tablica prelaza/izlaza
Kako kod Murovog automata izlazni simbol zavisi samo od stanja automata u datom
trenutku, a ne i od ulaznog simbola za njegovo predstavljanje dovoljno je dati samo tzv.
modifikovanu tablicu prelaza koja predstavlja tablicu prelaza kojoj je dodata vrsta u koju se
upisuju izlazni simboli koji odgovaraju datom stanju. Npr. za A={a,b}, Z={0,1,2},
Q={q1,q2,q3} modifikovana tablica prelaza može izgledati na način prikazan u tabeli 7.23.
Tabela 7.23 Modifikovana tablica prelaza
7.4.2 Predstavljanje konačnih automata pomoću grafova
Funkcije prelaza i izlaza se mogu predstaviti i orijentisanim grafovima tj. grafovima
prelaza automata. Automat Milijevog tipa predstavlja se orijentisanim grafom kod koga
čvorovi odgovaraju stanjima konačnog automata, poteg (grana) između čvorova qi i qj
q1 q2 q3
a q1 q1 q3
b q2 q3 q1
q1 q2 q3
a 0 1 0
b 2 2 1
q1 q2 q3
a q1/0 q1/1 q3/0
b q2/2 q3/2 q1/1
Z: 0 2 1
q1 q2 q3
a q3 q2 q2
b q2 q3 q1
U V O D U R A Č U N A R S T V O
114
postoji ukoliko u grafu postoji prelaz iz stanja qi u stanje qj. Oznaka potega predstavlja
uniju parova ulazni_simbol/izlazni_simbol takvih da ulazni_simbol prevodi automat iz
stanja qi u stanje qj i pri tome se generiše izlazni_simbol. Na slici 7.42 je dat graf Milijevog
automata koji je predstavljen odgovarajućom tablicom prelaza/izlaza.
Slika 7.42 Graf Milijevog automata
Kod Murovog automata oznaka čvora je par stanje_automata/izlazni_simbol jer
izlazni simboli zavise samo od stanja dok se u oznakama grana nalaze samo unije ulaznih
simbola koji prevode automat iz stanja qi u stanje qj. Na slici 7.43 je dat graf Murovog
automata predstavljen modifikovanom tablicom prelaza/izlaza.
Slika 7.43 Graf Murovog automata
7.4.3 Predstavljanje konačnih automata pomoću matrica
Korišćenje matrica, kao načina predstavljanja konačnih automata, omogućava da se
formalizuje niz operacija koji se na grafu automata može obaviti vizuelno. U slučaju kad se
te operacije ne mogu obaviti vizuelno ili je graf automata toliko složen da je to nemoguće
izvesti, matrice imaju prednost u zadavanju automata. Takođe, uz pomoć matrica je lakše
izvršiti minimizaciju stanja automata.
q1 q2 q3
a q1/0 q1/1 q3/0
b q2/2 q3/2 q1/1
Z: 0 2 1
q1 q2 q3
a q3 q2 q2
b q2 q3 q1
7 . P R E K I D A Č K E M R E Ž E
115
Matrica prelaza prve vrste (matrica veza) je matrica čije dimenzije odgovaraju broju
stanja konačnog automata, a vrste i kolone odgovaraju stanjima automata. Element na
poziciji (i,j) predstavlja uniju ulaznih simbola koji prevode automat iz stanja qiu stanje qj.
Matrica prelaza/izlaza prve vrste (M) je matrica kod koje broj vrsta i kolona
odgovaraju broju stanja konačnog automata, a element na poziciji (i,j) predstavlja uniju
parova ulazni_simbol/izlazni_simbol takvih da ulazni_simbol prevodi automat iz stanja qi
u stanje qj i pri tome se generiše izlazni_simbol.
Na slici 7.44 su za graf sa slike 7.42 prikazane matrice prelaza i matrice prelaza/izlaza
prve vrste.
ab
ba
ba
0/1/
2/1/
2/0/
ab
ba
ba
a) b)
Slika 7.44 Matrica prelaza prve vrste (a) i matrica prelaza/izlaza prve vrste (b)
Drugi način matričnog zadavanja automata predstavljaju matrice prelaza druge vrste.
One opisuju raspodelu prelaza za svaki ulazni simbol posebno. Slično se definišu i matrice
izlaza. Ove matrice omogućavaju da se određenim postupkom za zadato početno stanje i
dovedenu ulaznu reč u određenom vremenskom trenutku t odrede stanje i izlazni simbol u
tom trenutku.
Matrica prelaza druge vrste je matrica koja se kreira za svaki ulazni simbol. Za izlazni
simbol al ima oznaku T(al). Ova matrica ima broj vrsta i kolona koji odgovaraju broju
stanja automata. Element na poziciji (i,j) u ovoj matrici definisan je na sledeći način:
jr
definisanonijeaqf
qaqf
qaqf
t
liq
rliq
jliqlij
,
),(,
),(,0
),(,1
Matrica izlaza druge vrste Milijevog automata kreira za svaki izlazni simbol, i za izlazni
simbol al ima oznaku Y(al) dok kod Murovog automata postoji samo jedna takva matrica.
Kod Milijevog automata ova matrica ima broj vrsta jednak broju stanja automata, dok je
broj kolona jednak broju izlaznih simbola. Element na poziciji (i,j) u ovoj matrici definisan
je na sledeći način:
jr
definisanonijeaqf
zaqf
zaqf
y
liz
rliz
jliz
lij
,
),(,
),(,0
),(,1
Na slikama 7.45 i 7.46 su za graf sa slike 7.42 prikazane matrice prelaza i matrice
izlaza druge vrste.
U V O D U R A Č U N A R S T V O
116
001
100
010
)(
100
001
001
)( bTaT
Slika 7.45 Matrica prelaza druge vrste
010
100
100
)(
001
010
001
)( bYaY
Slika 7.46 Matrica izlaza druge vrste
Za svako stanje automata qi definiše se vektor stanja Q čiji su elementi:
ji
jisi
j,0
,1
Slično, za svaki izlazni simbol automata zi definiše se vektor izlaza Z čiji su elementi:
ji
jiwi
j,0
,1
Na osnovu ova dva vektora može se odrediti stanje nakon primene ulaznog simbola a(t),
na osnovu Q(t)=Q(t-1)T(a(t)). Slično, izlazni simbol na osnovu matrice izlaza druge vrste
se u slučaju Milijevog automata određuje preko Z(t)=Q(t-1)Y(a(t)), a u slučaju Murovog
automata preko Z(t)=Q(t-1)Y. Ovim je omogućeno da se za zadato početno stanje i
dovedenu ulaznu reč u određenom vremenskom trenutku t odrede stanje i izlazni simbol u
tom trenutku.
7.4.4 Predstavljanje konačnih automata pomoću prekidačkih funkcija
Ako se simboli ulazne azbuke, izlazne azbuke i azbuke stanja automata binarno kodiraju
tj. simbol bilo koje azbuke predstavi vektorom vrednosti prekidačkih nezavisno
promenljivih, tada se funkcija prelaza može opisati sistemom prekidačkih funkcija prelaza,
a funkcija izlaza sistemom prekidačkih funkcija izlaza. Postupak preslikavanja funkcija
prelaza i izlaza u sistem prekidačkih funkcija prelaza, odnosno izlaza odvija se na sledeći
način: simboli azbuke A se kodiraju binarnim rečima dužine l, simboli azbuke Z se kodiraju
binarnim rečima dužine m, a simboli azbuke Q se kodiraju binarnim rečima dužine n.
7 . P R E K I D A Č K E M R E Ž E
117
Funkcijama fq i fz odgovaraju sistemi prekidačkih funkcija f i g. Funkcija prelaza
konačnog automata se sada opisuje sistemom prekidačkih funkcija na sledeći način:
Funkcija izlaza se opisuje sistemom prekidačkih funkcija izlaza i u slučaju Milijevog
automata ima sledeći oblik:
U slučaju Murovog automata funkcija prelaza ima isti oblik kao i za Milijev automat
dok sistem funkcija izlaza ima sledeći oblik:
Za predstavljanje funkcija prelaza, kao i funkcije izlaza konačnog automata se može
koristiti bilo koji način za predstavljanje prekidačkih funkcija: tablica istinitosti, vektor
istinitosti, skupovi decimalnih indeksa vektora, decimalni indeks funkcije, analitičke forme
(PKNF, PDNP, PPNF, KP), Karnoove mape, itd.
Primer 7.21 Konačni automat zadat grafom sa slike 7.42 predstaviti prekidačkim
funkcijama.
Korak 1. Iskodiraćemo najpre ulaznu azbuku i azbuku stanja binarnom azbukom. Pošto
ulazna azbuka sadrži 2 simbola (a i b), kodne reči za njihovo kodiranje će biti
dužine 1 ( 12log2 ), tj. biće nam potrebna 1 ulazna promenljiva. Način
kodiranja ulazne azbuke prikazan je u tabeli 7.24.
Azbuka stranja sadrži 3 simbola (q1, q2 i q3), pa je za njeno kodiranje dovoljno koristiti
kodne reči dužine 2 ( 23log2 ), pa ćemo koristiti 2 promenljive za predstavljanje stanja
automata. Jedan od mogućih načina za kodiranje azbuke stanja prikazan je u tabeli 7.25. Na
sličan način kodiraćemo i azbuku izlaza, što je i prikazano u tabeli 7.26.
Korak 2. U skladu sa uvedenim kodiranjem u prethodnom koraku, funkcije stanja i
funkcije izlaza konačnog automata sa slike 7.42, prikazane su tablicom
istinitosti u tabeli 7.27.
),,,,,()1(
),,,,,()1(
11
1111
nlnn
nl
QQxxgtQ
QQxxgtQ
),,,,,(
),,,,,(
11
1111
nlmm
nl
QQxxfz
QQxxfz
),,(
),,(
1
111
nmm
n
QQfz
QQfz
U V O D U R A Č U N A R S T V O
118
Tabela 7.24 Način kodiranja ulazne azbuke
simbol x
a 0
b 1
Tabela 7.25 Način kodiranja azbuke stanja
stanje Q1Q2
q1 00
q2 01
q3 10
Tabela 7.26 Način kodiranja izlazne azbuke
izlaz y1y2
0 00
1 01
2 10
Tabela 7.27 Automat predstavljen sistemom prekidačkih funkcija
x Q1(t) Q2(t) Q1(t+1) Q2(t+1) y1 y2
0 0 0 0 0 0 0
0 0 1 0 0 0 1
0 1 0 1 0 0 0
0 1 1 * * * *
1 0 0 0 1 1 0
1 0 1 1 0 1 0
1 1 0 0 0 0 1
1 1 0 * * * *
Radi boljeg razumevanja funkcionisanja konačnog automata, ovde ćemo navesti primer
automata za prodaju bombona i opisati način njegovog rada preko konačnih automata.
Primer 7.22 Automat za prodaju prodaje bombone za 15 dinara. Automat prima metalne
novčiće od 5 i 10 dinara. Kada je suma ubačenog novca veća ili jednaka 15 dinara automat
nudi bombonu i ako postoji vraća kusur. Nakon toga, automat čeka sledeću mušteriju.
Odrediti i nacrtati tablicu prelaza automata.
Iz teksta primera možemo zaključiti da na ulazu automata može da se javi novčić od 5
dinara, novčić od 10 dinara ili nijedan od ta dva. Tako, za predstavljanje simbola ulazne
azbuke koristimo dva bita x1x2 i to tako da x1=1 predstavlja ubacivanje novčića od 10
dinara, a x2=1 predstavlja ubacivanje novčića od 5 dinara i ako su oba jednaka 0 nije
ubačen nijedan od ta dva novčića. Sa druge strane, automat se može naći u sledećim
7 . P R E K I D A Č K E M R E Ž E
119
mogućim stanjima: početno stanje Q1 kad još nije ništa ubačeno, stanje Q2 koje označava da
je ubačeno je 5 dinara i stanje Q3 koje označava da je ubačeno je 10 dinara. Ako je automat
u stanju koje označava da je ubačeno 10 dinara i na ulazu se nađe novčić od 5 dinara
automat treba da izbaci bombonu i vrati se u početno stanje. U slučaju da se automat nalazi
u stanju koje označava da je ubačeno 10 dinara i na ulazu se nađe novčić od 10 dinara
automat treba izbaci da bombonu i kusur (od 5 dinara) i vrati se u početno stanje. Da li će
se na izlazu naći bombona, bombona i kusur ili ništa od toga predstavićemo odgovarajućim
binarnim vrednostima izlaza automata. Tako će z1=1 označavati da na izlazu treba da se
nađe bombona, z2=1 da na izlazu treba da se nađe kusur. Ako su z1=1 i z2=1 treba da se
nađe i bombona i kusur i ako su z1=0 i z2=0 na izlazu nema ničega. Na osnovu prethodnog
tablica prelaza/izlaza za ovako opisan automat data u tabeli 7.28.
Tabela 7.28 Tablica prelaza
q1 q2 q3
00 q1/00 q2/00 q3/00
01 q2/00 q3/00 q1/10
10 q3/00 q1/10 q1/11
7.4.5 Memorijski elementi
Pošto je glavna razlika između kombinacionih i sekvencijalnih mreža prisustvo
memorijskih elemenata u kojima se pamte osnovne informacije o vrednostima prethodno
dovedenih ulaza, ovde će ukratko biti objašnjeni memorijski elementi koji se koriste u tu
svrhu. Osnovna karakteristika memorijskih elemenata je da ostaju u uspostavljenom stanju
i nakon izostanka pobudnih (ulaznih) signala koji su ih doveli u to stanje. U ovom
stabilnom stanju mogu ostati neograničeno dugo, sve do pojave novih ulaznih signala. Ovi
memorijski elementi se još nazivaju elementarni automati jer imaju najmanji broj mogućih
stanja. Oni imaju dva stabilna stanja koja služe za pamćenje 1 bita u računaru i za njihovu
hardversku realizaciju koriste se bistabilna kola, tj. flip-flopovi. Elementarni automati su
obično automati Murovog tipa. Dvoma stabilnim stanjima odgovaraju dva izlazna signala
koja služe za njihovo razlikovanje. Ova dva stanja i izlazni signali se označavaju istim
simbolom Q, koji može imati vrednost "0” ili “1”. U daljem tekstu biće navedeni neki od
osnovnih flip-flopova koji služe za realizaciju konačnih automata. Za svaki od njih biće dat
zakon funkcionisanja tj. biće prikazana tablica istinitosti koja opisuje funkciju prelaza i
izveden analitički izraz. Zakon funkcionisanja se daje samo funkcijom prelaza zato što se
izlazni signal poklapa sa signalom stanja.
7.4.5.1 Osobine i zakoni funkcionisanja flip-flopova
Da bi u potpunosti razumeli način funkcionisanja flip-flopova moramo prvo objasniti
razliku između sinhronih i asinhronih automata. Sinhroni automati su oni kod kojih se sve
promene stanja memorijskih elemenata dešavaju pod kontrolom spoljašnjeg taktnog
signala. Ovo znači da se stanja menjaju u jednakim vremenskim trenucima koje određuje
generator sinhronizacionih impulsa. Za razliku od sinhronih, kod asinhronih automata
U V O D U R A Č U N A R S T V O
120
promene stanja memorijskih elemenata zavise od promene ulaznih signala i unutrašnjih
kašnjenja logičkih kola kroz koja ti signali prolaze. Kako se za hadversku realizaciju
memorijskih elemenata koriste flip-flopovi, za svaki od opisanih flip-flopova važi da mogu
biti upravljani taktnim signalom ili ne, zavisno od primene. Ako su upravljani taktnim
signalom zvaćemo ih taktovani flip-flopovi, u suprotnom netaktovani flip-flopovi.
D flip-flop ima jedan informacioni ulazni priključak (D). U opštem slučaju, rad ovog
flip-flopa se zasniva na tome da se na izlaz automata prenosi vrednost ulaznog signala (D).
Kod taktovanog D flip-flopa, vrednost izlaznog signala se menja samo kada je taktni signal
postavljen na 1. Izlaz Q preuzima vrednost na ulazu D (D - eng. Delay (kašnjenje) zbog
zadržavanja ulaza za jedan taktni interval) u trenutku kad je taktni signal postavljen na 1.
Jedna od primena ovog flip-flopa je u pomeračkim registrima, gde se ulazni podatak u flip-
flopu pomera na izlaz flip-flopa zakašnjen zajedan taktni interval. O pomeračkim registrima
biće više reči u potpoglavlju 7.4.6.
T flip-flop ima jedan informacioni ulazni priključak (T). Kada se ulazni T priključak
postavi na vrednost 1, stanje automata se komplementira. Kada je T ulaz postavljen na
vrednost 0, stanje automata ostaje nepromenjeno. Ovakav tip flip-flopa ima primenu u
brojačkim registrima.
RS Flip-flop sa 2 ulazna priključka: S (eng. Set-postavljanje) koji postavlja stanje
automata na 1 i R (eng. Reset-brisanje) koji postavlja stanje automata na 0. Nije dozvoljeno
da S i R ulaz istovremeno budu postavljeni na 1. Kada su i S i R ulaz postavljeni na 0,
stanje automata ostaje nepromenjeno.
JK flip-flop je flip-flop sa 2 ulazna priključka: J i K. Ako je J=K=0 zadržava se
prethodno stanje automata. Ulaz J=1 postavlja stanje automata na 1 kada je K=0, dok K=1
postavlja stanje automata na 0 kada je J=0. Ako je J=K=1 stanje automata se komlementira.
Rad flip-flopa kao memorijskog elementa može biti prikazan tablicom istinitosti, ili
pomoću odgovarajućih logičkih funkcija prikazanih u analitičkom obliku. Grafički simboli
opisanih flip-flopova za slučaj netaktovanih i za slučaj taktovanih flip-flopova, gde je takt
označen sa C, kao i zakoni funkcionisanja pomenutih flip-flopova (tablicom istinitosti i u
analitičkom obliku) prikazani su redom na slikama 7.47, 7.48, 7.49 i 7.50. Radi uprošćenja,
zakoni funkcionisanja su izvedeni za netaktovane flip-flopove.
Slika 7.47 Grafički simbol i zakon funkcionisanja D flip-flopa
Slika 7.48 Grafički simbol i zakon funkcionisanja T flip-flopa
D D
0 0 000
1111
00 01 11 1
0101
Q(t)
Q(t)
Q(t+1)=D
Q(t+1)
D
D
D
D
Q
Q
Q
Q
C
T T
0 0 00
0
11
1100 1
1 11 0
0101
Q(t)
Q(t)
Q(t+1)= Q(t)+T (t)T Q
Q(t+1)
T
T
Q
Q
Q
Q
T
T
C
7 . P R E K I D A Č K E M R E Ž E
121
Slika 7.49 Grafički simbol i zakon funkcionisanja RS flip-flopa
Slika 7.50 Grafički simbol i zakon funkcionisanja JK flip-flopa
7.4.6 Standardni sekvencijalni moduli
Pojedini delovi računara realizuju se korišćenjem različitih modula koji predstavljaju
sekvencijalne mreže i za čije projektovanje se koristi teorija konačnih automata. Ove
module nazivamo standardnim sekvencijalanim modulima. Nadalje u tekstu biće opisani
neki od njih.
Registri su sekvencijalne mreže koji u računarima i drugim digitalnim sistemima služe
za pamćenje binarnih reči. Registar koji služi za pamćenje binarnih reči od n bitova je u
stvari sekvencijalna mreža od n razreda, gde za svaki bit binarne reči postoji po jedan
razred koji predstavlja memorijski element (tj. flip-flop). Na taj način, registri predstavljaju
niz bistabilnih kola koji se tretiraju kao jedinstvena celina. Registri su neophodni i koriste
se tamo gde treba ostvariti vezu između blokova računara koji rade različitim brzinama, pri
realizovanju aritmetičko-logičkih operacija, za privremeno pamćenje operanada i rezultata
operacija, za konverzije podataka iz paralelnog načina predstavljanja u serijski ili obratno,
za brojanje događaja itd.
Za označavanje registara koriste se simbolička imena. Ako je ime registra R tada se
njegovo stanje (sadržaj) označava sa (R).Ako se registar sastoji od n razreda, stanja registra
označićemo sa Qn-1Qn-2...Q0. Postoji više vrsta registara.
RS SR
0
0
0
1
0
1
00 01 10 11
0 00
11*
*11
00
0
0
1
1
1
1
1
0
11
0
*
1
1
0 0
*
0
0
1
1
0
0
1
1
Q(t)
Q(t)
Q(t+1)= Q(t)S+R
Q(t+1)
RS
RS
Q
Q
Q
Q
R
R
S
S
C
KJ JK
0
0
0
1
0
1
00 01 10 11
0 00
110 111
00
0
0
1
1
1
1
1
0
11
0
1
1
1
0 0
0
0
0
1
1
0
0
1
1
Q(t)
Q(t)
Q(t+1)= Q(t)J (t)+Q K
Q(t+1)
JK
JK
Q
Q
Q
Q
K
K
J
J
C
U V O D U R A Č U N A R S T V O
122
7.4.6.1 Registar sa paralelenim upisom i čitanjem
Paralelni registar tj. registar sa paralelnim upisom i čitanjem omogućava da se u jednom
vremenskom intervalu svi bitovi jedne binarne reči upišu ili pročitaju istovremeno. Kod
ovog registra se upis i čitanje vrši istovremeno na svim razredima. Za pamćenje svake cifre
u binarnoj reči koristi se po jedan flip-flop.
Funkcija prelaza jednog razreda ovog registra data je u tablici istinitosti u tabeli 7.29
gde je Ik – bit koji se upisuje, C – taktni signal. Na slici 7.51 su prikazani i princip rada i
njegova realizacija preko D flip-flopova.
Tabela 7.29 Tablica istinitosti jednog razreda paralelnog registra
Slika 7.51 Princip rada paralelnog registra i realizacija paralelnog registra preko D
flip-flopa
7.4.6.2 Registar sa serijskim upisom i čitanjem
Serijski registar je registar kod koga se u jednom vremenskom intervalu može upisati ili
pročitati samo jedan bit. Iz registra sa serijskim upisom binarna reč se upisuje serijski, bit
po bit. Iz registra sa serijskim čitanjem binarna reč se čita serijski bit po bit. Registar sa
serijskim upisom i čitanjem se naziva i pomerački registar.
Na slici 7.52 prikazan je princip rada ovog registra kao i njegova realizacija preko D
flip-flopova.
C Ik Qk(t) Qk(t+1)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
ulazni podaci
izlazni podaci
D D D D
Q Q Q Q
Q Q Q Q
clk
I0
Q0
I1
Q1
I2
Q2
I3
Q3
7 . P R E K I D A Č K E M R E Ž E
123
Slika 7.52 Princip rada serijskog registra i realizacija registra preko D flip-flopova
Kod serijskog registra binarna reč se u registar upisuje bit po bit. Zakon funkcionisanja
pomeračkog registra koji vrši pomeranje sadržaja u levo može se predstaviti izrazima:
)1,1()()1( 1
0
nkzatQCtQ
ICQ
kk
gde je:
I – bit koji se upisuje
C – taktni signal
Pored navednih tipova postoje i paralelno-serijski i serijsko-paralelni registri koji nalaze
veliku primenu u računarskim komunikacijama.
7.4.6.3 Brojački registri
Brojač u računaru ili brojački registar je sekvencijalna mreža koja služi za brojanje
različitih događaja i merenje vremenskih intervala. Kod ovih registara binarni niz koji
predstavlja stanje (sadržaj) brojača se povećava ili smanjuje za 1 pri pojavi taktnog
impulsa. Novo stanje se zadržava do pojave sledećeg taktnog impulsa. Brojač na taj način
sekvencijalno prolazi kroz n stanja. Moduo brojača je broj stanja kroz koji prolazi brojač
pre nego što se vrati u početno stanje. Najčešće koriščeni brojači su brojači po modulu 2n i
dekadni brojači (brojači po modulu 10). Brojači po modulu 2n se realizuju kao n-to razredni
registri.
U tabeli 7.30 data je tablica istinitosti brojača po modulu 4, a na slici 7.53 njegova
realizacija preko JK flip-flopova (a) i D flip-flopova (b). Realizacija brojača po modulu 4
preko D flip-flopova pokazuje da sekvencijalna mreža, u opštem slučaju, sadrži i
kombinacioni i memorijski deo. U konkretnom slučaju memorijski deo čine flip-flopovi,
dok kombinacioni deo čini XOR kolo.
ulazni podaci izlazni podaciizlazni podaci ulazni podaci
ulazni podaci izlazni podaciD D D D
Q Q Q Q
Q Q Q Q
clk
U V O D U R A Č U N A R S T V O
124
Tabela 7.30 Tablica istinitosti brojača po modulu 4 i realizacija brojača po modulu 4
preko JK flip-flopova
a) b)
Slika 7.53 Realizacija brojača po modulu 4 preko a) JK flip-flopova b) D flip-flopova i
XOR kola
Q1(t) Q0(t) C Q1(t+1) Q0(t+1)
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
J
Q
Q
K
SET
CLR
“1”
J
Q
Q
K
SET
CLR
clk
Q
QSET
CLR
D
Q
QSET
CLR
D
clk
7 . P R E K I D A Č K E M R E Ž E
125
Pitanja i zadaci
1. Šta su prekidačke mreže?
2. Šta je logički element (logičko kolo)?
3. Navesti parametre logičkih kola i objasniti koeficijent izlaza.
4. Navesti i objasniti načine kodiranja binarnih vrednosti u logičkim kolima.
5. Navesti grafičke simbole logičkih kola koja se najčešće koriste u prekidačkim
mrežama i tablice istinitosti Bulovih operacija koje su tim kolima realizovane.
6. Objasniti razliku u strukturi i u načinu funkcionisanja kombinacionih i sekvencijalnih
prekidačkih mreža.
7. Navesti pravila za povezivanje logičkih elemenata u kombinacionoj prekidačkoj mreži.
8. Šta je to strukturna šema prekidačke мреже?
9. Šta je zadatak analize, a šta sinteze prekidačkih mreža?
10. Objasniti postupak analize kombinacione prekidačke mreže i izvršiti analizu mreže
prikazane na slici 7.41.
f
x1
x2 x
3x4
Slika 7.41 Kombinaciona prekidačka mreža za pitanje 10.
11. Izvršiti analizu prekidačke mreže sa slike 7.42 i kreirati tablicu istinitosti funkcije koja
je mrežom realizovana.
Slika 7.42 Kombinaciona prekidačka mreža za pitanja 11 i 13.
12. Šta je stepen prekidačke mreže? Kog stepena je prekidačka mreža sa slike 7. 42.
Objasniti.
13. Navesti i kratko objasniti faze u procesu sinteze kombinacionih mreža.
14. Korišćenjem aksiona i teorema Bulove algebre pokazati kako se operacije NE, I i ILI
mogu realizovati korišćenjem NI operacije. Na osnovu dobijenih izraza nacrtati šeme
prekidačkih mreža za realizaciju NE, I i ILI funkcija pomoću NI kola.
U V O D U R A Č U N A R S T V O
126
15. Šta je implikanta, a šta prosta implikanta prekidačke funkicije?
16. Šta je implicenta, a šta prosta implicenta prekidačke funkcije?
17. Šta je to neproširena disjunktivna normalna forma.Dokazati da je izraz
313231 xxxxxx nepreopširna DNF funkcije f iz primera 7.3.
18. Tablica istinitosti prekidačke funkcije 3 promenljive data je u tabeli 7.20. Predstaviti
funkciju Karnoovom mapom i kreirati minimalnu KNF i minimalnu DNF funkcije.
Tabela 7.31 Tablica istinitosti funkcije iz pitanja 18.
x1x2x3 f
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1 1
1
1
0
0
1
1
0
1
19. Prekidačku funkciju , ,f x y z xy xz predstaviti Karnoovom mapom.
20. Prekidačka funkija f predstavljena je Karnoovom mapom u tabeli 7.21. Odrediti sve
elementarne proizvode implikante funkcije f i sve elementarne proizvode proste
implikante funkcije f.
Tabela 7.32 Karnoova mapa funkcije za pitanje 20
21xx
43xx
00 01 11 10
00 0 0 0 0
01 1 0 0 1
11 1 0 0 1
10 0 1 0 0
21. Nacrtati šemu prekidačke mreže koja realizacije funkciju iz primera 7.18 korišćenjem
isključivo dvoulaznih NILI kola.
22. Kom tipu prekidačkih mreža pripada multilekser? Objasniti princip rada multipleksera
i kreirati tablicu istinitosti multipleksera tipa 2x1.
23. Nacrtati strukturnu šemu multipleksera tipa 2x1 korišćenjem isključivo NI kola.
7 . P R E K I D A Č K E M R E Ž E
127
24. Ako se na informacione ulaze multipleksera tipa 4x1 (4-u-1) dovede kombinacija 1101,
šta treba dovesti na njegove upravljačke (selektorske) ulaze tako da na izlazu
multipleksera bude 0? Obrazložiti rešenje.
25. Kom tipu prekidačkih mreža pripada demultiplekser? Objasniti način funkcionisanja
demultipleksera. Kreirati tablicu istinitosti demultipleksera tipa 1x4 (1-u-4).
26. Koja je razlika u načinu funkcionisanja multipleksera i demultipleksera?
27. Ako se na upravljačke (selektorske) ulaze demultipleksera 1x4 (1-u-4) dovede
kombinacija 11, a na informacioni ulaz 1, šta će biti na izlazima demultipleksera?
Obrazložiti rešenje.
28. Kreirati tablicu istinitosti demultipleksera 1x4, a zatim nactrati njegovu strukturnu
šemu korišćenjem I i NE kola.
29. Kom tipu prekidačkih mreža pripada dekoder? Objasniti način funkcionisanja
dakodera. Ako se radi o dekoderu sa 3 ulaza i ako se na njih dovedu signeali 110, šta će
biti na izlazima dekodera. Obrazložiti rešenje.
30. Realizovati konvertor prirodnog BCD koda u Grejov kod korišćenjem logičkih kola I,
ILI i NE. Tablica itinitosti konvertora je data u tabeli 7.14.
31. Kreirati tablice istinitosti polusabirača i potpunog sabirača i objasniti način
funkcionisanja svakog od njih.
32. Nacrtati strukturnu šemu realizacije popusabirača i potpunog sabirača u bazisu I, ILI i
NE.
33. Kojoj grupi prekidačkih mreža pripada komparator? Kreirati tablicu istinitosti
jednobitnog komparatora.
34. Realizovati jednobitni komparator binarnih brojeva u bazisu I, ILI i NE.
35. Realizovati komparator četvorobitnih binarnih brojeva pomoću komparatora
jednobitnih binarnih brojeva i logičkih kola.
36. Opisati zadavanje automata matricama prve vrste. Objasniti na primeru.
37. Opisati zadavanje konačnih automata pomoću sistema prekidačkihfunkcija. Objasniti
na primeru.
38. Objasniti razliku između Milijevog i Murovog automata. Ilustrovati tu razliku na
primeru grafova pomenutih automata.
39. Opisati zadavanje Milijevog automata tablicama prelaza i izlaza.
40. Šta su memorijski elementi? Navesti vrste memorijskih elemenata i opisati način
finkcionisanja jednog od njih.
41. Objasniti način funkcionisanja T flip-flopa. Ako je na informacioni ulaz dovede T=1, a
flip-flop se nalazio u stanju Q(t)=0, koja je vrednost na izlazu flip-flopa? Obrazložiti
rešenje.
42. Objasniti način funcionisanja taktovanog D flip-flopa. Ako je taktni signal postavljen
na C=1, na informacioni ulaz se dovodi D=1, a flip-flop se nalazio u stanju Q(t)=0,
koja je vrednost na izlazu flip-flopa? Obrazložiti rešenje.
U V O D U R A Č U N A R S T V O
128
43. Objasniti način funkionisanja JK flip-flopa. Šta će biti na izlazu flip-flopa ako se na
ulaze dovedu J=1 i K=0? Obrazložiti rešenje.
44. Kom tipu prekidačkih mreža pripadaju registri? Objasniti princip rada brojačkog
registra i nacrtati tablicu istinitosti funkcije prelaza brojača po modulu 4.
45. Kom tipu prekidačkih mreža pripada pomerački registar? Objasniti princip rada
pomeračkog registra.
8 . A R H I T E K T U R A R A Č U N A R A
129
8 ARHITEKTURA RAČUNARA
Računar je elektronski uređaj, koji radi na osnovu instrukcija koje su smeštene u
njegovoj memoriji i ima mogućnost da prihvata podatke, obrađuje ih u skladu sa određenim
pravilima, generiše rezultate i smešta rezultate u cilju daljeg korišćenja.
Dizajn računara nastao na von Neumann-ovom principu, čija je suština da su programi i
podaci sa kojima program manipuliše smešteni na istom mestu, još uvek predstavlja osnovu
za dizajn savremenih računara. Ove karakteristike uticale su na izdvajanje pet osnovnih
komponenti von Neumann-ove arhitekture, prikazanih na slici 8.1:
memorijska jedinica u kojoj su smešteni i podaci i instrukcije programa,
aritmetičko-logička jedinica (ALJ, eng. ALU) koja omogućava izvršenje
aritmetičkih i logičkih operacija nad podacima,
kontrolna jedinica koordinira rad svih ostalih komponenti računara,
ulazna jedinica koja prenosi podatke iz spoljašnjeg sveta u računar,
izlazna jedinica koja prenosi podatke iz računara u spoljašnji svet.
Slika 8.1 Von Neumann-ova arhitektura računara
Ulazni uređaj Izlazni uređaj Kontrolna jedinica
Aritmetičko-logička jedinica
Memorijska jedinica
Centralna procesorska jedinica
U V O D U R A Č U N A R S T V O
130
Još jedna bitna osobina von Neumann-ove arhitekture je da su jedinice za obradu
podataka i smeštanje podataka odvojene jedne od druge. Aritmetičko-logička jedinica i
kontrolna jednica zajedno čine centralni procesor računara (eng. Central Processing Unit –
CPU). Matična ploča, centralni procesor, većina memorijskih uređaja i skup linija za
komunikaciju između različitih delova računara čine sistemsku ili centralnu jedinicu
računara.
Sistemska jedinica sadrži elektronske komponente računara koje učestvuju u obradi
podataka. Može se naći u različitim oblicima i dimenzijama. Omotač sistemske jedinice je
napravljen od metala ili plastike čime štiti komponente računara od oštećenja. Svi računari i
mobilni uređaji poseduju sistemsku jedinicu. U slučaju desktop personalnih računara,
elektronske komponente i većina uređaja za skladištenje podataka su deo sistemske
jedinice. Ostali uređaji, kao što su tastatura, miš, monitor, štampač, skener i mikrofon
zauzimaju prostor van sistemske jedinice i zbog toga se četo nazivaju perifernim delovima
računara, ili, kratko, periferijama. Komponente računara kao što su procesor i memorija,
obično su deo ploče ili su povezani na ploču koja se naziva matična ploča (eng.
motherboard). Matična ploča služi za povezivanje i sinhronizaciju osnovnih delova
računara. Komponente računara su ili integrisane u matičnu ploču, ili povezane na nju. Na
slici 8.2 prikazana je matična ploča dektop personalnog računara na kojoj se mogu
identifikovati slotovi za različite vrste kartica (ekspanzioni slotovi), slot za procesorski čip i
slot za glavnu memoriju. Na matičnoj ploči se takođe nalaze priključak za hard disk,
eksterni portovi, čipset, BIOS, magistrale itd.
Slika 8.2 Matična ploča računara
8.1 Centralni procesor
Procesor interpretira i izvodi osnovne instrukcije koje se izvršavaju na računaru.
Procesor značajno utiče na celokupnu računarsku moć. Sa donje strane poseduje pinove
koji služe za vezu sa matičnom pločom, a na matičnoj ploči se nalazi priključak za procesor
8 . A R H I T E K T U R A R A Č U N A R A
131
u koji se procesor utakne. Obično se prilikom opisivanja karakteristika računara kao
parametar procesora daje frekvencija radnog takta. Kod savremenih računara, ona se
uglavnom zadaje u gigahercima (GHz). Međutim, ukupna brzina računara ne zavisi
linearno od frekvencije radnog takta procesora, tj. ne može se očekivati da će se isti
program na računaru sa 2 puta većom frekvencijom (npr. 2GHz) radnog takta, obavezno
izvrštiti brže nego na računaru čija je frekvencija radnog takta 2 puta manja (npr. 1GHz).
To je zbog činjenice da procesor nije taj koji predstavlja usko grlo u radu računara, već
treba uzeti u obzir interakcije između procesora i drugih komponenata računara kao što su
glavna memorija i ulazno-izlazni uređaji. Takođe, frekvencija radnog takta ne govori o
obimu izračunavanja koja se izvode u svakom taktnom intervalu.
Mnogi današnji proizvođači procesora nude višejezgarne procesore. Višejezgarni
procesori predstavljaju čip sa jednim ili više izdvojenih procesorskih jezgara. Iako npr.
dvojezgarni (eng. dual-core) procesor ne udvostručuje procesorku brzinu (jer se značajan
deo vremena gubi na komunikaciju i sinhronizaciju), može se približiti toj brzini.
Procesor sadrži kontrolnu (upravljačku) jedinicu i aritmetičko-logičku jedinicu. Ove dve
komponente rade zajedno u cilju izvođenja različitih operacija. Kada korisnik pokrene
program, njegove instrukcije se prebacuju sa sekundarne memorije (hard disk, CD, DVD,
USB fleš) u glavnu memoriju. Podaci nad kojim program vrši obradu se, takođe po von
Neumann-ovom principu, učitavaju ili sa ulaznog uređaja ili iz sekundarne memorije.
Kontrolna jedinica nalaže pribavljanje instrukcije, vrši dekodiranje instrukcije i inicira
slanje instrukcije i podataka nad kojima se ona izvršava ka ALU. ALU izvršava
izračunavanja zadata instrukcijom nad datim podacima. Rezultat izračunavanja se pamti u
memoriji, odakle se šalje ili na izlazni uređaj ili uređaj za skladištenje podataka za neko
buduće korišćenje, ako je potrebno.
Slika 8.3 Procesor
8.1.1 Aritmetičko-logička jedinica
Aritmetičko-logička jedinica je osnovni gradivni blok procesora. Ova jedinica obavlja
osnovne aritmetičke operacije (sabiranje, oduzimanje, množenje, deljenje), logičke
operacije (I, ILI, NE) i operacije pomeranja binarnog sadržaja. Aritmetičko-logička jedinica
obavlja operacije nad rečima. Dužinu reči nekog računara određuje sama arhitektura tako
U V O D U R A Č U N A R S T V O
132
što definiše opseg vrednosti koje se dovode na aritmetičko-logičku jedinicu. Na primer, u
slučaju Pentiuma IV reč je dužine 32 bita, a u slučaju Core i7 je dužine 64 bita.
8.1.2 Kontrolna jedinica
Kontrolna jedinica generiše upravljačke signale i koordinira sve aktivnosti unutar
procesora. Ona pribavlja, dekodira i omogućava izvršenje instrukcije. Da bi se instrukcija
izvšila, kontrolna jedinica treba da odredi o kojoj se instrukciji radi. To može biti
instrukcija za učitavanje podataka sa ulaznog uređaja, za prikazivanje podataka na izlaznom
uređaju, ili izvođenje neke operacije nad podacima. Prilikom dekodiranja instrukcije
generišu se odgovarajući upravljački (kontrolni) signali. Niz takvih upravljačkih signala
rukovodi izvršavanjem instrukcije. Računar može izvršavati samo instrukcije koje su
sadržane u skupu instrukcija njegovog mašinskog jezika (eng. instruction set) koji definiše
arhitektura procesora.
8.2 Memorije
Osnovna namena memorijskih jedinica je pamćenje programa i podataka. Postoje tri
vrste memorijskih jedinica: glavna (radna, operativna) memorija, sekundarna (spoljašnja)
memorija i keš memorija. Glavna memorija se koristi za vreme izvršenja programa,
sekundarna memorija se koristi za trajno skladištenje podataka, a keš memorija služi za
povećanje brzine rada računara. Neke memorije čuvaju podatke privremeno, dok druge
omogućavaju trajno čuvanje podataka. Proizvođači memorija izražavaju veličinu
(kapacitet) memorije kao broj bajtova na memorijskom čipu dostupnih za pamćenje
podataka.
Tabela 8.1 Mere za kapacitet memorije
Jedinica Oznaka Približni broj
bajtova
Tačni broj bajtova Približni broj
stranica teksta
Kilobajt KB 1 hiljada 1 024 ½
Megabajt MB 1 milion 1 048 576 500
Gigabajt GB 1 bilion 1 073 741 824 500000
Terabajt TB 1 trilion 1 099 511 627 776 500000000
Osnovna jedinica memorije je bit i služi za pamćenje vrednosti 0 ili 1. Bitovi se grupišu
u bajt (8 bitova čini bajt), a bajtovi se dalje grupišu u reči. Tako je Kilobajt (KB) tačno
1024 bajtova. Korisnici računara često vrše zaokruživanje kilobajta na 1000 bajtova. Na
primer, ako memorijski čip može zapamtiti 100 KB, na njemu se približno pamti 100000
bajtova. Megabajt (MB) je približno jednak milion bajtova. Gigabajt (GB) je približno
jednak bilion bajtova, dok je terabajt (TB) približno trilion bajtova. Tačne i približne
vrednosti za ove jedinice mere za kapacitet memorije su date u Tabeli 8.1.
8 . A R H I T E K T U R A R A Č U N A R A
133
8.2.1 Glavna memorija
U cilju skladištenja (pamćenja, čuvanja) podataka, računar poseduje veliku kolekciju
elementarnih elektronskih kola, gde svako od njih ima mogućnost da pamti jedan bit.
Glavna memorija se sastoji od elektronskih komponenti koje pružaju mogućnost
pamćenja instrukcija koje čekaju na izvšenje na CPU, podataka potrebnih za izvršenje tih
instrukcija, kao i rezultata obrade tih podataka zadatom instrukcijom. Memorija se obično
sastoji od jednog ili više čipova na matičnoj ploči. U memoriji se pamte:
operativni sistem i ostale komponente sistemskog softvera koje kontrolišu rad
računara,
aplikacioni programi koji izvode neku specifičnu obradu, poput obrade teksta,
podaci koje obrađuju aplikacioni programi, kao i rezultat obrade aplikacionih
programa.
Nakon okončanja izvršenja aplikacionog programa, memorija koju je on koristio se
oslobađa i stavlja na raspolaganje drugim aplikacionim programima.
Adresibilnost memorije predstavlja broj bitova u svakoj memorijskoj lokaciji sa
jedinsvenom adresom. Adresibilnost memorije varira od računara do računara. Kod nekih je
to bajt, kod drugih je memorijska reč (eng. word), koju čini 4, 8, itd. bajtova. Većina
današnjih računara je bajt-adresibilna. Tako, procesor Pentium IV koji je 32-bitna mašina, a
to znači da ima ukupno 232
različitih adresa, ima 4 294 967 296 bajtova jedinstveno
adresibilno. Na primer, ako imamo da je adresibilnost memorije 8 bitova (1 bajt) a imamo
256B glavne memorije, memorijske lokacije će biti adresirane kao na slici 8.4.
Adresa Sadržaj
00000000 11100011
00000001 10101001
11111100 00000000
11111101 11111111
11111110 10101010
11111111 00110011
Slika 8.4 Adresiranje glavne memorije
Pošto je glavna memorija računara organizovana u vidu adresibilnih lokacija, njima se
može pristupati nezavisno i u bilo kom redosledu. Zato se glavna memorija često naziva i
RAM (eng. Random Access Memory), što znači da je vreme pristupa isto za bilo koju
memorijsku lokaciju. Takođe, u slučaju ove memorije moguće je izvršiti i čitanje i upis.
RAM spada u tip nepermanentnih (eng. volatile) memorija, kod koje se u slučaju
isključenja napajanja postojeći sadržaj memorije nepovratno gubi. Nasuprot RAM, postoje i
ROM (eng. Read Only Memory), čiji se sadržaj pamti i nakon nestanka napajanja tj. one
spadaju u tip permanentnih (eng. nonvolatile) memorija. Iz ove memorije moguće je samo
čitanje. Postoje dva tipa RAM memorija: statički i dinamički RAM. Razlika je u načinu
pamćenja podataka. SRAM koristi flip-flop za pamćenje jednog bita, dok DRAM koristi
U V O D U R A Č U N A R S T V O
134
jedan tranzistor i kondezator u tu svrhu. DRAM je jeftniji od SRAM, ali zbog pražnjenja
kondenzatora, zahteva stalno osvežavanje sadržaja (punjenje kondenzatora). DRAM
memorija ima veći kapacitet i manju potrošnju, ali je i sporija u odnosu na SRAM. Zato se
SRAM koristi kao privremena radna memorija ili keš memorija, a DRAM kao glavna
memorija.
8.2.2 Sekundarne memorije
Pošto je glavna memorija nepermanentnog tipa i ograničenog kapaciteta, od ključnog
značaja je postojanje drugih uređaja za skladištenje programa i podataka gde će oni biti
sačuvani onda kad se više ne izvršavaju, ili u slučaju kad je računar isključen. Ove uređaje
zovemo sekundarna memorija. Zato što se podaci mogu učitavati sa, ili upisivati na njih,
ovi uređaji mogu biti i ulazni i izlazni uređaji. Ovi uređaji mogu čuvati velike količine
podataka, te su takođe poznati kao uređaji za masivno skladištenje podataka ili masivni
memorijski medijumi. Najrasprostranjeniji uređaji za skladištenje podataka su: hard disk
(tvrdi disk), USB fleš disk i optički diskovi (CD, DVD, Blu-ray disk).
8.2.2.1 Hard disk
Hard disk je uređaj za skadištenje podataka koga čine jedna ili više kružnih ploča
presvučenih magnetnim materijalom (slika 8.5). Ploče su pričvršćene za osovinu koja se
rotira velikom, konstantnom brzinom. Svaka ploča ima dve glave za čitanje/upis, za svaku
stranu ploče po jednu. Sistemska jedinica na većini desktop i notebook računara sadrži
najmanje jedan hard disk. Hard disk koji je ugrađen unutar sistemske jedinice naziva se i
fiksni disk, jer nije prenosiv (slika 8.6). Postoje i eksterni hard diskovi. Eksterni hard
diskovi su velikog kapaciteta (nekoliko TB), ali zato mogu biti i veoma velikih dimenzija.
Hard diskovi današnjih računara imaju kapacitet od 160GB do 2TB i više.
Slika 8.5 Organizacija hard diska
8 . A R H I T E K T U R A R A Č U N A R A
135
Svaki bit binarnog podatka upisuje se na površinu hard diska primenom različitih načina
kodiranja koji vrednosti 0 i 1 prevode u magnetni fluks. Podaci na hard disku se pamte na
obe površine svake kružne ploče, u obliku koncentričnih krugova. Jedan takav krug se
naziva staza. Skup svih staza koje su na jednakom rastojanju od centra rotacije se naziva
cilindar. Svaka staza je podeljena na sektore. Sektor predstavlja najmanji blok podataka
kome se može pristupiti, tj. koji može da se adresira. Fizička adresa podatka na disku se
sastoji od brojeva površine, staze i sektora i specificira se uokviru odgovarajuće U/I
instrukcije. Uobičajena dužina sektora je 512 B. Dužina staze raste od unutrašnje staze (sa
najmanjim poluprečnikom) ka spoljašnjoj stazi (sa najvećim poluprečnikom).
Slika 8.6 Fiksni hard disk
Radi održanja gustine zapisa podataka na disku, imamo rastući broj sektora idući od
unutrašnjih ka spoljnim stazama. Kod velikog broja današnjih diskova koristi se ova
tehnika, gde se više sukcesivnih staza sa konstantnim brojem sektora po stazi grupiše u
zonu, gde imamo skokovite promene broja sektora po stazi između dve susedne zone (slika
8.7). Raspored staza i sektora se određuje prilikom formatiranja diska i nije fizički deo
diska.
Podaci se upisuju na disk i čitaju sa diska uz pomoć elektromagnetnih glava koji vrše
konverziju električnih u magnetne signale i obratno. Princip upisa na hard disk se bazira na
činjenici da elektromagnet na glavi može namagnetisati feritni materijal koji se pomera
ispod njega. Sa druge strane, kada se namagnetisani materijal pomera ispod kalema glave,
indukuje se struja u kalemu koja je istog polariteta kao ona koja je proizvela zapis na disku,
što predstavlja princip čitanja sa hard diska. Glava za ulaz/izlaz pozicionira se ručicom (na
koju su montirane sve glave) koja se pomera od staze do staze. Pomeraju se istovremeno
sve glave diska, omogućavajući pristup aktivnom delu kružnih ploča. Kada se glava za
čitanje/upis nađe iznad određene staze, ona čeka dok se rotiranjem odgovarajući sektor ne
nađe ispod nje, a zatim pročita iz njega ili upiše u njega odgovarajući podatak. Čitanje ili
upis u bilo kom trenutku može da izvršava samo jedna glava. Brzina čitanja i upisivanja
U V O D U R A Č U N A R S T V O
136
podataka na hard disk najviše zavisi od tri stvari: brzine rotacije ploča odnosno staza, brzine
kretanja glave i veličine keš memorije na samom disku.
Slika 8.7 Zapisivanje u više zona
8.2.2.2 USB fleš disk
USB fleš (eng. Universal Serial Bus flash) disk (slika 8.8) se sastoji od štampane ploče,
na kojoj se nalazi fleš memorija, koja je zatvorena u plastično ili metalno kućište. Fleš
memorija je permanentna memorija čiji sadržaj je moguće elektronski brisati i menjati. Fleš
memorija je napravljena u poluprovodničkoj tehnologiji. USB fleš disk koristi USB
interfejs za komunikaciju sa računarom koji ne zahteva dodatne drajvere za rad (za
Windows 98 i novije dolazi uz operativni sistem). Kapaciteti memorije se kreću od 32MB
do 512 GB. USB fleš disk se priključuje na USB port, preko koga dobija napajanje.
Slika 8.8 USB fleš disk
8 . A R H I T E K T U R A R A Č U N A R A
137
Postoji još jedna vrsta memorijskog medijuma koja se temelji na fleš memorijama. To
su Solid State Diskovi (SSD) koji zbog visoke cene polako ulaze u upotrebu (slika 8.9).
SSD se ponaša kao hard disk samo što nema nikakvih pokretnih delova koji predstavljaju
ograničenje brzine kod hard diska. Prednost SSD u odnosu na hard disk je izuzetno velika
brzina upisa i čitanja podataka i velika otpornost na potrese, udarce i slična fizička dejstva.
Pored ovoga, zbog odsustva mehaničkih delova i motora koji najviše troše energiju,
potrošnja je veoma mala, pa se ovakvi diskovi ugrađuju u laptopove čija baterija može da
traje 5-20h.
Slika 8.9 Solid state disk
Memorijska kartica je takođe fleš memorija, visine i širine uglavnom ne veće od 1.5
inča, koja se može umetati u različite vrste uređaja i uklanjati iz njih: slota računara,
pametnog telefona, digitalne kamere, čitača kartica, prenosivih medija plejera (MP3, MP4
plejer) itd. Ove kartice omogućavaju pokretnim korisnicima lak transport digitalnih
fotografija, muzike, fajlova sa mobilnih telefona, računara, foto aparata, i drugih uređaja
(slika 8.10).
Slika 8.10 Memorijska kartica
8.2.2.3 Optički diskovi
Kao što im i samo ime kaže upis i čitanje podataka sa ovih diskova se obavlja optičkim
putem. Princip rada ovih uređaja se bazira na pretvaranju memorisanih podataka u binarne
vrednosti 0 i 1. Na disku postoje tzv. rupe (eng. pit) i površine (eng. land) koje
U V O D U R A Č U N A R S T V O
138
predstavljaju binarne nule i jedinice. Postupak upisa se odvija tako što se snaga mlaza
lasera bira tako da zagrevanjem osvetljene veoma male površine medijuma može povratno
ili nepovratno promeniti optičke karakteristike ovog medijuma. Postupak čitanja se odvija
tako što je snaga mlaza znatno manja, tako da ne izaziva promenu na medijumu, svetlost se
odbija od medijuma, a njena jačina se razmatra da bi se utvrdilo da li se radi o binarnoj nuli
ili jedinici. Intenzitet svetlosti koja se odbija od rupe je mnogo slabiji od inteziteta svetlosti
koja se odbija od površine. Na osnovu inteziteta reflektovane svetlosti detektuju se
vrednosti binarne “0” ili “1”, “0” u slučaju rupe, “1” u slučaju površine.
Postoji više vrsta optičkih diskova. CD-ROM (eng. Compact Disk-Read Only Memory)
je vrsta optičkog uređaja čiji sadržaj može da se čita, ali ne i da se upisuje ili briše, pa je
zato i nazvan Read Only Memory (ROM). Podaci su smešteni na spiralnoj traci koje polazi
od unutrašnjeg kruga, a završava se na spoljašnjem krugu. Proizvođač upisuje ceo sadržaj
na disk. Proizvođači softvera često distriburaju programe korišćenjem CD-ROMa. Na
tipičnom CD-ROM-u može se zapamtiti 650MB do 1GB podataka. Podaci sa CD-ROM-a
se čitaju CD-ROM uređajem.
Za razliku od CD-ROM optičkih diskova na CD-R (eng. Compact Disc-Recordable)
optički disk korisnik može upisivati podatke na disk, i taj proces se zbog zagrevanja
laserom naziva „prženje“ (eng. burning). Na ovaj disk se sadržaj može upisivati, ali ne i
brisati sa njega. Disk ima spiralnu traku koja se unapred oblikuje u procesu proizvodnje, a
na koju se kasnije upisuju podaci. Ova vrsta diska je napravljena od takve vrste materijala
koja pod uticajem svetlosti određenog inteziteta menja svoj hemijski sastav. Na taj način
izdvajaju se površine koje su “spržene“ i reflektuju manje svetlosti što se registruje kao
binarna „0“ i one koje to nisu i reflektuju više svetlosti što se registruje kao binarna „1“.
Pošto se “prženjem” nepovratno menja hemijski sastav memorijskog medijuma, snimljen
sadržaj se ne može brisati, niti se na njega može ponovo upisivati. Jedino je moguće da se
prvo izvrši upisivanje na jedan deo diska, a da se kasnije izvrši ponovno upisivanje na deo
koji nije iskorišćen, tzv. multisession.
CD-RW (eng. Compact Disc-ReWritable) je vrsta optičkog diska na koji se sadržaj
može upisivati u više navrata i čiji se sadržaj može brisati. Umesto fotosenzitivnog
materijala koristi se druga supstanca koja u zavisnosti od temperature na kojoj se zagreva i
potom ohladi, prelazi u stanje koje ili potpuno reflektuje ili potpuno apsorbuje svetlost. Ove
osobine se koriste za upis i brisanje sa diska. Dakle, CD-RW optički disk ima osobinu
"piši-briši" odnosno mogućnost brisanja sadržaja nakon upisivanja. Na obrisan prostor
mogu se upisati novi podaci, ali i ovo “pisanje-brisanje“ ne može da da se obavlja
negraničen broj puta. Zbog same prirode materijala i habanja teoretski broj „pisanja-
brisanja“ je oko 1000 puta.
Iako je veličina i oblik DVD optičkog diska umnogome slična CD optičkom disku,
podaci se pamte na neznatno drugačiji način, koji omogućava skladištenje znatno veće
količine podataka. Razlika se ogleda u tome što je rastojanje između traka na DVD
optičkom disku znatno manje od rastojanja na CD optičkom disku, kao i u tome što je
dužina spirale skoro duplo veća kod DVD optičkog diska nego kod CD optičkog diska.
Maksimalni kapacitet DVD optičkog diska može biti i do 17.08 GB.
DVD-ROM (eng. Digital Versatile Disc-Read-Only Memory ili Digital Video Disc-
Read-Only Memory) je optički disk velikog kapaciteta sa koga se sadržaj može čitati, ali se
ne može upisivati niti brisati. Proizvođači upisuju sadržaj na DVD-ROM i distribuiraju ih
potrošačima. Sadržaj DVD-ROM-a mogu činiti filmovi, muzika, baze podataka i
kompleksni softver. Da bi se sadržaj sa DVD-ROM diska pročitao potreban je DVD-ROM
uređaj ili DVD plejer. Većina DVD-ROM uređaja može čitati CD, CD-ROM, CD-R i CD-
8 . A R H I T E K T U R A R A Č U N A R A
139
RW optičke diskove. Neki uređaji, tzv. DVD/CD-RW uređaji predstavljaju kombinaciju
uređaja koji mogu čitati sa/upisivati na DVD i CD diskove.
Noviji i skuplji DVD format je Blu-ray optički disk (BD) koji je većeg kapaciteta i
boljeg kvaliteta od standardnih DVD optičkih diskova. Kod ovih diskova se koristi laser
(plavi laser, odakle potiče naziv diska) mnogo manje talasne dužine nego kod DVD i CD
diskova, što omogućava mnogo gušće zapisivanje podataka nego kod DVD i CD diskova.
Blu-ray optički disk može imati kapacitet i do 128 GB, što je i nekoliko puta više od
standardnih DVD optičkih diskova, i omogućava zapis i reprodukciju "Videa visoke
definicije" (eng. High Definition Video, HD), kao i zvučnog zapisa kvaliteta koji je
identičan onom koji se koristi u modernim bioskopima.
Postoje i drugi formati DVD optičkih diskova, koji u zavisnosti od oznake imaju slično
značenje kao kod CD diskova. Tako naprimer, DVD-R, DVD+R i BD-R daju mogućnost
korisniku da podatke na disk može da upiše jednom, ali ih može čitati više puta. DVD-RW,
DVD+RW, DVD+RAM i BD-RE omogućavaju upis u više navrata na disk.
Slika 8.11 Optički disk
8.2.3 Keš memorija
Kada procesor pribavlja podatke iz glavne memorije nad kojima treba da se izvrši
obrada, potrebno je oko nekoliko desetina nanosekundi (ns) za pristup. Procesor, sa druge
strane radi mnogo brže (u ciklusima od nekoliko ns), što znači da gubi jako puno vremena
čekajući na podatke iz glavne memorije. Jaz koji se pojavio zbog nesrazmernosti u
povećanju brzine rada između procesora i memorije, tj. razlika u brzini između brzog
procesora i sporih memorija i ostalih komponenti računara, može se smanjiti uvođenjem
keš memorija. Hijerarhijska organizacija memorije, pokazala se kao idealno rešenje za
prevazilaženje ovog problema jer se dodavanjem brze memorije (SRAM tehnologije)
malog kapaciteta mogla ubrzati spora i jeftinija memorija velikog kapaciteta. Tako je na
samom procesoru nalazi tzv. L1 keš, memorija malog kapaciteta sa čijih lokacija procesor
preuzima podatke jednako brzo kao i iz svojih registara. Izvan procesora, ali blizu njega, se
nalazi L2 keš, koji je iako sporiji od L1 keša, još uvek dosta brži od glavne memorije što
doprinosi brzini rada celog računarskog sistema. L2 keš memorija ima veći kapacitet nego
L1 keš. Keš memorija je dakle, brza memorija u koji se smešta deo podataka iz glavne
memorije za koje se pretpostavlja da će ih procesor ubrzo ponovo zatražiti. Kad procesor
pokušava da pročita podatak, on prvo proverava da li je u kešu. Ako su podaci tu, procesor
U V O D U R A Č U N A R S T V O
140
im pristupa mnogo brže. Ako podaci nisu u keš memoriji, moraju se uzeti iz glavne
memorije.
8.3 Ekspanzioni slotovi i kartice
Ekspanzioni slot predstavlja priključak na matičnoj ploči koji omogućava proširenje
postojećeg računarskog sistema. U ekspanzioni slot se postavlja kartica za proširenje
(ekspanziona kartica, adapter). Postoje različite vrste slotova koje se uglavnom razlikuju
prema brzini razmene podataka i to su : PCI (eng. Peripheral Component Interconnect),
PCI Express i AGP (eng. Accelerated Graphics Port). PCI Express je najbolji po pitanju
brzine, dok se AGP koristi samo za grafičke kartice, što se može zaključiti iz njenog imena.
Ekpanziona kartica (adapter) je štampana ploča koja proširuje funkcije komponente
sistemske jedinice i /ili obezbeđuje povezivanje perifernih uređaja (periferija).
Periferni uređaj je uređaj koji se povezuje na sistemsku jedinicu i čiji je rad kontrolisan
od strane procesora. Primeri perifernih uređaja su: monitori, miševi, modemi, hard diskovi,
štampači, skeneri i tastature. Zvučna kartica proširuje mogućnosti računara, tako što preko
mikrofona daje mogućnost da zvuk bude ulaz u računar, a preko zvučnika ili slušalica da
bude izlaz iz računara. Deo koji obavlja taj zadatak se zove CODEC u koji su integrisana
dva glavna dela koja obavljaju tu funkciju: analogno-digitalni pretvarač (A/D konvertor)
koji pretvara zvuk na ulazu kartice u digitalnu formu i digitalno-analogni pretvarač (D/A
konvertor) koji pretvara digitalne podatke u zvuk koji se šalje zvučnicima ili slušalicama.
Video kartica (grafička kartica) prevodi izlaz iz računara u video signal koji se prikazuje na
ekranu monitora. Grafička kartica se ugrađuje u matičnu ploču, obično u AGP ili PCI
Express ekpanzioni slot. Mrežna kartica obezbeđuje komunikaciju računara preko
računarske mreže. Moderne matične ploče obično na sebi imaju integrisan mrežni čip i
priključak, ali takođe postoje i mrežne kartice koje se ubacuju u PCI slot. Postoje još i:
MIDI (za povezivanje muzičkih instrumenata), modem (povezuje računar preko telefonskih
linija ili linija kablovske televizije), FireWire (za brze serijske veze sa video opremom), itd.
Slika 8.12 Ekspanziona kartica ubačena u ekspanzioni slot matične ploče računara
8 . A R H I T E K T U R A R A Č U N A R A
141
8.4 Portovi
Portovi su priključci preko kojih se periferni uređaji povezuju na sistemsku jedinicu.
Kod desktop personalnih računara portovi se nalaze na zadnjoj strani sistemske jedinice
(njihov veći deo) i na prednjoj strani sistemske jedinice (njihov manji deo). Na laptop
računarima mogu biti sa svih strana laptopa, tj. na prednjoj, zadnjoj ili na bočnim stranama.
U zavisnosti od načina prenosa podataka koji se odvija preko njih, portovi se mogu podeliti
na: paralelne i serijske.
Naziv serijski potiče od činjenice da se podaci šalju bit po bit i korišćenje ovog porta je
znatno jeftinije i pouzdanije u odnosu na paralelni port, jer se koristi manji broj provodnika
(žica). Serijski port služi za povezivanje uređaja kao što su miševi ili fax/modemi. Za
razliku od serijskog prenosa podataka, paralelnim prenosom podataka se šalje više bitova
podataka istovremeno, ali sa mnogo većim brojem provodnika u kablu (8 provodnika za
prenos podataka). Zbog preslušavanja koje se javlja između provodnika prilikom ovog
načina prenosa, a koji je sve izraženiji sa povećanjem rastojanja i brzina prenosa, ovaj način
prenosa omogućava brži i pouzdaniji prenos podataka samo na malim rastojanjima u
odnosu na serijski prenos, što predstavlja njegov nedostatak. Paralelni port služi za
povezivanje štampača. Po originalnoj koncepciji preko njega je bio moguć prenos podataka
samo u jednom smeru, od računara ka uređaju koji je na njega priključen. Novija rešenja
dozvoljavaju protok podataka u oba smera, tako da se ovaj port može koristiti i kao ulazni.
U računaru postoji više različitih portova pa ćemo redom opisati njihovu namenu. USB
port je razvijen da se na njega može povezivati mnogo različitih uređaja. Karakteriše ga
velika brzina (od 12 MB/s do 5GB/s) i jednostavnost priključenja. Na njega se može
povezati štampač, miš, tastatura, skener, eksterni hard disk, modem, fleš memorije i mnogi
drugi. Desktop računari standardno sadrže 2 do 6 USB portova, ali se njihov broj može
povećati dodavanjem USB haba (sabirnice). USB hab se priključuje na jedan od USB
portova na računaru, a na njega se može priključiti nekoliko USB uređaja. USB port
omogućuje priključenje do 127 različitih perifernih uređaja na samo jedan USB priključak.
Povezivanje uređaja se može vršiti dok su računar i uređaj uključeni.
PS/2 port služi za povezivanje miša i tastature. Da se ne bi izvršilo pogrešno
povezivanje miša i tastature, PS/2 port za tastaturu je ljubičaste boje, a PS/2 port za miša je
zelene boje.
FireWire port je serijski port koji omogućava veoma brz prenos podataka (od 100 MB/s
do 3200 MB/s) i na njega se mogu povezati štampači u boji, digitalne video kamere,
skeneri, brzi diskovi itd. Kao i USB port, ovaj port pruža napajanje uređaju koji je
priključen na njega. Maksimalan broj uređaja koji se mogu priključiti na jedan FireWire
port je 63.
Infracrveni (IrDA) port se koristi za prenos podataka putem infracrvene svetlosti. U
slučaju ovog porta se ne koriste bakarni provodnici, već je za prenos potrebno obezbediti
optičku vidljivost između prijemnika/predajnika na računaru i predajnika/prijemnika na
perifernom uređaju. Infracrveni port podržava brzinu prenosa do 16Mb/s, a udaljenost na
koju se ovim putem može preneti informacija nije velika i iznosi do par metara. Uređaji
koji imaju mogućnost korišćenja infracrvenog port su tastatura, miš, štampač, pametni
telefon, PDA itd.
Na računaru se mogu uočiti i VGA (eng. Video Graphics Array) port (koristi se za
povezivanje monitora sa računarom), Ethernet port (koristi se za povezivanje RJ-45 kabla
U V O D U R A Č U N A R S T V O
142
za mrežni hub ili ruter), MIDI (eng. Musical Instrument Digital Interface) port (koristi se za
povezivanje muzičkih instrumentata) i drugi.
Neki od pomenutih portova su prikazani na slici 8.13.
Slika 8.13 Portovi
8.5 Magistrale
Magistrala je komunikacioni put sastavljen od grupe električnih provodnika kroz koje se
binarnim signalima prenose podaci između pojedinih funkcionalnih celina (komponenti) u
računaru. Magistrala je deljivi komunikacioni put na koju je povezan veći broj komponenti,
a podatak koji se predaje od strane jedne komponente dostupan je za prijem svim ostalim
komponentama koje su povezane na magistralu. U datom trenutku samo jedna komponenta
može uspešno da vrši predaju podataka.U jednom računaru može može da postoji veći broj
magistrala. Preko magistrala sa prenose podaci sa ulaznog uređaja u memoriju, iz memorije
u procesor, iz procesora u memoriju, iz keš memorije drugog nivoa (L2 keš) u procesor, iz
procesora u keš memorije drugog nivoa (L2 keš), iz memorije na izlazni uređaj, ili u
sekundarnu memoriju. Svakom magistralom se mogu prenositi tri grupe signala: podaci,
adrese i upravljački signali. Adresa se koristi za selekciju memorijske lokacije (ili
ulaznog/izlaznog uređaja) gde se šalju podaci ili odakle se preuzimaju podaci. Magistralom
podataka se prenose podaci između CPU, memorije i ulaznih/izlaznih uređaja. Upravljački
podaci upravljaju prenosom podataka. Na primer, oni mogu određivati smer toka podataka,
da li je to od ili ka CPU.
Obim magistrale, koji češće nazivamo, širina magistrale, određuje broj bitova koji mogu
da se prenesu u jednom trenutku (istovremeno) preko magistrale. Na primer, 32-bitnom
magistralom se može preneti 32 bita istovremeno, a 64-bitnom magistralom se može preneti
64 bita istovremeno. Što je veća širina magistrale, brži je prenos podataka u računaru, što
direktno utiče na performanse celog sistema. Brzina magistrale je određena frekvencijom
radnog takta magistrale, kao i brojem prenesenih podataka u svakom ciklusu. Obično se u
jednom taktu preko jedne linije prenese jedan bit informacije. Postoje i rešenja koja u istu
svrhu troše dva takta (ISA-Industry Standard Architecture), ili naprotiv udvostručavaju
propusnost magistrale šaljući dva bita u jednom taktu (AGP).
8 . A R H I T E K T U R A R A Č U N A R A
143
8.6 Čipset
Čipset predstavlja skup pojedinačnih kontrolera koji ostvaruju vezu kako između
glavnih delova računara, tako i prema ekspanzionim slotovima i brojnim periferijama.
Kontroleri koji se nalaze uokviru čipseta su: DMA (eng. Direct Memory Access) kontroler i
kontroler prekida, kontroler memorije (određuje tip i maksimalnu količinu sistemske
memorije koja se može instalirati, a takođe utiče i na brzinu rada sa njom), EIDE i S-ATA
kontroler (kontroliše protok podataka magistralama koje se koriste za povezivanje hard
diskova i optičkih uređaja za skladištenje podataka na sistem), PCI Express, PCI, ISA i
AGP kontroleri (kontrolišu rad uređaja priključenih na odgovarajuće ekspanzione slotove),
kontroleri portova (koji kontrolišu rad uređaja priključenih na odgovarajućih portove).
Čipset se obično sastoji od dva integrisana kola: sistemski kontroler (North Bridge-
severni most) i periferijski kontroler (South Bridge-južni most)
Sistemski kontroler se nalazi se u blizini komponenata koje zahtevaju brz protok
informacija, kao što su procesor, memorija i AGP ekspanzioni slot i objedinjuje kontrolere
koji imaju veze sa ovim delom sistema. Periferijski kontroler je kontroler koji objedinjuje
kontrolere periferija (uključujući kontrolere hard diskova, optičkih uređaja i flopi diska) i
kontrolere eksternih portova.
8.7 BIOS
BIOS (engl. Basic Input/Output System) je naziv za računarski program koji se prvi
pokreće nakon uključenja računara. On se učitava pre operativnog sistema i predstavlja
vezu između hardvera i softvera u računaru. Kada se računar uključi, prve instrukcije koje
procesor izvršava su upravo one koje dobija iz BIOS-a.
BIOS postavlja osnovne radne parametare računarskog hardvera te pronalazi i učitava
operativni sistem u glavnu memoriju. BIOS je obično napisan u asembleru i prilagođen
određenom hardveru računara. Sačuvan je u memorijskom čipu permanentnog tipa na
matičnoj ploči računara koji čuva sadržaj i kada nema napajanja.
BIOS nudi jednostavan korisnički interfejs, obično u obliku skupa menija, u koji se
ulazi pritiskom određenih tastera na tastaturi nakon uključenja računara. Namenjen je za
podešavanje određenih parametara računara, kao na primer:
izbor nekih parametara hardvera,
postavljanje sistemskog sata,
omogućavanje ili onemogućavanje nekih delova računara (npr. dozvoljava ili
zabranjuje upotrebu keš memorije),
izbor uređaja za pokretanje sistema (engl. boot device) tj. omogućava
definisanje uređaja ili liste uređaja koja bi se ispitivala kako bi se pronašao
uređaj iz liste na kome se nalazi operativni sistem, koji nakon toga i biva učitan
u glavnu memoriju,
postavljanje nekih lozinki, npr. lozinke koja omogućuje nastavak podizanja
računara i učitavanje operativnog sistema i lozinke za ulaz u sam BIOS itd.
U V O D U R A Č U N A R S T V O
144
Pitanja i zadaci
1. Nacrtati osnovnu strukturnu šemu računara i objasniti funkciju aritmetičko-logičke
jedinice (ALU).
2. Nacrtati osnovnu strukturnu šemu računara i objasniti funkciju U/I jedinice.
3. Koliko bitova je u glavnoj memoriji računara koji ima 4KB RAM-a.
4. Kakve vrste memorijskih jedinica postoje? Ukratko objasniti svaku od njih.
5. Koliko ima lokacija u glavnoj memoriji ako svaka adresa memorijske lokacije može
biti predstavljena sa dva heksadekadna broja? Koliko je u slučaju kada se za adresu
koriste 4 heksadekadna broja?
6. Ako računar ima 128MB RAM-a, a svaka reč je veličine 8B koliko bitova je
neophodno da se adresira svaka reč u memoriji?
7. Šta se sve pamti u glavnoj memoriji računara?
8. Navesti dve prednosti glavne memorije u odnosu na hard disk.
9. Navesti dve prednosti hard disk-a u odnosu na glavnu memoriju.
10. Navesti vrste optičkih diskova i objasniti razlike između njih.
11. Pretpostavimo da je samo 50 GB od ukupno 120 GB hard disk-a vašeg računara
slobodno. Da li bi bilo razumno koristiti CD-ove da sačuvate sav materijal koji imate,
kao backup? Šta je sa DVD-ima?
12. Koja je prednost fleš memorija u odnosu na hard disk?
13. Šta su portovi i koja je njihova funkcija? Koji port se koristi za povezivanje monitora, a
koji za povezivanje tastature?
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
145
9 CENTRALNA PROCESORSKA
JEDINICA
Deo računara koji interpretira i izvršava osnovne instrukcije na računaru naziva se
centralna procesorska jedinica (CPU) ili procesor. Za razliku od vremena kada su procesori
zauzimali veliki prostor, danas je, usled napretka tehnologije, drastično smanjena veličina
ovih uređaja. Novije tehnologije omogućuju smeštanje velikikog broja tranzistora na
silicijumsku pločicu čime se povećavaju performanse i smanjuje cena procesora. Procesor u
današnjim desktop i notebook računarima predstavlja malu pločicu oblika kvadrata koja se
povezuje sa matičnom pločom pomoću pinova koje poseduje sa donje strane. Kod smart
telefona, mini notebook-a i drugih mobilnih uređaja njihova veličina je znatno manja u
odnosu na desktop računare. Zbog svoje male veličine, ovi procesori se nazivaju
mikroprocesori i mogu se sresti i u kamerama, automobilima, kućnim aparatima, itd.
Logička kola u procesoru rade zajedno na donošenju odluka prilikom rada procesora
koristeći principe Bulove (prekidačke) algebre. Ta logička kola su sastavni deo registara,
multipleksera, demultipleksera, sabirača, dekodera i drugih prekidačkih mreža koji
predstavljaju funkcionalne blokove procesora. Na slici 9.1 je data struktura procesora, sa
koje se može izdvojiti više celina koje ulaze u sastav procesora: aritmetičko-logička
jedinica, kontrolna jedinica i registarska jedinica. Kao što je već ranije rečeno ALU čine
logička kola čija je funkcija manipulacija nad podacima, dok kontrolnu jedinicu čine
logička kola koja koordinišu aktivnosti procesora. Registarska jedinica se sastoji iz
registara koji služe za privremeno pamćenje podataka u okviru procesora. Kao što se sa
slike 9.1 može uočiti, u svrhu razmene podataka, procesor i glavna memorija koriste grupe
električnih provodnika koje se zovu magistrala i čija funkcija je objašnjena u prethodnom
poglavlju.
Preko magistrale, procesor čita podatke iz glavne memorije zadavanjem odgovarajuće
memorijske adrese zajedno sa upravljačkim podacima koji govore od tome da iz memorije
treba da se obavi čitanje sa zadate adrese. Na sličan način procesor upisuje u glavnu
memoriju tako što zadaje odgovarajuću memorijsku adresu, kao i podatak koji se upisuje,
zajedno sa upravljačkim podacima koji govore od tome da u memoriju treba da se obavi
upis primljenog podataka na zadatu adresu.
Registri su elementi u procesoru koji služe za memorisanje podataka i čija je glavna
karakteristika kratko vreme pristupa koje je reda nanosekunde. Neki registri u registarskoj
jedinici su registri specijalne namene koji imaju tačno određene namene, dok su drugi
registri opšte namene koji se mogu koristiti za više različitih namena. U registre specijalne
namene spadaju: brojač naredbi, registar naredbi, adresni registar memorije, prihvatni
U V O D U R A Č U N A R S T V O
146
registar memorije itd. Njihova konkretna upotreba biće opisana kasnije. Registri opšte
namene mogu imati različite namene pa se mogu koristiti za privremeno čuvanje operanada
u procesoru, za adresiranje operanada u memoriji, kao učesnici u operacijama, itd. Broj
ovih registara u procesorima se kreće od 8 do 64. Savremeni procesori imaju najčešće 32
registra opšte namene.
Slika 9.1 Struktura procesora
9.1 Organizacija procesora
Računar izvršava program koji se nalazi u glavnoj memoriji pribavljanjem naredbi iz
memorije u procesor. Kada se naredba pribavi u procesor ona biva dekodirana i izvršena.
Redosled u kome se instrukcije pribavljaju iz memorije odgovara redosledu u kojem su
sačuvane u memoriji osim ako taj redosled ne promeni neka od naredbi grananja. Da bi se u
potpunosti razumelo kako izgleda proces izvršenja naredbi potrebno je objasniti funkcije
određenih registara specijalne namene procesora.
Da bi upravljačka jedinica u svakom trenutku imala informaciju o adresi sledeće
naredbe koja će se izvršavati u okviru procesora postoji poseban registar koji se zove
brojač naredbi (programski brojač).
Da bi se neki sadržaj (instrukcija ili podatak) pročitao iz memorije ili upisao u memoriju
potrebno je da se adresa memorijske lokacije sadržaja upiše u poseban registar procesora
koji se zove adresni registar.
Da bi naredba mogla izvršavati neku mašinsku operaciju ona se smešta u registar koji
se zove registar naredbi.
Prihvatni registar je registar u koji se smešta podatak koji treba da se upiše u
memoriju, ili podatak koji je upravo pročitan iz memorije.
Registar stanja (eng. Flag register) se sastoji iz ćelija od kojih je svaka jednobitni
registar. One ukazuju na stanje procesora posle izvršenja nekih operacija, i tada se
postavljaju na vrednosti nula ili jedan. Ovaj registar takođe se naziva i status registar jer
ukazuje na status procesora nakon izvršene operacije. Pomenućemo neke od bitova koji se
Aritmeti koč -logičkajedinica
Centralna procesorskajedinica
Upravljačkajedinica
Glavna memorija
Magistrala
Registri
Registarska jedinica
...
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
147
koriste u ovu svrhu i ukazuju na stanja koja su nastala nakon izvršenja određenih operacija.
Jedan od nih je N (eng. Negative) bit koji se postavlja na 1, ako je rezultat operacije
negativan. U suprotnom je 0. Z (eng. Zero) bit se postavlja na 1, ako je rezultat operacije
nula. C (eng. Carry) bit se postavlja na 1, ako je došlo do pojave prenosa prilikom izvršenja
operacije. V (eng. Overflow) bit se postavlja na 1, ako je došlo do prekoračenja prilikom
izvršenja operacije.
Detaljnija struktura procesora sa osnovnim gradivnim elementima i putevima
komunikacije sa glavnom memorijom prikazana je na slici 9.2.
Slika 9.2 Detaljnija struktura procesora
9.2 Mašinsko programiranje
U cilju primene von Neumann-ovog principa gde su i programi i podaci sa kojima
program manipuliše smešteni u glavnoj memoriji, procesori su projektovani da prepoznaju
Registri
Centralna procesorska jedinica Memorija
Adresna magistrala
Magistrala podataka
Upravljačka magistrala
Inte
rna
mag
istr
ala
R1R2R3
RN
ALJ
Dekoder instrukcija
Upravlja logikačka
BN
PR
RS
AR
RN
RK
U V O D U R A Č U N A R S T V O
148
instrukcije kodirane u vidu nizova bitova. Grupa instrukcija zajedno sa načinom njihovog
kodiranja čine mašinski jezik računara. Instrukcija predstavljena na ovom jeziku se naziva
mašinska instrukcija ili mašinska naredba. Mašinska naredba specificira operaciju kao i
vrednosti ili mesta operanada nad kojima ta operacija treba da se obavi. Mašinska naredba
treba da sadrži informacije neophodne za izvršenje jedne operacije. To su: kod operacije,
informacija o operandima nad kojima se izvršava operacija, informacija o mestu smeštanja
rezultata primene operacije i informacija o sledećoj naredbi na koju treba preći. Kao što je
već rečeno, da bi program za rešenje nekog problema mogao da bude izvršavan na računaru
on mora da bude kodiran nizovima bitova, tj. u binarno kodiranom obliku. Međutim,
pisanje programa u ovom obliku je težak proces sklon greškama jer treba pisati veliki broj
binarnih cifara, treba poznavati sve kodove operacija, treba unapred znati mesta u memoriji
gde će program biti smešten, itd. Zato je kao prvo poboljšanje koje olakšava pisanje
programa bilo uvedeno pisanje programa u heksadekadnom obliku. Proces prevođenja iz
heskadekadnog u binarni oblik je bio automatizovan i poveren posebnom programu. Ovaj
način i pored skraćenog zapisa sa manje cifara nosi nedostatke koji su navedeni za binarno
kodirane programe. Rešenje za sve pomenute manjkavosti nađeno je u uvođenju
simboličkih imena za kodove operacija i simboličkih imena za adrese operanada. Svakoj
simboličkoj naredbi odgovara jedna mašinska naredba. Za program napisan korišćenjem
ovakvih simboličkih naredbi se kaže da je napisan na simboličkom mašinskom jeziku ili
asemblerskom jeziku.
U opštem slučaju, mašinska naredba se sastoji iz dela koji specificira kod operacije
(operacioni deo) i adresnog dela, koji uglavnom specificira kako i odakle treba uzeti
operande i gde smestiti rezultat. Takođe, deo adresnog dela u nekim slučajevima može biti i
adresa naredne naredbe. Raspored, dužina i namena ovih delova (polja) predstavljaju
format naredbe i može biti različit od računara do računara. Na primer, ako ADD označava
operaciju sabiranja, naredba može da izgleda na sledeći način:
ADD A1 A2 A3
Značenje ove naredbe je sledeće: Sabrati vrednosti sa adresa A1 i A2 i rezultat smestiti
na adresu A3. Obično se u adresnom delu naredbe nalaze jedna, dve ili tri adrese operanada
i taj broj adresa u adresnom delu određuje adresnost računara. Sa druge strane, da bi se
kodiralo n različitih operacija za kodiranje svake od njih potrebno je nk 2log bitova,
gde je x prvi ceo broj veći od x. Međutim, kako je često dužina koda operacije
nedovoljna za ovakav način kodiranja i sa druge strane adresni deo nekih instrukcija ne
postoji ili može biti kraći uvodi se princip kodiranja sa proširenjem. Ovaj princip se sastoji
u sledećem: Ako polje koda operacije ima dužinu k tada se, na primer, 12 kkodnih nizova
koristi za kodiranje operacija, a jedan kodni niz koristi za proširenje koda.
Primer 9.1.
0000XXXXXXXXXXXX
0001XXXXXXXXXXXX
....................
1110XXXXXXXXXXXX
Ovde je sa prva 4 bita kodirano 15 operacija dok je 1111 ostavljen za proširenje
koje ima sledeći oblik:
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
149
11110000XXXXXXXX
11110001XXXXXXXX
...................
11111101XXXXXXXX
Ovde je dodatnih 14 operacija kodirano sa 8 bitova dok su kodovi 11111110 i
11111111 ostavljeni za evenualno proširenje.
9.2.1 Adresnost računara
Prema broju adresa u mašinskoj naredbi tj. prema adresnosti računara, računari
mogu biti: četvoroadresni, troadresni, dvoadresni, jednoadresni i bezadresni.
Odgovarajući formati naredbi prikazani su na slici 9.3.
Slika 9.3 Formati naredbi a) četvoroadresni b) troadresni c) dvoadresni i d) jednoadresni
Može se reći da četvoroadresna naredba ima opšti format gde adrese A1 i A2
predstavljaju adrese operanada, adresa A3 je adresa na koju se smešta rezultat, a A4 adresa
sledeće naredbe. Kako se naredbe izvršavaju u prirodnom redosledu, tj. redom kojim su
zapisane u memoriji, prestaje potreba za adresom A4, ali se uvodi poseban registar u
procesoru koji služi za pamćenje adrese sledeće naredbe koja treba da se izvrši. Taj registar
služi za upravljanje tokom izvršenja programa i naziva se brojač naredbi. Računari sa
formatom koji ne sadži adresu A4 su troadresni računari. Broj adresa se može smanjiti za
još jednu ako se jedno od tri polja adrese izostavi, a da se adresa rezultata implicitno
podrazumeva. Naredba sa ovakvom strukturom je karakteristična za dvoadresne računare.
Na primer, ako A1 i A2 predstavljaju adrese operanada može se podrazumevati da se
rezultat smešta ili na adresu A1 ili na adresu A2. Pri tome se prethodni sadržaj te lokacije
uništava. Ako se u registar procesora uvede poseban registar, akumulator, koji ima
dvostruku ulogu i to da se u njemu čuva prvi operand i da se u njega smešta rezultat
operacije dobijamo format naredbe jednoadresnog računara. Kod ovog formata naredbe
adresa A1 predstavlja adresu drugog operanda.
Moguće je konstruisati i naredbe koje imaju samo kod operacije, ali je za ostvarenje
ovog koncepta potrebno da se svi podaci i rezultati nalaze u posebno organizovanoj
memoriji koja predstavlja stek. Steku se može pristupiti samo sa jednog kraja koji se naziva
vrh steka. Svi operandi koji se koriste u operaciji potrebno je da budu na vrhu steka. Pristup
steku se reguliše registrom koji se naziva pokazivač magacina. Za smeštanje podataka na
OP OP
OP OP
M M
M M
A1 A1
A1 A1
A2 A2
A2
A3 A3A4
a) b)
c) d)
U V O D U R A Č U N A R S T V O
150
vrh magacina i za čitanje podataka sa vrha se koriste posebne operacije koje komuniciraju
sa tim delom memorije.
Danas, savremeni procesori implementiraju dvoadresne i troadresne instrukcije. Sem
adresa koje su prikazane u datim primerima, u adresnom delu naredbe se može uočiti i polje
modifikatora (M) čija uloga će detaljno opisana u potpoglavlju 9.4.
9.2.2 Naredbe procesora
Svaki program je predstavljen nizom mašinskih naredbi (instrukcija) koje se prilikom
izvršenja nalaze u glavnoj memoriji računara. Zavisno od namene i veličine procesora, broj
i vrsta mašinskih naredbi (instrukcija) se razlikuje od računara do računara. Naredbe
procesora se obično mogu svrstati u sledeće kategorije:
(1) naredbe za prenos podataka,
(2) aritmetičko-logičke naredbe,
(3) naredbe za upravljenje tokom izvršenja programa i
(4) ulazno-izlazne naredbe.
Da bi se objasnili osnovni principi rada procesora nije neophodno razmatrati neki
konkretan procesor već se može razmatrati neki hipotetički procesor sa svojim skupom
naredbi.
9.2.2.1 Naredbe za prenos podataka
Grupa naredbi za prenos podataka se sastoji iz naredbi koje zahtevaju prenos podataka
sa jedne lokacije na drugu. Taj prenos može biti: iz glavne memorije u neki registar
procesora, iz registra procesora u glavnu memoriju, iz jednog u drugi registar procesora, iz
jedne memorijske lokacije u drugu i slično. Iako se u literaturi često za ove naredbe koristi
termin naredbe za prenos ili pomeranje podataka, ovaj naziv je uslovno tačan. o sledi iz
činjenice da proces koji se odvija prilikom izvršenja ove vrste instrukcije u stvari pre
predstavlja kopiranje podataka sa jedne lokacije na drugu, nego prenos i brisanje sa
originalne lokacije. Tako na primer, naredba za prenos sadržaja iz glavne memorije sa
adrese ad u registar procesora Ri ima sledeći oblik:
LD Ri ad ; (Ri) : = Mem[ad]
Pri izvršenju ove naredbe prethodni sadržaj registra se briše, a sadržaj memorijske
lokacije sa adresom ad se ne menja. LD je simboličko ime instrukcije izvedeno iz engleske
reči LOAD.
Naredba za prenos sadržaja iz registra procesora Ri u glavnu memoriju na lokaciju sa
adresom ad ima sledeći oblik:
ST Ri ad ; Mem[ad]: = (Ri)
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
151
Pri izvršenju ove naredbe prethodni sadržaj memorijske lokacije sa adresom ad se briše,
a sadržaj registra se ne menja. ST je simboličko ime instrukcije izvedeno iz engleske reči
STORE.
Za prenos sadržaja između dva registra može postojati posebna naredba koja ima sledeći
oblik:
MOV Ri Rj ; (Ri) : = (Rj)
Pri izvršenju ove naredbe prethodni sadržaj registra Ri se briše, a sadržaj registra Rj se
ne menja. MV je simboličko ime instrukcije izvedeno iz engleske reči MOVE.
9.2.2.2 Aritmetičko-logičke naredbe
Aritmetičko-logička grupa naredbi sastoji se iz naredbi koje ukazuju kontrolnoj jedinici
da zahteva aktivnost aritmetičko-logičke jedinice. Aritmetičko-logičke naredbe se sastoje iz
naredbi koje izvršavaju aritmetičke operacije, logičke operacije i operacije za pomeranje.
Aritmetičke naredbe uglavnom služe za izvršenje osnovnih aritmetičkih operacija
(sabiranje, oduzimanje, množenje i deljenje), poređenje dva sadržaja, komplementiranje,
povećanje (smanjenje) sadržaja za neku vrednost itd.
Logičke naredbe služe za izvršenje logičkih operacija Bulove algebre AND, OR, NOT i
XOR primenjenih na nizove bitova pokomponentno. Naredbe pomeranja služe za izvršenje
operacija pomeranja bitova u okviru registra. Ove operacije klasifikuju se na osnovu smera
pomeranja (levo ili desno) i da li je pomeranje cirkularno ili ne (rotacija ili pomeranje).
Naredba za aritmetičku operacija sabiranja ima sledeći oblik:
ADD Ri, Rj, Rk ; (Ri) : = (Rj) + (Rk)
Dejstvo ove naredbe je da se novi sadržaj registra Ri dobija sabiranjem sadržaja registra
Rj i sadržaja registra Rk.
Aritmetička operacija oduzimanja se realizuje ili posebnim naredbama za oduzimanje,
ili pomoću jedne operacije komplementiranja i jedne operacije sabiranja. Posebna naredba
za oduzimanje ima sledeći oblik:
SUB Ri, Rj, Rk ; (Ri) : = (Rj) - (Rk)
Dejstvo ove naredbe je da se novi sadržaj registra Ri dobija oduzimanjem sadržaja
registra Rj i sadržaja registra Rk.
Za operaciju dobijanja komplementa dvojke naredba ima sledeći oblik:
NEG R ; (Ri) : = - (Ri)
U V O D U R A Č U N A R S T V O
152
Za realizaciju množenja i deljenja kada postoje, koriste se naredbe koje imaju sledeći
oblik:
MUL Ri, Rj, Rk ; (Ri) : = (Rj) * (Rk)
DIV Ri, Rj, Rk ; (Ri) : = (Rj) / (Rk)
Dejstvo ovih naredbi je slično kao i kod naredbi ADD i SUB. Inače se množenje i
deljenje mogu implementirati korišćenjem sabiranja (oduzimanja) kombinovano sa
operacijom pomeranja.
Naredbe za aritmetičke operacije nastale su od engleskih reči ADD, SUBtract,
MULtiply, DIVide.
Kao što je već rečeno, logičke naredbe služe za izvršenje logičkih operacija Bulove
algebre AND, OR, NOT i XOR dok se ostale logičke operacije mogu realizovati preko
relacija Bulove algebre. Ove operacije se izvršavaju nad vrednostima 0 i 1 na
odgovarajućim pozicijama binarne reči.
Pokomponentne logičke I, ILI i isključivo ILI operacije, kada se primene na dve 8-bitne
binarne reči funkcionišu na sledeći način:
10011010
AND 11001001
10001000
10011010
OR 11001001
11011011
10011010
XOR 11001001
01010011
NOT 11001001
00110110
Logičke naredbe koje realizuju ove naredbe imaju sledeći oblik:
AND Ri, Rj, Rk ; (Ri) : = (Rj) .AND. (Rk)
OR Ri, Rj, Rk ; (Ri) : = (Rj) .OR. (Rk)
XOR Ri, Rj, Rk ; (Ri) : = (Rj) .XOR. (Rk)
NOT Ri, Rj ; (Ri) := .NOT. (Rj)
Logička AND naredba se uglavnom koristi za maskiranje dela mašinske reči i to
postavljanjem nula u delu reči koji želimo da maskiramo i jedinica u delu reči koji ostaje
isti. Na primer:
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
153
00001111
AND 10101010
00001010
Logička OR operacija se može koristiti za spajanje grupe bitova u jednu reč. Na primer:
11110000
OR 00001010
11111010
Logička XOR operacija se može koristiti za upoređivanje dva sadržaja u smislu
jednakosti, tj. rezultat će biti sve nule u slučaju da su sadržaji jednaki.
10101010
XOR 10101010
00000000
Već smo napomenuli da naredbe pomeranja služe za izvršenje operacija pomeranja
bitova u okviru registra. Posmatrajmo registar koji se sastoji od 8 bitova. Ako pomerimo
njegov sadržaj za jedno mesto udesno bit najmanje težine se gubi a na mestu najveće težine
ostaje praznina. U zavisnosti od toga šta će se upisati na mesto praznine razlikujemo više
vrsta pomeranja. Jedna od tehnika je da prazninu popunimo bitom najmanje težine. Ovaj
postupak odgovara cikličnom pomeranju ili rotaciji. Tako, ako primenimo 8 puta rotaciju
udesno na sadržaj u registru veličine bajta dobićemo sadržaj od kog smo krenuli.
Sadržaj registra pre i posle cikličnog pomeranja za 2 mesta udesno prikazan je u
sledećem primeru.
Pre: 01011111
Posle: 11010111
Drugi način je da se odbaci bit najmanje težine, a da se na mesto praznine uvek upisuje
0. Termin logičko pomeranje se koristi za ovakvu vrstu pomeranja. Ova vrsta pomeranja
ulevo se može iskoristiti za množenje označenih (ili neoznačenih) brojeva sa dva. Slično
kao što se pomeranje dekadnih brojeva za 1 mesto ulevo odgovara množenju sa 10,
pomeranje označenih binarnih brojeva (u potpunom komplementu) za 1 mesto ulevo
odgovara množenju sa 2. Sadržaj registra pre i posle logičkog pomeranja za 1 mesto ulevo
je prikazan u sledećem primeru.
Pre: 00001000 (= 8 dekadno)
Posle: 00010000 (= 16 dekadno)
U V O D U R A Č U N A R S T V O
154
Pomeranje ulevo za n mesta odgovara množenju sa 2n.
Slično, logičko pomeranje neoznačenih brojeva za n mesta udesno odgovara deljenju sa
2n. Sadržaj registra pre i posle logičkog pomeranja za 1 mesto udesno je prikazan u
sledećem primeru.
Pre: 00001000 (= 8 dekadno)
Posle: 00000100 (= 4 dekadno)
Međutim, kod logičkog pomeranja označenih brojeva udesno imamo problem jer se na
mesto praznine uvek upisuje 0. Zato je u ovu svrhu mnogo korisnije koristiti aritmetičko
pomeranje udesno koje ima osobinu da prazninu na mestu znaka uvek popunjava
originalnom vrednošću, a ostali deo pomera na način kao kod logičkog pomeranja.
Sadržaj registra pre i posle aritmetičkog pomeranja za 1 mesto udesno je prikazan u
sledećem primeru.
Pre: 11110111 (= -9 dekadno)
Posle: 11111011 (= -5 dekadno)
Sadržaj registra pre i posle logičkog pomeranja za 1 mesto udesno izgleda:
Pre: 11110111 (= -9 dekadno)
Posle: 01111011 (= +123 dekadno)
Aritmetičko pomeranje ulevo se odvija na isti način kao i logičko.
Naredbe za logičko pomeranje udesno i ulevo imaju sledeći oblik:
SHL Ri, k ; Logičko pomeranje sadržaja registra Ri za k mesta ulevo
SHR Ri, k ; Logičko pomeranje sadržaja registra Ri za k mesta udesno
Naredbe za aritmetičko pomeranje udesno i ulevo imaju sledeći oblik:
SAL Ri,k ; Aritmetičko pomeranje sadržaja registra Ri za k mesta ulevo
SAR Ri, k ; Aritmetičko pomeranje sadržaja registra Ri za k mesta udesno
Nazivi operacija logičkog pomeranja nastali su od engleskih reči SHift Left i SHift
Right, dok su nazivi operacija aritmetičkog pomeranja nastali su od engleskih reči Shift
Arithmetic Left i Shift Arithmetic Right.
Naredbe za kruženje (rotaciju) udesno i ulevo imaju sledeći oblik:
ROR Ri, k ; Desno kruženje sadržaja registra Ri za k mesta
ROL Ri, k ; Levo kruženje sadržaja registra Ri za k mesta
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
155
Operacije pomeranja se uglavnom koriste u svrhu poravnanja operanada prilikom
izvršenja aritmetičkih operacija. Ove operacije su dobile naziv od engleske reči ROtate Left
(Right).
9.2.2.3 Naredbe za upravljanje tokom izvršenja programa
Upravljačka grupa naredbi sadrži skup naredbi koje upravljaju tokom izvršenja
programa, a ne bavi se manipulacijom podataka. U ovoj grupi se nalaze mnoge instrukcije
iz skupa instrukcija procesora, ali mi ćemo se ovde zadržati na naredbama grananja. Ove
naredbe uglavnom su pripadnice porodice JUMP (ili BRANCH) instrukcija i usmeravaju
CPU tako da izvrši instrukciju koja nije sledeća po redu. Naredbe grananja omogućavaju da
se izvrši jedan ili drugi deo programa u zavisnosti od uslova koji se dobija u toku izvršenja
programa. Na taj način utiču na tok izvršenja programa. Ove naredbe mogu biti naredbe
uslovnog i bezuslovnog grananja.
Kod naredbe bezuslovnog grananja na specificiranu naredbu se prelazi bez ispitivanja
ikakvog uslova. Sledeći primer ilustruje naredbu bezuslovnog skoka na adresu ad.
J ad;
Naredba uslovnog grananja sadrži uslov grananja kao i adresu naredbe na koju se
prelazi ako je uslov ispunjen. U slučaju da uslov nije ispunjen, prelazi se na prvu naredbu
iza naredbe grananja. Naredba grananja ima sledeći oblik:
Ju ad;
gde je NVZCu ,,, . Ako je uslov u=1 tada se prelazi na izvršenje naredbe sa adresom
ad u suprotnom na prvu naredbu iza naredbe grananja. Deo naredbe u predstavlja uslov iz
registra uslova koji se prilikom ove naredbe ispituje. Uslov se postavlja nakon izvršenja
nekih aritmetičkih ili logičkih operacija. Na primer, prilikom sabiranja dva broja može se
javiti prenos. Da bi ispitali da li se prenos javio, tj. da li je C bit u registru uslova postavljen
na 1 koristi se naredba JC. Postoje i drugi uslovi koji se mogu sagledavati, koji se zasnivaju
se na proveri odgovarajućih bitova u registru uslova, kao što su nula, znak, prekoračenje
itd. Odgovarajuće naredbe u pomenutim slučajevima su: JZ, JN, JV respektivno. Naredbe
koje ispituju negaciju prethodno pomenutih uslova su: JNC, JNZ, JNN I JNV.
9.2.2.4 Ulazno-izlazne naredbe
Naredbe koje su do sada razmatrane, omogućavaju: prenos podataka između memorije
i registra i to u oba smera, prenos podataka između registara, obavljanje različitih
aritmetičko-logičkih operacija, itd. Ono što se nameće kao pitanje je odakle dolaze svi ti
podaci ili kako podatke koji predstavljaju rezultat učiniti vidljivim korisniku. U tu svrhu se
koriste ulazne i izlazne naredbe. Ulaznom naredbom se nalaže čitanje podataka sa nekog
perfernog (ulaznog) uređaja u neki registar procesora, a ponekad i istovremeni upis u
U V O D U R A Č U N A R S T V O
156
glavnu memoriju. Izlaznom naredbom se nalaže slanje podataka iz nekog registra procesora
na periferni (izlazni) uređaj. Svaki ulazno/izlazni uređaj ima broj koji specificira njegovu
adresu. Naredbe za ulaz i izlaz ima sledeći oblik:
IN Ri, dev;
OUT Ri, dev;
gde dev u naredbi IN predstavlja adresu ulaznog uređaja, dok u naredbi OUT predstavlja
adresu izlazog uređaja. Naredbom IN se obavlja čitanje sa uređaja sa adresom dev u registar
Ri, dok se naredbom OUT obavlja slanje podataka iz registra Ri na uređaj sa adresom dev.
9.3 Izvršenje programa i ciklus izvršenja naredbe
Procesor obavlja svoj posao kontinualno ponavljajući postupak koji ga vodi kroz tri faze
koje zajedno predstavljaju ciklus izvršenja naredbe (instrukcije). Procesor izvršava svaku
naredbu u ove tri sukcesivne faze: fazu pribavljanja naredbe, fazu dekodiranja i fazu
izvršenja naredbe. Nekada se faze pribavljanja naredbe i faza dekodiranja naredbe zajedno
nazivaju faza pripreme naredbe. Faza pribavljanja prethodi fazi dekodiranja, dok faza
dekodiranja prethodi fazi izvršenja naredbe i one se ciklički menjaju. Ukratko ćemo opisati
svaku od faza.
Pribavljanje naredbe – na osnovu adrese koja se nalazi u adresnom registru, a koja je
prethodno iskopirana iz brojača naredbi, kontrolna jedinica nalaže pribavljanje instrukcije
iz memorije. Zatim se vrši njeno smeštanje u prihvatni registar, a potom u registar naredbi.
Tada se vrši i povećanje vrednosti brojača naredbi koji sada sadrži adresu naredbe koja će
sledeća da se pribavi iz memorije (u sledećem instrukcionom ciklusu).
Dekodiranje naredbe – kontrolna jedinica dekodira tekuću instrukciju u registru
naredbi, u okviru čega se ispituje kod operacije, kao i koji način adresiranja se koristi
prilikom pribavljanja operanada. Postupak dekodiranja naredbe, kao i pokretanje akcija za
njeno izvršenje se obavlja u delu upravljačke jedinice koja se zove dekoder instrukcija.
Dekoder instrukcija je kombinaciona mreža koja na osnovu mašinske instrukcije u registru
naredbi generiše signale koji određuju kojim registrima ili memorijskim lokacijama se
pristupa prilikom izvršenja instrukcije, koju operaciju treba izvršiti, itd.
Dok su ove dve faze iste za sve naredbe, faza izvršenja naredbe se odvija specifično za
svaku naredbu ili grupu naredbi. U slučaju faze izvršenja neke aritmetičko-logičke naredbe
u ovoj fazi se čitaju operandi iz glavne memorije i/ili odgovarajućeg registra, aktivira se
deo u okviru ALU koje će izvršiti odgovarajuću aritmetičko-logičku operaciju, nakon čega
se po završetku posla dobijeni rezultat iz ALU upisuje u odgovarajući registar procesora.
Kada jedna naredba iz registra naredbi završi svoj ciklus, CPU počinje ciklus izvršenja
nove naredbe.
Još od pojave prvih računara koji su sekvencijalno izvršavali naredbe postojala je težnja
da se pronađu nove tehnike i metode za brže i efikasnije izvršenje programa. Jedna od
takvih tehnika je i protočna obrada tj. protočnost. Protočnost se primenjuje u situacijama
kada treba izvršiti veći broj radnji koje prolaze kroz iste faze tokom svog izvršenja.
Objasnićemo na početku princip protočnosti na primeru koji nije vezan za računare a koji
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
157
će jednostavnije ilustrovati princip koji se koristi. Primer izvršenja takvog skupa radnji bez
upotrebe protočnosti prikazan je na slici 9.4. Na slici 9.4 su prikazane radnje A, B, C i D u
izvođenju različitih osoba gde sve radnje prolaze kroz 4 faze: pranje odeće, sušenje odeće,
peglanje odeće i skladištenje odeće. Svaka od faza sa slike 9.4 traje isti period vremena tj.
30 minuta. Sa slike 9.4 se može se zaključiti da ovom slučaju vreme potrebno za izvođenje
sve 4 radnje iznosi 8 sati.
Slika 9.4 Pricip izvršenja četiri radnje (A,B,C,D) bez uvođenja protočnosti
Ako uvedemo princip protočnosti koji podrazumeva poklapanje faza različitih radnji sa
tim da faze ne koriste iste resurse i ne zavise jedna od druge dobićemo situaciju prikazanu
na slici 9.5. Sa slike 9.5 se može se zaključiti da je vreme potrebno za izvođenje sve 4
radnje skraćeno i iznosi 3,5 sata.
Slika 9.5 Princip izvršenja četiri radnje (A,B,C,D) sa uvodenom protočnošću
Ovaj princip se primenjuje i kod procesora. Bez uvođenja protočnosti procesor izvršava
samo jednu instrukciju u jednom trenutku. Kod savremenih procesora uvodi se princip
protočnosti koji omogućava da se u procesoru izvršava više od jedne instrukcije
istovremeno. Kako instrukcija prolazi kroz protočni sistem, hardver svakog stepena obavlja
određeni tip obrade koji predstavlja jednu fazu u izvršenju. Tako na primer, dok teče jedna
faza izvršenja tekuće instrukcije, istovremeno se može obavljati neka druga faza naredne
instrukcije. Faze u izvršenju instrukcije ne moraju trajati isti period vremena. Zbog toga se
U V O D U R A Č U N A R S T V O
158
vrši dalja podela svake od ovih faza na akcije sa ciljem da one budu vremenski
izbalansirane i da se veći broj akcija izvršava istovremeno. Za procesore koji podržavaju
ovakav način izvršenja mašinskih instrukcija kažemo da poseduje višestepenu protočnost.
Dobre performanse kod protočne obrade postižu se zahvaljujući paralelizmu koji se postiže
istovremenom obradom nekoliko instrukcija od kojih se svaka izvršava u različitom
stepenu.
9.4 Načini adresiranja
Kao što smo već pomenuli, mašinska naredba se sastoji iz dela koji specificira kôd
operacije (operacioni deo) i adresnog dela koji uglavnom specificira kako i odakle treba
uzeti operande i gde smestiti rezultat. Adresni deo se sastoji iz dela koji predstavlja
operande i dela za modifikator.
Kod savremenih računara adresa koja je navedena u naredbi najčešće ne predstavlja
stvarnu adresu podataka u memoriji, već samo jednu komponentu za formiranje te adrese.
Fizička (stvarna) adresa operanda u glavnoj memoriji formira se na osnovu više
komponenti i naziva se efektivna adresa. Postupak određivanja efektivne adrese na osnovu
adresnih informacija naziva se metoda (način) adresiranja. Način adresiranja, koji je
sadržan u okviru instrukcije, određuje kako procesor treba da koristi i interpretira bitove
instrukcije i ostale informacije da bi izračunao efektivnu adresu.
Radi boljeg razumevanja mi ćemo ovde pomeniti i objasniti najčešće korišćene načine
adresiranja u simboličkim mašinskim jezicima. Način adresiranja se obično odnosi na jedan
operand u instrukciji dok se drugi operand nalazi skoro uvek u registru.
9.4.1 Implicitno adresiranje
Kod ovog načina adresiranja operand nije eksplicitno zadat u instrukciji već se njegova
adresa podrazumeva i određena je kodom instrukcije.
Na primer, instrukcije CLC i STC vrše postavljanje carry flega u registru stanja na 0
odnosno 1, respektivno, iako se adresa registra stanja ne zadaje eksplicitno u instrukciji.
9.4.2 Neposredno adresiranje
Kod ovog načina adresiranja operand je deo same instrukcije. Dakle, operand se ne čita
ni iz registra niti iz glavne memorije već je operand sadržan u samoj instrukciji.
Ovaj način adresiranja se koristi za konstante. Na slici 9.6 je prikazan primer instrukcije
koja je jedna od instrukcija dobijena prevođenjem instrukcije int x=321 sa višeg
programskog jezika C. Operand se pribavlja u procesor u trenutku pribaljanja instrukcije. U
primeru sa slike 9.6 broj 321 je neposredni operand. Obim pribavljenog podatka je
ograničen brojem bitova predviđenih za operand.
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
159
Slika 9.6 Primer neposrednog adresiranja (* - kod neposrednog adresiranja)
9.4.3 Direktno memorijsko adresiranje
Kod ove vrste adresiranja operand se nalazi u memoriji, a adresa operanda u memoriji je
deo instrukcije. Dakle efektivna adresa operanda je deo instrukcije. U primeru sa slike 9.7
za broj 200 se koristi memorijsko adresiranje.
Prednost ovog načina rada adresiranja je jednostavnost izvođenja, a nedostatak
ograničeni adresni prostor.
9.4.4 Direktno registarsko adresiranje
Kod ove vrste adresiranja operand se nalazi u registru, a njegova adresa (adresa registra)
je deo instrukcije. Kod ove vrste adresiranja nema pristupa glavnoj memoriji, što može
ubrzati izvršenje ovih instrukcija. Deo instrukcije koji se koristi za adresiranje operanda u
registru je mali i sastoji od nekoliko bitova.
Primer korišćenja ove vrste adresiranja je kod dodele vrednosti promenljive. Na slici 9.8
je prikazan primer instrukcije koja je jedna od instrukcija dobijena prevođenjem instrukcije
x=y sa višeg programskog jezika C. U primeru sa slike 9.8 za broj 4 i za broj 3 se koristi
registarsko adresiranje.
kod operacije operand
instrukcija
.................
.......
MOV M*
* -
kod neposrednog adresiranja
4 321
Registri
R4
MOV R4,321; (R4):=321
Procesor
RN
U V O D U R A Č U N A R S T V O
160
Slika 9.7 Primer direktno-memorijskog adresiranja (* - kod direktno-memorijskog
adresiranja)
Slika 9.8 Primer direktno-registarskog adresiranja (* - kod direktno-registarskog
adresiranja)
kod operacije memorijska adresa
instrukcija
............memorijska lokacija
operand
.......
M*
* - kod direktnog memorijskog adresiranja
MOV 4 200
Registri
R4
LD R4, [100] ; (R4):=Mem[200]
Procesor
200
Memorija
kod operacije adresa registra
instrukcija
............registar
operand
.......
M*
* - kod direktnog registarskog adresiranja
MOV 4 3
Registri
R4R3
MOV R4, R3; (R4):=(R3)
Procesor
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
161
Primer upotrebe je i sabiranje dva cela broja. Na primer, instrukciji na višem
programskom jeziku c=a+b odgovara instrukcija na simboličkom mašinskom jeziku ADD
R1,R2,R3 gde je na sve operande u instrukciji primenjen ovaj način adresiranja. Naravno,
prethodnim naredbama koje su izostavljene iz ovog primera, operande a i b je potrebno
prvo pribaviti iz memorije. Ovde se sabiraju vrednosti koje se nalaze u registrima R2 i R3 i
rezultat smešta u registar R1. Prednosti ovog načina adresiranja je ta što se instrukcije koje
manipulišu sadržajem registra brzo izvršavaju, a mana je ograničen adresni prostor.
9.4.5 Indirektno memorijsko adresiranje
Kod ove vrste adresiranja, adresa koja je zadata u okviru instrukcije nije efektivna
adresa operanda, već adresa memorijske lokacije na kojoj se nalazi adresa operanda.
Operand se nalazi u memoriji. Ovde je znači potrebno dva puta pristupiti memoriji da bi se
dobio operand. Primer korišćenja ove vrste adresiranja je kod dodele vrednosti promenljive.
U primeru sa slike 9.9 za broj 200 se koristi indirektno memorijsko adresiranje.
Slika 9.9 Primer indirektno-memorijskog adresiranja (* - kod indirektno-memorijskog
adresiranja)
Nedostatak ovog načina adresiranja je, kao što je već navedeno, veći broj obraćanja
memoriji, što usporava izvršenje same instrukcije, a prednost je mogućnost pristupa većem
adresnom prostoru.
kod operacije memorijska adresa
instrukcija
............
memorijska adresa
memorijska lokacijamemorijska lokacija
operand
.......
LD 4 200
Registri
R4
LD R4, @(200) ; (R4):=Mem[Mem[200]]
Procesor
200
371
371
Memorija*
- kod indirektnog memorijskog adresiranja
M*
U V O D U R A Č U N A R S T V O
162
9.4.6 Indirektno registarsko adresiranje
Kod ove vrste adresiranja, za razliku od memorijskog indirektnog adresiranja, adresa
efektivne adrese operanda u glavnoj memoriji se nalazi u nekom registru opšte namene, a
ne u glavnoj memoriji. U primeru sa slike 9.10 za broj 3 se koristi indirektno registarsko
adresiranje.
Slika 9.10 Primer registarsko-indirektnog adresiranja (* - kod indirektno-registarskog
adresiranja)
Ova vrsta adresiranja, kao i memorijsko indirektno adresiranje, ima primenu kod
korišćenja pokazivača (pointera) u programskom jeziku C. Naime, pokazivači su
promenljive u kojima se čuva memorijska adresa promenljive, a ne njena vrednost. Da bi se
pristupilo vrednosti promenljive koristi se ovaj način adresiranja.
Prednosti ovog adresiranja u odnosu na memorijsko indirektno adresiranje je brže
izvršenje, jer postoji samo jedan pristup glavnoj memoriji.
9.4.7 Indeksno adresiranje
Kod indeksnog adresiranja efektivna adresa operanda se dobija sabiranjem konstantne
vrednosti i sadržaja registra, koji se naziva indeksni registar. Broj registra kao i vrednost
kod operacije adresa registra
instrukcija
............registar
memorijska adresa
memorijska lokacija
operand
.......
LD 4 3
Registri
R4R3
LD R4, (R3); (R4):=Mem[(R3)]
Procesor
100
100
Memorija
* - kod indirektnog registarskog adresiranja
M*
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
163
konstante su sadržani u instrukciji. Ovaj način adresiranja se koristi u slučaju pristupa
elementima polja.
Polje podataka je niz konačnog broja podataka istog tipa – članova (elemenata) polja. Ti
podaci mogu biti celobrojnog tipa, realnog tipa, tipa karaktera, itd. Podaci su smešteni na
sukcesivnim memorijskim lokacijama i njima se pristupa pomoću celobrojnih indeksa.
Kod indeksnog adresiranja, konstantni deo instrukcije predstavlja početnu adresu polja
u memoriji, dok sadržaj indeksnog registra služi da pamti pomeraj u odnosu na početnu
adresu polja. Povećanjem ili smanjivanjem vrednosti indeksnog registra omogućava se
pristup različitim elementima polja.
Kao što se može videti sa slike 9.11, 200 je deo instrukcije koji označava početnu
adresu polja u memoriji dok vrednost u registru R1 omogućava pristup različitim
elementima polja.
Slika 9.11 Indeksno adresiranje (* - kod indeksnog adresiranja)
9.4.8 Bazno adresiranje
Kod ovog načina adresiranja efektivna adresa se dobija sabiranjem vrednosti registra
koji se naziva bazni registar i konstantne vrednosti (pomeraja). Broj registra i vrednost
pomeraja su deo instrukcije. U baznom registru se čuva memorijska adresa dok konstantna
kod operacije adresa registra
adresa
konstanta
instrukcija
.....registar
memorijska lokacija operand
+
..............
ADD 4 1200
Registri
R4
R1
ADD R4, #200, R1 ; (R4):=Mem[200+R1]
Procesor
200 a[0]
a[1]
a[i]
Memorija
+
M*
* - kod indeksnog adresiranja
U V O D U R A Č U N A R S T V O
164
vrednost predstavlja pomeraj u odnosu na adresu u baznom registru. Jedna od primena ove
vrste adresiranja je kod pristupa elementima struktura (slogova). Struktura (slog) je tip
podataka koji se sastoji od elemenata koji mogu biti različitog tipa i kojima se pristupa na
osnovu imena. U slučaju struktura, u baznom registru se pamti adresa početka strukture, a
konstantna vrednost predstavlja pomeraj elementa strukture u odnosu na početak strukture.
9.4.9 Programski relativno adresiranje
Ovaj način adresiranja je po formatu sličan baznom adresiranju, s tim što je registar koji
se ovde koristi brojač naredbi. Efektivna adresa operanda se dobija tako što se sadržaj
brojača naredbi (adresa tekuće instrukcije) sabira sa pomerajem. Ovde je pomeraj označen
broj predstavljen u potpunom komplementu. Efektivna adresa predstavlja pomeraj u odnosu
na adresu instrukcije.
Ovaj način adresiranja se uglavnom koristi kod instrukcija grananja gde efektivna
adresa predstavlja adresu naredne instrukcije koja se dobija sabiranjem sadržaja
programskog brojača sa delom instrukcije koji predstavlja pomeraj.
9 . C E N T R A L N A P R O C E S O R S K A J E D I N I C A
165
Pitanja i zadaci
1. Objasniti funkciju aritmetičko-logičke jedinice (ALU) i kontrolne jedinice (CU).
2. Ako je zatečeno stanje akumulatora 3737 heksadekadno, a sadržaj memorijske lokacije
sa simboličkom adresom M 4884 heksadekadno, odrediti sadržaj akumulatora posle
izvršenja sledećeg niza naredbi (sve konstante su heksadekadne)
AND 7373
OR M
OR 1221
3. Pretpostavimo da treba da se izdvoje središnja četiri bita u bajtu tako da se postave
nule na ostalim bitovima a da središnji bitovi zadrže vrednosti koje su imali. Koja
maska zajedno sa kojom operacijom treba da bude korišćena da bi se ovo postiglo?
Napomena: Ako su bitovi u bajtu označeni kao b7b6b5b4b3b2b1b0, središnji bitovi su
boldirani.
4. Pretpostavimo da treba da se komplementiraju središnja četiri bita u bajtu tako da ostali
bitovi zadrže vrednosti koje su imali. Koja maska zajedno sa kojom operacijom treba
da bude korišćena da bi se ovo postiglo?
5. Koja logička operacija zajedno sa kojom maskom se može iskoristiti da bi se promenio
ASCII kod malog slova u veliko slovo? Šta se može iskoristiti da bi se izvršila
promena ASCII koda velikog slova u malo slovo?
6. Za koliko bitova se treba izvršiti levo ciklično pomeranje niza od 8 bitova da bi se
dobio isti niz bitova kao pri desnom cikličnom pomeranju za 3 bita istog polaznog
niza?
7. Objasniti funkcionisanje naredbi uslovnog skoka na primeru naredbi uslovnog skoka
JZ, JNZ, JC I JNC.
8. Objasniti sličnosti i razlike između indeksnog i baznog adresiranja kod
mikroprocesora. Navesti primere upotrebe tog tipa adresiranja.
9. Objasniti pojam registarskog adresiranja kod mikroprocesora. Navesti primere
upotrebe tog tipa adresiranja.
10. Objasniti neposredno i registarko adresiranje kod mikroprocesora.
11. Objasniti prednosti i mane indirektnog memorijskog adresiranja u odnosu na direktno
memorijsko adresiranje.
12. Objasniti pojam PIPELINE-a u arhitekturi procesora
13. Čemu služi registar naredbi a čemu brojački registar?
14. Objasniti ciklus izršenja instrukcije.
1 0 . U L A Z N O - I Z L A Z N I U R E Đ A J I
167
10 ULAZNO /IZLAZNI UREĐAJI
Ulazno-izlazni uređaji računara omogućavaju razmenu podataka sa spoljnim
okruženjem. Pod ulazom se podrazumeva proces prenošenja podataka sa ulaznog uređaja u
glavnu memoriju ili registar procesora, dok izlaz podrazumeva proces prenošenja podataka
iz glavne memorije ili registara procesora na izlazni uređaj. Ulazni i izlazni uređaji se često
nazivaju zajedničkim imenom periferni uređaji. Procesor pribavlja instrukciju i podatke iz
glavne memorije, a onda izvršava instrukciju. Ako instrukcija, na primer, nalaže izvršenje
neke matematičke operacije, odgovarajuća logička kola unutar procesora učestvuju u
izvršavanju te instrukcije smeštajući pritom vrednosti rezultata u neki od registara
procesora. Nakon toga, binarna vrednost iz registra procesora (ili iz memorije) treba da se
prenese na odgovarajući periferni uređaj izvođenjem odgovarajuće U/I aktivnosti. Prilikom
izvršenja ulazno-izlazne aktivnosti potrebno je obezbediti izbor odgovarajućeg U/I uređaja
navođenjem njegove adrese, prenos podataka od odgovarajućeg uređaja ili ka
odgovarajućem uređaju i koordinaciju rada centralnog procesora i U/I uređaja
prilikomizvođenja odgovarajuće U/I aktivnosti.
Radom U/I uređaja upravljaju kontroleri ili adapteri U/I uređaja. Kontroler može biti
integrisan u matičnu ploču, ili se može priključiti na slot na matičnoj ploči. Kontroler se
povezuje, ili na periferni uređaj u okviru sistemske jedinice, ili na port na koji će
odgovarajući periferni uređaj biti povezan. Zbog razlike u formatima i načinima kodiranja
podataka u perifernom uređaju i u računaru, kontroler izvodi konverziju formata podataka
koji karakterišu računar i onih koji karakterišu periferni uređaj. Prvobitno, svaki kontroler
je projektovan za određeni tip perfernog uređaja. Zatim su razvijeni standardi kao što su
USB i Firewire, koji omogućavaju jednom kontroleru da upravlja većim brojem perifernih
uređaja. Tako na primer, USB kontroler upravlja radom kolekcije USB-kompatibilnih
uređaja, kao što su miš, tastatura, skener, štampač, digitalna kamera, pametni telefon itd.
Svaki kontroler se povezuje na istu magistralu na koju se povezuju i procesor i glavna
memorija (slika 10.1). Na taj način on je u mogućnosti da nadgleda signale koji se šalju
između procesora i glavne memorije, kao i da ubaci svoje signale na magistralu.
Zbog raznovrsnosti u tipovima i karakteristikama U/I uređaja koji se mogu ugraditi ili
priključiti na savremene računare, u cilju upravljanja radom ovih uređaja operativnom
sistemu, podršku pruža specijalan softver nazvan drajver uređaja. Drajvere uređaja
razvijaju proizvođači uređaja za svaki OS (platformu) i osim generičkih drajvera za U/I
uređaje osnovnih karakteristika koji predstavljaju deo operativnog sistema, specijalizovani
drajveri se dobijaju zajedno sa U/I uređajem koji je ugrađen u računar. Drajver uređaja
upravlja kontrolerom (adapterom) U/I uređaja, putem čitanja i upisa u registre kontrolera
namenjenih za naredbe, podatke, status uređaja i adresu (čitanja ili upisa). Drajver uređaja
U V O D U R A Č U N A R S T V O
168
upravlja radom U/I kontrolera, izdajući mu komande i prihvatajući rezultat izvršenja U/I
operacije.
Slika 10.1 Povezivanje kontrolera na magistralu
Postoji više načina izvršenja U/I operacija koji se razlikuju prema stepenu učešća
procesora prilikom obavljanja U/I aktivnosti:
Programirani U/I – aplikativni program poziva U/I funkciju operativnog sistema
(read, write), koja poziva drajver uređaja koji zatim aktivira U/I kontroler.
Aplikativni program i drajver izvršava procesor. Objasnićemo princip rada ove
tehnike na primeru čitanja podataka. Procesor nalaže U/I kontroleru izvršenje U/I
operacije i kad se operacija okonča, podešavaju se odgovarajući bitovi u registru
kontrolera koji se naziva statusni registar, ali se pritom procesor ne obaveštava o
tome. Zato procesor nakon izdavanja naloga kontroleru mora povremeno da
proverava da li je operacija završena. Ako je završena, procesor čita podatak iz
registra podataka kontrolera, upisuje podatak u memoriju i vraća se na sledeću
instrukciju aplikativnog programa. Problem kod ovog obavljanja U/I aktivnosti je
to što procesor mora da čeka dok U/I kontroler ne bude spreman za predaju, ili
prijem podataka. Dok čeka mora stalno da proverava status U/I uređaja. Ova
tehnika znatno narušava performanse sistema i može biti opravdana samo u
slučaju brzih uređaja, kada vreme čekanja procesora na odziv nije veliko.
Prekidima vođen U/I – aplikativni program poziva U/I funkciju operativnog
sistema (read, write), koja poziva drajver uređaja koji zatim aktivira U/I kontroler.
Drajver završava, OS za taj aplikativni program pamti trenutne vrednosti registara
procesora koji sadrže vrednosti sa njegovim tekućim izvršenjem, postavlja ga u
stanje čekanja i aktivira neki drugi program. Kada kontroler obavi U/I operaciju,
generiše prekid koji šalje procesoru. Program koji se izvršava se prekida, i
započinje izvršenje procedure za obradu prekida koja obezbeđuje završetak U/I
operacije i prenošenje zahtevanih podataka između U/I uređaja i registra
procesora, a potom između registra procesora i glavne memorije. Sada se na
osnovu zapamćenog tekućeg sadržaja registara može ponovo aktivirati program
koji je prekinut, tj. u okviru koga je izdat nalog za U/I operacijom. Kao što se
CPU
Kontroler
Kontroler Kontroler
Kontroler
CD drajv
Monitor Disk drajv
Modem
Glavna memorija
Magistrala
1 0 . U L A Z N O - I Z L A Z N I U R E Đ A J I
169
može zaključiti, prekidima vođen U/I je efikasniji od programiranog U/I jer
eliminiše bezpotrebno čekanje procesora. Međutim, kod ovog načina imamo i
dalje trošenje mnogo procesorskog vremena jer svaki prenos podataka između
glavne memorije i U/I uređaja mora da prođe kroz procesor.
U/I korišćenjem DMA (Direct Memory Access) kontrolera – Koristi se poseban
DMA kontroler koji omogućava prenos veće količine podataka (blokova podataka)
između memorije i U/I kontrolera bez intervencije procesora. Procesor aktivira
DMA kontroler, specificirajući adresu uređaja, adresu početka područja u
memoriji koje učestvuje u prenosu podataka sa U/I uređajem, kao i broj bajtova
koje treba prebaciti u ovo područje, ili iz ovog područja u memoriju. Ove
vrednosti procesor upisuje u odgovarajuće registre DMA kontrolera, nakon čega se
upravljanje U/I prenosom prenosi upravo DMA kontroleru koji nadalje obavlja
ulogu koju je procesor imao. Za to vreme, procesor nastavlja da izvršava neki
drugi program. DMA kontroler prebacuje ceo blok podataka (reč po reč) direktno
u memoriju ili iz nje, bez prolaska kroz procesor. Nakon završenog prenosa, DMA
kontroler generiše prekid kojim obaveštava procesor da je naloženi prenos bloka
podataka okončan. Kao što se može zaključiti, procesor je uključen samo na
početku i na kraju prenosa što čini DMA prenos efikasnijim u pogledu
performansi u odnosu na prethodna dva načina prenosa.
Izdavanje
komande čitanja
kontroleru
Čitanje statusa
kontrolera
Provera
statusa
Čitanje podatka
iz kontrolera
Upis podataka u
glavnu memoriju
Završeno?
Sledeća instrukcija
Da
Ne
Nije
spreman
Spreman
CPUU/I
U/ICPU
U/ICPU
CPUMemorija
Izdavanje
komande čitanja
kontroleru
Čitanje statusa
kontrolera
Provera
statusa
Čitanje podatka
iz kontrolera
Upis podataka u
glavnu memoriju
Završeno?
Sledeća instrukcija
Da
Spreman
CPUU/I
U/ICPU
U/ICPU
CPUMemorija
Radi nešto
drugo
Prekid
Izdavanje
komande čitanja
bloka DMA
Čitanje statusa
DMA
CPUDMA
DMACPU
Prekid
Radi nešto
drugo
Sledeća instrukcija
a) b)
c)
Ne
Slika 10.2 Načini izvršenja U/I operacija a) programirani U/I b) prekidima vođen U/I c)
U/I korišćenjem DMA
U V O D U R A Č U N A R S T V O
170
10.1 Ulazni uređaji
Ulazni uređaji služe za unošenje podataka u računar (u procesor, glavnu memoriju ili
sekundarnu memoriju). Prema načinu unošenja podataka svi ulazni uređaji se mogu svrstati
u dve grupe: uređaje za ručno unošenje (učitavanje) i uređaje za automatsko unošenje.
10.1.1 Uređaji za ručno unošenje podataka
U uređaje za ručno unošenje spadaju: miš, tastatura, tačped, trekbol, džojstik, gejmped i
drugi.
Miš je ulazni uređaj koji pretvara pokrete, kao i pritiske na tastere korisnikove ruke, u
električni signal koji šalje računaru. Računar ove signale pretvara u pokrete kursora na
ekranu ili u aktiviranje nekih događaja. Miš je pokazivački uređaj koji se rukom pokreće po
ravnoj površini. Pokreti miša po podlozi se prenose u računar i uzrokuju kretanje
pokazivača (kursora) u istom smeru na ekranu. Miš se koristi za pomeranje pokazivača na
ekranu na objekte kao što su dugme, meni, ikona, link ili tekst. Tada treba pritisnuti dugme
na mišu u cilju izvođenja akcije vezane za taj objekat.
Postoji više vrsta miševa koji se razlikuju prema tehnologiji izrade. To su mehanički,
optički i laserski miš. Mehanički miš koristi pokretnu gumenu kuglicu sa donje strane za
pomeranje pokazivača na ekranu. Pravac njenog okretanja detektuju elektromehanički
čitači koji generišu signal na osnovu koga se vrši pomeranje pokazivača na ekranu. Sa
druge strane, optički miš sadrži izvor svetlosti i optoelektrični senzor koji tokom pokretanja
miša registruje promene u odbijanju svetlosti od podloge na osnovu čega se vrši pomeranje
pokazivača na ekranu.
Miševi se na računar mogu povezati žičanim ili bežičnim putem. Ranije su se miševi
žičano povezivali na sistemsku jedinicu preko specijalnog PS/2 porta zelene boje. Danas se
proizvode miševi koji se povezuju na sistemsku jedinicu preko USB porta koji je
univerzalan i postoji na skoro svim današnjim računarima. Bežična komunikacija sa
računarom se odvija pomoću radio talasa, infracrvene svetlosti i bluetooth-a. Za bežičnu
komunikaciju miša sa računarom potrebno je obezbediti predajnik i prijemnik. Predajnik je
smešten u samom mišu i šalje signal koji nosi informaciju o pokretima i pritiscima na
tastere miša. Prijemnik je povezan sa računarom i on prihvata poslati signal i prevodi ga u
odgovarajuću akciju u računaru. Prijemnik može biti poseban uređaj koji se priključuje na
računar (obično preko USB porta), posebna kartica koju smeštamo u neki slot za proširenje
ili ugrađena komponenta računara. Bežični miševi se napajaju preko baterije. Na slici 10.3
prikazane su različite vrste miševa.
Tač ped (eng. touch pad) je mala, pravougaona pločica osetljiva na pritisak i na pokret
koja se koristi kod prenosivih računara i kod koje pomeranje prsta po njoj omogućava
kretanje pokazivača na ekranu. Ispod pločice se uglavnom nalaze i dva tastera sa istom
ulogom kao levi i desni taster miša.
1 0 . U L A Z N O - I Z L A Z N I U R E Đ A J I
171
a) b)
Slika 10.3 a) Mehanički i optički miš b) bežični miš
Trekbol (eng. trackball) je uređaj sličan mišu, s tim što se on ne kreće po ravnoj
podlozi, već se kuglica koja se nalazi sa gornje strane uređaja okreće prstima ili šakom
čime se vrši pomeranje pokazivača. Koristi se kod laptopova. Tač ped i trekbol su prikazani
na slici 10.4.
Slika 10.4 Tač ped i trekbol
Tastatura je jedan od najvažnijih i najčešće korišćenih ulaznih uređaja i uz pomoć nje
korisnik prenosi različite vrste informacija računaru. Zajedničko za sve tastature je da
poseduju određeni skup tastera koji uvek imaju istu veličinu i oblik i služe kako za unos
teksta, brojeva i specijalnih znakova, tako i za kontrolu operacija koje računar izvršava.
Tastatura predstavlja niz tastera koji kada se pritisnu proizvode binarni kod pritisnutog
znaka. U većini slučajeva pritisak na taster uzrokuje ispisivanje znaka koji odgovara tom
binarnom kodu. Da bi se dobili neki znaci potrebno je pritisnuti i više od jednog tastera, a
nekad pritisak na taster ne uzrokuje ispisivanje znaka već uzrokuje izvršenje neke operacije.
Tasteri na tastaturi se mogu grupisati u nekoliko funkcionalnih celina. Tako, alfanumerički
deo tastature služi za ispisivanje odgovarajućih znakova, numerički deo postoji i odvojeno
jer se tastature nekad koriste za unos velikog broja brojčanih podataka i to naročito u
poslovnom okruženju, a funkcijski i kontrolni tasteri su dodati da bi se lakše pristupalo
U V O D U R A Č U N A R S T V O
172
operativnom sistemu i aplikacijama računara. Na desktop računare se žičane tastature
priključuju preko USB porta ili preko PS/2 porta ljubičaste boje na sistemskoj jedinici.
Neke tastature se povezuju sa sistemskom jednicom bežično putem radio talasa, bluetooth-a
ili putem infracrvene svetlosti. Kao i kod miševa, za bežičnu komunikaciju tastature sa
računarom potrebno je obezbediti i predajnik i prijemnik. Kako ne poseduju fizičku
konekciju sa računarom bežične tastature moraju raditi na baterije.
Slika 10.5 Tastatura
Džojstik (eng. joystick) i gejmped (eng. gamepad) se koriste u video igrama. Džojstik
ima ručicu čije kretanje rukovodi kretanjem grafičkog objekta na ekranu. Gejmped sadrži
tablu sa tasterima koja služi za upravljanje objektima iz video igara.
Slika 10.6 Joystick i gamepad
10.1.2 Uređaji za automatsko unošenje podataka
Uređaji za automatsko unošenje podataka se mogu podeliti na uređaje sa neposrednim
unošenjem i uređaje sa posrednim unošenjem. Kod posrednog unošenja ulaznoj aktivnosti
prethodi prikupljanje podataka. Prikupljanje podataka se sastoji u zapisivanju podataka na
posebnim nosiocima, najčešće na hard disku.
1 0 . U L A Z N O - I Z L A Z N I U R E Đ A J I
173
Kod neposrednog unošenja podaci se unose neposredno u računar. Uređaji za
automatsko neposredno unošenje čitaju podatke sa posebnih formulara, štampani tekst i
grafičke podatke. Kod obrada koje uključuju obradu velike količine podataka, obrasci mogu
služiti i kao originalni dokumenti i kao nosioci ulaznih podataka sa kojih se čitaju
automatski pomoću posebnih uređaja za čitanje.
Ovi uređaji mogu uštedeti korisniku vreme, tako što učitavaju podatke direktno sa
izvornog dokumenta koji je i originalni oblik podataka. U te uređaje spadaju optički
skeneri, optički čitači, čitači bar koda, magnetni čitači itd.
Optički skeneri vrše optičko čitanje i diskretizaciju slika i crteža pomoću optičkog
sistema za detektovanje tamnih i svetlih mesta koji čine sadržaj zapisan/nacrtan na papiru.
Ovu sliku pretvaraju u digitalni oblik i šalju u memoriju računara. Skener se sastoji od
lampe koja osvetljava papir i optičkih senzora koji reaguju na reflektovanu svetlost od
papira. Lampa se pomera duž papira (skenira ga) dok senzori prihvataju reflektovanu
svetlost i pretvaraju je u električne signale koji se šalju u računar. Slika se prikazuje na
ekranu, a zatim se posebnim programima može menjati i doterivati.
Optički čitač je uređaj koji koristi svetlosni izvor u cilju čitanja podataka, oznaka i
kodova i konvertovanja u odgovarajući digitalni oblik koji se može obrađivati u računaru.
Postoje dve tehnologije koje se koriste od strane optičkih čitača: OCR (Optical Character
Recognition) i OMR (Optical Mark Recognition). OCR podrazumeva čitanje kucanih ili na
računaru štampanih karaktera, dok OMR podrzumeva čitanje rukom pisanih oznaka kao što
su mali krugovi ili pravougaonici. Oznaka se stavlja na formu kao što su test, anketa,
upitnik i slično.
Bar kod čitač je optički čitač koji služi za dešifrovanje bar koda. Bar kod je obično niz
debljih i tanjih crnih i belih linija koji služi za šifriranje proizvoda u supermarketima i lakši
unos podataka u računar. Danas postoje i dvodimenzionalni bar kodovi kojima se može
zapamtiti više informacija nego sa jednodimenzionalnim bar kodovima.
Slika 10.7 Skener, OMR čitač i bar kod čitač
10.2 Izlazni uređaji
Izlazni rezultati koji predstavljaju rezultate obrade mogu se koristiti u sledeće svrhe:
privremeno pamćenje na mašinski čitljivim nosiocima (na primer hard disk, optički disk,
USB fleš disk), prikaz krajnjih rezultata obrade (na primer monitor) i neposredno
korišćenje.
U V O D U R A Č U N A R S T V O
174
10.2.1 Monitori
Primarni izlazni uređaj za kućni i poslovnu upotrebu je monitor. Kada korisnik unosi
podatke, oni se prikazuju na ekranu monitora. Isto tako, rezultati rada računara, kao i
eventualne programske poruke prikazuju se na monitoru.
Monitori su godinama bili CRT (eng. Cathode Ray Tube) uređaji. Kod RGB (eng. Red
Green Blue) CRT monitora, ekran monitora je sa unutrašnje strane pokriven matricom od
više hiljada sićušnih fosfornih tačaka. Kad snop elektrona udari u neku fosfornu tačku, ona
zasvetli. Na zadnjem delu katodne cevi se nalazi elektronski top (tačnije tri topa crvene,
plave i zelene boje) koji šalje snop elektrona u pravcu pojedinih tačaka, pa se u zavisnoti od
inteziteta zraka dobija svetlija ili tamnija tačka boje na ekranu. Kombinovanjem intenziteta
crvene, plave i zelene boje dobija se bilo koja željena boja. Brzim kretanjem elektronskog
mlaza i čestim obnavljanjem njegovog prelaza preko ekrana dobija se slika. Kvalitet
prikaza slike je određen rezolucijom i brzinom osvežavanja. Rezolucija predstavlja broj
tačaka (piksela) na ekranu monitora. Obično se meri kao broj horizontalnih i vertikalnih
piksela. Brzina osvežavanja nam kazuje koliko puta se obnovi slika na ekranu u toku jedne
sekunde. Na primer, ako u oznaci monitora piše 1600x1200/68 Hz, to znači da je sposoban
da prikaže 1600*1200 piksela dok se osvežavanje vrši 68 puta u sekundi.
Danas su mnogo šire u upotrebi LCD (eng. Liquid Crystal Display) monitori. U odnosu
CRT monitore. Ovi monitori su mnogo tanji i troše mnogo manje energije. LCD monitori
umesto katodne cevi koriste male tranzistore koji pod dejstvom napona blokiraju deo
spektra svetlosti čime se određuje intenzitet i boja piksela. LCD ekrani su se prvobitno
koristili kod notebook računara i PDA (eng. Personal Digital Assistent) uređaja, dok su
nakon što im je cena smanjena postali popularni i kao desktop monitori.
Slika 10.8 CRT i LCD monitor
10.2.2 Štampači
Štampači su još jedna vrsta izlaznih uređaja. Štampač je uređaj koji podatke iz računara
prenosi (štampa) na papir ili neki drugi medijum. Pomenućemo tri vrste štampača koji se
danas najviše koriste: matrični štampači, inkdžet štampači i laserski štampači.
1 0 . U L A Z N O - I Z L A Z N I U R E Đ A J I
175
Matrični štampač je štampač sa dodirnim mehanizmom. Glava štampača sastoji se od
iglica koje mogu da iscrtaju bilo koji znak. Glava štampača može imati različit broj iglica:
9, 18 i 24. Veći broj iglica daje kvalitetniji otisak. Iglice udaraju u papir preko trake
natopljene mastilom i na taj način se ostavlja otisak na papiru. U toku pomeranja glave
pojedine iglice izleću i tako ostavljaju otisak na papiru. Glava se pomera levo-desno i
ispisuje liniju po liniju, dok valjak štampača pomera papir naviše. Pomeranje glave i
okretanje valjka reguliše računar. Ovi štampači su spori, bučni i male rezolucije. Danas su
ređe u upotrebi u odnosu na inkdžet i laserske štampače.
Inkdžet štamapači formiraju sliku tako što glava za štampanje sadrži cevčice kroz koje
se pod pritiskom izbacuje zagrejano mastilo koje se nalazi u kertridžima. Prilikom dodira sa
papirom mastilo se hladi i stvrdnjava. Broj cevčica određuje kvalitet otiska. Ovi štampači
imaju mogućnost štampanja u crno-beloj tehnici i u boji. U odnosu na matrične štampače
ovi štampači su brži, nisu bučni i imaju bolju rezoluciju.
Laserski štampači imaju izvor laserskih zraka koji menja intenzitet u zavisnosti od
dobijenog signala. Laserski zrak se odbija od obrtnog ogledala i osvetljava fotosenzitivni
valjak koji je pokriven jednakim naelektrisanjem. Kada je valjak izložen laserskom zraku
naelektrisanje na valjku se menja. Valjak tada dolazi u kontakt sa finim crnim prahom tzv.
tonerom, što deluje na privlačenje tonera na mestima promene naelektrisanja valjka. Nakon
toga valjak dolazi u konakt sa papirom, toner se prenosi na papir i tako nastaje slika. Posle
prenošenja tonera na papir, papir sa nanesenim tonerom prolazi kroz grejače i izlaže se
visokoj temperaturi. Na taj način se prah ispeče i fiksira na papiru.
Slika 10.9 Inkdžet i laserski štampač
Kvalitet izlaza štampača se meri rezolucijom tj. brojem tačaka po inču (eng. dots per
inch - dpi) u horizonalnom i vertikalnom pravcu. Rezolucija iznosi od 300dpi do 2400dpi i
za inkdžet i za laserske štampače. Još jedna mera se koristi za poređenje štampača, a to je
broj strana u minuti tj. ppm (eng. pages per minute) koje je štampač u mogućnosti da
odštampa. Laserski štampači mogu odštampati od 6 do 15 ppm, dok inkdžet štampači mogu
odšampati 4 ppm i više za crni tekst.
U V O D U R A Č U N A R S T V O
176
Pitanja i zadaci
1. Šta je drajver, a šta kontroler U/I uređaja? Objasniti ulogu svakog od njih u izvršenju
U/I aktivnosti.
2. Koji načini izvršenja U/I aktivnosti postoje? Opisati jedan od njih.
3. Koja je prednost prekidom vođenog U/I u odnosu na programirani U/I.
4. Koja je prednost U/I korišćenjem DMA u odnosu na prekidom vođenog U/I i
programirani U/I.
5. Šta su ulazni uređaji i kako ih možemo podeliti?
6. Koji su uređaji za ručno unošenje podataka? Objasniti detaljno način rada jednog od
njih.
7. Kojoj vrsti ulaznih uređaja pripada skener? Objasniti detaljno njegov princip rada.
8. Šta su izlazni uređaji? Navesti dve vrste izlaznih uređaja i objasniti način rada jednog
od njih?
1 1 . S O F T V E R R A Č U N A R A
177
11 SOFTVER RAČUNARA
Softver koji se može naći na tipičnom računarskom sistemu može se podeliti u dve
generalne klase: aplikativni i sistemski softver (Slika 11.1). Aplikativni softver je softver
namenjen specifičnim potrebama korisnika za rešavanje konkretnih problema, kao što su
aplikacije za obradu teksta, tabelarne proračune, baze podataka, računarske igre, obračun
plata, arhitektonsko projektovanje, itd. Tako će računar namenjen za održavanje inventara i
resursa proizvodne kompanije sadržati drugačiji aplikativni softver od računara koji koristi
bankovni službenik ili od kućnog računara tinejdžera. Sistemski softver predstavlja softver
za upravljanje računarskim sistemom na osnovnom nivou i zajednički je za sve računarske
sisteme, nezavisno od konkretne primene računara. Sistemski softver predstavlja osnovu za
pravilno i efikasno funkcionisanje aplikativnog softvera.
Softver
Aplikativni Sistemski
UslužniOperativni
sistem
Korisnički
interfejsKernel
Slika 11.1 Klasifikacija softvera
11.1 Aplikativni softver
Danas na softverskom tržištu postoji veliki izbor aplikativnog softvera namenjenog
poslovnim, zabavnim, edukativnim i slobodnim aktivnostima i zadacima savremenog
čoveka. Aplikativni softver možemo podeliti u više kategorija u odnosu na aktivnosti i
poslove koje korisnici izvršavaju korišćenjem odgovarajućeg softvera. Neke od ovih
aktivnosti su:
Poslovne aktivnosti i zadaci,
Grafičko projektovanje i obrada multimedijalnog sadržaja,
Korišćenje Internet-a i Web-a,
U V O D U R A Č U N A R S T V O
178
Edukativne i zabavne aktivnosti.
Poslovni softver omogućuje podršku za poslovne aktivnosti i u njega spadaju aplikacije
za kreiranje i rad sa dokumentima (obrada teksta), kreiranje prezentacija, rad sa tabelama za
unakrsna izračunavanja, planiranje i upravljanje projektima, kao i kompleksniji softver
namenjen određenom poslovnom domenu za planiranje resursa preduzeća, upravljanje
odnosom sa klijentima, upravljanje bankarskim transakcijama, vođenje poslovanja,
računarsko izdavaštvo, itd. Primeri poslovnih aplikacija su Miscoroft Word, Excel,
PowerPoint, itd.
Grafički i multimedijalni softver uključuje aplikacije za editovanje slika i fotografija,
kreiranje crteža, kreiranje multimedijalnih sadržaja, kreiranje grafikona, kreiranje i
editovanje videa, kreiranje i reprodukovanje muzičkih sadržaja, projektovanje pomoću
računara (CAD), itd. Primeri grafičkih i multimedijalnih aplikacija su CorelDraw, 3ds
Max, AutoCAD, itd.
Internet i Web softver uključuju Web pretraživače, e-mail klijente, aplikacije za
razmenu poruka, softver za dizajn Web sajtova, itd. Primeri Internet i Web softvera su
Mozilla Firefox, Skype, Adobe Dreamweaver...
Zabavni i edukativni softver uključuje računarske igre, digitalne enciklopedije, digitalne
čitače, turisticke vodiče, edukativne programe za decu, itd. Primeri ovih aplikacija su
Minecraft i Subway surfers.
11.2 Sistemski softver
Klasifikacija softvera na aplikativni i sistemski nije u potpunosti stroga, posebno zato
što proizvođači i distributeri sistemskog softvera često u svoje softverske pakete uključuju i
aplikativni softver. Tako korisnici Microsoft Windows operativnog sistema nakon
instalacije u Start meniju mogu naći programsku grupu „Accessories“ u kojoj se nalaze
aplikativni programi, poput programa Paint i Notepad, kao i sistemske (uslužne) programe
u grupi „System tools“.
U okviru klase sistemskog softvera razlikujemo dve kategorije: prvu kategoriju čini
operativni sistem, a drugu kategoriju čini uslužni softver. Uslužni softver se sastoji od
sistemskih programa koji proširuju mogućnosti i funkcionalnost operativnog sistema.
Primere uslužnog softvera predstavljaju programi za kompresovanje datoteka,
particionisanje diska, snimanje i reprodukovanje audio sadržaja ili mrežno povezivanje,
mada su u mnogim savremenim operativnim sistemima ovi programi njihov sastavni deo.
Značajan deo sistemskog softvera, nazvan još i programski sistem, čine softverski alati
za razvoj softvera. Sistemski softver predstavlja softver za upravljanje računarskim
sistemom na osnovnom nivou i zajednički je za sve računarske sisteme, nezavisno od
konkretne primene računara. Sistemski softver predstavlja osnovu za pravilno i efikasno
funkcionisanje aplikativnog softvera. Programski sistem čini softver koji obezbeđuje
podršku za razvoj sistemskog i aplikativnog softvera, kao što su: editori, prevodioci
(kompajleri) programskih jezika, linkeri, debageri, integrisana razvojna okruženja
okruženja (IDE – Integrated Development Environment), sistemi za upravljanje bazom
podataka, i generalno softverski alati za razvoj softvera (CASE - Computer Assisted
Software Engineering). Primeri programerskog softvera su Eclipse, Microsoft Visual
Studio, Xcode, itd.
1 1 . S O F T V E R R A Č U N A R A
179
Programski prevodilac prevodi računarski program napisan u nekom programskom
jeziku (izvorni program, kôd) u program napisan u mašinskom jeziku koji senaziva objektni
program (objektni kôd). Vrste programskih prevodilaca su:
Asembleri i makroasembleri – prevode program sa asemblerskog (makroasemblerskog)
programskog jezika, pri čemu se simbolička imena i oznake zamenjuju binarnim
kodovima.
Kompajleri (kompilatori) – prevode program sa višeg programskog jezika u mašinski
kod.
Interpretatori – prevode svaku naredbu programa i odmah je izvršavaju (interpretiraju).
Povezivač (linker) je sistemski program koji integriše objektne kodove programskih
modula i modula sistemskih biblioteka i formira izvršni program (kôd) koji je u obliku
datoteke (.exe) na disku.
Sistemski program punilac (loader) prenosi izvršni program sa diska u glavnu memoriju
prilikom startovanja izvršenja programa (npr. dvostrukim klikom miša na ikonu programa)
čime se aktivira proces (task) i započinje izvršavanje mašinskih instrukcija programa.
Postupak razvoja programa korišćenjem sistemskih programa koji čine programski sistem
prikazan je na Slika 11.2.
110100101001010011
100100010100011100
101000111010101110
110011101011001101
110100101
101000111
010101110
110011101
#include <iostream.h>
int main(void)
{
int a, b;
…
cin >> …;
…
return 0;
}
Editor teksta
Kompajler
Povezivač
(linker)
Sistemska
biblioteka Objektni
program
Izvršni
program
Slika 11.2 Postupak razvoj programa korišćenjem softvera programskog sistema
Savremena integrisana razvoja okruženja (IDE), poput Microsoft Visual Studio i
Eclipse, obuhvataju sve elemente programskog sistema u jedinstveni softverski sistem, koji
uključuje i niz pratećih softverskih alata koji obezbeđuju testiranje, projektovanje, reverzno
inženjerstvo, itd.
U V O D U R A Č U N A R S T V O
180
11.3 Operativni sistemi
Operativni sistem (OS) je softver koji upravlja radom savremenih računarskih sistema.
Operativni sistem je prvi program koji se učitava u glavnu memoriju (RAM) prilikom
startovanja računara (boot-ovanja). Programski kôd i podaci koji čine operativni sistem
ostaju rezidentni u memoriji tokom rada računara i upravljaju učitavanjem i izvršavanjem
svih ostalih programa koji se izvršavaju na računaru. Korisnici i aplikacioni programi
pristupaju komponentama računara (CPU, U/I uređajima) preko odgovarajućih interfejsa
operativnog sistema (Slika 11.3).
Korisnik
Aplikativni softver
Operativni
sistem GUI
Sistemski pozivi
Jezgro (kernel)
Konfiguracija
Registry
-------
-------
-------
Konfiguracione
datoteke
Hardver računara
Slika 11.3 Operativni sistem kao interfejs između korisnika, aplikacija i hardware-a
Operativni sistem predstavlja skup programa koji upravljaju radom hardvera i softvera
računarskog sistema. Operativni sistem obezbeđuje aplikacionim programima, poput
programa za obradu teksta ili Web pretraživača, da interaguju sa računarskim hardverom.
Operativni sistem takođe sadrži specijalni interfejs kojim omogućuje računaru interakciju
sa periferijskim (ulazno/izlaznim, U/I) uređajima. Ovi programi za interfejs sa uređajima
nazivaju se drajveri uređaja (device drivers). Na primer, kada kliknete na ikonu Print dok
radite u vašem programu za obradu teksta, ova aplikacija signalizira operativnom sistemu
da dokument treba da bude poslat na štampač. Tada operativni sistem prosleđuje drajveru
štampača podatke koji čine dokument i ovaj drajver preuzima kontrolu i upravlja
štampačem u cilju štampanja vašeg dokumenta. Operativni sistem poseduje generičke
drajvere za standardne uređaje, poput tastature i monitora, dok za specijalizovane U/I
uređaje, poput štampača, skenera, ili Web kamera, moraju biti instalirani drajveri ovih
uređaja razvijeni od strane proizvođača uređaja.
Operativni sistem predstavlja računarski program napisan manjim delom u
asemblerskom jeziku, a pretežno u višim programskim jezicima, najčešće C i C++.
Generalno se sastoji od dva dela, jezgro (kernel) kao osnovni deo operativnog sistema i
različiti sistemski programi koji služe za podršku radu i proširenje jezgra.
1 1 . S O F T V E R R A Č U N A R A
181
Jezgro operativnog sistema predstavlja osnovu operativnog sistema. Predstavlja
relativno mali program ili skup programa koji se prvi učitavaju u glavnu memoriju i ostaju
u memoriji sve vreme dok je računar uključen. Jezgro operativnog sistema obezbeđuje
upravljanje CPU, glavnom memorijom, hard diskovima i sadrži ostale funkcije značajne za
rad računara. Program koji je zadužen za učitavanje jezgra smešten je u okviru BIOS čipa
koji se nalazi na matičnoj ploči računara. Nakon startovanja računara, instrukcije u okviru
BIOS-a izvršavaju testiranje svih komponenti u računaru (power on self-test - POST), a
zatim vrše učitavanje jezgra operativnog sistema sa boot uređaja specificiranog u okviru
CMOS RAM-a. Kada je jezgro operativnog sistema učitano u memoriju, BIOS program
prenosi upravljanje na jezgro.
Ostale komponente operativnog sistema nazivaju se sistemske komponente ili moduli.
Glavni modul je program odgovoran za interfejs prema korisnicima u vidu grafičkog
okruženja, sa prozorima, menijima, toolbar-ovima, dialog box-ovima, itd.
Deo operativnog sistema koji predstavlja interfejs prema aplikativnim i sistemskim
programima, omogućavajući ovim programima pristup i pozivanje funkcija operativnog
sistema, čine sistemski pozivi. U okviru Microsoft Windows operativnog sistema skup ovih
funkcija predstavlja Windows API (Application Programming Interface) dok je u UNIX i
Linux operativnim sistemima skup sistemskih poziva je definisan POSIX (Portable
Operating System Interface) standardom. Drugi značajni moduli su drajveri uređaja koji
obezbeđuju vezu sa U/I uređajima. Postavljanje vrednosti parametara neophodnih za rad
operativnog sistema, kao i drugih sistemskih i aplikativnih programa obavlja se u okviru
modula za konfiguraciju, korišćenjem Registry baze podataka (MS Windows) i
konfiguracionih datoteka.
Ako ste koristili računar, morali ste da koristite operativni sistem. Većina operativnih
sistema su instalirani na hard disku računara, dok se na personalnim digitalnim asistentima
(PDA), pametnim telefonima i tabletima operativni sistem nalazi na ROM čipu. Popularni
savremeni operativni sistemi su različite verzije Microsoft Windows-a (8/7/Vista/XP),
UNIX, Linux, Mac OS X, Android, iOS, itd. Ovi operativni sistemi se razlikuju u
karakteristikama računara za koji su namenjeni, arhitekturi ili specijalnim
funkcionalnostima, ali u osnovi obavljaju iste funkcije. Operativni sistem zajedno sa
računarom na kome se izvršava obično se naziva platforma i tipično je vezana za određeni
CPU. Aplikacioni softver koji se izvršava na jednoj platformi ne bi mogao da se izvršava na
drugoj bez modifikacija i rekompajliranja. Na primer, Microsoft Word aplikacija koja se
izvršava na Windows platformi ne može da se izvršava na iMac računaru kojim upravlja
OS X.
11.4 Klasifikacija operativnih sistema
Operativni sistemi mogu biti klasifikovani prema karakteristikama i upotrebi za koju su
razvijeni. Prema tipu računara na kome se izvršavaju operativni sistemi mogu biti podeljeni
na: operativne sisteme za super računare, mainframe računare, radne stanice, servere,
personalne računare (PC), ručne računare (PocketPC), pametne telefone i tablete, ugrađene
računare, pametne kartice, praktično za svaki uređaj koji poseduje CPU. Svaki operativni
sistem je razvijen za određene oblasti primene. Na primer, Microsoft Windows i Mac OS
poseduju jednostavan i bogat korisnički interfejs koji uključuje i multimedijalne
karakteristike, pa su ovi operativni sistemi pretežno namenjeni kućnoj i poslovnoj upotrebi i
U V O D U R A Č U N A R S T V O
182
instalirani na većini desktop računara. Unix je razvijen kao stabilan, siguran,
multiprogramski i višekorisnički operativni sistem, tako da se obično instalira kao
operativni sistem na serverima i mainframe računarima. Linux poseduje razvijen GUI i
jednostavnost upotrebe karakteristične za desktop operativne sisteme, ali i sigurnost i
stabilnost UNIX serverskih operativnih sistema. Takođe, nalazi svoju upotrebu i u
pametnim telefonima i tabletima, kao jezgro popularnih mobilnih operativnih sistema poput
Android-a.
Prema broju istovremenih korisnika razlikujemo jednokorisničke (Windows) i
višekorisničke (Unix, Linux) operativne sisteme.
Prema broju programa koji mogu istovremeno da se izvršavaju operativne sisteme
možemo podeliti na monoprogramske (eng. singletasking) koji omogućuju da se u jednom
trenutku izvršava samo jedan program (DOS, Windows 3.x), i multiprogramske (eng.
multitasking) koju pružaju mogućnost izvršenja više programa u isto vreme (Windows,
Unix, Linux, Mac OS). Ovi programi se ne izvršavaju potpuno istovremeno (paralelno) na
jednoprocesorskom računaru već se svakom programu dodeljuje veoma mali vremenski
period za izvršavanje (vremenski kvant), pa se nakon isteka jednog vremenskog kvanta
aktivira sledeći program za novi vremenski kvant, i tako u krug. Korisniku računara izgleda
da se svi programi izvršavaju istovremeno, a u stvari se izvršavaju jedan po jedan
smenjujući se u kratkim vremenskim intervalima (kvazi-paralelno). Savremeni operativni
sistemi poput, Windows, Unix, Linux i Mac OS mogu da se izvršavaju na savremenim
računarskim arhitekturama koje poseduju simetrične multiprocesore i multi core procesore
na kojima operativni sistem obezbeđuje paralelno izvršenje programa.
11.5 Funkcije operativnog sistema
Iako operativni sistemi imaju različite karakteristike i namenu, izvršavaju iste osnovne
funkcije. Na primer, obezbeđuju korisnički interfejs, planiraju i upravljaju izvršenjem
programa, upravljaju memorijom, konfigurišu U/I uređaje, obezbeđuju upravljanje
datotekama i sigurnost u pristupu podacima, a takođe obezbeđuju osnovne funkcije
povezivanja u računarske mreže. Osnovne funkcije operativnog sistema mogu se
klasifikovati u tri glavne kategorije, te svaki operativni sistem:
Obezbeđuje korisnički interfejs (interfejs za interakciju korisnika sa računarom);
Upravlja resursima računarskog sistema (procesor, memorija, hard disk, U/I
uređaji, itd.);
Omogućuje aplikacionim programima interakciju sa resursima računara.
Pri upravljanju resursima možemo razlikovati sledeće funkcije operativnih sistema prema
tipu resursa:
Upravljanje procesima (upravljanje CPU),
Upravljanje memorijom,
Upravljanje U/I uređajima,
Upravljanje podacima na sekundarnim/trajnim memorijama,
Sigurnost i zaštita u pristupu resursima.
1 1 . S O F T V E R R A Č U N A R A
183
11.6 Korisnički interfejs
Korisnički interfejs je deo operativnog sistema koji omogućava korisnicima
komunikaciju sa računarom. Operativni sistem obezbeđuje mogućnost interakcije sa
korisnikom putem ulaznih uređaja, poput miša, tastature, ekrana osetljivog na dodir,
glasovnih komandi, itd. Operativni sistem obezbeđuje izlaz uglavnom preko monitora ili
štampača. Postoje dva osnovna tipa korisničkog interfejsa: interfejs preko komandne linije i
grafički korisnički interfejs (graphical user interface – GUI). Interfejs preko komandne
linije je karakterističan za MS DOS i UNIX operativne sisteme, pri čemu korisnik
interaguje sa operativnim sistemom unošenjem tekstualnih komandi, nakon što je prikazan
odgovarajući komandni prompt (Slika 11.4a). Nakon izvršenja komande operativni sistem
prikazuje rezultat izvršenja takođe u tekstualnom (alfanumeričkom) obliku.
Slika 11.4 Microsoft Windows a) komandni prompt i b) GUI
Operativni sistemi Windows i Mac OS, kao i Linux/UNIX sa instaliranim XWindow
sistemom, koriste grafički korisnički interfejs. Korisnici interaguju putem GUI operativnog
sistema korišćenjem tastature, miša ili nekog drugog pokazivačkog uređaja klikom na
ikone, dugmiće, kroz otvaranje grafičkih prozora i selektovanje opcija iz menija (Slika
Ikona
Prozor
Desktop
Meni
Dugme
ping komanda Izvršenje
ping komande Komandni prompt
a)
b)
Taskbar
U V O D U R A Č U N A R S T V O
184
11.4b). Iako je Windows prvenstveno grafički operativni sistem, u okviru Windows-a
takođe je moguće pristupiti komandnom promptu (u okviru Accesories programske grupe)
koji emulira MS DOS okruženje čime je omogućena kompatibilnost unazad kroz Microsoft
operativne sisteme. Određene funkcije Windows-a prilikom instalacije ili restauracije
operativnog sistema i dalje je neophodno uraditi preko komandnog prompta.
11.7 Upravljanje procesima
Operativni sistemi su odgovorni za upravljanje procesima, što obuhvata učitavanje
(load), startovanje, izvršavanje i stopiranje procesa. Proces predstavlja program u
izvršavanju. Program je skup programskih instrukcija i podataka organizovanih u obliku
izvršne datoteke na disku (.exe). Startovanjem programa u glavnu memoriju računara
(RAM) se učitavaju instrukcije programa i podaci koji se obrađuju i započinje proces
(task). Proces može startovati druge procese u cilju obavljanja zajedničke funkcije. U
Windows-u možete videti koji su procesi startovani pritiskom na kombinaciju tastera
Ctrl+Alt+Del kojom se startuje Task Manager prozor. Selektovanjem Processes tab-a se
omogućuje prikaz osnovnih informacija o trenutno startovanim procesima. Na Slika 11.5
prikazan je primer Windows Task Manager prozora.
Slika 11.5 MS Windows Task Manager
Operativni sistemi UNIX/Linux poseduju sličnu funkciju za prikaz informacija o
trenutno aktivnim procesima unošenjem komande ps i odgovarajućih parametara u
komandnoj liniji. Iako je aktivirano više procesa u suštini na jedno-procesorskom računaru
u jednom trenutku može da se izvršava samo jedan proces. Von Neumann-ova arhitetktura
1 1 . S O F T V E R R A Č U N A R A
185
računara podržava samo serijsko izvršavanje instrukcija; tokom jednog taktnog ciklusa
samo jedna instrukcija jednog programa može biti izvršavana. Međutim, uobičajeno je da
tokom rada na računaru slušamo CD preko određenog media player programa, dok
download-ujemo datoteku sa filmom (ili programom) sa Interneta i istovremeno koristimo
program za obradu teksta da bi napisali seminarski rad. Ako bolje pogledamo prozor Task
Manager-a možemo videti da postoji mnogo više procesa koji su aktivirani, tako da nam
može izgledati kao da se svi izvršavaju istovremeno (paralelno). Međutim, računar i njegov
CPU izvršava samo jedan proces u jednom kratkom vremenskom periodu. Savremeni CPU
su sposobni za izvršavanje milijardi instrukcija u sekundi dok je u jednoj sekundi moguće
pristupiti glavnoj memoriji više miliona puta. Pošto su memorija i U/I uređaji sporiji od
CPU, CPU izvršava svaki od aktiviranih procesa vrlo kratak vremenski period (vremenski
kvant) tipično ne više od 50-100ms. Ovaj princip rada naziva se multiprogramiranje
(multitasking) i predstavlja značajnu funkciju operativnog sistema. Operativni sistem
dodeljuje mali vremenski period CPU vremena naizmenično svakom od procesa koji su
aktivirani (time slicing). Ovo smenjivanje u izvršenju procesa obavlja se vrlo brzo tako da
korisniku izgleda da se svi procesi izvršavaju istovremeno, ali u stvarnosti radi se samo o
efikasnom korišćenju vremena CPU.
Proces koji se trenutno izvršava na CPU i kome je dodeljen određeni vremenski kvant
za izvršavanje naziva se aktivni (eng. running) proces. Kada istekne vremenski kvant
dodeljen za izvršavanje tog procesa nastane vremenski prekid (eng. timer interrupt) i ovaj
proces prelazi u stanje spreman (eng. ready) čekajući da dobije novi vremenski kvant za
izvršavanje. U ovom trenutku deo operativnog sistema nazvan planer (eng. scheduler) od
svih spremnih procesa, po određenom algoritmu, bira jedan koji će se izvršavati u sledećem
vremenskom kvantu. Proces ne mora da iskoristi ceo dodeljeni vremenski kvant. Ovo se
dešava kad proces izvrši neku U/I instrukciju, na primer, čitanje podataka sa diska. Pošto su
U/I uređaji mnogo sporiji od CPU, ovaj proces se blokira i prelazi u stanje čekanja
(waiting). Kada se završi zadata U/I operacija (blok podataka sa diska je pročitan i smešten
u glavnu memoriju u adresni prostor u koji je smešten proces) U/I kontroler generiše prekid
(interrupt) koji se odgovarajućim signalom prenosi CPU. Na osnovu tipa prekida,
operativni sistem započinje izvršavanje procedure za obradu prekida (interrupt handling
routine) koja je smeštena na određenoj lokaciji u glavnoj memoriji. Krajnji efekat ove
procedure je da se do tada blokirani proces prevodi u stanje spreman, gde će čekati da ga
planer operativnog sistema izabere za izvršavanje i dodeli mu novi vremenski kvant.
Dijagram stanja procesa kao i aktivnosti koje izazivaju promenu stanja procesa prikazan je
na Slika 11.6.
Startuje se
Spreman Aktivan
Blokiran
Završen
Dobio CPU
Istekao
vremenski kvant
U/I operacija
završena
Slika 11.6 Dijagram stanja procesa
U V O D U R A Č U N A R S T V O
186
Da bi upravljao procesima, operativni sistem u glavnoj memoriji čuva osnovne
informacije za svaki aktivni proces u stukturi podataka koja se naziva upravljački blok
procesa (PCB - Process Control Block). PCB sadrži jedinstveni identifikator procesa,
prioritet procesa, vreme kreiranja procesa, vreme izvršenja procesa, memoriju koju
zauzima, datoteke koje koristi, itd. Skup PCB-ova svih aktivnih procesa čini tabelu
procesa koja se čuva u delu memorije koju zauzima operativni sistem.
Svaki put kada se prekine proces koji se do tada izvršavao i aktivira novi proces za
naredni vremenski kvant, nastaje promena konteksta (context switch). Vrednosti registara
CPU (programski brojač, stek pointer, statusni registar, registri opšte namene, itd.), koje
sadrže vrednosti karakteristične za određenu tačku u izvršenju prekinutog procesa, smeštaju
se u njegov PCB. Prethodno zapamćene vrednosti registara procesora za proces koji je
izabran za izvršavanje u sledećem vremenskom kvantu se iz njegovog PCB smeštaju u
registre CPU tako da taj proces nastavlja izvršavanje od instrukcije koja je prekinuta kada
je proces prešao u stanje spreman (nakon isteka dodeljenog vremenskog perioda za
izvršavanje), ili u stanje čekanja (ukoliko je aktivirao neku U/I operaciju).
Planiranje procesa (CPU Scheduling) i izbor spremnog procesa koji treba da se izvršava
naredni vremenski kvant obavlja se po principima:
Kružnog toka (round robin) - Svaki proces se izvršava određeni vremenski period
i nakon isteka tog perioda vraća se u stanje spreman (ukoliko nije završen ili nije
aktivirao neku U/I operaciju), a sledeći proces po redu se aktivira, i tako u krug.
Prioritet (statički i dinamički) - Aktivira se proces najvećeg prioriteta. Statički
prioritet se ne menja tokom životnog ciklusa procesa (na primer sistemski procesi
imaju veći prioritet od korisničkih), dok je dinamički promenljiv i zavisi od
prethodne istorije izvršenja procesa. Na primer interaktivni procesi koji
odgovaraju na korisnikove akcije tipa klik mišem ili pritisak tastera, i čiji je prozor
aktivan i na vrhu svih otvorenih prozora ima viši prioritet od procesa koji
pretežno izvršavaju operacije nad podacima u glavnoj memoriji. Šta mislite zašto
je to tako?
11.8 Upravljanje memorijom
Glavna memorija (RAM) je sledeći značajan resurs računara kojim upravlja operativni
sistem. Svi procesi koji se izvršavaju na računaru moraju biti smešteni u glavnu memoriju.
Za svaki proces u memoriju se smeštaju instrukcije programa i podaci nad kojima se
izvršavaju. Kada korisnik izda komandu za izvršavanje programa (dvostruko klikne levim
tasterom miša na ikonu programa na desktopu), operativni sistem treba da programske
instrukcije i podatke smesti sa diska u slobodne lokacije u memoriji. Tokom izvršavanja
procesa operativni sistem mora konstantno upravljati zauzetom i slobodnom memorijom i
povremeno prebacivati sadržaj iz glavne memorije na disk i obrnuto. Nakon završetka
procesa operativni sistem vrši oslobađanje memorije koju je proces zauzimao. U svakom
trenutku operativni sistem održava evidenciju o slobodnim i zauzetim lokacijama u
memoriji.
Memorija se može posmatrati kao kontinualan niz bitova, pri čemu svaki bit čuva
elementarnu binarnu informaciju 0 ili 1. Kao što je u prethodnim poglavljima rečeno, osam
bitova čini bajt (byte), a više bajtova memorijsku reč (word). Svaki bajt ili reč su direktno
adresibilni i imaju jedinstvenu adresu. Memorijske adrese počinju od 0 do određene
1 1 . S O F T V E R R A Č U N A R A
187
maksimalne adrese u zavisnosti od veličine glavne memorije. Na primer, za računar koji
ima 128 MB memorije, i kod koga je svaka reč veličine 8 B, neophodno je 24 bita za
adresiranje svake reči u memoriji. Ova stvarna adresa naziva se fizička adresa (Slika 11.7).
Slika 11.7 Glavna memorija i adresiranje memorije
Prilikom razvoja programa sve adrese u programu, na primer, u instrukcijama granjanja
i pri referenciranju podataka, predstavljaju relativne adrese počev od početka programa i
adrese 0. Prilikom pisanja programa ne znamo u koji deo glavne memorije i počev od koje
memorijske lokacije (adrese) će naš program biti smešten kada bude započeto njegovo
izvršavanje i kada njegove instrukcije i podaci budu prebačeni sa diska u glavnu memoriju.
Stoga se ove adrese nazivaju logičke adrese. Prilikom izvršavanja programa neophodno je
pre izvršenja svake instrukcije u okviru CPU obaviti prevođenje logičke u fizičku adresu
(instrukcije ili podatka). To je značajna funkcija operativnog sistema koju obavlja uz
pomoć hardverskih komponenti računara, tačnije jedinice za upravljanje memorijom
(MMU – Memory Management Unit) koja se nalazi u okviru CPU čipa ili kao posebno
integrisano kolo.
Prilikom starovanja računara (boot-ovanja) programi i podaci koji čine jezgro
operativnog sistema, kao i pomoćni sistemski programi se smeštaju u glavnu memoriju i
ostaju u njoj do stopiranja (shutdown) računara. Preostali deo memorije rezervisan je za
aplikativne programe (procese). Postoji više strategija za upravljanje memorijom od strane
operativnog sistema, počev od jednostavnih i slabo efikasnih do kompleksnijih i efikasnijih.
Osnovnu i najjednostavniju strategiju za upravljanje memorijom predstavlja
jednoprogramsko, kontinualno upravljanje memorijom. U ovoj strategiji u memoriju se
smeštaju operativni sistem i aplikativni program koji se izvršava. Memorija je podeljena u
dve particije i sadržajem graničnog registra zaštićen je pristup aplikativnog programa
memorijskom prostoru u koji je smešten operativni sistem. Logička adresa je celobrojna
vrednost relativna u odnosu na početak aplikativnog programa. Da bi se generisala fizička
adresa, logička adresa se sabira sa adresom počev od koje je smešten aplikativni program u
glavnoj memoriji (Slika 11.8).
U V O D U R A Č U N A R S T V O
188
Operativni
sistem
Aplikativni
program
A
A+L
Logička adresa L
se prevodi u
fizičku adresu A+L
Slika 11.8 Jednoprogramsko upravljanje memorijom
Sa pojavom koncepta multiprogramiranja bilo je neophodno da se u memoriju
istovremeno smesti više programa, tačnije njihovih programskih instrukcija i podataka nad
kojima vrše obradu. Glavna memorija je u tu svrhu podeljena na delove (particije) koji
mogu biti zauzeti i slobodni. Ove partcije mogu biti fiksne (nepromenljive) veličine, tako
da se njihova početna adresa i veličina se definišu prilikom pokretanja operativnog sistema.
Takođe, partcije mogu da se formiraju dinamički tokom izvršavanja aplikativnih programa
(startovanja i stopiranja) i takve particije su varijabilne po svojoj početnoj adresi i veličini.
U tom slučaju se radi o multiprogramiranju sa promenljivim particijama. Za proces koji se
trenutno izvršava definisana je početna adresa memorijske particije u koju je smešten, kao i
njena veličina i ove vrednosti se tokom izvršavanja tog procesa čuvaju u registrima CPU.
Bazni registar sadrži početnu adresu memorijske particije u koju je smešten program, dok
granični registar sadrži vrednost veličine memorijske particije u koju je smešten ovaj
program i odgovara veličini programa u memoriji.
Ove vrednosti omogućavaju prevođenje logičke u fizičku adresu pri svakom pristupu
memoriji tokom izvršavanja tog procesa, kao i zaštitu memorijskog prostora koji zauzimaju
drugi procesi i operativni sistem (Slika 11.9).
Operativni
sistem
A
Bazni registar
Da li je:
L < duzina ?
Ako da, adresa je u
okviru memorijskog
prostora procesa 3
Ako ne, greška u
adresiranju
Proces 1
Prazno
Proces 2
Proces 3
Prazno
A
Granični registar
duzina
A+L
Slika 11.9 Multiprogramiranje sa promenljivim memorijskim particijama
1 1 . S O F T V E R R A Č U N A R A
189
Savremeni operativni sistemi implementiraju strategiju za upravljanje memorijom
korišćenjem tehnike straničenja (paging). Svaki program (proces) koji se izvršava je
podeljen na stranice (page) fiksne veličine, uobičajeno 4KB (može biti 512B do 64KB i
više). Glavna memorija je fiktivno podeljena u stranične okvire (page frame) iste veličine.
Prilikom smeštanja instrukcija programa i podataka u glavnu memoriju stranice procesa se
smeštaju u nekontinualne stranične okvire. Da bi se obezbedilo prevođenje logičke u
fizičku adresu za svaki aktivni proces formira se tabela mapiranja stranica (PMT – Page
Map Table). Ova tabela vodi evidenciju o tome koje stranice procesa su smeštene u
odgovarajuće stranične okvire u glavnoj memoriji. Da bi se generisala fizička adresa na
osnovu tabele mapiranja stranica nalazi se broj (početna adresa) straničnog okvira u glavnoj
memoriji u koji je smeštena i na to dodaje pomeraj koji definiše adresu konkretnog bajta
(reči) u okviru stranice (Slika 11.10).
0 5
1 12
2 15
3 7
4 22
0 10
1 13
2 1
3 11
stranica okvir
stranica okvir
Glavna memorija
P2 PMT
0
1 P2 / stranica 2
2
3
4
5 P1 / stranica 0
6
7 P1 / stranica 3
8
9
10 P2 / stranica 0
11 P2 / stranica 3
12 P1 / stranica 1
13 P2 / stranica 1
14
okvir sadržaj
15 P1 / stranica 2
.
.
.
.
.
.
.
.
.
P1 PMT
Slika 11.10 Upravljanje memorijom straničenjem i korišćenje PMT
Pošto je veličina glavne memorije po pravilu manja od memorije neophodne za
smeštanje svih aktivnih programa, u savremenim operativnim sistemima uveden je koncept
virtuelne memorije. Virtuelna memorija označava strategiju u upravljanju memorijom kod
koje se koristi deo sekundarne memorije (diska) za proširenje glavne memorije. U glavnu
memoriju se smeštaju samo stranice aktivnih procesa koje su neophodne pri njihovom
tekućem izvršavanju, dok su ostale stranice privremeno, ili trajno smeštene na disku. Kada
se pri izvršavanju procesa zahteva izvršavanje instrukcije ili pristup podacima koji se
nalaze u okviru stranice procesa koja nije u glavnoj memoriji, ova stranica se sa diska
učitava u prazni stranični okvir u glavnoj memoriji. Ukoliko su svi stranični okviri
U V O D U R A Č U N A R S T V O
190
popunjeni stranicama aktivnih procesa, po određenom algoritmu se bira stranica koja će biti
prebačena na disk ili izbrisana iz glavne memorije da bi se u njen stranični okvir smestila
zahtevana stranica procesa koji se izvršava. Postoji više strategija i politika zamene stranica
koje obavljaju izbor stranice koja treba biti zamenjena novom, po različitim kriterijumima,
ali njihov opis prevazilazi obim ove knjige.
11.9 Upravljanje U/I uređajima
Pored CPU i glavne memorije, periferijski (ulazno/izlazni) uređaji predstavljaju širok i
raznolik skup resursa kojima upravlja operativni sistem. Upravo zbog te raznovrsnosti u
tipovima i karakteristikama U/I uređaja koji se mogu ugraditi ili priključiti na savremene
računare, u cilju upravljanja radom ovih uređaja, operativnom sistemu podršku pruža
specijalan softver nazvan drajver uređaja, o čemu je bilo reči u poglavlju 10. Operativni
sistem obezbeđuje jedinstveni interfejs prema drajverima uređaja, vrši planiranje,
dodeljivanje i oslobađanje U/I uređaja, i obezbeđuje mehanizme za efikasno izvršavanje
U/I operacija (baferovanje, keširanje i spool-ovanje). Operativni sistem upućuje komande
višeg nivoa (na primer, za čitanje, upis, traženje) drajveru uređaja za upravljanje uređajem
na najnižem nivou.
11.10 Upravljanje datotekama (File system)
Sekundarne (trajne) memorije predstavljaju poseban skup U/I uređaja za trajno čuvanje
podataka kod kojih se čitanje i upis podataka obavljaju u blokovima određene veličine
(hard disk, CD ROM, DVD ROM, USB flash memorija, SD kartice, itd). Na osnovnom
nivou i ovim uređajima se upravlja pomoću drajvera uređaja koji upravlja radom disk
kontrolera, pri čemu se koristi i DMA kontroler, na način kako je to opisano u prethodnom
poglavlju. Komponenta operativnog sistema koja upravlja podacima smeštenim na ovim
uređajima naziva se sistem za upravljanje datotekama (eng. file system). Svi podaci na
trajnim memorijskim uređajima organizovani su u datoteke (eng. file) i direktorijume (eng.
folder). Datoteka predstavlja imenovanu kolekciju logički povezanih podataka koju
karakterišu atributi: ime datoteke, tip datoteke (ekstenzija), veličina, datum
kreiranja/modifikacije, prava pristupa, itd. Direktorijumi (folderi, adresari, katalozi)
predstavljaju specijalan tip datoteka koji sadrže spisak datoteka koje su u njima
evidentirane, kao i direktorijuma nižeg nivoa.
Svaki hard disk može biti podeljen u više logičkih delova – particija. U Windows
operativnom sistemu svaka particija je označena slovom, poput C:, D:, E:, itd. Svakoj
sekundarnoj memorijskoj jedinici (CD, USB flash,...) se takođe dodeljuje odgovarajuća
oznaka u vidu velikog slova abecede i znaka :. Na svakoj memorijskoj jedinici ili particiji
diska razlikujemo korenski direktorijum (eng. root) (oznaka \, npr, C:\) i poddirektorijume
(podfoldere) koji su hijerarhijski organizovani u stablo. Svaki direktorijum i datoteka u
okviru njega su jedinstveno označeni svojim imenom i putem u odnosu na korenski ili radni
direktorijum. Razlikujemo apsolutni put – definisan počev od korenskog direktorijuma,
navođenjem svih direktorijuma na „putu“ do konačne datoteke ili direktorijuma, i relativni
– počev od radnog direktorijuma, korišćenjem simbola tačke za tekući direktorijum i dve
spojene tačke (..) za direktorijum iznad u stablu direktorijuma.
1 1 . S O F T V E R R A Č U N A R A
191
Apsolutni put: C:\Nastava\UR\Lec1.ppt
Relativni put: ..\UR\Lec1.ppt (Radni direktorijum je, na primer, C:\Nastava\Studenti )
Na ovaj način, datoteke predstavljaju krajnje čvorove u strukturi direktorijuma u vidu
stabla. Na Slika 11.11 je prikazan primer hijerarhijske strukture direktorijuma i datoteka u
obliku stabla u Windows operativnom sistemu.
Slika 11.11 Windows Explorer aplikacija za upravljanje datotekama i direktorijumima
Operativni sistem obezbeđuje operacije korišćenjem odgovarajuće sistemske aplikacije
za kreiranje i upravljanje direktorijumima (folderima) i datotekama, poput:
Particionisanje diska,
Formatiranje diska,
Kreiranje direktorijuma i datoteka (praznih),
Prikaz i listanje sadržaja direktorijuma i datoteka,
Preimenovanje direktorijuma i datoteka,
Brisanje direktorijuma i datoteka,
Kopiranje direktorijuma i datoteka,
Premeštanje direktorijuma i datoteka.
Kreiranje i editovanje datoteka obavlja se korišćenjem aplikativnih programa
namenjenih za određeni tip datoteke, na primer MS Word za .doc datoteke, MS PowerPoint
za .ppt datoteke, CorelDraw za .cdr datoteke, itd.
U V O D U R A Č U N A R S T V O
192
11.11 Sigurnost i zaštita
Tokom rada računara na njemu se izvršavaju procesi koje je pokrenuo korisnik, ili
procesi pokrenuti od strane drugih procesa. Takođe se izvršavaju i procesi koji izvršavaju
programe koji čine operativni sistem. Osnovna uloga operativnog sistema je da zaštiti
memoriju i ostale resurse koje koristi jedan proces od pristupa i narušavanja od strane
drugog procesa. Operativni sistem služi kao menadžer resursa vodeći računa da svi procesi
startovani na računaru dobiju resurse za svoje izvršenje.
Takođe, operativni sistem vodi računa da neautorizovani korisnici ne mogu startovati
programe i pristupati podacima i uređajima na računaru za šta nemaju ovlašćenja. Jedan od
načina da se samo autorizovanim korisnicima obezbedi pristup resursima računara je
postavljanje korisničkih naloga zaštićenih lozinkom od strane sistem administratora.
Takođe, mnogi operativni sistemi omogućuju administratorima da definišu grupe korisnika
i njihove zajedničke privilegije i prava pristupa programima, podacima i uređajima
računara. Više detalja o računarskoj sigurnosti biće predstavljeno u poglavlju 14.
1 1 . S O F T V E R R A Č U N A R A
193
Pitanja i zadaci
1. Kako se deli softver računara?
2. Šta sve uključuje sistemski softver?
3. Šta su to resursi računarskog sistema?
4. Koje su funkcije i komponente operativnog sistema?
5. Šta je proces i koja su stanja procesa?
6. Objasniti planiranje procesa i promenu konteksta.
7. Šta je to fizička, a šta logička memorijska adresa?
8. Koje su osnovne funkcije sistema za upravljanje memorijom?
9. Šta su stranice? Objasniti upravljanje memorijom korišćenjem stranica.
10. Objasniti osnovne koncepte upravljanja sekundarnom memorijom.
11. Šta je operativni sistem i koje su njegove osnovne funkcije? Navesti primer tri aktuelna
operativna sistema i na primeru jednog od njih opisati ove funkcije.
12. Koja je razlika između aplikativnog i sistemskog softvera? Navesti po tri primera ove
dve kategorije softvera.
13. Objasniti razliku između programa i procesa i dati primere programa i procesa? Opisati
i objasniti funkcije koje operativni sistem obavlja kada dva puta kliknemo mišem na
ikonu na desktop-u računara.
14. Koja komponenta OS upravlja smeštanjem i čitanjem podataka na USB flash-u? Koja
komponenta OS vodi računa da procesi višeg prioriteta dobiju prednost u izvršavanju u
odnosu na druge procese? Koja komponenta OS obezbeđuje smeštanje instrukcija i
podataka programa u RAM nakon startovanja programa?
15. Koja komponenta OS upravlja smeštanjem i čitanjem podataka na DVD-u? Koja
komponenta OS vodi računa da svi programi startovani na računaru dobiju vreme za
izvršavanje na CPU? Koja komponenta OS obezbeđuje smeštanje instrukcija i
podataka programa u RAM nakon pokretanja programa? Objasniti ukratko.
16. Koje funkcije se izvršava multiprogramski operativni sistem kada se korisnik pritisne
kombinaciju tastera Alt+Tab?
17. Kako operativni sistem obezbeđuje korišćenje glavne memorije računara (RAM) od
strane više procesa, šta smešta u glavnu memoriju za svaki proces i kako možemo da
vidimo koliko koji proces zauzima memorije?
18. Šta je multiprogramiranje? Kako operativni sistem obezbeđuje multiprogramski rad,
tako da kad se jedan proces blokira čekajući da pročita podatke sa hard diska, OS
aktivira drugi proces? Objasniti detalje.
19. Na koji način operativni sistem organizuje podatke na trajnim memorijskim
medijumima (hard disk, CD, DVD) i koje funkcije obavlja u upravljanju tim
podacima?
U V O D U R A Č U N A R S T V O
194
20. Kad startujete MS Word da kucate seminarski rad, Firefox za download sa Interneta i
Media Player da slušate muziku sa CD-a, objasniti na koji način operativni sistem
obezbeđuje da izgleda da se svi navedeni programi izvršavaju istovremeno iako na
računaru postoji samo jedan CPU?
21. Kad želite da priključite novi U/I uređaj na vaš računar, na primer eksterni disk, šta
vam je od softvera neophodno da bi uspešno izveli ovu akciju. Opisati kako operativni
sistem obavlja čitanje podataka iz datoteke na disku kao rezultat izvršenja naredbe
readln vašeg programa u Pascalu.
1 2 . R A Č U N A R S K E M R E Ž E
195
12 RAČUNARSKE MREŽE
Računarska mreža predstavlja kolekciju računarskih i računarsko-komunikacionih
uređaja povezanih međusobno radi prenosa podataka i deljenja resursa. Resursi mogu biti
hardverski kao što su: moćan CPU, veliki i brzi diskovi, štampači, kao i softverski:
aplikacije i podaci.
Veza između računara u mreži je obezbeđena bilo žičano, korišćenjem kablova različite
vrste, ili bežično, korišćenjem radio talasa ili infracrvenih signala.
Povezivanje računara u računarsku mrežu omogućuje:
Deljenje hardverskih resursa: štampača, plotera, brzih diskova velikih kapaciteta
za arhiviranje podataka, specijalizovanog hardvera, itd. (Print server, File server)
Deljenje i razmenu podataka: brza i pouzdana isporuka podataka različitih formata
- elektronska pošta, Web dokumenti, datoteke, instant poruke, itd.
Deljenje softverskih aplikacija i komponenti (Aplikacioni server).
Poboljšanu pouzdanost ukoliko više računara u mreži izvršavaju zajednički
algoritam; otkaz jednog računara u mreži se prevazilazi tako što njegovu ulogu
preuzimaju drugi računari u mreži.
Poboljšanu skalabilnost: cena mainframe ili super računara je mnogo viša od cene
nekoliko računara opšte namene koji paralelno rade na istom problemu (Cluster
računara).
Računarsku mrežu čine hardver i softver. Hardver računarske mreže predstavlja fizička
veza između dva računara uključujući mrežne kartice, modeme, kablove, rutere, mrežne
mostove itd. Komunikacioni softver računarske mreže predstavlja skup protokola koji
omogućava da aplikacije koriste komunikacioni hardver u slanju podataka kroz mrežu.
Protokol definiše format podataka koji se razmenjuju i skup pravila za komunikaciju
između različitih računarsko-komunikacionih uređaja povezanih u mrežu.
12.1 Tipovi računarskih mreža
Postoje dva osnovna modela komunikacija u računarskim mrežama, samim tim i dve
kategorije računarskih mreža (Slika 12.1):
Serverske mreže poseduju računar izdvojen kao server koji je optimizovan za
zadovoljenje zahteva klijenata i sigurnost podataka i aplikacija (file server, Web
server, aplikacioni server, mail server, itd.)
U V O D U R A Č U N A R S T V O
196
Mreža ravnopravnih korisnika (peer-to-peer) u kojoj su svi računari ravnopravni,
funkcionišu i kao klijenti i kao serveri bez kontrole administratora.
Server
Klijent
KlijentKlijent
Klijent
Peer
Peer
a) b)
Slika 12.1 a) Server prihvata i odgvara na zahteve više klijenata, b) Računari komuniciraju
na ravnopravnim osnovama i ponašaju se i kao klijenti i kao serveri
Da bi se signal koji nosi podatke preneo od računara do računara u računarskoj mreži
neophodno je da postoji komunikacioni (prenosni) medijum. Komunikacioni medijum je
materijal koji je provodnik elektro i/ili elektromagnetnih signala (bakarna žica, optički kabl,
vazduh). Karakteristike komunikacionog medijuma su:
Propusni opseg (bandwidth) - brzina prenosa podataka u bitovima po sekundi
(bps).
Odnos signal/šum – određena proporcija snage signala i šuma.
Greška prenosa – odnos pogrešno primljenih bitova prema ukupnom broju
prenetih bitova u specifičnom vremenskom periodu.
Slabljenje signala sa rastojanjem.
Računarske mreže se mogu podeliti po oblasti koju pokrivaju na:
PAN (Personal Area Network) – mreža personalne oblasti u bliskom okruženju
korisnika.
LAN (Local Area Network) – mreža lokalne oblasti povezuje relativno mali broj
računara na lokalnom geografskom području (spratu, zgradi, kompaniji,
univerzitetu, itd.)
MAN (Metropolitan Area Network) –mreža gradskog područja povezuje više
LAN-ova na urbanom području koristeći javnu telekomunikacionu infrastrukturu.
WAN (Wide Area Network) – mreža široke oblasti povezuje dve ili više LAN,
MAN ili WAN na širokom geografskom području. Internet predstavlja primer
WAN koji obuhvata celu planetu.
Računari opremljeni mrežnim uređajima (interfejsima, karticama) mogu biti povezani u
računarsku mrežu u različitim konfiguracijama korišćenjem odgovarajućeg usmerenog
komunikacionog medijuma (kabla) uz primenu mrežnih komunikacionih uređaja za
1 2 . R A Č U N A R S K E M R E Ž E
197
formiranje računarske mreže. Ove konfiguracije se nazivaju mrežne topologije. Postoje tri
osnovne topologije za povezivanje računara u mrežu tipa LAN i to (Slika 12.2):
Magistrala (bus),
Zvezda (star),
Prsten (ring).
Server PC
PC
PC
Terminator Terminator
Štampač
Hab
Topologija magistrale
Topologija prstena Topologija zvezde
Slika 12.2 LAN topologije
12.2 Komunikacioni medijumi i mrežni komunikacioni uređaji
Komunikacioni medijumi mogu biti klasifikovani u dve osnovne kategorije: usmereni i
neusmereni. Usmereni medijumi su fizički medijumi poput bakarne žice i optičkog kabla.
Neusmereni medijum predstavlja vazduh i prostor po kome se prenose elektromagnetni
signali različitih frekvencija u radio ili infracrvenom spektru.
Usmereni komunikacioni medijumi koji se koriste u današnjim računarskim mrežama
su (Slika 12.3):
Koaksijalni kabl – bakarni provodnik obavijen metalnom košuljicom, zbog
sprečavanja elektromagnetnih uticaja iz okruženja, i oklopljen plastičnim
omotačem. Oznake postojećih kablova su 10Base2 i 10Base5 (brzine prenosa do
10 Mb/s).
U V O D U R A Č U N A R S T V O
198
Upredene parice (twisted pairs) – dva bakarna provodnika uvrnuta jedan oko
drugoga i obavijena metalnim omotačem (shielded - STP) ili bez metalnog
omotača (unshielded - UTP). Oznake ovih kablova su 10Base-T (brzine prenosa
do 10 Mb/s), 100Base-T (brzine prenosa do 100 Mb/s), 1000Base-T (brzine
prenosa do 1Gb/s).
Optički kabl (fiber optic) sa jezgrom od stakla i plastike i reflektujućim omotačem
prenosi signale u vidu svetlosnih impulsa (brzine prenosa od 100 Mb/s– 100 Gb/s).
Slika 12.3 Usmereni komunikacioni medijumi
Bežični komunikacioni medijum obezbeđuje prenos elektromagnetnih signala u
različitim frekventnim opsezima i sa različitim brzinama prenosa.
Radio talasi u nelicenciranom frekventnom opsegu 2.4 GHz i 5 GHz
o Bluetooth (opseg 10m-100m, brzina prenosa 1-3 Mb/s);
o WLAN (Wi Fi) (opseg do 100m, brzina prenosa 11Mb/s do 54Mb/s za
IEEE 802.11g standard i do 150 Mb/s za 802.11n standard uz korišćenje
jedne antene);
WiMAX (70 M/ps; 10Mb/s – 10km) – WirelessMAN;
Radio talasi u infrastrukturi mobilne (celularne) telefonije – GPRS, EDGE (384
Kb/s), UMTS (HSPA do 14.4 Mb/s), LTE (1 Gb/s);
Radio talasi u satelitskom prenosu i komunikaciji (brzina prenosa reda 1 Mb/s);
Infracrveni signali – koriste elektromagnetne talase u infracrvenom delu spektra za
prenos podataka na maloj udaljenosti između uređaja kod kojih postoji linija
vidljivosti, poput infracrvene konekcije sa štampačem, infracrvenog miša,
mobilnog telefona (brzina prenosa do 4 Mb/s).
Pored komunikacionog medijuma povezivanje računara u računarsku mrežu obezbeđuju
mrežni komunikacioni uređaji:
Optički kabl
UTP kabl
Koaksijalni kabl
spoljni izolattor bakarna mrežica izolator bakarna žica
spoljni omotač
plastični sloj
stakleno ili plastično jezgro
mreža od kevlar-a
obloga
1 2 . R A Č U N A R S K E M R E Ž E
199
Kartica za interfejs sa mrežom (Network Interface Card - NIC) predstavlja karticu
u slotu za proširenja matične ploče ili kontroler na matičnoj ploči računara.
Uključuje eksterni port za priključenje mrežnog kabla (za Ethernet mrežu) ili
antene za bežičnu komunikaciju za Wireless LAN mrežu. Poseduje jedinstvenu
48-bitnu adresu (fizičku, MAC adresu) dodeljenu od strane proizvođača kartice.
Modem - uređaj koji prilikom slanja podataka vrši konvertovanje digitalnih
podataka u analogni signal radi prenosa preko analogne komunikacione linije
(telefonske mreže, kablovske mreže), dok na prijemu vrši konvertovanje
analognog signala u digitalne podatke (Modulation/DEModulation). Modulacija
digitalnog signala može biti amplitudna (AM), frekventna (FM) i fazna (PM)
(Slika 12.4).
Slika 12.4 Frekventna, apmplitudna i fazna modulacija
Modemi se koriste za povezivanje računara preko analognih komunikacionih linija
(telefonske mreže ili mreže kablovske televizije) sa računarima pružaoca Internet usluga
(ISP - Internet Service Provider) na većim udaljenostima. Modemima se obezbeđuje
formiranje WAN mreža velike brzine prenosa koje se zasnivaju na zakupljenim linijama
telekomunikacione (telefonske) kompanije, poput T1 sa brzinom prenosa oko 1.5Mb/s
(ekvivalentno sa 24 govorne linije), T3 (ekvivalentno sa 28 T1 linija), OC3 (optički kabl
ekvivalentno sa 84 T1 linija), OC12 (ekvivalentno sa 4 OC3 linije), OC48 (ekvivalentno sa
4 OC12 linija), OC192 (4 OC48 linija) i brzinama prenosa do 9.6 Gb/s, kao i OC768 sa
brzinom prenosa oko 39 Gb/s.
Mrežni komunikacioni uređaji za formiranje i proširenje računarske mreže su:
Repetitor (Repeater)
Hab (Hub - mrežni razdelnik)
Mrežni most (Bridge)
Mrežni komutator (Switch)
Mrežni prolaz (Gateway)
Ruter (Router - usmerivač, skretnica)
Frekventna modulacija (FM)
Amplitudna modulacija (AM)
Fazna modulacija (PM)
U V O D U R A Č U N A R S T V O
200
Repetitor regeneriše i pojačava oslabljene komunikacione signale pri slanju ka drugim
segmentima mreže.
Hab (mrežni razdelnik) predstavlja specijalni tip repetitora koji se koristi za proširenje
mreže u topologiji zvezde, pri čemu ima više ulaza i više izlaza. Hab jednostavno povezuje
sve kablove koji su na njega priključeni i koji povezuju računare sa habom. Na taj način,
svaka poruka poslata sa jednog računara prosleđuje se do svih računara priključenih na hab
uz pojačanje signala koji nosi poruku.
Mrežni most (bridge) je mrežni uređaj koji povezuje dve LAN mreže i kontroliše tok
podataka, nastalim prilikom prenosa, obezbeđuje fizičko adresiranje i upravlja pristupom
fizičkom medijumu u prenosu između dva segmenta mreže koju povezuje (Slika 12.5a).
Njegove osnovne funkcije su da omogući proširenje mreže, kao i broj čvorova mreže, a
takođe i da podelom mreže u segmente smanji obim saobraćaja u svakom od segmenata
mreže i time izoluje probleme u jednom segmentu mreže od mrežnog saobraćaja u drugom
segmentu. Poslednjih godina ulogu mrežnih mostova preuzimaju mrežni komutatori.
Mrežni komutator (switch) je mrežni uređaj sličan habu koji, takođe, ima više portova
na koje se kablovima povezuju računari. Za razliku od haba, mrežni komutator prosleđuje
podatke samo na port (računar) kome su ti podaci upućeni, na osnovu adrese u zaglavlju
podataka koji se prenose. Mrežni komutator ima funkciju da poveže više kompatibilnih
mreža (Slika 12.5b). Mrežni komutator ispituje zaglavlje podataka koji se prenose i dolaze
na ulazni port komutatora i formira konekciju prema izlazu na koji je priključen računar
adresiran adresom u zaglavlju podataka (računar kome je paket namenjen). Mrežni
komutator nije pasivan uređaj poput haba jer poseduje mogućnost ispitivanja zaglavlja
podataka i određivanja adrese odredišnog računara registrovane u zaglavlju.
a) b)
Slika 12.5 Mrežni uređaji a) Repetitor ili mrežni most povezuju dve magistrale, b) mrežni
komutator povezuje više magistrala
Mrežni prolaz (Gateway) je sličan mrežnom mostu, ali ima funkciju da poveže
međusobno heterogene (nekompatibilne) mreže koje koriste različite protokole. Pri tom
mrežni prolaz vrši preformatiranje i prevođenje podataka koji prelaze iz jedne u drugu
mrežu. Na ovaj način mrežni prolaz povezuje dva mrežna segmenta koji ne koriste iste
komunikacione protokole, strukture i formate podataka, jezike i arhitekture.
Ruter povezuje nekompatibilne računarske mreže i služi za prenos podataka između
izvorišta i odredišta uz određivanje optimalnog puta (Slika 12.6). Algoritmi rutiranja koriste
Repetitor ili mrežni most
Mrežni komutator
1 2 . R A Č U N A R S K E M R E Ž E
201
takozvane tabele rutiranja (eng. routing tables) sa različitim informacijama o putevima
između rutera da bi odredili put kojim će se prenositi podaci od izvornog računara do
odredišnog računara. Ruteri omogućuju formiranje mreže mreža, tzv. Internet.
Slika 12.6 Ruter povezuje više nekompatibilnih mreža
12.3 LAN tehnologije
Da bi se podaci preko mrežnog interfejsa (mrežne kartice) preneli kroz mrežu
neophodno je obezbediti pristupu komunikacionom medijumu i slanje signala koji nosi
podatak. Pošto je na računarsku mrežu generalno povezano više računara od kojih svaki
može da prima i šalje podatke nezavisno jedan od drugog, pri čemu svi dele isti
komunikacioni medijum, neophodna je primena odgovarajućih metoda za pristup
komunikacionom medijumu. Postoje dve glavne metode za pristup komunikacionom
medijumu:
Višestruki pristup zajedničkom medijumu nadgledanjem prisustva nosećeg signala
uz detekciju kolizije (CSMA/CD – Carrier Sense Multiple Access/Collision
Detection). Varijanta ove metode za bežične mreže (Bežični LAN) naziva se
(CSMA/CA – Carrier Sense Multiple Access/Collision Avoidance).
Prosleđivanje tokena.
Kod metode višestrukog pristupa zajedničkom medijumu nadgledanjem prisustva
nosećeg signala uz detekciju kolizije svaki računar na mreži proverava da li je kabl
slobodan za emitovanje signala koji nosi podatak. Kada detektuje da nema saobraćaja na
mreži, šalje podatke i za to vreme nijedan drugi računar ne može slati svoje podatke dok
poslati podaci ne stignu do odredišta. Ukoliko dođe do istovremenog slanja podataka
(sudara), oba računara prestaju sa emitovanjem podataka određeno, slučajno izabrano,
dakle različito vreme, a onda pokušavaju ponovo, pri čemu će u tom pokušaju jedan od njih
dobiti prednost.
www.elfak.ni.ac.rs
(160.99.11.201) Kućni računar
Ruter Ruter
Ruter
WiFi mreža
WiFi mreža
LAN
U V O D U R A Č U N A R S T V O
202
Kod metode prosleđivanja tokena specijalna vrsta podatka (token) kruži prstenastom
mrežom od računara do računara. Računar koji želi da pošalje podatke mora da sačeka
slobodan token. Računar tada preuzima kontrolu nad njim i koristi ga za prenos podataka.
Dok jedan računar koristi token ostali ne mogu da komuniciraju. Kada računar završi sa
celokupnim prenosom podataka prosleđuje token sledećem računaru u prstenu i token
nastavlja kruženje do računara koji treba da pošalje podatke, pri čemu se prethodni
postupak ponavlja.
LAN mreže mogu takođe biti klasifikovane u pogledu tehnologija koje se koriste za
povezivanje računara u mrežu. Široko korišćena tehnologija koja je postala i industrijski
standard za LAN je Ethernet.
Klasični Ethernet je bio zasnovan na topologiji magistrale, ali u današnje vreme
korišćenjem mrežnih razdelnika uglavnom je formiran u topologiju „proširene” zvezde.
Danas je Ethernet najpopularnija LAN tehnologija zbog malih troškova i jednostavnosti
instaliranja i održavanja. Metoda pristupa u Ethernet mrežama je CSMA/CD. Kao mrežni
medijum koriste se koaksijalni kablovi, upredene parice i optički kablovi. Ethernet je
standardizovan u okviru standarda IEEE 802.3 i obezbeđuje brzine prenosa: 10Mb/s,
100Mb/s, 1 Gb/s(Gigabit Ethernet), 10 Gb/s i 100 Gb/s (100Gigabit Ethernet).
Druga LAN tehnologija je Token ring koja koristi topologiju prstena i kontrolu pristupa
medijumu prosleđivanjem tokena. Kao mrežni medijum koristi upredene bakarne parice.
Token ring tehnologija je standardizovana u okviru standarda IEEE 802.5. Brzine prenosa u
standardnim token ring mrežama iznose 4-16 Mb/s, dok se Fast token ring tehnologijom
omogućuju brzine prenosa do 100 Mb/s. U današnje vreme je vrlo malo zastupljena i u
potpunosti zamenjena Ethernet mrežama koje predstavljaju de facto standard u LAN.
LAN tehnologija koja je krajem prošlog veka mogla da obezbedi veće brzine prenosa
podataka od tadašnjih Ethernet tehnologija, ali uz veću cenu instaliranja i održavanja su bile
FDDI (eng. Fiber Distributed Data Interface) zasnovana na prosleđivanju tokena po
optičkom kablu koja podržava brzine prenosa podataka do 100Mb/s. Aktuelna LAN
tehnologija je i ATM (eng. Asynhronous Transfer Mode) koja omogućava brzinu prenosa
do 2.5 Gb/s.
12.4 Prenos podataka kroz računarsku mrežu
Pri prenosu podataka kroz računarsku mrežu podaci se razbijaju na manje jedinice
nazvane paketi (eng. packets). Prenos paketa se zasniva na principu komutacije paketa (eng.
packet switching). Paketi nastali podelom originalnog podatka prenose se kroz mrežu
nezavisno jedan od drugog, često i različitim putevima, te se na odredišnom računaru
spajaju u celinu.
Osnovne komponente paketa su:
Adresa izvornog računara koji šalje podatke.
Adresa odredišnog računara kojem su upućeni podaci.
Podaci koji se prenose (između 512B i 4KB).
Instrukcije kojima se mrežnim komponentama nalaže kako da proslede podatke
kroz mrežu.
1 2 . R A Č U N A R S K E M R E Ž E
203
Informacije pomoću kojih se omogućuje spajanje paketa u originalnu celinu na
odredišnom računaru.
Informacije o proveri greške kojima se proverava da li su paketi stigli neoštećeni
(ciklična provera redundantosti – CRC kod).
Komponente paketa su grupisane u tri dela: zaglavlje, podaci, prateći zapis sa
komponentama za proveru greške.
Protokoli predstavljaju skup pravila koji upravljaju prenosom podataka između
mrežnih čvorova. Protokoli su implementirani u slojevitu strukturu. Svaki protokol se
zasniva na protokolu nižeg sloja i obezbeđuje podršku za protokol u sloju iznad, tako da
čine tzv. stek protokola (eng. protocol stack). Generalno, na izvornom računaru protokoli
dele podatke u manje celine, nazvane paketi, paketima dodaju informacije o adresi
odredišnog računara na mreži i pripremaju podatke za prenos kroz mrežnu karticu i dalje
kroz komunikacioni medijum.
Na odredišnom računaru protokoli sprovode isti niz koraka ali obrnutim redosledom:
preuzimaju pakete podataka sa komunikacionog medijuma i mrežne kartice, iz paketa
uklanjaju sve informacije o prenosu u okviru zaglavlja koje je dodao izvorni računar,
sklapaju podatke iz paketa u originalni podatak i prosleđuju ga aplikaciji kojoj je namenjen
taj podatak.
12.5 ISO/OSI referentni model
U cilju definisanja standarda za komunikaciju računara u računarskim mrežama
Međunardona organizacija za standardizaciju (ISO - International Organization for
Standardization) i Internacionalni telegrafski i telefonski komitet (CCITT) definisali su OSI
(Open Systems Interconnection) referentni model koji na konceptualnom nivou definiše
proces komunikacije u obliku sedam diskretnih slojeva sa specifičnim funkcijama u
komunikaciji (Slika 12.7).
7 Aplikacioni sloj Application layer
6 Sloj predstavljanja Presentation layer
5 Sloj sesije Session layer
4 Transportni sloj Transport layer
3 Mrežni sloj Network layer
2 Sloj veze Data link layer
1 Fizički sloj Physical layer
Slika 12.7 Slojevi ISO/OSI referentnog mrežnog modela
OSI predstavlja teorijski model i standard koji specificira način međusobne komunikacije
između dva računarska sistema. Svaki sloj komunicira i sarađuje sa slojevima koji su
neposredno iznad i ispod njega.
U V O D U R A Č U N A R S T V O
204
OSI slojevi obavljaju sledeće funkcije:
Fizički sloj prenosi nestruktuirani niz bitova preko fizičkog medijuma i
obezbeđuje aktivaciju i održavanje fizičke veze (poput kabla) između računara.
Sloj veze uokviruje podatke sa višeg sloja u okvire koji uključuju zaglavlje sa
fizičkim adresama izvora i odredišta. Odgovoran je za pouzdan prenos podataka
kroz fizički sloj bez greške.
Sloj mreže je zadužen za adresiranje paketa i prevođenje logičkih adresa i imena u
fizičke adrese, određujući optimalni put paketa od izvornog do odredišnog
računara.
Transportni sloj obezbeđuje da se paketi isporučuju bez greške, prema redosledu
kako su poslati, bez gubitaka ili dupliranja. Formira virtuelnu konekciju između
izvornog i odredišnog računara i obezbeđuje kontrolu toka prenosa, obradu
grešaka i rešavanje problema u prenosu i prijemu paketa.
Sloje sesije uspostavlja, upravlja i zatvara vezu (sesiju) između aplikacija na
različitim računarima u mreži.
Sloj predstavljanja određuje format koji se koristi pri razmeni podataka između
umreženih računara i odgovoran je za prevođenje i formatiranje podataka
neophodnih aplikacionom sloju.
Aplikacioni sloj obezbeđuje interfejs i standard za komunikaciju između
aplikacija koje pristupaju računarskoj mreži i mrežnim resursima.
Slojevi nižeg nivoa, fizički i sloje veze, definišu fizički medijum mreže i srodne
poslove, kao što je način prosleđivanja bitova podataka kroz mrežne kartice (adaptere) i
kablove i implementiraju se u hardveru i softveru. Viši slojevi definišu kako aplikacije
pristupaju komunikacionim servisima i implementiraju se u potpunosti softverski. Na Slika
12.8 prikazan je tok podataka u OSI modelu.
Poruka Poruka Poruka Poruka Poruka Poruka Poruka
PH PH PH PH PH PH
SH SH SH SH SH
TH TH TH TH
NH NHNH
DH DH
Poruka Poruka Poruka Poruka Poruka Poruka Poruka
PH PH PH PH PH PH
SH SH SH SH SH
TH TH TH TH
NH NHNH
DH DH
Komunikacioni
medijum
Aplikacioni Predstavljanja Sesije Transportni Mrežni Veze Fizički
Slika 12.8 Prenos podataka kroz mrežu u okviru ISO/OSI modela (PH, SH, TH, NH,
DH – zaglavlja koja u paket dodaje odgovarajući sloj)
1 2 . R A Č U N A R S K E M R E Ž E
205
Slojevi su međusobno razdvojeni interfejsima i svi zahtevi jednog sloja drugom sloju
prosleđuju se preko interfejsa. Prilikom slanja, svaki sloj paketu koji je dobio od sloja iznad
dodaje odgovarajuće podatke u obliku zaglavlja (header-a) kao što su format, adresa, kod
za proveru greške, itd., koje se na odredišnom računaru izdvajaju i koriste u okviru istog
sloja dok se ostatak prosleđuje sledećem sloju iznad, sve dok sloj aplikacije originalni
podatak prenosi aplikaciji koja učestvuje u komunikaciji.
U V O D U R A Č U N A R S T V O
206
Pitanja i zadaci
1. Šta je računarska mreža i koje su koristi od računarskih mreža?
2. Koji su osnovni žičani, a koji bežični komunikacioni medijumi?
3. Koje su osnovne kategorije računarskih mreža?
4. Navesti podelu računarskih mreža prema oblasti koju pokrivaju.
5. Navesti i opisati osnovne topologije lokalnih računarskih mreža.
6. Koja su dva najznačajnija LAN standarda/tehnologije?
7. Koji su osnovni mrežni uređaji? Navesti i opisati svaki od njih.
8. Šta je mrežno čvorište (hub), a šta mrežni preklopnik (switch) i koje su njihove
funkcije?
9. Šta je mrežni most (bridge) i koja je njegova funkcija?
10. Šta je ruter i koja je njegova funkcija?
11. Šta je mrežni prolaz (gateway) i koja je njegova funkcija?
12. Šta je protokol i koje su funkcije protokola?
13. Šta su paketi i kako se vrši prenos podataka kroz mrežu?
14. Koje podatke sadrži paket?
15. Navesti i objasniti mrežne uređaje koje treba upotrebiti da bi se formirala lokalna
mreža tipa zvezde i koji protokol će biti korišćen u takvoj mreži. Ako želimo da ovu
lokalnu mrežu povežemo na Internet koji ćemo uređaj koristiti? Objasniti.
16. Ako bi ste želeli da povežete više računara u lokalnu mrežu Ethernet tipa koje mrežne
uređaje bi upotrebili i koja metoda za pristup mrežnom medijumu bi bila
implementirana u ovoj mreži? Objasniti.
17. Koje su osnovne metode pristupa mrežnom medijumu u lokalnim računarskim
mrežama i koji je najzastupljeniji metod u savremenim LAN-ovima? Kako se naziva
LAN tehnologija i standard koji koristi ovu metodu pristupa?
1 3 . I N T E R N E T I W E B
207
13 INTERNET I WEB
Internet predstavlja kolekciju LAN i WAN mreža koje su međusobno povezane i
formiraju globalnu WAN mrežu ili mrežu svih mreža. Kada računar povežete preko
provajdera Internet usluga (eng. ISP – Internet Service Provider), ili je LAN mreža kojoj
pripada vaš računar povezana na ISP, i vaš računar postaje deo Interneta.
Internet je prvobitno nastao kao projekat ARPANET (eng. Advanced Research Projects
Network) pokrenut 1969. godine od strane Ministarstva Odbrane SAD sa čvorovima na
univerzitetima UCLA, Stanford Research, UCSB, Utah, itd. U mrežu je 1971. godine
inicijalno povezano 15 čvorova i 23 host računara. Značajne godine u razvoju Interneta
predstavljaju 1982. godina u kojoj su TCP/IP protokoli izabrani kao komunikacioni
protokoli ARPANET-a, kao i 1990. godina kada ARPANET prestaje da postoji budući da
Vlada SAD ukida zabranu komercijalne upotrebe ove mreže, čime je otvoren put nastanku
Interneta.
Internet u današnje vreme ima više od 3 milijarde korisnika. Oko milijardu računara je
povezano na ovu mrežu, pri čemu ovaj broj neprekidno raste sa sve većom popularnošću
pametnih telefona i tablet računara povezanih bežičnim celularnim mrežama na Internet.
Internet se prostire na sve države sveta i praktično ne predstavlja jednu celinu, već
kolekciju računarskih mreža različitog tipa i mehanizama komunikacije, koje su u
vlasništvu i upravljane od različitih organizacija. Na taj način je obezbeđeno da Internet
nije ničije vlasništvo i niko nema centralnu kontrolu nad celokupnim Internetom, pa samim
tim Internet ne može biti ukinut ili uništen na globalnom nivou.
13.1 Internet protokoli
Mrežni komunikacioni uređaji i komunikacioni medijumi predstavljaju samo deo onoga
što obezbeđuje funkcionisanje Interneta. Za uspostavljanje i obavljanje komunikacije
računara u računarskim mrežama neophodni su protokoli. Osnovni protokoli koji
obezbeđuju funkcionisanje Interneta je skup protokola generalno nazvanih TCP/IP protokol
stek. Prvi protokol, TCP (Transmission Control Protocol) je odgovoran za pouzdan prenos
podataka od jednog do drugog računara. On obavlja ovaj zadatak deljenjem podataka na
manje delove fiksne veličine, nazvane segmenti i uspostavljanjem virtuelne konekcije sa
odredišnim računarom u cilju prenosa paketa. TCP, takođe, upravlja sekvencijalnim
slanjem paketa i obezbeđuje ponovno slanje paketa koji su primljeni sa greškom.
Svaki segment podatka u okviru paketa je proširen zaglavljem koje sadrži informacije,
poput rednog broja paketa u sekvenci i koda u vidu kontrolne sume (eng. checksum) za
U V O D U R A Č U N A R S T V O
208
detektovanje grešaka u prenosu paketa. Na slici 13.1 prikazano je formiranje okvira na sloju
veze, na osnovu IP paketa i TCP segmenta.
Slika 13.1 Formiranje okvira na sloju veze
U Tabela 13.1 prikazana su polja u TCP zaglavlju. Drugi protokol, UDP (User
Datagram Protocol), predstavlja alternativu TCP-a sa osnovnom razlikom da ne
uspostavlja virtuelnu konekciju, pa je samim tim manje pouzdan, ali generalno obezbeđuje
brži prenos podataka.
Tabela 13.1 Polja u TCP zaglavlju
Polje u zaglavlju (eng) Polje u zaglavlju Veličina u bitovima
Source port Izvorni port 16
Destination port Odredišni port 16
Sequence number Broj segmenta u sekvenci 32
Acknowledge (ACK) number Broj potvrde 32
Data offset Dužina zaglavlja 4
Reserved Rezervisano 6
Flags Kontrolni bitovi 6
Window Veličina dinamičkog prozora 16
Checksum Ček suma 16
Urgent pointer Pokazivač od broja u sekvenci 16
Options Opcije 32
TCP je dakle zadužen za pouzdani prenos podataka od jednog do drugog mrežnog
čvora, ali ne pruža mogućnost adresiranja paketa da bi se obezbedilo njihovo stizanje do
odredišnog računara. Ovo je zadatak Internet protokola – IP. TCP paketi se šalju softveru
IP sloja, na kome se dodaje novo zaglavlje koje sadrži adresne informacije. U Tabela 13.2
prikazana su polja u IP zaglavlju u verziji 4 protokola.
IP (Internet Protocol, IPv4) vrši adresiranje i izbor putanje paketa i upravlja rutiranjem
paketa kroz međusobno povezane mreže do njihovog konačnog odredišta. Centralnu ulogu
u funkcionisanju ovog protokola ima IP adresa izvornog i odredišnog računara. Tokom
inicijalnog razvoja Internet Protokola definisano je da svaki računar (ili uređaj) priključen
Zaglavlje okvira
Zaglavlje paketa
Zaglavlje segmenta
Podaci segmenta
Podaci paketa
Podaci okvira
1 3 . I N T E R N E T I W E B
209
na Internet treba da ima jedinstven identifikacioni broj – adresu. Ovaj broj – adresa je 32
bitna binarnavrednost što obezbeđuje 232
(više od 4 milijarde) različitih adresa. Iako izgleda
da je to neiscrpan broj raspoloživih adresa, tokom prošle godine iscrpljene su raspoložive
IP adrese za određene regione sveta (Azija/Pacifik), a i ostala regionalna tela će ostati bez
raspoloživih IP adresa tokom ove i narednih par godina. Zbog toga je razvijena nova verzija
IP protokola, (IPv6) koja poseduje 128-bitne adrese i omogućuje 2128
mogućih adresa.
Proces prebacivanja računara i drugih mrežnih uređaja na novu verziju IPv6 je započeo i
očekuje se da će biti obavljen tokom narednih godina.
Tabela 13.2 Polja u IP zaglavlju, verziji 4
Polje u zaglavlju (eng) Polje u zaglavlju Veličina u bitovima
Version Verzija 4
Header Length Dužina zaglavlja 4
Type of service Tip servisa 8
Total length of datagram Dužina datagram-a 16
Packet identification Identifikacija paketa 16
Flags Kontrolni bitovi 4
Fragment offset Pomeraj fragmenta 12
Time to live (TTL) Vreme života 8
Protocol number Broj protokola 8
Header checksum Čeksuma zaglavlja 16
Source IP address Izvorna IP adresa 32
Destination IP address Odredišna IP adresa 32
IP options IP opcije 32
Pošto je za čoveka, sistem administratora ili programera, teško da koristi 32-bitne
binarne adrese koje koristi računarska i mrežna oprema, IP adresa je obično predstavljena
kao skup 4 decimalna broja odvojena tačkama. Tipična IP adresa u ovoj, decimalno-
tačkastoj (decimal-dot) notaciji izgleda 160.99.32.63. Svaka od dekadnih cifara u ovako
napisanoj IP adresi predstavlja dekadnu vrednost jednog bajta (okteta) u celokupnoj 32-
bitnoj adresi (Slika 13.2). To znači da svaka dekadna vrednost može biti u opsegu od 0 do
255. Globalna organizacija za održavanje i dodelu IP adresa za ceo svet je Internet
Assigned Numbers Authority (IANA). IP adrese se u stvari dodeljuju od strane regionalnih
agencija, poput ARIN (American Registry for Internet Numbers)koja pokriva Severnu
Ameriku, RIPE NCC za Evropu, Bliski istok i delove Centralne Azije, kao i već pomenuta
APNIC za region Azija/Pacifik.
Slika 13.2 IP adresa u decimalno tačkastoj notaciji
U V O D U R A Č U N A R S T V O
210
IP adresa je ključni deo Internet protokola. Ako računar poznaje IP adresu sledećeg
računara u mreži, čvorovi mreže, od računara do rutera, pa preko sledećeg rutera do
odredišnog računara mogu da usmeravaju pakete po korektnim komunikacionim linijama.
Kao što je već napomenuto, mrežni uređaj koji obezbeđuje funkcionisanje Interneta je ruter.
Ključna karakteristika Interneta je mogućnost da IP paketi mogu biti rutirani do korektnog
odredišta po različitim putevima (rutama) u mreži. Ruter je u stvari specijalizovani računar
koji je povezan na više različitih komunikacionih linija i programiran tako da ispita paket
koji primi preko jedne linije i rutira ga na drugu komunikacionu liniju kojom se paket šalje
bliže odredištu. Ruteri, dakle koriste da povežu više različitih, moguće nekompatibilnih
mreža. Oni time omogućuju postojanje Interneta povezivanjem svih tih mreža u jednu
celinu i prosleđivanjem IP paketa ka sledećim ruterima, ili ka njihovom konačnom
odredištu (Slika 13.3)
Web serverKućni računar
A B
C D E
F G
Ruteri
Slika 13.3 Ruteri obezbeđuju više alternativnih puteva paketima do odredišta
Razmotrimo IP adresu, 160.99.11.201 koja predstavlja IP adresu Web sajta
Elektronskog fakulteta u Nišu. Ukoliko šaljemo neke podatke na ovu IP adresu sa našeg
kućnog računara, prvi paket koji napušta naš računar se šalje ruteru našeg ISP-a (npr.
Telekom ADSL). Ovaj ruter ispituje odredišnu adresu paketa u zaglavlju paketa da bi
odredio da li je ova adresa u okviru LAN mreže našeg ISP. Ukoliko jeste, on prosleđuje
paket na komunikacionu liniju do računara u okviru ISP. Pošto je paket upućen ka drugom
LAN-u koji nije u okviru ISP-a, ruter proverava svoje interne tablice i prosleđuje paket ka
drugom ruteru koji je bliži konačnom odredištu. Kada sledeći ruter dobije paket on ponavlja
isti postupak. Najpre proverava adresu da vidi da li je ona deo LAN-a na koji je ruter
povezan. Ako nije, pretražuje svoje interne tablice i prosleđuje paket sledećem ruteru koji je
još bliži konačnom odredištu. Konačno, paket se prosleđuje ruteru u okviru LAN-a
Elektronskog fakulteta. Ruter prepoznaje da je adresa u okviru LAN-a na koji je povezan i
šalje paket preko komunikacione linije ka odredišnom računaru, Web serveru Elektronskog
fakulteta. Svaki paket koji čini našu poruku se šalje na isti način, ali ne obavezno istim
putevima do odredišnog računara. Ruteri imaju sposobnost međusobne komunikacije
tokom koje dele informacije o količini mrežnog saobraćaja preko linija na koje su povezani.
Ukoliko je komunikaciona linija koju ruter koristi za prosleđivanje paketa u prekidu ili
zagušena saobraćajem, ruter šalje paket po drugoj liniji koja je takođe bliža odredišnom
računari specificiranom u IP adresi (Slika 13.4).
1 3 . I N T E R N E T I W E B
211
Mrežni
komutatori
Ruter
Slika 13.4 Rutiranje paketa
13.2 Protokoli višeg nivoa
U prethodnom poglavlju prikazan je OSI mrežni model koji definiše 7 slojeva protokola.
Skup protokola koji se zasnivaju na TCP/IP protokolima obezbeđuju aplikacije i servise na
Internetu i po funkcijama obuhvataju tri najviša sloja OSI modela, aplikacioni, sloj
predstavljanja i sloj sesije (Slika 13.5). To su protokoli:
Simple Mail Transfer Protocol (SMTP) – protokol za slanje elektronske pošte.
File Transfer Protocol (FTP) – protokol za prenos datoteka (download i upload)
pri čemu je neophodno postojanje ftp klijenta i ftp servera.
Telnet – protokol za rad na udaljenom računaru; omogućuje prijavljivanje (logon)
na udaljeni računar (telnet server) i rad putem lokalnog telnet klijenta.
Hyper Text Transfer Protocol (http) – prenos hipertekstualnog i hipermedijalnog
sadržaja na WWW-u.
TCP i IP obezbeđuju funkcionalnost mrežnog, transportnog i delom sloja sesije.
Protokoli višeg nivoa koriste TCP/IP protokole na Internetu za obavljanje svojih specifičnih
zadataka. Poruke upućene iz aplikacije, na primer, e-mail klijenta ili Web pretraživača, se
od strane odgovarajućeg protokola višeg nivoa upućuju TCP protokolu, koji deli podatke u
pakete, dodaje TCP zaglavlja svakom paketu i prosleđuje pakete IP protokolu radi
adresiranja. IP protokol dodaje zaglavlje sa adresama paketa i šalje pakete u niže slojeve,
sloj veze i fizički sloj, radi prenosa kroz komunikacioni medijum.
U V O D U R A Č U N A R S T V O
212
Fizički
Veze
Mrežni IP
Transportni TCP UDP
Sesije
Predstavljanja
Aplikacioni
FTP SMTP HTTP Telnet ...
Ethernet protokoli
Slika 13.5 Internet protokoli
Uprošćeni prikaz slanja paketa kroz protokole na jednom računaru/mrežnom uređaju
preko slojeva protokola na usputnim mrežnim čvorovima do odredišnog računara prikazan
je na Slika 13.6. Aplikacioni sloj na slici uključuje funkcionalnost aplikacionog,
prezentacionog i sloja sesije OSI modela.
Veze
Mrežni
Transportni
Aplikacioni
...
Veze
Mrežni
Veze
Mrežni
Veze
Mrežni
Transportni
Aplikacioni
Izvorni računar Među računari (ruteri) Odredišni računar
Slika 13.6 Prenos paketa (podataka) kroz Internet
13.3 Simboličke adrese i DNS
Bilo bi vrlo teško zapamtiti IP adrese svih računara (Web sajta, mail servera, itd.)
kojima pristupamo. Da bi se olakšalo pamćenje i korišćenje adresa računara na Internetu,
uvode se njihove simboličke adrese. Simbolička adresa računara se sastoji od naziva
domena i hosta (računara). Na primer u simboličkoj adresi gislab.elfak.ni.ac.rs, naziv
domena je elfak.ni.ac.rs, a naziv računara je gislab. U nazivu domena razlikujemo domene
1 3 . I N T E R N E T I W E B
213
različitog nivoa. Poslednji segment naziva domena predstavlja domen najvišeg nivoa (top-
level domain -TLD). Ovi domeni mogu označavati tip organizacije, poput com, edu, gov,
net, org, info, itd. Takođe domeni najvišeg nivoa označavaju i državu u kojoj su
registrovani i predstavljaju dvoznačne kodove država, poput rs, uk, it, ru, ca, ch, gr.
Delovi simboličke adrese razdvojeni tačkama nemaju nikakve veze sa dekadnim
brojevima razdvojenim tačkama u IP adresi. Prevođenje simboličkog imena računara u IP
adresu obavlja se od strane sepcijalizovanog računara i softvera koji se naziva DNS
(Domain Name System) server. Svaki mrežni administrator domena održava katalog
simboličkih adresa i njima odgovarajućih IP adresa u okviru svog domena. Ukoliko bi
postojao samo jedan DNS server za ceo Internet, on bi vodio evidenciju o nekoliko
milijardi simboličkih/IP adresa i bio preopterećen zahtevima za prevođenjem simboličkih u
odgovarajuće IP adrese. U stvarnosti postoji na hiljade DNS servera širom sveta. Naš ISP
održava DNS server koji ne pokriva sve domene u svetu, već je odgovoran samo za
sopstveni domen.
Postoji DNS server za svaki TLD koji sadrži informacije o svim DNS serverima nižeg
nivoa koji evidentiraju pod-domene u okviru tog TLD-a. Svaka organizacija poseduje DNS
server za sopstveni domen, pa ukoliko ne može da konvertuje simboličku adresu u
odgovarajuću IP adresu prosleđuje simboličku adresu drugom DNS serveru. Na primer,
ukoliko želimo da pristupimo Web strani Elektronskog fakulteta u Nišu, unosimo
simboličku adresu www.elfak.ni.ac.rs u adresnu liniju našeg Web pretraživača. Ovim se
šalje zahtev DNS serveru našeg ISP za prevođenje ove simboličke adrese u odgovarajuću
IP adresu. Pošto je ova simbolička adresa (domen) izvan domena našeg ISP, ovaj DNS
server prosleđuje zahtev DNS serveru najvišeg nivoa (TLD) u ovom slučaju rs. DNS server
za TLD rs vraća adresu DNS servera Akademske mreže Srbije koji je odgovaran za domen
ac.rs. Zahtev se zatim upućuje ovom DNS serveru koji poseduje informacije o DNS
serverima i njihovim IP adresama u okviru pod-domena ni.ac.rs. Kao odgovor na zahtev
naš DNS upućuje zahtevDNS serveru na Elektronskom fakultetu u Nišu odgovornom za
domen elfak.ni.ac.rs. Ovaj DNS server obezbeđuje prevođenje svih simboličkih imena
računara na ovom domenu, pa i www, u odgovarajuće IP adrese, pa se konačno određuje IP
adresa 160.99.11.201 koja se vraća DNS serveru našeg ISP koji je vraća Web pretraživaču.
Kada DNS server našeg ISP jednom odredi IP adresu za određenu simboličku adresu, on je
čuva (kešira) u slučaju da uskoro bude još zahteva za istom simboličkom adresom.
13.4 Broj porta
Ukoliko više aplikacija na jednom računaru sa jednom IP adresom istovremeno
komunicira sa odgovarajućim aplikacijama na drugim računarima na Internetu, neopodno je
da protokoli na odredišnom računaru znaju kojoj aplikaciji su upućeni paketi i od koga. Da
bi se to omogućilo uveden je broj porta. U okviru TCP protokola, ili nekog drugog
protokola transportnog sloja, obezbeđena je mogućnost specificiranja jedinstvenog porta za
istu IP adresu za svaku aplikaciju posebno. Broj porta može biti specificiran i za izvorni i za
odredišni računar u okviru TCP zaglavlja (videti Tabela 13.1). Kombinacija IP adrese i
broja porta, na neki način, odgovara adresi ulice/zgrade i broju stana. Većina protokola ima
standardne brojeve porta. Standardni broj porta za HTTP protokol je 80, a za FTP je 21.
Postoji 65 636 mogućih različitih brojeva porta koji se mogu koristiti uz svaku IP adresu. U
okviru URL adrese specificiranje porta se obavlja dodavanjem dve tačke nakon simboličke
U V O D U R A Č U N A R S T V O
214
ili IP adrese. Na primer u URL adresi: http://192.168.2.33:8080 specificira se računar sa IP
adresom 192.168.2.33 i brojem porta 8080. Samo specifične aplikacije su podešene da
„osluškuju“ na portu 8080 i da preuzmu i odgovore na IP pakete koji stignu na tu adresu. U
Tabela 13.3 prikazan je spisak uobičajeno korišćenih brojeva porta.
Tabela 13.3 TCP/IP brojevi porta koji se uobičajeno koriste
Broj porta Protokol
21 FTP (File Transfer Protocol )
23 Telnet
25 SMTP (Simple Mail Transfer Protocol)
53 DNS (Domain Name System service)
68 DHCP (Dynamic Host Control Protocol)
80 HTTP (Hypertext Transfer Protocol)
110 POP3 (Post Office Protocol version 3)
139 NetBIOS
13.5 World Wide Web
World Wide Web (WWW) ili kraće Web je sistem povezanih hipertekstualnih i
hipermedijalnih dokumenata dostupnih na Internetu. Nastao je 1990. godine, u okviru
CERN-a, evropske organizacije za nuklearna istraživanja. Razvijen je od strane Tim
Berners Lee, danas direktora World Wide Web Consortium (W3C), kao način razmene
informacija o naučnim istraživanjima.
Prvi Web pretraživači i Web editori su bili tekst-orijentisani sve do 1993. godine i
razvoja Mosaic-a kao prvog GUI Web pretraživač-a. Danas je Web jedan od
nazastupljenijih servisa Interneta, omogućivši pojavu i razvoj e-trgovine, e-poslovanja, e-
učenja, e-medicine, socijalnih mreža, itd.
Komponente koje čine Web su Web server i Web pretraživač (eng. browser). Web
server podržava HTTP protokol, poseduje IP adresu, odgovarajući softver (Web, http
server) i Web resurse: html, multimedijalne i programske datoteke. Web pretraživač
komunicira sa Web serverom putem zahteva specificiranim korišćenjem URL (Uniform
Resource Locator) koji mu upućuje korišćenjem HTTP protokola i prikazuje sadržaj resursa
koji dobija od Web servera. URL je jedinstvena adresa resursa (datoteke) na Internetu/Web-
u. Popularni Web pretraživači danas su Mozilla Firefox, Google Chrome, MS Internet
Exlorer, Opera iSafari.
Opšti oblik URL je:
Protokol://Naziv_računara.Naziv_domena/Put/Naziv-resursa
1 3 . I N T E R N E T I W E B
215
Primer URL kojim se u okviru Web pretraživaća zahteva prikaz sadržaja sa spiskom
studenata izgleda ovako:
http://cs.elfak.ni.ac.rs/II_godina/spisak_studenata.html
gde su:
cs - naziv računara (hosta)
elfak.ni.ac.rs - naziv domena
II_godina - folder (sekvenca foldera koji predstavljaju put do resursa)
spisak_studenata.html - naziv resursa – datoteke u html formatu
Princip funkcionisanja Web-a je sledeći (Slika 13.7). U adresnoj liniji Web pretraživača
specificira se URL adresa Web resursa (html datoteke) koji se zahteva. Najpre se URL šalje
lokalnom DNS serveru koji postupkom opisanim u poglavlju 13.3 određuje IP adresu koja
odgovara domenu i nazivu računara u URL-u. Na osnovu dobijene IP adrese Web servera,
Web pretraživač upućuje zahtev se preko HTTP protokola na tu IP adresu. Web server
zahtevani resurs (HTML datoteku) kao i povezane datoteke sa slikama, multimedijalnim
sadržajem, programima, itd. šalje Web pretraživaču koji interpretira primljeni sadržaj i
prikazuje ga korisniku.
URL
Lokalni računar
(Web klijent) Web server
HTTP zahtev
Tekst, slike,
podaci, video,...
Slika 13.7 Princip funkcionisanja Web-a
Web stranice su uglavnom tekstualne datoteke koje su kreirane korišćenjem jezika
nazvanog HTML (Hypertext Markup Language). Primarni elementi HTML jezika su
oznake, ili tagovi (tags) koji se ubacuju u dokument da bi se na poseban način označili
delovi podataka u dokumentu i da bi omogućili Web pretraživaču da na odgovarajući način
prikaže sadržaj Web strane. Tagovi su reči ograđene uglastim zagradama (<. . .>). Tako reči
poput HEAD, TITLE, i BODY definišu tagove i specificiraju elemente koje uokviruju.
Tagovi se obično koriste u parovima, tako da ukoliko je početna oznaka, na primer,
<BODY> odgovarajuća krajnja oznaka je sa znakom / ispred naziva taga, poput </BODY>.
Web pretraživač određuje na koji način će Web strana biti prikazana u zavisnosti od tagova
koji uokviruju sadržaje u dokumentu.
Neki najuobičajeniji HTML tagovi su:
<HTML></HTML> - uokviruje HTMl dokument
U V O D U R A Č U N A R S T V O
216
<HEAD></HEAD> - definiše zaglavlje dokumenta
<TITLE></TITLE> - naslov Web dokumenta
<BODY></BODY> - sadržaj dokumenta koji se prikazuje u Web pretraživaču
<BR> - prelazak u novu liniju
<P></P> - definisanje paragrafa
<FONT></FONT> - specificira font za tekst između tagova
<A></A> - specificira link na drugu Web stranicu
<IMG> - omogućuje uključenje slike u dokument
<FORM></FORM> - definiše formu za unos podataka na Web strani
<INPUT> - specificira elemente za unos podataka u okviru forme
<TABLE></TABLE> - definiše tabelarne podatke
<TR></TR> - unutar tabele definiše vrste
<TD></TD> - unutar vrsta definiše kolone
Broj definisanih HTML tagova je veliki i prikaz i objašnjenje svih HTML tagova
prevazilazi obim ove knjige. Primer HTML dokumenta za jednostavnu Web stranu
prikazan je na Slika 13.8.
Slika 13.8 Primer HTML sadržaja jednostavne Web strane
Ovaj HTML dokument i tagovi u njemu se interpretiraju od strane Web pretraživača i
njegov sadržaj se prikazuje kao na Slika 13.9.
1 3 . I N T E R N E T I W E B
217
Slika 13.9 Jednostavna Web strana prikazana u okviru Web pretraživača
Najznačajniji apsekt Web-a i HTML-a je mogućnost umetanja hiperlinkova u okviru
jedne Web strane koji predstavljaju poseban element te Web strane (tekst, sliku, itd.) koji
upućuje na druge Web strane. Za tu svrhu se koriste HTML tagovi <A> i </A>. Format
hiperlinka u okviru Web strane je prikazan na Slika 13.10, a Web strana prikazana u okviru
Web pretraživača je prikazana na Slika 13.11. Ukoliko korisnik klikne na neki od
hiperlinkova, pristupiće se URL-u pridruženom tom hiperlinku i dogovarajući resurs će biti
prikazan u okviru Web pretraživača.
Slika 13.10 Korišćenje <A> taga za specificiranje hiperlinkova u okviru Web strane
Slika 13.11 Prikaz strane sa hiperlinkovima u Web pretraživaču
U V O D U R A Č U N A R S T V O
218
13.6 Dinamičke Web strane
Kada je HTML razvijen nije postojala mogućnost interakcije korisnika sa sadržajem
prikazanim u okviru Web strana. HTML strane su bile statičke i njihov sadržaj i izgled se
nije menjao između sukscesivnih zahteva korisnika. Da bi se informacije na Web stranama
učinile dinamičkim, tj. da bi njihov sadržaj i prikaz bio različit pri svakom pristupu u skladu
sa parametrima zahteva, neophodna je primena programskih tehnologija. Web pretraživači
omogućavaju dinamičke Web strane u obliku DHTML (Dynamic HTML). DHTML
obezbeđuje animacije u okviru Web strane kao i interakciju korisnika za sadržajem Web
strane.
Ovo su omogućile programske tehnologije implementirane u okviru Web pretraživača,
poput script jezika (JavaScript, VBScript), Java apleta, ActiveX kontrola, Macromedia
Flash sadržaja, itd. Ovi skript jezici i tehnologije omogućuje da se uključi programski kod u
okviru Web strane koji se izvršava usled korisnikove interakcije sa prikazom Web strane,
poput unosa teksta ili klika mišem. Web strane su i dalje statičke u smislu da se ne menjaju
između dva zahteva, ali kad su prikazane u okviru Web pretraživača mogu se menjati kao
odvogor na različite događaje ili akcije pokrenute od strane korisnika.
Dinamičko kreiranje Web strana obezbeđuje da se strane kreiraju u trenutku kada im se
pristupa. Obično se sadržaj Web strane formira na osnovu podataka iz baza podataka ili
datoteka na Web serveru, kao i podataka sa drugih Web servera. Ovo omogućavaju
programske tehnologije za razvoj softvera koji se izvršava na Web serveru, poput: CGI,
ASP, ASP.NET, JSP, Java servleti, PHP, Python, itd. Programi razvijeni korišćenjem ovih
tehnologija postavljaju se na Web serveru. Kada im se pristupi zahtevom preko HTTP-a
navođenjem URL-a u okviru pretraživača, ovi programi se izvršavaju i dinamički kreiraju
HTML ili DHTML Web strane koje vraćaju Web pretraživačima.
13.7 Standardizacija WWW
W3C je međunarodna organizacija koja razvija WWW standarde (http://www.w3c.org).
HTML ima predefinisan skup tagova i svaki tag ima unapred određeno značenje, uglavnom
vezano za način prikazivanja podataka koje uokviruje u Web pretraživaču. Nove Web
tehnologije se zasnivaju na XML (Extensible Markup Language). XML je metajezik koji
omogućava kreiranje novih markup jezika, tako da kreator dokumenta može definisati
sopstveni skup oznaka (tagova) i njima opisati sopstveni dokument, tačnije njegov sadržaj.
XML se uglavnom koristi za transfer podataka. Na Slika 13.12 prikazan je jednostavan
XML dokument sa deifinisanim tagovima koji označavaju sadržaj koji uokviruju.
1 3 . I N T E R N E T I W E B
219
Slika 13.12 Primer XML dokumenta
XHTML je HTML opisan korišćenjem XML. XML predstavlja skup tehnologija, od
kojih su najbitnije:
XML Schema (XSD) jezik omogućava definisanje tagova i šeme dokumenta.
XSL (Extensible Stylesheet Language) – jezik koji omogućava definisanje
transformacije iz jednog u drugi XML format.
DOM – za predstavljanje strukture i obezbeđenje programskog pristupa elementima
i atributima XML dokumenta.
U V O D U R A Č U N A R S T V O
220
Pitanja i zadaci
1. Šta je Internet, i na kojim protokolima se zasniva?
2. Šta je protokol i koje su osnovne funkcije protokola? Navesti bar tri primera protokola,
jednog na transportnom, jednog na mrežnom i jednog na aplikacionom sloju ISO/OSI
referentnog modela.
3. Šta je paket u računarskim mrežama i koje podatke sadrži? Navesti i ukratko objasniti
funkcionalnost Internet protokola koji vrši rutiranje paketa kroz mrežu.
4. Koji protokol u steku Internet protokola je zadužen za podelu podataka u pakete, radi
slanja kroz mrežu i spajanje paketa u originalni podatak na računaru kome su podaci
upućeni?
5. Objasniti način kako paket upućen sa jednog računara na mreži može stići do drugog
računara na mreži? Koji protokol u steku protokola je zadužen za to?
6. Šta je TCP i na kom sloju ISO/OSI referentnog modela funkcioniše?
7. Šta je UDP i na kom sloju ISO/OSI referentnog modela funkcioniše?
8. Šta je IP i na kom sloju ISO/OSI referentnog modela funkcioniše?
9. Navesti protokole na višim slojevima ISO/OSI referentnog modela?
10. Navesti jedan protokol mrežnog sloja, jedan protokol transportnog sloja i bar tri
protokola aplikacionog sloja, kao i njihove osnovne funkcije.
11. Šta je IP adresa i kom sloju ISO/OSI referentnog modela se koristi?
12. Šta je simbolička adresa računara na mreži?
13. Kako se vrši prevođenje simboličke u IP adresu?
14. Šta je DNS server?
15. Šta je Web i koje su komponente Web-a?
16. Šta je Web server, a šta Web klijent?
17. Objasniti format URL.
18. Opisati korake u pristupu Web sajtu.
19. Šta je HTML i koji su njegovi osnovni elementi?
20. Šta se koristi za postizanje dinamike Web stranice u Web pretraživaču i interakciju
korisnika sa sadržajem Web stranice?
21. Kako se postiže dinamičko kreiranje Web stranica na osnovu zahteva klijenta?
22. Šta je XML i za šta se koristi?
23. Napisati URL adresu Web stranice ispit.htm koja se nalazi na folderu UR, na Web
serveru nastava na domenu Elektronskog fakulteta u Nišu. Objasniti šta se dešava kada
u Web pretraživaču (browser) unesete ovu adresu i pritisnete taster Enter.
1 3 . I N T E R N E T I W E B
221
24. Šta je IP adresa, a šta simbolička adresa? Navesti IP adresu računara čija adresa u
decimalno-tačkastoj notaciji iznosi 160.99.32.64..
25. Navesti i opisati načine za kreiranje HTML dokumenta (koji programi i na koji način
mogu kreirati HTML), i kako se taj HTML dokument prikazuje u pogodnom za
korisnika (kojim programom).
26. Kako se vrši prevođenje simboličke Internet adrese u IP adresu? Objasniti na primeru
simboličke adrese galeb.trezor.co.rs, koja se prevodi u IP adresu zapisanu u decimalno-
tačkastoj notaciji125.77.12.215.
27. Šta čini URL adresu resursa na Internetu i za šta ova adresa služi? Ako želite da
download-ujete datoteku slike.zip, sa foldera putovanje, sa file servera elektronskog
fakulteta u Nišu sa IP adresom 160.99.12.213, korišćenjem protokola za transfer
datoteka (ftp), kako bi ste napisali URL u Web pretraživaču? Objasniti.
28. Koja je funkcija softvera Web servera, a koja Web pretraživača i kako se u Web
pretraživaču specificira traženi resurs na serveru? Objasniti na primeru zahteva za
dobijanje datoteke rodjendan.gif sa foldera slike na računaru my_pc koji se nalazi na
domenu Elektronskog fakulteta u Nišu.
29. Napisati URL adresu Web stranice ispit.htm koja se nalazi na folderu UR, na Web
serveru nastava na domenu Elektronskog fakulteta u Nišu. Objasniti šta se dešava kada
u Web pretraživaču (browser-u) unesete ovu adresu i pritisnete taster Enter.
1 4 . S I G U R N O S T
223
14 RAČUNARSKA S IGURNOST
U današnje vreme, kada sve poslovne i sve veći broj privatnih aktivnosti obavljamo
korišćenjem računara, računarska sigurnost dobija sve više na značaju. Kompanije na
računarima čuvaju sve važne informacije za svoje poslovanje: tehničke (novi dizajn čipa ili
softver), komercijalne (marketinške planove), finansijske (strategije poslovnog razvoja) ili
pravne prirode (dokumente o potencijalnom preuzimanju). Na kućnim računarima takođe
su smeštene vredne informacije za njihove vlasnike: podaci o personalnim finansijama,
plaćanju računa i poreza, značajne prepiske putem e-maila, porodične fotografije i video
snimci. Kako je sve više i više ovih informacija smešteno na računarima, sve je značajnija
potreba za njihovom zaštitom i sigurnošću.
Mnoga preduzeća memorišu i, putem Interneta, šalju informacije tehničke prirode, ili
podatke o svojim kupcima i dobavljačima, čija je poverljivost od najveće važnosti za
njihovo poslovanje. Ilegalan pristup takvim informacijama može prouzrokovati značajne
finansijske gubitke ili štete druge vrste takvoj kompaniji. Takođe, elektronski servisi koje
kompanija obezbeđuje klijentima, ili drugim kompanijama, mogu biti nedostupni u dužem
vremenskom periodu, ili u periodu značajnom za obavljanje konkretnog posla, zbog napada
na sistem od strane zlonamernih osoba, ili zbog izazvanih otkaza sistema. Posledice takvih
događaja (finansijske prirode ili druge vrste) mogu biti katastrofalne za jednu kompaniju.
Takva kompanija može pretrpeti značajne gubitke zbog lošeg iskustva svojih klijenata, ili
zbog negativnog publiciteta koji su posledica napada na njegov računarski i informacioni
sistem. Takođe krađa poverljivih podataka (dokumenata, prepiski, fotografija) sa računara
može značajno da naruši ugled korisnika računara i nanese mu materijalnu i duševnu štetu.
14.1 Pretnje računarskoj sigurnosti
Sve pretnje za sigurnost računara, a posebno sigurnost informacija sačuvanih na
računaru, mogu se klasifikovati kao:
Pristup informacijama od strane neovlašćene osobe;
Neovlašćena promena i falsifikovanje informacija;
Brisanje i uništavanje informacija;
Nedostupnost informacija i servisa i nemogućnost pristupa od strane ovlašćene osobe;
Poricanje obavljene štetne akcije nad informacijama.
U V O D U R A Č U N A R S T V O
224
U skladu sa pretnjama i izazovima sigurnosti računarskh sistema, neophodno je razviti
metode i tehnologije računarske sigurnosti. U okviru NIST Computer Security Handbook5,
računarska sigurnost je definisana kao zaštita obezbeđena u okviru računarskih i
informacionih sistema u cilju postizanja integriteta, dostupnosti i poverljivosti resursa
računarskog i informacionog sistema, što uključuje hardver, softver, firmware,
informacije/podatke i komunikacije. Dakle osnovni ciljevi računarske sigurnosti su:
Poverljivost (eng. confidentiality) – uključuje poverljivost podataka i privatnost
korisnika i predstavlja zaštitu od otkrivanja tajnih i privatnih informacija/podataka od
strane neovlašćenih lica.
Integritet (eng. integrity) – obezbeđuje integritet podataka i programa, sprečavajući
neovlašćeno generisanje, promenu i uništenje podataka i programa. Integritet sistema
obezbeđuje da sistem obavlja sve svoje predviđene funkcije bez mogućnosti namerne
ili nenamerne, neovlašćene manipulacije sistemom.
Raspoloživost (dostupnost, eng. availability) – obezbeđenje da ovlašćeni korisnici
imaju pristup informacijama/podacima i funkcijama sistema u svakom trenutku, kad
god je potrebno.
Da bi računarski i informacioni sistem bili u potupnosti sigurni, definisana su i dva
dodatna cilja koji proširuju računarsku sigurnost:
Autentikacija (eng. authenticity) – obezbeđuje da se uvek poznaje identitet osobe koja
pristupa informacijama i servisima i da je korisnik sistema upravo taj za koga se izdaje. Odgovornost (eng. accountability) – sigurnosni cilj koji zahteva postojanje evidencije
u računarskom sistemu o aktivnostima konkretnog korisnika, tako da korisnik ne može
poreći aktivnosti u pristupu informacijama i servisima, niti uništiti dokaze o tim
aktivnostima.
Postoji mnogo načina narušavanja sigurnosti računara, softvera i informacija koji se na
njemu nalaze. Mnogi od njih se zasnivaju na korišćenju zlonamernog softvera (eng.
malicious software – malware). Ovaj softver se uglavnom prenosi na računar putem
računarske mreže, ili eksterne memorije i na njemu se izvršava. Eventualno ovaj softver se
može izvršavati na udaljenom račnaru i time uzrokovati svoje štetno delovanje na lokalnom
računaru. Primeri softvera koji se prenose na napadnut računar su virusi, crvi (eng. worms),
trojanski konji (eng. trojan horses), špijunski softver (eng. spyware), itd.
Računarski virus je softver koji „inficira“ računar tako što se priključuje nekoj
izvršnoj datoteci na računaru. Računarski virus se sistematski prenosi sa datoteke na
datoteku putem inficiranog memorijskog medijuma (CD, DVD, USB Flash), startovanjem
inficiranog programa ili otvaranjem inficirane datoteke u okviru programa. Zaražene
datoteke se daleko brže prenose računarskim mrežama, Internetom i e-mailom. Kada se
program „domaćin“ izvršava, takođe se izvršava i virus. Pri izvršavanju, mnogi virusi samo
pokušavaju da se „prikače“ na druge programe na računaru. Ali, većina njih pokreće i
izvršava neke štetne aktivnosti na računarskom sistemu, poput oštećenja dela operativnog
sistema, brisanja velikih delova sekundarne memorije ili oštećenja podataka, ili drugih
programa.
Crv je autonomni program koji se prenosi preko računarske mreže, smeštajući se na
određeni računar i šaljući sopstvene kopije na druge računare. Kao i u slučaju virusa, crv
5 http://csrc.nist.gov/publications/nistpubs/800-12/handbook.pdf
1 4 . S I G U R N O S T
225
može biti implementiran samo da replicira samog sebe, ili da izvrši mnogo štetniju
aktivnost. Karakteristična posledica izvršavanja crva je „eksplozija“ njegovih replika što
degradira performanse ostalih aplikacija i u krajnjoj liniji, velikim povećanjem mrežnog
saobraćaja, preopterećuje celokupnu računarsku mrežu. Jedan od prvih računarskh crva bio
je Morris worm, nazvan po svom kreatoru, studentu američkog Cornell univerziteta. On je
kreiran novembra 1988. godine i koristeći slabosti sigurnosnih mehanizama, kopirao samog
sebe na više od 10% računara koji su u to vreme činili Internet, uzrokujući velike probleme
u Internet komunikaciji.
Trojanski konj je program koji se instalira na računarski sistem kao poželjan program,
poput računarske igre, ili uslužnog softvera, i kao takav se dobrovoljno instalira od strane
„žrtve“. Kada se nađe na računaru, trojanski konj izvršava aktivnosti koje mogu imati
štetne efekte. Ove aktivnosti mogu početi odmah po instaliranju trojanskog konja, dok u
nekim slučajevima trojanski konj može biti „uspavan“, sve dok se ne aktivira specifičnim
događajem u računaru, na primer, dolaskom određenog datuma/vremena. Trojanski konji
često dolaze i kao prilozi uz „primamljive“ e-mail poruke. Kada se otvori prilog poruke
aktivira se trojanski konj i započinje svoje štetne aktivnosti. Dakle, nikada ne treba otvarati
priloge e-mail poruka dobijenih od nepozantih pošiljalaca.
Još jednu formu zlonamernog softvera čini tzv. špijunski softver (ponekad nazvan i
softver-njuškalo) koji predstavlja softver koji prikuplja informacije o aktivnostima na
računaru na kome je aktiviran i šalje te informacije putem računarske mreže inicijatoru
napada. Neke kompanije koriste špijunski softver u cilju generisanja profila korisnika, kao i
za zlonamerniju primenu, kao što je analiza simbola koje korisnik unosi preko tastature da
bi u njima prepoznao lozinke ili brojeve kreditnih kartica. Nasuprot pribavljanja ovih
informacija u tajnosti, tehnika „pecanja“ (phishing) označava pribavljanje ovih informacija
na eksplicitan način, pitanjem upućenim korisniku, na koja korisnik odgovara dobrovoljnim
davanjem ovih informacija. Sam naziv tehnike označava da je korisniku ponuđen „mamac“
u vidu primamljive ponude, ili dobornamerne poruke često upućene putem e-maila u
kojima se napadač predstavlja kao predstavnik finansijske insitucije, ili neke vladine
agencije koja od „žrtve“ traži poverljive informacije neophodne za određene legalne
potrebe.
Suprotno ovim internim infekcijama računara od strane virusa ili spyware-a, računar u
mreži može takođe biti napadnut od strane softvera koji se izvršava na drugim računarima u
mreži. Primer ovog napada je uskraćivanje servisa (eng. Denial of Service – DoS) koji
predstavlja proces „zatrpavanja“ računara porukama poslatim putem računarske mreže,
tako da takav računar ne može da obezbedi odgovarajuće usluge autorizovanim
korisnicima. Ovakvi napadi su uglavnom usmereni na velike komercijalne Web servere na
Internetu, kojima se vrši ometanje komercijalnih aktivnosti kompanije, ili se takva aktivnost
potpuno onemogućava. Napad uskraćivanja servisa nastaje generisanjem i slanjem velikog
broja poruka za kratko vreme. Da bi se to izvelo, napadač postavlja odgovarajući softver na
brojne računare na mreži koji ne izazivaju sumnju sigurnosnih mehanizama i koji, po
prijemu signala za početak napada, počinju da generešu i šalju veliki broj poruka ciljnom
računaru. Procenjeno je da, čim se računar poveže na Internet, barem jedan napadač će
probati da ga napadne, ili iskoristi za napad na druge računare u roku od 20-ak minuta.
Još jedan problem vezan sa velikom količinom neželjenih poruka je prijem neželjenih e-
mail poruka, nazvanih junk mail ili spam. Nasuprot napadu uskraćivanja servisa, količina
ovih poruka nije toliko velika da ugrozi rad računara, ali je u suštini efekat spam-a
„zatrpavanje“ korisnika računara. Spam je takođe široko zastupljen mehanizam za napade
U V O D U R A Č U N A R S T V O
226
pecanja i ubacivanja trojanskih konja putem kojih se omogućava širenje virusa i drugog
štetnog softvera.
14.2 Zaštita računara
Primarna tehnika zaštite računara predstavlja kontrola mrežnog saobraćaja koji prolazi
kroz određeni čvor u mreži. Ovo se obavlja specijalnim softverom koji se zove zaštitni zid
(eng. firewall). Zaštitni zid ima zadatak da štiti mrežu ili računar u mreži od mogućeg
štetnog pristupa iz eksterne mreže. On obavlja filtriranje potencijalno štetnog dolaznog i
odlaznog mrežnog saobraćaja u skladu sa definisanim parametrima zaštite. Na primer,
zaštitni zid može biti instaliran na mrežnom prolazu intraneta određene organizacije, tako
da filtrira sve poruke koje dolaze i odlaze iz te podmreže. Ovakav zaštitni zid može biti
konfigurisan da blokira sve poruke sa određenom ciljnom adresom, ili sve dolazne poruke
koje dolaze sa adrese računara koji je poznat kao problematičan u pogledu sigurnosti.
Zaštitni zid može biti korišćen i za zaštitu pojedinačnog računara, a ne samo podmreže i
domena, kakav je na primer Windows Firewall podešen na našim personalnim računarima
u okviru Windows Security Centra.
Neke varijacije zaštinih zidova su razvijene sa specijalnom namenom, na primer spam
filteri, koji predstavljaju zaštitne zidove namenjene blokiranju neželjenih e-mailova.
Mnogi spam filteri koriste sofisticirane tehnike da razlikuju poželjne od nepoželjnih e-mail-
ova. U procesu učenja, korisnik identifikuje spam poruke sve dok filter na osnovu ovih
primera ne počne samostalno da donosi odluke da li je primljena poruka spam ili ne.
Softver koji takođe obuhvata funkciju filtriranja mrežnog saobraćaja je i proxy server,
koji predstavlja posrednika između klijenta i servera. Uspostavljanjem proxy servera
računari klijenti u okviru računarske mreže neke organizacije bivaju zaštićeni od
potencijalno štetnog zadržaja i aktivnosti servera kome pristupaju. Organizacije obično
uspostavljaju proxy servere za važne Internet servise, poput FTP, HTTP, telnet, itd. Na taj
način, proxy server štiti intranet te organizacije i filtrira poruke upućene od strane servera
računarima-klijentima.
Značajan softver u zaštiti računara od mogućih napada na sigurnost informacija je i
anitvirusni softver, koji se koristi za detektovanje i uklanjanje poznatih virusa i drugih
štetnih softvera. Popularni atnivirusni softveri su ESET NOD32, AVG Antivirus,
Bitdefender Antivirus Plus, Kaspersky Anti-Virus, Avira Free AntiVirus, itd. Praktično,
antivirusni softver predstavlja široku kategoriju softvera namenjenih otkrivanju i uklanjanju
specifičnih vrsta inficiranja, virusima, spyware-om, itd. Budući da se nove vrste štetnog
softvera stalno stvaraju, antivirusni softver mora stalno da se ažurira i da download-uje
definicije novih virusa sa računara proizvođača softvera. Ali čak ni to ne garantuje potpunu
zaštitu: novi virus mora inficirati određeni broj računara pre nego što se otkrije i zaštita
protiv njega uključi u ažurnu bazu virusnih definicija od strane proizvođača anitvirusnog
softvera. Dakle, oprezan i mudar korisnik računara nikad ne otvara priloge e-mail poruka
dobijene od nepoznatih pošiljalaca, ne download-uje i instalira softver pre nego što dobije
potrvdu o njegovoj pouzdanosti, redovno ažurira antivirusni softver, jer se preko 200 virusa
otkrije svake nedelje, ne odgovara na „iskačuće“ reklame, ne ostavlja računar konektovan
na Internet kada takva konekcija nije potrebna i periodično pravi kopije svojih datoteka sa
podacima i programima.
1 4 . S I G U R N O S T
227
14.3 Kriptovanje i digitalni potpis
Dok je u nekim slučajevima cilj računarskog vandalizma onemogućavanje
funkcionisanja računara (kao u napadu uskraćivanja servisa), u drugim slučajevima
primarni cilj je obezbeđenje pristupa informacijama. Osnovni način zaštite informacija je
kontrola pristupa informacijama korišćenjem lozinke (eng. password). Međutim, lozinka
može biti otkrivena i od male je koristi kada se podaci prenose preko Interneta te su
dostupni nepoznatim korisnicima. U tim slučajevima koristi se kriptovanje podataka, tako
da iako oni dođu u posed zlonamernih korisnika, kriptovana informacija ostaje zaštićena.
Kriptovanje (šifrovanje) je postupak konvertovanja originalnih, čitljivih podataka u
neprepoznatljiv oblik koje niko osim primaoca ne može pročitati. Kriptovanje se obavlja u
cilju sprečavanja neovlašćenog pristupa od strane drugih lica. Kriptografija je istorijski
nastala pre nove ere na Egipatskim hijeroglifima, a kasnije je korišćena i u starom Rimu u
doba Julija Cezara gde je algoritmom kriptovanja svako slovo u poruci zamenjeno slovom
koje se nalazilo za određeni broj mesta pre ili posle njega u alfabetu. Namena kriptografije
je da zaštiti memorisanu informaciju bez obzira ako je neko pristupio podacima, kao i da
zaštiti prenetu informaciju bez obzira ako je prenos bio posmatran od strane neovlašćenog
lica. Osnovni element koji se koristi u kriptografiji naziva se kriptografski sistem, ili
algoritam kriptovanja. Svaki kriptografski sistem obuhvata par transformacija podataka,
koje se nazivaju kriptovanje i dekriptovanje. Kriptovanje je procedura koja transformiše
originalnu informaciju u kriptovane podatke. Dekriptovanje rekonstruiše originalnu
informaciju na osnovu algoritma kriptovanja i kriptografskog ključa. Šema kriptovanja
sadrži pet komponenti (Slika 14.1). 1) Tekst koji se kriptuje, 2) Algoritam kriptovanja, 3)
Ključ kriptovanja, 4) Kriptovani tekst, 5) Algoritam dekriptovanja.
Ključ = K Ključ = K-1
Kriptovan tekst
C
Originalni tekst
P
Originalni tekst
PPošiljalac Primalac
Kriptovanje Dekriptovanje
Slika 14.1 Šema kriptovanja
Algoritmi kriptovanja predstavljaju matematičke funkcije koje se koriste za kriptovanje
i dekriptovanje. Bezbednost ovih algoritama može da se zasniva na tajnosti algoritma (ovi
algoritmi su samo istorijski interesantni) ili na tajnosti ključa, pri čemu je algoritam poznat.
Kriptovanje je predstavljeno matematičkom funkcijom čiji izlaz zavisi od dva ulazna
parametra: originalne poruke koja se kriptuje (P) i ključa K. Rezultat kriptovanja je niz
naizgled nepovezanih simbola koji se mogu, bez straha od mogućnosti da poruka dođe u
neželjene ruke, prenositi do osobe kojoj je namenjena. Da bi kriptovanu poruku mogla da
koristi osoba kojoj je namenjena, potrebno je sprovesti obrnuti postupak od kriptovanja, a
to je dekriptovanje. Dekriptovanje je predstavljeno inverznom matematičkom funkcijom
čiji izlaz zavisi od dva ulazna parametra: kriptovane poruke (C) i ključa K-1
. Kao rezultat
primene ove funkcije dobija se originalna poruka. Minimalna i potrebna informacija koju
dve osobe moraju da dele, ako žele da razmenjuju podatke na siguran način, je skup
U V O D U R A Č U N A R S T V O
228
ključeva (K, K-1
). Prema odnosu ključeva K i K-1
, kriptografske algoritme i sisteme delimo
na simetrične i asimetrične. Simetrično kriptovanje je kriptovanje tajnim ključem, pri
čemu je ključ za kriptovanje identičan ključu za dekriptovanje, tj. K = K-1
. Dakle, u slučaju
simetričnog kriptovanja pošiljalac i primalac poruke koriste isti tajni ključ. Problem je
obezbeđenje sigurnog kanala za distribuciju tajnog ključa između pošiljaoca i primaoca.
Poznati algoritmi simetričnog kriptovanja su DES (Data Encryption Standard) sa ključem
dužine 56 bitova, Triple DES sa ključem dužine 168 bitova, i AES (Advanced Encryption
Standard) koji radi sa blokovima od po 128 bitova i koristi ključeve dužine 128, 192 i 256
bitova.
Asimetrično kriptovanje je kriptovanje javnim ključem. Svaki učesnik u komunikaciji
koristi dva ključa. Oba ključa su vezana za entitet (računar ili korisnika) koji treba da
dokaže svoj identitet, elektronski potpiše ili kriptuje podatke. Jedan ključ je javni i koristi
se za kriptovanje, dok je drugi tajni i koristi se za dekriptovanje. Tajni ključ je dostupan
samo vlasniku. Princip rada asimetričnog kriptovanja prikazan je na Slika 14.2.
Privatni
ključ B
Kriptovan tekst Originalni tekstOriginalni
tekstKriptovanje Dekriptovanje
Korisnik A Korisnik B
Javni
ključ B
Javni ključ je dostupan svima
Slika 14.2 Princip rada asimetričnog kriptovanja
Pored zaštite tajnosti podataka, asimetrično kriptovanje može da se koristi i za
autentikaciju pošiljaoca poruke. Pošiljalac kriptuje poruku svojim tajnim ključem, dok je
njegov javni ključ dostupan svima. Ako primalac uspešno dekriptuje poruku korišćenjem
tog javnog ključa, zna da je poruka poslata od strane pošiljaoca jer je kriptovana njegovim
tajnim ključem. Najpopularnija tehnologija i algoritam za asimterično kriptovanje je RSA
(Rivest-Shamir-Adleman). RSA je asimetrični algoritam kriptovanja koji koristi javni i
privatni ključ za kriptovanje i dekriptovanje podataka. Razvijen je na MIT univerzitetu
1977. godine, a patentiran je 1983. godine. RSA sistem je zasnovan na odgovarajućim
matematičkim operacijama i razvijen je na pretpostavci da je teško razložiti na činioce
velike brojeve koji su proizvod dva prosta broja. Ključevi u RSA algortimu su veličine od
1024 do 4096 bitova. RSA sistem za asimetrično kriptovanje i DES (ili neki drugi sistem za
simetrično kriptovanje) se obično koriste zajedno. Razlog tome je što je RSA relativno spor
za kriptovanje velikih blokova podataka, dok je DES pogodan za to. Računarski sistemi
koriste RSA da bi razmenili DES ključeve međusobno, a zatim koriste DES algoritam da
kriptuju blokove podataka. Ovakav protokol prepoznaje dve strane i omogućava sigurnu
razmenu ključeva. RSA je ugrađen u mnoge komunikacione protokole, programe za
kriptovanje (npr. PGP), kao i aplikacije, poput savremenih Web pretražvača Miscrosoft
Internet Explorer i Mozilla Firefox.
1 4 . S I G U R N O S T
229
Algoritmi asimetričnog kriptovanja, posebno RSA, koriste se i kod digitalnog potpisa.
Kao i kod svojeručnog potpisa, digitalni potpis treba da potvrdi autentičnost sadržaja
poruke i obezbedi garanciju identiteta pošiljaoca poruke. Digitalni potpis (eng. digital
signature, digital ID) predstavlja način autentikacije digitalnih informacija i kriptovan kôd
koji osobe, Web sajtovi ili kompanije pridružuju svojim elektronskim porukama da bi
obezbedili dokaz da su legitimni i poverljivi akteri u komunikaciji i da poruka/dokument
nije menjan tokom prenosa.
Proces digitalnog potpisivanja sastoji se od dva koraka. U prvom koraku vrši se
generisanje skraćenog prikaza (izvoda) poruke koja se potpisuje korišćenjem algoritma
heširanja i kriptovanje tog izvoda privatnim ključem pošiljaoca, što predstavlja njegov
digitalni potpis koji se pridružuje originalnoj poruci (Slika 14.3).
Heš funkcijaPrivatni
ključ A
Poruka
Korisnik A
Slanje
korisniku B
Izvod poruke KriptovanjeKriptovan
izvod
+
Poruka zajedno sa
kriptovanim izvodom
Slika 14.3 Postupak digitalnog potpisivanja
Da bi primalac digitalno potpisane poruke bio u mogućnosti da proveri digitalni potpis,
neophodan mu je pristup javnom ključu pošiljaoca, odnosno potpisnika. Proces verifikacije
poruke i digitalnog potpisa se odvija u sledećim koracima (Slika 14.4):
Digitalni potpis se dekriptuje pomoću javnog ključa pošiljaoca što kao rezultat daje
izvod poruke.
Nad poslatom porukom primalac primenjuje istu heš funkciju koju je primenio
pošiljalac i izračunava sada izvod poruke koju je primio.
Ukoliko je H1 = H2 to znači da je pošiljalac stvarni potpisnik podataka ili dokumenta,
kao i da podaci ili dokument nisu izmenjeni tokom procesa komunikacije.
Preduslov implementacije asimteričnog kriptovanja (kriptovanja javnim ključem),
odnosno ostvarenje neporecivosti, je jednoznačna veza između javnog ključa i njegovog
korisnika. Tačnije, primalac ne može da bude siguran da javni ključ koji ima pripada
korisniku sa kojim želi da razmeni poruke i koga inače ne poznaje. Kao sredstvo
ostvarivanja jednoznačne veze između javnog ključa i korisnika pojavljuju se digitalni
sertifikati. Digitalni sertifikat izdaje sertifikaciona organizacija (Symantec) i on uključuje
lične informacije korisnika, njegov javni ključ i podatke o sertifikatu kriptovane tajnim
ključem sertifikacione organizacije. Na taj način digitalni sertifikat pridružen poruci
obezbeđuje autentikaciju pošiljaoca poruke.
U V O D U R A Č U N A R S T V O
230
Heš funkcija
Javni
ključ A Korisnik B
Od
korisnika A
Izvod poruke
Dekriptovanje
Poruka zajedno sa
kriptovanim izvodom
Izvod poruke
Poređenje
Slika 14.4 Verifikacija digitalnog potpisa
Infrastruktura koja osigurava komponente neophodne za administraciju (izdavanje,
proveru) javnih ključeva i sertifikata naziva se Public Key Infrastrusture – PKI. Osnovna
komponenta PKI je Certification Authority (CA) sa funkcijama izdavanja, administriranja
i ukidanja sertifikata. Standard za digitalne sertifikate je X.509, a najveće CA kompanije su
Symantec, Comodo, Trend Micro, DigiCert, Entrust, GlobalSign, itd.
U današnje vreme, mnoge Internet aplikacije i protokoli su prošireni tehnikama
kriptovanja. Primeri su HTTPS kao sigurna verzija HTTP protokola, FTPS sigurna verzija
FTP i SSH kao sigurnosna zamena za telnet. U osnovi ovih proširenja je SSL (Secure
Socket Layer) protokol. Ovaj protokol funkcioniše na ISO/OSI sloju između aplikacionog
sloja i TCP protokola i uključuje servise sigurnosti. Svi računari u komunikaciji moraju
imati instaliran SSL; podatke kriptovane SSL-om pošiljaoca može dekriptovati samo SSL
protokol računara kome su podaci namenjeni.
Za obezbeđenje zaštite privatnosti komunikacije i kriptovanje prenošenih podataka
koristi se simetrična kriptografija (DES, RC4, itd.). Identitet strana u komunikaciji dokazuje
se upotrebom asimetrične kriptografije javnog i tajnog ključa (RSA, DSA, itd.). Pouzdanost
prenosa podataka i provera integriteta podataka obezbeđena je korišćenjem sigurnih hash
funkcija (SHA, MD5, itd.). Web adrese stranica sa Web servera na kojima je instaliran SSL
protokol počinju sa https, i imaju ikonu katanca u statusnoj liniji prozora Web pretraživača.
Prednost SSL protokola je što nije vezan za određeni informacioni servis (npr. WWW), već
se koristi kao dodatak između transportnog sloja (TCP) i aplikacionog sloja (HTTP,
FTP,...).
1 4 . S I G U R N O S T
231
Pitanja i zadaci
1. Koje su pretnje sigurnosti računara i informacija?
2. Navesti i objasniti osnovne principe sigurnosti.
3. Šta je kriptovanje?
4. Koji su tipovi algoritama kriptovanja?
5. Objasniti algoritam kriptovanja jedinstvenim tajnim ključem.
6. Objasniti asimetrični algoritam kriptovanja tajnim i javnim ključem.
7. Šta je SSL protokol?
8. Šta je digitalni potpis i na koji način se generiše?
9. Opisati sigurnu komunikaciju korišćenjem digitalnog potpisa.
10. Šta je digitalni sertifikat? Objasniti način njegove primene.
11. Šta je virus i koje su vrste virusa?
12. Šta su crvi, trojanski konji i spyware?
13. Koja je razlika između kriptovanja jedinstvenim tajnim ključem i asimetričnog
kriptovanja tajnim i javnim ključem?
14. Ako je korisnik A dobio poruku od korisnik B, kako može da zna da je poruku poslao
baš korisnik B i da poruka nije promenjena tokom prenosa kroz računarsku mrežu?
15. Objasniti kako je moguće da poruku kriptujemo javnim ključem (poznatom svima), a
da poruku može da pročita samo onaj kome je poruka upućena. Koji algoritam
kriptovanja primenjujemo u tom slučaju?
L I T E R A T U R A
233
LITERATURA
1. Glenn Brookshear, Computer Science: An Overview, 11th edition, Addison Wesley,
2011
2. Nell Dale, John Lewis, Computer Science Illuminated, 4th edition, Jones & Bartlett
Publishers, 2009
3. Greg Anderson, David Ferro, Robert Hilton, Connecting with Computer Science, 2nd
edition, Course Technology, 2010.
4. Živko Tošić, Osnovi računarske tehnike, Čuperak Plavi, Niš, 1994.