CS111 - Lesson 1 - Lecture Book
Reč ''binarno'' znači "dva stanja". Ova dva stanja se nekad označavaju sa ''0 i 1''; ponekad sa ''tačno i netačno'' ili ''uključeno i isključeno''. Najvažnija karakteristika svakog binarnog uređaja je da on može imati dva stanja.
Bit je signal, odnosno najmanji element programa koji može imati samo dve vrednosti: 'uključeno/isključeno'' ili 1 ili 0.
Zamislite prekidač za svetlo. Taj prekidač možete samo uključiti ili isključiti. Prekidač znači nosi jedan bit informacija.
Prekidač sa postepenim podešavanjima nije binarni uređaj. On ima više položaja koji se nalaze između uključenog i isključenog.
Prekidač za paljenje nekog automobila je diskretan. On ima konačan broj stanja, ali je to obično više od dva stanja. Dugme na kalkulatoru je binarni uređaj. Ono može biti u stanju uključeno ili isključeno. Kada pritisnete dugme, ono je u stanju uključeno. Kada otpustite dugme, ono se vraća u stanje isključeno.
Zašto se koriste binarni signali? Neki od razloga su:
1. Jednostavni, laki za izradu
Prekidač za uključivanje i isključivanje se lako pravi. Takav prekidač spaja ili odvaja dva metalna dela.
Slika 2 Vrednosti bita: »ukljućeno« ili »isključeno«
Ako biste želeli da napravite prekidač koji bi postepeno menjao jačinu svetla, to bi bilo mnogo teže za rad, utoliko što bi takav prekidač morao da ima i više delova.
Isto važi i za silikonski čip. Prekidači sa samo dva stanja se relativno lako prave. To znači da su uređaji mali, jeftini i pouzdani, tako da se milioni njih mogu staviti na mali prostor.
2. Nedvosmisleni signali
Godine 1775., kada su se Amerikanci borili za nezavisnost, Pol Revere je čekao na vesti o tome da li Englezi dolaze kopnom ili morem. O tome je trebalo da izvesti Vrhovnu komandu. Signal je trebalo da dođe preko svetionika. Zamislite da je dogovoreno da signal bude sledeći:
1.32456, ako dolaze kopnom i 1.71922, ako dolaze morem.
Signal je došao, ali glasnik čeka nekoliko sati dok se precizno ne otkrije šta je javljeno, odnosno koliko je jak bio svetlosni signal. Dvosmislenost signala može biti veliki problem. Dogovoreni signal koji je čekao Pol Revere je bio: jedan signal za dolazak kopnom, a dva – za dolazak morem. Takav signal se lako interpretirao. On je trebalo samo da izbroji. Ovakvi signali su diskretni, pošto imaju fiksni broj konačnih stanja.
Analogni signal kontinuirano menja svoju vrednost. Ovakav signal može imati bilo koju vrednost u nekom opsegu. Ovo je ilustrovano na sledećoj slici:
Slika 3 Promena vrednosti kontinualnog signala – analogni dijagram
Ovo je zvučni signal. Vrednost u nekom trenutku morate čitati sa dijagrama.
Sa druge strane, ako posmatramo samo voltažu, možemo ovo iskazati i na sledeći način: Vrednosti ispod nekog praga se smatraju signalom 0, a vrednosti iznad – smatraju se signalom 1.
Analogni signali kontinuirano menjaju vrednost. Ako se uvede prag, analogni signali se mogu predstaviti kao binarni podaci. Ovo je lako i brzo, tako da elektronika, (a i ljudi) mogu lako da odrede da li je voltaža iznad ili ispod nekog praga. Na sledećoj slici je prikazan signal ovog tipa.
Slika 4 Digitaliziran dijagram iz analognog dijagrama na slici 3
3. Mogu se napraviti besprekorne kopije
Na kraju na kojem se prima signal - zainteresovani smo samo za binarne vrednosti. Sve što treba uraditi je da se proveri da li je signal iznad ili ispod praga. Ovo se može uraditi savršeno precizno.
Slika 5 Rekonstrukcija idealnog digitaliziranog dijagrama
Originalni signal je besprekorno rekonstruisan. Taj proces se može ponoviti onoliko puta koliko je potrebno, pri čemu se svaki put dobija savršena kopija. Za računarske sisteme ovo je vrlo bitno. Razlog je što se kod računara šabloni sa bit-ovima stalno prebacuju od procesora do memorije i obrnuto. Ovo se dešava i po milion puta u sekundi. Te kopije moraju biti savršene.
4. Binarnim signalom se može predstaviti bilo šta.
Sve što se može predstaviti nekim obrascem, može se predstaviti obrascem bit-ova.
Ideja je da se bilo koji sistem simbola može prevesti u obrazac sa bit-ovima. Pogledajmo na primer, kako se karakteri predstavljaju preko obrazaca od osam bit-ova. Sporazum o tome šta obrazac predstavlja se naziva ASCII. Hardver i softver računara prate ovaj sporazum kada su u pitanju tekstualni podaci. Drugi tipovi podataka se predstavljaju na drugi način.
Japanski i kineski karakteri se takođe prebacuju u obrasce bit-ova, a računari mogu da njima manipulišu podjednako lako kao da je reč o engleskim slovima. Tada se koristi sporazum nazvan UNICODE, koji karaktere predstavlja preko 16 bit-ova (ASCII to radi preko 8 bit-ova). Na primer, karakter je preko bit-ova predstavljen kao 111110011111110.
Ove karakteristike binarnih signala je prvi predstavio Klod Šanon. Njegov rad iz 1948. godine, pod naslovom ’’Matematička teorija komunikacija’’, predstavlja osnovu informatičkih teorija i računarskih nauka.
Bajt-ovi
Jedan bit informacija je toliko mali da se memorija računara obično organizuje u grupe od po osam bit-ova. Osam bit-ova čine jedan bajt. Kada je za neke podatke potrebno više od osam bitova koristi se ceo broj bajt-ova. Jedan bajt je otprilike dovoljno memorije za skladištenje jednog karaktera.
Za podatke je često potrebno imati na raspolaganju hiljade, milione ili milijarde bajtova. Veće jedinice od jednog bajta se izražavaju kao umnošci stepena broja 2.
Ime |
Broj bajtova |
Stepen broja 2 |
bajt |
1 |
20 |
kilobajt |
1024 |
210 |
megabajt |
1,048,576 |
220 |
gigabajt |
1,073,741,824 |
230 |
terabajt |
1,099,511,627,776 |
240 |
Glavna memorija se sastoji od dugačke liste bajtova. Kod većine modernih računara, svaki bajt ima adresu koja se koristi da bi se on pronašao. Na sledećoj slici je prikazan deo glavne memorije.
Slika 6 Glavna memorija sa adresama memorijskih lokacija
Svaki pravougaonik na ovoj slici predstavlja jedan bajt. Svaki bajt ima adresu. Adrese su, na ovoj slici, celi brojevi sa leve strane. Adrese na većini računara počinju od 0 i rastu naviše sve dok svaki bajt ne dobije adresu.
Adresa nekog bajta nije deo njegovog sadržaja. Kada je procesoru potrebno da pristupi određenom bajtu, računar zna kako da u memoriji pronađe taj bajt.
Procesor može da čita ili piše nove bajtove na određenoj memorijskoj lokaciji. U istom trenutku može da čita ili piše veći broj bajtova. Ako se kaže da je neki procesor 64-bitni, to znači da on u istom trenutku može da piše ili čita 64/8=8 bajtova.
Programi i memorija
Tokom rada procesor stalno upisuje nove podatke i čita postojeće. Program tokom rada ima deo memorije koji koristi. Ako program, na primer, sabira brojeve, onda će se i suma naći u glavnoj memoriji (verovatno će se upotrebiti nekoliko bajtova). Kako se sumi budu dodavali novi brojevi, suma će se menjati, a samim tim se menja i glavna memorija.
Drugi delovi glavne memorije se možda neće menjati; na primer, instrukcije koje čine program se obično ne menjaju tokom rada programa. Instrukcije se takođe nalaze u glavnoj memoriji, ali se ove lokacije ne menjaju.
Kada u nekom programskom jeziku pišete program, niste Vi taj koji brine o memorijskim lokacijama i njihovom sadržaju. O tome automatski brine programski jezik (Java, C) u kojem je program pisan. Cilj programskog jezika višeg nivoa, kao što je Java, upravo je da male elektronske operacije organizuje u veće jedinice predstavljene iskazima programskog jezika.
Mašinske instrukcije
Korisnici i programeri obično ne razmišljaju o milionima elektronskih operacija koje se dešavaju svake sekunde. Situacija je slična sa vožnjom automobila. Tokom vožnje razmišljate o velikim operacijama, kao što su - ubrzati, skrenuti levo i sl. Ne razmišljate o delovima automobila i o tome kako oni funkcionišu.
Jedna elektronska operacija koju procesor izvodi se naziva mašinskom operacijom. Procesor u jednom trenutku obavlja jednu operaciju, ali u jednoj sekundi izvodi milione takvih operacija.
Mašinska instrukcija se sastoji od nekoliko bajtova u memoriji koji procesoru govore da obavi jednu mašinsku operaciju. Procesor pronalazi mašinske instrukcije u glavnoj memoriji i izvršava ih sekvencijalno. Skup mašinskih instrukcija u glavnoj memoriji računara naziva se izvršnim programom.
Program pisan u mašinskom jeziku predstavlja niz mašinskih instrukcija koje se nalaze u glavnoj memoriji računara. Jedan program sadrži milione mašinskih instrukcija.