,,Skola mode I lepote“
SEMINARSKI RAD IZ INFORMATIKE
Tema:Hardver I softver.Odnos izmedju hardvera I softvera.
Profesor: Ucenik: Aleksandra Ristic I-2
HARDVER I SOFTVERDva su osnovna pojma koja se sreću u oblasti računarstva:
Hardver (engl. hardware) i softver (engl. software).
Pojam hardver (u nasem jeziku se koristi i izraz tehnicka podrska) odnosi se na
opremu koja predstavlja fizicku (materijainu) realizaciju bilo kog sistema koji
obavlja odredene funkcije. Odnosi se, na merne uređaje, magnetske medijume,
elektronske komponente, linije za vezu opremu. Hardver predstavlja, dakle fizicke
komponente koje je potrebno instalirati i uključiti da bi računar proradio.
Pojam softver odnosi se na sveukupnost instrukcija, programa i procedura koji se
generiše, aktivira i koristi na raznorazne načine da bi omogućio hardveru da
realizuje žeijene poslove. Softver se sastoji od podataka smeštenih na magnetnim
medijumima u elektronskim memorijama itd. Digitaini računar rešava zadatak tako
što je prethodno "programiran", posebno za njega razvijenim softverom.
Prvi računari programirani su tako da su pravljene liste instrukcija pisanih u
binarnom kodu koje su u memoriju računara prenosene korišćenjem tastature
teleprintera ill bušene papirne trake. Pisanje ovakvih programa u takozvanom
internom jeziku računara bilo je veoma teško i zametno, posebno je bilo teško
otkrivanje i korigovanje grešaka u programima. Danas programeri pišu programe
na jezicima koji su veoma slični prirodnom jeziku, to naredbe su viši 2 programa u
memoriju rai algoritamski programski čunara. jezici. Programeri direktno upisuju
Posebni programi naredbe viših programskih jezika, prevode na interni mašinski
jezik računara. Posebnu klasu ovih programa čine asembleri (engl. assembler),
zatim prevodioci ili kompajleri (engl. compiler), interpreteri, pa se u torm
smislu govori o asemblerskim, kompajlerskim i interpreterskim jezicima.
Hardver i softver udruženi čine računarski sistem. Razvoj računarskih sistema
uslovljen je razvojem i hardvera i softvera.
ORGANIZACIJA HARDVERA RAČUNARA
Organizacija racunara prema Von Neumann-ovom konceptu (Von Neumann-ov
automat) predstavljena je na slid 1.3.1. Prema ovom konceptu racunar se sastoji
od cetiri osnovne jedinice:
- aritmeticka jedinica,
- memorijska jedinica,
- upravljacka jedinica i
- ulazno-izlazna (U/l) jedinica.
2 Naredba je element programa pisanog u visem programskom jeziku i po
pravilu se prevodi tako da jednoj naredbi odgovara vise instrukcija.
D. Obradović OSNOVI RA: ČUNARSTVA
ARITMETIČKO LOGIČKA JEDINICA
UPRAVLJAČKA JEDINICA
MEMORIJSKAJEDINICA
ULAZNOIZLAZNA JEDINICA
U-I P
Specifičnost svakog računara čine elektronske komponente, njihova logička
povezanost, kao i njihovo funkcionisanje. Ove specifi3, način pristupa podacima u
memoriji, tipove i vrste raspoloživih čnosti obuhvataju oblike
i dužinu reči operacija, način i mogućnosti provere računskih
gresaka, itd.
U/l jedinica može da omogući serijski (bit po bit) ili paraleini (svi bitovi odednom)
prenos podataka odnosno instrukcija. Broj raspolozivih instrukcija (koji se jos
naziva i repertoar instrukcija) u velikoj meri zavisi od vrste i tipa računara. Do
kraja 60-tih godina organizacija upravljačke jedinice zavisila je od repertoara
instrukcija.
Novijom primenom koncepta mikroprogramiranja omogućeno je da se operacija
(instrukcija) formira od skupa elementarnih operacija nazvanih mikrooperacije
(čiji se binarni kodovi nazivaju mikroinstrukcije). Mikroprogrami predstavljaju
skup mikroinstrukcija i za izvršenje se smestaju u upravljacku memoriju. Na
ovaj nacin repertoar instrukcija kod računara sa mikroprogramiranjem može se
jednostavno menjati dopisivanjem novih mikroprograma.
Aritmetička jedinica obezbeđuje izvršavanje operacija (kao što su sabiranje i
oduzimanje brojeva, poredenje, pomeranje brojeva u levo i desno, množenje i
delenje itd.). Složenije operacije (kao npr. korenovanje, stepenovanje, itd.)
izvršavaju se kombinacijom više operacija čije se izvršavanje odvija pod
kontrolom programa.
Memorijska jedinica služi da se u nju upisuju i pamte (memorišu) i podaci i
instrukcije od kojih se sastoji program. Da bi se neki program mogao izvršiti mora
se najpre smestiti u memoriju računara. Isto tako i podaci koji se obraduju smeštaju
se u memoriju računara.
Upravljačka jedinica upravlja pojedinim koracima u obradi podataka i to na
osnovu informacija sadržanih u instrukciji koju upravljačka jedinica zahvata iz
memoiije računara. Upravljačka jedinica brine da se svaki predviđeni detalj obrade
odvija na korektan način obezbeđujući sinhronizovan rad U/l jedinice, memorije i
aritmetičke jedinice.
U/l jedinice računara omogućavaju razmenu poruka izmedu računara i spoljnog
sveta. Naime, pre nego što se priđe izvršavanju programa potrebno je da se
instrukcije od kojih se sastoji program kao i odgovarajuci podaci učitaju u
memoriju računara. Posle završetka obrade podataka neophodno je da se dobijeni
rezultati saopšte korisniku. Ove operacije omogućavaju U/I jedinice. 3 Reč predstavlja niz bita (nula i jedinica). Dužina reči je broj bita koji je
sačinjavaju.
ORGANIZACIJA HARDVERA
Poslednjih decenija je pojam "elektronska računska mašina" zamenjen pojmom
"računarski sistem". Sama ova smena pojmova nagoveštava odredene promene u
izgradnji računara. U prve dve generacije računari su u organizacionom smislu
projektovani prema blok-semi prikazanoj na prethodnoj slici. Da bi se podaci i
programi uvodili u memoriju računara, ili rezultati obrade prikazivali korisniku
najpre su kao U/l jedinice korišćeni jednostavni uredaji (kao sto je operaterska
konzola sa sistemom prekidaca i signalnim sijalicama, kao i jednostavne električne
pisaće mašine ili teleprinteri). Ovakva elektronska računska mašina evoluirala je u
računarski sistem kada joj je pridodat niz podsistema koji su omogućili rešavanje
veiikog broja problema, a ne samo izvršavanje odredenog niza računskih operacija.
Ovakvi računarski sistemi postali su sistemi opste namene, za razliku od prvih
računara koji su imali specificnu namenu. Ovu evoluciju omogućili su:
- povećanje propusne moći računara,
- povećanje broja i vrsta U/l jedinica koje rade u direktnoj vezi (engl. on-
line) ili na indirektan (engl. off-line) način i razvoj jedinica masovnih
memorija (magnetske trake i diskovi, magnetski bubnjevi).
- baferovanje ulazno/izlaznih podataka dozvoljavajući istovremeno uvodenje
u memoriju računara ili izvođenje podataka iz memorije računara - različitih
skupova ulazno/izlaznih podataka uz istovremeno izvršavanje programa od
strane procesora.
Na bazi ovih promena opšta funkcionalna blok-šema savremenog računara postaje kao što je to prikazano na narednim dvema slikama 5.
CENTRALNIPROCESOR
ULAZNO/IZLAZNI PROCESOR
ULAZNO/IZLAZNI PROCESOR
ULAZNO/IZLAZNIPROCESOR
ULAZNO/IZLAZNI PROCESOR
. . .
. . .
Ujedinica
periferijskejedinice( )UJPJ
pravljačka Ujedinica
periferijske jedinice
) UJPJ (
pravljačka
OPERATIVNAMEMORIJA
RAM
Slika 2. Blok šema savremenog računara sa pojedinačnim magistralama
Periferijske jedinice (ili ponekad nazvane spoljnje jedinice) računarskog sistema
služže za čuvanje velikog broja podataka ili biblioteka (sistemskih i/ili
aplikacionih) programa, kao i za komunikaciju izmedu računarskog sistema i
okruženja. Periferijske jedinice masovne memorije (jedinice magnetskih traka,
magnetskih diskova itd.), ulazne jedinice (tastature, opticki citaci, citaci bušenih
papirnih traka i bušenih papirnih kartica, itd.) i izlazne jedinice (videoekrani,
štampači, crtači krivih linija, itd.).
Centraini deo računara čine procesor, operativna memorija i U/l procesori.
Odmah računarskog sistema sa velikim brojem znatno sporijih (od se uočava
problem interakcije centralnog, veoma 1 3 do brzog, 106 puta) dela
0
periferijskih jedinica. Ukoliko bi procesor, obraćajući se periferijskoj jedinici,
čekao da periferijska jedinica završi predviđenu operaciju brzinu rada računarskog
sistema bi u potpunosti određivale periferijske jedinice. Za efikasan rad
PROCESORUpravljačka
jedinicamemorije
Zajednička magistrala
Upravljačka jedinica
periferne jedinice
Upravljačka jedinica
komunikacija
PERIFERIJSKE JEDINICE
OPERATIVNAMEMORIJA
Slika 2. Blok šema savremenog računara sa zajedničkom magistralom
računarskog sistema nameće se potreba paralelnog rada periferijskih jedinica jedne
u odnosu na drugu kao i u odnosu na procesor. Ovakav način rada omogucavaju
U/l procesori (U/l kanali) kao i sistem prekidanja (engl. interrupt) programa.
Dva su osnovna tipa U/l kanala: (a) multipleksni i (b) selektorski. Veza izmedu
jednog tipa periferijskih jedinica i kanala ostvaruje se preko upravljačke jedince
(kontrolera, adaptera) periferijskih jedinica. Multipleksni kanal namenjen je
opsiuživanju sporijih periferijskih jedinica (štampaci itd.), dok je selektorski kanal
namenjen opsluživanju brzih periferijskih jedinica (magnetske trake, magnetski
diskovi, itd.).
Ako u procesu obrade podataka dođe do potrebe da se koristi neka periferijska
jedinica (npr. potrebno je štampati rezultate obrade) procesor aktivira odgovarajuci
U/l kanal i snabdeva ga potrebnim informacijama. U/l kanal samostaino izvrsava
datu U/l operaciju, a procesor se oslobada za izvrsavanje drugih poslova. Po
zavrsetku U/l operacije U/l kanal generise signal prekida obavestavajuci procesor
o zavrsetku U/l operacije. Na bazi ovog signala (i drugih signala prekida koji se
pojavljuju u računarskom sistemu) procesor odiucuje o nastavku izvršavanja datog
programa za čije je potrebe vrsena U/l operacija. Kao rezultat ovakvog resenja
dolazi do toga da je procesor kao najbrža jedinica (radi tipično u donjem delu
nanosekundskog područja) neprekidno zaposlen što u znatnoj meri povećava
propusnu moc računarskog sistema.
Memorija računarskih sistema ima istu namenu kao i memorija računske mašine
prikazane na slid 1. Medutim kod savremenih računara memorija je hijerarhijski
organizovana po brzinama i kapacitetima. Obično se razlikuju tri osnovna
hijerarhijaska nivoa: (a) ultrabrza memorija, (b) operativna (glavna, primarna)
memorija i (c) masovna (spoljna) memorija.
Ultra brza memorija je velike brzine i relativno malog kapaciteta. Namenjena je
za ubrzanje rada procesora i obično ulazi u sastav procesora. Operativna
memorija čuva programe i odgovarajuće podatke koje procesor neposredno
obrađuje. Znatno je većeg kapaciteta (i do milion puta) od ultrabrze memorije, ali
je i znatno sporija (desetak puta). Masovna memorija je znatno većeg kapaciteta
(i preko nekoliko desetina miliona puta) i znatno sporija (i preko hiljadu puta) od
operativne memorije. Namenjena je da čuva programe i podatke, koji će kasnije
biti potrebni u procesu obrade i ulazi u sastav periferijskih jedinica.
Često se kod savremenih računara izdvaja i posebna memorija nazvana
upravljacka memorija. Ova memorija je po pravilu stalna memorija (njen sadrzaj
se moze samo čitati ali se pod normalnim uslovima ne moze menjati) i namenjena
je za čuvanje dela upravljačkih programa.
S obzirom da se često javlja potreba za prilagodavanjem brzina različitih uredaja
koji međusobno razmenjuju podatke (npr. periferijska jedinica i procesor) kao
poseban hijerarhijski nivo često se uvodi bafer memorija. Bafer memorija se po
pravilu realizuje kao deo operativne memorije namenjen za U/l operacije.
ORGANIZACIJA SOFTVERA
Treba odmah napomenuti da je organizacija softvera znatno slozenija od
organizacije hardvera. To mozemo ilustrovati i cinjenicom da broj elementarnih
logickih kola retko prelazi broj od 100 000 i kod najvecih racunarskih sistema, dok
je tipican broj logickih kola od nekoliko hiljada do nekoliko preko 10 5desetina
instrukcija. Dalje, broj funkcija koje realizuje softver mnogostruko hiljada.
Sistemska programska podrska sadrzi tipično prevazilazi broj funkcija koje
realizuje hardver.
Razvojem organizacije hardvera razvijao se i softver racunarskih sistema. Tako su
racunari prve generacije programirani u asemblerskom jeziku, sa mogucnoscu
koriscenja potprograma i elementarnim usiuznim programima. U drugoj generaciji
se vec koriste visi programski jezici (FORTRAN, COBOL, ALGOL, PASCAL),
zatim se javljaju asembleri sa makroinstrukcijama, pocinje i razvoj sistemskih
programa (prvenstveno monitora, preteca savremenih operativnih sistema). Trecu
generaciju karakterise razvoj mnostva programskih jezika i sistemskih programa u
danasnjem smislu te reci.
Upravljacki deo sistemskih programa tipicno obuhvata:
1. Upravljanje prekidima,
2. Raspodelu resursa,
3. Lansiranje programa,
4. Upravljanje U/l operacijama, 5. Obradu i Upravljanje greskama.
Drugu veliku grupu sistemskih programa čine programski sistemi za programiranje
namenjeni za obezbedenje pripreme programa, kako bi se korisniku računarskog
sistema pojednostavio posao pri rešavanju problema primenom računara. To se
ostvaruje primenom viših programskih jezika i odgovarajućih prevodilaca sa tih
jezika na interni mašinski jezik, zatim korišćenjem biblioteka standardnih
programa, kao i delom usiužnih programa (kao sto su programi za sortiranje
podataka i sl.)
Od pocetka sezdesetih godina dolazi do bitne izmene u organizaciji racunara (o
cemu ce biti reci nesto kasnije). Naime, aritmeticka jedinica i upravljacka jedinica
udruzuju se u jednu jedinicu nazvanu procesor, uvodi se nova jedinica nazvana
U/I procesor, uvodi se nekoliko hijerarhijskih nivoa memorije (ultrabrza,
operativna i masovna memorija), a racunar se globaino sastoji od centralnog
dela (procesor sa ultrabrzom memorijom, U/i procesor i operativna memorija) i
periferijskog dela (U/I jedinice, masovna memorija itd.).
SOFTVERSKE KARAKTERISTIKE RAČUNARA
Kao sto smo to vec napomenuli, pojam softver odnosi se na sveukupnost
raspolozivih programa, kako za resavanje specijalnih problema, tako i onih pisanih
za efikasno koriscenje racunarskog sistema, za pojednostavljivanje programiranja i
za odrzavanje samog racunarskog sistema. Razvoju softvera poslednjih godina se
poklanja narocita paznja, pa cemo se sada upoznati sa osnovnim pojmovima
vezanim za softver.
Sa pojmom masinski jezik vec smo se upoznali. Naime, masinski jezik vezan je sa
predstavljanjem informacija pomocu reci sastavijenih od slova binarnog alfabeta
koje procesor moze direktno interpretirati koristeci ugradenu (hardversku) logiku.
S obzirom da se alfabet procesora sastoji od dva slova koje usiovno oznacavamo sa
"0" i "1" to je za coveka veoma tesko da se reci sastavljene od ovih slova (kodovi)
nauce. Medutim, za rad procesora neophodno je da programi budu u masinskom
jeziku.
Iz navedenih razloga, programer obicno pise svoje programe koristeci se
simbolima koji su veoma slicni simbolima iz prirodnog jezika (obicno engleskog
jezika). Ovi programi se nazivaju izvorni programi (engl. source program). U ovu
svrhu programer koristi asembierske ill vise programske jezike. Ovako napisan
program smesta se najpre na masovnu memoriju, a zatim se u cilju prevodenja na
masinski jezik skupa sa programom prevodiocem unosi u operativnu memoriju
racunara. Ovako pripremljeni programi (ili njihovi segmenti nazvani i
potprogrami) mogu da se ukljuce u softversku (programsku) biblioteku racunara.
Programi pripremljeni za racunar mogu se pogodno svrstati u sledece grupe: -
aplikacioni program!, - sistemski programi.
Aplikacioni programi predstavljaju skup programa koje obicno razvijaju korisnici
(cesto se nazivaju i korisnicki programi ili programi korisnika) racunarskih
sistema za resavanje svojih specificnih problema.
Sistemski programi se odnose na programe za organizaciju i upravljanje
procesima rada racunarskog sistema (cesto nazvani i upravljacki programi) i
automatizaciju procesa programiranja. U upravljacke programe spadaju operativni
sistemi, koji imaju za zadatak upravljanje radom racunarskog sistema, obezbedenja
komunikacija izmedu centralnog dela racunara i periferijskih jedinica u koju svrhu
pozivaju usiuzne programe koji su namenjeni za obavljanje brojnih specificnih
poslova (kao sto su ispitivanje stanja racunarskog sistema, upravljanje radom
periferijskih Jedinica, uprav!janje podacima i sl,).
U sistemske programe spadaju i programi simulator), koji omogucavaju
softversku simulaciju jednog racunarskog na drugom racunarskom sistemu (za
razliku od emulatora gde se na jednom racunarskom sistemu vrsi simulacija drugog
racunarskog sistema hardverskim putem).
U sistemske programe takode spadaju i programski sistemi za programiranje gde
spadaju programi asembleri, prevodioci i interpreteri. Kao sto smo to vec
napomenuli oni predstavljaju familiju programa koji izvorne programe prevode na
masinski jezik racunara. Ovde je od interesa nagiasiti razliku izmedu asemblera i
kompaji&ra odnosno interpretera. Asembler se po pravilu razvija za dati racunarski
sistern i sluzi da jednL:
naredbu iz asemblerskog jezika prevede u Jednu instrukciju masinskog jezika. 2a
raziiku od asemblera prevodilac i interpreter, po pravilu, za jednu naredbu
napisanu u visern programskom jeziku generisu vise instrukcija masinskog jezika.
Prevodilac i interpreter se razlikuju po tome sto prevodilac na interni masinski
jezik prevodi dlav program, pa se tek onda pristupa izvrsavanju programa, dok
interpreter prevodi jednu naredbu iz viseg programskog jezika na niz instrukcija
masinskog jezika, pristupa izvrsavanju ovih instrukcija, potom prelazi na
prevodenje i izvrsavanje sledece naredbe. Bitna karaktenstika prevodilaca i
interpretera sastoji se u tome sto su oni, po pravilu, nezavisni od tipa racunarskog
sistema, tako da kad se programiranje nauci r,a jednom programskom jeziku, uz
neznatne izrnene, mogu se pisati program; za biio koji racunarski sistem, koji
poseduje prevodilac/interpreter za dati programski jezik.
Sa tacke gledista racunarskog sistema programiranje u asemblerskom jeziku irna
odredene prednosti u odnosu na programiranje u visim programskim jezidma.
Naime, prevodilac/interpreter generise obicno vise programskih koraka nego sto je
to minimaino potrebno, pa je za programe pisane u visem programskom jeziku
potrebno vise memorijskog prostora i vise vremena za obradu nego za programe
pisane u asemblerskom jeziku. Medutim, sa aspekta korisnika visi programski
jezici su zriatno pogodniji s obzirom da se za pisanje programa i njihovu proveru
zahteva neuporedivo manje vremena nego za programe pisane u asemblerskom
jeziku (u sto cemo se uveiiti kasnije).