sisteme shfrytezimi moderne
DESCRIPTION
Modern Operating Systems ShqipTRANSCRIPT
-
KAPITULLI I
HYRJE
Nj sistem modern kompjuteri prbehet nga nj ose me shume proesore, memorje
qendrore, disqe, printera, nj tastjere, nj monitor, nderfaqe network dhe pajisje t tjera
hyrese/dalese (input/output). E thene ndryshe nj sistem sht shume i komplikuar. Pr t
shkruar programe qe ndjekin dhe prdorin t gjitha keto komponent sht vertet nj
pune shume e veshtire. Pr ket arsye komjuterat jane t pajisur me nj shtrese software-i
qe quhet sistem operativ, detyra e t cilit sht t menaxhoje t gjitha keto pajisje (device)
dhe t siguroj programeve t prdoruesit nj nderfaqe me t thjesht me hardware-in. Pra
subjekti i ketij libri jane pikerisht keto sisteme.
Ne fig.1.1 tregohet menyra e vendosjes ne nj sistem operativ. Ne fund kemi hardware-
in, i cili ne shumicen e rasteve ka dy ose me shume nivele (shtresa). Ne nivelin me t ulet
jane pajisjet fizike, t cilat prbehen nga qarqe t integruara chip-esh, tela (wires), tuba
me reze katodike dhe pajisje t tjera t ngjashme me keto. Menyra e konstruktimit dhe e
punimit t tyre sht pune e inxhinierit elektrik.
Ne nivelin pasardhes kemi mikro arkitekturen, ne t cilen pajisjet fizike grupohen
pr t formuar njsi funksionale. Ky nivel prmban disa regjistra brenda ne CPU dhe nj
rruge kalimi t dhenash (data path) qe prfshin nj njsi arithmetike llogjike (ALU-
Arithmetic Logic Unit). Ne do cikel clock-u merren dy operanda nga regjistrat dhe me
to kryhen veprime ne ALU. Rezultati ruhet ne nj ose me shume regjistra. Ne disa
makina, menyra e operimit t data path-it kontrollohet nga nj software i quajtur
mikroprogram. Ne makina t tjera kontrollohet nga qarqe hardware-ike.
( Figure 1.1.Nj system llogarits)
P ajis jet F izike
M ikro A rkitektura(R regjis trat d he d ata p ath)[S w and H W c o ntro ller]
G juha M akine-IS A level (50 - 300 ins tr-s p ec ial d evic e regis ter)
S is tem i O p erativ(kernel m o d e)
K o m p ilues i Ed ito ri Inter. ko m and .(s hell)
S is t.Bankar S is t.K o ntro ll W eb Bro w s er
(M ikro c hip ,p o w er s up p ly,tel etj)
U s er m o d eU s er m o d e U s er m o d e
A p likim et
P ro gram et
S is tem
H ard w are
-
Qellimi i data path-it sht t ekzekutoje disa bashkesi instruksionesh. Disa nga
keto mund t behen ne nj cikel t vetm data path, t tjerat kerkojne me shume cikle data
-path. Keto instruksione mund t prdorin regjistrat ose pajisje t tjera hardware-ike.
Hardware-i dhe instruksionet t para sebashku nga nj programues i gjuhes assembler
formojne nivelin ISA (Instruction Set Architecture). Shpesh ky nivel quhet gjuhe makine.
Gjuha makine ka 50 deri ne 300 instruksione, shumica prdoren pr levizur t
dhena ne makine, pr veprime arithmetike dhe pr t krahasuar vlera. Ne ket nivel
pajisjet I/O kontrollohen duke ngarkuar vlera ne regjistra special t pajisjeve (device
register). Pr shembull, nj disk mund t komandohet t lexoje duke ngarkuar ne
regjistrat e tij vlerat e adreses se diskut, adreses se memories qendrore, numrin e byte-ve
dhe veprimin (lexim ose shkrim). Praktikisht nevojiten me shume parametra dhe statusi
qe kthehet nga drive-ri pas nj operacioni t caktuar sht vertet shume kompleks. Vec
kesaj, ne shume pajisje I/O kohezimi (timing) luan nj rol t rendsishem ne programim.
Pr t mos patur kete kompleksitet sigurohet nj sistem operativ. Ky prbehet nga
nj shtrese software qe pjeserisht fsheh hardware-n dhe i jep programuesit pr t punuar
me nj bashkesi instruksionesh me t prshtatshem.
Ne krye t sistemit operativ kemi software-t e sistemeve. Ketu kemi interpretuesin
e komandave (shell), sistemet dritare (window systems), kompiluesit, editoret dhe
programe t varura nga aplikacione t tilla. sht e rendesishme t kuptojme se keto
programe nuk jane pjese e sistemit operativ, edhe pse ato sigurohen nga prodhuesit e
kompjuterave. Kjo sht nj ceshtje kritike dhe delikate. Zakonisht sistemi operativ sht
ajo pjese e software-it qe vepron ne kernel mode ose supervisor mode. Ky mbrohet nga
nderhyrjet e prdoruesit neprmjet hardware-it (duke injoruar pr momentin disa
mikroproesore qe nuk kane fare mbrojtje hardware-ike). Kompiluesit dhe editoret
veprojne ne user mode. Ne qoft se nj prdorues nuk pelqen nj kompilues, ai mund t
shkruaje vet nj tjetr t tille, por ai nuk mund t shkruaje nj manovrues clocku t
interrupteve (clock interrupt handler), i cili sht pjese e sistemit operativ dhe qe
normalisht mbrohet nga hardware ne menyre qe prdoruesi t mos e modifikoje at.
Disa here, ky dallim ne sistemet e futura (mund t mos kene kernel mode) apo ne
sistemet e interpretuara (sistemet operuese t bazuar ne Java t cilt prdorin
interpretimin pr t ndare komponentt dhe jo hardware-in) mund t zbehet. Pr
kompjuterat tradicional sistemi operativ sht akoma ai qe vepron ne kernel mode.
Ne shume sisteme ka programe t cilt veprojne ne user mode, por qe ndihmojne
sistemin operativ ose prformojne funksione t privilegjuara. Pr shembull, shpesh kemi
nj program qe i lejon prdoruesit t ndryshoje fjalekalimin. Ky program nuk vepron ne
kernel mode dhe nuk sht pjese e sistemit operativ, por kryen nj funksion t tille qe ne
nj fare menyre duhet jet i mbrojtur.
Ne disa sisteme, kjo ide merret ne nj forme shume ekstreme dhe pjeset e atij qe
tradicionalisht quhet sistem operativ veprojne ne nj hapesire pr prdoruesin (user
space). Ne sisteme t tilla sht shume e veshtire t vendosesh nj kufi t qart. do gje
qe vepron ne kernel mode sht qartsisht pjese e sistemit operativ, por disa programe qe
veprojne jasht kesaj jane pjese t diskutueshme t tij, ose t paktn jane t lidhur ngusht
me t.
Me ne fund, sipr programeve sistem kemi programet aplikative. Keto programe
jane marre ose jane shkruar nga prdoruesi pr t bere t mundur zgjidhjen e problemeve
-
t ndryshme, si operim me fjalet, llogaritjet inxhinierike apo grumbullimin e
informacionit ne nj database.
1.1. CFARE SHT NJ SISTEM OPERATIV?
Shumica e prdoruesve t kompjuterit kane pasur eksperience me ndonj sistem
operativ, por sht shume e veshtire t fiksosh se cfare bn saktsisht nj sistem operativ.
Pjese e problemit sht edhe fakti qe sistemi operativ kryen dy funksione qe rrenjsisht
nuk kane lidhje me njri tjetrin, zgjerimin e makines (extending the machine) dhe
menaxhimin e burimeve (managing the recourses). Prgjithesisht duhet t keni degjuar
vetm pr njren nga keto dy funksione. Le ti shohim t dy funksionet me ne detaje.
1.1.1. SISTEMI OPERATIV SI NJ EXTENDED MACHINE
Sic kemi prmendur, arkitektura (bashkesia e instruksioneve, organizimi i
memorjes, I/O dhe struktura e bus-eve) e shume kompjuterave ne nivelin e gjuhes makine
sht e thjesht dhe e njohur nga programi, vecanerisht pr pajisjet I/O. Pr ta
konkretizuar me shume ket le t shohim se si behet nj floppy disc I/O duke prdorur
chips kontrollues t prshtatshem NEC PD765, t cilt prdoren ne shumicen e
kompjuterave personal Intel-based.(Prgjat librit ne do t prdorim termat floppy disk dhe diskret ne vend t njri-tjetrit). PD765 ka 16 komanda, secila e specifikuar me nj ngarkese mes 1 dhe 9 byte-sh ne nj device regjistr. Keto komanda jane pr t lexuar
dhe shkruajtur t dhena, pr t levizur krahun e diskut (disc arm) dhe pr t formatuar
track-et, si dhe pr t filluar, ndjere, rifilluar, rikalibruar kontrolluesin dhe drive-rat.
Komandat me themelore jane lexim dhe shkrim, secila prej tyre kerkon 13
parametra, t paketuar ne 9 bite. Keto parametra specifikojne terma t tille si adresa e
bllokut t diskut pr tu lexuar, numri i sektoreve pr track, menyra e regjistrimit ne
mediumin fizik dhe cfare t beje me shenjn e adreses se t dhenave t fshira (deleted-
data-address-mark). Mos u merzisni ne se nuke kuptoni ket ngatrrese fjalesh, kjo sht
pikerisht ceshtja paksa konfidenciale. Kur operacioni prmbushet, chip-i kontrollues
rikthen 23 statuse dhe fusha gabimi t paketuara ne 7 byte. Sikur kjo t mos mjaftonte
programuesi i floppy diskut duhet gjithashtu t jet vazhdimisht i vemendshem ne se
motori sht i ndezur apo i fikur. Ne se motori sht i fikur, ai duhet t ndizet (me nj
vonese t gjat startup-i) para se t dhenat t mund t lexohen apo t shkruhen. Motori
nuk duhet lene ndezur pr nj kohe t gjat sepse floppy disk demtohet. Ne ket menyre
programuesit i duhet t merret me kombinimin me t mire t vonesave t gjata t startup-
it kundrejt demtimit t floppy disk-ut (dhe t humbase t dhena ne to).
Duke mos u futur ne detaje, duhet t jet e qart se nj pjese e mire e
programueseve nuk pelqejne t futen thelle ne programimin e floppy disqeve ( ose hard
disks, t cilt jane po aq kompleks dhe shume t ndryshem). Ajo cfare do nj programues
sht e thjesht, t merret me abstraktsion t nivelit t lart. Ne rastin e disqeve,
abstraksion tipik do t ishte prmbajtja e nj bashkesie file-sh me emra ne disk. Secila
file hapet pr lexim ose shkrim, pastaj lexohet ose shkruhet dhe ne fund mbyllet.
Programi, i cili fsheh t vertetn e hardware-it nga programuesi dhe shfaq nj
paraqitje t kendshme dhe t thjesht t file-ve t emeruara, t cilat mund t lexohen apo t
-
shkruhen sht sistemi operativ. Sistemi operativ ashtu sic fsheh hardware-in nga
programuesi dhe jep nj paraqitje t thjesht t orientuar nga file-t, gjithashtu zhduk
shume problem si; interrupt-et, kohezusat, menaxhimin e memorjes dhe dukuri t tjera t
nivelit t ulet. Ne raste t tilla, sistemi operativ ofron nj abstraksion me t thjesht dhe
me t leht pr tu prdoruar se sa ai i ofruar nga hardware-i prkats.
Ne ket kendveshtrim, funksioni i nj sistemi operativ sht t prezantoje
programuesin me ekulivalenten e nj extended machine ose nj makine virtuale qe
sht me e leht pr tu programuar se hardware-i prkats. Menyra se si sistemi operativ
arrin ket qellim sht nj histori e gjat, t cilen do ta shohim ne detaja ne vazhdimin e
librit. Sa pr ta prmbledhur, sistemi operativ siguron nj shumellojshmeri sherbimesh t
cilt merren nga programet duke prdorur instruksione speciale t quajtura thirrje t
sistemit (system calls). Me tej ne ket kapitull do t shohim disa nga thirrjet e sistemeve
me t zakonshme.
1.1.2. SISTEMI OPERATIV SI NJ RECOURSE MANAGER
Koncepti i sistemit operativ si nj sigurim t nj nderfaqeje t thjesht pr
prdoruesit e tij sht nj veshtrim top-down. Nj alternative, veshtrimi bottom-up
konsiston ne faktin qe sistemi operativ sht pr t menaxhuar t gjitha pjeset e nj
sistemi kompleks. Kompjuterat modem prbehen nga proesoret, memoriet, kohuesat,
disqet, mous-et, nderfaqesit e network-ut, printerat dhe nj shumllojshmeri e njsive t
tjera. Ne pamjen alternative, puna e sistemit operativ sht pr t siguruar nj lokalizim t
kontrolluar dhe t rradhitur t proesoreve, memorieve dhe njsive I/O prgjat njsive t
programeve t ndryshem konkurues me ta.
Imagjinoni se cfare do t ndodhte ne se 3 programe qe veprojne (running) ne t
njjtin kompjuter t mund t printonim outputin e tyre ne menyre t njpasnjshme ne t
njjtin printer. Rreshtat e pare mund t ishin nga programi i pare, pasardhesit nga
program i dyt, pr t vazhduar me ato t programit t tret e keshtu me rradhe.Rezultati
do t ishte nj kaos. Sistemi operativ mund t sjelle rregull ne t tilla raste duke cuar t
gjithe outputin e destinuar pr ne printer, ne buffer. Kur nj program mbaron, sistemi
operativ mund t kopjoje outputin e tij nga disku ku ai ishte ruajtur pr ne printer,
nderkohe qe ne t njjtn kohe programi tjetr mund t vazhdoje t gjeneroje me shume
output, duke mos marre ne konsiderate faktin qe output nuk po shkon realisht ne printer
(akoma).
Kur nj kompjuter (ose network) ka prdorues t shumfisht, nevoja pr t
menaxhuar dhe mbrojtur memorien, njsite I/O dhe burimet e tjera sht akoma me e
madhe, prderisa prdoruesit mund t interferojne t njri-tjetri. Pr me tepr, prdoruesit
shpesh kane nevoje t ndajne jo vetm hardware-in por edhe informacionin (file-t,
database, etj), gjithashtu. Ne menyre t prmbledhur kjo pamje e sistemit operativ tregon
qe detyra e tij kryesore sht t ruaj gjurmet e atij qe po prdor secilin burim, t plotsoj
kerkesat e burimeve dhe t nderhyje ne kerkesat konfliktuale nga programe dhe prdorues
t ndryshem.
Menaxhimi i burimeve prfshin burimet e multipleksuara (sharing) ne dy menyra:
ne kohe dhe ne hapesire. Kur nj burim sht i multipleksuar ne kohe programe ose
prdorues t ndryshem zene rradhe ne prdorimin e tij. Fillimisht nj prej tyre e prdor
burimin, pastaj nj tjetr, e keshtu me rradhe. Pr shembull, vetm me nj CPU dhe
-
programe qe duan t veprojne, sistemi operativ fillimisht lokalizon CPU ne nj program,
dhe pasi ai t ket vepruar pr nj kohe t gjat, nj tjetr merr prdorimin e CPU, pastaj
nj tjetr dhe me vone prseri i pari. Prcaktimi se si burimi sht i multipleksuar ne
kohe, kush e ka rradhen dhe sa do t zgjase sht detyra e sistemit operativ. Nj shembull
tjetr i multipleksimit ne kohe sht ndarja e printerit. Kur pune shumefishe t printerit
rradhiten pr nj printer t vetm, duhet marre nj vendim se cfare do t printohet pastaj.
Lloji tjetr i multipleksimit sht multipleksimi ne hapesire, ne vend qe
konsumatoret t zene rradhe, secili merr nj pjese t burimit. Pr shembull, memorja
kryesore normalisht ndahet ndermjet disa programeve vepruese ne menyre qe secili t
jet resident ne t njjtn kohe (pr shembull, ne menyre qe t zene rradhe pr prdorimin
e CPU). Duke supozuar qe ka memorje t mjaftueshme pr t mbajtur programe t
shumefishta sht me eficente t mbash disa programe ne memorie njeheresh se sa nj
prej tyre, vecanerisht ne se ai ka nevoje vetm pr nj sasi t vogel t totalit. Sigurisht qe
kjo i rrit principet e ndershmerise, mbrojtjes e keshtu me rradhe, gje e cila sht ne dore
t sistemit operativ pr ti zgjidhur. Nj burim tjetr i multipleksuar ne hapesire sht hard
disku. Ne shume sisteme nj disk i vetm mund t mbaje file nga shume prdorues ne t
njjtn kohe. Lokalizimi i hapesires se diskut dhe ruajtja e gjurmeve t atij qe po prdor
secilin disk sht nj detyre tipike e menaxhimit t burimeve nga sistemi operativ.
1.2. HISTORIA E SISTEMEVE OPERATIVE
Sistemet operative kane qene ne zhvillim prgjat ketyre viteve. Ne seksionet e
meposhtme do t shohim shkurtimisht disa nga me kryesoret. Meqe sistemet operative
historikisht kane qene t lidhur ngusht me arkitekturen e kompjuterit ne t cilin
veprojne, ne do t shohim ne gjeneratat e sukseshme t kompjuterave, ne menyre qe t
shohim se si kane qene sistemet operative. Menyra e t parit t gjeneratave t sistemit
operativ ne gjeneratat e kompjuterit sht e patakt, por gjithsesi na krijon disa struktura
ku prndryshe nuk do t kishim asnj.
Kompjuteri i pare dixhital sht dizenjuar nga matematicieni anglez Charles
Babbage (1792 1871). Edhe pse Babbage harxhoi shumicen e jets se tij duke u munduar t ndertoje motorrin analitik (analytical engine) ai nuk mundi kurre t punoje ne t pasi ky ishte shume i varfer mekanikisht dhe teknologjia e ditve t tij nuk mund
t prodhonte gomat, mekanizmat dhe rrotat e nivelit qe ai kishte nevoje. E panevojshme
t thuhet, motorri analitik nuk k ishte nj sistem operativ.
Si nj ane interesante historike, Babbage kuptoi qe do t mund ti duhej nj
software pr motorrin e tij analitik, keshtu ai pajtoi ne pune nj grua t re qe quhej Ada
Lovelace, e cila ishte e bija e poetit t madh anglez Lord Byron, si programuesen e pare
ne bot. Gjuha e programimt Ada, quhet keshtu ne respekt t emrit t saj.
1.2.1. GJENERATA E PARE. VACCUM TUBES DHE PLUGBOARDS
Pas prpjekjeve pa sukses t Babbage, sht bere nj progres shume i vogel pr
konstruktimin e kompjuterave dixhital deri pas lufts se dyt botrore. Rreth viteve 1940,
Howard Aiken ne Harvard, John von Neumann ne institutin e studimeve t avancuar ne
Princeton, J. Prespr Eckert dhe William Mauehley ne universitetin e Pennsylvannia dhe
Konrad Zuse ne gjermani, ndryshe nga t tjeret t gjithe patn sukses ne ndertimin e
-
makinave llogaritse. T parat prdoren prforcues mekanike por ishin shume t
ngadalta, me cikle kohe t matur ne sekonda. Prforcuesit me vone u zevendesuan me
vaccum tubes. Keto makina ishin t medha, duke mbushur dhoma t tra me dhjetra
mijera vaccum tubes, por ato ishin akoma miliona here me t ngadalt se kompjuterat
personal me t lire ne ditt e sotme.
Ne ato dit, nj grup i vetm njerzish dizenjuan, ndertuan, programuan, operuan
dhe ruajtn secilen makine. do programim behej ne gjuhe makine, shpesh duke lidhur
plugboard-e pr t kontrolluar funksionet kryesore t makines. Gjuhet e programimit
ishin t panjohura (edhe gjuha assembly ishte e tille). Sistemet operative ishin t
padegjuar. Operimi i zakonshem nga nj prdorues ishte t hynt pr block t kohes,
pastaj shkon posht ne dhomen e makines, vendos plugboard-in tij ne kompjuter dhe
kalon disa ore duke shpresuar qe asnj nga 20000 apo dicka e tille vaccum tubes t mos
digjen gjat veprimit. Virtualisht t gjithe problemet ishin t drejtuara nga llogaritje
numerike si studimi i tabelave t sinusit, kosinusit dhe logaritmeve.
Ne fillimet e para t 1950, rutina kishte zbuluar dicka me prezantimin epunched
cards. Tani ishte e mundur t shkruaje programe ne card dhe t lexoje ato ne vend t
prdorimit t plugboard-eve, prndryshe procedura ishte e njjt.
1.2.2. GJENERATA E DYT (1955-65). TRANZISTORET DHE BATCH SYSTEMS
Prezantimi i tranzistoreve ne mes t viteve 1950 ndryshoi pamjen rrenjsisht.
Kompjuterat u bne t besueshem aq sa mund t prodhoheshin dhe tu shiteshin klientve
duke pritur qe t punonin aq gjat sa t kryenin nj pune ne menyre t suksesshme.
Fillimisht k ishte nj ndarje shume t qart midis dizenjuesve, ndertuesve, operuesve,
programueseve dhe personelitt mirembajts.
Keto makina, tani t quajtura mainframe, ishin t mbyllura ne dhoma
kompjuterash me ajer t kondicionuar, me staf operatoresh profesional qe i drejtonin.
Vetm koorporata t medha si agjensite qeveritare ose universitetet mund t prballonin
cmimin multimilion dollaresh. Pr t bere nj pune (job), (pr shembull, nj program ose
nj bashkesi programesh), nj programuesi i duhet fillimisht ta shkruaje programin ne nj
letr (ne FORTRAN ose ne assembler), pastaj ta shenoje (punch) at ne card. Pastaj ai
duhet t sjelle card deck-un ne dhomen e inputeve dhe tia dorezoje nj operatori dhe t shkoje t pije nj kafe derisa outputi t jet gati.
Kur kompjuteri mbaron cfaredo lloj pune pr t cilen ishte aktualisht duke
punuar, nj operator duhet t shkoje t printeri dhe t nxjerre outputin dhe ta coj at ne
dhomen e outputeve, keshtu qe programuesi mund ti mbledh me vone. Pastaj ai duhet t
marre nj nga deck cards qe i jane cuar nga dhoma e inputeve dhe t lexoje ne t. Ne
qoft se duhet kompiluesi FORTRAN, operatorit i duhet ta marre at ne nj kabinet filesh
dhe t lexoje ne t. Shumica e kohes harxhohet nga operatoret duke levizur ne dhomat e
makines.
Duke patur parasysh cmimin e lart t pajisjes, nuk sht pr tu cuditur qe shume
shpejt njerezit kerkuan menyra pr t ulur (zevendesuar) kohen e humbur. Zakonisht
zgjidhja me e pranueshme ishte Batch systems. Ideja e kesaj ishte t mblidheshin
shume pune ne dhomen e inputeve dhe pastaj t lexoheshin ne nj tape magnetik duke
prdorur kompjuter relativisht t vogel, t pakushtueshem, si IBM 1401, i cili ishte shume
-
i mire ne leximin e cards, ne t kopjuarin e tape-ve dhe ne printimine outputeve, por jo aq
i mire ne llogaritjet numerike. T tjera makina me t kushtueshme, si IBM 7094,
prdoreshin pr llogaritjet reale. Kjo situat tregohet ne figuren 1.2.
fig 1.2 (nj batch sistem i hershem)
Pas nj ore apo dicka e tille grumbullimi punesh, tape-i kthehet ne fillim dhe
cohet ne dhomen e makines, ku vendoset ne nj tape drive. Me pas operatori merre nj
program special (strgjyshi i sistemit t sotm operativ), i cili lexonte nga tape punen e
pare dhe e kryente at. Outputi ne vend qe t printohej shkruhej ne nj tape t dyt. Pas
do pune t mbaruar, sistemi operativ lexonte automatikisht punen tjetr nga tape dhe
fillonte ta kryente at. Kur t gjithe punet e grumbulluara mbaroheshin, operatori hiqte
tape-t input dhe output, ne tape-in input vendoste punet e reja dhe tape-in output e conte
ne nj 1401 pr printim offline (jo i lidhur me kompjuterin qendror).
Struktura e nj pune tipike input tregohet ne figuren 1.3. Filloi me SJOB card, qe
specifikont maksimumin e kohes se veprimit (max run time) ne minuta, numrin qe duhej
ngarkuar dhe emrin e programuesit. Pastaj vjen $FORTRAN card, qe i tregon sistemit
operativ t marre kompiluesin FORTRAN nga tape-i. Me pas vijonte programi qe duhej
t kompilohej dhe pastaj nj SLOAD card, qe drejtonte sistemin operativ t merrte
programin objekt t sapo kompiluar.(Programet e kompiluara shpesh shkruheshin ne tape
t gervishtura dhe duhet t merreshin sakt). Me pas vjen $RUN card, qe i tregon sistemit
operativ t veproje (run) ne program t ndjekur nga t dhenat. Ne fund, $END card
shenjon fundin e punes. Keto cards primitive kontrolli ishin paraprijesit e gjuheve
moderne t kontrollit t puneve dhe interpretuesve t komandave.
Shume kompjutera t gjenerates se dyt prdoreshim shume pr llogarritje
inxhinierike dhe shkencore, si zgjidhja e ekuacioneve diferenciale me pjese qe shpesh
gjenden ne fizike dhe inxhinieri. Ato programoheshin shume ne FORTRAN dhe ne
gjuhen assembly. T tille sisteme operative ishin FMS (The Fortran Monitor System),
Sistemi operativ IMB pr 7094.
-
fig.1.3. Struktura e nj pune tipike FMS
1.2.3. GJENERATA E TRET (1965-1980). ICs DHE MULTIPROGRAMIMI
Ne fillim t viteve 1960, shumica e kompjuterave prodhoheshin ne dy linja
prodhimi t vecuara dhe t papajtueshme. Ne njren ane kishim kompjutera shkencore t
nj shkalle t lart dhe word-oriented, sic sht 7094, t cilt prdoreshin pr llogaritje
numerike ne shkence dhe inxhinieri. Ne anen tjetr, kishim kompjuterat komercial,
character-oriented, sic sht 1401, t cilt ishin gjeresisht t prdorur pr klasifikimin e
tape-ve (shiritit) dhe pr printimin nga bankat dhe kompanit e sigurimit.
Zhvillimi dhe mirembajtja e dy linjave plotsisht t ndryshme t prodhimi t ishte
shume e kushtueshme pr prodhuesit. Pr me tepr, shume klient t rinj t kompjuterave
fillimisht donin nj makine t vogel por me vone kerkonin nj makine me t madhe ne t
cilen t mund t vepronin t gjithe programet e meparshem por me shpejt.
IBM tentoi ti zgjidhte t dy problemet ne nj t vetm duke prezantuar keshtu
System/360. 360 ishte nj seri makinash t pajtueshme ne software duke filluar nga ato
ne madhesi 1401 deri ne ato me t fuqishem se 7094. Makinat ndryshonin ne cmim dhe
ne performance (memorje maksimale, shpejtsi proesori, numri i pajisjeve I/O t lejuara
dhe keshtu). Teorikisht, prderisa shumica e makinave kane t njjtn arkitekture dhe
bashkesi instruksionesh, programet e shkruara pr nj makine duhet t veprojne edhe ne
makinat e tjera. Vec kesaj, 360 sht dizenjuar ne menyre qe t merret me t dy llogaritjet
shkencore dhe komerciale. Nj familje e vetme makinash mund t kenaqe nevojat e t
gjithe klientve. Ne vitet ne vazhdim, duke prdorur teknologji me moderne IBM pati
sukses t pajtueshme me at t linjs 360, t njohur si serit 370, 4300, 3080 dhe 3090.
360 ishte linja e pare kompjuterike e madhe qe prdori qarqe t integruara (JCs),
keshtu qe krijon nj avantazh ne cmim dhe ne performance kundrejt makinave t
gjenerates se dyt, t cilt ishin t ndertuar nga transistore individuale. Kjo ishte nj
sukses i menjehershem dhe shume shpejt ndertues t tjere t fuqishem adoptuan idene e
krijimit t nj familjeje kompjuterash t tille. Pasardhesit e ketyre kompjuterave jane
akoma ne ditt e sotme ne prdorim nepr qendra t kompjuterit. Ne ditt e sotme jane
-
shume t prdorur pr menaxhimin e database-ve t medha (pr shembull, sistemet e
rezervimit t linjave ajrore) ose prdoren si servera faqet World Wide Web qe duhet t
veprojne me mijera kerkesa pr sekonde.
Fuqia me e madhe e idese nj familje papritur u be dobesia me e madhe e tij. Qelimi ishte qe t gjithe software-t, duke prfshire ketu edhe sistemin operativ, OS/360
duhet t punonin ne t gjitha modelet. Duhet t vepronte ne sisteme t vogla, qe shpesh
zevendesonin 1401 pr kopjimin e card-ave ne tape dhe ne sisteme t medha, qe shpesh
zevendesonte 7094 pr parashikimin e motit dhe llogaritje t tjera t medha. Duhet t
ishte mire ne sistemet me pak pjese periferike dhe ne sistemet me shume pjese periferike.
Duhej t punonte ne mjedise komerciale dhe shkencore. Mbi t gjitha, duhet t ishte
eficente pr gjithe keto prdorime t ndyshme.
Nuk k ishte asnj lloj menyre qe IBM (apo ndonj tjetr) t mund t shkruanin
nj software pr rrefimin e t gjithe ketyre nevojave konfliktuale. Rezultati ishte nj
sistem operativ jashtzakonisht shume kompleks dhe gjigand, me shume mundesi 2 ose 3
here magnitude (madhesi) me t madhe se FMS. Prbehej nga miliona rreshta t shkruar
ne gjuhe assembly nga mijera programues dhe prmbante mijera viruse nga mijera lloje
t ndryshme virusesh, t cilt kishin nevoje pr nj rrjedhe t vazhdueshme t
shkarkimeve t reja ne nj prpjekje pr ti korrigjuar ato. do shkarkim i ri korrigjonte
disa viruse dhe sillte t tjere t rinj, keshtu qe numri me shume mundesi qendronte po i
njjt.
Nj nga dizenjuesit e OS/360, Fred Brooks, me pas shkroi nj liber t mpreht
(Brooks, 1996) qe prshkruante eksperiencat e tij me OS/360. Meqe do t ishte e
pamundur t prmblidhnim librin ketu, t mjaftohemi duke thene qe kapaku tregon nj
tufe bishash kryelarta prehistorike n nj grope t erret.
Vec madhesise dhe problemeve gjigant t tij, OS/360 dhe sisteme operative t
prodhuar nga prodhues kompjuterash t tjere t ngjashem me keto aktualisht, prmbushen
nevojat e arsyeshme t shumices se bleresve. Ato gjithashtu popullarizuan mungesa
teknike primare ne sistemet operative t gjenerates se dyt. Me shum mundesi, me e
rendesishme nga keto ishte multiprogramimi. Ne 7094, kur puna nderpritej pr t pritur
pr kompletimin e operimit t nj tape apo pajisjeve I/O, CPU rri kot deri kur I/O t
mbaroje. Me llogaritjet e medha shkencore t lidhura me CPU, I/O sht e rralle, keshtu
qe kjo marreveshje e humbur nuk sht domethene se. Me proesimin e t dhenave
komerciale, koha e pritjes se I/O shpesh mund t jet 80% ose 90% e kohes totale, keshtu
qe duhet t behej dicka qe t shmangt t ndenjurit kot t CPU.
Zgjidhje e gjetur ishte ndarja e memories ne disa pjese me nj pune t ndryshme
pr secilen pjese, sic tregohet ne figuren 1.4. Nderkohe qe nj pune po pret qe t mbaroje
I/O, nj tjetr pune mund t prdore CPU. Ne qoft se mund t mbaheshin pune
mjaftueshem ne memorien kryesore ne t njjtn kohe, CPU mund t qendronte e zene
pothuajse 100% t kohes. Pr t ruajtur ne memorie shume pune menjehere, kerkon
hardware special pr t mbrojtur do pune nga nderhyrjet dhe demtimet e t tjereve, por
360 dhe sisteme t tjere t gjenerates se tret ishin pajisur me ket hardware.
-
Fig.1.4. nj sistem multiprogramming me tre pune ne memorie.
Nj vecori tjetr e rendesishme e sistemeve operative t gjenerates se tret ishte
aftsia e leximit t puneve nga karta ne disk sapo ato t arrinin ne dhomen e
kompjuterave. Sapo t mbaronte se vepruari nj pune, sistemi operativ mund t marre nj
pune t re nga disku ne pjesen qe tani sht bosh dhe kjo pune mund t filloje veprimin.
Kjo teknike njihet si spooling (nga operimi i menjehershem periferik ne linj) dhe ishte
e prdorur pr output, gjithashtu. Me spooling, 1401 nuk nevojiteshin me dhe mbajtja e
tape-ve pothuajse u zhduk.
Megjithat sistemet operative t gjenerates se tret ishin t prshtatshem pr
llogaritje t medha shkencore dhe veprime me t dhenat komerciale masive, thellesisht
ato akoma ishin sisteme batch. Shume prdorues kerkonin akoma ditt e gjenerates se
pare kur ato e kishin t gjithe makinen pr vet pr disa ore dhe mund t rregullonin
programet e tyre shume shpejt. Me sistemet e gjenerates se tret, koha mes paraqitjes se
punes dhe marrjes me pas t outputit ishte disa ore, keshtu vendosja keq e nj presjeje t
vetme mund t shkaktoje nj komplikim t tille sa mund t deshtoje dhe programuesi t
humbase nj gjysem dit.
Kjo deshire pr kohe t shpejt responce (prgjigjeje) hapi rrugen pr timesharing
(ndarje kohe), variant i multiprogramimit, ku do prdorues ka nj terminal online. Ne
nj sistem timesharing, ne qoft se jane 20 prdorues logged in dhe 17 prej tyre po
mendojne, flasin apo po pijne kafe, CPU mund t alokohet vetm pr tre punet qe duan
sherbim. Pr derisa njerezit pr rregullimin e programeve zakonisht prdorin komanda t
shkurtra (pr shembull, kompilimi i nj procedure pese faqeshe) me shume se komandat e
gjata (pr shembull, renditja e nj file me miliona rekorde), kompjuteri mund t siguroje
sherbim t shpejt dhe interaktiv (bashkepunues) nj numri prdoruesish dhe mbase
mund t punoje ne pune grupi (batch job) ne background kur CPU po rri kot. Sistemi i
pare serioz timesharing, CTSS (Compatible Time Sharing System), u zhvillua ne
M.I.T. ne nj 7094 t modifikuar. Megjithat timesharing nuk u be vertet e popullarizuar
derisa nevojat pr mbrojtje hardware u prhapen shume gjat gjenerates se tret.
Pas suksesit t sistemit CTSS, MIT, Bell Labs dhe elektrikut t prgjithshem,
pastaj nj prodhues i madh kompjuterash vendosi t nise me zhvillimin e computer utility (leverdi e kompjuterit), nj makine qe do t prballonte qindra prdorues timesharing t menjehershem. Modeli i tyre ishte sistemi elektrik i shprndare, kur
nevojitet fuqi elektrike, vendoset nj prize ne mur dhe ne t do t gjendet aq fuqi sa t
nevojitet. Dizenjuesit e ketij sistemi, t njohur si MULTICS (Multiplexed Information
-
and Computing Service), parashikuan nj makine super t madhe qe siguronte fuqi
llogaritse pr do kend ne zonen Boston. Ideja qe makinat shume me t fuqishme se
mainframe GE-645 do t shiteshin pr mijera dollare, 30 vjet me vone ishte nj trillim
shkencor.
MULTICS ishte nj sukses i vogel. Kjo ishte e dizenjuar pr t suportuar qindra
prdorues ne nj makine pak me shume t fuqishme se nj Intel 386-based PC, ndone se
grumbullont shume me shume kapacitet I/O. Kjo nuk sht aq e cmendur sa mund t
duket, prderisa njerezit e asaj kohe dinin t shkruanin programe t vogla dhe eficente,
aftsi qe me pas sht humbur. Kishte shume arsye qe MULTICS nuk pushtuan botn,
arsye jo pak e vogel ishte se ishte shkruar ne PL/1, dhe kompiluesi PL/1 ishte shume
vite vone dhe kur ne fund arrinte mezi punonte. Pr me tepr, MULTICS ishte
jashtzakonisht ambicioz pr kohen e tij, me shume si motorri analitik i Charles Babbage
ne shekullin e nentmbedhjet.
Pr t bere t shkurtr nj histori t gjat, MULTICS prezantoi shume ide baze ne
literaturen kompjuterike, por kthimi i saj ne nj produkt serioz dhe ne nj sukses
komercial ishte shume me e veshtire nga cmund ta priste donjri. Laboratori Bell braktisi projektin dhe elektriku i prgjithshem la tresisht biznesin e kompjuterave.
Megjithat, M.I.T. kembnguli dhe prfundimisht mori MULTICS pr t punuar. Ne fund
u shit si nj produkt komercial nga kompania qe bleu biznesin e kompjuterave t GEs dhe
e instaloi ne rreth 80 kompani t medha dhe universitete ne t gjithe botn. Nderkohe qe
numrat e tyre ishin t vegjel, prdoruesat MULTICS ishin shume besnik. Pr shembull,
General Motors, Ford dhe agjensia nacionale e sigurimit t shteteve t bashkuara, ne
fund t viteve 1990 vetm fiknin sistemet MULTICS, 30 vjet pasi MULTICS ishte
shkarkuar (released)
Pr momentin, koncepti i nj utiliteti kompjuteri ka deshtuar por ai shume mire
mund t kthehet ne formen e servera interneti masivisht t centralizuar me t cilt jane
lidhur makinat user dumb (memec, t heshtur), me shumicen e punes qe ndodh ne
serverat e medhenj. Motivimi ketu sht qe shumica e njerezve nuk duan t administrojne
nj sistem kompjuterik nazeli dhe me nj kompleksitet rrits dhe do t preferonin qe at
pune t behej nga nj skuader profesionistsh pr kompanine qe drejton serverin. E-
commerce akoma po zhvillohet ne ket drejtim, me kompani t ndryshme qe drejtojne e-
maile ne servera mikroproesore me t cilat lidhen makinat e thjeshta t klientve.
Prvec mungeses se suksesit komercial, MULTICS pati nj influence t madhe ne
sistemet operativ pasues. Ajo sht prshkruar ne (Corbato, 1972; Corbato and
Vyssotsky,1965; Daley and Dennis, 1968; Organick, 1972; dhe Saltzer,1974). Ajo akoma
ka nj faqe Web aktive www.mulriciaris.org ne t cilen ka shume informacion pr
sistemin, dizenjuesit e tij dhe pr prdoruesit e tij.
Nj zhvillim tjetr i madhe gjat gjenerates se tret ishte rritje e jashtzakonshme
e minikompjuterave, duke filluar me DEC PDP-1 ne 1961.PDP-1 kishte 4K fjale 18-
biteshe, por pr 5120000 pr makine (me pak se pese prqind e cmimit t nj 7094)
shiteshin si hotcakes (shiteshin shume). Pr lloje t vecanta punesh jonumerike, ky ishte
pothuaj aq i shpejt sa 7094 dhe i dha fillimin nj industrie t plot t re. Ajo shume shpejt
u ndoq nga nj seri PDP-sh t tjera (ndryshe nga familja IBJvTs) duke arritur kulmin ne
PDP-11.
Nj nga shkencetaret e kompjuterave ne laboratorin Bell qe kishte punuar ne
projektin MULTICS.Ken Thompson, me pas gjeti nj minikompjuter PDP-7 qe nuk po
-
prdorej nga asnj dhe kishte si qellim t shkruant nj version t MULTICS stripped-
down dhe me nj prdorues. Kjo pune me vone u zhvillua ne sistemin operativ UNIX, i
cili u be i populluar ne botn akademike, me agjensite qeveritare dhe me shume kompani.
Historia e UNIX tregohet tjetrkund (pr shembull, Salus, 1994).Ne kapitullin 10
do t japim pjese nga kjo histori.Tani mjaftohuni duke ju thene se ngaqe kodi burim ishte
gjeresisht i prdorshem, organizata t ndryshme zhvilluan versionet e tyre t
pakonkurueshem qe t conin ne nj kaos. Dy nga versionet e medha t zhvilluara jane
System V nga AT&T dhe BSD (Berkeley Software Distribution) nga universiteti i
Californise ne Berkeley. Keto gjithashtu kishin variante t vegjel t tyre. Pr t bere t
mundur shkrimin e nj programi qe mund t veproje ne do sistem UNIX, IEEE zhvilloi
nj standart pr UNIX, t quajtur POSIX, qe suportohet nga shumica e versioneve UNIX.
POSIX prcakton nj nderhyrje minimale t thirrjeve sistem qe duhet t prkrahet nga
sistemet UNIX konformant. Ne fakt, edhe disa sisteme t tjere operativ tashme suportojne
(prkrahin) nderhyrjen POSIX.
Si me tutje, sht mire t prmendet qe ne 1987, autori leshoi nj klonim t vogel
t UNIX, t quajtur MINIX, qe prfshint suportimin e POSIX. sht i prdorshem nj
liber i cili prshkruan oprimet e brendeshme t tij dhe liston kodet burim ne nj
appendix (Tanenbaum and Woodhull, 1997), MINIX gjendet free (duke prfshire kodet
burim) ne internet ne URL www.cs.vu.nl/-ast/minix.html
Deshira pr prodhimin e nj versioni free t MINIX beri qe studenti Finlandez,
Linus Torvalds, t shkruant LINUX. Ky sistem u zhvillua ne MINIX dhe fillimisht
suportont disa dukuri t ndryshme t MINIX (pr shembull, sistemi i filave
MINIX).Edhe pse pas shume shtrirjesh ne shume menyra ai akoma ruan nj pjese t
madhe t struktures themelore si MINIX dhe UNIX. Shumica e atyre cfare do t thuhet
pr UNIX, prgjigjet edhe pr System V, BSD, MINIX, Linux dhe versioneve t tjera,
gjithashtu edhe klonimeve t UNIX.
1.2.4. GJENERATA E KATRT (1980-SOT) PERSONAL COMPUTERS
Me zhvillimin e qarqeve LSI (Large Scale Intgratin), chipe qe prmbajne
mijera tranzistore ne nj centimetr katror silikoni, linden PC (personal computers). Ne
terma arkitekturore, personal computers (fillimisht t quajtur microcomputers), nuk ishin
shume t ndryshem nga minikompjuterat e klases PDP-11, por ne terma t cmimit ishin
plotsisht t ndryshem. Ne nj departament, ne nj kompani apo universitet ku mundesia
pr t pasur nj minikompjuter sht h, chipi mikroproesor beri t mundur qe pr n
individ t kishin h prej tyre nj personal computer t tyrin.
Ne vitin 1974, kur doli Intel me 8080, CPU i pare 8-bitesh pr qellime t
prgjithshme, duhej nj sistem operativ pr 8080 ne menyre qe t jet i mundur testimi i
tij. Intel ia kerkoi qe t shkruant nj t tille, njrit prej konsulentve t tij, Gary
Kildall.Fillimisht Kildall dhe nj shok i tij ndertuan nj kontrollues pr floppy disqet e
rinj, Shugarl Associats 8-inch dhe bashkuan floppy disk-un me 8080, duke krijuar
keshtu mikrokompjuterin e pare me disk. Me pas Kildall shkroi pr t nj sistem operativ
disk-based t quajtur CP/M (Control Program for Microcomputers). Intel duke mos
menduar se keta mikrokompjutera kishin shume t ardhme, kur Kildall kerkoi pr t
-
drejtat e CP/M, Intel pranoi kerkesen e tij. Me pas Kildall formoi nj kompani t tijen
pr t ndihmuar pr zhvillimin dhe shitjen e CP/M, Digital research.
Ne 1977, Digital Research rishkruan CP/M t tille qe ishte e prshtatshme t
vepronte (run) ne shume minikompjutera qe prdornin 8080, Zilog Z80h dhe t tjere chipe
CPU. Shume programe aplikative u shkruan qe t vepronin ne CP/M duke bere keshtu t
dominont botn mikrollogaritse pr rreth 5 vjet.
Ne fillim t viteve 1980, IBM dizenjoi PC IMB dhe kerkoi pr software qe t
vepronte ne t. Njerez t IBM kontaktuan Bill Gats pr licensen e interpretuesit BASIC
t tij. Gjithashtu i kerkuan atij ne se njiht ndonj sistem operativ qe t vepronte ne PC,
Bill Gats u sugjeroi atyre t kontaktonin Digital Research, kompanine dominuese t
sistemeve operative t asaj kohe. Kildall, duke bere sigurisht qe t ishte vendimi me i
gabuar ne biznes qe njihet ne histori, refuzoi t takohej me IBM duke i derguar nj varts
madje. Pr me keq, avokati i tij nuk pranoi as t firmost marreveshjen e mbyllur t IBM,
duke mbuluar PC akoma t paprezantuar. Si pasoje, IBM i kerkoi prseri Gats ne se ai
mund ti siguronte nj sistem operativ.
Ne kohen qe IBM u kthye prseri tek Bill Gats, ky i fundit mori vesh qe nj
ndertues lokal kompjuterash, Seattle Computer Products, kishte nj sistem operativ t
prshtatshem, DOS (Disk Operating System). Ai iu drejtua atyre dhe u kerkoi ta blint
(gjoja 50000 $), t cilen ata e pranuan leht. Pastaj Gats i ofroi IBM paketn
DOS/BASIC t cilen IBM e pranoi. IBM dont disa modifikime t caktuara, keshtu Gats
punesoi personin qe shkroi DOS, Tim Palerson si nj nenpunes t ri t kompanise t tij,
Microsoft, qe ti bnte keto modifikime. Sistemi i korrigjuar mori emer tjetr, MS-DOS
(Microsoft Disk Operating System) dhe shume shpejt dominoi tregun e PC IBM. Nj
faktor kryesor ishte vendimi i Gats (ne prapaveshtrim, shume i zgjuar) pr t shitur MS-
DOS kompanive kompjuterike pr tu lidhur me hardware-in e tyre, krahasuar kjo me
prpjekjen e Kildall pr t shitur CP/M prdoruesve t fundit (end users).
Ne vitin 1983 IBM PC/AT doli me CPU Intel 80286. MS-DOS ishte prhapur
tashme dhe CP/M ishte ne ditt e fundit. Me vone MS-DOS u prdor gjeresisht ne 80386
dhe 80486. Megjithese versioni fillestar i MS-DOS ishte i thjesht, versionet pasues
prfshine dukuri me t avancuara duke prfshire shume t marra nga UNIX. (Microsoft
ishte i informuar pr UNIX, madje gjat viteve t para t kompanise shist versione t tij
pr mikrokompjutera, t quajtura XENI).
CP/M, MS-DOS dhe sisteme t tjera operative pr mikrokompjuterat e hershem
ishin t gjithe t bazuar ne shtypjen e komandave nga tastjera. Kjo prfundimish ndryshoi
ne saj t kerkimit t bere nga Doug Engelbart, ne institutin e kerkimeve ne Stanford ne
vitet 1960. Engelbart krijoi GUI (Graphical User Inteface), qe plotsoi me windows,
icons, menus dhe mouse. Keto ide ishin t adoptuara nga kerkues ne Xerox PARC dhe t
prfshira ne makinat qe ndertonin.
Nj dit, Steve Jobs qe shpiku kompjuterin Apple ne garazhin e tij, vizitoi PARC,
pa nj GUI, dhe menjehere kuptoi vlerat e tij potnciale, dicka qe menaxhimi i famshem i
Xerox se beri (Smith dhe Alexander, 1988). Pastaj Jobs bashkoi nj GUI me nj Apple.
Ky projekt na coi tek Lisa, qe ishte shume e shtrenjt dhe nga ana tregetare deshtoi.
Prpjekja e dyt e Jobs, Macintosh i Apple-it, ishte nj sukses i madh jo vetm se ishte
me i lire se Lisa, por ishte gjithashtu nj user shoqeror (user friendly), qe do t thot qe
ishte jo vetm pr prdorues qe nuk dinin fare rreth kompjuterave, por edhe pr ata qe
nuk kishin ndermend t mesonin dicka.
-
Kur Microsoft vendosi t ndertont nj pasues t MS-DOS, u influencua shume
nga suksesi i Macintosh-it. Ai prodhoi nj sistem t GUI-based t quajtur Windows, qe
fillimisht veproi ne deget e MS-DOS. Pr rreth 10 vjet, nga 1985-1993, windows ishte
nj mjedis grafik ne krye t MS-DOS. Sidoqoft, duke filluar qe ne 1995 doli nj version
i lire (freestanding) i Windows, Windows 95, qe prfshint shume dukuri t sistemit
operativ ne t, duke prdorur bazat e sistemit MS-DOS vetm qe programet e vjetra MS-
DOS t boot-oheshin dhe t vepronin (run). Ne 1998 doli nj version pak i modifikuar i
ketij sistemi, i quajtur Windows 98. Sidoqoft, Windows 95 dhe Windows 98 se bashku,
akoma prmbajne nj sasi t madhe t Intel 16-bit gjuhe assembly.
Nj sistem tjetr operativ Microsoft sht Windows NT (New tchnology), i cili
sht i pajtueshem me Windows 95 ne nj nivel t caktuar. Dizenjuesi kryesor i Windows
NT ishte David Cuttr, qe ishte gjithashtu nj prej dizenjuesve t sistemit operativ
VAX/VMS, keshtu qe disa ide t VMS jane t pranishme edhe ne NT. Microsoft priste
qe versioni i pare i NT t shfarost MS-DOS dhe t gjitha versionet e tjera t Windows
meqe ai ishte nj sistem superior me rendesi, por nuk e beri nj gje t tille.Vetm me
Windows NT 4.0 me ne fund ia doli ne nj menyre t mire, vecanerisht ne network-un e
koorporatave.Versioni i 5 i Windows NT u quajt Windows 2000, i cili doli ne fillim t
vitit 1999.U krijua me qellimin qe t ishte pasuesi i Windows 98 dhe Windows NT 4.0.
Ky gjithashtu nuk ia doli mbane plotsisht keshtu qe Microsoft doli akoma me nj
version tjetr t Windows 98 t quajtur Windows Me (Millenium edition).
Nj tjetr pretndues kryesor ne botn e personal computers ishte UNIX (dhe
derivatt e tij t ndryshme). Unix sht me i fuqishmi ne workstations dhe ne kompjuterat
e tjere high-end si network servers. Ky sht popullarizuar vecanerisht ne makinat e
fuqizuara nga chip-e RISC me performance t lart. Ne kompjuterat pentium-based,
Linux po behet nj alternative e populluar e Windows pr studentat dhe pr shume
prdorues korporatash. (Prgjat librit do t prdorim termin Pentium pr tiu referuar Pentium I, II, III dhe IV).
Megjithese shume prdorues UNIX, vecanerisht programues me eksperience,
preferojne nj nderfaqe command-based se nj GUI, pothuajse t gjithe sistemet UNIX
suporojne sistem me n window i quajtur sistem X Windows, i prodhuar nga MIT. Ky
sistem trajton menaxhimin baze window, duke lejuar prdoruesit t krijojne, fshijne,
levizin dhe t rivendose dritaret (windows) me nj mouse. Shpesh nj GUI i kompletuar,
sic sht Motif, sht i prdorshem pr veprimin e tij ne krye t sistemit X Windows
duke i dhene UNIX nj paraqitje pak a shume si Machintosh apo Microsoft Windows, pr
ata prdorues t tij qe duan nj gje t tille.
Nj zhvillim intresant qe filloi ne mes t viteve 1980 ishte rritja e network-eve
(rrjetve) t personal computers ku vepronte sistemi operativ, network operating
systems dhe ai distributed systems (sistemet e shprndara) (Tanenbaum dhe Van
Sten, 2002). Ne nj sistem operativ network, prdoruesit jane ne dijeni pr ekzistencn e
shume kompjuterave dhe mund t futen (log in) pr t levizur dhe kopjuar file-t nga njra
makine t tjetra. Ne nj grup makinash vepron nj sistem operativ lokal i ketij grupi dhe
ka gjithashtu prdoruesin (prdoruesat) e vet lokal.
Sistemet operativ network thellesisht nuk jane t ndryshem nga sistemet operativ
single - proessor (proesor t vetm). Duket qart qe ato kane nevoje pr nj kontrollues
t nderfaqes se networkut dhe disa software t nivelit t ulet qe ta drejtojne at, aq mire sa
-
programet t arrijne login dhe aksesimin e fileve, por keto gjera shtese nuk e ndryshojne
strukturen baze t sistemit operativ.
Nj sistem operativ i shprndare, ne dallim sht i tille qe shfaqet t prdoruesit e
tij si nj sistem tradicional uniproessor, edhe pse ai aktualisht sht i prbere nga shume
proesore.Prdoruesit nuk kane pse t jene ne dijeni se ku veprojne (run) programet e
tyre dhe se ku jane t vendosur file e tyre, t gjitha keto do t behen automatikisht dhe ne
menyre eficente nga sistemi operativ.
Sistemet operative e verteta t shprndara kerkojne me shume se thjesht shtimin e
nj kodi t vogel ne sistemin operativ uniproessor, sepse sistemet e shprndara dhe t
centralizuara ndyshojne ne rruge kritike. Sistemet e shprndare, pr shembull, shpesh
lejojne aplikime qe t veprojne ne disa proesor ne t njjtn kohe, keshtu duke kerkuar
algoritma skedulimi proesoresh me shume kompleks, ne menyre qe t optimizojne
masen e paralelizmit.
Vonesat e komunikimit ne network shpesh do t thone qe keto (dhe t tjere)
algoritma duhet t veprojne me informacion t pakompletuar, t vjetruar madje dhe
jokorrekt. Kjo situat thellesisht sht e ndryshme nga nj sistem single-proessor ne t
cilin sitemi operativ ka informacion t kompletuar pr gjendjen e sistemin.
1.2.5 ONTOGENY RECAPITULATES PHYLOGENY
Pas botimit t librit t Charles Darvin Origjina e Specieve, zoologjisti gjerman Ernst Haeckel konstatoi se Ontogeny rikapitulon Phylogeny. Me ket ai dont t thosht se zhvillimi i nj embrioni (ontogeny) prserit (recapitulats) evoluimin e species
(phylogeny). Me fjele t tjera, pas fertilizimit, nj veze njriu shkon nepr etapa pr tu
bere peshk, nj derr dhe keshtu me rradhe prpara se t kthehet ne nj bebe njri. Biologe
modern e konsideruan ket si nj simplifikim t madh, por ajo akoma ka nj fare t
vertet ne t.
Dicka analoge me ket ka ndodhur edhe ne industrine kompjuterike. do specie e
re (mainframe, minicompjutr, personal computer, embedded computers, smart cards etj)
duket sikur po shkon drejt zhvillimit qe kane bere paraardhesit e tyre. Mainframet e pare
ishin programuar plotsisht ne gjuhe assembly. Edhe programet shume komplekse, sic
jane kompilatoret dhe sistemet operative, ishin shkruar ne assembler. Ne at kohe dolen
ne skene minikompjuterat. FORTRAN, COBOL dhe gjuhe t tjera programimi t nivelit
t lart zakonisht prdoreshin nepr mainframe, por asnj nga minikompjuterat e rinj nuk
programoheshin ne assembler (pr shkak t memories). Fillimisht kur u shpiken
mikrokompjuterat (personal computers t hershem), ato gjithashtu programoheshin ne
assembler edhe pse ne at kohe minikompjuterat programoheshin ne gjuhe programimi t
nivelit t lart. Edhe kompjuterat palmtop gjithashtu filluan me kode assembly por shume
shpejt levizen ne gjuhe programimi t nivelit t lart (prgjithesisht sepse punet
zhvilluese beheshin ne makina t medha). E njjta gje sht e vertet pr smart cards.
Tani le t shohim sistemet operative. Mainframet e pare nuk kishin mbrojtje
hardware-ike dhe nuk suportonin multiprogramimin, keshtu qe ne to vepronin sisteme
operative t thjesht qe merrej vetm me nj program manualisht t ngarkuar ne nj kohe
t caktuar. Me vone me sigurimin e hardware-it, sistemet operative suportonin t
merreshin me shume programe njeheresh, dhe me vone kishin aftsi t plota timesharing.
-
Ne fillimet e shfaqjes se minikompjuterave, ato gjithashtu nuk kishin mbrojtje
hardware-ike dhe ne to vepronte nj program manualisht i ngarkuar ne nj kohe t
caktuar, edhe pse ne at kohe multiprogramimi ishte i vendosur mire ne botn e
mainframeve. Gradualisht ato siguruan mbrojtje hardware-ike dhe aftsi qe dy ose me
shume programe t vepronin ne t njjtn kohe.
Gjithashtu edhe mikrokompjuterat e pare ishin t aft qe ne to t vepronte nj program i
vetm ne nj kohe t caktuar, por me vone edhe keto siguruan aftsi t multiprogramimit.
Ne t njjtn menyre ndodhi edhe me smart cards dhe kompjuterat palmtop.
Disqet fillimisht u shfaqen ne mainframet e medha, pastaj ne minikompjutera,
mikrokompjutera dhe keshtu me rradhe. Edhe ne ditt e sotme smart cards nuk kane
harddisk, por me ardhjen e flash ROM, ato se shpejti do t kene t njjtn ekuivalence me
t. Kur u shfaqen disqet ne fillim u zhvilluan shpejt sistemet e thjeshta file. Ne CDC
6600, mainframe me i fuqishem ne bot gjat viteve 1960, userat e sistemeve file kane
aftsi pr krijimin e fileve dhe me pas e deklarojne at t prhershme, qe do t thot qe ai
qendron ne disk edhe pas mbylljes se programit t krijuar. Pr aksesimin e nj file t tille
me vone, nj program duhet t lidhet me nj komande speciale dhe t jape passwordin e
tij (e plotsuar kur file u be i prheshem). Ne fakt, ishte nj direktori e vetme e ndare nga
t gjithe prdoruesit. Kjo ishte pr t evituar konfliktet e emrave t fileve. Sistemet e
fileve t minikompjuterave t hershem kishin nj direktori t vetme t ndare nga t gjithe
prdoruesit dhe keshtu edhe me sistemet file t hershem mikrokompjuter.
Memorja virtuale (aftsia pr veprimin e me shume programeve se ne memorien
fizike) pati nj zhvillim t ngjashem. Fillimisht u shfaq ne mainframe, minikompjutera,
mikrokompjutera dhe gradualisht filloi ne sisteme t vogla e me t vogla. Networking
kishte nj histori t ngjashme.
Ne t gjitha rastet, zhvillimi i software u diktua nga teknologjia.
Mikrokompjuterat e pare, pr shembull kishin pak a shume 4KB memorie dhe skishin mbrojtje hardware-ike.Gjuhet e nivelit t lart dhe multiprogramimi ishin shume, qe nj
sistem i vogel, i tille t merrej me to. Meqe mikrokompjuterat u shnderruan ne personal
computers modern, ato siguruan hardware-in e nevojshem dhe me vone software-in e
nevojshem t merret me dukuri me t avancuara. Duket se ky zhvillim edhe prvitet
tjera qe vijne.Gjithashtu fusha t tjera mund t kene t njjtn rrjedhe rimisherimi, por ne
industrine e kompjuterave duket se ndodh me shpejt.
1.3. LLOJET E SISTEMEVE OPERATIVE
E gjitha kjo histori dhe ky zhvillim na kane lene nj shumellojshmeri t gjere
sistemesh operative, prej t cileve jo t gjithe jane gjeresisht t njohur.Ne ket seksion do
t prekim shkurtimisht shtat prej tyre. Me vone gjat librit do t shohim disa prej ketyre
llojeve t ndryshme t sistemeve operative.
1.3.1. SISTEMET OPERATIVE MAINFRAME
Ne skajin me t lart sht sistemi operativ pr mainframe, ato kompjutera me
madhesi sa nj dhome qe akoma gjenden ne koorporatat kryesore t qendrave t t
dhenave. Keto kompjutera e dallojne veten e tyre nga personal computers ne terma t
kapacitetit t tyre I/O. Nj mainframe me 1000 disqe dhe mijera gigabyte t dhena nuk
-
sht i pazakonte. Nj personal kompjuter me keto t dhena me t vertet qe do t ishte i
vjetr.Mainframe gjithashtu po bejne dicka ne prgjigje t serverave Web, servera pr
faqe tregetare elektronike t nj shkalle t lart dhe servera pr transaksionet biznes-me biznes.
Sistemet operative pr mainframe jane veshtiresisht t orientuar drejt proesimit
t shume puneve njeheresh, shumica e t cilave duan madhesi t madhe I/O. Ato ne
menyre tipike ofrojne tre lloje t ndryshme sherbimesh: batch (grumbull, tufe),
transaction proessing (prpunimet transaksion) dhe timesharing. Nj sistem batch sht
nj sistem qe prpunon punet rutine. Prpunimi claims ne nj kompani sigurimi behet ne
menyre tipike nga sistemet batch. Sistemet e prpunimit transaksion merren me numra t
medhenj t kerkesave t vogla, pr shembull, prpunimi check (kontrollo) ne nj banke
apo rezervimet e linjave ajrore. do njsi pune sht e vogel, por sistemi duhet t merret
me qindra ose mijera pr sekonde. Sistemet timesharing lejojne shume prdorues qe t
kryejne pune ne nj kompjuter njeheresh, si ndertimin e nj database t madhe. Keto
funksione jane t lidhur ngusht: Sistemet operative mainframe shpesh i bejne t gjitha
keto. Nj shembull i sistemit operativ mainframe sht OS/390, pasardhes i OS/360.
1.3.2. SISTEMET OPERATIVE SERVER
Nj nivel me posht jane sistemet operative server.Ato veprojne ne servera, t
cilt prdorin shume personal computers, workstations, ose mainframe.Ato i sherbejne
shume prdoruesve ne t njjtn kohe mbi nj rrjet dhe lejojne prdoruesit t ndajne
burimet e hardware-it dhe software-it.Serverat mund t sigurojne sherbim print, sherbim
file, apo sherbim Web.Krijuesit e internetit kane shume makina server qe t suportojne
klientt e tyre dhe Web site prdorin servera pr mbledhjen e faqeve Web (Web pages)
dhe t merren me kerkesat qe vijne. Sistem operativ tipik server sht UNIX dhe
Windows 2000. Gjithashtu edhe Linux po fiton vend pr servera.
1.3.3. SISTEMET OPERATIV MULTIPROESSOR
Nj menyre e zakonshme pr t marre fuqi llogaritse t lart sht t lidhim
shume CPU ne nj sistem t vetm. Duke u varur saktsisht se me cfare jane lidhur dhe
cfare ndajne, keto sisteme quhen kompjutera paralel, multikompjutera ose multiproesor.
Ata duan sisteme operative speciale, por shpesh keto jane variacione ne sistemet
operative server, me dukuri speciale komunikimi dhe lidhjeje.
1.3.4. SISTEMET OPERATIVE PERSONAL COMPUTERS
Kategoria tjetr sht sistemet operative personal computers. Puna e tyre sht
krijimi i nj nderfaqeje pr nj prdorues t vetm. Ato jane gjeresisht t prdorur pr
prpunimin e fjales (word proessing), spreadsheets dhe aksesim interneti. Shembull pr
ket jane windows 98, Windows 2000, sistemi operativ Macintish, dhe Linux. Sistemet
operative Personal computers jane gjeresisht t njohur, keshtu qe duhet nj prezantim
shume i shkurtr i tyre. Ne fakt, shume njerez nuk jane ne dijeni t ekzistnces t
sistemeve t tjere.
-
1.3.5. SISTEMET OPERATIV REAL-TIME (KOHE REALE)
Nj lloj tjetr i sistemeve operativ sht ai real-time. Keto sisteme jane
karakterizuar duke pasur kohen si parametr kyc. Pr shembull, ne sistemet e kontrollit t
proesit industrial, kompjuterat real-time duhet t mbledhin t dhena rrethe proesit t
prodhimit dhe ta prdore at pr t kontrolluar makinat ne fabrike. Shpesh takohen
deadline (viza qe nuk duhet t kalohen). Pr shembull, ne qoftse nj makine leviz posht
nj rresht assembly, veprime t caktuara ndodhin ne momente t caktuara, ne qoft se nj
robot saldimi, saldon shume heret apo shume vone, makina do t shkatrrohet. Ne qoft
se veprimi duhet absolutisht t ndodhe ne nj kohe t caktuar, kemi nj sistem real-time
hard.
Nj tjetr lloj sistemi real-time sht sistemi real-time soft, ne t cilin mungesa e
nj deadline rastesor sht e pranueshme. Audio dixhitale apo sistemet multimedia bien
ne ket kategori. Sisteme t njohur real-time jane: VxWorks dhe QNX.
1.3.6. SISTEMET OPERATIV EMBEDDED (TE NDERFUTURA)
Duke vazhduar posht ne sisteme t vogla e akoma me t vogla, vijme ne
kompjuterat Palmtop dhe ne sistemet embedded. Nj kompjuter Palmtop ose ndryshe nj
PDA (Personal Digital Assistant) sht nj kompjuter i vogel qe mund t qendroje ne
nj xhep kemishe dhe kryen nj numer t vogel funksionesh, si nj liber elektronik
adresash. Sisteme embedded veprojne ne kompjutera ku pajisjet kontrolluese
prgjithesisht nuk mendohen si kompjutera, si pr shembull, TV sets, furre mikrovale,
dhe telefonat mobile. Keto shpesh kane karakteristika t sistemeve real-time por
gjithashtu kane madhesi, memorie dhe frenim fuqie (power restriction) qe i bejne ato
speciale. Shembuj pr sisteme operative t tille kemi PalmOS dhe WindowsCE
(Consumer Electronics)
1.3.7. SISTEMET OPERATIVE SMART CARD
Sistemi me i vogel operativ vepron ne smart cards, t cilt jane pajisje me
madhesine e nj karte krediti qe prmbajne nj chip CPU. Ata kane nj fuqi prpunimi
shume t ashpr dhe shtrengese memorieje. Disa prej tyre mund t kryejne vetm nj
funksion, si pagesat elektronike, por t tjere mund t kryejne shume funksione ne t
njjtn smart card. Shpesh keto jane sisteme proprietar.
Disa smart cards jane t orientuar ne Java. Ajo cfare kjo do t thot sht qe ROM
ne smart card ka nj interpretues pr makinen virtuale Java (Java Virtual Machine, JVM).
Programe t vogla ne Java downloadohen ne card dhe me pas interpretohen nga JVM.
Disa nga keto card mund t merren me shume programe ne Java ne t njjtn kohe, duke
cuar keshtu ne multiprogramim dhe ne nevojen pr skedulim. Menaxhimi dhe mbrojtja e
burimeve gjithashtu behet nj problem kur dy ose me shume programe jane prezent ne t
njjtn kohe. Me keto probleme duhet t merret sistemi operativ prezent ne card.
-
1.4. RISHIKIMI I HARDWARE KOMPJUTERIK
Nj sistem operativ sht i lidhur ngusht me hardware-in e kompjuterit ku ai
vepron. Ai tregon bashkesine e instruksioneve t kompjuterit dhe menaxhon burimet e
tij. Qe t punoje, ai duhet t dije nj pjese t madhe t hardware-it, t paktn si shfaqet
hardware te programuesi.
Konceptualisht, nj personal computer i thjesht mund t konspektohet ne nj
model t ngjashem me at t Fig.1.5.CPU, memoria, pajisjet I/O jane t gjithe t lidhur
nga nj bus sistem dhe komunikojne me njri-tjetrin me anen e ketij bus-i. Personal
computers modern kane nj strukture me komplekse, duke prfshire ketu edhe shume
bus-e, t cilt do ti shohim me vone. Sa pr tani ky model sht i mjaftueshem. Ne
seksionet e ardhshme ne do t rishikojme shkurtimisht keta komponent dhe do t
ekzaminojme disa prej tyre, ata t cilt projektuesit e sistemeve operative jane t
interesuar.
1.4.1. PROESORET
CPU sht truri i kompjuterit. Ai merre instruksione nga memoria dhe i ekzekuton ata. Cikli baze i do CPU sht marrja e instruksionit t pare nga memoria, t
dekodoje at pr t prcaktuar tipin dhe operandet e tij, t ekzekutoje at dhe pastaj
marrja, dekodimi, ekzekutimi i instruksioneve pasues. Ne ket menyre kryhen programet.
do CPU ka nj bashkesi specifike instruksionesh qe ai mund t ekzekutoje.
Keshtu nj Pentium nuk mund t ekzekutoje programet SPARC dhe nj SPARC nuk
mund t ekzekutoje programet Pentium. Ngaqe aksesimi i memorjes, pr t marre nj
instruksion apo nj fjale data zgjat me shume se ekzekutimi i nj instruksioni, t gjithe
CPU prmbajne disa regjistra ne brendesi t tyre, pr t mbajtur variablat kryesore dhe
rezultatet paraprake. Keshtu bashkesia e instruksioneve prgjithesisht ka instruksione pr
-
t marre nj fjale nga memoria ne regjistr, dhe pr t ruajtur nj fjale nga regjistri ne
memorie. Instruksione t tjere kombinojne dy operanda nga regjistrat, memoria apo t dy
ne nj rezultat, si mbledhja e dy fjaleve dhe ruajtja e rezultatit ne nj regjistr apo ne
memorie.
Vec regjistrave t prgjithshem t prdorur pr t mbajtur variablat dhe rezultatet
paraprake, shumica e kompjuterave kane disa regjistra speciale qe jane t dallueshem pr
programuesin. Nj nga keto sht numeruesi i programeve (program counter), qe mban
adresen e memories t instruksionit pasardhes qe do t merret. Pasi ai instruksion sht
marre, program counter shenjon pasardhesin e tij.
Nj tjetr regjistr sht stack pointer, qe shenjon ne krye t stack-ut aktual ne
memorie. Stack prmban nj frame pr do procedure qe ka hyre por akoma nuk ka dale.
Nj frame stack i procedures mban keto parametra input, variabla lokale, variabla
temporan qe nuk mbahen ne regjistr.
Akoma nj tjetr regjistr sht PSW (Program Status Word). Ky regjistr
prmban bitin e kodit kusht, qe vendosen instruksione krahasimi, prioritet i CPU, mode
(user apo kernel), dhe disa bite t tjere kontrolli. Programet user mund t lexojne t plot
PSW, por ne menyre tipike mund t shkruajne vetm disa nga fushat e tij. PSW luan nj
rol t rendesishem n thirrjet sistem dhe I/O.
Sistemi operativ duhet t jet ne dijeni t t gjithe regjistrave. Kur multipleksohet
ne kohe CPU, sistemi opeartiv shpesh do t ndaloje programin vepruese pr t restartuar
nj tjetr. do here qe ndalon nj program veprues, sistemi operativ duhet t save-je t
gjithe regjistrat keshtu qe ata mund t ruhen kur programi t veproje prseri me vone.
Pr t rritur performancen, projektuesit e CPU kane lene modelin e thjesht t
marrjes, dekodimit dhe ekzekutimit t nj instruksioni ne nj kohe. Shume CPU moderne
kane aftsi pr ekzekutimin e me shume se nj instruksioni ne t njjtn kohe. Pr
shembull, nj CPU mund t ket t ndare njsite e marrjes, dekodimit dhe ekzekutimit
keshtu qe nderkohe qe po ekzekutohet instruksioni n, mund t dekodoje instruksionin n+1
dhe t marre instruksionin n+2. Nj organizim i tille quhet pipeline dhe ilustrohet ne
fig.1.6(a) pr nj pipeline me tre stade. Pipeline me t gjat jane t zakonshem, ne
shumice e projektimeve pipeline, menjehere qe pipeline merret ne pipeline, ai duhet t
ekzekutohet. Pipeline u shkakton shkruesve t kompiluesit dhe shkruesve t sistemit
operative dhimbje koke sepse ato u tregojne atyre kompleksitett e makines ne t cilen
ndodhen.
-
Nj projektim akoma me i avancaur se pipeline sht nj CPU superscalar, e
treguar ne fig 1.6 (b). Ne ket projektim, shume njsi ekzekutimi jane prezent, pr
shembull, nj pr arithmetik integer, nj pr arithmetike me presje notuese dhe nj pr
opracionet Booleane. Dy ose me shume instruksione merren njeheresh, dekodohen dhe
hidhen ne nj buffer mbajts deri sa t ekzekutohen. Kur nj execution unit sht i lire
sheh ne bufferin mbajts ne se ka ndonj instruksion qe ai mund ta marre, dhe ne qoft se
ka e merr instruksionin nga bufferi dhe e ekzekuton at.Nj implikim i ketij projektimi
sht se instruksionet e programit shpesh nuk ekzekutohen sipas rradhes.Pr pjesen me t
madhe, i takon hardware t siguroje qe rezultati i prodhuar sht i njjt me at qe do t
kishte bere implementimi sekuencial, por, sic mund t shohim, nj sasi e merzitshme e
kompleksitetit sht ngecur ne sitemin operativ.
Shumica e CPU, duke prjashtuar ato me t thjeshtat, t prdorura ne sistemet
embedded kane dy mode, moden kernel dhe at user, sic sht prmendur dhe me pare.
Zakonisht nj bit ne PSW kontrollon moden. Gjat veprimit t moden kernel, CPU mund
t ekzekutoje do instruksion ne bashkesine e tij t instruksioneve dhe t prdore do
njsi hardware-ik. Sistemi operativ vepron ne mode kernel, duke i dhene t drejt pr t
gjithe hardware-in.
Ne ndryshim, programet user veprojne ne mode user, qe lejon vetm nj
nenbashkesi t instruksioneve t ekzekutohen dhe nj nenbashkesi t njsive t prdoren.
Prgjithesisht, t gjithe instruksionet duke prfshire mbrojtjen I/O dhe t memories jane
t palejuara ne mode user. Gjithashtu edhe vendosja e bitit t PSW ne kernel mode sht
e ndaluar.
Pr t marre sherbime nga sistemi operativ, nj progarm user duhet t beje nj
thirrje sistemi (system call), e cila si t themi ze ne gracke kernelin dhe kerkon sistemin
operativ. Instruksioni TRAP ndryshon nga moda user ne at kernel dhe fillon sistemin
operativ. Kur puna prfundon, kontrolli kthehet t programi user t instruksioni qe vjen
pas thirrjes sistem. Detajet e proesit t thirrjeve sistem do ti shpjegojme me vone ne ket
kapitull. Si nj shenim ne tipografi, ne do t prdorim fontin Helvetica me shkronja t
vogla pr t dalluar thirrjet sistem ne tekstin veprues, si kjo:
sht e rendesishme t themi se ka trape t tjera vec atyre t instruksioneve pr
ekzekutimin e nj thirrjeje sistem. Shumica e trapeve t tjere shkaktohen nga hardware
-
pr t lajmeruar situata prjashtuese si prpjekjen pr t pjestuar me 0 apo nj underflow
t presjes notuese. Ne do rast sistemi operativ merr kontrollin dhe duhet t vendose cfare
t beje. Disa here programi duhet t prfundoje me nj error. Here t tjera error-i mund t
injorohet (nj numer i nenrrjedhur mund t vendoset 0). Ne fund, kur programi ka
shpallur ne advancim se kerkon t merret me kondicione t llojeve t caktuara, kontrolli i
kalon prseri programit duke e lene at t merret me problemin.
1.4.2. MEMORIA
Komponenti i dyt kryesor ne do kompjuter sht memoria. Idealisht, nj
memorie duhet t jet shume e shpejt (me i shpejt se ekzekutimi i nj instruksioni
keshtu qe CPU nuk varet nga memoria), shume e madhe dhe shume e lire. Asnj
teknologji aktuale nuk i prmbush t gjitha keto synime, keshtu qe sht ndjekur nj
rruge tjetr. Sistemi i memories sht i konstruktuar si nj hierarki shtresash, sic tregohet
ne fig 1.7.
Shtresa e siprme prbehet nga regjistrat e brendshem ne CPU. Ato prbehen nga
i njjti material si ai i CPU dhe jane po ashtu po aq t shpejt sa CPU. Si pasoje, nuk ka
asnj vone se ne aksesimin e tyre. Kapaciteti i disponueshem i ruajtjes ne menyre tipike
sht 32x32-bit ne nj
CPU 32-bit dhe 64x64-bit ne nj CPU 64-bit. Me pak se 1KB ne t dy rastet. Programet
duhet t menaxhojne regjistrat (t vendosin se cfare duhet t mbahet ne to), ne software.
Me pas vjen memoria Chace, e cila ne prgjithesi sht e kontrolluar nga
hardware. Memoria kryesore ndahet ne linja chace, ne menyre tipike 64 byte, me adresa 0
deri ne 63 ne linjn chace 0, adresat 64 deri ne 127 ne linjn chaces 1 dhe keshtu me
rradhe. Linjat chace me t prdorura mbahen ne nj chace me shpejtsi t lart e vendosur
brenda ose shume afer CPU. Kur programi duhet t lexoje nj fjale memorieje, hardware
chace kontrollon ne se rreshti i nevojitur sht ne chache ose jo. Ne qoft se sht, qe
quhet chace hit, kerkesa plotsohet nga chace dhe ne memorie nuk dergohet asnj
kerkese me ane t busit t memories kryesore. Chace hit normalisht kerkon dy cikle
clocku. Chace misses (deshtim) duhet t shkoje ne memorie me nj penalitet t
konsiderueshem kohe. Memoria chace sht e limituar ne madhesi qe prkon me koston e
saj t lart. Disa makina kane dy, madje edhe tre nivele chace, secila me e ngadalt dhe
me e madhe se ajo para saj.
-
Me pas vjen memoria kryesore. Kjo sht ajo qe bn punet me t renda ne
sistemin e memories. Memoria kryesore shpesh quhet RAM (Random Access Memory),
me t vjetrit e quajne at edhe core memory. Aktualisht, memoriet jane dhjet ne qindra
megabytes dhe duke u rritur ne menyre t shpejt. T gjitha kerkesat e CPU qe nuk mund
t prmbushen ne chace shkojne ne memorien kryesore.
Me pas ne hierarki jane disqet magnetike (hard disks). Ruajtja ne disk sht dy
here me pak e kushtueshme se RAM pr bit dhe shpesh dy here me e madhe gjithashtu.
Problemi i vetm sht se koha e aksesimit t t dhenave ne t sht rreth tre here me e
ngadalt. Kjo shpejtsi e ulet sht nga fakti se nj disk sht nj pajisje mekanike, sic
tregohet ne fig 1.8.
Nj disk prbehet nga nj ose me shume pajisje metalike ne forme pjat qe
rrotullohen ne 5400, 7200 ose 10800 rpm. Gjithashtu kane edhe bosht t nj krahu
mekanik, mbi pjata nga qoshet, t ngjashme me krahun pickup ne nj fonograf t vjetr
33 rpm. Informacioni shkruhet ne disk ne nj seri qarqesh t koncentruar. Ne do
pozicion krahu t dhene, secila nga kokat mund t lexoje nj pjese unazore e quajtur
track. T gjithe tracks sebashku pr nj pozicion krahu t dhene formojne nj cilinder.
do track sht e ndare ne disa numra sektoresh, ne menyre tipike 512 byte pr
sektor. Ne disqet moderne, cilindrat e jashtm prmbajne me shume sektore se ata t
brendeshmit. Pr t levizur krahun nga nj cilinder ne cilindrin me pas kerkon rreth
1msec. Pr ta levizur at ne nj cilinder t rastesishem kerken 5 deri ne 10 msec, duke u
varur nga drive-i. Sapo krahu t jet ne
krahun e duhur, drive-i duhet t prese pr sektorin e nevojitur qe t rotullohet posht
kokes, nj vone se shtese prej 5 deri ne 10 msec qe varet nga rpm i drive-it. Sapo sektori
t jet posht kokes, leximi ose shkrimi behet ne ne rate prej 5MB/sec ne disqet e
ngadalta deri ne 160MB/sec ne ata t shpejtt.
Shtresa e fundit ne hierarkine e memories sht tape-i magnetik (shiriti magnetik).
Ky mjet shpesh prdoret si nj rezerve i ruajtjes ne disk dhe pr mbajtjen e bashkesive t
t dhenave shume t medha. Pr aksesimin e nj tape, fillimisht duhet t vendoset ne nj
-
lexues tape, nga nj person ose nga nj robot (marrja e automatizuar e tape sht e
zakonshme ne instalimet me database t madhe). Pastaj tape mund t duhet t rrotullohet
prpara pr t arritur ne bllokun e kerkuar. Kjo mund t kerkoje disa minuta. Plus i madh
i tape sht jashtzakonisht pak i kushtueshem pr bit dhe i levizshem, qe sht e
rendesishme pr tape rezerve qe duhet t ruhen jasht ne menyre qe t rezistojne nga
zjarret, prmbytjet, termetet, etj.
Hierarkia e memories qe kemi diskutuar sht tipike, por disa instalime nuk i kane
t gjitha shtresat ose kane t tjera pak t ndryshme (si nj disk optik). Gjithesesi akoma
ne t gjitha prej tyre, kur nj ulet posht ne hierarki, koha e aksesimit t rastesishem rritet
dramatikisht, kapaciteti rritet ne t njjtn menyre dramatike dhe kosto pr bit ulet
pamase. Si pasoje, hierarkit e memories do t jene edhe ne vitet qe vijne.
Vec llojeve t memorieve t diskutuara me sipr, shume kompjutera kane nj sasi
t vogel t qendrueshme memorie me aksesim t rastesishem (random access memory).
Ndryshe nga RAM, memoriet e qendrueshme nuk e humbasin prmbajtjen e tyre kur
nderpritet energjia. ROM (Read Only Memory) programohet ne fabrike dhe me pas nuk
mund t ndryshohet. sht e shpejt dhe jo e kushtueshme. Ne disa kompjutera,
ngarkuesi bootstrap, qe prdoret pr t filluar kompjuterin, ndodhet ne ROM. Gjithashtu,
disa karta I/O me ROM-in merren me kontrollin e pajisjeve t nivelit t ulet.
EEPROM (Electrically Erasable ROM) dhe flash RAM jane gjithashtu t
qendrueshem, por ne ndryshim nga ROM mund t fshihet dhe t rishkruhet. Sidoqoft,
pr ti shkruar ato kerkon me shume se t shkruash RAM, keshtu ato prdoren ne t
njjtn menyre si ROM, vetm me nj dukuri shtese qe tani bn t mundur t korrigjosh
viruset ne programet qe mbajne duke i rishkruar ata ne fushe.
Akoma nj tjetr lloj memorieje sht CMOS, qe sht e paqendrueshme. Shume
kompjutera prdorin memorien CMOS pr t mbajtur kohen dhe datn aktuale. Memoria
CMOS dhe qarku i ores qe inkrementon kohen ne t, jane t fuqizuar nga nj bateri t
vogel, keshtu qe koha update-et (freskohet) ne menyre t sakt, edhe kur kompjuteri sht
i pavene ne prize. Memorja CMOS gjithashtu mund t mbaje parametrat e konfigurimit,
se nga cili disk t boot-oje. CMOS prdoret sepse harxhon pak power saqe bateria e
vendosur qe ne fabrike mund t zgjase pr disa vjet. Gjithsesi, kur fillon t deshtoje,
kompjuteri mund t filloje t ket semundjen Alzheimer, qe harron gjerat qe i ka njohur
pr vite me rradhe, si pr shembull, nga cili disk t boot-oje.
Le t fokusohemi ne memorien kryesore pr pak. Shpesh sht e pelqyeshme t
mbash shume programe ne memorie njeheresh. Ne qoft se nj program bllokohet duke
pritur qe nj lexim disku t kompletohet, nj program tjetr mund t prdore CPU, duke i
dhene nj shfrytzim me t mire CPU. Gjithesesi, me dy ose me shume programe
njeheresh ne CPU, duhet t zgjidhen dy probleme:
1. Si t mbrojme programet nga njri-tjetri dhe tjetrin nga t gjithe ata 2. Si t merret me zhvendosjen
Shume zgjidhje jane t mundeshme. Megjithat t gjitha prej tyre prfshijne pajisjen e
CPU me hardware special.
Problemi i pare sht i dukshem, por i dyti sht pak me delikat. Kur nj program
kompilohet dhe linkohet (bashkohet), kompiluesi dhe linkuesi nuk e dine se ne cvend t memories fizike do t ngarkohet kur programi sht ekzekutuar. Pr ket arsye, ato
-
zakonisht supozojne qe do t filloje ne adresen 0 dhe aty do t vendoset instruksioni i
pare. Supozojme se instruksioni i pare merre nj fjale nga memorja ne adresen 10000.
Tani supozojme se programi i plot dhe t dhenat jane ngarkuar ne adresen 60000. Kur
ekzekutohet instruksioni i pare, do t deshtoje sepse do ti referohet fjales ne 10000 ne
vend t fjales ne 60000. Pr t zgjidhur ket problem, duhet ose t zhvendosim programin
ne kohen e ngarkimit, t gjejme t gjitha adresat dhe ti modifikojme ato, gje e cila mund
t behet por sht e kushtueshme, ose t (skanim i keq)
Zgjidhja me e thjesht tregohet ne fig 1.9(a). Ne ket figure shohim nj kompjuter
t pajisur me dy regjistra special, regjistri baze dhe regjistri limit (Vini re qe ne ket liber,
numrat qe fillojne me Ox jane ne hexadecimal). Kur nj program sht run, regjistri baze
vendoset t shenjoje fillimin e tekstit t programit, dhe regjistri limit tregon sa t medhenj
jane kombinimet e teksitit t programeve dhe t dhenave. Kur nj instruksion duhet t
merret, hardware kontrollon ne se program counter sht me pak se regjistri limit, dhe ne
qoft se sht, e shton at ne regjistrin baze dhe shumen e dergon ne memorie. Ne
menyre t ngjashme kur programi kerkon t marre nj fjale t dhenash (pr shembull,
nga adresa 10000), hardware automatikisht shton prmbajtjen e regjistrit baze me at t
adreses dhe shumen e dergon ne memorie. Regjistri baze e bn t pamundur pr nj
program ti referohet nj pjese memorieje posht tij. Pr me tepr, regjistri limit e bn t
pamundur ti referohet nj pjese t memories sipr tij. Keshtu kjo skeme zgjidh qe t dy
problemet, at t mbrojtjes dhe at t zhvendosjes ne saj t dy regjistrave t rinj dhe nj
rritje t vogel t ciklit t kohes (pr t prformuar kontrollin dhe shtimin limit (limit
check and addition))
-
Rezultati i kontrolluar dhe i hartuar sht ne konvertimin e nj adrese t gjeneruar
nga programi, e quajtur adrese virtuale, ne nj adrese t prdorur nga memoria, e quajtur
adrese fizike. Ajo qe bn kontrollin dhe hartimin quhet MMU (Memory Management
Unit). sht e vendosur mes CPU-se dhe memories.
Nj MMU me e sofistikuar tregohet ne fig 1.9(b). Ketu ne kemi nj MMU me dy
cift regjistrash baze dhe limit, nj pr tekstin e programit dhe nj pr t dhenat. Program
counter-i dhe t gjitha referencat e tjera t tekstit t programit prdorin ciftin e I-re dhe
ato t t dhenave prdorin ciftin II-t. Si rrjedhim, tani sht e mundur t kesh shume
prdorues qe ndajne t njjtin program me nj kopje t vetme ne tij ne memorie, gje jo e
mundur me skemen e pare. Kur programi 1 po vepron, katr regjistrat jane t vendosur t
shenuar me shigjeta ne t majt t fig 1.9(b). Kur po vepron programi 2, ato jane
vendosur t shenuar me shigjeta ne t djatht t figures. Ekzistojne MMU akoma me t
sofistikuara. Disa prej tyre do ti shohim me vone ne ket liber. Ajo qe duhet t veme re
ketu sht qe menaxhimi i MMU-se duhet t jet nj funksion i sistemit operativ,
prderisa prdoruesit nuk mund t jene t besuar se e bejne ne menyre korrekte.
Dy aspekte t sistemit memorie kane efekt kryesor ne performance. Se pari,
chace-t fshehin shpejtsine relativisht t ulet t memories. Kur nj program ka qene ne
-
veprim pr pak kohe, chace sht plot me linjat chace t ketij programi, duke dhene nj
performance t mire. Sidoqoft, kur sistemi operativ ndryshon nga njri tek tjetri, chace
mbetet plot me linjat chace t programit t pare. Ato qe duhen nga programi i pare duhet
t merren nj e nga nj nga memoria fizike.
Se dyti, kur behet ndryshimi nga nj program t tjetri, regjistrat MMU duhet t
ndryshohen. Ne fig 1.9(b), duhet t risetohen vetm 4 regjistra, qe nuk sht shume
problem, por ne MMU t verteta, duhet t ringarkohen shume regjistra, ne menyre
dinamike apo ne menyre eksplicite, sipas nevojes. Secila rruge qe duhet ndermarre
kerkon kohe. Morali i kesaj sht se ndryshimi nga njri program t tjetri, sic quhet
context switch, sht nj biznes me t vertet shume i kushtueshem.
1.4.3. PAJISJET I/O
Memorja nuk sht i vetmi burim qe duhet t menaxhohet nga sistemi
operativ.Pajisjet I/O gjithashtu bashkeveprojne ngusht me sistemin operativ. Sic e pame
ne fig 1.5, pajisjet I/O prgjithesisht prbehen nga dy pjese: kontrolleri dhe pajisja vet.
Kontrolleri sht nj chip ose nj bashkesi chipesh ne nj plugboard qe fizikisht
kontrollon pajisjen. Ai pranon komanda nga sistemi operativ, pr shembull, t lexoje t
dhena nga pajisja dhe ti marre ato.
Ne shume raste, kontrolli aktual i pajisjes sht shume i komplikuar dhe i
detajuar, keshtu qe sht puna e kontrollerit ti paraqese nj nderfaqe me t thjesht
sistemit operativ. Pr shembull, nj kontroller disku mund t pranoje nj komande leximi
pr sektorin 11206 nga disk 2. Pastaj kontrolleri duhet t konvertoje ket numer linear
sektori ne nj cilinder, sektor dhe koke (head). Ky konvertim mund t jet i komplikuar
nga fakti qe cilindrat e jashtm kane me shume sektor se ato t brendeshmit dhe disa
sektor t demtuar jane hartuar ne t tjere t rinj. Pastaj kontrolleri duhet t prcaktoje se
kraku i diskut ne cilin cilinder sht dhe ti jap atij nj sekuence pulsesh pr t levizur
brenda apo jasht numerit t kerkuar t cilindrave. Atij i duhet t prese deri kur sektori i
duhur t rrotullohet posht kokes dhe pastaj t filloje leximin dhe ruajtjen e biteve, ashtu
sic ato vijne nga drive, t heqe paraardhesit dhe t llogarise checksum-in. Se fundmi, ai
duhet t grumbulloj bitet hyrese ne fjale dhe ti ruaj ne memorie. Pr t bere gjithe ket
pune, kontrollerat shpesh prmbajne kompjutera embedded qe programohen pr t
bere punen e tyre.
Pjesa tjetr sht pajisja aktuale vet. Pajisjet kane nderfaqe t thjeshta, sepse nuk
mund t bejne shume dhe ti bejne ato standarte. Kjo e fundit duhet sepse pr shembull
do kontroller disk IDE mund t merret me do disk IDE.IDE qe sht Integrated Drive
Electronics, sht tipi standart i diskut ne Pentium dhe disa kompjuterave t tjere.
Prderisa nderfaqja aktuale e pajisjes sht e fshehur pas kontrollerit, gjithe ajo cka sheh sistemi operativ sht nderfaqa t kontrolleri qe mund t jet shume e ndyshme nga
nderfaqja e pajisjes.
Meqe do lloj kontrolleri sht i ndryshem, duhen software t ndryshme pr t
kontrolluar secilin nga ato. Software qe merret me kontrollerin, duke i dhene atij
komanda dhe duke pranuar prgjigjet, quhet driveri i pajisjes (device driver). Ndertuesit e
kontrollerave batch duhet t pajisin nj driver pr secilin sistem operativ qe suportojne.
Keshtu pr shembull, nj skaner mund t shkoje me nj driver pr Windows 98, Windows
2000 dhe UNIX.
-
Driveri, qe t veproje ne moden kernel, duhet t vendoset ne sistemin operativ.
Teorikisht, driverat mund t veprojne edhe jasht modes kernel, por pak sisteme aktuale e
suportojne ket mundesi sepse ai kerkon aftsine pr t lejuar nj driver pr hapesiren e
prdoruesit, pr t mund t aksesuar pajisjen ne nj menyre t kontrollueshme, dukuri e
suportuar rralle. Ka tre menyra qe driveri mund t vendoset ne kernel. Menyra e pare
sht t rilidhesh (relink) kernelin me nj driver t ri dhe pastaj ta reboot-osh sistemin.T
shumt jane sistemet UNIX qe punojne ne ket menyre. Menyre e dyt sht qe t bejme
nj hyrje (entry) ne nj file t sistemit operativ duke i treguar qe i duhet nj driver dhe
pastaj reboot-ojme sistemin. Ne kohen e boot-imit, sistemi operativ shkon dhe gjen
driverat qe i duheshim dhe i merr ato. Ne ket menyre punon Windows. Menyra e tret
sht qe sistemi operativ t jet ne gjendje t pranoje drivera t rinj gjat veprimit dhe ti
instaloje ata pa patur nevojen qe ti boot-oje. Kjo menyre ka pasur prdorim t pakt por
ne ditt e sotme po gjen me shume shtrirje pr prdorim. Pajisje t tilla si USB apo IBEB
1394 (t diskutuara me pare) gjithmone duan drivera t ngarkuara ne menyre dinamike.
do kontroller ka nj numer t vogel regjistrash qe prdoren pr t bere t mundur
komunikimin me t. Pr shembull, nj kontroller disku minimal mund t ket regjistra pr
t specifikuar adresen e diskut, adresen e memories, numrin e sektoreve dhe drejtimin
(lexim apo shkrim). Pr aktivizimin e kontrollerit, driveri merr nj komande nga sistemi
operativ dhe me pas e prkthen at ne vlerat e duhura pr t shkruar ne regjistrat e
pajisjes.
Ne disa kompjutera, regjistrat e pajisjes jane hartuar ne hapesiren e adresave t
sistemit operativ, keshtu ato mund t lexohen apo shkruhen si fjale t zakonshme t
memories. Ne kompjutera t tille nuk nevojitet asnj instruksion special I/O dhe
programet user mund t mbahen larg nga hardware-i duke mos vendosur keto adresa
memorjeje ne shtrirje t tyre (pr shembull, duke prdorur regjistrat baze dhe regjistrat
limit). Ne kompjutera t tjere, regjistrat e pajisjes jane ne nj hapesire speciale t portave
I/O, ku secili regjistr ka nj adrese port. Ne keto makina, instruksione speciale IN dhe
OUT jane t disponueshem ne moden kernel pr t lejuar driverat t lexojne apo t
shruajne regjistrat. Skema e meparshme eliminon nevojen e instruksioneve speciale I/O
por prdor nj pjese t hapesires se adresave. Kjo e fundit nuk prdor fare hapesire t
adresave por kerkon instruksione speciale. Qe t dy keto sisteme jane gjeresisht t
prdorshem.
Inputi dhe outputi mund t behen ne tre menyra t ndryshme. Ne metoden me t
thjesht, nj program user leshon (kryen) nj thirrje t sistemit, t cilen kerneli e
shnderron me pas ne nj thirrje procedure pr driverin e duhur. Me pas driveri fillon I/O
dhe qendron ne nj right loop dhe ne menyre t vazhdueshme duke i bere sondazh
pajisjes t shoh ne se sht bere (zakonisht ka disa bit qe tregojne se pajisja sht akoma
e zene). Kur I/O ka prfunduar, driveri vendos t dhenat aty ku ato nevojiten (ne qoft se
ka t tille) dhe kthehet. Me pas sistemi operativ i kthen kontrollin thirresit. Kjo metode
quhet busy waiting.
Metoda e dyt sht qe driveri t startoje pajisjen dhe ti kerkoje atij ti jape nj
interrupt kur t mbaroje. Ne at pike driveri kthehet. Pastaj sistemi operativ, ne qoft se
nevojitet, bllokon thirresin dhe sheh pr ndonj pune tjetr pr t bere. Kur kontrolleri
hap fundin e transferimit, pr t sinjalizuar kompletimin gjeneron nj interrupt.
Interruptet jane shume t rendesishme ne sistemin operativ, keshtu qe le t
ekzaminojme me afer ket ide. Ne fig 1.10(a). shohim nj proes tre-hapash pr I/O. Ne
-
hapin e pare, driveri i tregon kontrollerit duke shkruar ne regjistrat e pajisjes se tij se
cfare t beje. Me pas kontrolleri starton pajisjen. Kur kontrolleri ka mbaruar shkrimin ose
leximin e numrave t byteve qe i sht caktuar t transferoje, sinjalizon chip kontrollerin
e interruptit duke prdorur linja busi t caktuara ne hapin e dyt. Ne qoft se kontrolleri i
interruptit sht i prgatitur pr t pranuar interruptin (i cili mund t mos jet ne qoft se
sht i zene me nj tjetr me prioritet me t lart), ai shpall nj pin chipin CPU-se duke e
informuar at, ne hapin tret. Ne hapin e katrt, kontrolleri interruptit vendos numrin e
pajisjes ne bus ne menyre qe CPU mund ta lexoje at dhe t dije se cila pajisje ka
mbaruar (shume pajisje mund t jene ne veprim ne t njjtn kohe).
Sapo CPU ka vendosur t marre interruptin, program counter-i dhe pastaj PSW,
ne menyre tipike shtyhen ne stack-un aktual dhe CPU ndryshon ne kernel mode. Numri i
pajisjes mund t prdoret si nj index ne pjese t memories pr t gjetur adresen e
mbajtsit t interruptit pr pajisjen. Kjo pjese e memories quhet interrupt vector. Sapo
mbajtsi i interruptit (pjese e driverit pr pajisjen qe sinjalizon interrupt) t ket startuar,
ai heq stacked program counter dhe PSW dhe i ruan ato, pastaj pyet pajisjen pr t
mesuar statusin e saj. Kur mbajtsi i interruptit ka prfunduar, ai kthehet ne programin
user qe me pare ishte ne veprim, ne instruksionin e pare qe akoma nuk ishte ekzekutuar.
Keto hapa tregohen ne fig.1.10(b).
Metoda e tret pr t bere punet I/O prdor nj chip special DMA (Direct Memory
Access) qe mund t kontrolloje rrjedhen e biteve mes memories dhe disa kontrollerave pa
nderhyrjen konstant t CPU. CPU e nderton chipin e DMA, duke i treguar sa byte t
transferoje, duke prfshire adresat e pajisjes dhe memories dhe drejtimin, dhe e le t
vazhdoje. Kur behet chipi i DMA, ai shkakton nj interrupt, i cili trajtohet sic thame me
-
sipr. Hardware-i DMA dhe I/O ne prgjithesi do t prshkruhet me shume ne detaje ne
kapitullin 5.
Shpesh interruptet mund t ndodhin ne momente t paprshtatshme, pr shembull,
kur nj tjetr mbajts interrupti (interrupt handler) sht ne veprim. Pr ket arsye, CPU
ka nj menyre qe t beje t paaft interruptet dhe pastaj ti aftsoje prseri me vone.
Nderkohe qe interruptet jane joaktive, do pajisje mund t gjeneroje interrupte, por CPU
nuk nderpritet deri sa t aktivizoje prseri interruptet. Ne qoft se, pajisje t shumta
mbarojne qe interruptet jane t caktivizuar, kontrolleri i interruptit vendos se cilin t lere t parin, zakonisht bazuar ne prioritetin statik i shenuar t do pajisje. Pajisja me prioritet
me t lart fiton.
1.4.4. BUSET
Organizimi i figures 1.5. ishte i prdorur pr vite me rradhe ne minikompjutera
dhe gjithashtu ne personal computer IBM. Gjithesesi, me arritjen e proesoreve dhe
memories me t shpejt, aftsia e nj busi t vetm (dhe sigurisht busi IBM PC) pr tu
marre me t gjithe trafikun ishte sforcuar deri ne piken me t fundit. Dicka duhet t
behej. Si rezultat i kesaj, u shtuan buse shtese, pr t pajisje I/O me t shpejta dhe
gjithashtu pr t minimizuar trafikun CPU-memorie. Si pasoje e ketij evoluimi, nj sistem
i madh Pentium aktualisht Jooks, dicka si ne fig.1.11.
-
Sistemi ka te buse (chace, local, memory, PCI, SCSI