Download as pdf or txt
Download as pdf or txt
You are on page 1of 549

KAPITULLI I

HYR1E
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). thene ndryshe nj sistem sht shume i komplikuar. !r t
shkruar programe qe ndjekin dhe prdorin t gjitha keto komponent sht "ertet nj
pune shume e "eshtire. !r ket arsye komjuterat jane t pajisur me nj shtrese software#i
qe quhet sistem operati", detyra e t $ilit sht t mena%hoje t gjitha keto pajisje (de"i$e)
dhe t siguroj programe"e t prdoruesit nj nderfaqe me t thjesht me hardware#in. !ra
subjekti i ketij libri jane pikerisht keto sisteme.
Ne fig.&.& tregohet menyra e "endosjes ne nj sistem operati". Ne fund kemi hardware#
in, i $ili ne shumi$en e raste"e ka dy ose me shume ni"ele (shtresa). Ne ni"elin me t ulet
jane pajisjet fi'ike, t $ilat prbehen nga qarqe t integruara $hip#esh, tela (wires), tuba
me re'e katodike dhe pajisje t tjera t ngjashme me keto. (enyra e konstruktimit dhe e
punimit t tyre sht pune e in%hinierit elektrik.
Ne ni"elin pasardhes kemi mikro arkitekturen, ne t $ilen pajisjet fi'ike grupohen
pr t formuar njsi funksionale. )y ni"el prmban disa regjistra brenda ne *!+ dhe nj
rruge kalimi t dhenash (data path) qe prfshin nj njsi arithmetike llogjike (,-+#
,rithmeti$ -ogi$ +nit). Ne do $ikel $lo$k#u merren dy operanda nga regjistrat dhe me
to kryhen "eprime ne ,-+. .e'ultati 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)
! a j i s j e t / i ' i k e
( i k r o , r k i t e k t u r a ( . r e g j i s t r a t d h e d a t a p a t h ) 0 1 w a n d 2 3 $ o n t r o l l e r 4
5 j u h a ( a k i n e # 6 1 , l e " e l ( 7 8 # 9 8 8 i n s t r # s p e $ i a l d e " i $ e r e g i s t e r )
1 i s t e m i : p e r a t i " ( k e r n e l m o d e )
) o m p i l u e s i d i t o r i 6 n t e r . k o m a n d . ( s h e l l )
1 i s t . ; a n k a r 1 i s t . ) o n t r o l l 3 e b ; r o w s e r
( ( i k r o $ h i p , p o w e r s u p p l y , t e l e t j )
+ s e r m o d e + s e r m o d e + s e r m o d e
, p l i k i m e t
! r o g r a m e t
1 i s t e m
2 a r d w a r e
<ellimi i data path#it sht t ek'ekutoje disa bashkesi instruksionesh. =isa nga
keto mund t behen ne nj $ikel t "etm data path, t tjerat kerkojne me shume $ikle data
#path. )eto instruksione mund t prdorin regjistrat ose pajisje t tjera hardware#ike.
2ardware#i dhe instruksionet t para sebashku nga nj programues i gjuhes assembler
formojne ni"elin 61, (6nstru$tion 1et ,r$hite$ture). 1hpesh ky ni"el quhet gjuhe makine.
5juha makine ka 78 deri ne 988 instruksione, shumi$a prdoren pr le"i'ur t
dhena ne makine, pr "eprime arithmetike dhe pr t krahasuar "lera. Ne ket ni"el
pajisjet 6/: kontrollohen duke ngarkuar "lera ne regjistra spe$ial t pajisje"e (de"i$e
register). !r shembull, nj disk mund t komandohet t le%oje duke ngarkuar ne
regjistrat e tij "lerat e adreses se diskut, adreses se memories qendrore, numrin e byte#"e
dhe "eprimin (le%im ose shkrim). !raktikisht ne"ojiten me shume parametra dhe statusi
qe kthehet nga dri"e#ri pas nj opera$ioni t $aktuar sht "ertet shume kompleks. >e$
kesaj, ne shume pajisje 6/: kohe'imi (timing) luan nj rol t rendsishem ne programim.
!r t mos patur kete kompleksitet sigurohet nj sistem operati". )y 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 operati" kemi software#t e sisteme"e. )etu kemi interpretuesin
e komanda"e (shell), sistemet dritare (window systems), kompiluesit, editoret dhe
programe t "arura nga aplika$ione t tilla. ?sht e rendesishme t kuptojme se keto
programe nuk jane pjese e sistemit operati", edhe pse ato sigurohen nga prodhuesit e
kompjutera"e. )jo sht nj $eshtje kritike dhe delikate. @akonisht sistemi operati" sht
ajo pjese e software#it qe "epron ne kernel mode ose super"isor mode. )y mbrohet nga
nderhyrjet e prdoruesit neprmjet hardware#it (duke injoruar pr momentin disa
mikroproesore qe nuk kane fare mbrojtje hardware#ike). )ompiluesit dhe editoret
"eprojne ne user mode. Ne qoft se nj prdorues nuk pelqen nj kompilues, ai mund t
shkruaje "et nj tjetr t tille, por ai nuk mund t shkruaje nj mano"rues $lo$ku t
interrupte"e ($lo$k interrupt handler), i $ili sht pjese e sistemit operati" dhe qe
normalisht mbrohet nga hardware ne menyre qe prdoruesi t mos e modifikoje at.
=isa here, ky dallim ne sistemet e futura (mund t mos kene kernel mode) apo ne
sistemet e interpretuara (sistemet operuese t ba'uar ne Aa"a t $ilt prdorin
interpretimin pr t ndare komponentt dhe jo hardware#in) mund t 'behet. !r
kompjuterat tradi$ional sistemi operati" sht akoma ai qe "epron ne kernel mode.
Ne shume sisteme ka programe t $ilt "eprojne ne user mode, por qe ndihmojne
sistemin operati" ose prformojne funksione t pri"ilegjuara. !r shembull, shpesh kemi
nj program qe i lejon prdoruesit t ndryshoje fjalekalimin. )y program nuk "epron ne
kernel mode dhe nuk sht pjese e sistemit operati", 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
tradi$ionalisht quhet sistem operati" "eprojne ne nj hapesire pr prdoruesin (user
spa$e). Ne sisteme t tilla sht shume e "eshtire t "endosesh nj kufi t qart. Bdo gje
qe "epron ne kernel mode sht qartsisht pjese e sistemit operati", por disa programe qe
"eprojne jasht kesaj jane pjese t diskutueshme t tij, ose t paktn jane t lidhur ngusht
me t.
(e ne fund, sipr programe"e sistem kemi programet aplikati"e. )eto programe
jane marre ose jane shkruar nga prdoruesi pr t bere t mundur 'gjidhjen e probleme"e
t ndryshme, si operim me fjalet, llogaritjet in%hinierike apo grumbullimin e
informa$ionit ne nj database.
1.1. CFARE SHT N1 SISTEM OPERATIV?
1humi$a e prdorues"e t kompjuterit kane pasur eksperien$e me ndonj sistem
operati", por sht shume e "eshtire t fiksosh se $fare bn saktsisht nj sistem operati".
!jese e problemit sht edhe fakti qe sistemi operati" kryen dy funksione qe rrenjsisht
nuk kane lidhje me njri tjetrin, 'gjerimin e makines (e%tending the ma$hine) dhe
mena%himin e burime"e (managing the re$ourses). !rgjithesisht duhet t keni degjuar
"etm pr njren nga keto dy funksione. -e ti shohim t dy funksionet me ne detaje.
1.1.1. SISTEMI OPERATIV SI N1 EXTENDED MACHINE
1i$ kemi prmendur, arkitektura (bashkesia e instruksione"e, organi'imi i
memorjes, 6/: dhe struktura e bus#e"e) e shume kompjutera"e ne ni"elin e gjuhes makine
sht e thjesht dhe e njohur nga programi, "e$anerisht pr pajisjet 6/:. !r ta
konkreti'uar me shume ket le t shohim se si behet nj floppy dis$ 6/: duke prdorur
$hips kontrollues t prshtatshem N* !=CD7, t $ilt prdoren ne shumi$en e
kompjutera"e personal 6ntel#based.(!rgjat librit ne do t prdorim termat Efloppy diskF
dhe EdiskretF ne "end t njri#tjetrit). !=CD7 ka &D komanda, se$ila e spe$ifikuar me nj
ngarkese mes & dhe G byte#sh ne nj de"i$e regjistr. )eto komanda jane pr t le%uar
dhe shkruajtur t dhena, pr t le"i'ur krahun e diskut (dis$ arm) dhe pr t formatuar
tra$k#et, si dhe pr t filluar, ndjere, rifilluar, rikalibruar kontrolluesin dhe dri"e#rat.
)omandat me themelore jane le%im dhe shkrim, se$ila prej tyre kerkon &9
parametra, t paketuar ne G bite. )eto parametra spe$ifikojne terma t tille si adresa e
bllokut t diskut pr tu le%uar, numri i sektore"e pr tra$k, menyra e regjistrimit ne
mediumin fi'ik dhe $fare t beje me shenjn e adreses se t dhena"e t fshira (deleted#
data#address#mark). (os u mer'isni ne se nuke kuptoni ket ngatrrese fjalesh, kjo sht
pikerisht $eshtja paksa konfiden$iale. )ur opera$ioni prmbushet, $hip#i kontrollues
rikthen H9 statuse dhe fusha gabimi t paketuara ne C byte. 1ikur kjo t mos mjaftonte
programuesi i floppy diskut duhet gjithashtu t jet "a'hdimisht i "emendshem ne se
motori sht i nde'ur apo i fikur. Ne se motori sht i fikur, ai duhet t ndi'et (me nj
"onese t gjat startup#i) para se t dhenat t mund t le%ohen apo t shkruhen. (otori
nuk duhet lene nde'ur pr nj kohe t gjat sepse floppy disk demtohet. Ne ket menyre
programuesit i duhet t merret me kombinimin me t mire t "onesa"e t gjata t startup#
it kundrejt demtimit t floppy disk#ut (dhe t humbase t dhena ne to).
=uke mos u futur ne detaje, duhet t jet e qart se nj pjese e mire e
programuese"e nuk pelqejne t futen thelle ne programimin e floppy disqe"e ( ose hard
disks, t $ilt jane po aq kompleks dhe shume t ndryshem). ,jo $fare do nj programues
sht e thjesht, t merret me abstraktsion t ni"elit t lart. Ne rastin e disqe"e,
abstraksion tipik do t ishte prmbajtja e nj bashkesie file#sh me emra ne disk. 1e$ila
file hapet pr le%im ose shkrim, pastaj le%ohet ose shkruhet dhe ne fund mbyllet.
!rogrami, i $ili fsheh t "ertetn e hardware#it nga programuesi dhe shfaq nj
paraqitje t kendshme dhe t thjesht t file#"e t emeruara, t $ilat mund t le%ohen apo t
shkruhen sht sistemi operati". 1istemi operati" ashtu si$ fsheh hardware#in nga
programuesi dhe jep nj paraqitje t thjesht t orientuar nga file#t, gjithashtu 'hduk
shume problem siI interrupt#et, kohe'usat, mena%himin e memorjes dhe dukuri t tjera t
ni"elit t ulet. Ne raste t tilla, sistemi operati" ofron nj abstraksion me t thjesht dhe
me t leht pr tu prdoruar se sa ai i ofruar nga hardware#i prkats.
Ne ket kend"eshtrim, funksioni i nj sistemi operati" sht t pre'antoje
programuesin me ekuli"alenten e nj extended machine ose nj makine virtuale qe
sht me e leht pr tu programuar se hardware#i prkats. (enyra se si sistemi operati"
arrin ket qellim sht nj histori e gjat, t $ilen do ta shohim ne detaja ne "a'hdimin e
librit. 1a pr ta prmbledhur, sistemi operati" siguron nj shumellojshmeri sherbimesh t
$ilt merren nga programet duke prdorur instruksione spe$iale t quajtura thirrje t
sistemit (system $alls). (e tej ne ket kapitull do t shohim disa nga thirrjet e sisteme"e
me t 'akonshme.
1.1.2. SISTEMI OPERATIV SI N1 RECOURSE MANAGER
)on$epti i sistemit operati" si nj sigurim t nj nderfaqeje t thjesht pr
prdoruesit e tij sht nj "eshtrim top#down. Nj alternati"e, "eshtrimi bottom#up
konsiston ne faktin qe sistemi operati" sht pr t mena%huar t gjitha pjeset e nj
sistemi kompleks. )ompjuterat modem prbehen nga proesoret, memoriet, kohuesat,
disqet, mous#et, nderfaqesit e network#ut, printerat dhe nj shumllojshmeri e njsi"e t
tjera. Ne pamjen alternati"e, puna e sistemit operati" sht pr t siguruar nj lokali'im t
kontrolluar dhe t rradhitur t proesore"e, memorie"e dhe njsi"e 6/: prgjat njsi"e t
programe"e t ndryshem konkurues me ta.
6magjinoni se $fare do t ndodhte ne se 9 programe qe "eprojne (running) ne t
njjtin kompjuter t mund t printonim outputin e tyre ne menyre t njpasnjshme ne t
njjtin printer. .reshtat e pare mund t ishin nga programi i pare, pasardhesit nga
program i dyt, pr t "a'hduar me ato t programit t tret e keshtu me rradhe..e'ultati
do t ishte nj kaos. 1istemi operati" mund t sjelle rregull ne t tilla raste duke $uar t
gjithe outputin e destinuar pr ne printer, ne buffer. )ur nj program mbaron, sistemi
operati" 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 "a'hdoje t gjeneroje me shume
output, duke mos marre ne konsiderate faktin qe output nuk po shkon realisht ne printer
(akoma).
)ur nj kompjuter (ose network) ka prdorues t shumfisht, ne"oja pr t
mena%huar dhe mbrojtur memorien, njsite 6/: dhe burimet e tjera sht akoma me e
madhe, prderisa prdoruesit mund t interferojne t njri#tjetri. !r me tepr, prdoruesit
shpesh kane ne"oje t ndajne jo "etm hardware#in por edhe informa$ionin (file#t,
database, etj), gjithashtu. Ne menyre t prmbledhur kjo pamje e sistemit operati" tregon
qe detyra e tij kryesore sht t ruaj gjurmet e atij qe po prdor se$ilin burim, t plotsoj
kerkesat e burime"e dhe t nderhyje ne kerkesat konfliktuale nga programe dhe prdorues
t ndryshem.
(ena%himi i burime"e prfshin burimet e multipleksuara (sharing) ne dy menyraJ
ne kohe dhe ne hapesire. )ur nj burim sht i multipleksuar ne kohe programe ose
prdorues t ndryshem 'ene rradhe ne prdorimin e tij. /illimisht nj prej tyre e prdor
burimin, pastaj nj tjetr, e keshtu me rradhe. !r shembull, "etm me nj *!+ dhe
programe qe duan t "eprojne, sistemi operati" fillimisht lokali'on *!+ ne nj program,
dhe pasi ai t ket "epruar pr nj kohe t gjat, nj tjetr merr prdorimin e *!+, pastaj
nj tjetr dhe me "one prseri i pari. !r$aktimi se si burimi sht i multipleksuar ne
kohe, kush e ka rradhen dhe sa do t 'gjase sht detyra e sistemit operati". Nj shembull
tjetr i multipleksimit ne kohe sht ndarja e printerit. )ur pune shumefishe t printerit
rradhiten pr nj printer t "etm, duhet marre nj "endim se $fare do t printohet pastaj.
-loji tjetr i multipleksimit sht multipleksimi ne hapesire, ne "end qe
konsumatoret t 'ene rradhe, se$ili merr nj pjese t burimit. !r shembull, memorja
kryesore normalisht ndahet ndermjet disa programe"e "epruese ne menyre qe se$ili t
jet resident ne t njjtn kohe (pr shembull, ne menyre qe t 'ene rradhe pr prdorimin
e *!+). =uke supo'uar qe ka memorje t mjaftueshme pr t mbajtur programe t
shumefishta sht me efi$ente t mbash disa programe ne memorie njeheresh se sa nj
prej tyre, "e$anerisht ne se ai ka ne"oje "etm pr nj sasi t "ogel t totalit. 1igurisht qe
kjo i rrit prin$ipet e ndershmerise, mbrojtjes e keshtu me rradhe, gje e $ila sht ne dore
t sistemit operati" pr ti 'gjidhur. Nj burim tjetr i multipleksuar ne hapesire sht hard
disku. Ne shume sisteme nj disk i "etm mund t mbaje file nga shume prdorues ne t
njjtn kohe. -okali'imi i hapesires se diskut dhe ruajtja e gjurme"e t atij qe po prdor
se$ilin disk sht nj detyre tipike e mena%himit t burime"e nga sistemi operati".

1.2. HISTORIA E SISTEMEVE OPERATIVE
1istemet operati"e kane qene ne 'h"illim prgjat ketyre "ite"e. Ne seksionet e
meposhtme do t shohim shkurtimisht disa nga me kryesoret. (eqe sistemet operati"e
historikisht kane qene t lidhur ngusht me arkitekturen e kompjuterit ne t $ilin
"eprojne, ne do t shohim ne gjeneratat e sukseshme t kompjutera"e, ne menyre qe t
shohim se si kane qene sistemet operati"e. (enyra e t parit t gjenerata"e t sistemit
operati" ne gjeneratat e kompjuterit sht e patakt, por gjithsesi na krijon disa struktura
ku prndryshe nuk do t kishim asnj.
)ompjuteri i pare di%hital sht di'enjuar nga matemati$ieni angle' *harles
;abbage (&CGH K &LC&). dhe pse ;abbage har%hoi shumi$en e jets se tij duke u
munduar t ndertoje motorrin analitik (Eanalyti$al engineF) ai nuk mundi kurre t punoje
ne t pasi ky ishte shume i "arfer mekanikisht dhe teknologjia e dit"e t tij nuk mund
t prodhonte gomat, mekani'mat dhe rrotat e ni"elit qe ai kishte ne"oje. pane"ojshme
t thuhet, motorri analitik nuk k ishte nj sistem operati".
1i nj ane interesante historike, ;abbage 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 ,da
-o"ela$e, e $ila ishte e bija e poetit t madh angle' -ord ;yron, si programuesen e pare
ne bot. 5juha e programimt ,da, quhet keshtu ne respekt t emrit t saj.
1.2.1. G1ENERATA E PARE. VACCUM TUBES DHE PLUGBOARDS
!as prpjekje"e pa sukses t ;abbage, sht bere nj progres shume i "ogel pr
konstruktimin e kompjutera"e di%hital deri pas lufts se dyt botrore. .reth "ite"e &GM8,
2oward ,iken ne 2ar"ard, Aohn "on Neumann ne institutin e studime"e t a"an$uar ne
!rin$eton, A. !respr $kert dhe 3illiam (auehley ne uni"ersitetin e !ennsyl"annia dhe
)onrad @use ne gjermani, ndryshe nga t tjeret t gjithe patn sukses ne ndertimin e
makina"e llogaritse. N parat prdoren prfor$ues mekanike por ishin shume t
ngadalta, me $ikle kohe t matur ne sekonda. !rfor$uesit me "one u 'e"endesuan me
"a$$um tubes. )eto makina ishin t medha, duke mbushur dhoma t tra me dhjetra
mijera "a$$um 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 "etm njer'ish di'enjuan, ndertuan, programuan, operuan
dhe ruajtn se$ilen makine. Bdo programim behej ne gjuhe makine, shpesh duke lidhur
plugboard#e pr t kontrolluar funksionet kryesore t makines. 5juhet e programimit
ishin t panjohura (edhe gjuha assembly ishte e tille). 1istemet operati"e ishin t
padegjuar. :perimi i 'akonshem nga nj prdorues ishte t hynt pr blo$k t kohes,
pastaj shkon posht ne dhomen e makines, "endos plugboard#in tij ne kompjuter dhe
kalon disa ore duke shpresuar qe asnj nga H8888 apo di$ka e tille "a$$um tubes t mos
digjen gjat "eprimit. >irtualisht t gjithe problemet ishin t drejtuara nga llogaritje
numerike si studimi i tabela"e t sinusit, kosinusit dhe logaritme"e.
Ne fillimet e para t &G78, rutina kishte 'buluar di$ka me pre'antimin epun$hed
$ards. Nani ishte e mundur t shkruaje programe ne $ard dhe t le%oje ato ne "end t
prdorimit t plugboard#e"e, prndryshe pro$edura ishte e njjt.
1.2.2. G1ENERATA E DYT (1955-65). TRANZISTORET DHE BATCH
SYSTEMS
!re'antimi i tran'istore"e ne mes t "ite"e &G78 ndryshoi pamjen rrenjsisht.
)ompjuterat u bne t besueshem aq sa mund t prodhoheshin dhe tu shiteshin klient"e
duke pritur qe t punonin aq gjat sa t kryenin nj pune ne menyre t suksesshme.
/illimisht k ishte nj ndarje shume t qart midis di'enjues"e, ndertues"e, operues"e,
programuese"e dhe personelitt mirembajts.
)eto makina, tani t quajtura mainframe, ishin t mbyllura ne dhoma
kompjuterash me ajer t kondi$ionuar, me staf operatoresh profesional qe i drejtonin.
>etm koorporata t medha si agjensite qe"eritare ose uni"ersitetet mund t prballonin
$mimin multimilion dollaresh. !r 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 /:.N.,N ose ne assembler), pastaj ta shenoje (pun$h) at ne $ard. !astaj ai
duhet t sjelle $ard de$k#un ne dhomen e inpute"e dhe tOia dore'oje nj operatori dhe t
shkoje t pije nj kafe derisa outputi t jet gati.
)ur kompjuteri mbaron $faredo lloj pune pr t $ilen ishte aktualisht duke
punuar, nj operator duhet t shkoje t printeri dhe t n%jerre outputin dhe ta $oj at ne
dhomen e outpute"e, keshtu qe programuesi mund ti mbledh me "one. !astaj ai duhet t
marre nj nga de$k $ards qe i jane $uar nga dhoma e inpute"e dhe t le%oje ne t. Ne
qoft se duhet kompiluesi /:.N.,N, operatorit i duhet ta marre at ne nj kabinet filesh
dhe t le%oje ne t. 1humi$a e kohes har%hohet nga operatoret duke le"i'ur ne dhomat e
makines.
=uke patur parasysh $mimin e lart t pajisjes, nuk sht pr tu $uditur qe shume
shpejt njere'it kerkuan menyra pr t ulur ('e"endesuar) kohen e humbur. @akonisht
'gjidhja me e pranueshme ishte ;at$h systems. 6deja e kesaj ishte t mblidheshin
shume pune ne dhomen e inpute"e dhe pastaj t le%oheshin ne nj tape magnetik duke
prdorur kompjuter relati"isht t "ogel, t pakushtueshem, si 6;( &M8&, i $ili ishte shume
i mire ne le%imin e $ards, ne t kopjuarin e tape#"e dhe ne printimine outpute"e, por jo aq
i mire ne llogaritjet numerike. N tjera makina me t kushtueshme, si 6;( C8GM,
prdoreshin pr llogaritjet reale. )jo situat tregohet ne figuren &.H.
fig 1.2 (nj batch sistem i hershem)
!as nj ore apo di$ka e tille grumbullimi punesh, tape#i kthehet ne fillim dhe
$ohet ne dhomen e makines, ku "endoset ne nj tape dri"e. (e pas operatori merre nj
program spe$ial (strgjyshi i sistemit t sotm operati"), i $ili le%onte nga tape punen e
pare dhe e kryente at. :utputi ne "end qe t printohej shkruhej ne nj tape t dyt. !as
do pune t mbaruar, sistemi operati" le%onte automatikisht punen tjetr nga tape dhe
fillonte ta kryente at. )ur t gjithe punet e grumbulluara mbaroheshin, operatori hiqte
tape#t input dhe output, ne tape#in input "endoste punet e reja dhe tape#in output e $onte
ne nj &M8& pr printim offline (jo i lidhur me kompjuterin qendror).
1truktura e nj pune tipike input tregohet ne figuren &.9. /illoi me 1A:; $ard, qe
spe$ifikont maksimumin e kohes se "eprimit (ma% run time) ne minuta, numrin qe duhej
ngarkuar dhe emrin e programuesit. !astaj "jen P/:.N.,N $ard, qe i tregon sistemit
operati" t marre kompiluesin /:.N.,N nga tape#i. (e pas "ijonte programi qe duhej
t kompilohej dhe pastaj nj 1-:,= $ard, qe drejtonte sistemin operati" t merrte
programin objekt t sapo kompiluar.(!rogramet e kompiluara shpesh shkruheshin ne tape
t ger"ishtura dhe duhet t merreshin sakt). (e pas "jen P.+N $ard, qe i tregon sistemit
operati" t "eproje (run) ne program t ndjekur nga t dhenat. Ne fund, PN= $ard
shenjon fundin e punes. )eto $ards primiti"e kontrolli ishin paraprijesit e gjuhe"e
moderne t kontrollit t pune"e dhe interpretues"e t komanda"e.
1hume kompjutera t gjenerates se dyt prdoreshim shume pr llogarritje
in%hinierike dhe shken$ore, si 'gjidhja e ekua$ione"e diferen$iale me pjese qe shpesh
gjenden ne fi'ike dhe in%hinieri. ,to programoheshin shume ne /:.N.,N dhe ne
gjuhen assembly. N tille sisteme operati"e ishin /(1 (Nhe /ortran (onitor 1ystem),
1istemi operati" 6(; pr C8GM.

fig.1.3. Struktura e nj pune tipike FS
1.2.3. G1ENERATA E TRET (1965-1980). ICs DHE MULTIPROGRAMIMI
Ne fillim t "ite"e &GD8, shumi$a e kompjutera"e prodhoheshin ne dy linja
prodhimi t "e$uara dhe t papajtueshme. Ne njren ane kishim kompjutera shken$ore t
nj shkalle t lart dhe word#oriented, si$ sht C8GM, t $ilt prdoreshin pr llogaritje
numerike ne shken$e dhe in%hinieri. Ne anen tjetr, kishim kompjuterat komer$ial,
$hara$ter#oriented, si$ sht &M8&, t $ilt ishin gjeresisht t prdorur pr klasifikimin e
tape#"e (shiritit) dhe pr printimin nga bankat dhe kompanit e sigurimit.
@h"illimi dhe mirembajtja e dy linja"e plotsisht t ndryshme t prodhimi t ishte
shume e kushtueshme pr prodhuesit. !r me tepr, shume klient t rinj t kompjutera"e
fillimisht donin nj makine t "ogel por me "one kerkonin nj makine me t madhe ne t
$ilen t mund t "epronin t gjithe programet e meparshem por me shpejt.
6;( tentoi ti 'gjidhte t dy problemet ne nj t "etm duke pre'antuar keshtu
1ystem/9D8. 9D8 ishte nj seri makinash t pajtueshme ne software duke filluar nga ato
ne madhesi &M8& deri ne ato me t fuqishem se C8GM. (akinat ndryshonin ne $mim dhe
ne performan$e (memorje maksimale, shpejtsi proesori, numri i pajisje"e 6/: t lejuara
dhe keshtu). Neorikisht, prderisa shumi$a e makina"e kane t njjtn arkitekture dhe
bashkesi instruksionesh, programet e shkruara pr nj makine duhet t "eprojne edhe ne
makinat e tjera. >e$ kesaj, 9D8 sht di'enjuar ne menyre qe t merret me t dy llogaritjet
shken$ore dhe komer$iale. Nj familje e "etme makinash mund t kenaqe ne"ojat e t
gjithe klient"e. Ne "itet ne "a'hdim, duke prdorur teknologji me moderne 6;( pati
sukses t pajtueshme me at t linjs 9D8, t njohur si serit 9C8, M988, 98L8 dhe 98G8.
9D8 ishte linja e pare kompjuterike e madhe qe prdori qarqe t integruara (A*s),
keshtu qe krijon nj a"anta'h ne $mim dhe ne performan$e kundrejt makina"e t
gjenerates se dyt, t $ilt ishin t ndertuar nga transistore indi"iduale. )jo ishte nj
sukses i menjehershem dhe shume shpejt ndertues t tjere t fuqishem adoptuan idene e
krijimit t nj familjeje kompjuterash t tille. !asardhesit e ketyre kompjutera"e jane
akoma ne ditt e sotme ne prdorim nepr qendra t kompjuterit. Ne ditt e sotme jane
shume t prdorur pr mena%himin e database#"e t medha (pr shembull, sistemet e
re'er"imit t linja"e ajrore) ose prdoren si ser"era faqet 3orld 3ide 3eb qe duhet t
"eprojne me mijera kerkesa pr sekonde.
/uqia me e madhe e idese Enj familjeF papritur u be dobesia me e madhe e tij.
<elimi ishte qe t gjithe software#t, duke prfshire ketu edhe sistemin operati", :1/9D8
duhet t punonin ne t gjitha modelet. =uhet t "epronte ne sisteme t "ogla, qe shpesh
'e"endesonin &M8& pr kopjimin e $ard#a"e ne tape dhe ne sisteme t medha, qe shpesh
'e"endesonte C8GM pr parashikimin e motit dhe llogaritje t tjera t medha. =uhet t
ishte mire ne sistemet me pak pjese periferike dhe ne sistemet me shume pjese periferike.
=uhej t punonte ne mjedise komer$iale dhe shken$ore. (bi t gjitha, duhet t ishte
efi$ente pr gjithe keto prdorime t ndyshme.
Nuk k ishte asnj lloj menyre qe 6;( (apo ndonj tjetr) t mund t shkruanin
nj software pr rrefimin e t gjithe ketyre ne"oja"e konfliktuale. .e'ultati ishte nj
sistem operati" jasht'akonisht shume kompleks dhe gjigand, me shume mundesi H ose 9
here magnitude (madhesi) me t madhe se /(1. !rbehej nga miliona rreshta t shkruar
ne gjuhe assembly nga mijera programues dhe prmbante mijera "iruse nga mijera lloje
t ndryshme "irusesh, t $ilt kishin ne"oje pr nj rrjedhe t "a'hdueshme t
shkarkime"e t reja ne nj prpjekje pr ti korrigjuar ato. Bdo shkarkim i ri korrigjonte
disa "iruse dhe sillte t tjere t rinj, keshtu qe numri me shume mundesi qendronte po i
njjt.
Nj nga di'enjuesit e :1/9D8, /red ;rooks, me pas shkroi nj liber t mpreht
(;rooks, &GGD) qe prshkruante eksperien$at e tij me :1/9D8. (eqe 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.
>e$ madhesise dhe probleme"e gjigant t tij, :1/9D8 dhe sisteme operati"e t
prodhuar nga prodhues kompjuterash t tjere t ngjashem me keto aktualisht, prmbushen
ne"ojat e arsyeshme t shumi$es se bleres"e. ,to gjithashtu popullari'uan mungesa
teknike primare ne sistemet operati"e t gjenerates se dyt. (e shum mundesi, me e
rendesishme nga keto ishte multiprogramimi. Ne C8GM, kur puna nderpritej pr t pritur
pr kompletimin e operimit t nj tape apo pajisje"e 6/:, *!+ rri kot deri kur 6/: t
mbaroje. (e llogaritjet e medha shken$ore t lidhura me *!+, 6/: sht e rralle, keshtu
qe kjo marre"eshje e humbur nuk sht domethene se. (e proesimin e t dhena"e
komer$iale, koha e pritjes se 6/: shpesh mund t jet L8Q ose G8Q e kohes totale, keshtu
qe duhet t behej di$ka qe t shmangt t ndenjurit kot t *!+.
@gjidhje e gjetur ishte ndarja e memories ne disa pjese me nj pune t ndryshme
pr se$ilen pjese, si$ tregohet ne figuren &.M. Nderkohe qe nj pune po pret qe t mbaroje
6/:, nj tjetr pune mund t prdore *!+. Ne qoft se mund t mbaheshin pune
mjaftueshem ne memorien kryesore ne t njjtn kohe, *!+ mund t qendronte e 'ene
pothuajse &88Q t kohes. !r t ruajtur ne memorie shume pune menjehere, kerkon
hardware spe$ial pr t mbrojtur do pune nga nderhyrjet dhe demtimet e t tjere"e, por
9D8 dhe sisteme t tjere t gjenerates se tret ishin pajisur me ket hardware.
Fig.1.!. nj sistem multiprogramming me tre pune ne memorie.
Nj "e$ori tjetr e rendesishme e sisteme"e operati"e t gjenerates se tret ishte
aftsia e le%imit t pune"e nga karta ne disk sapo ato t arrinin ne dhomen e
kompjutera"e. 1apo t mbaronte se "epruari nj pune, sistemi operati" mund t marre nj
pune t re nga disku ne pjesen qe tani sht bosh dhe kjo pune mund t filloje "eprimin.
)jo teknike njihet si spooling (nga operimi i menjehershem periferik ne linj) dhe ishte
e prdorur pr output, gjithashtu. (e spooling, &M8& nuk ne"ojiteshin me dhe mbajtja e
tape#"e pothuajse u 'hduk.
(egjithat sistemet operati"e t gjenerates se tret ishin t prshtatshem pr
llogaritje t medha shken$ore dhe "eprime me t dhenat komer$iale masi"e, thellesisht
ato akoma ishin sisteme bat$h. 1hume prdorues kerkonin akoma ditt e gjenerates se
pare kur ato e kishin t gjithe makinen pr "et pr disa ore dhe mund t rregullonin
programet e tyre shume shpejt. (e sistemet e gjenerates se tret, koha mes paraqitjes se
punes dhe marrjes me pas t outputit ishte disa ore, keshtu "endosja keq e nj presjeje t
"etme mund t shkaktoje nj komplikim t tille sa mund t deshtoje dhe programuesi t
humbase nj gjysem dit.
)jo deshire pr kohe t shpejt respon$e (prgjigjeje) hapi rrugen pr timesharing
(ndarje kohe), "ariant i multiprogramimit, ku do prdorues ka nj terminal online. Ne
nj sistem timesharing, ne qoft se jane H8 prdorues logged in dhe &C prej tyre po
mendojne, flasin apo po pijne kafe, *!+ mund t alokohet "etm pr tre punet qe duan
sherbim. !r derisa njere'it pr rregullimin e programe"e 'akonisht prdorin komanda t
shkurtra (pr shembull, kompilimi i nj pro$edure 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 interakti" (bashkepunues) nj numri prdoruesish dhe mbase
mund t punoje ne pune grupi (bat$h job) ne ba$kground kur *!+ po rri kot. 1istemi i
pare serio' timesharing, CTSS (Compatible Time Sharing System), u 'h"illua ne
M.I.T. ne nj C8GM t modifikuar. (egjithat timesharing nuk u be "ertet e popullari'uar
derisa ne"ojat pr mbrojtje hardware u prhapen shume gjat gjenerates se tret.
!as suksesit t sistemit *N11, (6N, ;ell -abs dhe elektrikut t prgjithshem,
pastaj nj prodhues i madh kompjuterash "endosi t nise me 'h"illimin e E$omputer
utilityF (le"erdi e kompjuterit), nj makine qe do t prballonte qindra prdorues
timesharing t menjehershem. (odeli i tyre ishte sistemi elektrik i shprndare, kur
ne"ojitet fuqi elektrike, "endoset nj pri'e ne mur dhe ne t do t gjendet aq fuqi sa t
ne"ojitet. =i'enjuesit 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 'onen ;oston. 6deja qe makinat shume me t fuqishme se
mainframe 5#DM7 do t shiteshin pr mijera dollare, 98 "jet me "one ishte nj trillim
shken$or.
(+-N6*1 ishte nj sukses i "ogel. )jo ishte e di'enjuar pr t suportuar qindra
prdorues ne nj makine pak me shume t fuqishme se nj 6ntel 9LD#based !*, ndone se
grumbullont shume me shume kapa$itet 6/:. )jo nuk sht aq e $mendur sa mund t
duket, prderisa njere'it e asaj kohe dinin t shkruanin programe t "ogla dhe efi$ente,
aftsi qe me pas sht humbur. )ishte shume arsye qe (+-N6*1 nuk pushtuan botn,
arsye jo pak e "ogel ishte se ishte shkruar ne !-/&, dhe kompiluesi !-/& ishte shume
"ite "one dhe kur ne fund arrinte me'i punonte. !r me tepr, (+-N6*1 ishte
jasht'akonisht ambi$io' pr kohen e tij, me shume si motorri analitik i *harles ;abbage
ne shekullin e nentmbedhjet.
!r t bere t shkurtr nj histori t gjat, (+-N6*1 pre'antoi shume ide ba'e ne
literaturen kompjuterike, por kthimi i saj ne nj produkt serio' dhe ne nj sukses
komer$ial ishte shume me e "eshtire nga $Omund ta priste donjri. -aboratori ;ell
braktisi projektin dhe elektriku i prgjithshem la tresisht bi'nesin e kompjutera"e.
(egjithat, (.6.N. kembnguli dhe prfundimisht mori (+-N6*1 pr t punuar. Ne fund
u shit si nj produkt komer$ial nga kompania qe bleu bi'nesin e kompjutera"e t 5s dhe
e instaloi ne rreth L8 kompani t medha dhe uni"ersitete ne t gjithe botn. Nderkohe qe
numrat e tyre ishin t "egjel, prdoruesat (+-N6*1 ishin shume besnik. !r shembull,
5eneral (otors, /ord dhe agjensia na$ionale e sigurimit t shtete"e t bashkuara, ne
fund t "ite"e &GG8 "etm fiknin sistemet (+-N6*1, 98 "jet pasi (+-N6*1 ishte
shkarkuar (released)
!r momentin, kon$epti i nj utiliteti kompjuteri ka deshtuar por ai shume mire
mund t kthehet ne formen e ser"era interneti masi"isht t $entrali'uar me t $ilt jane
lidhur makinat user dumb (meme$, t heshtur), me shumi$en e punes qe ndodh ne
ser"erat e medhenj. (oti"imi ketu sht qe shumi$a e njere'"e nuk duan t administrojne
nj sistem kompjuterik na'eli dhe me nj kompleksitet rrits dhe do t preferonin qe at
pune t behej nga nj skuader profesionistsh pr kompanine qe drejton ser"erin. #
$ommer$e akoma po 'h"illohet ne ket drejtim, me kompani t ndryshme qe drejtojne e#
maile ne ser"era mikroproesore me t $ilat lidhen makinat e thjeshta t klient"e.
!r"e$ mungeses se suksesit komer$ial, (+-N6*1 pati nj influen$e t madhe ne
sistemet operati" pasues. ,jo sht prshkruar ne (*orbato, &GCHI *orbato and
>yssotsky,&GD7I =aley and =ennis, &GDLI :rgani$k, &GCHI dhe 1alt'er,&GCM). ,jo akoma
ka nj faqe 3eb akti"e """.mulriciaris.org ne t $ilen ka shume informa$ion pr
sistemin, di'enjuesit e tij dhe pr prdoruesit e tij.
Nj 'h"illim tjetr i madhe gjat gjenerates se tret ishte rritje e jasht'akonshme
e minikompjutera"e, duke filluar me =* !=!#& ne &GD&.!=!#& kishte M) fjale &L#
biteshe, por pr 7&H8888 pr makine (me pak se pese prqind e $mimit t nj C8GM)
shiteshin si hot$akes (shiteshin shume). !r lloje t "e$anta punesh jonumerike, ky ishte
pothuaj aq i shpejt sa C8GM dhe i dha fillimin nj industrie t plot t re. ,jo shume shpejt
u ndoq nga nj seri !=!#sh t tjera (ndryshe nga familja 6;A"Ns) duke arritur kulmin ne
!=!#&&.
Nj nga shken$etaret e kompjutera"e ne laboratorin ;ell qe kishte punuar ne
projektin (+-N6*1.)en Nhompson, me pas gjeti nj minikompjuter !=!#C qe nuk po
prdorej nga asnj dhe kishte si qellim t shkruant nj "ersion t (+-N6*1 stripped#
down dhe me nj prdorues. )jo pune me "one u 'h"illua ne sistemin operati" +N6R, i
$ili u be i populluar ne botn akademike, me agjensite qe"eritare dhe me shume kompani.
2istoria e +N6R tregohet tjetrkund (pr shembull, 1alus, &GGM).Ne kapitullin &8
do t japim pjese nga kjo histori.Nani mjaftohuni duke ju thene se ngaqe kodi burim ishte
gjeresisht i prdorshem, organi'ata t ndryshme 'h"illuan "ersionet e tyre t
pakonkurueshem qe t $onin ne nj kaos. =y nga "ersionet e medha t 'h"illuara jane
1ystem > nga ,NSN dhe ;1= (;erkeley 1oftware =istribution) nga uni"ersiteti i
*alifornise ne ;erkeley. )eto gjithashtu kishin "ariante t "egjel t tyre. !r t bere t
mundur shkrimin e nj programi qe mund t "eproje ne do sistem +N6R, 6 'h"illoi
nj standart pr +N6R, t quajtur !:16R, qe suportohet nga shumi$a e "ersione"e +N6R.
!:16R pr$akton nj nderhyrje minimale t thirrje"e sistem qe duhet t prkrahet nga
sistemet +N6R konformant. Ne fakt, edhe disa sisteme t tjere operati" tashme suportojne
(prkrahin) nderhyrjen !:16R.
1i me tutje, sht mire t prmendet qe ne &GLC, autori leshoi nj klonim t "ogel
t +N6R, t quajtur (6N6R, qe prfshint suportimin e !:16R. ?sht i prdorshem nj
liber i $ili prshkruan oprimet e brendeshme t tij dhe liston kodet burim ne nj
appendi% (Nanenbaum and 3oodhull, &GGC), (6N6R gjendet free (duke prfshire kodet
burim) ne internet ne +.- """.cs.#u.nl$%ast$mini&.html
=eshira pr prodhimin e nj "ersioni free t (6N6R beri qe studenti /inlande',
-inus Nor"alds, t shkruant -6N+R. )y sistem u 'h"illua ne (6N6R dhe fillimisht
suportont disa dukuri t ndryshme t (6N6R (pr shembull, sistemi i fila"e
(6N6R).dhe pse pas shume shtrirjesh ne shume menyra ai akoma ruan nj pjese t
madhe t struktures themelore si (6N6R dhe +N6R. 1humi$a e atyre $fare do t thuhet
pr +N6R, prgjigjet edhe pr 1ystem >, ;1=, (6N6R, -inu% dhe "ersione"e t tjera,
gjithashtu edhe klonime"e t +N6R.
1.2.4. G1ENERATA E KATRT (1980-SOT) PERSONAL COMPUTERS
(e 'h"illimin e qarqe"e LSI (Large Scale Intgratin), $hipe qe prmbajne
mijera tran'istore ne nj $entimetr katror silikoni, linden PC (personal computers). Ne
terma arkitekturore, personal $omputers (fillimisht t quajtur mi$ro$omputers), nuk ishin
shume t ndryshem nga minikompjuterat e klases PDP-11, por ne terma t $mimit ishin
plotsisht t ndryshem. Ne nj departament, ne nj kompani apo uni"ersitet ku mundesia
pr t pasur nj minikompjuter sht h, $hipi mikroproesor beri t mundur qe pr n
indi"id t kishin h prej tyre nj personal $omputer t tyrin.
Ne "itin &GCM, kur doli 6ntel me L8L8, *!+ i pare L#bitesh pr qellime t
prgjithshme, duhej nj sistem operati" pr L8L8 ne menyre qe t jet i mundur testimi i
tij. 6ntel ia kerkoi qe t shkruant nj t tille, njrit prej konsulent"e t tij, 5ary
)ildall./illimisht )ildall dhe nj shok i tij ndertuan nj kontrollues pr floppy disqet e
rinj, 1hugarl ,sso$iats L#in$h dhe bashkuan floppy disk#un me L8L8, duke krijuar
keshtu mikrokompjuterin e pare me disk. (e pas )ildall shkroi pr t nj sistem operati"
disk#based t quajtur CP/M (Control Program for Microcomputers). 6ntel duke mos
menduar se keta mikrokompjutera kishin shume t ardhme, kur )ildall kerkoi pr t
drejtat e *!/(, 6ntel pranoi kerkesen e tij. (e pas )ildall formoi nj kompani t tijen
pr t ndihmuar pr 'h"illimin dhe shitjen e *!/(, =igital resear$h.
Ne &GCC, =igital .esear$h rishkruan *!/( t tille qe ishte e prshtatshme t
"epronte (run) ne shume minikompjutera qe prdornin L8L8, @ilog @L8
h
dhe t tjere $hipe
*!+. 1hume programe aplikati"e u shkruan qe t "epronin ne *!/( duke bere keshtu t
dominont botn mikrollogaritse pr rreth 7 "jet.
Ne fillim t "ite"e &GL8, 6;( di'enjoi !* 6(; dhe kerkoi pr software qe t
"epronte ne t. Njere' t 6;( kontaktuan ;ill 5ats pr li$ensen e interpretuesit ;,16*
t tij. 5jithashtu i kerkuan atij ne se njiht ndonj sistem operati" qe t "epronte ne !*,
;ill 5ats u sugjeroi atyre t kontaktonin =igital .esear$h, kompanine dominuese t
sisteme"e operati"e t asaj kohe. )ildall, duke bere sigurisht qe t ishte "endimi me i
gabuar ne bi'nes qe njihet ne histori, refu'oi t takohej me 6;( duke i derguar nj "arts
madje. !r me keq, a"okati i tij nuk pranoi as t firmost marre"eshjen e mbyllur t 6;(,
duke mbuluar !* akoma t papre'antuar. 1i pasoje, 6;( i kerkoi prseri 5ats ne se ai
mund ti siguronte nj sistem operati".
Ne kohen qe 6;( u kthye prseri tek ;ill 5ats, ky i fundit mori "esh qe nj
ndertues lokal kompjuterash, 1eattle *omputer !rodu$ts, kishte nj sistem operati" t
prshtatshem, DOS (Disk Operating System). ,i iu drejtua atyre dhe u kerkoi ta blint
(gjoja 78888 P), t $ilen ata e pranuan leht. !astaj 5ats i ofroi 6;( paketn
=:1/;,16* t $ilen 6;( e pranoi. 6;( dont disa modifikime t $aktuara, keshtu 5ats
punesoi personin qe shkroi =:1, Nim !alerson si nj nenpunes t ri t kompanise t tij,
(i$rosoft, qe ti bnte keto modifikime. 1istemi i korrigjuar mori emer tjetr, MS-DOS
(Microsoft Disk Operating System) dhe shume shpejt dominoi tregun e !* 6;(. Nj
faktor kryesor ishte "endimi i 5ats (ne prapa"eshtrim, shume i 'gjuar) pr t shitur (1#
=:1 kompani"e kompjuterike pr tu lidhur me hardware#in e tyre, krahasuar kjo me
prpjekjen e )ildall pr t shitur *!/( prdorues"e t fundit (end users).
Ne "itin &GL9 6;( !*/,N doli me *!+ 6ntel L8HLD. (1#=:1 ishte prhapur
tashme dhe *!/( ishte ne ditt e fundit. (e "one (1#=:1 u prdor gjeresisht ne L89LD
dhe L8MLD. (egjithese "ersioni fillestar i (1#=:1 ishte i thjesht, "ersionet pasues
prfshine dukuri me t a"an$uara duke prfshire shume t marra nga +N6R. ((i$rosoft
ishte i informuar pr +N6R, madje gjat "ite"e t para t kompanise shist "ersione t tij
pr mikrokompjutera, t quajtura RN6).
*!/(, (1#=:1 dhe sisteme t tjera operati"e pr mikrokompjuterat e hershem
ishin t gjithe t ba'uar ne shtypjen e komanda"e nga tastjera. )jo prfundimish ndryshoi
ne saj t kerkimit t bere nga =oug ngelbart, ne institutin e kerkime"e ne 1tanford ne
"itet &GD8. ngelbart krijoi GUI (Graphical User Inteface), qe plotsoi me windows,
i$ons, menus dhe mouse. )eto ide ishin t adoptuara nga kerkues ne Rero% !,.* dhe t
prfshira ne makinat qe ndertonin.
Nj dit, 1te"e Aobs qe shpiku kompjuterin ,pple ne gara'hin e tij, "i'itoi !,.*,
pa nj 5+6, dhe menjehere kuptoi "lerat e tij potn$iale, di$ka qe mena%himi i famshem i
Rero% se beri (1mith dhe ,le%ander, &GLL). !astaj Aobs bashkoi nj 5+6 me nj ,pple.
)y projekt na $oi tek -isa, qe ishte shume e shtrenjt dhe nga ana tregetare deshtoi.
!rpjekja e dyt e Aobs, (a$intosh i ,pple#it, ishte nj sukses i madh jo "etm se ishte
me i lire se -isa, por ishte gjithashtu nj user shoqeror (user friendly), qe do t thot qe
ishte jo "etm pr prdorues qe nuk dinin fare rreth kompjutera"e, por edhe pr ata qe
nuk kishin ndermend t mesonin di$ka.
)ur (i$rosoft "endosi t ndertont nj pasues t (1#=:1, u influen$ua shume
nga suksesi i (a$intosh#it. ,i prodhoi nj sistem t 5+6#based t quajtur 3indows, qe
fillimisht "eproi ne deget e (1#=:1. !r rreth &8 "jet, nga &GL7#&GG9, windows ishte
nj mjedis grafik ne krye t (1#=:1. 1idoqoft, duke filluar qe ne &GG7 doli nj "ersion
i lire (freestanding) i 3indows, 3indows G7, qe prfshint shume dukuri t sistemit
operati" ne t, duke prdorur ba'at e sistemit (1#=:1 "etm qe programet e "jetra (1#
=:1 t boot#oheshin dhe t "epronin (run). Ne &GGL doli nj "ersion pak i modifikuar i
ketij sistemi, i quajtur 3indows GL. 1idoqoft, 3indows G7 dhe 3indows GL se bashku,
akoma prmbajne nj sasi t madhe t 6ntel &D#bit gjuhe assembly.
Nj sistem tjetr operati" (i$rosoft sht 3indows NN (New t$hnology), i $ili
sht i pajtueshem me 3indows G7 ne nj ni"el t $aktuar. =i'enjuesi kryesor i 3indows
NN ishte =a"id *uttr, qe ishte gjithashtu nj prej di'enjues"e t sistemit operati"
>,R/>(1, keshtu qe disa ide t >(1 jane t pranishme edhe ne NN. (i$rosoft priste
qe "ersioni i pare i NN t shfarost (1#=:1 dhe t gjitha "ersionet e tjera t 3indows
meqe ai ishte nj sistem superior me rendesi, por nuk e beri nj gje t tille.>etm me
3indows NN M.8 me ne fund ia doli ne nj menyre t mire, "e$anerisht ne network#un e
koorporata"e.>ersioni i 7 i 3indows NN u quajt 3indows H888, i $ili doli ne fillim t
"itit &GGG.+ krijua me qellimin qe t ishte pasuesi i 3indows GL dhe 3indows NN M.8.
)y gjithashtu nuk ia doli mbane plotsisht keshtu qe (i$rosoft doli akoma me nj
"ersion tjetr t 3indows GL t quajtur Windows Me (Millenium edition).
Nj tjetr pretndues kryesor ne botn e personal $omputers ishte +N6R (dhe
deri"att e tij t ndryshme). +ni% sht me i fuqishmi ne workstations dhe ne kompjuterat
e tjere high#end si network ser"ers. )y sht popullari'uar "e$anerisht ne makinat e
fuqi'uara nga $hip#e .61* me performan$e t lart. Ne kompjuterat pentium#based,
-inu% po behet nj alternati"e e populluar e 3indows pr studentat dhe pr shume
prdorues korporatash. (!rgjat librit do t prdorim termin E!entiumF pr tOiu referuar
!entium 6, 66, 666 dhe 6>).
(egjithese shume prdorues +N6R, "e$anerisht programues me eksperien$e,
preferojne nj nderfaqe $ommand#based se nj 5+6, pothuajse t gjithe sistemet +N6R
suporojne sistem me n window i quajtur sistem X Windows, i prodhuar nga (6N. )y
sistem trajton mena%himin ba'e window, duke lejuar prdoruesit t krijojne, fshijne,
le"i'in dhe t ri"endose dritaret (windows) me nj mouse. 1hpesh nj 5+6 i kompletuar,
si$ sht Motif, sht i prdorshem pr "eprimin e tij ne krye t sistemit R 3indows
duke i dhene +N6R nj paraqitje pak a shume si (a$hintosh apo (i$rosoft 3indows, pr
ata prdorues t tij qe duan nj gje t tille.
Nj 'h"illim intresant qe filloi ne mes t "ite"e &GL8 ishte rritja e network#e"e
(rrjet"e) t personal $omputers ku "epronte sistemi operati", network operating
systems dhe ai distributed systems (sistemet e shprndara) (Nanenbaum dhe >an
1ten, H88H). Ne nj sistem operati" network, prdoruesit jane ne dijeni pr ek'isten$n e
shume kompjutera"e dhe mund t futen (log in) pr t le"i'ur dhe kopjuar file#t nga njra
makine t tjetra. Ne nj grup makinash "epron nj sistem operati" lokal i ketij grupi dhe
ka gjithashtu prdoruesin (prdoruesat) e "et lokal.
1istemet operati" network thellesisht nuk jane t ndryshem nga sistemet operati"
single # proessor (proesor t "etm). =uket qart qe ato kane ne"oje pr nj kontrollues
t nderfaqes se networkut dhe disa software t ni"elit t ulet qe ta drejtojne at, aq mire sa
programet t arrijne login dhe aksesimin e file"e, por keto gjera shtese nuk e ndryshojne
strukturen ba'e t sistemit operati".
Nj sistem operati" i shprndare, ne dallim sht i tille qe shfaqet t prdoruesit e
tij si nj sistem tradi$ional uniproessor, edhe pse ai aktualisht sht i prbere nga shume
proesore.!rdoruesit nuk kane pse t jene ne dijeni se ku "eprojne (run) programet e
tyre dhe se ku jane t "endosur file e tyre, t gjitha keto do t behen automatikisht dhe ne
menyre efi$ente nga sistemi operati".
1istemet operati"e e "erteta t shprndara kerkojne me shume se thjesht shtimin e
nj kodi t "ogel ne sistemin operati" uniproessor, sepse sistemet e shprndara dhe t
$entrali'uara ndyshojne ne rruge kritike. 1istemet e shprndare, pr shembull, shpesh
lejojne aplikime qe t "eprojne ne disa proesor ne t njjtn kohe, keshtu duke kerkuar
algoritma skedulimi proesoresh me shume kompleks, ne menyre qe t optimi'ojne
masen e paraleli'mit.
>onesat e komunikimit ne network shpesh do t thone qe keto (dhe t tjere)
algoritma duhet t "eprojne me informa$ion t pakompletuar, t "jetruar madje dhe
jokorrekt. )jo situat thellesisht sht e ndryshme nga nj sistem single#proessor ne t
$ilin sitemi operati" ka informa$ion t kompletuar pr gjendjen e sistemin.
1.2.5 ONTOGENY RECAPITULATES PHYLOGENY
!as botimit t librit t *harles =ar"in E:rigjina e 1pe$ie"eF, 'oologjisti gjerman
rnst 2ae$kel konstatoi se E:ntogeny rikapitulon !hylogenyF. (e ket ai dont t
thosht se 'h"illimi i nj embrioni (ontogeny) prserit (re$apitulats) e"oluimin e spe$ies
(phylogeny). (e fjele t tjera, pas fertili'imit, nj "e'e njriu shkon nepr etapa pr tu
bere peshk, nj derr dhe keshtu me rradhe prpara se t kthehet ne nj bebe njri. ;iologe
modern e konsideruan ket si nj simplifikim t madh, por ajo akoma ka nj fare t
"ertet ne t.
=i$ka analoge me ket ka ndodhur edhe ne industrine kompjuterike. Bdo spe$ie e
re (mainframe, mini$ompjutr, personal $omputer, embedded $omputers, smart $ards etj)
duket sikur po shkon drejt 'h"illimit qe kane bere paraardhesit e tyre. (ainframet e pare
ishin programuar plotsisht ne gjuhe assembly. dhe programet shume komplekse, si$
jane kompilatoret dhe sistemet operati"e, ishin shkruar ne assembler. Ne at kohe dolen
ne skene minikompjuterat. /:.N.,N, *:;:- dhe gjuhe t tjera programimi t ni"elit
t lart 'akonisht prdoreshin nepr mainframe, por asnj nga minikompjuterat e rinj nuk
programoheshin ne assembler (pr shkak t memories). /illimisht kur u shpiken
mikrokompjuterat (personal $omputers t hershem), ato gjithashtu programoheshin ne
assembler edhe pse ne at kohe minikompjuterat programoheshin ne gjuhe programimi t
ni"elit t lart. dhe kompjuterat palmtop gjithashtu filluan me kode assembly por shume
shpejt le"i'en ne gjuhe programimi t ni"elit t lart (prgjithesisht sepse punet
'h"illuese beheshin ne makina t medha). njjta gje sht e "ertet pr smart $ards.
Nani le t shohim sistemet operati"e. (ainframet e pare nuk kishin mbrojtje
hardware#ike dhe nuk suportonin multiprogramimin, keshtu qe ne to "epronin sisteme
operati"e t thjesht qe merrej "etm me nj program manualisht t ngarkuar ne nj kohe
t $aktuar. (e "one me sigurimin e hardware#it, sistemet operati"e suportonin t
merreshin me shume programe njeheresh, dhe me "one kishin aftsi t plota timesharing.
Ne fillimet e shfaqjes se minikompjutera"e, ato gjithashtu nuk kishin mbrojtje
hardware#ike dhe ne to "epronte nj program manualisht i ngarkuar ne nj kohe t
$aktuar, edhe pse ne at kohe multiprogramimi ishte i "endosur mire ne botn e
mainframe"e. 5radualisht ato siguruan mbrojtje hardware#ike dhe aftsi qe dy ose me
shume programe t "epronin ne t njjtn kohe.
5jithashtu edhe mikrokompjuterat e pare ishin t aft qe ne to t "epronte nj program i
"etm ne nj kohe t $aktuar, por me "one edhe keto siguruan aftsi t multiprogramimit.
Ne t njjtn menyre ndodhi edhe me smart $ards dhe kompjuterat palmtop.
=isqet fillimisht u shfaqen ne mainframet e medha, pastaj ne minikompjutera,
mikrokompjutera dhe keshtu me rradhe. dhe ne ditt e sotme smart $ards nuk kane
harddisk, por me ardhjen e flash .:(, ato se shpejti do t kene t njjtn ekui"alen$e me
t. )ur u shfaqen disqet ne fillim u 'h"illuan shpejt sistemet e thjeshta file. Ne *=*
DD88, mainframe me i fuqishem ne bot gjat "ite"e &GD8, userat e sisteme"e file kane
aftsi pr krijimin e file"e dhe me pas e deklarojne at t prhershme, qe do t thot qe ai
qendron ne disk edhe pas mbylljes se programit t krijuar. !r aksesimin e nj file t tille
me "one, nj program duhet t lidhet me nj komande spe$iale dhe t jape passwordin e
tij (e plotsuar kur file u be i prheshem). Ne fakt, ishte nj direktori e "etme e ndare nga
t gjithe prdoruesit. )jo ishte pr t e"ituar konfliktet e emra"e t file"e. 1istemet e
file"e t minikompjutera"e t hershem kishin nj direktori t "etme t ndare nga t gjithe
prdoruesit dhe keshtu edhe me sistemet file t hershem mikrokompjuter.
(emorja "irtuale (aftsia pr "eprimin e me shume programe"e se ne memorien
fi'ike) pati nj 'h"illim t ngjashem. /illimisht u shfaq ne mainframe, minikompjutera,
mikrokompjutera dhe gradualisht filloi ne sisteme t "ogla e me t "ogla. Networking
kishte nj histori t ngjashme.
Ne t gjitha rastet, 'h"illimi i software u diktua nga teknologjia.
(ikrokompjuterat e pare, pr shembull kishin pak a shume M); memorie dhe sOkishin
mbrojtje hardware#ike.5juhet e ni"elit t lart dhe multiprogramimi ishin shume, qe nj
sistem i "ogel, i tille t merrej me to. (eqe mikrokompjuterat u shnderruan ne personal
$omputers modern, ato siguruan hardware#in e ne"ojshem dhe me "one software#in e
ne"ojshem t merret me dukuri me t a"an$uara. =uket se ky 'h"illim edhe pr"itet
tjera qe "ijne.5jithashtu fusha t tjera mund t kene t njjtn rrjedhe rimisherimi, por ne
industrine e kompjutera"e duket se ndodh me shpejt.
1.3. LLO1ET E SISTEMEVE OPERATIVE
gjitha kjo histori dhe ky 'h"illim na kane lene nj shumellojshmeri t gjere
sistemesh operati"e, prej t $ile"e jo t gjithe jane gjeresisht t njohur.Ne ket seksion do
t prekim shkurtimisht shtat prej tyre. (e "one gjat librit do t shohim disa prej ketyre
lloje"e t ndryshme t sisteme"e operati"e.
1.3.1. SISTEMET OPERATIVE MAINFRAME
Ne skajin me t lart sht sistemi operati" pr mainframe, ato kompjutera me
madhesi sa nj dhome qe akoma gjenden ne koorporatat kryesore t qendra"e t t
dhena"e. )eto kompjutera e dallojne "eten e tyre nga personal $omputers ne terma t
kapa$itetit t tyre 6/:. Nj mainframe me &888 disqe dhe mijera gigabyte t dhena nuk
sht i pa'akonte. Nj personal kompjuter me keto t dhena me t "ertet qe do t ishte i
"jetr.(ainframe gjithashtu po bejne di$ka ne prgjigje t ser"era"e 3eb, ser"era pr
faqe tregetare elektronike t nj shkalle t lart dhe ser"era pr transaksionet bi'nes#me K
bi'nes.
1istemet operati"e pr mainframe jane "eshtiresisht t orientuar drejt proesimit
t shume pune"e njeheresh, shumi$a e t $ila"e duan madhesi t madhe 6/:. ,to ne
menyre tipike ofrojne tre lloje t ndryshme sherbimeshJ bat$h (grumbull, tufe),
transa$tion proessing (prpunimet transaksion) dhe timesharing. Nj sistem bat$h sht
nj sistem qe prpunon punet rutine. !rpunimi $laims ne nj kompani sigurimi behet ne
menyre tipike nga sistemet bat$h. 1istemet e prpunimit transaksion merren me numra t
medhenj t kerkesa"e t "ogla, pr shembull, prpunimi $he$k (kontrollo) ne nj banke
apo re'er"imet e linja"e ajrore. Bdo njsi pune sht e "ogel, por sistemi duhet t merret
me qindra ose mijera pr sekonde. 1istemet timesharing lejojne shume prdorues qe t
kryejne pune ne nj kompjuter njeheresh, si ndertimin e nj database t madhe. )eto
funksione jane t lidhur ngushtJ 1istemet operati"e mainframe shpesh i bejne t gjitha
keto. Nj shembull i sistemit operati" mainframe sht :1/9G8, pasardhes i :1/9D8.
1.3.2. SISTEMET OPERATIVE SERVER

Nj ni"el me posht jane sistemet operati"e ser"er.,to "eprojne ne ser"era, t
$ilt prdorin shume personal $omputers, workstations, ose mainframe.,to i sherbejne
shume prdorues"e ne t njjtn kohe mbi nj rrjet dhe lejojne prdoruesit t ndajne
burimet e hardware#it dhe software#it.1er"erat mund t sigurojne sherbim print, sherbim
file, apo sherbim 3eb.)rijuesit e internetit kane shume makina ser"er qe t suportojne
klientt e tyre dhe 3eb site prdorin ser"era pr mbledhjen e faqe"e 3eb (3eb pages)
dhe t merren me kerkesat qe "ijne. 1istem operati" tipik ser"er sht +N6R dhe
3indows H888. 5jithashtu edhe -inu% po fiton "end pr ser"era.
1.3.3. SISTEMET OPERATIV MULTIPROESSOR
Nj menyre e 'akonshme pr t marre fuqi llogaritse t lart sht t lidhim
shume *!+ ne nj sistem t "etm. =uke u "arur saktsisht se me $fare jane lidhur dhe
$fare ndajne, keto sisteme quhen kompjutera paralel, multikompjutera ose multiproesor.
,ta duan sisteme operati"e spe$iale, por shpesh keto jane "aria$ione ne sistemet
operati"e ser"er, me dukuri spe$iale komunikimi dhe lidhjeje.
1.3.4. SISTEMET OPERATIVE PERSONAL COMPUTERS
)ategoria tjetr sht sistemet operati"e personal $omputers. !una e tyre sht
krijimi i nj nderfaqeje pr nj prdorues t "etm. ,to jane gjeresisht t prdorur pr
prpunimin e fjales (word proessing), spreadsheets dhe aksesim interneti. 1hembull pr
ket jane windows GL, 3indows H888, sistemi operati" (a$intish, dhe -inu%. 1istemet
operati"e !ersonal $omputers jane gjeresisht t njohur, keshtu qe duhet nj pre'antim
shume i shkurtr i tyre. Ne fakt, shume njere' nuk jane ne dijeni t ek'istn$es t
sisteme"e t tjere.

1.3.5. SISTEMET OPERATIV REAL-TIME (KOHE REALE)
Nj lloj tjetr i sisteme"e operati" sht ai real#time. )eto sisteme jane
karakteri'uar duke pasur kohen si parametr ky$. !r 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. 1hpesh takohen
deadline ("i'a qe nuk duhet t kalohen). !r shembull, ne qoftse nj makine le"i' posht
nj rresht assembly, "eprime t $aktuara ndodhin ne momente t $aktuara, ne qoft se nj
robot saldimi, saldon shume heret apo shume "one, makina do t shkatrrohet. Ne qoft
se "eprimi duhet absolutisht t ndodhe ne nj kohe t $aktuar, kemi nj sistem real#time
hard.
Nj tjetr lloj sistemi real#time sht sistemi real#time soft, ne t $ilin mungesa e
nj deadline rastesor sht e pranueshme. ,udio di%hitale apo sistemet multimedia bien
ne ket kategori. 1isteme t njohur real#time janeJ >%3orks dhe <NR.
1.3.6. SISTEMET OPERATIV EMBEDDED (TE NDERFUTURA)
=uke "a'hduar posht ne sisteme t "ogla e akoma me t "ogla, "ijme ne
kompjuterat !almtop dhe ne sistemet embedded. Nj kompjuter !almtop ose ndryshe nj
PDA (Personal Digital Assistant) sht nj kompjuter i "ogel qe mund t qendroje ne
nj %hep kemishe dhe kryen nj numer t "ogel funksionesh, si nj liber elektronik
adresash. 1isteme embedded "eprojne ne kompjutera ku pajisjet kontrolluese
prgjithesisht nuk mendohen si kompjutera, si pr shembull, N> sets, furre mikro"ale,
dhe telefonat mobile. )eto shpesh kane karakteristika t sisteme"e real#time por
gjithashtu kane madhesi, memorie dhe frenim fuqie (power restri$tion) qe i bejne ato
spe$iale. 1hembuj pr sisteme operati"e t tille kemi !alm:1 dhe 3indows*
(*onsumer le$troni$s)
1.3.7. SISTEMET OPERATIVE SMART CARD
1istemi me i "ogel operati" "epron ne smart $ards, t $ilt jane pajisje me
madhesine e nj karte krediti qe prmbajne nj $hip *!+. ,ta kane nj fuqi prpunimi
shume t ashpr dhe shtrengese memorieje. =isa prej tyre mund t kryejne "etm nj
funksion, si pagesat elektronike, por t tjere mund t kryejne shume funksione ne t
njjtn smart $ard. 1hpesh keto jane sisteme proprietar.
=isa smart $ards jane t orientuar ne Aa"a. ,jo $fare kjo do t thot sht qe .:(
ne smart $ard ka nj interpretues pr makinen "irtuale Aa"a (Aa"a >irtual (a$hine, A>().
!rograme t "ogla ne Aa"a downloadohen ne $ard dhe me pas interpretohen nga A>(.
=isa nga keto $ard mund t merren me shume programe ne Aa"a ne t njjtn kohe, duke
$uar keshtu ne multiprogramim dhe ne ne"ojen pr skedulim. (ena%himi dhe mbrojtja e
burime"e gjithashtu behet nj problem kur dy ose me shume programe jane pre'ent ne t
njjtn kohe. (e keto probleme duhet t merret sistemi operati" pre'ent ne $ard.
1.4. RISHIKIMI I HARDWARE KOMP1UTERIK
Nj sistem operati" sht i lidhur ngusht me hardware#in e kompjuterit ku ai
"epron. ,i tregon bashkesine e instruksione"e t kompjuterit dhe mena%hon burimet e
tij. <e t punoje, ai duhet t dije nj pjese t madhe t hardware#it, t paktn si shfaqet
hardware te programuesi.
)on$eptualisht, nj personal $omputer i thjesht mund t konspektohet ne nj
model t ngjashem me at t /ig.&.7.*!+, memoria, pajisjet 6/: jane t gjithe t lidhur
nga nj bus sistem dhe komunikojne me njri#tjetrin me anen e ketij bus#i. !ersonal
$omputers modern kane nj strukture me komplekse, duke prfshire ketu edhe shume
bus#e, t $ilt do ti shohim me "one. 1a pr tani ky model sht i mjaftueshem. Ne
seksionet e ardhshme ne do t rishikojme shkurtimisht keta komponent dhe do t
ek'aminojme disa prej tyre, ata t $ilt projektuesit e sisteme"e operati"e jane t
interesuar.

1.4.1. PROESORET
*!+ sht EtruriF i kompjuterit. ,i merre instruksione nga memoria dhe i
ek'ekuton ata. *ikli ba'e i do *!+ sht marrja e instruksionit t pare nga memoria, t
dekodoje at pr t pr$aktuar tipin dhe operandet e tij, t ek'ekutoje at dhe pastaj
marrja, dekodimi, ek'ekutimi i instruksione"e pasues. Ne ket menyre kryhen programet.
Bdo *!+ ka nj bashkesi spe$ifike instruksionesh qe ai mund t ek'ekutoje.
)eshtu nj !entium nuk mund t ek'ekutoje programet 1!,.* dhe nj 1!,.* nuk
mund t ek'ekutoje programet !entium. Ngaqe aksesimi i memorjes, pr t marre nj
instruksion apo nj fjale data 'gjat me shume se ek'ekutimi i nj instruksioni, t gjithe
*!+ prmbajne disa regjistra ne brendesi t tyre, pr t mbajtur "ariablat kryesore dhe
re'ultatet paraprake. )eshtu bashkesia e instruksione"e prgjithesisht ka instruksione pr
t marre nj fjale nga memoria ne regjistr, dhe pr t ruajtur nj fjale nga regjistri ne
memorie. 6nstruksione t tjere kombinojne dy operanda nga regjistrat, memoria apo t dy
ne nj re'ultat, si mbledhja e dy fjale"e dhe ruajtja e re'ultatit ne nj regjistr apo ne
memorie.
>e$ regjistra"e t prgjithshem t prdorur pr t mbajtur "ariablat dhe re'ultatet
paraprake, shumi$a e kompjutera"e kane disa regjistra spe$iale qe jane t dallueshem pr
programuesin. Nj nga keto sht numeruesi i programe"e (program $ounter), qe mban
adresen e memories t instruksionit pasardhes qe do t merret. !asi ai instruksion sht
marre, program $ounter shenjon pasardhesin e tij.
Nj tjetr regjistr sht sta$k pointer, qe shenjon ne krye t sta$k#ut aktual ne
memorie. 1ta$k prmban nj frame pr do pro$edure qe ka hyre por akoma nuk ka dale.
Nj frame sta$k i pro$edures mban keto parametra input, "ariabla lokale, "ariabla
temporan qe nuk mbahen ne regjistr.
,koma nj tjetr regjistr sht !13 (!rogram 1tatus 3ord). )y regjistr
prmban bitin e kodit kusht, qe "endosen instruksione krahasimi, prioritet i *!+, mode
(user apo kernel), dhe disa bite t tjere kontrolli. !rogramet user mund t le%ojne t plot
!13, por ne menyre tipike mund t shkruajne "etm disa nga fushat e tij. !13 luan nj
rol t rendesishem n thirrjet sistem dhe 6/:.
1istemi operati" duhet t jet ne dijeni t t gjithe regjistra"e. )ur multipleksohet
ne kohe *!+, sistemi opearti" shpesh do t ndaloje programin "epruese pr t restartuar
nj tjetr. Bdo here qe ndalon nj program "eprues, sistemi operati" duhet t sa"e#je t
gjithe regjistrat keshtu qe ata mund t ruhen kur programi t "eproje prseri me "one.
!r t rritur performan$en, projektuesit e *!+ kane lene modelin e thjesht t
marrjes, dekodimit dhe ek'ekutimit t nj instruksioni ne nj kohe. 1hume *!+ moderne
kane aftsi pr ek'ekutimin e me shume se nj instruksioni ne t njjtn kohe. !r
shembull, nj *!+ mund t ket t ndare njsite e marrjes, dekodimit dhe ek'ekutimit
keshtu qe nderkohe qe po ek'ekutohet instruksioni n, mund t dekodoje instruksionin nT&
dhe t marre instruksionin nTH. Nj organi'im i tille quhet pipeline dhe ilustrohet ne
fig.&.D(a) pr nj pipeline me tre stade. !ipeline me t gjat jane t 'akonshem, ne
shumi$e e projektime"e pipeline, menjehere qe pipeline merret ne pipeline, ai duhet t
ek'ekutohet. !ipeline u shkakton shkrues"e t kompiluesit dhe shkrues"e t sistemit
operati"e dhimbje koke sepse ato u tregojne atyre kompleksitett e makines ne t $ilen
ndodhen.

Nj projektim akoma me i a"an$aur se pipeline sht nj *!+ supers$alar, e
treguar ne fig &.D (b). Ne ket projektim, shume njsi ek'ekutimi jane pre'ent, pr
shembull, nj pr arithmetik integer, nj pr arithmetike me presje notuese dhe nj pr
opra$ionet ;ooleane. =y ose me shume instruksione merren njeheresh, dekodohen dhe
hidhen ne nj buffer mbajts deri sa t ek'ekutohen. )ur nj e%e$ution 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 ek'ekuton at.Nj implikim i ketij projektimi
sht se instruksionet e programit shpesh nuk ek'ekutohen sipas rradhes.!r pjesen me t
madhe, i takon hardware t siguroje qe re'ultati i prodhuar sht i njjt me at qe do t
kishte bere implementimi sekuen$ial, por, si$ mund t shohim, nj sasi e mer'itshme e
kompleksitetit sht nge$ur ne sitemin operati".
1humi$a e *!+, duke prjashtuar ato me t thjeshtat, t prdorura ne sistemet
embedded kane dy mode, moden kernel dhe at user, si$ sht prmendur dhe me pare.
@akonisht nj bit ne !13 kontrollon moden. 5jat "eprimit t moden kernel, *!+ mund
t ek'ekutoje do instruksion ne bashkesine e tij t instruksione"e dhe t prdore do
njsi hardware#ik. 1istemi operati" "epron ne mode kernel, duke i dhene t drejt pr t
gjithe hardware#in.
Ne ndryshim, programet user "eprojne ne mode user, qe lejon "etm nj
nenbashkesi t instruksione"e t ek'ekutohen dhe nj nenbashkesi t njsi"e t prdoren.
!rgjithesisht, t gjithe instruksionet duke prfshire mbrojtjen 6/: dhe t memories jane
t palejuara ne mode user. 5jithashtu edhe "endosja e bitit t !13 ne kernel mode sht
e ndaluar.
!r t marre sherbime nga sistemi operati", nj progarm user duhet t beje nj
thirrje sistemi (system $all), e $ila si t themi 'e ne gra$ke kernelin dhe kerkon sistemin
operati". 6nstruksioni N.,! ndryshon nga moda user ne at kernel dhe fillon sistemin
operati". )ur puna prfundon, kontrolli kthehet t programi user t instruksioni qe "jen
pas thirrjes sistem. =etajet e proesit t thirrje"e sistem do ti shpjegojme me "one ne ket
kapitull. 1i nj shenim ne tipografi, ne do t prdorim fontin 2el"eti$a me shkronja t
"ogla pr t dalluar thirrjet sistem ne tekstin "eprues, si kjoJ
?sht e rendesishme t themi se ka trape t tjera "e$ atyre t instruksione"e pr
ek'ekutimin e nj thirrjeje sistem. 1humi$a e trape"e t tjere shkaktohen nga hardware
pr t lajmeruar situata prjashtuese si prpjekjen pr t pjestuar me 8 apo nj underflow
t presjes notuese. Ne do rast sistemi operati" merr kontrollin dhe duhet t "endose $fare
t beje. =isa here programi duhet t prfundoje me nj error. 2ere t tjera error#i mund t
injorohet (nj numer i nenrrjedhur mund t "endoset 8). Ne fund, kur programi ka
shpallur ne ad"an$im se kerkon t merret me kondi$ione t lloje"e t $aktuara, kontrolli i
kalon prseri programit duke e lene at t merret me problemin.
1.4.2. MEMORIA
)omponenti i dyt kryesor ne do kompjuter sht memoria. 6dealisht, nj
memorie duhet t jet shume e shpejt (me i shpejt se ek'ekutimi i nj instruksioni
keshtu qe *!+ nuk "aret nga memoria), shume e madhe dhe shume e lire. ,snj
teknologji aktuale nuk i prmbush t gjitha keto synime, keshtu qe sht ndjekur nj
rruge tjetr. 1istemi i memories sht i konstruktuar si nj hierarki shtresash, si$ tregohet
ne fig &.C.
1htresa e siprme prbehet nga regjistrat e brendshem ne *!+. ,to prbehen nga
i njjti material si ai i *!+ dhe jane po ashtu po aq t shpejt sa *!+. 1i pasoje, nuk ka
asnj "one se ne aksesimin e tyre. )apa$iteti i disponueshem i ruajtjes ne menyre tipike
sht 9H%9H#bit ne nj
*!+ 9H#bit dhe DM%DM#bit ne nj *!+ DM#bit. (e pak se &); ne t dy rastet. !rogramet
duhet t mena%hojne regjistrat (t "endosin se $fare duhet t mbahet ne to), ne software.
(e pas "jen memoria *ha$e, e $ila ne prgjithesi sht e kontrolluar nga
hardware. (emoria kryesore ndahet ne linja $ha$e, ne menyre tipike DM byte, me adresa 8
deri ne D9 ne linjn $ha$e 8, adresat DM deri ne &HC ne linjn $ha$es & dhe keshtu me
rradhe. -injat $ha$e me t prdorura mbahen ne nj $ha$e me shpejtsi t lart e "endosur
brenda ose shume afer *!+. )ur programi duhet t le%oje nj fjale memorieje, hardware
$ha$e kontrollon ne se rreshti i ne"ojitur sht ne $ha$he ose jo. Ne qoft se sht, qe
quhet chace hit, kerkesa plotsohet nga $ha$e dhe ne memorie nuk dergohet asnj
kerkese me ane t busit t memories kryesore. *ha$e hit normalisht kerkon dy $ikle
$lo$ku. *ha$e misses (deshtim) duhet t shkoje ne memorie me nj penalitet t
konsiderueshem kohe. (emoria $ha$e sht e limituar ne madhesi qe prkon me koston e
saj t lart. =isa makina kane dy, madje edhe tre ni"ele $ha$e, se$ila me e ngadalt dhe
me e madhe se ajo para saj.
(e pas "jen memoria kryesore. )jo sht ajo qe bn punet me t renda ne
sistemin e memories. (emoria kryesore shpesh quhet RAM (Random Access Memory),
me t "jetrit e quajne at edhe core memory. ,ktualisht, memoriet jane dhjet ne qindra
megabytes dhe duke u rritur ne menyre t shpejt. N gjitha kerkesat e *!+ qe nuk mund
t prmbushen ne $ha$e shkojne ne memorien kryesore.
(e pas ne hierarki jane disqet magnetike (hard disks). .uajtja ne disk sht dy
here me pak e kushtueshme se .,( pr bit dhe shpesh dy here me e madhe gjithashtu.
!roblemi i "etm sht se koha e aksesimit t t dhena"e ne t sht rreth tre here me e
ngadalt. )jo shpejtsi e ulet sht nga fakti se nj disk sht nj pajisje mekanike, si$
tregohet ne fig &.L.
Nj disk prbehet nga nj ose me shume pajisje metalike ne forme pjat qe
rrotullohen ne 7M88, CH88 ose &8L88 rpm. 5jithashtu kane edhe bosht t nj krahu
mekanik, mbi pjata nga qoshet, t ngjashme me krahun pi$kup ne nj fonograf t "jetr
99 rpm. 6nforma$ioni shkruhet ne disk ne nj seri qarqesh t kon$entruar. Ne do
po'i$ion krahu t dhene, se$ila nga kokat mund t le%oje nj pjese una'ore e quajtur
track. N gjithe tra$ks sebashku pr nj po'i$ion krahu t dhene formojne nj cilinder.
Bdo tra$k sht e ndare ne disa numra sektoresh, ne menyre tipike 7&H byte pr
sektor. Ne disqet moderne, $ilindrat e jashtm prmbajne me shume sektore se ata t
brendeshmit. !r t le"i'ur krahun nga nj $ilinder ne $ilindrin me pas kerkon rreth
&mse$. !r ta le"i'ur at ne nj $ilinder t rastesishem kerken 7 deri ne &8 mse$, duke u
"arur nga dri"e#i. 1apo krahu t jet ne
krahun e duhur, dri"e#i duhet t prese pr sektorin e ne"ojitur qe t rotullohet posht
kokes, nj "one se shtese prej 7 deri ne &8 mse$ qe "aret nga rpm i dri"e#it. 1apo sektori
t jet posht kokes, le%imi ose shkrimi behet ne ne rate prej 7(;/se$ ne disqet e
ngadalta deri ne &D8(;/se$ ne ata t shpejtt.
1htresa e fundit ne hierarkine e memories sht tape#i magnetik (shiriti magnetik).
)y mjet shpesh prdoret si nj re'er"e i ruajtjes ne disk dhe pr mbajtjen e bashkesi"e t
t dhena"e shume t medha. !r aksesimin e nj tape, fillimisht duhet t "endoset ne nj
le%ues tape, nga nj person ose nga nj robot (marrja e automati'uar e tape sht e
'akonshme ne instalimet me database t madhe). !astaj tape mund t duhet t rrotullohet
prpara pr t arritur ne bllokun e kerkuar. )jo mund t kerkoje disa minuta. !lus i madh
i tape sht jasht'akonisht pak i kushtueshem pr bit dhe i le"i'shem, qe sht e
rendesishme pr tape re'er"e qe duhet t ruhen jasht ne menyre qe t re'istojne nga
'jarret, prmbytjet, termetet, etj.
2ierarkia 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). 5jithesesi akoma
ne t gjitha prej tyre, kur nj ulet posht ne hierarki, koha e aksesimit t rastesishem rritet
dramatikisht, kapa$iteti rritet ne t njjtn menyre dramatike dhe kosto pr bit ulet
pamase. 1i pasoje, hierarkit e memories do t jene edhe ne "itet qe "ijne.
>e$ lloje"e t memorie"e t diskutuara me sipr, shume kompjutera kane nj sasi
t "ogel t qendrueshme memorie me aksesim t rastesishem (random a$$ess memory).
Ndryshe nga .,(, memoriet e qendrueshme nuk e humbasin prmbajtjen e tyre kur
nderpritet energjia. .:( (.ead :nly (emory) 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 .:(. 5jithashtu,
disa karta 6/: me .:(#in merren me kontrollin e pajisje"e t ni"elit t ulet.
!.:( (le$tri$ally rasable .:() dhe flash .,( jane gjithashtu t
qendrueshem, por ne ndryshim nga .:( mund t fshihet dhe t rishkruhet. 1idoqoft,
pr ti shkruar ato kerkon me shume se t shkruash .,(, keshtu ato prdoren ne t
njjtn menyre si .:(, "etm me nj dukuri shtese qe tani bn t mundur t korrigjosh
"iruset ne programet qe mbajne duke i rishkruar ata ne fushe.
,koma nj tjetr lloj memorieje sht *(:1, qe sht e paqendrueshme. 1hume
kompjutera prdorin memorien *(:1 pr t mbajtur kohen dhe datn aktuale. (emoria
*(:1 dhe qarku i ores qe inkrementon kohen ne t, jane t fuqi'uar nga nj bateri t
"ogel, keshtu qe koha update#et (freskohet) ne menyre t sakt, edhe kur kompjuteri sht
i pa"ene ne pri'e. (emorja *(:1 gjithashtu mund t mbaje parametrat e konfigurimit,
se nga $ili disk t boot#oje. *(:1 prdoret sepse har%hon pak power saqe bateria e
"endosur qe ne fabrike mund t 'gjase pr disa "jet. 5jithsesi, kur fillon t deshtoje,
kompjuteri mund t filloje t ket semundjen ,l'heimer, qe harron gjerat qe i ka njohur
pr "ite me rradhe, si pr shembull, nga $ili disk t boot#oje.
-e t fokusohemi ne memorien kryesore pr pak. 1hpesh sht e pelqyeshme t
mbash shume programe ne memorie njeheresh. Ne qoft se nj program bllokohet duke
pritur qe nj le%im disku t kompletohet, nj program tjetr mund t prdore *!+, duke i
dhene nj shfryt'im me t mire *!+. 5jithesesi, me dy ose me shume programe
njeheresh ne *!+, duhet t 'gjidhen dy problemeJ
1. 1i t mbrojme programet nga njri#tjetri dhe tjetrin nga t gjithe ata
2. 1i t merret me 'h"endosjen
1hume 'gjidhje jane t mundeshme. (egjithat t gjitha prej tyre prfshijne pajisjen e
*!+ me hardware spe$ial.
!roblemi i pare sht i dukshem, por i dyti sht pak me delikat. )ur nj program
kompilohet dhe linkohet (bashkohet), kompiluesi dhe linkuesi nuk e dine se ne $O"end t
memories fi'ike do t ngarkohet kur programi sht ek'ekutuar. !r ket arsye, ato
'akonisht supo'ojne qe do t filloje ne adresen 8 dhe aty do t "endoset instruksioni i
pare. 1upo'ojme se instruksioni i pare merre nj fjale nga memorja ne adresen &8888.
Nani supo'ojme se programi i plot dhe t dhenat jane ngarkuar ne adresen D8888. )ur
ek'ekutohet instruksioni i pare, do t deshtoje sepse do ti referohet fjales ne &8888 ne
"end t fjales ne D8888. !r t 'gjidhur ket problem, duhet ose t 'h"endosim programin
ne kohen e ngarkimit, t gjejme t gjitha adresat dhe ti modifikojme ato, gje e $ila mund
t behet por sht e kushtueshme, ose t (skanim i keq)
@gjidhja me e thjesht tregohet ne fig &.G(a). Ne ket figure shohim nj kompjuter
t pajisur me dy regjistra spe$ial, regjistri ba'e dhe regjistri limit (>ini re qe ne ket liber,
numrat qe fillojne me :% jane ne he%ade$imal). )ur nj program sht run, regjistri ba'e
"endoset t shenjoje fillimin e tekstit t programit, dhe regjistri limit tregon sa t medhenj
jane kombinimet e teksitit t programe"e dhe t dhena"e. )ur nj instruksion duhet t
merret, hardware kontrollon ne se program $ounter sht me pak se regjistri limit, dhe ne
qoft se sht, e shton at ne regjistrin ba'e dhe shumen e dergon ne memorie. Ne
menyre t ngjashme kur programi kerkon t marre nj fjale t dhenash (pr shembull,
nga adresa &8888), hardware automatikisht shton prmbajtjen e regjistrit ba'e me at t
adreses dhe shumen e dergon ne memorie. .egjistri ba'e e bn t pamundur pr nj
program ti referohet nj pjese memorieje posht tij. !r me tepr, regjistri limit e bn t
pamundur ti referohet nj pjese t memories sipr tij. )eshtu kjo skeme 'gjidh qe t dy
problemet, at t mbrojtjes dhe at t 'h"endosjes ne saj t dy regjistra"e t rinj dhe nj
rritje t "ogel t $iklit t kohes (pr t prformuar kontrollin dhe shtimin limit (limit
$he$k and addition))
.e'ultati i kontrolluar dhe i hartuar sht ne kon"ertimin e nj adrese t gjeneruar
nga programi, e quajtur adrese virtuale, ne nj adrese t prdorur nga memoria, e quajtur
adrese fizike. ,jo qe bn kontrollin dhe hartimin quhet MMU (Memory Management
Unit). ?sht e "endosur mes *!+#se dhe memories.
Nj ((+ me e sofistikuar tregohet ne fig &.G(b). )etu ne kemi nj ((+ me dy
$ift regjistrash ba'e dhe limit, nj pr tekstin e programit dhe nj pr t dhenat. !rogram
$ounter#i dhe t gjitha referen$at e tjera t tekstit t programit prdorin $iftin e 6#re dhe
ato t t dhena"e prdorin $iftin 66#t. 1i rrjedhim, tani sht e mundur t kesh shume
prdorues qe ndajne t njjtin program me nj kopje t "etme ne tij ne memorie, gje jo e
mundur me skemen e pare. )ur programi & po "epron, katr regjistrat jane t "endosur t
shenuar me shigjeta ne t majt t fig &.G(b). )ur po "epron programi H, ato jane
"endosur t shenuar me shigjeta ne t djatht t figures. k'istojne ((+ akoma me t
sofistikuara. =isa prej tyre do ti shohim me "one ne ket liber. ,jo qe duhet t "eme re
ketu sht qe mena%himi i ((+#se duhet t jet nj funksion i sistemit operati",
prderisa prdoruesit nuk mund t jene t besuar se e bejne ne menyre korrekte.
=y aspekte t sistemit memorie kane efekt kryesor ne performan$e. 1e pari,
$ha$e#t fshehin shpejtsine relati"isht t ulet t memories. )ur nj program ka qene ne
"eprim pr pak kohe, $ha$e sht plot me linjat $ha$e t ketij programi, duke dhene nj
performan$e t mire. 1idoqoft, kur sistemi operati" ndryshon nga njri tek tjetri, $ha$e
mbetet plot me linjat $ha$e t programit t pare. ,to qe duhen nga programi i pare duhet
t merren nj e nga nj nga memoria fi'ike.
1e dyti, kur behet ndryshimi nga nj program t tjetri, regjistrat ((+ duhet t
ndryshohen. Ne fig &.G(b), duhet t risetohen "etm M regjistra, qe nuk sht shume
problem, por ne ((+ t "erteta, duhet t ringarkohen shume regjistra, ne menyre
dinamike apo ne menyre ekspli$ite, sipas ne"ojes. 1e$ila rruge qe duhet ndermarre
kerkon kohe. (orali i kesaj sht se ndryshimi nga njri program t tjetri, si$ quhet
context switch, sht nj bi'nes me t "ertet shume i kushtueshem.
1.4.3. PA1IS1ET I/O
(emorja nuk sht i "etmi burim qe duhet t mena%hohet nga sistemi
operati".!ajisjet 6/: gjithashtu bashke"eprojne ngusht me sistemin operati". 1i$ e pame
ne fig &.7, pajisjet 6/: prgjithesisht prbehen nga dy pjeseJ kontrolleri dhe pajisja "et.
)ontrolleri sht nj $hip ose nj bashkesi $hipesh ne nj plugboard qe fi'ikisht
kontrollon pajisjen. ,i pranon komanda nga sistemi operati", pr shembull, t le%oje 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 operati". !r shembull, nj kontroller disku mund t pranoje nj komande le%imi
pr sektorin &&H8D nga disk H. !astaj kontrolleri duhet t kon"ertoje ket numer linear
sektori ne nj $ilinder, sektor dhe koke (head). )y kon"ertim mund t jet i komplikuar
nga fakti qe $ilindrat e jashtm kane me shume sektor se ato t brendeshmit dhe disa
sektor t demtuar jane hartuar ne t tjere t rinj. !astaj kontrolleri duhet t pr$aktoje se
kraku i diskut ne $ilin $ilinder sht dhe ti jap atij nj sekuen$e pulsesh pr t le"i'ur
brenda apo jasht numerit t kerkuar t $ilindra"e. ,tij i duhet t prese deri kur sektori i
duhur t rrotullohet posht kokes dhe pastaj t filloje le%imin dhe ruajtjen e bite"e, ashtu
si$ ato "ijne nga dri"e, t heqe paraardhesit dhe t llogarise $he$ksum#in. 1e fundmi, ai
duhet t grumbulloj bitet hyrese ne fjale dhe ti ruaj ne memorie. !r t bere gjithe ket
pune, kontrollerat shpesh prmbajne kompjutera embedded qe programohen pr t
bere punen e tyre.
!jesa tjetr sht pajisja aktuale "et. !ajisjet kane nderfaqe t thjeshta, sepse nuk
mund t bejne shume dhe ti bejne ato standarte. )jo e fundit duhet sepse pr shembull
do kontroller disk 6= mund t merret me do disk 6=.6= qe sht 6ntegrated =ri"e
le$troni$s, sht tipi standart i diskut ne !entium dhe disa kompjutera"e t tjere.
!rderisa nderfaqja aktuale e pajisjes sht e fshehur pas kontrollerit, gjithe ajo $Oka sheh
sistemi operati" sht nderfaqa t kontrolleri qe mund t jet shume e ndyshme nga
nderfaqja e pajisjes.
(eqe do lloj kontrolleri sht i ndryshem, duhen software t ndryshme pr t
kontrolluar se$ilin nga ato. 1oftware qe merret me kontrollerin, duke i dhene atij
komanda dhe duke pranuar prgjigjet, quhet dri"eri i pajisjes (de"i$e dri"er). Ndertuesit e
kontrollera"e bat$h duhet t pajisin nj dri"er pr se$ilin sistem operati" qe suportojne.
)eshtu pr shembull, nj skaner mund t shkoje me nj dri"er pr 3indows GL, 3indows
H888 dhe +N6R.
=ri"eri, qe t "eproje ne moden kernel, duhet t "endoset ne sistemin operati".
Neorikisht, dri"erat mund t "eprojne edhe jasht modes kernel, por pak sisteme aktuale e
suportojne ket mundesi sepse ai kerkon aftsine pr t lejuar nj dri"er pr hapesiren e
prdoruesit, pr t mund t aksesuar pajisjen ne nj menyre t kontrollueshme, dukuri e
suportuar rralle. )a tre menyra qe dri"eri mund t "endoset ne kernel. (enyra e pare
sht t rilidhesh (relink) kernelin me nj dri"er t ri dhe pastaj ta reboot#osh sistemin.N
shumt jane sistemet +N6R qe punojne ne ket menyre. (enyre e dyt sht qe t bejme
nj hyrje (entry) ne nj file t sistemit operati" duke i treguar qe i duhet nj dri"er dhe
pastaj reboot#ojme sistemin. Ne kohen e boot#imit, sistemi operati" shkon dhe gjen
dri"erat qe i duheshim dhe i merr ato. Ne ket menyre punon 3indows. (enyra e tret
sht qe sistemi operati" t jet ne gjendje t pranoje dri"era t rinj gjat "eprimit dhe ti
instaloje ata pa patur ne"ojen qe ti boot#oje. )jo menyre ka pasur prdorim t pakt por
ne ditt e sotme po gjen me shume shtrirje pr prdorim. !ajisje t tilla si +1; apo 6;;
&9GM (t diskutuara me pare) gjithmone duan dri"era t ngarkuara ne menyre dinamike.
Bdo kontroller ka nj numer t "ogel regjistrash qe prdoren pr t bere t mundur
komunikimin me t. !r shembull, nj kontroller disku minimal mund t ket regjistra pr
t spe$ifikuar adresen e diskut, adresen e memories, numrin e sektore"e dhe drejtimin
(le%im apo shkrim). !r akti"i'imin e kontrollerit, dri"eri merr nj komande nga sistemi
operati" dhe me pas e prkthen at ne "lerat e duhura pr t shkruar ne regjistrat e
pajisjes.
Ne disa kompjutera, regjistrat e pajisjes jane hartuar ne hapesiren e adresa"e t
sistemit operati", keshtu ato mund t le%ohen apo shkruhen si fjale t 'akonshme t
memories. Ne kompjutera t tille nuk ne"ojitet asnj instruksion spe$ial 6/: dhe
programet user mund t mbahen larg nga hardware#i duke mos "endosur keto adresa
memorjeje ne shtrirje t tyre (pr shembull, duke prdorur regjistrat ba'e dhe regjistrat
limit). Ne kompjutera t tjere, regjistrat e pajisjes jane ne nj hapesire spe$iale t porta"e
6/:, ku se$ili regjistr ka nj adrese port. Ne keto makina, instruksione spe$iale 6N dhe
:+N jane t disponueshem ne moden kernel pr t lejuar dri"erat t le%ojne apo t
shruajne regjistrat. 1kema e meparshme eliminon ne"ojen e instruksione"e spe$iale 6/:
por prdor nj pjese t hapesires se adresa"e. )jo e fundit nuk prdor fare hapesire t
adresa"e por kerkon instruksione spe$iale. <e t dy keto sisteme jane gjeresisht t
prdorshem.
6nputi 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 $ilen kerneli e
shnderron me pas ne nj thirrje pro$edure pr dri"erin e duhur. (e pas dri"eri fillon 6/:
dhe qendron ne nj right loop dhe ne menyre t "a'hdueshme duke i bere sonda'h
pajisjes t shoh ne se sht bere ('akonisht ka disa bit qe tregojne se pajisja sht akoma
e 'ene). )ur 6/: ka prfunduar, dri"eri "endos t dhenat aty ku ato ne"ojiten (ne qoft se
ka t tille) dhe kthehet. (e pas sistemi operati" i kthen kontrollin thirresit. )jo metode
quhet busy waiting.
(etoda e dyt sht qe dri"eri t startoje pajisjen dhe ti kerkoje atij ti jape nj
interrupt kur t mbaroje. Ne at pike dri"eri kthehet. !astaj sistemi operati", ne qoft se
ne"ojitet, bllokon thirresin dhe sheh pr ndonj pune tjetr pr t bere. )ur kontrolleri
hap fundin e transferimit, pr t sinjali'uar kompletimin gjeneron nj interrupt.
6nterruptet jane shume t rendesishme ne sistemin operati", keshtu qe le t
ek'aminojme me afer ket ide. Ne fig &.&8(a). shohim nj proes tre#hapash pr 6/:. Ne
hapin e pare, dri"eri i tregon kontrollerit duke shkruar ne regjistrat e pajisjes se tij se
$fare t beje. (e pas kontrolleri starton pajisjen. )ur kontrolleri ka mbaruar shkrimin ose
le%imin e numra"e t byte"e qe i sht $aktuar t transferoje, sinjali'on $hip kontrollerin
e interruptit duke prdorur linja busi t $aktuara ne hapin e dyt. Ne qoft se kontrolleri i
interruptit sht i prgatitur pr t pranuar interruptin (i $ili mund t mos jet ne qoft se
sht i 'ene me nj tjetr me prioritet me t lart), ai shpall nj pin $hipin *!+#se duke e
informuar at, ne hapin tret. Ne hapin e katrt, kontrolleri interruptit "endos numrin e
pajisjes ne bus ne menyre qe *!+ mund ta le%oje at dhe t dije se $ila pajisje ka
mbaruar (shume pajisje mund t jene ne "eprim ne t njjtn kohe).
1apo *!+ ka "endosur t marre interruptin, program $ounter#i dhe pastaj !13,
ne menyre tipike shtyhen ne sta$k#un aktual dhe *!+ ndryshon ne kernel mode. Numri i
pajisjes mund t prdoret si nj inde% ne pjese t memories pr t gjetur adresen e
mbajtsit t interruptit pr pajisjen. )jo pjese e memories quhet interrupt "e$tor. 1apo
mbajtsi i interruptit (pjese e dri"erit pr pajisjen qe sinjali'on interrupt) t ket startuar,
ai heq sta$ked program $ounter dhe !13 dhe i ruan ato, pastaj pyet pajisjen pr t
mesuar statusin e saj. )ur mbajtsi i interruptit ka prfunduar, ai kthehet ne programin
user qe me pare ishte ne "eprim, ne instruksionin e pare qe akoma nuk ishte ek'ekutuar.
)eto hapa tregohen ne fig.&.&8(b).
(etoda e tret pr t bere punet 6/: prdor nj $hip spe$ial =(, (=ire$t (emory
,$$ess) qe mund t kontrolloje rrjedhen e bite"e mes memories dhe disa kontrollera"e pa
nderhyrjen konstant t *!+. *!+ e nderton $hipin e =(,, duke i treguar sa byte t
transferoje, duke prfshire adresat e pajisjes dhe memories dhe drejtimin, dhe e le t
"a'hdoje. )ur behet $hipi i =(,, ai shkakton nj interrupt, i $ili trajtohet si$ thame me
sipr. 2ardware#i =(, dhe 6/: ne prgjithesi do t prshkruhet me shume ne detaje ne
kapitullin 7.
1hpesh interruptet mund t ndodhin ne momente t paprshtatshme, pr shembull,
kur nj tjetr mbajts interrupti (interrupt handler) sht ne "eprim. !r ket arsye, *!+
ka nj menyre qe t beje t paaft interruptet dhe pastaj ti aftsoje prseri me "one.
Nderkohe qe interruptet jane joakti"e, do pajisje mund t gjeneroje interrupte, por *!+
nuk nderpritet deri sa t akti"i'oje prseri interruptet. Ne qoft se, pajisje t shumta
mbarojne qe interruptet jane t $Oakti"i'uar, kontrolleri i interruptit "endos se $ilin t lere
t parin, 'akonisht ba'uar ne prioritetin statik i shenuar t do pajisje. !ajisja me prioritet
me t lart fiton.
1.4.4. BUSET
:rgani'imi i figures &.7. ishte i prdorur pr "ite me rradhe ne minikompjutera
dhe gjithashtu ne personal $omputer 6;(. 5jithesesi, me arritjen e proesore"e dhe
memories me t shpejt, aftsia e nj busi t "etm (dhe sigurisht busi 6;( !*) pr tu
marre me t gjithe trafikun ishte sfor$uar deri ne piken me t fundit. =i$ka duhet t
behej. 1i re'ultat i kesaj, u shtuan buse shtese, pr t pajisje 6/: me t shpejta dhe
gjithashtu pr t minimi'uar trafikun *!+#memorie. 1i pasoje e ketij e"oluimi, nj sistem
i madh !entium aktualisht Aooks, di$ka si ne fig.&.&&.
1istemi ka te buse ($ha$e, lo$al, memory, !*6, 1*16, +1;, 6= dhe 61,), ku
se$ili ka rate (shkalle) transferimi dhe funksion t ndyshem. 1istemi operati" duhet t jet
ne dijeni t t gjithe ketyre pr konfigurimin dhe mena%himin. =y buset kryesore jane
origjinalet e 6;( !* busi 61, (6ndustry 1tandart ,r$hit$ture) dhe pasuesi i tij, !*6
(!ripheri$al *omponent 6ntr$onne$t). ;usi 61,, qe fillimisht ishte busi 6;( !*/,N,
"epron ne L.99(2' dhe mund t transferoje dy byte njeheresh, ne nj maksimum prej
&D.DC (b/se$. ,i sht i prfshire pr pajtueshmeri t prapambetur t karta"e 6/: t
"jetra dhe t ngadalta. ;usi !*6 u krijua nga 6ntel si nj pasardhes i busit 61,. ,i mund t
"eproje ne DD(h' dhe t transferoje L byte ne t njjtn kohe, pr nj data rate prej 7HL
(;/se$. 1humi$a e pajisje"e 6/: me shpejtsi t lart tani prdorin busin !*6. dhe dida
$ompjutra jo#6ntel gjithashtu prdorin busin !*6 ne saj t numrit t madh t karta"e 6/:
t prdorshme pr t.
Ne ket konfigurim, *!+ bashke bisedon me uren e $hipit !*6 neprmjet busit
lokal (lo$al bus), dhe ura e $hipit !*6 bashke bisedon me memorien neprmjet nj busi t
dedikuar memories, shpesh qe "epron ne &88(2'. 1istemet pentium kane ne $hip nj
$ha$e ni"el i 6#re dhe jasht $hipit nj $ha$e shume me e madhe ni"eli i 66#t, t lidhur me
*!+ me busin e $ha$e#se.
!r me tepr, ky sistem prmban tre buse t spe$iali'uarJ 6=, +1; dhe 1*16.
;usi 6= sht pr t lidhur pajisjet periferike si, disqet dhe *=#.:( me sistemin. ;usi
6= sht nj dege e nderfaqes se kontrollerit t diskut ne !*/,N dhe tani sht standarte
ne afersisht t t gjithe sistemet !entium#based pr hard diskun dhe shpesh pr *=#.:(.
;usi +1; (+ni"ersal 1erial ;us) u krijua pr t lidhur t gjitha pajisjet e ngadalta
6/:, si tastjeren dhe mouse#in, me kompjuterin. ,i prdor nj lidhes M fijesh, dy nga t
$ilat sigurojne fuqi elektrike pr pajisjen +1;. +1; sht nj bus i $entrali'uar ne t $ilin
nj pajisje rrenj u bn sonda'h pajisje"e 6/: do & mse$ ne qoft se ka trafik apo jo. ,i
mund t mano"roje nj shume totale ngarkimesh prej &.7 (;/se$. N gjithe pajisjet +1;
ndajne nj dri"er t "etm pajisjesh +1;, duke e bere t pane"ojshme instalimin e nj
dri"eri t ri pr do pajisje t re +1;. !r pasoje, pajisjet +1; mund t shtohen ne
kompjuter pa patur ne"oje t reboot#ohen.
;usi 1*16 (1mall *omputer 1ystem 6ntrfa$e) sht nj bus me performan$e t
lart i $aktuar pr disqe t shpejta, skanera dhe pajisje t tjera qe duan gjeresi bre'i t
konsiderueshme. ,i mund t "eproje deri ne &D8 (;/se$. ,i ka qene pre'ent ne sistemet
(a$intosh qe ne fillimet e krijimit t tyre dhe gjithshtu sht i populluar ne +N6R, dhe
ne disa sisteme 6ntel#based.
,koma nj bus tjetr (qe nuk sht treguar ne fig &.&&.) sht 6 &9GM.
Ndonjehere ky quhet /ire3ire. ,pple e prdor pr implementimin e tij t &9GM. ,shtu si
+1;, 6 &9GM sht nj serial bitesh por sht projektuar pr transfertn e paketa"e
me shpejtsi deri ne 78 (;/se$, duke e bere at t prdorshem pr lidhjen e $a$ordera"e
di%hitale dhe pajisje multimedia t ngjashme me nj kompjuter. Ndryshe nga +1;,
6 &9GM nuk ka nj kontroller qendror. 1*16 dhe 6 &9GM hasin konkuren$e nga
"ersionet e shpejta qe jane 'h"illuar t +1;.
!r t punuar ne nj sistem si ai i fig.&.&&, sistemi operati" duhet t dije se $fare
sht aty dhe ta konfiguroje at. )jo ne"oje $oi 6ntelin dhe (irosoftin t projektojne nj
sistem pr !* i quajtur plug and play, qe ba'ohet ne nj kon$ept t ngjashem t
implementuar fillimisht ne ,pple (a$hintosh. !ara plug and play, do kart 6/: kishte
nj ni"el fiks t kerkesa"e pr interrupt dhe adresa fikse pr regjistrat 6/:. !r shembull,
tastiera ishte interrupt & dhe prdort adresat 8%D8 deri 8%DM, kontrolluesi i floppy disk#ut
ishte interrupt D dhe prdort adresat 8%/8 deri ne 8%/C dhe printeri ishte interrupt C dhe
prdort adresat 8%9CL deri ne 8%9C,, dhe keshtu me rradhe.
=eri ketu do gje ishte ne rregull. 1hqetsimet erdhen kur prdoruesi bleu nj
kart 'eri dhe nj kart modem dhe duhet t prdoreshin t dyja, le t themi interrupt M.
,to ishin konfliktuale mes njra tjetres dhe dhe nuk mund t punonin se bashku. @gjidhja
ishte prfshirja e $elesa"e DIP ne do kart 6/:, dhe instruktimi i prdoruesit qe ti
"endose ato ne menyre qe t 'gjedhin nj ni"el interrupt#i dhe adresa t pajisje"e 6/: qe
nuk jane konfliktuale me ndonj tjetr ne sistemin e prdoruesit. ,doleshentt t $ilt
dedikuan jetn e tyre ne ngatrresat e hardware#it t !* ndonjehere mund ta bnin ket pa
gabime. /atkeqesisht, asnj tjetr nuk mundi, gje e $ila $oi ne kaos.
,jo $fare plug and play bn sht t pasurit e nj sistemi qe automatikisht t
mbledhe informa$ion rreth pajisje"e 6/:, kryesisht t pr$aktoje ni"elet e interrupt#e"e
dhe adresat 6/: dhe me pas ti tregoje se$iles kart se $ilt jane numrat e saj. 1hkurtimisht,
kjo punon si$ tregohet ne !entium. Bdo !entium ka nj parentboard (formalisht i quajtur
me pare motherboard prpara se korrektesia politike t godist industrine kompjuterike).
Ne parentboard ndodhet nj program i quajtur BIOS (Basic Input Output System).
;6:1#i ka software 6/: t ni"elit t ulet, prfshire ketu edhe pro$edurat e le%imit t
tastieres, shkrimit ne s$reen, berja e disk 6/:. Ne ditt e sotme, ai mbahet ne nj .,( t
shpejt, qe sht i qendrueshem por mund t update#ohet nga sistemi operati" kur
gjenden "iruse ne ;6:1.
)ur kompjuteri boot#ohet, fillon ;6:1#i. /illimisht sheh se sa .,( sht
instaluar dhe ne se tastiera apo pajisje t tjera kryesore jane instaluar dhe "eprojne ne
menyre korrekte. ,i fillon me skanimin e bus#e"e 61, dhe !*6 pr t 'buluar t gjitha
pajisjet e lidhura. =isa nga keto pajisje ne menyre tipike jane trashegime (legacy) (t
projektuar para krijim t plug and play) dhe kane ni"ele fikse t interrupt#e"e dhe
adresash 6/: (me shume mundesi jane t "endosur nga $elesa ne kartn 6/:, por jo t
modifikueshme nga sistemi operati"). )eto pajisje jane t regjistruara. 5jithashtu edhe
pajisjet plug and play jane t regjistruara. Ne qoft se pajisjet qe jane pre'ent jane t
ndryshme nga ato pajisje t boot#imit t fundit t sistemit, ato konfigurohen.
;6:1#i me pas pr$akton pajisjen e boot#imit duke pro"uar nj list t pajisje"e t
ruajtur ne memorjen *(:1. !rdoruesi mund ta ndryshoje ket list duke hyre ne
programin e konfigurimit ;6:1 direkt pas boot#imit. Ne menyre tipike, behet nj
prpjekje pr t boot#uar nga floppy disk. Ne qoft se kjo deshton pro"ohet *=#.:(. Ne
qoft se as floppy dhe as *=#.:( nuk jane pre'ent sistemi boot#ohet nga hard disku.
1ektori i pare nga pajisja e boot#imit le%ohen ne memorje dhe ek'ekutohet. )y sektor
prmban nj program qe normalisht ek'aminon tabelen e pjese"e ne fund t sektorit t
bootimit pr t pr$aktuar se $ila pjese sht akti"e. (e pas le%ohet nj ngarkues boot#
imi sekondar nga ajo pjese. )y ngarkues le%on ne sistemin operati" nga pjesa akti"e dhe
fillon.
(e pas sistemi operati" i kerkon ;6:1#it t marre informa$ionin konfigurues. !r
do pajisje, ai kontrollon ne se se$ila prej tyre ka dri"er#in e pajisjes. Ne qoft se jo, i
kerkon prdoruesit t "endose nj floppy disk apo *=#.:( qe prmban dri"er#in (i
siguruar nga prodhuesit e pajisjes). 1apo ai t ket t gjithe dri"er#at e pajisje"e, sistemi
operati" i ngarkon ato ne )ernel. (e pas ai ini$iali'on tabelat e tij, krijon do lloj
ba$kground#i qe u ne"ojitet proese"e dhe starton nj login program ose 5+6 ne do
terminal. N paktn kjo sht menyra qe supo'ohet t funksionoje. Ne jetn e prditshme
plug and play sht tepr e pabesueshme saqe njere'it e quajne plug and pray.
1.5. KONCEPTET E SISTEMIT OPERATIV
N gjithe sistemet operati"e kane kon$epte ba'e t $aktuara si proeset, memorja
dhe file#t t $ilat jane kryesore ne kuptimin e tyre. Ne pjeset e meposhtme ne do t
shohim disa prej ketyre kon$epte"e ba'e edhe pse shkurtimisht, si nj pre'antim. =o ti
shohim me t detajuara se$ilen prej tyre me "one ne ket liber. !r t ilustruar keto
kon$epte here pas here do t shohim shembuj t ndryshem, 'akonisht t marre nga
+N6R. Ne menyre tipike shembuj t ngjashem ek'istojne edhe ne sisteme t tjere
gjithashtu.
1.5.1. PROESET
Nj kon$ept kryesor ne t gjithe sistemet operati"e sht proesi. Ne menyre
paresore nj proes sht nj program ne ek'ekutim. (e do proes shoqerohet hapesira
e adresa"e t tij (address spa$e), qe sht nj list e "endndodhje"e t memorjes nga nj
minimum ('akonisht 'ero) ne nj maksimum, t $ilen proesi mund ta le%oje dhe
shkruaje. 2apesira e adresa"e prmban programin e ek'ekutueshem, t dhenat e
programit dhe sta$k#un e tij. 5jithashtu me do proes shoqerohen disa bashkesi
regjistrash, duke prfshire ketu program $ounter, sta$k pointer dhe regjistra t tjere
hardware, dhe t gjithe informa$ionin tjetr t ne"ojitur pr "eprimin e programit.
Ne me shume detaje do t "ijme prseri t proeset ne kapikullin 66, por tani pr
tani menyra me e leht pr t marre nj ndjesi t mire intuit pr nj proes sht t
mendojme rreth sisteme"e timesharing. Ne menyre periodik, sistemi operati" "endos t
ndaloje se "epruari nj parogram dhe t filloje nj tjetr, sepse i pari ka patur me shume
se koha e tij e ndarjes se *!+#se ne sekondin paraardhes.
)ur nj proes pe'ullohet prkohesisht si ky, duhet t restart#ohet me "one
ek'aktsisht ne t njjtin stil qe kishte para se t nderpritej. )jo nenkupton qe i gjithe
informa$ioni rreth proesit duhet ne menyre ekspli$it t ruhet diku gjat pe'ullimit. !r
shembull, proesi mund t ket disa file t hapura pr le%im ne t njjtn kohe. !r
se$ilen nga keto shoqerohet nj pointer qe jep po'i$ionin aktual (numrin e byte#"e apo
re$ord#e"e qe duhet t le%ohen me pas). )ur nj proes sht prkohesisht i pe'ulluar, t
gjithe keto pointer#a duhet t ruhen ne menyre qe nj thirrje le%imi qe ek'ekutohet pas
ristartimit t proesit t le%oje t dhenat e duhura. Ne shume sisteme operati"e, do
informa$ion rreth se$ilit proes, "e$ prmbajtje"e t hapesires se adresa"e t "eta, ruhet
ne nj tabele sistemi operati" e quajtur tabela proes (proccess table), e $ila sht nj
grup strukturash, nj pr do proes aktualisht ek'istnt.
)eshtu, nj proes i pe'ulluar "e$ t tjerash prbehet nga hapesira e adreses se tij,
'akonisht e quajtur $ore image (ne nder t memorie"e $ore magnetike t prdorura ne
ditt e meparshme), tabelen e tij t hyrjeve t proesit (proess table entry), qe "et
kjo prmban regjistrat e tij.
Nhirrjet sistem kryesore t mena%himit t proesit jane ato merren me krijimin
dhe mbarimin e proese"e. )onsideroni nj shembull tipik. Nj proes i quajtur
interpretuesi i komanda"e (command intrpretr) ose shell le%on komandat nga nj
terminal. !rdoruesi sapo ka shkruar nj komande duke kerkuar qe nj program t
kompilohet. 1helli tani duhet t krijoje nj proes t ri ne menyre qe kompiluesi t
"eproje. )ur proesi ka mbaruar kompilimin, ai ek'ekuton nj thirrje sistem qe t
mbaroje edhe "et ai.
Ne qoft se nj proes mund t krijoje nj apo me shume proese t tjera (t
referuara si proese femije) dhe keto proese gjithashtu t mund t krijojne proese
femije, shume shpejt do t arrijme ne strukturen e pemes proes (proess tree stru$ture)
t figures &.&H. !roeset e lidhura, qe bashkepunojne pr t bere disa pune, shpesh kane
ne"oje pr t komunikuar me njri#tjetrin dhe t sinkroni'ojne akti"itett e tyre. )y
komunikim quhet komunikimi intrproes dhe do t jet me i detajuar ne kapitullin e
dyt.
fig 1.12. Nj peme proes, proesi A ke krijuar dy proese femije, B dhe C.Proesi B ka
krijuar tre proese femije, D, E, dhe .

N tjera thirrje sistemi t proesit jane t prdorshme pr t kerkuar me shume
memorie (apo t le memorien e paprdorur), pr t pritur pr prfundimin e nj proesi
femije dhe pr t "endosur programin e tij mbi nj tjetr t ndryshem.
2ere pas here, ne"ojitet t transportohet informa$ion ne nj proes "eprues i $ili
nuk sht duke pritur pr ket informa$ion. !r shembull, nj proes i $ili po komunikon
me nj proes tjetr ne nj kompjuter tjetr e bn ket duke derguar mesa'he ne proesin
tjetr neprmjet nj rrjeti kompjuterik. !r tu ruajtur nga mundesia qe nj mesa'h mund
t jet ose prgjigja e tij mund t jet humbur, derguesi mund t kerkoj qe sistemi i tij
operati" ta informoje at pas nj numri t $aktuar sekondash, keshtu qe ai mund t
ritransmetoje mesa'hin prseri ne qoft se akoma nuk ka marre nj pranim
(a$knowledge). !as "endosjes se ketij kohuesi, programi mund t "a'hoje t beje pune t
tjera.
!asi kalon numri i $aktuar i sekonda"e, sistemi operati" i dergon proesit nj
sinjal alarm. )y sinjal shkakton t proesi pe'ullimin, prkohesisht, e $faredoqoft t atij
qe po bn, ruan regjistat e tij ne sta$k dhe fillon t ek'ekutoje nj pro$edure t "e$ant t
mano"rimit t sinjalit, pr shembull, t ritransmetoje nj mesa'h qe ka mundesi t jet
humbur. !asi prfundon mano"rimi i ketij sinjali, proesi "eprues kthehet ne gjendjen e
tij qe ishte para sinjalit. 1injalet jane software analoge t interrupte"e hardware#ike dhe
"e$ mbarimit t kohes mund t jene t gjeneruara nga nj shumellojshmeri shkaqesh.
1hume trape t 'buluara nga hardware, si ek'ekutimi i nj instruksioni ilegal ose
prdorimi i nj adrese t gabuar, gjithashtu kon"ertohen ne sinjale pr proesin fajtor.
Bdo personi t autori'uar pr t prdorur nj sistem i $aktohet nj UID (User
IDentification) nga administratori i sistemit. 1e$ili proes i filluar ka +6=#in e personit, i
$ili e filloi ket proes. Nj proes femije ka po t njjtin +6= si proesi i tij prind.
!rdoruesit mund t jene pjesetare t grupe"e, tek se$ili nga t $ilt ka nj 56= (Group
IDentification)
Nj +6=, (ne +N6R) i quajtur superuser, ka fuqi spe$iale dhe mund t shkel
shume nga rregullat e mbrojtjes. Ne instalime t medha, "etm administratori i sistemit e
di fjalekalimin e ne"ojshem pr tu bere nj superuser, por shume nga prdoruesit e
'akonshem ("e$anerisht studenta) kushtojne nj prpjekje t konsiderueshme duke
pro"uar pr t gjetur ndonj t met t sistemit qe i lejon ata t superusera pa patur ne"oje
pr fjalekalim.
!roeset, )omunikimin Nderproesorial dhe tma t lidhura me keto do t
studiohen ne kapitullin e dyt.
1.5.2. DEADLOCKS (SITUATA PA RRUGE DAL1E)
)ur dy ose me shume sisteme bashke"eprojne, ata disa here mund t gjenden ne
situata pr t $ilat nuk mund t ket nj rrugedalje. Nj situat e tille quhet nj deadlo$k.
=eadlo$ket mund t shpjegohen mire me nj shembull t jets reale, me t $ilin
dokush sht i familiari'uarI deadlo$k#u ne trafik. 1hikoni figuren &.&9(a). )etu M
autobuse po afrohen ne nj kryqe'im. !as ketyre katr autobuse"e ka edhe autobuse t
tjere por nuk jane t treguar ne figure. (e shume pak fat t keq, katr t paret mund t
arrijne ne kryqe'im njkohesisht, duke na $uar ne situatn si ne figuren &.&9(b), ne t
$ilen nuk ka rruge'gjidhje sepse asnjri nga ato nuk mund t "a'hdoje prpara. 1e$ili ka
bllokuar nj nga t tjeret. 5jithashtu nuk mund t shkojne as mbrapa ngaqe ka autobusa t
tjere pas tyre. Nuk ka asnj rruge t leht daljeje.
ig.1.1!."a# Nj rre$ik dead%o&k "'#Nj dead%o&k
!roeset ne nj kompjuter mund t ndodhen ne situata anologe ne t $ilat nuk
mund t bejne asgje ne progres. !r shembull, imagjinoni nj kompjuter me nj tape dri"e
dhe nj *d#re$order.Nani imagjinoni dy proese ku qe t dy duan t bejne nj *=#.:(
nga t dhenat ne nj tape. !roesi & kerkon dhe i jepet ne prdorim tape dri"e. Ndersa
proesi H kerkon dhe i jepet ne prdorim *=#re$orderi. (e pas proesi & kerkon pr *=#
re$order dhe kjo kerkese pe'ullohet derisa t ta ktheje proesi H. Ne fund, proesi H
kerkon pr tape dri"e dhe gjithashtu kjo kerkese pe'ullohet, sepse tashme ket e ka
proesi &. )etu kemi nj deadlo$k nga i $ili nuk ka asnj dalje. =eadlo$ket dhe $fare
mund t behet me to do ti shohim ne detaje ne kapitullin e tret.
1.5.3. MENAXHIMI I MEMORIES
Bdo kompjuter ka nj memorie kryesore t $ilen e prdor pr t mbajtur
programet ek'ekutuese. Ne nj sistem operati" shume t thjesht, "etm nj program
sht ne memorie ne nj kohe t $aktuar.!r t ek'ekutuar nj program t dyt, programi
i pare duhet t hiqet nga memoria dhe aty t "endoset i dyti.
1isteme operati"e me t sofistikuara lejojne shume programe t jene ne memorie
ne t njjtn kohe.<e ato t mos intrferrojne me njri#tjetrin (dhe me sistemin operati"),
ne"ojitet disa lloj mekani'mi mbrojts. Nderkohe qe ky mekani'em duhet t jet ne
hardware, ai kontrollohet nga sistemi operati".
)end"eshtrimi i mesiprm ka lidhje me mena%himin dhe mbrojtjen e memories
kryesore. Nj $eshtje ne lidhje me memorien e ndryshme por po aq e remdesishme sht
mena%himi i hapesires se adresa"e t proese"e. Normalisht, do proes ka disa bashkesi
adresash qe mund ti prdore, ne menyre tipike duke filluar nga 8 deri ne nj maksimum.
Ne rastin me t thjesht, "lera maksimale e hapesires se adresa"e t nj proesi sht me
e "ogel se memoria kryesore. Ne ket menyre, nj proes mund t mbushe hapesiren e
adresa"e t tij dhe mund t mbahet i gjithi ne memorien kryesore.
5jithesesi, ne shume kompjutera adresat jane 9H ose DM biteshe, duke dhene nj
hapesire adresash prktsisht prej H
9H
apo H
DM
bytes.*fare do t ndodhte ne qoft se nj
proes ka me shume hapesire adresash se sa ka kompjuteri memorie kryesore dhe proesi
do ta prdor at t gjithenU Ne kompjuterat e pare nj proes i tille ishte thjesht nj pafat.
Ne ditt e sotme eg'iston nj teknike qe quhet memorie "irtuale, ne t $ilen sistemi
operati" mban pjese t hapesires se adresa"e ne memorien kryesore dhe disa pjese ne disk
dhe i $on keto pjese sa andej kendej ndermjet tyre ashtu si$ ne"ojiten. )y funksion i
rendesishem i sistemit operati" dhe funksione t tjera t lidhura me mena%himin e
memories do t shihen ne kapitullin e katrt.
1.5.4. INPUT/OUTPUT
N gjithe kompjuterat kane pajisje fi'ike pr marrjen e inputit dhe pr n%jerrjen e
outputit. (bi t gjitha sa i mire do t ishte nj kompjuter ne qoft se prdoruesit nuk
mund ti tregojne atij $fare t bej dhe t mos mund t marrin re'ultatet pas prfundimit t
punes se kerkuar. k'istojne shume lloje pajisjesh inputi dhe outputi, duke prfshire
tastjeren, monitoret, printerat dhe keshtu me rradhe. (ena%himi i ketyre pajisje"e i
sht lene sistemit operati".
!r pasoje, do sistem operati" ka nj nensistem 6/: pr mena%himin e pajisje"e
t tij 6/:. =isa nga software#et 6/: jane t pa"arur nga pajisjet, qe do t thot, "eprojne
me shume apo me t gjitha pajisjet me menyre shume t mire. !jese t tjera t tij, si
dri"erat e pajisjes, jane spe$ifike pr pajisje 6/: t "e$anta. Ne kapitullin e pest do t
shohim software#et 6/:.
1.5.5. FILE-ET
Nj kon$ept tjetr kryesor i suportuar "irtualisht nga t gjithe sistemet operati"
sht sistemi file. 1i$ sht thene me pare, nj funksion kryesor i sistemit operati" sht
fshehja e karakteristika"e t disqe"e dhe pajisje"e t tjera 6/: dhe ti pre'antoje
programuesit nj model abstrakt t kendshem, t qart t file"e t pa"arura nga pajisja.
Ne menyre t dukshme ne"ojiten thirrjet sistem pr krijim e file#"e, le"i'jen e file#"e,
le%imin e file#"e dhe shkrimin e file#"e. !rpara se nj fjale mund t le%ohet, ajo duhet
t "endoset ne disk dhe t hapet, dhe pasi si le%ohet ajo duhet t mbyllet, keshtu thirrjet
jane krijuar pr t bere keto gjera.
!r sigurimin e nj "endi pr t mbajtur file#et, shumi$a e sisteme"e operati"e
kane kon$eptin e direktorive si nj menyre e grupimit t file"e sebashku. Nj student,
pr shembull, mund t ket nj direktori pr do kurs qe po ndjek (pr programet e
ne"ojitur pr ato kurse), nj tjetr direktori pr pjesen e tij elektronike dhe akoma nj
tjetr direktori pr faqen e tij 3orld 3ide 3eb. Nhirrjet sistem jane t ne"ojshem pr t
krijuar dhe hequr direktorit. Nhirrjet gjithashtu jane krijuar pr t "endosur nj file
ek'istues ne nj direktori dhe pr t hequr nj file nga nj direktori. 2yrjet ne direktori
nuk t jene file apo mbase edhe direktori. )y model gjithashtu ndikon ne rritjen e nj
hierarkie#sistemi file# si$ sht treguar ne figuren &.&M.

ig. 1.1(. Nj sistem fi%e pr departame)ti) e )j u)i*ertsiteti
2ierarkit e proese"e dhe t file#e"e se bashku jane t organi'uar si peme, por
ngjashmeria ndalon ketu. 2ierarkit e proese"e 'akonisht nuk jane shume t thella ( me
shume se tre ni"ele sht e pa'akonte) ndersa hierarkit e file#e"e jane ne prgjithesi
katr, pese, apo edhe me me shume ni"ele t thella. 2ierarkit e proese"e ne menyre
tipike kane jet t shkurtra, prgjithesisht t shumtn disa minuta, ndersa hierarkit e
direktori"e mund t ek'istojne pr"iteme rradhe. !ronesia dhe mbrojtja gjithashtu
ndryshojne pr proeset dhe file#t. Ne menyre tipike, "etm nj proes prind mund t
kontrolloje apo edhe t aksesoje nj proes femije, por pothuajse gjithmone ek'istojne
mekani'ma qe lejojne file#t dhe direktorit t le%ohen nga nj grup me i gjere se "etm t
'ott e tyre.
Bdo file brenda hierarkise se direktori"e mund t spe$ifikohet duke i dhene emrin
e tij t rruges (path name) qe ne krye t hierarkise se direktorise, direktoria rrenj. !ath
name t tille absolute prbehen nga lista e direktori"e qe duhen kaluar nga direktoria
rrenj pr t arritur ne file, me slashe qe ndajne komponentt. Ne /ig &.&M. rruga pr file#
in 'S1(1 sht $Faculty$)rof.*ro"n$'ourses$'S1(1. 1lashi i pare tregon qe rruga sht
absolute, qe sht duke filluar nga direktoria rrenj. Ne (1#=:1 dhe 3indows karakteri
ba$kslash (V) prdoret si ndares ne "end t karakterit slash (/), keshtu qe rruga e file#it e
dhene me sipr do t shkruhej siI +Faculty+)rof.*ro"n+'ourses+'S1(1. !rgjat ketij libri
ne prgjithesisht do t prdorim marre"eshjen +N6R pr pathet.
Ne do $ast, se$ili proes ka nj direktori punimi aktuale, ne t $ilen kerkohen
path names qe nuk fillojne me slash. !r shembull, ne fig,&.&M, ne qoft se
$Faculty$)rof.*ro"n ishin direktorit e punimit, prdorimi i rruges me emer
$'ourses$'S1(1 do t na jept t njjtin file si rruga absolute e dhene me sipr. !roeset
mund t ndryshojne direktorine e tyre t punimit neprmjet nj thirrjeje sistem qe
spe$ifikon direktorine e re t punimit.
!rpara se nj file t le%ohet apo t shkruhet, ajo duhet t hapet, ne t $ilen kohe
kontrollohen autori'imet. Ne qoft se aksesimi sht i lejueshem, sistemi kthen nj
integer t "ogel t quajtur prshkruesi i file#it (file dis$riptor) qe ta prdore ne oprime
pasuese. Ne qoft se aksesimi sht i ndaluar kthehet nj kod error.
Nj kon$ept tjetr i rendesishem ne +N6R sht sistemi file mount. !othuajse t
gjithe personal $omputers kane nj ose me shume dri"e floppy disk ne t $ilat mund t
"endosen dhe hiqen floppy disk. !r sigurim e nj menyre me elegant qe t merret me
media t le"i'shme (duke prfshire ketu *=#.:(s), +N6R lejon sistemin file ne nj
floppy disk t lidhet ne pemen kryesore. (errni ne konsiderate situatn ne figuren &.&7.
(a). !ara thirrjes mount, sistemi file rrenj, ne hard disk dhe nj sistem i dyt file, ne nj
floppy disk , jane t ndara dhe t palidhura.
ig.1.1+. "a#.para mou)ti)g, fi%e,et )e dri*e - ja)e t paaksesueshme
"'# pas mou)ti)g, ata ja)e pjese e hierarkise se fi%e*e
1idoqoft, sistemi file ne floppy nuk mund t prdoret, sepse nuk ka asnj menyre
pr t spe$ifikuar path names ne t, +N6R nuk lejon path names t jene t parashtsuara
(prefi%ed) nga nj numer apo emer dri"e#iI ajo do t ishte saktsisht lloji i "aresise se
pajisjes qe sistemi operati" duhet t eliminoje. Ne "end t kesaj, thirrja sistem mount
lejon sistemin file ne floppy t lidhet me sistemin file rrenj kudo qe sistemi e do at t
jet. Ne fig.&.&7(b) sistemi file ne floppy sht kaluar ne direktorine b, duke lejuar keshtu
aksesimin /b/% dhe /b/y. Ne qoft se direktoria do t kishte ndonj file ata do t ishin t
paaksesueshem nderkohe qe floppy sht kaluar, prderisa /b do t referoje direktorine
rrenj t floppy. (N qenurit jo t aft pr t aksesuar keto file nuk sht nj problem aq
serio' sa mund t duket ne fillimI sistemet file jane pothuajse gjithmone t kaluara ne
direktori boshe). Ne qoft se nj sistem prmban shume hard disqe, ata mund t kalohen
shume mire t gjithe ne nj peme t "etme.
Nj tjetr kon$ept i rendesishem ne +N6R sht file#i spe$ial. /ile#t spe$iale jane
krijuar ne menyre qe t bejne pajisjet 6/: t duken si file. Ne ket menyre, ata mund t
le%ohen dhe t shkruhen duke prdorur t njjtat thirrje sistem qe jane prdorur pr
le%imin dhe shkrimin e file#"e. k'istojne dy lloje t file#"e spe$ialeJ file spe$iale blo$k
dhe file spe$iale $hara$ter. /ilet spe$iale blo$k jane prdorur ne pajisjet model qe
prbehen nga nj bashkesi e rastesishme blloqesh t adresueshem, si disqet. (e hapjen e
nj file spe$ial blo$k dhe me le%imin, say, blo$k M, nj program ne menyre direkt mund
t aksesoje bllokun e katrt ne de"i$e, pa "emendjen e struktures t sistemit file qe
prmbahet ne t. Ne menyre t ngjashme, filet spe$ial karakter jane t prdorur ne
printerat model, modemat model dhe pajisje t tjera model qe pranojne apo n%jerrin nj
rrjedhe karakteresh. (e marre"eshje, filet spe$iale mbahen ne direktorine /,e#. !r
shembull, $,e#$lp mund t jet line printer.
=ukuria e fundit pr t $ilen do t diskutojme ne ket prmbledhje sht di$ka qe
lidhet me proeset dhe me filet gjithashtuJ pipes. Nj pipe sht nj renditje e pseudofile
qe mund t prdoren pr t lidhur dy proese si$ tregohet ne figuren &.&D. Ne qoft se
proeset , dhe ; duan t bisedojne duke prdorur nj pipe, ata duhet ta "endosin at ne
a"an$im. )ur proesi , do t dergoje t dhena proesit ;, ai shkruan ne pipe sikur ai t
ishte nj file output. !roesi ; mund t le%oje t dhenat duke le%uar nga pipe si t ishte
nj file input. )eshtu, komunikimi ndermjet proese"e ne +N6R ngjan shume me le%imin
dhe shkrimin e file t 'akonshem. (enyra e "etme qe nj proes mund t 'buloje se file#i
output t $ilit po i shkruan nuk sht ne t "ertet nj file, por nj pipe sht duke bere nj
thirrje spe$iale sistem. 1istemet file jane shume t rendesishem. =o t kemi me shume
pr t thene rreth ketyre ne kapitullin D dhe gjithashtu ne kapitujt &8 dhe &&.
ig.1.1..Dy proese t %idhur )ga )j pipe.
1.5.6. SIGURIA
)ompjuterat prmbajne sasi t medha informa$ioni qe proruesit shpesh duan ta
mbajne konfiden$iale. )y informa$ion mund t prfshije postn elektronike, planet e
bi'nesit, kthimet e taksa"e dhe shume me tepr. 6 lihet sistemit operati" t mena%hoje
sigurimin e sistemit ne menyre qe filet, pr shembull jane t aksesueshme "etm nga
prdorues t autori'uar.
1i nj shembull i thjesht, sa pr t pasur nj ide se si mund t funksionoje siguria,
konsideroni +N6R. /ile#t ne +N6R jane t mbrojtura duke u $aktuar se$iles nj kod
mbrojts binar G#bitesh. )odi mbrojts prbehet nga tre fusha 9#biteshe, nj pr pronarin,
nj pr pjesetare t tjere t grupit t pronarit (prdoruesit jane t ndare ne grupe nga
administratori i sistemit) dhe nj tjetr pr dokend tjetr. Bdo fushe ka nj bit pr akses
le%imi, nj bit pr akses shkrimi dhe nj bit pr akses ek'ekutimi. )eto tre bite njihen si
bitet rw%. !r shembull, kodi mbrojts rw%r#%##% do t thot qe pronari mund t le%oje,
shkruaje apo t ek'ekutoje file#in, pjesetare t tjere t grupit mund t le%ojne apo t
ek'ekutojne (por jo t shkruajne), dhe dokush tjetr mund t ek'ekutoje (por jo t le%oje
dhe t shkruaje) file#in. !r nj direktori, % tregon autori'im t kerkimit. Nj WdashO do t
thot qe autori'imi korrespondues mungon.
>e$ mbrojtjes se file#s, ka edhe shume probleme t tjera sigurie. (brojtja e
sistemit nga t nderhyrjet e padeshiruara, human dhe johuman (pr shembull, "iruset)
sht nj prej tyre. =o t shohim disa prej tyre ne kapitullin e nent.
1.5.7. SHELL-I
1istemi operati" sht kodi qe kryen thirrjet sistem. ditoret, kompilatoret,
assembluesit, linkeruesit dhe interpretuesit e komanda"e kategorisht nuk jane pjese t
sistemit operati", edhe pse ato jane shume t rendesishem dhe t prdorshem. !r t mos
ngatrruar gjerat, ne ket seksion do t shohim shkurtimisht interpretuesin e komanda"e,
t quajtur shell. dhe pse nuk sht pjese e sistemit operati", ka prdorim t gjere ne
shume dukuri t sistemit operati" dhe keshtu sherbn si nj shembull i mire se si mund t
prdoren thirrjet sistem. 5jithashtu sht nderfaqja primare ndermjet prdoruesit dhe
sistemit operati", "e$ ne se prdoruesi sht duke prdorur nj nderfaqe grafike.
k'istojne shume shell#e, duke prfshire sh, $sh, ksh dhe bash. N gjitha keto suportojne
funksionalittin e prshkruar me posht, qe burojne nga shelli origjinal (sh).
)ur nj prdorues logs in, starton nj shell. 1helli ka terminalin si input dhe
output standart. ,i fillon me shtypjen e prompt, nj karakter si ai i shenjs se dollarit, qe
tregon prdoruesit qe shelli sht duke pritur pr t marre nj komande. Ne qoft se tani
prdoruesi shtyp
dat
pr shembull, shelli krijon nj proes femije qe ek'ekuton proesin dat si nj femije.
5jat "eprimit t proesit femije, shelli pret pr prfundimin e tij. )ur proesi femije
prfundon, shelli shtyp prompt prseri dhe mundohet t le%oje rreshtat pasardhes t
inputit
!rdoruesi mund t spe$ifikoje qe outputi standart t ridrejtohet tek nj file, pr
shembull,
dat Xfile
Ne menyre t ngjashme, inputi standart mund t jet i ridrejtuar, si ne
sort Yfile& XfileH
qe i kerkon programit rendits me inputin e marre nga file& dhe outputin e derguar ne
fileH.
:utputi i nj programi mund t prdoret si nj input pr nj program tjetr duke i
lidhur ata me nj pipe. )eshtu
$at file& fileH file9 Z sort X/de"/lp
kerkon qe programi cat t lidhe tre file dhe t dergoje outputin ne sort pr t rregulluar t
gjithe rreshtat ne rend alfabetik. :utputi i sort sht ridrejtuar ne file $,e#$lp, ne menyre
tipike nga printeri.
Ne qoft se nj prdorues "endos nj amprsand pas komandes, shelli nuk pret pr
kompletimin e tij. Ne "end t kesaj ai menjehere i jep nj prompt. !r pasoje,
$at file& fileH file9 Z sort X/de"/lp S
fillon renditja si nj pune ba$kground, duke lejuar prdoruesin t "a'hdoje normalisht t
punoje nderkohe qe renditja "a'hdon. 1helli ka nj numer dukurish t tjera interesante,
pr t $ilat nuk kemi kohe pr ti diskutuar ketu. 1humi$a e libra"e ne +N6R diskutojne
pr shell (pr shembull, )ernighan and !ike, &GLMI )o$han and 3ood &GG8I (edinets,
&GGGI Newham and .osenblatt, &GGLJ dhe .obbins, &GGG).
1.5.8. RICIKLIMI I KONCEPTEVE
1hken$at kompjuterike, si shume fusha t tjera jane t udhehequra shume nga
teknologjia. ,rsyeja qe romanet antike kishin mungesa makinash nuk sht se atyre u
pelqent t e$nin ne kembe kaq shume. ,rsyeja ishte se ato nuk dinin se si ti ndertonin
makinat. !ersonal $omputers ek'istojne jo sepse shume njere' kishin deshira t mbajtura
prbrenda gjat pr t pasur nj kompjuter t tyrin, por sepse tani sht e mundur t
prodhohen shume lire. 1hpesh ne harrojme se sa shume ndikon teknologjia ne "eshtrimin
tone t sisteme"e dhe sht me "lere t reflektojme rreth kesaj, here pas here.
Ne "e$anti, shpesh ndodh qe nj ndryshim ne teknologji bie nj ide t "jetruar
dhe 'hduket shpejt. 5jithesesi, nj tjetr ndyshim ne teknologji mund ta riktheje at ide
prseri. )jo sht e "ertet "e$anerisht kur ndyshimi ka t beje me performan$en relati"e
t pjese"e t ndryshme t sistemit. !r shembull, kur *!+#t u bne me t shpejta se
memoriet, $ha$e#t u bne me t rendesishme pr prshpejtimin e memories t
EngadaltF. Ne qoft se ndonj dit memoriet neprmjet nj teknologjie do t beheshin
me t shpejta se *!+#t, $ha$e#t do t 'hdukeshin. =he ne qoft se nj teknologji *!+ i
bn prseri me t shpejta se memoriet, $ha$e#t do t rishfaqeshin. Ne biologji, 'hdukja
sht e prhershme, por ne shken$at kompjuterike, disa here sht "etm pr disa "jet.
1i nj pasoje e kesaj prkohshmerie, ne ket liber here pas here do t shohim
kon$eptet Ee "jetruaraF, si$ jane, idet qe nuk jane t pajtueshme me teknologjine
aktuale. 1idoqoft, ndryshimet ne teknologji mund t risillnin disa nga t keshtu quajturit
kon$epte t "jetruara. !r ket arsye, sht e rendesishme t kuptojme pse nj kon$ept
sht i "jetruar dhe $fare ndryshimesh ne mjedis mund ta risillnin prseri.
!r t qartsuar me shume ket pike, le t konsiderojme disa shembuj.
)ompjuterat e hershem kishin bashkesi instruksionesh hardwired. 6nstruksionet
ek'ekutoheshin direkt nga hardware#i dhe nuk mund t ndryshoheshin. (e pas "jen
mikroprogramimi, ne t $ilin nj interpretues qe ndodhet ne t i beri instruksionet ne
software. k'ekutimi hardwired u be i "jetruar. (e pas u krijuan kompjuterat .61* dhe
keshtu mikroprogrami (ek'ekutimi i intrpretuar) u be i "jetruar sepse ek'ekutimi direkt
ishte me i shpejt. Nani jemi duke pare rishfaqjen e intrpretimit ne formen aplet"e Aa"a
qe dergohen neprmjet internetit dhe t interpretuara ne ardhje. 1hpejtsia e ek'ekutimit
nuk sht gjithemone "endimtare sepse "onesat e rrjetit jane shume t medha sa tentojn
t dominojne. !or edhe kjo, ndonj dit mund t ndyshoje.
1isteme t hershme operati"e i shprndanin file#t ne disk thjesht duke i "endosur
ato ne sektore t afert, njri pas tjetrit. (egjithese kjo skeme sht e leht pr tu
implementuar, nuk sht fleksibel sepse me rritjen e nj file nuk ka "end mjaftueshem pr
ta mbajtur at. )eshtu kon$epti i file"e t shprndare afer u be nj kon$ept i "jetruar.
,koma kemi prreth *=#.:(. )etu problemi i rritjes se file#s nuk ek'iston. !apritur,
gjithe thjeshtsia e shprndarjes se filet afer u pa si nj ide e madhe dhe tani sistemet file
*=#.:( ba'ohen ne t.
1i ide prfundimtare, konsideroni lidhjen dinamike. 1istemi (+-N6*1 ishte
projektuar pr t "epruar dit e nat pa ndaluar asnjehere. !r t sistemuar "iruset ne
software ishte e ne"ojesheme t kishte nj menyre pr t 'e"endesuar pro$edurat library,
nderkohe qe ato ishin duke u prdorur. )on$epti i lidhjes dinamike u krijua me ket
qellim. !as "dekjes se (+-N6*1, kon$epti u harrua pr pak. 1idoqoft, ai u ri'bulua kur
sitemet moderne operati"e kishin ne"oje pr nj menyre pr t lejuar shume programe pr
t ndare t njjtat pro$edura library pa pasur kopjet e tyre pri"ate (sepse librarit grafike
ishin rritur shume). 1humi$a e sisteme"e tani suportojne edhe njehere disa forma t
lidhjes dinamike. -ista "a'hdon, por keto shembuj mund t japin shume mire ideneI nj
ide qe sot sht e "jetruar, ne ser mund t jet Eylli i mbremjesF.
Neknologjia nuk sht i "etmi faktor qe udheheq sistemet dhe software. 5jithashtu
ekonomia luan nj rol t rendesishem. Ne "itet &GD8 dhe &GC8, me shume terminale ishin
terminale mekanike printimi ose *N. t orientuara nga H7 % L8 nga karakteret, se
terminale grafike bitmap. )jo 'gjedhje nuk ishte $eshtje e teknologjise. Nerminalet
grafike bit#map ishin ne prdorim prpara &GD8, por sht thjesht se ata kushtojne dhjetra
mijera dollare se$ila.>etm kur *mimi u ul ne menyre t hatashme njere'it ("e$
ushtarake"e) mund t mendonin pr nj terminal pr nj prdorues indi"idual.
1.6. THIRR1ET SISTEM
Nderfaqa ndermjet sistemit operati" dhe programe"e user pr$aktohet nga nj
bashkesi thirrjesh sistem qe sigurohen nga sistemi operati". !r t kuptuar se $fare bn
sistemi operati" ne t "ertet, duhet ta ek'aminojme ket nderfaqe me afer. Nhirrjet
sistem t prdorshme ne sistem ndyshojne nga nj sistem operati" ne nj tjetr sistem
operati" (edhe pse kon$eptet ne to tentojn t jene t ngjashem)
)eshtu jemi t detyruar t bejme nj 'gjedhje mes (&) prgjithesime"e t paqarta
(Esisteme operati"e kane thirrjet sistem pr t le%uar fileF) dhe (H) nj sistemi spe$ifik
(E+N6R ka nj thirrje sistem me tre parametraJ Nj pr t spe$ifikuar file#in, nj pr t
treguar se ku duhet t "endosen t dhenat dhe nj pr t treguar sa byte t le%ohenF)
Ne kemi 'gjedhur rrugen e dyt. )jo menyre ka me shume pune, por na jep me
shume deprtim ne at se $fare bn sistemi operati" ne t "ertet. (egjithese ky
diskutim i referohet ne menyre t "e$ant !:16R (6ntrnational 1tandart GGM7#&), por
tani edhe +N6R, 1ystem >, ;1=, -inu%, (6N6R,etj, shume sisteme moderne operati"e
t tjere kane thirrje sistem pr prformimin e t njjt"e funksione, edhe pse detajet
ndryshojne. !rderisa mekaniket ne n%jerrjen e thirrje"e sistem jane t "arur shume nga
makina dhe shpesh duhet t shprehen ne kode assembly, sigurohet nj pro$edure library
pr t bere t mundur berjen e thirrje"e sistem nga programe ne * dhe shpesh nga
programe ne gjuhe t tjera gjithashtu.
?sht e dobishme t mbajme ne mendje keto t meposhtmet. Bdo kompjuter me
nj *!+ t "etme mund t ek'ekutoje "etm nj instruksion ne nj kohe. Ne qoft se nj
proes po ek'ekuton nj program user ne mode user dhe ka ne"oje pr nj sherbim t
sistemit, si le%imi i t dhena"e nga file, atij i duhet t ek'ekutoje nj instruksion trap ose
thirrje sistem pr t transferuar kontrollin sistemit operati". (e pas sistemi operati" gjen
se $fare kerkon proesi thirres duke shqyrtuar parametrat. (e pas ai kryen thirrjen
sistem dhe i kthen kontrollin instruksionit pas atij qe shkaktoi thirrjen sistem. Ne nj
kuptim, t berit e nj thirrjeje sistem sht si t berit e nj lloji t "e$ant thirrjeje
pro$edure, "etm thirrjet sistem hyjne ne kernel dhe thirrjet pro$edure jo.
!r t qartsuar mekani'min e thirrjes sistem, le ti hedhim nj sy t shpejt
thirrjes le%im t sistemit. 1i$ prmendem me sipr, ai ka tre parametraI i pari pr t
spe$ifikuar file#in, i dyti pr t shenuar bufferin dhe i treti pr t dhene numrin e byte"e
qe duhen le%uar. !othuajse si t gjithe thirrjet sistem, kerkohet nga programe ne * duke
thirrur nj pro$edure library me t njjtin emer si ai i thirrjes sistemJ rea,. Nj thirrje nga
nj program ne gjuhen * mund t ngjaje me di$ka t tilleJ
$ount [ read(fd, buffer, nbytes)I
Nhirrja sistem (dhe pro$edura library) kthejne numrin e byte"e aktualisht t le%uare ne
count. )jo "lere normalisht sht sa nbytes- por mund t jet me i "ogel, ne qoft se, pr
shembull, fundi i file#s sht takuar befasisht gjat le%imit.
Ne qoft se thirrja sistem nuk mund t kryhet, ose pr shkak t nj parametri t
gabuar apo nj errori t diskut, count "endoset #&, dhe numri error "endoset ne nj
"ariabel global, errno. programet duhet gjithmone t kontrollojne re'ultatet e thirrjes
sistem pr t pare ne se ka patur ndonj error.
Nhirrjet sistem kryhen ne nj seri hapash. !r t qartsuar ket kon$ept, le t
ek'aminojme thirrjen le%im t pare me sipr. 5jat prgatitjes pr thirrjen e pro$edures
library rea,, qe aktualisht bn thirrjen le%im t sistemit, programi thirres fillimisht fut
parametrat ne sta$k, si$ tregohet ne hapat &#9 ne figuren &.&C. )ompilatoret * dhe *TT
fusin parametrat ne sta$k me renditje mbrapr shembullt (re"erse) pr arsye historike
(duke iu dashur t bejne prametrin e pare ne print- stringa format, shfaqet ne krye t
sta$kout). !arametrat e pare dhe t tret thirren me "lera, por parametri i dyt me
referen$e, qe do t thot, qe kalohet adresa e bufferit (e pr$aktuar me S), jo prmbajtja e
bufferit. (e pas "jen thirrja aktuale ne pro$eduren library (hapi M). )y instruksion sht
instruksioni i thirrjes normale pro$edure i prdorur pr t kryer thirrjen e t gjithe
pro$edura"e.
!ro$edura library, me shume mundesi e shkruajtn ne gjuhen assembly, ne
menyre tipike "endos numrin e thirrjes sistem ne nj "end ku sistemi operati" po e pret
at, si ne nj regjistr (hapi 7). (e pas ek'ekuton nj instruksion N.,! pr t ndryshuar
nga mode user ne at kernel dhe fillon ek'ekutimin ne nj adrese t $aktuar ne kernel
(hapi D). )odi kernel qe fillon kontrollon numrin e thirrjes sistem dhe me pas e dergon ne
mano"ruesin e thirrje"e korrigjim t sistemit, 'akonisht neprmjet nj tabele pointerash
drejt mano"ruesit t thirrje"e sistem t indeksuara ne numrin e thirrjes sistem (hapi C). Ne
ket pike mano"ruesi i thirrje"e sistem fillon se "epruari (hapi L). 1apo mano"ruesi i
thirrjes sistem prfundon punen e tij, kontrolli mund t kthehet ne hapesiren e prdoruesit
t pro$edures library tek instruksioni pasardhes i instruksionit N.,! (hapi G). )jo
pro$edure me pas kthehet ne programin user ne menyre t 'akonshme si$ kthehen thirrjet
e pro$edures (hapi &8).
!r t mbaruar punen, programi user duhet t pastroje st$k#un, si$ bn pas do
thirrjeje pro$edure (hapi &&).=uke supo'uar se sta$k sht ne rrenie, si ndodh shpesh,
kodi i kompiluar inkrementon pointerin e sta$k#ut mjaftueshem pr t hequr parametrat e
futur para thirrjes rea,. !rogrami tani sht i lire t beje $fare t doje.
ig.1.1/. 11 hapat pr t 'ere )j thirrje sistem read "id, 'uffer, )'ytes#
Ne hapin G me sipr thame Emund t kthehet ne hapesire e prdoruesit t pro$edures
library...F pr arsye t mire.Nhirrja sistem mund t bllokoje thirresin, duke e ndaluar at
nga numerimi. !r shembull, ne qoft se po mundohet t le%oje nga tastjera dhe asgje nuk
sht shtypur akoma, thirresi duhet t bllokohet. Ne ket rast, sistemi operati" do t shohe
ne se mund t ek'ekutohet ndonj proes tjetr. (e "one, kur inputi i deshiruar sht
sht i gatshem, ky proes do t marre "emendjen e sistemit dhe do t ndodhin hapat G#
&&.
Ne paragrafet e meposhtm, do t shqyrtojme disa nga thirrjet sistem !:16R me
prdorim me t gjere ose ne menyre me spe$ifike, pro$edurat library qe bejne keto thirrje
sistem. !:16R ka rreth &88 thirrje pro$edura. =isa nga me t rendesishmet jane t
listuara ne figuren &.&L, t prpunuara me marre"eshje ne katr kategori. Ne tekst do t
shqyrtojme shkurtimisht do thirrje pr t pare se $fare bn ajo. Ne nj shtirje t madhe,
sherbimet e ofruara nga keto thirrje pr$akojne shumi$en e atyre $fare duhet t beje
sistemi operati", prderisa mena%himi i burime"e ne personal $omputers sht minimal
(t paktn i krahasuar me makina t medha me shume prdorues). 1herbimet prfshijne
gjera si krijimin dhe prfundimin e proese"e, krijimin, fshirjen, le%imin dhe shkrimin e
file"e, mena%himin e direktori"e, kryerjen e inputit dhe outputit.
Fig 1.1.. /isa nga thirrjet sistem kryesore t )0S12.3o,i i kthimit s sht
%1 ne 4oft se n,o,h n,onj gabim.3o,et e kthimin jane si ne #ijim5 pid
sht nj pro6es i,- fd sht nj ,eskriptor file- ) sht nj numer bytesh-
positio) sht nj offset ne file- ,he se&o)ds sht nj kohe e kaluar.
)arametrat shpjegohen ne tekst.
?sht e rendesishme t theksojme se paraqitje e thirrje"e pro$edura !:16R ne
thirrjet sistem nuk sht nj ne nj. 1tandartet !:16R spe$ifikojne nj numer pro$edurash
qe nj sistem i prshtatshem duhet t siguroje, por nuk spe$ifikon ne se ato jane thirrje
sistem, thirrje library apo di$ka tjetr. Ne qoft se nj pro$edure mund t kryhet pa
kerkuar nj thirrje sistem (pa trapping ne kernel), ajo pegjithesisht do t jet bere ne
hapesiren user pr arsye t performan$s. 1idoqoft, shumi$a e pro$edura"e !:16R
kerkojne thirrjet sistem, 'akonisht me nj grafike (mapping) pro$edure direkt ne nj
thirrje sistem. Ne pak raste, "e$anerisht ku disa pro$edura t ne"ojshme jane "etm
"ariante t nj tjetri, nj thirrje sistem mano"ron me shume se nj thirrje library.
1.6.1. THIRR1ET SISTEM PR MENAXHIM E PROESIT
5rupi i pare i thirrje"e ne fiuren &.&L. merret me mena%himin e proese"e. /ork
sht sht ne menyre tipike shume mire pr t filluar diskutimin. /ork sht menyra e
"etme pr krijim e nj proesi t ri ne +N6R. ,i krijon nj kopje identike me proesin
origjinal, duke prfshire t gjithe deskriptoret e file"e, regjistrat#do gje. !as forkut,
proesi origjinal dhe kopja e tij (prindi dhe femija) "a'hdojne ne rruge t ndara. N gjithe
"ariablat kane "lera identike ne kohen e forkut, por prderisa t dhenat e prindit jane
kopjuar pr t krijuar femijen, ndryshimet pasuese ne njrin nuk kane efekt ne tjetrin.
(Neksti program, qe sht i pandryshueshem ndahet mes prindit dhe femijes).Nhirrja fork
kthen nj "lere, e $ila sht 8 tek femija dhe e barabart me identifikuesin e proesit
femije ose PID tek prindi. =uke prdorur !6=#in e kthyer, dy proeset mund t shohin se
kush sht proesi prind dhe kush sht proesi femije.
Ne shumi$en e raste"e, pas nj fork#u, femija do t ket ne"oje pr t ek'ekutuar
nj kod t ndyshem nga prindi. )onsideroni rastin e shell#it. ,i le%on nj komande nga
terminali, krijon nj proes femije, pret qe femija t ek'ekutoje komanden dhe me pas
le%on komanden pasardhese kur prfundon femija. !r t pritur qe t mbaroje femija,
prindi ek'ekuton nj thirrje sistem waitpid, e $ila thjesht pret derisa t prfundoje femija
(do njri femije ne se ek'istojne me shume se nj). 3aitpid mund t prese pr nj femije
spe$ifik ose pr do njrin femije t "jetr duke "endosur parametrin e pare ne #&. )ur
nj waitpid prfundon, adresa e shenjuar nga parametri i dyt, statloc- do t e"ndoset ne
statusin e%it t femijes (prfundim normal apo jonormal dhe "lera e%it). Aane krijuar
gjithashtu opsione t ndryshme, t spe$ifikuar nga parametri i tret.
Nani konsideroni se si sht prdorur fork ne shell. )ur shtypet nj komande,
shell#i formon nj proes t ri. )y proes femije duhet t ek'ekutoje komanden e
prdoruesit. ,i e bn ket duke prdorur thirrjen sistem e%e$"e, i $ili shkakton qe ima'hi
i tij thelbesor i plot t 'e"endesohet nga file i emeruar ne parametrin e pare. (,ktualisht,
thirrja sistem "et sht e%e$, por disa pro$eduar library t ndryshme e therrasin at me
parametra t ndryshem dhe pak a shume me emra t ndryshem. )eto do ti trajtojme si
thirrje sistem ketu). Ne figuren &.&G. tregohet nj sheet shume i thjeshtsuar i $ili ilustron
prdorimin e fork#ut, waitpid, dhe gjithashtu e%e$"e.
Ne rastet me t prgjithshme, e%e$"e ka tre parametraI emrin e file#s qe do t
ek'ekutohet, nj pointer ne grupin e argumentit dhe nj pointer ne grupin e ambjentit.
)eto do t prshkruhen shkurtimisht. .utina t ndryshme library, duke prfshire e&ecl-
e&ec#- e&ecle- dhe e&ec#e jane t krijuare pr t lejuar parametrat t jene harruar apo
spe$ifikuar ne menyra t ndryshme. !rgjat ketij libri ne do t prdorim emrin e%e$ pr
t paraqitur thirrjen sistem t kerkuar nga t gjithe keto.
-e t konsiderojme rastin e komandes si
$p file& fileH
e prdorur pr t kopjuar file 1 ne file 2. !as si shelli ka bere fork (dege'im), proesi
femije "endoset dhe ek'ekuton file#n cp dhe i kalon asaj emrat e burime"e dhe file#t
target.
ig 1.10.Nj she%% stripped,do1).Prgjat %i'rit, 234E pra)ohet t merret si 1.
!rogrami kryesor i cp (dhe programi kryesor i shumi$es se programe"e t tjere ne
*) prmbajne deklarimin
main(arg$, arg", en"p)
ku argc sht nj numerimi i numra"e t fjale"e ne rreshtin e komandes, duke prfshire
edhe emrin e programit. !r shembull sipr argc sht 9.
!arametri i dyt, arg#- sht nj pointer ne nj grup. lementi i i ketij grupi sht
nj pointer i stringes se i#t ne rreshtin komande.Ne shembullin tone, arg#7(8 do t
shenont ne stringen E$pF dhe arg#718 do t shenont ne stringen Efile&F dhe arg#728 do
t shenont ne stringen EfileHF.
!arametri i tret i main- en#p- sht nj pointer i mjedisit, nj grup stringash qe
prmbajne funksione t formes name9#alue t prdorur pr t kaluar informa$ion ne nj
program si lloji i terminalit dhe emri i direktorise home. Ne figuren &.&G., nuk kalohet
asnj mjedis tek femija, keshtu parametri i tret i e&ec#e sht 'ero.
Ne qoft se e%e$ duket i komplikuar, mos u deshproniI ai sht (nga ana
kuptimore) me kompleksi i t gjithe thirrje"e sistem !:16R. N gjithe t tjerat jane me t
thjeshta. 1i shembull t nj me thjesht, konsideroni e%it, t $ilen proeset do ta prdorin
kur kane mbaruar ek'ekutimin. )a nj parametr, statusin e%it (8 deri ne H77), i $ili i
kthehet prindit neprmjet stattoc ne thirrjen sistem waitpid.
!roeset ne +N6R kane memorien e tyre t ndare ne tre segmentJ segmenti tekst
(kodi programit), segmenti t dhenave ("ariablat) dhe segmenti stack. 1egmenti i t
dhena"e rritet ne drejtimin upward (lart) dhe sta$k rritet ne drejtimin downward (posht)
si$ tregohet ne figuren &.H8. Ndermjet tyre ndodhet nj hapesire pr hapesiren e
paprdorur t adresa"e. 1ta$k#u rritet automatikisht ne hapesire, si$ mund t ne"ojitet,
por 'gjerimi i segmentit t t dhena"e behet ne menyre ekspli$it duke prdorur nj
thirrje sistem brk, qe spe$ifikon adresen e re ku duhet t prfundoje segmenti i t
dhena"e. )jo thirrje, sidoqoft, nuk pr$aktohet nga standarti !:16R meqene se
programuesit jane t inkurajuar t prdorin pro$eduren library malloc pr ruajtjet e
alokuara dinamikisht, dhe implementimi ne t i malloc nuk ishte menduar t ishte subjekt
i prshtatshem pr standardi'imin prderisa shume pak prdorues e prdorin at ne
menyre direkt.

Fig.1.2(. )ro6eset kane tre segment5 tekst- t ,hena- she stack
1.6.2 THIRR1ET SISTEM PR MENAXHIMIN E FILE-VE
1hume thirrje sistem lidhen me sistemin file. Ne ket pjese ne do t shohim
thirrjet qe operojne ne file indi"idualeI ne at pasardhesin ne do t shqyrtojme ato qe
prfshijne direktorit ose sistemin file si nj t plot.
!r t le%uar apo pr t shkruar nj file, file fillimisht duhet t hapet duke
prdorur open. )jo thirrje spe$ifikon emrin e file#s qe duhet t hapet, si nj path name
absolut ose relati"e me direktorine e punimit dhe nj kod 0:;/0N<=- 0:>;0N<=- or
0:;/>;, qe do t thot hape pr t le%uar, shkruar apo t dyja se bashku. !r krijimin e
nj file t re prdoret 0:';?@A. =es$riptori file i kthyer me pas mund t prdoret pr
le%im dhe shkrim. !r ndryshe, file mund t mbyllet me $lose, qe bn des$riptorin file t
aft pr riprdorim ne nj hapje pasuese.
Nhirrjet me shume t prdorura jane padyshim le%im dhe shkrim. -e%imin e pame
me pare. 1hkrimi ka t njjtat parametra.
(egjithese shumi$a e programe"e le%ojne dhe shkruajne file ne menyre t
"a'hdueshme, pr disa aplikime programet duhet t jene t aft pr t aksesuar $ilendo
pjese t rastesishme t file#s. (e do file shoqerohet nj pointer qe tregon po'i$ionin
aktual ne file. )ur le%ohet (shkruhet) "a'hdimisht, normalisht ai shenon byte8in
pasardhes qe do t le%ohet (shkruhet). Nhirrja 6seek ndryshon "leren e pointerit t
po'i$ionit, ne menyre qe thirrjet pasuese le%im apo shkrim mund t fillojne kudo ne file.
6seek ka tre parametraJ i pari sht deskriptori file pr file#in, i dyti sht
po'i$ioni file#s dhe i treti tregon ne se po'i$ioni file#s sht afer me fillimin e file#s,
po'i$ionin aktual, ose fundin e file#s. >lera e kthyer nga 6seek sht po'i$ioni absolut ne
file pas ndryshimit t pointerit.
!r se$ilen file, +N6R mban gjurme t modes file (file normale, file spe$iale,
direktori, dhe keshtu me rradhe), madhesine, kohen e modifikimit t fundit dhe
informa$ion tjetr. !rogramet mund t kerkojne t shohin ket informa$ion neprmjet
thirrjes sistem stat. !arametri i pare spe$ifikon file#in qe do t inspektohetI i dyti sht nj
pointer ne nj strukture ku duhet t "endoset informa$ioni.
1.6.3 THIRR1ET SISTEM PR MENAXHIMIN E DIREKTORIVE
Ne ket pjese do t shohim disa thirrje sistem qe kane kane t bejne me direktorit
ose sistemet file si nj t plot, me shume se thjesht nj file spe$ifik si ne paragrafin
paraardhes. =y thirrjet e para, kmdir dhe rmdir, prkatsisht krijojne dhe heqin direktori
boshe. Nhirrja tjetr sht link. <ellimi i kesaj sht t lejoje t njjtn file t shfaqet me
dy ose me shume emra, shpesh ne direktori t ndryshme. Nj prdorim tipik sht t
lejuarit e disa pjesetare"e t t njjtit grup programimi t ndajne t njjtn file, ku se$ili
prej tyre t ket file#in t shfaqur ne direktorit e tyre, mundesisht me emra t ndryshem.
N ndarit e nj file nuk sht e njjta me dhenien e nj kopjeje pri"ate do pjestari t
grupit, sepse t paturit e nj file t ndare do t thot qe ndryshimet t bera nga $ilido
pjesetare i grupit jane menjehere t dukshme tek pjesetaret e tjere#ka "etm nj file.)ur
behen kopje t nj file, ndryshimet pasuese t bera ne nj prej kopje"e nuk ndikon ne t
tjerat.
!r t pare se si punon link, konsideroni situatn e figures &.H&(a). )etu ka dy
prdorues ast dhe jim, se$ili ka direktorit e tija me disa file. Ne qoft se ast tani
ek'ekuton nj program qe prmban thirrjen sistem
link(\/usr/jim/memo\, \/usr/ast/not\)I
file#i memo ne direktorine e jim tani sht futur ne direktorine e ast me emrin not. !as
kesaj $usr$jim$memo dhe $usr$ast$not i referohen t njjts file. Ne se direktorit e
prdorues"e mbahen ne $usr- $user- $home- apo diku tjetr sht nj "endim i thjesht i
marre nga administratori i sistemit lokal.
Fig.1.21.(a) /y ,irektori para linking 5usr5jim5memo ne ,irektorie e ast.(b)A njjtat
,irektori pas linking
N kuptuarit se si funksionon link me shume mundesi do t na qartsoje se $fare
bn ai. Bdo file ne +N6R ka nj numer unik, qe e pr$akton at, numrin e tij i. )y numri
i sht nj inde% ne tabelen e i#nodes, nj pr file, duke treguar se kush e ka file#in ku
ndodhen bloqet disk t tij, dhe keshtu me rradhe. Nj direktori sht thjesht nj file qe
prmban nj bashkesi (i#number, emrin ,1*66) $iftsh. Ne "ersionet e para t +N6R,
se$ila hyrje e direktorise ishte &D byte # H byte pr i#number dhe &M byte pr emrin. Nani
ne"ojitet nj strukture me e komplikuar pr suportimin e emra"e t gjat t file#"e, por ne
kon$ept nj direktori sht akoma nj bashkesi (i#number, emrin ,1*66) $iftsh. Ne
figuren &.H&. mail ka i#number &D dhe keshtu me rradhe. ,jo $fare bn link sht thjesht
krijimi i nj hyrje direktorie t re me nj emer (mundesisht t ri), duke prdorur i#number
t files ek'istuese. Ne fig &.H&.(b), dy hyrje kane t njjtin i#number (C8) dhe keshtu i
referohen t njjts file. Ne qoft se me "one do njra prej tyre fshihet, duke prdorur
thirrjen sistem unlink, tjetra mbetet. Ne qoft se fshihen t dyja, +N6R shikon qe nuk
ek'iston asnj hyrje ne file (nj fushe ne i#node mban gjurme t numrit t hyrje"e
direktori duke shenuar file#in), keshtu qe file#i fshihet nga disku.
1i$ e kemi prmendur me pare, thirrja sistem mount lejon dy thirrje sistem t
bashkohen ne nj. Nj situat e 'akonshme sht t kemi file#n sistem rrenj qe prfshin
"ersionet binare (t ek'ekutueshme) t komanda"e t 'akonshme dhe t file"e t tjera t
prdorura gjeresisht, ne nj hard disk. (e pas prdoruesi mund t "endose nj floppy disk
me file qe duhet t le%ohen ne dri"e#in e floppy disk#ut.
(e ek'ekutimin e thirrjes sistem mount, sistemi file i floppy disk mund t lidhet
me sistemin file rrenj, si$ tregohet ne figuren &.HH. Nj paraqitje tipike ne * pr t
prformuar mount sht
mount(\/de"/fd8\, \/mnt\, 8)I
ku parametri i pare sht emri i nj file#i spe$ial blo$k pr dri"e 8, parametri i dyt sht
nj "end ne peme ku duhet t kalohet (mountd) dhe parametri i tret tregon ne se sistemi
file duhet t $aktohet l%im#shkrim apo "etm le%im.


/ig.&.HH.(a)sistemi file para mount.(b)1istemi file pas mount.
!as thirrjes mount, nj file ne dri"e 8 mund t aksesohet thjesht duke prdorur
rrugen e saj nga direktoria rrenj ose nga direktoria e punimit, duke mos i prkitur dri"et
ne t $ilin ndhodhet. Ne fakt, dri"e#t e dyt, tret, dhe t katrt mund t kalohen kudo ne
peme. Nhirrja mount bn t mundur intgrimin e medias t le"i'shme ne nj hierarki file
t integruar t "etme, duke mos qene ne"oja e shqetsimit se ne $ilen pajisje ndodhet file.
(egjithese ky shembull prfshin floppy disks, hard disks apo pjese t hard disks (shpesh
t quajtura particione ose pajisje minore) gjithashtu mund t kalohet ne ket menyre.
)ur nj sistem file nuk ne"ojitet me, ajo mund t behet unmountd neprmjet thirrjes
sistem unmount.
1.6.4 THIRR1ET SISTEM T PRZIERA.
5jithashtu ek'iston nj shumllojshmeri thirrjesh t tjera sistem. )etu do t shohim "etm
katr prej tyre. Nhirrja $hdir ndryshon direktorine aktuale t punimit. !as thirrjes
$hdir(\/usr/ast/test\)I
nj open ne file#in &yB do t hape $ttsr$ast$test$&yB. )on$epti i nj direktorie punimi
eliminon ne"ojen e shtypjes gjat gjithe kohes t path names absolute (t gjat).
Ne +N6R do file ka nj mode t prdorur pr mbrojtje. (ode#a prfshin bitet
read#write#e%e$ute pr pronarin, grupin dhe t tjeret. Nhirrja sistem $hmod bn t mundur
ndryshimin e mode#s se file#it. !r shembull, pr t bere nj file "etm t le%ueshme nga
do njri "e$ pronarit, do t ek'ekutohej
$hmod(\file\, 8DMM)I
Nhirrja sistem kill sht menyre qe prdoruesit dhe proeset user dergojne sinjale,
ne qoft se nj proes sht pregatitur t kape nj sinjal t "e$ant, me pas kur mberrin,
ek'ekutohet nj mono"rues sinjali. Ne qoft se proesi nuk sht i prgatitur pr
mano"rimin e sinjalit, me pas ardhja e tij "ret proesin.
!:16R $akton disa pro$edura qe t merren me kohimin. !r shembull, koha
thjesht kthen kohen aktuale ne sekonda, me 8 qe i korrespondon & Aan, ne mesnat t
&GC8 (sapdita t ket filluar dhe jo mbaruar). Ne kompjuterat ne fjale 9H#bit, "lera
maksimale qe time mund t ktheje sht H
9H
#& sekonda (duke supo'uar qe prdoret nj
intrger pa shenj). )jo "lere korrespondon me pak me shume se &9D "it. )eshtu ne
"itin H&8D, sistemet +N6R 9H#bit do t trbohen, duke imituar problemin e famshem
]H). Ne qoft se ju aktualisht keni nj sistem +N6R 9H#bit, ju keshillohet ta ndryshoni
at pr nj DM#bit para "itit H&8D.
1.6.5. WINDOWS WIN32 API
(e pare jemi fokusuar kryesisht ne +N6R. Nani sht koha t shohim
shkurtimisht tek 3indows. 3indows dhe +N6R ndryshojne ne menyre thelbesore ne
modelet prkatse t programimit. Nj program +N6R prbehet nga kodi qe bn nj gje
apo nj tjetr, duke bere thirrje sistem pr t pasur prformimin e sherbime"e t $aktuara.
Ne ndryshim nga kjo, nj program 3indows sht normalisht i drejtuar nga ngjarja.
!rogrami kryesor pret qe t ndodhe nj ngjarje, me pas therret nj pro$edure qe t
mono"roje at. Ngjarje tipike jane goditja e butona"e, le"i'ja e mousit, shtypja e nj
butoni t mousit apo futja e nj floppy disk#u. (e pas thirren mano"ruesit pr t
proesuar ngjarjen, pr freskimin e s$reen#it dhe freskimin e gjendjes se programit t
brendshem. gjithe kjo t $on ne di$ka me stil t ndryshem programimi nga ai +N6R,
por meqene se fokusimi i ketij libri sht ne funksionet dhe strukturat e sistemit operati",
keto modele t ndryshme programimi nuk do t na duhen shume.
1igurisht, 3indows gjithashtu ka thirrje sistemi. (e +N6R, pothuajse ka nj
marredhenie &#me#& ndermjet thirrje"e sistem (pr shembull, le%im) dhe pro$edura"e
library (!r shembull, le%im) t prdorura pr t kerkuar thirrjet sistem. (e fjale t tjera,
pr se$ilen thirrje sistem, ka afersisht nj pro$edure library qe thirret pr ta kerkuar at,
si$ tregohet ne figuren &.&C. !r me tepr, !:16R ka "etm rreth &88 thirrje pro$edura.
(e 3indows, situata sht ne menyre thelbesore e ndryshme. 1i fillim, thirrjet
library dhe thirrjet aktuale sistem jane t $ift'uara fort. (i$rosft ka $aktuar nj bashkesi
pro$edurash, t quajtura Win32 API (Application Program Intrface) qe pritn t
prdoren nga programuesit pr t marre sherbimet e sistemit operati". )jo nderfaqe sht
(pjeserisht) e suportuar ne t gjithe "ersionet e 3indows qe ne 3indows G7. (e $iftimin
e nderfaqes nga thirrjet aktuale sistem, (ir$rosoft ruan aftsine e ndryshimit ne kohe t
thirrje"e aktuale t sistemit duke mos shfuqi'uar programet ek'istuese. ,jo $fare
aktualisht prbn 3in9H sht pak ambi$io'e meqene se 3indows H888 ka shume thirrje
t reja qe me pare nuk ishin t disponueshme. Ne ket pjese, 3in9H nenkupton nderfaqen
e suportuar nga t gjithe "ersionet e 3indows.
Numri i thirrje"e 3in9H ,!6 sht jasht'akonisht shume i madh, duke numeruar
me mijera. !r me tepr, nderkohe qe shume prej tyre bejne kerkesen pr thirrje sistem,
nj numer i dukshem $ohet plotsisht ne hapesiren user. 1i pasoje, me 3indows sht e
mundur t shihet se $fare sht nj thirrje sistem (e prformuar nga kernel) dhe $fare
sht thjesht nj thirrje library e hapesires user. Ne fakt, ajo $fare sht thirrje sistem ne
nj "ersion t 3indows mund t behet ne hapesiren user ne nj "ersion tjetr dhe
anasjelltas. )ur t diskutojme thirrjet sistem t 3indows#it ne ket liber, do t prdorim
pro$edurat 3in9H (aty ku sht i duhur) meqene se (i$rosoft na garanton se keto do t
jene t qendrueshme pr shume kohe. !or sht e rendesishme qe jo t gjitha prej tyre
jane thirrje t "erteta sistem (qe sht, trap ne kernel)
Nj tjetr komplikim sht se ne +N6R, 5+6 (pr shembull, R 3indows dhe
(otif) "epron plotsisht ne hapesiren user, keshtu t "etmet thirrje sistem t ne"ojitura
pr shkrimin ne nj s$reen jane write dhe shume pak shume pak t tjera t parendesishme.
1igurisht, ka nj numer t madhe thirrjesh pr R 3indows dhe 5+6, por ne nj fare
kuptimi, keto nuk jane thirrje sistem.
Ne ndryshim, 3in9H ,!6 ka nj numer t madh thirrjesh pr mena%himin e
dritare"e, figura"e gjeometrike, tekstit, font#it, s$rollbars, dialog bo%es, menut dhe
dukuri t tjera t 5+6. Ne siprfaqen qe nensistemi grafik "epron ne kernel (e "ertet pr
disa "ersione t 3indows por jo pr t gjitha), jane thirrjet sistem, pr ndryshe ata jane
thjesht thirrje library. , duhet ti trajtojme keto thirrje ne ket liber apo joU (eqene se ato
nuk jane ne t "ertet t lidhura me funksuionet e nj sistemi operati", kemi "endosur t
mos i trajtojme edhe pse ato mund t krijohen nga kerneli. -e%uesit e interesuar pr
3in9H ,!6 mund t konsultohen nga shume libra pr ket teme si pr shembull, (2art,
&GGCI .e$tor dhe New$omer, &GGCI dhe 1imon, &GGC).
!re'antimi i thirrje"e 3in9H ,!6 ketu sht jasht temes, por ne jemi kufi'uar ne
keto thirrje qe afersisht korrespondojne me funksionalittin e thirrje"e +N6R t listuara
ne figuren &.&L. )eto jane t listuara ne figuren &.H9.
-e t shohim shkurtimisht listn e figure &.H9.*reate proes krijon nj proes t ri.
)jo bn kombinimin e fork dhe e%e$"e ne sistemin +N6R. ,jo ka shume parametra qe
spe$ifikojne karakteristikat a proese"e t rinj qe jane krijuar. 3indows nuk ka nj
hierarki proesesh si$ ka +N6R, keshtu qe nuk ek'iston kon$epti proestit femije dhe atij
prind. !as krijimit t nj proesi krijuesi dhe i krijuari jane t njjt. 3ait/or1ingle:bje$t
prdoret pr t pritur nj ngjarje. (und t pritet pr shume ngjarje t mundeshme. Ne
qoft se parametri spe$ifikon nj proes, me pas thirresi pret qe proesi i spe$ifikuar t
dale, gje e $ila behet duke prdorur %it!roess.
5jasht thirrjet e tjera operojne ne file dhe jane funksionalisht t ngjashem me
homologet e tyre ne +N6R, edhe pse ndyshojne ne parametra dhe ne detaje. /ile#t mund
t hapen, mbyllen, le%ohen, shkruhen shume mire si ne +N6R. Nhirrjet 1et/ile!ointer dhe
5et/ile,ttributs "endosin po'i$ionin e file#s dhe marrin disa "eti t file#s.
3indows ka direktori dhe keto direktori jane t krijuara nga *reate=ire$tory dhe
.emo"e=ire$tory, respekti"isht. )jo sht gjithashtu nj ide e direktorise aktuale, e
"endosur nga 1et*urrent=ire$tory. )oha aktuale sigurohet duke prdorur 5et-o$alNime.

Nderfaqa 3in9H nuk ka marredhenie me file#t, sistemet file mountd, sigurimin
ose sinjalet, keshtu qe thirrjet korresponduese me ata t +N6R nuk ek'istojne. 1igurisht,
3in9H ka nj numer t madh thirrjesh qe nuk ek'istojne ne +N6R, "e$anerisht pr
mena%himin e 5+6. 3indows H888 ka nj sistem t nderlikuar sigurimi dhe gjithashtu
suporton linkimet me file.
?sht e rendesishme qe t theksojme di$ka t fundit rreth 3in9H. 3in9H nuk
sht nj uniform e tmerrshme apo8 nj nderfaqe e qendrueshme. /ajtori kryesor pr ket
sht ne"oja e t qenurit t krahasueshem me nderfaqen e meparshme &D#bit e prdorur
ne 3indows 9.%.
1.7. STRUKTURA E SISTEMEVE OPERATIVE
Nani qe kemi pare se si duket sistemi operati" nga jasht (nderfaqa e programuesit), sht
koha t shohim nga brenda. Ne paragrafet e meposhtme, do t shqyrtojme pese struktura
t ndryshme qe jane pro"uar pr t marre ndonj ide pr spektrin e mundesi"e. )eto ne
asnj menyre nuk jane shtrues, por japin nj idet t disa projekt"e t pro"uara ne
praktike. !rse projektimet jane sisteme njbllokeshe (monolithi$), sisteme me shtresa
(layered), makina "irtiale, e%okernels dhe sistemet klient#ser"er.
1.7.1 SISTEMET MONOLITIKE
Ne organi'atat me t 'akonshme t hershme, kjo arritje shume mire do t
nentitullohej ENhe big mess (rremuje e madhe)F. 1truktura sht qe nuk ka asnj
strukture. 1istemi operati" shkruhet si nj bashkesi pro$edurash, ku se$ila prej tyre mund
t therrase ndonj tjetr sa here t jet e ne"ojshme. )ur prdoret kjo teknike, do
pro$edure ne sistem ka nj nderfaqe t mire pr$aktuar ne ba'e t parametra"e dhe
re'ultate"e, dhe donjra sht e lire t therrase ndonj tjetr, ne qoft se kjo e fundit
siguron disa llogaritje qe i duhen t parit.
!r t ndertuar programin objekt aktual t sistemit operati" kur prdoret kjo
arritje, fillimisht kompilohen t gjithe pro$edurat indi"iduale ose file#t qe prmbajne
pro$edurat, dhe me pas i lidh ata se bashku ne nj file objekt t "etm duke prdorur
linker#in e files. Ne terma t fshehjes se informa$ionit, thellesisht nuk ka asnj# do
pr$edure sht e dukshme tek do pro$edure tjetr (e kunder"ene me strukturen qe
prmban module apo paketime, ne t $ilin shume informa$ione fshihen brenda module"e
dhe "etm pikat hyrese 'yrtarisht t pr$aktuara mund t thirren nga jasht modulit).
1idoqoft, edhe ne sistemet monolitike sht e mundur t kemi t paktn nj
strukture t "ogel. 1herbimet (thirrjet sistem) t siguruara nga sistemi operati" kerkohen
neprmjet "endosjes se parametra"e ne nj "end t mire pr$aktuar (pr shembull, ne
sta$k) dhe me pas me ek'ekutimin e nj instruksioni trap. )y instruksion ndryshon
makinen nga mode user ne at kernel dhe transferon kontrollin tek sistemi operati", e
treguar si hapi D ne figuren &.&C. (e pas sistemi operati" merr parametrat dhe pr$akton
se $ila thirrje sistem do t kryhet. !as kesaj, ajo indeksohet ne nj tabele qe prmban ne
nj "end t $aktuar (slot) k nj pointer tek pro$edura qe kryen thirrjen sistem k (hapi C ne
figuren &.&C).
)y organi'im na sugjeron nj strukture ba'e pr sistemin operati"J
1. Nj program kryesor qe kerkon ne pro$eduren e sherbimit t kerkuar.
2. Nj bashkesi pro$edurash sherbimi qe kryejne thirrjet sistem
3. Nj bashkesi pro$edurash t dobishme qe ndihmojne pro$edurat sherbim.
Ne ket model, pr do thirrje sistem ka nj pro$edure sherbimi qe kujdeset pr t.
!ro$edurat e dobishme bejne gjera t ne"ojshme nga pro$edura sherbimi t ndryshme, si
marrja e t dhena"e nga programet user. )jo ndarje e pro$edura"e ne tre shtresa tregohet
ne figuren &.HM.
/ig.&.HM.Nj model i thjesht pr sistemet monilitike.
1.7.2. SISTEMET ME SHTRESA (LAYERED)
Nj prgjithesim i trajtimit t figures &.HM sht organi'imi i sistemit operati" si
nj hierarki shtresash, ku donjra sht ndertuar mbi tjetren posht tij. 1istemi i pare i
ndertuar ne ket menyre ishte sistemi N2 i ndertuar ne N$hnis$he 2oges$hool
indho"en ne 2ollande nga .3.=ijkstra (&GDL) dhe studentt e tij. 1istemi N2 ishte
nj sistem i thjesht bat$h pr nj kompjuter hollande', le$troAogi$a RL, i $ili kishte
9H) fjale HC#bit.
1istemi kishte D shtresa, si$ tregohen ne figuren &.H7. 1htresa 8 merrej me
alokimin e proesore"e, ndyshimin mes proese"e kur ndodhnin interrupte apo skadime
t kohes. 1ipr shtreses 8, sistemi prbehej nga proese "ijues ku se$ili prej tyre mund t
lidht programe duke mos u shqetsuar rreth faktit se shume proese po "epronin ne nj
proesor t "etm. (e fjale t tjera, shtresa 8 siguroi multiprogramimin ba'e t *!+.

1htresa & bnte mena%himin e memories. ,jo alokont hapesire pr proeset ne
memorien kryesore dhe ne 7&H) drum fjale t prdorur pr mbajtjen e pjese"e t
proese"e (faqe"e) pr t $ilat nuk kishte "end ne memorien kryesore. 1ipr shtres &,
!roeset nuk kishin pse t shqetsoheshin ne se ato ishin ne memorie apo ne drumI
software#i i shtreses & u kujdes pr t bere t sigurt qe faqet t silleshin ne memorie kurdo
qe ata mund t ne"ojiteshin.
1htresa H bnte t mundur komunikimin ndermjet se$ilit proes dhe konsolit t
operatorit. (bi ket shtrese se$ili proes ne menyre efekti"e kishte konsolin e tij t
operatorit. 1htresa 9 kujdesej pr mena%himin e pajisje"e 6/: dhe buffer#imin e rrjedha"e
t informa$ionit ne dhe jasht tyre. 1ipr shtreses 9 se$ili proes mund t merrej me
pajisjet abstrakte 6/: me karakteristika t kendshme, ne "end t pajisje"e reale me shume
karakteristika. 1htresa M ishte aty ku gjendeshin programet user. ,to nuk kishin pse t
shqetsoheshin rreth proesit, memories, konsolit ose mena%himit 6/:. !roesi sistem
operator ishte i "endosur ne shtresen 7.
Nj prgjithesim me i metejshem se ai i kon$eptit t shtresa"e ishte pre'ent ne
sistemin (+-N6*1. Ne "end t shtresa"e, (+-N6*1 ishte i prshkruar duke pasur nj
seri hallakash bashkeqendrore, ku ato me t brendeshmet ishin me t pri"ilegjuara se ato
t jashtmet (qe sht efekti"isht e njjta gje). )ur nj pro$edure ne nj hallke (ring) t
1htresa /unksionet
7 :peratori
M !rogramet +ser
9 (ena%himi input/output
H )omunikimi :perator#proes
& (ena%himi i memories dhe drum#it
8 ,lokimi i proesorit dhe multiprogramimit
jashtme dont t therrist nj pro$edure ne nj hallke t brendeshme, ajo duhet t bnte
ekuli"alenten e nj thirrjeje sistem, qe sht nj instruksion N.,!, parametrat e t $ilit
ishin t kontrolluara me kujdes pr "lefshmeri para se thirrja t lejohej t pro$edont.
(egjithese sistemi operati" i tri ishte pjese e hapesires se adresa"e t se$ilit proes user
ne (+-N6*1, hardware#i beri t mundur t pr$aktont pro$edurat indi"iduale
(aktualisht segmentt e memories) si t mbrojtura kundrejt le%imit, shkrimit ose
ek'ekutimit.
1kema e shtresuar N2 ishte me t "ertet "etm nj ndihme projektimi, sepse t
gjithe pjeset e sistemit se fundmi ishin t lidhura se bashku ne nj program objekt t
"etm, ne (+-N6*1, mekani'mi ring ishte me t "ertet shume pre'ent ne kohen e
ek'ekutimit nga hardware#i. ,"anta'hi i mekani'mit ring sht se ai shume thjesht mund
t shtrihet ne strukturen e nensisteme"e user. !r shembull, nj profesor mund t
shkruant nj program pr t testuar dhe kategori'oje programet student dhe t
ek'ekutoje ket program ne ring n , me programet student qe "eprojne ne ring#un nC1-
keshtu qe ata nuk mund t ndyshojne kategorine e tyre.
1.7.3. MAKINAT VIRTUALE
N%jerrjet e para t :1/9D8 ishin pikerisht sistemet bat$h.(egjithat, shume
prdorues 9D8 donin t kishin timesharing (ndarjt t kohes), keshtu 6;( "endosi t
shkruaje sisteme timesharing pr t. 1istemi 'yrtar 6;( timesharing, N11/9D8 u shprnda
"one dhe kur me ne fund arriti, ai ishte kaq i madh dhe kaq i ngadalt sa qe pak site
ktheheshin t ai. ,i u braktis prfundimisht pasi pr 'h"illimin e tij ishin har%huar 78
milion P (5raham, &GC8). !or nj grup i qendres shken$ore t 6;( ne *ambridge,
(assa$husetts, prodhuan sistem rrenjsisht t ndyshem qe 6;( prfundimisht e pranoi si
produkt, dhe qe tani sht gjeresisht i prdorur ne mainframet e tij t mbetur.
)y sistem, fillimisht i quajtur *!/*(1 dhe me "one i riquajtur >(/9C8
(1eawright and (a$)innon, &GCG), ishte i ba'uar ne nj "rojtim t mprehtI nj sistem
timesharing siguron (&) multiprogramimin dhe (H)nj makine t 'gjeruar me nj nderfaqe
me t prshtatshme se hardware#i minimal(bare).Nhelbi i >(/9C8 sht ndarja e plot e
ketyre dy funksione"e.
@emra e sistemit, e njohur si monitori i makines virtuale, "epron ne hardware#in
bare dhe bn multiprogramimin, duke i siguruar jo "etm nj por me shume makina
"irtuale shtreses se mepasme t siprme, si$ tregohet ne figuren &.HD. 1idoqoft, ndryshe
nga t gjithe sistemet e tjera operati"e, keto makina "irtuale nuk jane makina t 'gjeruara,
me file#a dhe dukuri t tjera t kendshme. Ne t "ertet, ata jane kopje identike t
hardware#it bare, duke prfshire mode#n user/kernel, 6/:, interruptet dhe do gje tjetr qe
kane makinat reale.
ig.1.2.. 6truktura e 785!/- me C86
Ngaqe do makine "irtuale sht identike me hardware#in e "ertet, do njra
mund t ek'ekutoje $ilido sistem operati" qe do t ek'ekutohet direkt ne hardware#in
bare. (akina "irtuale t ndryshme mund t ek'ekutojne sisteme operati"e t ndryshme,
gje qe e bejne "a'hdimisht. =isa ek'ekutojne nj nga paraardhesit e :1/9D8 pr prpunim
"eprimesh ose pr bat$h, ndersa t tjere ek'ekutojne sisteme intera$ti"e me nj
prdorues t "etm t quajtura CMS (Conversational Monitor System) pr prdorues
interakti" timesharing.
)ur nj program *(1 ek'ekuton nj thirrje sistem, thirrja behet trapped t
sistemi operati" ne makine e tij "irtuale, jo ne >(/9C8, pikerisht ashtu si$ do t ishte ne
se do t ek'ekutohej ne nj makine reale dhe jo ne nj "irtuale. (e pas *(1 n%jerr
instruksionet normale hardware#ike 6/: pr le%imin e diskut t tij "irtual apo $faredo qe
ne"ojitet pr t kryer nj thirrje. )eto instruksione 6/: behen trapped nga >(/9C8, i $ili
me pas i intrpreton ato si pjese e simulimit t tij t hardware#it real. =uke ndare
plotsisht funksionet e multiprogramimit dhe sigurimit t nj makine me t 'gjeruar,
se$ila nga pjeset mund t jet me e thjesht, me fleksibel dhe me e kollajt pr tu mbajtur.
6dea e makina"e "irtuale ne ditt e sotme sht gjeresisht e prdorur ne nj
kontekst t ndryshemJ ek'ekutimi i programe"e t "jetr (1#=:1 (ose *!+ t tjera 6ntel
9H#bit). 5jat projektimit t !entium#it dhe software#it t tij, 6ntel dhe (i$rosoft kuptuan
qe do t kishte nj ne"oje t madhe pr ek'ekutimin e software#"e t "jetr ne hardware#
et e rinj. !r ket arsye, 6ntel siguroi nj mode "iruale L8LD ne !entium. Ne ket mode,
makina sillet si nj L8LD (e $ila nga kend"eshtrimi i software sht identike me nj L8LL),
duke prfshire adresimin &D#bit me nj limit &#(;.
)jo mode prdoret nga 3indows dhe sisteme t tjera operati"e pr ek'ekutimin e
programe"e (1#=:1. )eto programe fillohen ne mode "irtuale L8LD. !r sa kohe ata
ek'ekutojne instruksione normale, ata ek'ekutojne ne hardware#in bare. 5jithsesi, kur nj
program bn prpjekje pr t trap me sistemin operati" pr t bere nj thirrje sistem apo
bn prpjekje pr t bere ne menyre direkt 6/: t mbrojtur, ndodh nj trap ne monitorin
e makines "irtuale.
Ne ket projektim jane t mundshem dy "ariante. Ne t parin, "et (1#=:1 sht
i ngarkuar ne hapesiren e adresa"e "irtuale t L8LD, keshtu qe monitori i makines "irtuale
thjesht reflekton mbrapr shembullt trap#in tek (1#=:1, pikerisht si$ do t ndodhte ne
L8LD reale. )ur (1#=:1 me "one pro"on t beje "et 6/:, ky oprim nderpritet dhe
kryhet nga monitori i makines "irtuale.
Ne "ariantin tjetr, monitori makines "irtuale thjesht kap trap#in e pare dhe bn
6/: "et, meqene se ajo i di se $fare jane t gjitha thirrjet sistemit (1#=:1 dhe keshtu di
se $fare sht i supo'uar t beje se$ili trap. )y "ariant sht me pak i pastr se ai i pari,
prderisa ri"ali'on ne menyre korrekte "etm (1#=:1 dhe jo sistemet e tjera operati"e,
si$ bn i pari. Ne anen tjetr, sht me i shpejt, prderisa ruan problemet e fillimit t
(1#=:1 pr t bere 6/:. Nj disa"anta'h i metejshem i (1#=:1#it aktualisht "eprues ne
mode "iruale L8LD sht se har%hon shume kohe me bitet enable/disable t interrupte"e,
t gjitha keto duhet t ri"ali'ohen ne nj kosto t konsiderueshme.
?sht e rendesishme t theksojme se asnjra nga keto arritje jane me t "ertet t
njjta me >(/9C8, meqene se makina qe do t ri"ali'ohet nuk sht nj !entium i plot,
por "etm nj L8LD. (e sistemin >(/9C8 sht e mundur t ek'ekutohet "et >(/9C8 ne
makine "irtuale. (e !entium, nuk sht e mundur t ek'ekutohet 3indows nw L8LD
"irtuale sepse asnj "ersion i 3indows nuk ek'ekutohet ne nj L8LDI nj HLD sht
minimumi edhe pr "ersionet me t "jetra dhe ri"ali'uesi i HLD nuk sht krijuar (duke
lene menjane ri"ali'imin e !entium). 5jithsesi, duke modifikuar pak binary#n 3indows,
ky ri"ali'im sht i mundur madje edhe i prshtatshem ne produktt komer$iale.
Njetr prdorim i makina"e "irtuale, por ne nj menyre t ndryshme sht pr
ek'ekutimin e programe"e Aa"a. )ur 1un (i$rosystems krijuan gjuhen e programimit
Aa"a, gjithashtu krijuan nj makine "irtuale (nj arkitekture kompjuteri) t quajtur 1VM
(1ava Virtual Machine). )ompilatori Aa"a prodhon kod pr A>(, i $ili me pas
ek'ekutohet nga nj interpretues A>( software#i. ,"anta'hi i kesaj arritjeje sht se kodi
A>( mund t transportohet neprmjet internetit ne do kompjuter qe ka nj interpretues
A>( dhe t ek'ekutohet atje. Ne qoft se kompilatori ka prodhuar 1!,.* ose programe
binare !entium, pr shembull, ato mund t mos jene transportuar dhe ek'ekutohen kudo
kaq leht. (1igurisht 1un mund t kishte prodhuar nj kompilator qe prodhonte binare
1!,.* dhe me pas t shprndant nj interpretues 1!,.* por A>( sht nj
arkitekture me e thjesht pr tu intrpretuar). Nj tjetr a"anta'h i prorimit t A>( sht
se ne qoft se interpretuesi sht implementuar si$ duhet, qe nuk sht plotsisht e
parendesishme, !rogramet ardhese A>( kontrollohen pr siguri dhe me pas ek'ekutohen
ne nj mjedis t mbrojtur ne menyre qe ata t mos mund t "jedhin t dhena apo t bejne
ndonj dem tjetr.
1.7.4. EXOKERNELS
(e >(/9C8, do proes user merr nj kopje identike t kompjuterit aktual. (e mode#n
"irtuale L8LD ne !entium, do proes user merr nj kopje identike t nj kompjuteri tjetr.
=uke "a'hduar nj hap me tej, kerkuesit a (.6.N. kane ndertuar nj sistem qe i jep se$ilit
prdorues nj klonim t kompjuterit aktual, por me nj nenbashkesi burimesh (ngler et
al., &GG7). )eshtu nj makine "irtuale mund t marre bloqe disku nga 8 #&8H9, tjetri me
pas mund t marre blloqet nga &8HM#H8MC dhe keshtu me rradhe.
Ne shtresen e fundit, sht nj program qe "epron ne mode kernel dhe quhet
e%okernel. !una e tij sht alokimi i burime"e ne makinen "irtuale dhe me pas kontrollon
prpjekjet pr prdorimin e tyre pr tu siguruar qe asnj makine nuk po mundohet t
prdor burimet e dikujt tjetr. 1e$ila makine "irtuale e ni"elit user mund t ek'ekutoje
sistemin e tij operati", si ne >(/9C8 dhe !entium "irtual L8LD, pr"e$ qe se$ila sht e
kufi'uar pr t prdorur "etm burimet qe ka kerkuar dhe qe me pas jane alokuar.
,"anta'hi i skemes e%okrenel sht se ajo ruan nj shtrese t mapping. Ne
projektime t tjera, do makine "irtuale mendon sikur ka disqet e tij, me blloqe
ek'ekutimi nga 8 deri ne nj maksimum, keshtu qe monitori i makines "irtuale duhet t
mbaj tabela pr t rihartuar adresat e diskut (all t burime"e t tjere). (e e%okernel ky
rihartim sht i pane"ojshem. E9oker)e%i ka te 'eje me at se &i%a gjurme se &i%a maki)e
*irtua%e i sht &aktuar &i%it 'urim . )jo metode ka akoma a"anta'hit e ndarjes se
multiprogramimit (ne e%okernel) nga kodi i sistemit operati" user (ne hapesiren user), por
me me pak mbingarkese, meqene se e gjithe ajo $fare duhet t beje e%okerneli sht t
mbaje makinat "irtuale larg t nga$mimi"e t t tjere"e.
1.7.5. MODELI KLIENT-SERVER
>(/9C8 rritet ne thjeshtsi duke le"i'ur nj pjese t madhe t kodit tradi$ional t
sistemit operati" (duke implementuar makinen e 'gjeruar) ne nj shtrese me t lart,
*(1. 1idoqoft, "et >(/9C8 akoma sht nj program kompleks sepse simulimi i nj
numri t 9C8 "irtuele ne tresi t tyre nuk edht aq e thjesht ("e$anerisht ne qoft se doni
ta bni at ne menyre t arsyeshme efi$ente).
Nj tnden$e ne sistemet moderne operati"e sht ideja e t le"i'urit t kodit ne
shtresa t metejshme t siprme dhe t heqe sa me shume t jet e mundur nga moda
kernel, duke lene nj mircokernel minimal. ,rritja e 'akonshme sht t implementuarit
e shumi$es se sistemit operati" ne proeset user. !r t kerkuar nj sherbim, si le%imi i
nj blloku apo i nj file#i, nj proes user (tani i njohur is proesi klient) dergon kerkesen
ne nj proes server, i $ili me pas bn punen dhe dergon mbrapa prgjigjen.

ig.1.2/. 8ode%i k%ie)t,ser*er.
Ne ket model t treguar ne figuren &.HC., e gjithe ajo $fare kerneli bn sht
organi'imi i komunikimit mes klientit dhe ser"erit. =uke ndare sistemin operati" ne dy
pjese, ku se$ila merret me nj aspekt t sistemit siI sherbimi file, sherbimi proes,
sherbimi terminal apo sherbimi memorie, se$ila pjese behet me e "ogel dhe me e
mena%heshme. !r me tepr, meqe t gjithe ser"erat "eprojne si proese t mode#s user,
dhe jo ne kernel, ata nuk kane aksesim direkt ne memorie. 1i pasoje, ne qoft se gjendet
nj "irus ne fileser"er, sherbimi file mund t deshtoje, por kjo nuk do t beje t deshtoje e
gjithe makina.
Nj tjetr a"anta'h i modelit klient#ser"er sht prshtatshmeria e prdorimit ne
sistemet e shprndara (shikoni figuren &.HL.). Ne qoft se nj klient komunikon me nj
ser"er duke derguar mesa'he, klienti nuk ka ne"oje t dije ne se mesa'hi merret lokalisht
nga makina e tij, apo sht derguar neprmjet nj rrjeti tek makina e ser"erit. !r sa kohe
klienti sht i interesuar, e njjta gje ndodh ne t dy rastetJ dergohet nj kerkese dhe "jen
nj prgjigje.
/igura e mesiprme e nj kerneli qe merret me transportin e mesa'he"e nga
klientt t ser"erat dhe anasjelltas nuk sht plotsisht reale. =isa funksione t sistemit
operati" (si ngarkimi i komanda"e ne regjistrat e pajisje"e fi'ike 6/:) jane t "eshtira, pr
t mos thene t pamundura, pr tu bere nga programet ne hapesiren user. )a dy menyra
pr tu marre me ket problem. Nj menyre sht t kemi disa proese ser"er kritike (pr
shembull, dri"erat e pajisje"e 6/:) qe aktualisht t "eprojne ne mode kernel, me aksesim
t plot ne hardware, por akoma t komunikojne me proeset e tjera duke prdorur
mekani'min e mesa'he"e normale.
(enyra tjetr sht t ndertojme nj sasi minimale t mekani'mit ne kernel por
"endimet e men$ura ti leme ne dore t ser"era"e ne hapesiren user (-e"in et al., &GC7).
!r shembull, kerneli duhet t njohe qe nj mesa'h i derguar ne nj adrese t $aktuar
nenkupton t marre prmbajtjen e atij mesa'hi dhe ta ngarkoje at ne regjistrat e pajisje"e
6/:, qe t filloje le%imin e diskut. Ne ket shembull, kerneli nuk duhet t prese sa bytet ne
mesa'h, pr t pare ne se ishin gabim apo t pakumptimta, ai thjesht duhet t kopjoje ato
ne regjistrat e pajisje"e ne disk, (me sa duket, disa skema pr limitimin e mesa'he"e t
tille duhet t prdoren "etm ne proese t autori'uar). Ndarja mes mekani'mit dhe
men$urise sht nj kon$ept i rendesishem. Ndodh ne kontekste t ndryshme ne sistemin
operati" here pas here.
ig.1.2:. 8ode%i k%ie)t,ser*er )e sistemet e shpr)dare.
1.8. KERKIMI NE SISTEMET OPERATIVE
1hken$a kompjuterike sht nj fushe qe a"an$on shume shpejt dhe sht e "eshtire t
parashikosh se ku do t shkoje. )erkuesit ne uni"ersitet dhe ne laboratoret industrial t
kerkimit jane ne menyre t "a'hdueshme duke menduar pr ide t reja, disa prej t $ila"e
nuk shkojne ne asnj "end por dise prej tyre behen themeloret e produkt"e t se ardhmes
dhe kane ndikim masi" ne industri dhe t prdoruesit. N tregosh se $fare sht se$ila
duket me e leht se ne jetn reale. Ndarja e grurit nga mbeturinat sht "ertet e "eshtire
sepse shpesh kerkon H8#98 "jet qe t ndikohet nga ideja.
!r shembull, kur presidenti isenhower ndertoi dep. e =efen$eOs ,d"an$ed
resear$h !roje$ts ,gen$y (,.!,) ne &G7L, ai po mundohej t mbant ushtrine nga "rasja
e flots ushtarake detare dhe for$at ajrore neprmjet bu%hetit t kerkime"e ne !entagon.
,i nuk po mundohej t krijonte internetin. !or nj nga gjerat qe beri ,.!, ishte
finan$imi i disa kerkime uni"ersitare, gje qe shpejt $oi ne rrjetin e pare eksprimental
pa$ket#swit$hed, ,.!,NN. >a'hdoi deri ne &GDG. (e lidhjen e rrjet"e t tjere t
gjetur nga ,.!, me ,.!,N6t, lindi interneti. ,there interneti pr H8 "jet prdorej nga
kerkuesit ushtarake pr dergimin e email"e t njri#tjetri. Ne fillim t &GG8, Nim ;erners#
-ee krijoi 3orld 3ide 3eb ne laboratorin e kerkime"e *.N ne 5ene"e dhe (ar$
,dreesen shkroi nj browser grafik pr t ne uni"ersitetin 6llinois. 1hume shpejt interneti
ishte plot t rinj qe $hatonin.
)erkimet ne sistemet operati"e gjithashtu na $ojne ne ndryshime dramatike ne
sistemet praktike. 1i$ e kemi diskutuar me pare, sistemet e para komer$iale kompjuterike
ishin t gjithe sisteme bat$h, derisa (.6.N. krijoi timesharing interakti" ne fillim t "ite"e
&GD8. )ompjuterat ishin t gjithe te%t#based derisa =oug ngelbart krijoi mouse#in dhe
nderfaqen grafike user ne institutin kerkimore 1tanford ne fund t "ite"e &GD8. )ush e di
se $fare do t "ij me "oneU
Ne ket paragrafe do t shohim shkurtimisht ne disa kerkime ne sistemet
operati"e qe jane bere gjat 7 deri &8 "itet e fundit, thjesht t japim nj atmosfere t atyre
qe jane ne hori'ont. )y pre'antim nuk sht i hollesishem dhe prgjithesisht sht i
ba'uar ne publikimet ne re"istat kerkimore dhe konferen$a. 1humi$a e $itime"e t
publikime"e jane publikuar nga ,*( apo nga :rgani'ata e kompjutera"e 6, apo
+1N6R dhe jane t diponueshem ne internet tek pjesetaret e ketyre organi'ata"e dhe
bilioteka"e di%hitale t tyre "i'itoniJ
,*( httpJ//www.a$m.org
6 *omputer 1o$iety httpJ//www.$omputer.org
+1N6R httpJ//www.useni%.org
>irtualisht t gjithe kerkuesit e sisteme"e operati"e kuptojne qe sistemet aktuale
operati"e jane masi"e, infleksible, t pabesueshme, t pa sigurta dhe t ngarkuar me
"iruse, disa me shume e disa me pak (pr t mbrojtur fajtorin emrat jane t fsheht). !r
pasoje sht bere nj kerkim i gjere pr menyren se si t ndertojme sisteme fleksible.
1humi$a e kerkime"e kane lidhje me sistemet mikrokernel. )eto sisteme kane nj kernel
minimal, keshtu qe ka nj shans qe ato mund t behen t besueshem dhe t regulluar. ,ta
gjithashtu jane fleksibel sepse shume sisteme operati"e reale "eprojne shume si proese
user mode, dhe keshtu mund t 'e"endesohen apo t prshtatn shume leht, mundesisht
edhe gjat ek'ekutimit. Ne menyre tipike ajo $fare bn mikrokerneli sht t merret me
mena%himin e burime"e dhe kalimin e mesa'he"e mes proese"e user.
(ikrokernelat e gjenerates se pare, si ,moeba (Nanenbaum et ah, &GG8),
*horus (.o'ier et al., &GLL), (a$h (,$$etta et al., &GLD), dhe > (*heriton, &GLL), treguan
se sisteme t tille mund t ndertoheshin dhe t prdoreshin pr pune. 5jenerata e dyt po
prpiqet t tregoje qe ato jo "etm mund t punojne, por madje edhe me performan$e t
lart (/ord et al, &GGDI 2artig et al, &GGCI -iedtke &GG7,&GGDI .awson &GGCI dhe @uberi
et al, &GGG). ;a'uar ne mase t publikime"e duket se ky objekti" sht arritur.
Ne ditt e sotme shumi$a e kerkime"e kernel sht fokusuar ne ndertimin e
sisteme"e operati"e t 'gjatshme (e%tnsible). )eto jane ne menyre tipike sistemet
mikrokernel me aftsi pr t 'gjeruar dhe prshtatur ne disa drejtime. =isa shembuj jane
/luke (/ord et al., &GGC), !arame$ium (>an =oom et al., &GG7), 1!6N (;ershad et
al.,&GG7) dhe >ino (1elt'er et al., &GGD). =isa kerkues gjithashtu po kerkojne se si mund
t 'gjerojne sistemet ek'istuese (5hormley et al &GGL). 1hume nga keto sisteme lejojne
sistemin operati" t shtojne kodin e tyre ne kernel, gje e $ila na sjell problemin e
dukshem se si t lejohen prapashtesat (e%tension) ne nj menyre t sigurt. Neknikat
prfshijne intpretimin e e%tension#e"e, kufi'imin e tyre ne sandobo%#et kode"e,
prdorimin e gjuhe"e type#safe dhe shenimin e kodit (5rimn dhe ;ershad, &GGCJ dhe
1mall and 1elt'er, &GGL). =rus$hd et al (&GGC) paraqet nj opinion kunder, duke thene se
do t duhej shume prpjektje ne mbrojtje pr sistemet oser#e%tandable. 1ipas tyre,
kerkuesit duhet t kuptonin se $ilt e%tensions ishin t dobishem dhe me pas ti bnin ato
pjese normale t kernelit.
dhe pse nj arritje pr t eliminuar sistemet operati"e plot me "iruse dhe t
pabesueshem sht ti bejme ata me t "egjel, nj tjetr me thelbesore sht t fshijme t
gjithe sistemin operati". )jo arritje po ndiqet nga grupi )aashoek ne>6.6N, ne kerkimet e
tyre e%okernel. )etu idea sht t kemi nj shtrese t holle software qe "epron ne metalin
bare, puna e "etme e t $ilit sht alokimi i sigurt i burime"e hardware tek userat. !r
shembull, ai duhet t "endose kush do t prdore dhe $ilen pjese t diskut, dhe ku do t
"endosen paketat hyrese. Bdo gje tjetr i sht lene ne dore proese"e t ni"elit user,
duke bere t mundur ndertimin e sisteme"e operati"e me qellime t prgjithshme dhe
atyre hollesisht t spe$ifikuara (ngler dhe )aashoek,&GG7I ngler et al, &GG7J dhe
)aashoek et al, &GGC).
1.9. PARASHTRIMI I P1ESES T1ETR T LIBRIT
Nani kemi prfunduar se pre'antuari "eshtrimin e prgjithshem t sisteme"e
operati"e. ?sht koha t futmi me ne detaje. )apitulli H trajton proeset. ,i gjithashtu
flet pr karakteristikat e tyre dhe menyren e komunikimit t tyre me njri#tjetrin.
5jithashtu ka nj nj numer shembujsh t detajuar se si funksionon komunikimi
nderproesor dhe si shmangim disa kurthe.
)apitulli 9 trajton deadlo$ks. Ne ket kapitull ne treguam shkrutimisht se $fare
jane deadlo$ks, por ka me shume pr t thene rreth tyre. 5jithashtu diskutohen menyra
pr ndalimin e tyre.
Ne kapitullin M do t studiojme ne detaje mena%himin e memories. )etu do t
shpjegohen tmat e rendesishme t memories "irtuale, me kon$eptet t lidhura ngusht si
paging dhe segmentimi.
6nputi/:utput do t trajtohet ne kapitullin e pest. =o t shihen kon$eptet e
pajisje"e t pa"arura dhe t "arura. =isa pajisje t rendesishme, duke prfshire edhe
disqet, tastjerat do t prdoren si shembuj.
(e pas ne kapitullin e gjasht, "ijme ne tma t rendesishme t sisteme"e file.
(e nj 'gjerim t konsiderueshem, ajo $fare sheh prdoruesi sht prgjithesisht sistemi
file. =o t shikojme nderfaqen e sisteme"e file dhe implementimin e sisteme"e file.
Ne ket pike do t kemi prfunduar studimin tone t prin$ipe"e ba'e t
sisteme"e operati"e me nj *!+ t "etme. 5jithsesi, ka me shume pr t thene, sidomos
rreth tma"e t a"an$uara. Ne kapitullin C, do t shqyrtojme sistemet multimedia, t $ilt
kane nj numer karakteristikash dhe "etish qe ndryshojne nga sitemet operati"e
tradi$ionale. >e$ t tjera"e, skedulimi dhe sistemet file jane t ndikuara nga natyra e
sisteme"e multimedia. Nj tjetr teme e a"an$uar jane sistemet me shume proesore,
duke prfshire multiproesoret, kompjuterat paralel dhe sistemet e shprndare. )eto tma
trajtohen ne kapitullin e L.
Nj teme shume e rendesishme sht siguria e sisteme"e operati"e, qe trajtohet
ne kapitullin G. Nder tmat e trajtuara ne ket kapitull jane threads ("iruset dhe worm),
mekani'mat mbrojts dhe modelet e sigurimit.
(e pas kemi disa studime rasti t sisteme"e operati"e reale. )eto jane +N6R
(kapitulli &8 ) dhe 3indows H888 (kapitulli &&). -ibri prfundon me disa mendime rreth
sisteme"e operati"e ne kapitullin &H.
1.10. N1SITE METRIKE.
!r t shmangur do konfu'ion, sht e rendesistem t themi se ne ket liber, si
ne shken$en kompjuterike ne prgjithesi, njsite metrike jane prdorur ne "end t njsi"e
tradi$ionale angle'e. !refikset themelore metrike jane t listuara ne figuren &.HG.
!refikset jane ne menyre tipike t shkurtuar me shkronjat e tyre t para, me njsite me t
medha se & jane t kapitali'uara. )eshtu nj database &#N; 'e &8&H byte pr ruajtje dhe
nj &88 $lo$k ti$k Ke p$es (ose &88 ps) do &8#&8 sekonda. !rderisa milli dhe mikro
fillojne qe t dyja me shkronj WmO, duhet t behej nj ndryshin. Normalisht WmO sht pr
milli dhe W^O sht pr mikro.
Fig.1.2D. )refikset kryesore metrike
2
2. PROESET DHE THREAD-ET
Nashme ne jemi ne gjendje t fillojme nj studim me ne detaje t di'enjimit dhe ndertimit
t nj sistemi operati". )on$epti kryesor i do sistemi operati" sht proesiJ nj
abstrakim i nj programi t ek'ekutushem. Bdo gje tjetr "aret nga ky kon$ept dhe sht
e rendesishme qe di'enjuesit e sistemit operati" (pr shembull. studentt) t kene nj
njohje t kompletuar pr at $fare sht proesi sa me shpejt t jet e mundur.
2.1 PROESET
N gjithe kompjuterat modern jane ne gjendje t bejne gjera t ndryshme ne t njjtn
kohe. Nderkohe qe nj program user sht duke u ek'ekutuar, kompjuteri mund t le%oj
nga nj disk ose t n%jerri si output nj tekst ne ekran ose ne printer. Ne nj sistem
multiprogramimi nj proes mund kaloj nga nj program ne nj tjetr, duke ek'ekutuar
se$ilin pr dhjetra ose qindra milisekonda. Nderkohe, duke folur rigoro'isht, ne do
moment t kohes, *!+ ek'ekuton "etm nj program, ne kohen prej & sekond, ai mund t
punoj me programe t ndryshme, kjo i jep usera"e ilu'ionin e paraleli'mit. Ndonjehere
njere'it flasin pr pseudoparaleli'em ne ket kontekst, pr ta krahasuar me paraleli'min e
"ertet t sisteme"e multiproessor (t $ilt kane dy ose me shume *!+ qe share#ojne t
njjtn memorie fi'ike). =uke patur parasysh shumllojshmerine, akti"itet ne paralel jane
t "eshtira pr tu bere nga njere'it. 5jithsesi, di'enjuesit e sistemit operati" kane
prfshire nj model kon$eptual (proeset sekuen$iale) qe e bejne paraleli'min t leht pr
t kryer "eprime me t. )y model, prdorimet e tij dhe disa nga pasojat e tij prbejne
subjektin e ketij kapitulli.
2.1.1 Modeli Proes
Ne ket model, t gjithe software#et e ek'ekutushem ne kompjuter, ndonjehere duke
prfshire dhe sistemin operati", jane ndertuar ne nj numer sekuen$ial proesesh ose pr
shkurt proese. Nj proes sht thjesht nj pogram i ek'ekutueshem , duke prfshire
"lerat e fundit t program $ounter , regjistra"e dhe "ariabla"e. Ne menyre kon$eptuale
do proes ka *!+ e "et "irtuale. Ne realitet, nj *!+ reale komuton proesin para dhe
pas, por pr t kuptuar sistemin, sht me e thjesht pr t menduar rreth nj koleksioni
proesesh qe ek'ekutohen ne paralel, se sa t ndjekesh gjurmet se si *!+ komuton nga
programi ne program. )jo menyre e shpejt e komutimit para dhe pas sht quajtur
multiprogramim, si$ pame ne kapitullin e pare .
Ne fig H#&(a) shohim nj kompjuter multiprogramimi me M programe ne memorie. Ne fig
H#&(b) shohim M proese se$ili me program $ounter e "et llogjik dhe ato ek'ekutohen ne
menyre t pa"arur nga njri tjetri. 1igurisht qe ka "etm nj program $ounter fi'ik, keshtu
qe kur do proes ek'ekutohet, program $ounteri i tij llogjik ngarkohet ne program
$ounter#in real. )ur ai ka prfunduar pr kohen e mbetur, program $ounter fi'ik ruhet ne
proes kurse program $ounter llogjik ne memorie. Ne fig.H#&($) do t shohim qe gjat nj
inter"ali kohe, t gjithe proeset kane bere nj progres, po ne t "ertet ne nj $ast t
kohes "etm nj proes po ek'ekutohet.
ig.2,1 (a) (ultiprogramimi pr katr programe.(b)(odeli $on$eptual i katr proese"e
sekuen$iale dhe t pa"arur.
(e komutimin e *!+ para dhe pas ndermjet proese"e, shpejtsia me t $ilen nj proes
prformon llogaritjen e tij, nuk do t jet uniforme dhe ne qoft se i njjti proes
ek'ekutohet prseri sht e mundur t mos marrim ndonj re'ultat. )eshtu qe, proeset
mund t mos programohen duke ngritur supo'ime mbi sinkroni'imin. )onsideroni, pr
shembull nj paisje 6/: qe nis nj regjistrim shiriti pr t ri"endosur ba$k up t file"e,
ek'ekutohet nj (idle loop) &8888 here pr t rritur shpejtsine, e me pas 'gjjidhet nj
komande pr t le%uar regjistrimin e pare. Ne qoft se *!+ "endos t komutoj ne nj
program tjetr gjat idle loop, proesi i regjistrimit mund t mos ek'ekutohet derisa
regjistrimi i pare t ket kaluar tek koka le%uese. )ur nj proes ka kerkesa kritike ne
kohe reale, si pr shembull ngjarje t "e$anta mund t ndodhin brenda nj numri t
spe$ifikuar milisekondash, duhen marre masa t "e$anta pr tu siguruar qe keto t
ndodhin. Normalisht shume proese nuk jane prekur nga multiprogramimi i nen"i'uar i
*!+ apo shpejtsia relati"e e proese"e t ndryshme.
Ndryshimi ndermjet proesit dhe programit sht delikat, por kritik. )etu do t na
ndihmont nj analogji. -e t marrim ne konsiderate nj shken$etar kompjuterash i $ili
sht duke pjekur nj kek pr ditlindjen e se bijes. ,i ka nj re$et keku dhe nj ku'hine
t mbushur me t gjithe prberesitJ mielli, "e'et, sheqeri, "anilje e keshtu me rradhe. Ne
ket analogji, re$eta sht programi (nj algoritem i shprehur ne nj kuptim t
prshtatshem), shken$etari i kompjutera"e sht proesori dhe prberesit e kekut jane t
dhenat ne hyrje. Nj proes sht nj "eprim qe konsiston ne le%imin e re$ets nga
pjekesi, marrjen e prberes"e dhe pjekja e kekut.
Nani imagjinoni qe djali i shken$etarit t kompjutera"e "jen duke qare, duke thene se e ka
pi$kuar nj blet. 1hken$etari i kompjutera"e fikson ku e nderpreu re$etn (kjo sht
gjendja e ruajtjes se proesit t fundit), merr nj liber t ndihmes se pare dhe i hedh nj sy
instruksione"e ne t. )etu ne shohim kalimin e proesorit nga nj proes (pjekja ) ne nj
proes t nj ni"eli me t lart prioriteti (administrimi i kujdesit mjeksor ), ku se$ili ka
program t ndryshem. )ur kujdesi ndaj t pi$kuares se blets prfundoi, shken$etari i
kompjutera"e kthehet t keku aty ku e kishte lene .
6dea kryesore sht se nj proes sht nj "eprim i lloje"e t ndryshme. ,i ka nj
program, input, output dhe nj gjendje. Nj proesor i "etm mund t ndahet ndermjet
disa proese"e, me disa algoritma skedulimi t prdorur pr t pr$aktuar kur mbron puna
e nj proesi, dhe ti sherbehet nj tjetri.
H.&.H Krijimi i nj proesi
1istemet operati"e kane ne"oje t sigurohen qe t gjithe proeset e ne"ojshme ek'istojne.
Ne sisteme shume t thjesht ose ne sistemet e di'enjuara pr nj aplikim t "etm (pr
shembull. kontrolli ne furren e nj sobe), sht e mundur qe t gjithe proeset e
ne"ojshme t jene pre'ent kur sistemi akti"i'ohet. Ne menyre t prgjithshme sistemet
kane ne"oje pr disa menyra pr krijimin dhe prfundimin e proese"e si$ jane t
ne"ojshme gjat "eprime"e. -e t shikojme disa prej ketyre $eshtje"e. Aane katr ngjarje
t rendesishme qe shkaktojne krijimin e proese"eJ
1. 6ni$iali'imi i sistemit
2. ksekutimi i nj thirrje sistem pr krijimin e proese"e nga nj proes ne
ek'ekutim
3. )erkesa e nj useri pr krijimin e nj proesi t ri.
4. /illimi i nj grupi pune.
)ur nj sistem operati" boot#ohet, krijohen disa proese. =isa prej tyre jane proese
foreground, t $ilt bashke"eprojne me user#in dhe kryejne detyra pr to. N tjeret jane
proese ba$kground, t $ilt nuk jane lidhur ne menyre t "e$ant me user#in, por
pan"arsisht kesaj ato kane disa funksione spe$ifike. !r shembull, nj proes
ba$kground mund t di'enjohet pr t pranuar email qe "ijne, ai mund t jet i
paakti"i'uar gjithe ditn dhe mund t akti"i'ohet kur "jen nj email. Nj proes tjetr
ba$kground mund t di'enjohet pr t pranuar kerkesat qe "ijne nga faqet 3eb, qe jane
host ne at makine, akti"i'ohet pr ti sherbyer kerkeses qe ka ardhur.
!roeset qe qendrojne ne ba$kground pr t trajtuar disa akti"itet si$ jane email, faqe
3eb, lajme, printime e keshtu me rradhe, jane quajtur daemons. 1istemet e medha kane
shume t tilla. Ne +N6R, programi pr shembull mund t prdoret pr t listuar proeset
ne ek'ekutim. Ne 3indows G7/GL/(e, duke shtypur nj kohsisht komandat $trl#alt#del
nga tastjera tregon se $fare po ek'ekutohet ne at moment. Ne 3indows H888 prdoret
task manager.
!r"e$ proese"e qe krijohen gjat kohes se boot#imit , proeset mund t krijohen dhe me
"one. @akonisht nj sistem ne ek'ekutim mund t prdori thirrjen sistem pr t krijuar nj
ose me shume proese t reja pr t ndihmuar ne kryerjen e detyra"e t tij. )rijimi i
proese"e sht i ne"ojshem kur puna qe duhet t kryejne sht e thjesht pr tu
formuluar ne terma me disa referime, por nga ana tjetr proeset bashk"eprojne ne
menyre t pa"arur. Ne qoft se nj sasi e madhe t dhenash sht trhequr nga nj
network pr proesin qe "ijon, do t jet me prshtatshme t kijohet nj proes pr t
trhequr t dhenat dhe pr ti "endosur ne nj buffer t share#uar derisa nj proes i dyt t
'h"endos t dhenat dhe ato proese. Ne nj multiproesor, duke lejuar qe do proes t
ek'ekutohet ne *!+ t "e$anta do t bnte qe nj pune t e$t shpejt.
Ne sistemet itrakti"e, user#at mund t startojne nj program duke shtypur nj komande
ose (double) klik ne nj ikone. =uke u nisur nga ky "eprim starton nj proes i ri dhe
ek'ekutohet programi i selektuar. Ne komandat ba'e sistemet +N6R ek'ekutojne R
3indows, proesi i ri "endoset ne dritaren ku u startua. Ne (i$rosoft 3indows, kur nj
proes startohet nuk ka nj dritare , por ajo mund t krijoj nj ose me shume. Ne t dy
sistemet, user#at mund t kene shume dritare hapur ne t njjtn kohe, se$ili duke
ek'ekutuar proese t ndryshme. =uke prdorur mousin, user#i mund t selektoje nj
dritare dhe t nderhyj ne proes, pr shembull duke shtuar t dhena kur duhet.
1ituata e fundit ne t $ilen sistemet mund t krijohen aplikohet "etm ne sistemet e
grupuara (bat$h) t gjetura ne mainframe t medha. )etu user#at mund ti nenshtrojne nj
grup pune sistemit. )ur nj sistem "endos qe i ka burimet pr t ek'ekutuar nj pune
tjetr, ai krijon nj proes t ri dhe ek'ekuton punen tjetr nga rradha e input"e ne t.
Neknikisht, ne t gjithe keto raste, nj proes i ri sht krijuar duke patur nj proes
ek'istnt qe ek'ekuton thirrjen sistem pr krijimin e nj proesi. ,i proes mund t jet
nj proes user i ek'ekutushem ose nj proes sistem i futur nga tastjera ose mouse, ose
nj bat$h manager proess. ,jo $fare bejne keto proese sht se ek'ekuton nj thirrje
sistem pr t krijuar nj proes t ri. )jo thirrje sistem i kerkon sistemit operati" t krijoj
nj proes t ri, qe tregon ne menyre direkt ose jo qe $ili program do t ek'ekutohet ne
t.
Ne +N6R ka "etm nj thirrje sistem pr t krijuar nj proes t riJ fork. )jo thirrje
krijon nj kopje ek'akt t proese"e thirres. !as fork, t dy proeset prind dhe femi,
kane t njjtn pamje ne memorie, t njjtat stringje dhe t njjtat open files. Ne
prgjithsi proesi femi, me pas ek'ekuton e%e$"e ose nj thirrje sistem t ngjashme qe
ndryshon pamjen e memories, dhe ek'ekuton nj program t ri. !r shembull, kur nj
user shtyp nj komande, say, sort to the shell, shell ndalon proesin femi dhe ker$en ne
femijen e ek'ekutushem. ,rsyeja pr proesin me dy hapa sht t lejoi femijet t
manipulojne deskriptorin e file"e pas fork por para e%e$"e pr t kryer riadresimin e
input#e"e standarte, output#e"e standarte dhe errore"e standarte.
Ne 3indows, ne kontrast, nj funksion i "etm 3in9H, *reate!roess, trajtohen t dyja
krijimi i proese"e dhe ngarkimi i programit korrekt ne proesin e ri. )jo thirrje ka &8
parametra, t $ilat prfshijne programin qe do t ek'ekutohet, parametrat komand line t
$ilat ushqejne at program, atribute t ndryshme sigurie, bite qe kontrollojne ne se open
files jane trasheguar, informa$ionet me prioritet, spe$ifikime pr dritaren qe do t krijohet
pr proesin (ne qoft se ka) dhe nj pointer i nj strukture ne t $ilen informa$ioni mbi
proesin e ri t krijuar i kthehet therritsit. !r t plotsuar *reate!roess, 3in9H ka rreth
&88 funksione t tjera pr mena%himin dhe sikroni'imin e proese"e dhe tma"e qe kane
lidhje.
1in e +N6R ashtu dhe ne 3indows, pasi proesi sht krijuar, t dy prindi dhe femija
kane hapsirat e tyre t adresa"e t ndara, edhe ne qoft se proesi ndryshon nj fjale ne
hapsiren e adresa"e, ndryshimet nuk jane t dukshme nga proeset e tjera. Ne +N6R,
fillimi i hapsires se adresa"e t femijes sht nj kopje e prindit, por aty jane prfshire dy
hapsira adresashI memoria e shkrueshme nuk sht e share#uar (ne disa implementime t
+N6R share#ohet programi te%t ndermjet t dy"e derisa ato t mos modifikohen). ?sht e
mundur gjithashtu pr krijimin e proese"e t reja t share#ohen disa nga krijuesit e tij,
burime t tjera si$ jane open files. Ne 3indows, hapsira e adresa"e t femije"e dhe
prinder"e jane t ndryshme nga fillimi.
H.&.9 Mbarimi i Proesit
!asi nj proes sht krijuar, ai fillon t ek'ekutohet dhe t kryej do detyre pr t $ilen
sht krijuar. 5jithsesi, asnj gje nuk 'gjat pr gjithmone as proeset. 2eret a "one
proeset e reja do t prfundojne, 'akonisht i takon nj nga kushtet e meposhtmeJ
&. =alje normale ("ullnetare)
2. )ur kemi error ("ullnetare)
3. 5jat nj errori fatal (jo "ullnetare)
4. >rasja nga nj proes tjetr ((jo "ullnetare)
1humi$a e proese"e prfundojne pasi e kane kryer detyren e tyre. )ur nj kompilator ka
kompiluar programin qe i sht dhene, kompilatori ek'ekuton nj thirrje sistem pr ti
treguar sistemit operati" qe ka prfunduar. )jo thirrje sht exit ne UNIX dhe
ExitProess ne WINDOWS. !rogramet s$reen#oriented gjithashtu mbshtsin mbylljet
"ullnetare. /jalet e proesore"e, 6nternet browser dhe programe t ngjashme kane
gjithmone ikona ose menu qe user#at mund t $li$k#ojne pr ti treguar proesit qe t
'h"endosi do file t prkohshem qe ka hapur dhe me pas ta prfundoj.
,rsyeja e dyt e mbylljes sht qe nj proes 'bulon nj error fatal. !r shembull, ne
qoft se nj user shtyp komandenJ
cc foo.c
pr t kompiluar programin foo.$ dhe jo disa file qe ek'istojne, kompilatori "etm sa
ek'iston. Ne prgjithesi proeset interakti"e s$reen#oriented nuk ek'istojne kur jepen
parametra t gabuar. Ne "end t tyre shfaqet nj bo% dialogu dhe i kerkon prdoruesit t
pro"oje dhe nj here.
,rsyeja e tret e mbylljes sht nj error i krijuar nga nj proes, 'akonisht kjo i takon nj
gabimi ne program. 1hembulli prfshin ek'ekutimin e nj instruksioni ilegal, duke iu
referuar nj memorie qe nuk ek'iston ose nj pjestimi me 'ero. Ne disa sisteme (pr
shembull.+N6R), nj proes mund ti tregoj sistemit operati" se ai deshiron ti trajtoje "et
disa error#e, raste ne t $ilat proesi sht sinjali'uar (interrupt) ne "end qe t prfundoj
kur ndodh gabimi.
,rsyeja e katrt qe nj proes t prfundoj sht qe nj proes ek'ekuton nj thirrje
system duke i thene sistemit operati" qe t "rasi ndonj proes tjetr. Ne +N6R kjo
thirrje sht quajtur kill. /unksioni 36N9H korespondues sht Nerminat!roess. Ne t
dyja rastet "rasesi duhet t ket autori'imin e ne"ojshem pr t kryer "rasjen. Ne disa
sisteme, kur nj proes prfundon, si ne menyre "ullnetare dhe e kunderta, t gjithe
proeset qe krijoi "ritn menjehere. ,s uni% as windows nuk punojne ne ket menyre.
2.1.4 Hierarkia e Proeseve
Ne disa sisteme, kur nj proes krijon nj proes tjetr, proeset prind dhe femi
"a'hdojne t kene nj fare lidhje ndermjet tyre. !roesi femi mund t krijoi shume
proese t tjera, duke krijuar keshtu nj hirarki proesesh. Ndryshe nga bimet dhe kafshet
qe prdorin riprodhimin se%ual, nj proes ka "etm nj prind (por nj, dy ose me shume
femi).
Ne +N6R, nj proes dhe t gjithe femijet dhe pasardhesit e tij t mbledhur sebashku
formojne nj grup proesi. )ur nj user dergon nj sinjal neprmjet tastjeres, sinjali i
shprndahet t gjithe anetare"e t grupit t proese"e qe sht lidhur me tastjeren
('akonisht t gjithe proeset qe jane krijuar ne dritaren e fundit). Ne menyre indi"iduale
do proes mund t kapi sinjalin, ta injoroj at ose t marri "eprimin standtart, i $ili sht
pr tu "rare nga sinjali.
Nj tjetr shembull ne t $ilin hierarkia e proese"e luan rol sht ini$iali'imi i +N6R
kur hapet. Nj proes spe$ial, i quajtur init, sht present ne pamjen boot. )ur fillon t
ek'ekutohet, le%ohet nj file qe tregon sa terminale ka. (e pas ai "e$on nga nj proes t
ri pr do terminal. )eto proese presin pr dike t hyje ne sistem Elog inF. Ne qoft se
hyrja pati sukses, proeset ne hyrje ek'ekutojne nj shell pr t pranuar komandat. )eto
komanda mund t "ene ne pune shume proese, e keshtu me rradhe. )eshtu qe, t gjithe
proeset ne t gjithe sistemin i prkasin nj peme t "etme me init ne boot.
Ne kontrast, 3indows nuk ka ndonj kon$ept pr hierarkine e proese"e. N gjithe
proeset jane t barabart. >endi i "etm ne t $ilin ka nj di$ka t ngjashme me
hierarkine e proese"e sht kur krijohet nj proes, prindit i "endoset nj shenj spe$iale
(e quajtur handle) qe mund t prdori pr t kontrolluar femijen. 5jithsesi, sht e lire qe
kjo shenj t prdoret nga proese t tjera, keshtu neutrali'ohet hierarkia. !roeset ne
+N6R nuk mund t prjashtojne femijet e tyre.
2.1.5 Gjendja e Proeseve
Bdo proes sht nj njsi e "e$ant, qe ka program $ounter e tij dhe gjendjen e
brendshme, proeset 'akonisht kane ne"oje t bashkohen me proese t tjera. =isa
proese mund t gjenerojne disa output#e qe nj proes tjetr mund ti prdori pr input.
Ne komandat shellJ
cat chapter1 chapter2 chapter3 I grep tree
proesi i pare, ek'ekuton cat, lidh tre filet. !roesi i dyt, ek'ekuton grep, selekton t
gjithe rreshtat qe prmbajne fjalen ~tree. Ne "aresi t shpejtsise relati"e t dy
proese"e (e $ila "aret nga mardhenia komplekse e programe"e dhe sa kohe t *!+ ka
patur se$ilin prej tyre), mund t ndodhi qe grep t jet gati pr tu ek'ekutuar, por nuk ka
input qe presin pr t. ,i qendron i bllokuar pr sa kohe disa input t jene t
disponueshme.
)ur nj proes bllokon, ai "epron keshtu sepse logjikisht nuk mund t "a'hdoi, ne
menyre tipike sepse ai sht duke pritur pr nj input qe nuk sht i disponueshem
akoma. 5jithashtu sht e mundur pr proeset qe t jene ne menyre kon$eptuale gati dhe
t jene ne gjendje t ek'ekutohen dhe t ndalojne sepse sistemi operati" ka "endosur ti
$aktoj $pu nj proesi tjetr pr pak kohe. )eto dy kushte jane plotsisht t ndryshme. Ne
rastin e pare prjashtimi sht trasheguar ne problem (ju nuk mund t prdorni $ommand
line t userit pasi t jet shtypur). Ne rastin e dyt sht nj teknike e sistemit ( nuk ka
*!+ t mjaftueshme pr ti $aktuar do proesi nj proessor pri"at). Ne fig H.H ne
shohim nj diagrame gjendje qe tregon tre gjendje t proese"eJ
1. k'ekutimi (duke prdorur *!+ ne at moment )
2. 5ati (ndalon prkohsisht pr t lejuar nj proes tjetr t ek'ekutohet)
3. ;llokuar (e ndaluar t ek'ekutohet derisa t ndodhin disa ngjarje t jashtme)
-logjikisht, t dy ngjarjet e para jane t gjashme. Ne t dyja rastet *!+ sht e gatshme
pr tu ek'ekutuar, "etm e dyta, nuk ka prkohsisht nj *!+ t disponueshme pr t.
5jendja e tret sht e ndryshme nga dy t parat, ne t proesi nuk mund t ek'ekutohet
edhe pse *!+ mund t mos ket asnj gje tjetr pr t bere.
!r keto tre gjendje jane t mundshme katr tran'i$ione, si$ tregohetJ
ig2,2 Nran'i$ionet ndermjet gjendje"e t proesit
1. !roese t bllokuar pr input
2. 1keduleri merre nj proes tjetr
3. 1keduleri merre ket proes
4. 6nputet behen t disponueshme
Nran'i$ioni & ndodh kur nj proes 'bulon qe nuk mund t "a'hdoi. Ne disa sisteme
proesi mund t ek'ekutohet nga nj thirrje sistem, si$ jane blo$k dhe pause, pr t hyre
ne gjendjen e bllokuar. Ne sisteme t tjera, duke prfshire +N6R, kur nj proes le%on
nga nj pipe ose nga nj file spe$ial (pr shembull. nj terminal) dhe nuk ka input t
disponueshme, proesi sht i bllokuar automatikisht.
Nran'i$ionet H dhe 9 jane shkaktuar nga proesi i skedulimit, nj pjese e sistemit operati",
pa proesin madje duke ditur mbi t. Nra'i$ioni i dyt ndodh kur skeduleri "endos t
ek'ekutoj proese qe kerkojne nj kohe t gjat, dhe sht koha pr t lejuar nj proes
tjetr t prdori *!+#ne. Nran'i$ioni i tret ndodh kur proeset e tjera kane share#uar ne
menyre t drejt dhe sht koha qe proesi i pare t prdori *!+ pr tu ek'ekutuar dhe
nj here. 1ubjekti i skedulimit, sht qe t "endosi se $ili proes do t ek'ekutohet kur
dhe pr sa kohe, sht i rendsishemI pr ket do t flasim me "one ne ket kapitull.
1hume algoritma jane ideuar pr t balan$uar duke konkuruar kerkesat me efi$ense pr
sistemit si nj i tre dhe pr proeset ne "e$anti. Ne do t studiojme disa prej tyre me
"one ne ket kapitull.
Nran'i$ioni M ndodh kur nj ngjarje e jashtme pr t $ilen nj proes ka pritur t ndodhi.
Ne qoft se ne at moment nuk sht duke u ek'ekutuar ndonj proes tjetr, tran'i$ioni 9
mund t akti"i'ohet dhe proesi mund t filloi ek'ekutimin. Ne t kundert do i duhej t
priste ne gjendjen gati pr pak kohe derisa *!+ t jet e disponueshme dhe t "ij rradha e
tij.
=uke prdorur modelin proes, sht me e thjesht t kuptohet se $fare ndodh brenda nj
sistemi. =isa proese ek'ekutojne programe qe marrin komanda nga nj user. !roese t
tjera jane pjese e sistemit dhe handle task si$ jane ek'ekutimi i kerkesa"e pr sherbimin e
file#"e ose mena%himi i detaje"e t ek'ekutimit t disqe"e ose tape dri"e. )ur nj disk
dergon nj interrupt, sistemi merr nj "endim pr t ndaluar ek'ekutimin e proesit qe
sht duke u ek'ekutuar dhe ek'ekuton proesin disk, i $ili ishte bllokuar duke pritur pr
interrupt. )eshtu qe ne "end qe t mendojme rreth interrupt#"e, ne mund t mendojme
rreth proese"e user, proese"e terminal, proese"e disk e keshtu me rradhe, t $ilt
bllokohen kur jane duke pritur qe di$ka t ndodhi. )ur nj disk sht le%uar ose karakteri
i shtypur, proesi qe sht duke pritur pr t sht unblo$k dhe sht ne gjendje t
ek'ekutohet prseri.
Nga kjo pikpamje i jepet nj kuptim figures H#9. )etu ni"eli me i ulet i sistemit operati"
sht skeduleri, me nj "aria$ion ne proesesh ne krye t saj. N gjithe trajtimet dhe
detajet e nisjes dhe stopimit t proese"e jane t fshehura ne at qe quhet skeduler, i $ili
nuk sht ndonj kod i madh. !jesa tjetr e sistemit operati" sht i strukturuar ne formen
e proese"e. 1hume pak sisteme reale jane t strukturuar ne ket forme.
!roeset
ig2,! 1htresa
me e ulet e
struktures proes
ne sistemin operati" trajtimi i interrupte"e dhe skedulimit. (bi shtresat jane proeset
sekuen$iale.

2.1.6 Implementimi i Proeseve
!r t implementuar modelin proes, sistemi operati" prmban nj tabele t quajtur
tabela proes, me nj hyrje pr proes. (=isa autor i quajne keto hyrje proess control
blocks). )eto hyrje prmbajne informa$ione rreth gjendjes se proese"e, program
$ounter i tij, sta$k pointer, "endodhjen ne memorie, gjendjen e open file#"e t tij,
skedulimi i informa$ionit dhe do gje tjetr rreth proese"e qe do t ruhen kur proesi
sht swit$h nga gjendjet ek'ekutim, gati ose bllokuar ne menyre t tille qe t ristarohet
me "one sikur t mos ishte ndaluar asnjehere.
/igura H#M tregon disa nga fushat me t rendesishme t nj sistemi tipik.
8 & _ n#H n#&
1keduler
Menaxhusi I proeseve
.egjistrat
!rogram $ounter
!rogram status word
1ta$k pointer
5jendja proesit
!rioriteti
!arametrat e skedulimit
6= proesit
!roesi prind
5rupi proesit
1injalet
)oha kur starton nj proes
)oha e prdorimit t *!+
)oha e prdorimit t *!+ nga
femijet
)oha e alarmit pasardhes
Menaxhusi I
memories
!ointeri ne te%t
segment
!ointeri ne data
segment
!ointeri ne sta$k
segment
Menaxhusi I file-ve
=irektoria root
=irektoria e punes
/ile des$riptors
+ser 6=
5rup 6=
ig 2,(. =isa nga fushat e nj tabele tipike proes entry
/usha ne kolonen e pare lidhet me mena%himin e proese"e. =y kolonat e tjera lidhen me
mena%himin e memories dhe mena%himin e file"e. =uhet t "ihet re me saktsi $ila fushe
e tabeles se proese"e ka "aresine ma% nga sistemi, por kjo figure jep nj ide t
prgjithshme rreth llojit t informa$ionit t ne"ojshem.
Nani le ti hedhim nj sy tabeles se proese"e, sht e mundur t shpjegohet pak me
shume rreth ilu'ionit t shume proese"e sekuen$iale qe prmbahen ne nj makine me
nj *!+ dhe shume paisje 6/:. -idhur me do klase t paisje"e 6/: (floppy disk, hard
disk, timers, terminale) sht nj "endodhje e quajtur interrupt "e$tor. ,i prmban
adresen e pro$edures se sherbimit t inerrupt"e. 1upo'ojme qe proesi user 9 po
ek'ekutohet kur ndodh nj interrupt nga disku. !rogram $ounter i proesit t 9 user,
program status word dhe mundesisht nj ose me shume regjistra jane futur ne sta$k nga
nj interrupt hardware. (e pas kompjuteri ker$en ne adresen e spe$ifikuar ne disk
interrupt "e$tor. )jo sht e gjitha qe behet ne hardware. <e ketej e tutje pro$edurat e
sherbimit t interrupt#it kryhen ne ni"elin software.
N gjithe interrup#et nisin duke ruajtur regjistrat, 'akonisht ne tabelen e proese"e pr
hyrje t proesit t fundit. (e pas informa$ioni i futur ne sta$k nga interruptet sht
'h"endosur dhe sta$k pointeri sht "endosur t pointoi ne nj sta$k t prkohshem t
prdorur nga mena%huesi i proese"e.
>eprime t tilla si ruajtja e regjistra"e dhe "endosja e sta$k pointerit nuk mund t
shprehen ne gjuhe t ni"elit t lart si$ sht *, keshtu ato ek'ekutohen nga nj gjuhe
rutine e ni"elit t ulet assembly, 'akonisht prdoret e njjta gjuhe pr t gjithe interruptet
pr sa kohe ruajtja e regjistra"e sht identike, nuk ka rendesi nga $fare jane shkaktuar
interruptet.
)ur kjo pro$edure prfundon, thirret nj pro$eure * qe kryen t gjithe punen e mbetur pr
nj interrupt t spe$ifikuar. (Ne supo'ojme qe sistemi operati" sht i shkruar ne *, kjo
sht nj 'gjidhje e 'akonshme pr t gjithe sistemet operati"e reale). !asi ka kryer
detyren e tij, duke bere t mundur qe disa proese t jene gati, skeduleri thirret pr t
pr$aktuar kush sht pasardhesi qe do t ek'ekutohet. !as saj , kontrolli i kalon kodit ne
gjuhen assembler pr t ngarkuar regjistrat dhe hartn e memories pr proesin aktual
dhe t filloi ek'ekutimin e tij. (ena%huesit e interrupte"e dhe skedulimi jane pembledhur
ne /ig.H#7. >ihet re mire qe detajet ndryshojne disi nga nj sistem ne tjetrin.
1. 2ardware sta$ks program $ounter, etj.
2. Ngarkimi hardware program $ounter t ri nga interrupt "e$tor.
9. !ro$edura e gjuhes assembler ruan regjistrat.
4. !ro$edura e gjuhes assembler "endos sta$k t reja.
5. !ro$edura e interrupte"e ne * "epron (le%on dhe fut ne buffer input#tt )
6. 1keduleri "endos $ili sht proesi pasardhes pr tu ek'ekutuar.
7. !ro$adura * i rikthehet kodit assembler.
8. !ro$edura e gjuhes assembler fillon nj proes t ri.
ig 2,+. 1keleti i asaj $fare bn ni"eli i ulet i sistemit operati" kur ndodh nj interrupt
2.2 THREADE-t
Ne sistemet tradi$ionale operati"e, do proes ka nj hapesire adresash dhe nj thread
kontrolli. (egjithat ka shume situata ku sht e ne"ojsheme t ket shume thread#e
kontrolli ne t njjtn hapesire adresash qe ek'ekutohen ne menyre gati paralele, si t
ishin proese t ndare.
2.2.1 MODELI I THREAD-it
(odeli i proesit si$ kemi diskutuar deri tani sht i ba'uar ne dy kon$epte t pa"arurJ
grupimi i burime#e ,he ekBekutimi.
Nj menyre pr ta pare nj proes sht ajo e nj menyre grupimi burimesh t lidhur me
njri#tjetrin. Nj proes ka nj hapesire adresash qe prmban nj program tekst dhe t
dhena, si dhe burime t tjera. )eto burime mund t prmbajne file, proese femije,
alarme, sinjale mena%himi etj. =uke i "endosur bashke ne formen e nj proesi, ato mund
t mena%hohen me leht.
)on$epti tjetr i nj proesi sht ai i nj thread#i ne ek'ekutim. Nhread#i ka nj program
$ounter qe shenjon ne instruksionin pasardhes. ,i ka nj regjistr i $ili mban "ariablat t
$ilat po prdoren. )a nj stak i $ili mban historine e ek'ekutimit. (egjithese thread#i
ek'ekutohet ne nj proes t $aktuar, thread#i dhe proesi jane kon$epte t ndryshme dhe
duhet t trajtohen "e$mas njri#tjetrit. !roeset prdoren pr t grupuar burimet bashkeI
thread#et jane entitetet qe prdoren pr ek'ekutim ne *!+.
,jo $fare thread#et i shtojne modelit t proesit sht fakti se lejojne shume ek'ekutime
ne t njjtn hapesire t proesit. =uke pasur shume thread#e qe punojne ne paralel ne nj
proes sht analoge si t kemi shume proese qe punojne ne paralel ne nj kompjuter.
Nhread#et ndajne t njjtn hapesire adresash, file dhe burime t tjera. 5jithashtu ato
ndajne memorjen fi'ike, disqet, printerat etj. (eqe thread#et kane disa karakteristika si t
proese"e ato shpesh quhet proese ElightweightF. Nermi multithreading prdoret pr t
prshkruar shume thread#e ne nj proes t "etm.
Ne /ig. H#D(a) shohim tre proese. 1e$ili proes ka hapesiren e tij t adresa"e dhe nj
thread t "etm kontrolli. Ne ndryshim ne /ig. H#D(b) ne kemi nj proes t "etm me tre
thread#e kontrolli. (egjithese ne t tre rastet kemi nga tre thread#e kontrolli, ne /ig H#D(a)
do njri prej tyre "epron ne hapesira t ndryshme adresash, ndersa ne /ig H#D(b) t tre
ndajne t njjtn hapesire adresash.
Figura 2-6 (a) Nre proese se$ili me nj thread t "etm. (b) Nj proes me tre thread#e.
)ur nj proes me shume thread#e ek'ekutohet ne nj sistem me nj *!+, thread#et
ek'ekutohen sipas nj rradhe t $aktuar. Ne /ig. H#&, ne pame se si funksionont
multiprogramimi i proese"e. =uke kaluar nga njri proes ne tjetrin me shpejtsi t
madhe sistemi krijonte idene e shume proese"e qe ek'ekutohen ne paralel.
(ultithreading punon ne t njjtn menyre.
Nhread#et e ndryshem qe ndodhen ne nj proes t "etm nuk jane aq t pa"arur si$ mund
t ishin dy proese t ndryshme, kjo nenkupton qe ato ndajne t njjtat "ariabla globale.
(eqe do thread mund t aksesoje do adrese memorje brenda hapesires se adresa"e t
proesit, njri thread mund t le%oje, shkruaje ose t fshije fare stakun e nj thread#i
tjetr. Nuk ka asnj lloj mbrojtje midis thread#e"e sepse(&) sht e pamundur dhe (H)
nuk sht e nevojshme. Ndryshe nga proeset ku se$ili proes mund t jet prone e nj
prdoruesi t ndryshem dhe pr ket arsye ato mund t kundershtojen njri#tjetrin. Nj
proes i "etm sht gjithnj prone e nj prdoruesi t "etm i $ili mund t ket krijuar
disa thread#e ne t, t $ilt me siguri jane krijuar pr t bashkepunuar me njri#tjetrin. !r
"e$ se ndajne t njjtn hapesire adresash thread#et ndajne dhe t njjtn file, proese
femije, alarme, sinjale etj. si$ tregohet ne /ig. H#C. !randaj organi'imi sipas /ig H#D(a) do
t prdorej kur t tre proeset nuk kane lidhje me njri tjetrin, ndersa organi'imi sipas /ig
H#D(b) do t ishte i prshtashem kur t tre thread#et merreshin me t njjtn pune.
Figura 2-7. )olona e pare tregon disa nga gjerat qe ndahen nga thread#et ne nj proes.
)olona e dyt tregon disa nga gjerat qe jane pri"ate pr do thread.
1i nj proes tradi$ional ( proeset me nj thread), nj thread mund t jet ne nj nga
gjendjetJ duke u ek'ekutuar, i bllokuar, gati ose i prfunduar. Nj thread ne ek'ekutim po
prdor *!+ dhe sht akti". Nj thread i bllokuar pret pr ndonj ngjarje pr ta
'hbllokuar. !r shembull, kur nj thread kryen nj thirrje sistem pr t le%uar nga tastiera,
ai sht i bllokuar derisa t kemi input nga tastiera. Nj thread i bllokuar mund t prese
pr ndonj ngjarje pr tu 'hbllokuar ose pr ndonj thread tjetr pr ta 'hbllokuar. Nj
thread i gatshem sht pr'gjedhur pr tu ek'ekutuar dhe pret derisa ti "ij rradha.
Nran'i$ionet midis gjendje"e t thread#e"e jane t njjta si tran'i$ionet midis proese"e.
?sht pr tu theksuar se do thread ka stakun si$ tregohet ne /ig. H#L. 1taku i do thread#i
prmban nj frame pr do pro$edure t thirrur por qe akoma nuk sht kthyer prej saj.
)y frame prmban "ariablat lokale t pro$edures si dhe adresat e kthimit qe do prdoren
kur t ket mbaruar pune pro$edura. !r shembull, ne qoft se pro$edura R therret
pro$eduren ] dhe kjo e fundit therret pro$eduren @, ndersa @ po ek'ekutohet framet pr
R, ] dhe @ do t jene t gjitha ne stak. Bdo thread do t therras pro$edura t ndryshme
dhe pr rrjedhoje nj histori ek'ekutimi t ndryshme. )jo sht arsyeja pse thread#i do
stakun e tij.
)ur kemi rastin e multithreading, proeset normalisht fillojne me nj thread t "etm. )y
thread ka aftsine pr t krijuar thread#e t tjere duke thirrur nj pro$edure si$ sht,
threa,:create. Nj parametr i threa,:create 'akonisht spe$ifikon emrin e pro$edures
pr thread#in e ri qe do t ek'ekutohet. Nuk sht e ne"ojshme pr t spe$ifikuar asgje
rreth hapesires se adresa"e t thread#it t ri meqe ai ne menyre automatike ek'ekutohet ne
hapesiren e thread#it qe e krijoi. Ndonjehere thread#et kane nj lidhje hierarkike, lidhja
prind-femije, por shpesh kjo lloj lidhje nuk ek'iston, t gjithe thread#et jane t barabart.
(e ose pa nj lidhje hierarkike thread#i krijues kthehet ne nj thread identifikues i $ili i
"e emer thread#it t ri.
Figura 2-8 Bdo thread ka stakun e tij.
)ur nj thread ka prfunduar punen e tij, ai mund t therrase nj pro$edure, threa,:e&it.
,i me pas 'hduket dhe nuk mund t pr'gjidhet me. Ne disa sisteme thread#esh, nj
thread mund t prese pr nj thread tjetr pr t prfunduar, duke thirrur nj pro$edure
per shembull, threa,:"ait. )jo pro$edure bllokon threadin qe e ka thirrur derisa nj
thread tjetr ka prfunduar. Ne ket kend"eshtrim krijimi dhe prfundimi i thread#e"e
sht i ngjashem me krijimin dhe prfundimin e proese"e.
Nj tjetr thirrje thread sht edhe threa,:yiel,, e $ila e lejon nj thread qe t lere
*!+#ne ne menyre "ullnetare pr t lejuar nj thread tjetr pr tu ek'ekutuar. )jo lloj
thirrje sht e rendesishem pasi nuk kemi timesharing t detyruar i $ili gjeneron
interrupte qe krijojne "onesa. !randaj sht e rendesishem pr thread#et qe ta lene ne
menyre "ullnetare *!+#ne pr ti dhene shansin thread#e"e t tjere pr tu ek'ekutuar. =isa
thirrje t tjera lejojne nj thread pr t pritur pr nj thread tjetr pr t prfunduar punen,
lejojne nj thread pr t thene qe ai ka mbaruar nj pune etj.
Nga sa pame duket se thread#et jane shume t dobishem, por ato shfaqin shume probleme
ne modelin e programimit. )onsideroni efektt e thirrjes sistem ne +N6R fork . Ne se
proesi prind ka shume thread#e a duhet ti ket dhe femijaU (egjithat, ne qoft se
proesi femije merr po aq thread#e sa prindi i tij, $fare ndodh ne se nj thread tek prindi
ishte i bllokuar ne nj thirrje le%imi, pr shembull nga tastieraU , jane tani dy thread#e t
bllokuar pr le%imin nga tastieraU )ur nj rresht shkruhet a marrin t dy thread#et nj
kopje t sajU ,po merr "etm prindiU ,po "etm femijaU
Nj tjetr kategori problemesh lidhet me faktin se thread#et ndajne midis tyre shume
struktura t dhenash. *fare ndodh ne se nj thread mbyll nj file ndersa tjetri sht duke e
le%uarU 1upo'ojme se nj thread "e re se ka shume pak memorje dhe fillon t alokoje me
shume memorje. !or ndodh qe t kemi nj nderrim midis thread#e"e dhe pr pasoje, edhe
thread i ri "e re se ka pak memorje dhe fillon t alokoje dhe ai me shume memorje.
(emorja do t alokohet dy here. )eto probleme dhe shume t tjere duhen 'gjidhur duke
'gjedhur menyren e duhur t programimit t thread#e"e dhe t di'enjimit t tyre, ne
menyre qe programet qe prdorin multithreading t punojne ne menyre korrekte.
2.2.2 PRDORIMI I THREAD-eve
!asi kemi shpjeguar se $fare jane thread#et, sht koha pr t shpjeguar pse duhen
prdorur.
,rsyeja kryesore pse prdorim thread#et sht se ne shume aplika$ione, akti"itett brenda
tyre ek'ekutohen ne $ast. =isa nga keto akti"itet mund t bllokohen here pas here. =uke
e ndare nj aplika$ion t tille ne nj bashkesi thread#esh qe ek'ekutohen ne nj menyre
gati paralele, modeli i programimit behet me i thjesht.
*fare thame me sipr e kemi pare edhe me pare. ?sht e njjta arsye pse kemi proese.
Ne "end qe t mendojme pr interrupte, tajmera etj ne mund t mendojme pr proese qe
punojne ne paralel. >etm se tani me thread#et kemi di$ka t reJ aftsine e nj entitti pr
t ndare nj hapesire t $aktuar adresash me entitt t tjere, si dhe t gjithe t dhenat ne
ket hapsire adresash. )jo aftsi sht e rendesishme pr disa lloje t $aktuara
aplika$ionesh, kjo sht arsye se duke pasur shume proese (me hapesire adresash t
ndare) nuk do t funksionoje.
Nj argument i dyt pse kemi thread#e sht se meqe nuk ka asnj lloj burimi t lidhur
me to, jane me t leht pr tu krijuar dhe me pas shkatrruar se proeset. Ne shume
sisteme, krijimi i nj thread#i sht &88 here me i shpejt se krijimi i nj proesi.
,rgumenti i tret pse kemi thread#e ka t beje me prfoman$en. ,to nuk e rrisin
prfoman$en ne rast se ndodhen afer *!+ (sepse rreth *!+ "eprohet me shpejtsine e
saj). !randaj prdorimi i thread#"e sht i ndjeshem ne rritjen e performan$s se
aplika$ione"e kur prdoren pr shembull ne pajisjet 6V:.
1e fundmi, thread#et jane mjaft t "lefshem ne sistemet me shume proesore ku mund t
flitet pr nj paraleli'em real.
?sht me e leht pr t pare se pse thread#et jane t "lefshem duke dhene disa shembuj. 1i
shembull t pare supo'oni nj editor teksti. 1hume editor e paraqesin dokumentin e tyre
ne t njjtn menyre se si do t dukej kur ai t printohej. Ne "e$anti t gjithe ndarjet e
rrjeshta"e dhe ndarjet e faqe"e jane ne po'i$ionin e tyre t duhur ne menyre qe
prdoruesi mund ti shohe dhe ta ndryshoje dokumentin ne se duhet. 1upo'ojme se
prdoruesi po shkruan nj liber. Nga pikepmja e autorit sht me e thjesht pr ta pasur
librin si nj file t "etm, ne menyre qe modifikimet t behen me leht. Ne nj rast tjetr
mundet qe do kapitull t jet nj file me "et. !or mund t kemi edhe rastin qe do
seksion mund t jet nj file me "et, ne ket rast ndryshimet do t ishin shume t
"eshtira pasi do t ishin shume file pr tu ndryshuar.
Nani konsideroni rastin kur nj prdorues fshin nj fjali nga faqja & e nj dokumenti me
L88 faqe. !asi ka pare ndryshimin e bere prdoruesi do t bej nj tjetr ndryshim ne faqen
D88 dhe shkruan nj komand ku i kerkon editorit t tekstit t shkoje ne at faqe. ditori i
teksit duhet t riformatoje t gjithe librin deri tek faqja D88, pasi ai nuk e di se $ili sht
rreshti i pare tek faqja D88, pa i pare t gjithe faqet deri tek D88. (und t ket nj "one se
deri sa t shfaqet faqa D88, kjo mund t sjelli qe prdoruesi t jet i pakenaqur me
sherbimin e ofruar.
Ne ket pike thread#et mund t ndihmojne. 1upo'ojme se editori i tekstit sht i
kon$eptuar si nj program me dy thread#e. Njri nder"epron me prdoruesin, ndersa tjetri
merret me riformatimin e dokumentit. Ne momentin qe nj rresht sht fshire ne faqen e
pare, thread#i qe nder"epron me prdoruesit i thot thread#it tjetr t riformatoje t gjithe
librin. (e pak fat riformatimi mund t behet me pare se prdoruesi t kerkoje t shohe
faqen D88, ne menyre qe ajo t shfaqet menjehere kur t kerkohet nga prdoruesi.
(eqe jemi pse mos t shtojme nj thread t tretU 1hume editore teksti kane aftsine e
ruajtjes se informa$ionit ne disk do disa minuta ne menyre automatike ne menyre qe ta
mbrojne prdoruesin qe ta ruaje punen e tij dhe t mos rre'ikohet nga nj problem i
sistemit, mungese energjie elektrike etj. Nhread#i i tret mund t merret me ba$kup#et e
diskut pa nderhyre tek dy thread#et e tjere. 1ituata me tre thread#e jepet ne /ig. H#G.
Figura 2-9 Nj editor teksti me tre thread#e.
Ne se programi do t ishte me nj thread t "etm, athere sa here do t behej nj ba$kup
ne disk, komandat nga tastiera apo mouse do t injoroheshin derisa t prfundonte
ba$kup#i. (e tre thread#e modeli i programit sht me i thjesht. Nhread#i i pare
nder"epron me prdoruesin. 6 dyti riformaton dokumentin kur i kerkohet. Ndersa i treti
ruan dokumentin ne menyre periodik ne disk.
=uhet t jet e qart se ne qoft se kemi tre proese t ndare nuk do t funksionont,
sepse duhet qe t tre thread#et t punojne ne t njjtin dokument. =uke pasur tre thread#e
ne "end t tre proese"e, ato ndajne t njjtn memorje dhe keshtu kane akses ne
dokumentin qe po editohet.
-e t shohim nj shembull tjetr ku thread#et jane t dobishemJ nj ser"er pr site 3orld
3ide 3eb. )erkesat pr faqe shkojne ne ser"er dhe faqet e kerkuara i dergohen klientit.
Ne shume site disa faqe jane me t kerkuara se faqet e tjera. 3eb ser"erat e prdorin ket
fakt pr t prmiresuar performan$en duke mbajtur ato faqe qe aksesohen me shume ne
memorjen kryesore duke mos pasur ne"oje t kontrolloje diskun kur kerkohen keto faqe.
Nj menyre pr t organi'uar nj 3eb ser"er jepet ne /ig. H#&8(a). )etu njri thread,
dispat$her#i, le%on kerkesat qe "ine nga rrjeti. !asi ek'aminon kerkesen ai pr'gjedh nj
thread EpunetorF i $ili sht ne gjendje t bllokuar, e kalon ne gjendjen gati dhe i jep atij
kerkesen.
)ur thread#i merr kerkesen ai sheh ne memorjen kryesore, ne t $ilen t gjithe thread#et
kane akses, ne se faqja e kerkuar ndodhet aty. Ne se jo ai starton nj opra$ion le%imi pr
ta marre faqen nga disku dhe bllokohet derisa kerkesa e tij t plotsohet. )ur thread#i
bllokohet gjat kohes se le%imit t diskut, nj thread tjetr 'gjidhet pr tu ek'ekutuar, me
shume mundesi dispat$her#i.
Figura 2-10. Nj 3eb ser"er multithread.
)y model e lejon ser"erin t shkruhet si nj grup thread#esh sekuen$ial. !rogrami i
dispat$her#it konsiston ne nj $ikel t pafundem pr t marre nj kerkese dhe pr tOia
deleguar nj thread#i tjetr. )odi i ketyre thread#e"e konsiston ne nj $ikel t pafundem
pr t marre nj kerkese nga dispat$her#i dhe pr t pare ne se faqja ndodhet ne memorjen
kryesore. Ne se po, faqja i dergohet klientit, thread#i bllokohet dhe pret pr nj kerkese
tjetr. Ne se jo, thread#i e merr faqen nga disku, ia dergon klientit dhe me pas bllokohet
ne pritje t nj kerkese tjetr.
Ne "ija t trasha kodi i prdorur jepet ne /ig.H#&&. )etu, si ne t gjithe librin, A;E?
prfaqeson konstantn &. 5jithashtu, buf dhe page jane struktura t prshtatshme pr t
mbajtur respekti"isht nj kerkese dhe nj faqe 3eb#i.
Figura 2-11. Nj linj kodi pr /ig. H#&8. (a) Nhread#i dispat$her. (b) Nhread#i EpunetorF.
(endoni se si mund t punonte 3eb ser"eri ne mungese t thread#e"e. Nj mundesi
sht qe ai t punonte si nj thread i "etm. *ikli kryesor i 3eb ser"erit merr nj kerkese,
e ek'aminon, e plotson kerkesen por pa qene i aft t marre nj kerkese tjetr gjat kesaj
kohe. )jo gje $on ne nj ulje t performan$s.
=eri tani kemi pare nj dy mundesi di'enjimiJ nj 3eb ser"er multithread dhe nj 3eb
ser"er i trajtuar si nj thread i "etm. 1upo'ojme se kur nj kerkese "jen nj thread i
"etm e ek'aminon at, ne se faqja e kerkuar ndodhet ne memorjen kryesore ai ia dergon
klientit, ne se jo nis nj opra$ion le%imi disku pa e bllokuar thread#in.
1er"eri ruan gjendjen e kerkeses ne nj tabele dhe me pas shkon dhe trajton ngjarjen
tjetr. Ngjarja tjetr mund t jet nj kerkese pr nj pune t re ose nj prgjigje nga disku
pr nj opra$ion t meparshem. Ne se sht nj pune e re, puna fillon. Ne se sht nj
prgjigje nga disku, athere informa$ioni prkats merret nga tabela dhe prgjigja
"a'hdon.
Ne ket lloj menyre kon$eptimi, modeli sekuen$ial i proese"e qe kishim ne dy rastet e
pare humbet. 5jendja e prpunimit t kerkesa"e ruhet ne menyre ekspli$it ne tabele sa
here qe ser"eri kalon nga nj kerkese ne tjetren. (e fjale t tjera ne po simulojme thread#
et dhe staket e tyre. Nj di'enjim i tille ne t $ilen do "eprim ka nj gjendje e $ila ruhet
dhe prjashton disa ngjarje qe mund t ndryshojne gjendjen quhet finit-state-machine.
Nani duhet t jet e qart ajo se $fare mund t ofrojne thread#et. ,to bejne t mundur
ruajtjen e idese se proese"e sekuen$ial qe rrisin dukshem prforma$en. 1er"erat me nj
thread t "etm prdorin thirrjet bllokuese po lene pr t deshiruar ne performan$e.
(enyra e tret arrin performan$e t lart neprmjet paraleli'mit por prdor thirrje jo#
bllokuese dhe interrupte, por jane t "eshtire pr tu programuar. )eto modele
prmblidhen ne /ig. H#&H.
Figura 2-12. Nre menyrat pr t ndertuar nj ser"er.
Nj shembull i tret ne t $ilen thread#et jane t dobishem jane aplika$ionet qe do
prpunojne sasi t madha t dhenash. (enyra me e thjesht sht t le%osh ne nj bllok t
dhenash, ta prpunosh at e me pas ta shkruash serisht. !roblemi ketu qendron ne faktin
se ne se "etm thirrjet bllokuese jane t "lefshme, proesi bllokohet nderkohe qe t
dhenat shkojne e "ine. Ne ket menyre *!+ mbetet pa pune nderkohe qe ka shume t
dhena qe duhen prpunuar. )jo menyre nuk sht e le"erdiseshme prandaj duhet e"ituar
ne se sht e mundur.
Nhread#et ofrojne nj 'gjidhje. !roesi strukturohet me nj thread ne hyrje, nj thread
prpunues dhe nj thread ne dalje. Nhread#i i hyrjes le%on t dhenat nga nj buffer i
hyrjes. Nhread#i prpunues merr t dhenat nga bufferi i hyrjes, i prpunon dhe "endos
re'ultatin ne nj buffer dales. ;ufferi i daljes i shkruan keto re'ultate ne disk. Ne ket
menyre, hyrja, dalja, dhe proesimi behen ne t njjtn kohe.
2.2.3 IMPLEMENTIMI I THREAD-eve NE USER SPACE
)a dy menyra pr t implementuar paketat e thread#e"eJ ne user space dhe ne kernel.
5jithashtu edhe nj implementim hibrid sht i mundshem. Nani do prshkruajme keto
metoda, me a"anta'het dhe disa"anta'het e tyre.
(etoda e pare sht "endosja e t gjithe pakets se thread#e"e ne user spa$e. )erneli nuk
ka asnj informa$ion rreth tyre. ,"anta'hi i pare dhe me i dukshem sht se ne ni"elin
user mund t implementohet paketa e thread#e"e edhe ne ato lloj sistemesh operati"e qe
nuk i suportojne thread#et.
N gjitha keto implementime kane t njjtn strukture e $ila ilustrohet ne /ig. H#&9(a).
Nhread#et ek'ekutohen ne pjesen e siprme t nj sistemi run-time, i $ili sht nj
koleksion pro$edurash qe mena%hojne thread#et. Ne kemi pare katr prej tyreJ
threa,:create- threa,:e&it- threa,:"ait- threa,:yiel,, por 'akonisht ka me shume.
)ur thread#et mena%hohen ne user spa$e, do proesi i duhet tabela e tij e thread#e"e ne
menyre qe kontrolloje keta t fundit. )jo tabele sht analoge me tabelen e proese"e qe
ndodhet ne kernel, ajo kontrollon program $ounter#in, stak pointerin, regjistrat, gjendjen,
etj. Nabela e thread#e"e mena%hohet nga sistemi run#time. )ur nj thread kalon ne
gjendjen gati ose t bllokuar, informa$ioni qe duhet pr ta ristaruar ndodhet ne tabelen e
thread#e"e, ne t njjtn menyre se si kerneli ruan informa$ionin pr proesin ne tabelen
e proese"e.
Ne se thread#i bn di$ka qe mund ta bllokoje ai therret nj pro$edure t sistemit run#time.
)jo pro$edure sheh ne se thread#i duhet t "endoset ne gjendjen e bllokuar. Ne se po, ajo
ruan regjistrin e thread#it ne tabelen e thread#it, shikon ne tabele pr nj thread t gatshem
pr tu ek'ekutuar dhe i ringarkon regjistrat e makines me "lerat e reja t thread#it. =erisa
stak pointeri dhe program $ounteri t jene nderruar, thread#i i ri "jen ne jet ne menyre
automatike. Ne se makina ka nj instruksion pr t ruajtur t gjithe regjistrat dhe nj tjetr
pr ti ngarkuar prseri t gjithe, i gjithe nderrimi i thread#e"e mund t behet me pak
instruksione. ;erja e nderrimit t thread#e"e ne ket menyre sht shume here me e
shpejt se sa do t ishte ne se threade#et do t ndodheshin ne kernel dhe sht nj
argument shume i fort ne fa"or t paketa"e t threade#e"e ne user spa$e.
Figura 2-13. (a) !aketa e thread#"e ne user spa$e.(b) Nj paket thread#esh e mena%huar
nga kerneli.
(egjithat ka nj ndryshim esen$ial me proeset. )ur nj thread mbaron se ek'ekutuari,
per shembull, kur therret pro$eduren threa,:yiel,, kodi i threa,:yiel, ruan informa$ionin
e thread#it ne tabelen e thread#e"e. (e pas mund t therrase thread#in sche,uler ne
menyre qe t pr'gjedhe nj thread tjetr pr tu ek'ekutuar. )ur nj thread mbaron se
ek'ekutuari, pr shembull kur therret pro$eduren threa,:yiel,, kodi i thread`yield ruan
informa$ionin e thread#it ne tabelen e thread#e"e.
!ro$edurat qe ruajne gjendjen e thread#it dhe s$hedulerin jane pro$edura lokale, prandaj
thirrja e tyre sht me efi$ente se sa t besh nj thirrje kernel. !ra nuk ek'ekutohet asnj
instruksion EtrapF . )jo e bn pr'gjedhjen e thread#e"e shume t shpejt.
Nhread#et ne ni"elin user kane edhe disa a"anta'he t tjere. ,to lejojne do t proes t
ket algoritmin e tij t s$hedulimit t prshtatur sipas ne"oja"e t tyre. !r disa
aplika$ione fakti se nuk mund t shqetsohen ne se nj thread ndalohet ne nj moment t
$aktuar sht nj plus.
=uke lene menjane performan$en e tyre t mire, thread#et ne ni"elin e userit kane disa
probleme t medha. 1e pari, problem sht implementimi i thirrje"e bllokuese t sistemit.
1upo'oni se nj thread le%on nga tastiera me pare se nj tast sht shtypur. ?sht e
palejueshme ne se e lejojme thread#in t beje nj thirrje sistem, pasi do t kishim nj
bllokim t thread#e"e t tjere.
Nhirrjet sistem duhet t jene t gjitha jo#bllokuese, por kjo kerkon ndryshim ne sistemin
operati". !astaj nj nga argumentt qe prdoreshin thread#et ne user spa$e ishte fakti se
ato implementoheshin ne sistemet operati"e qe ek'istojne, dhe jo ne to qe duhen
modifikuar. !lus ne rast se ndryshohet sistemi operati" duhen ndryshuar edhe shume
programe t prdorues"e.
Nj alternati"e tjetr sht e mundshme. Ne se arrijme qe t pr$aktojme me pare ne se
nj thirrje do bllokoje ose jo. Ne disa "ersione t +N6R, nj thirrje sistem pr'gjedh
daljet (select), kjo lejon thirresin t tregoje ne se nj kerkese pr le%im do bllokohet ose
jo. )ur behet kjo thirrje, pro$edura rea, e librarise mund t 'e"endesohet me nj t re qe
ne fillim bn nj thirrje select- dhe me pas le%on ne se sht e sigurt. )jo gje kerkon
rishkrimin e nj pjese t librarise se thirrje"e sistem. )odi i "endosur rreth thirrjes sistem
pr t bere kontrollimin quhet jacket ose wrappr.
!ak a shume i ngjashem me problemin e thirrje"e bllokuese t sistemit sht edhe ai i
page fault. !ra kur faqja e kerkuar duhet t merret nga disku. !roesi bllokohet ndersa
faqja e kerkuar gjendet dhe le%ohet. Ne se nj thread shkakton nj page fault, kerneli,
edhe pse nuk di gje pr ek'isten$n e thread#it, bllokon t gjithe proesin derisa kerkesa
pr le%imin nga disku t kompletohet.
Nj tjetr problem qe haset me thread#et qe implementohen ne user spa$eJ ne se nj
thread fillon t ek'ekutohet, asnj thread tjetr ne at proes nuk do t ek'ekutohet ne se
thread#i i pare nuk e le ne menyre "ullnetare *!+#ne. ;renda nj proesi t "etm, nuk
ka interrupte $lo$k#u, duke bere t mundur pr'gjedhjen e proese"e me rradhe (round
robin).
Nj mundesi 'gjidhje pr thread#et qe ek'ekutohen pafundesisht sht duke bere sistemit
run#time t kerkoje nj sinjal $lo$k#u ( interrupt) do $ast t $aktuar kohe pr t dhene
kontrollin, por edhe kjo menyre sht e "eshtire pr tu programuar. 6nterruptet periodik
ne nj frekuen$e t lart nuk jane gjithmone t mundeshme, edhe ne se do t ishin,
o"erhead#i total do t ishte i konsiderueshem. !or edhe thread#i mund t doje nj interrupt
$lo$k#u qe mund t intrferoje me prdorimin e sistemit run#time t $lo$k#ut.
,rgumenti kryesor kunder thread#e"e ne user spa$e sht se programuesit 'akonisht i
duan thread#et pikerisht ne aplika$ionet ku thread#et bllokohen shpesh, pr shembull ne
nj 3eb ser"er. )eto thread#e bejne thirrje sistem t "a'hdueshme. )ur ndodh nj
instruksion EtrapF ne kernel pr tu marre me thirrjen sistem, kerneli merret me
nderrimin e thread#e"e, ne se thread#i me i "jetr sht i bllokuar, ne se lejohet kerneli pr
t bere ket gje eliminohet ne"oja pr t bere thirrje sistem select, t $ilat kontrollojne ne
se thirrjet sistem pr le%im jane t sigurta ose jo. !r aplika$ione qe 'h"illohen rreth
*!+#se dhe qe bllokohen shume rralle nuk sht e ne"ojshme prdorimi i thread#e"e.
2.2.4 IMPLEMENTIMI I THREAD-eve NE KERNEL
Nani le t mendojme se pr mena%himin e thread#e"e merret kerneli. Nuk duhet asnj lloj
sistemi run#time si$ tregohet ne /ig. H#&9(b). 5jithashtu nuk ka asnj lloj tabele thread#
esh ne do proes. Ne "end t kesaj, kerneli ka nj tabele thread#esh me ane t t $ilit
kontrollon t gjithe thread#et ne sistem. )ur nj thread kerkon t krijoje nj thread t ri
ose t shkatrroje nj t "jetr, ai bn nj thirrje ne kernel e $ila ek'ekuton kerkesen e
thread#it duke ndryshuar tabelen e thread#e"e.
Nabela e thread#e"e qe ndodhet ne kernel mban regjistrat, gjendjen dhe informa$ione t
tjera ne lidhje me thread#et. )y infoma$ion sht nj shtese e informa$ionit qe kernelat
tradi$ionale mbajne ne lidhje me proeset me nj thread t "etm.
N gjitha thirrjet qe mund t bllokojne nj thread jane implementuar si thirrje sistem. )ur
nj thread bllokohet, kerneli mund t ek'ekutoje ose nj thread tjetr nga i njjti proes,
ose nj thread nga nj proes tjetr. (e thread#et ne user spa$e sistemi run#time
ek'ekutont "etm thread#e nga i njjti proes derisa kerneli i merrte prdorimin e *!+#
se.
!r shkak t kostos se lart t krijimit dhe t shkatrrimit t thread#e"e ne kernel, disa
sisteme i EricikljoneF thread#et e tyre. )ur nj thread shkatrrohet, ai shenjohet si i
paek'ekutueshem, por struktura e tij e t dhena"e qe ndodhet ne kernel nuk preket. (e
"one, kur nj thread i ri duhet t krijohet, nj i "jetr riakti"i'ohet, duke mos har%huar
shume kohe. .i$iklimi i thread#e"e sht gjithashtu i mundshem pr thread#et ne user
spa$e, por meqe koha e $ila fitohet sht me e "ogel, berja e ri$iklimit nuk sht efekti"e.
Nhread#et ne kernel nuk kerkojne thirrje sistem jo#bllokuese. Ne se nj thread ne nj
proes shkakton nj page fau%t, kerneli e ka t thjesht t shohe ne se proesi ka ndonj
thread tjetr t ek'ekutueshem, ne se jo faqja merret nga disku. =isa"anta'hi kryesor
sht se kostoja e thirrje"e sistem sht e konsiderueshme, o"erhead#i sht i madh.
2.2.5 IMPLEMENTIMET HIBRIDE
Aane pare shume menyra pr t kombinuar a"anta'het e t dy menyra"e pr t
implementuar thread#et. Nj menyre sht prdorimi i thread#e"e ne kernel e me pas
multipleksimi i thread#e"e ne user spa$e ne disa ose ne t gjithe thread#et kernel si$
tregohet ne /ig.H#&M.
Figura 2-14 (ultipleksimi i thread#e"e t user spa$e ne thread#et kernel.
Ne ket di'enjim, kerneli sht i "etdijshem "etm pr thread#et kernel dhe i pr'gjedh
ato. =isa prej tyre mund t kene shume thread#e user t multipleksuara, keto thread#e
(user) ek'ekutohen sipas nj rradhe t $aktuar.
2.2.6 AKTIVIZIMET E SCHEDULERIT
1hume kerkues jane prpjekur pr t kombinuar a"anta'het e thread#e"e ne ni"elin user
me a"anta'het e thread#e"e ne ni"elin kernel. (e posht do t shohim nj prpjekje pr t
bere nj gje t tille dhe quhet akti#iBimet e sche,ulerit.
<ellimet e akti"i'imit t s$hedulerit jane t imitojne funksionet e thread#e"e kernel por
me prforma$e me t mire dhe fleksibilitt me t lart, 'akonisht me paketat e thread#e"e
t implementuara ne user spa$e. Ne "e$anti, thread#et user nuk duhen t bejne thirrje
bllokuese spe$iale apo t shohe ne se sht e sigurt ne se bejme nj thirrje sistem apo jo.
fi$en$a arrihet ne se shmangen tran'i$ionet e pane"ojshme midis hapesires user dhe
kernel. 1istemi run#time i user spa$e mund t bllokoje thread#in sinkron dhe t
pr'gjedhe nj t ri nga ana e tij.
)ur prdoren akti"i'imet e s$hedulerit, kerneli i $akton nj numer t $aktuar proesoresh
"irtual pr do proes dhe lejon sistemin run#time qe t alokoje thread#e pr proesoret.
)y mekani'em mund t prdoret edhe ne sistemet me shume proesore ku proesoret
"irtuale mund t jene proesore reale. Numri i proesore"e "irtuale qe i $aktohet nj
proesi si fillim sht nj, por proeset mund t kerkojne pr me shume ose ti lene
proesoret ne se nuk i duhen me. )erneli mund ti marre keto proesore "irtuale qe jane
alokuar njehere dhe ti $aktoje ne proese t tjrera qe kane ne"oje pr to.
6deja kryesore qe e bn ket skeme t funksionoje sht se ne rastin kur kerneli kupton qe
nj thread sht bllokuar, ai njofton sistemin run#time, duke kaluar si parametra ne stak
numrin e thread#it ne fjale dhe nj prshkrim pr ngjarjen qe ka ndodhur. Njohja me at
qe ka ndodhur behet nga kerneli duke akti"i'uar sistemin run#time ne nj adrese t njohur
)y mekani'em quhet upcall.
Njehere i akti"i'uar, sistemi run#time mund ti ri'gjedhe thread#et e tij, 'akonisht duke
"e$uar thread#in e bllokuar dhe me pas duke marre nj thread tjetr qe sht ne gjendjen
gati. (e "one, kur kerneli kupton se thread#i origjinal mund t ek'ekutohet prseri ai bn
nj tjetr upcall sistemit run#time pr ta informuar pr ket ngjarje. 1istemi run#time,
sipas "leresimit t tij, mund ose jo ta ristaroje menjehere thread#in ose e "endos ne listn
e thread#e"e t gatshem, pr tu akti"i'uar me "one.
)ur ndodh nj interrupt hardware, kur nj thread user sht duke u ek'ekutuar, *!+#ja e
nderprere kalon ne kernel mode. Ne se interrupti shkaktohet nga nj ngjarje qe nuk ka
lidhje me proesin, kur mena%huesi i interrupte"e prfundon punen e tij, ai "endos
thread#in e nderprere ne gjendjen qe ai ishte me pare. !or ne rast se interrupti qe ndodh ka
lidhje me proesin qe sht nderprere, thread#i i nderprere nuk ristartohet. Nhread#i i
nderprere pe'ullohet dhe sistemi run#time qe ishte startuar ne at *!+ "ituale. ?sht me
pas ne dore t sistemit run#time qe t pr'gjedhe se $ilin thread t pr'gjedhe ne at *!+J
t nderprerin, nj thread t ri t gatshem pr ek'ekutim apo ndonj 'gjedhje t tret.
Nj prjashtim pr akti"i'imet e thread#e"e sht siguria rreth up$all#e"e, nj kon$ept qe
prish strukturen qe trashegohet ne do sistem me shtresa. Normalisht, shtresa n ofron
disa sherbime qe shtresa nC1 mund ti therrase, por shtresa n ndoshta nuk mund t
therrase pro$edura nga shtresa nC1. +p$all nuk e ndjekin ket prin$ip t rendesishem.
2.2.7 THREAD-et POP-UP
Nhread#et jane t "lefshem ne sistemet e shprndare. Nj shembull i rendesishem sht se
si kerkesat pr sherbim mena%hohen. (enyra tradi$ionale sht qe t bllokojme nj
proes ose nj thread me nj thirrje sistem receive qe pret pr nj mesa'h. )ur mesa'hi
"jen ajo e pranon mesa'hin dhe e prpunon kerkesen e tij.
(egjithat, nj tjetr menyre sht e mundshme, ne t $ilen ardhja e nj mesa'hi bn t
mundur qe sistemi t krijoje nj thread tjetr qe t mena%hoje mesa'hin. Nj thread i tille
quhet pop#up thread dhe ilustrohet ne /ig. H#&7. Nj a"anta'h i madh i thread#e"e pop#up
sht se meqe jane t ri, ato nuk kane histori, regjistra, stak, etj qe duhen t kthehen ne
gjendje fillestare. 1e$ili fillon si i ri dhe jane identik midis tyre. !ra si prfundim
prdorimi i tyre bn qe "onesa midis ardhjes se mesa'hit dhe fillimit t prpunimit t tij
mund t jet shume e shkurtr.
Figura 2-15. )rijimi i nj thread t ri kur "jen nj mesa'h. (a) !ara ardhjes se mesa'hit.
(b) !as ardhjes se mesa'hit.
=isa planifikime paraprake duhen bere kur prdoren thread#et pop#up. !r shembull, ne
$ilin proes ek'ekutohet thread#iU Ne se sistemi e lejon qe thread#i t ek'ekutohet ne
kernel, thread#i mund t ek'ekutohet aty. =uke patur thread#in pop#up qe ek'ekutohet ne
kernel sht me i shpejt dhe me i leht se ek'ekutimi ne user spa$e. 5jithashtu nj
thread pop#up ne kernel spa$e mund t aksesoje me lehtsi t gjitha tabelat e kernelit dhe
pajisjet 6/:, qe mund t duhen pr mena%himin e interrupte"e. Nga ana tjetr nj buggy
threa, kernel mund t beje me shume deme se nj buggy user threa,. !r shembull ne se
ai ek'ekutohet pr nj kohe t gjat nuk ka menyre pr ta 'e"endesuar, dhe t dhenat qe
"ijne mund t humbasin.
2.2.8 BER1A MULTITHREAD E KODEVE SINGLE-THREAD
1hume programe jane shkruar pr proese me nj thread. )on"ertimi i tyre ne
multithread sht me i "eshtire sesa duket. (e posht do t shohim disa nga "eshtiresi qe
hasen.
1i fillim, kodi i nj thread#i konsiston ne disa pro$edura, si tek proeset. )eto mund t
kene "ariabla lokale, "ariabla globale dhe parametra pro$edurash. >ariablat lokale dhe
parametrat nuk shkaktojne probleme, por "ariablat qe jane globale pr nj thread, por jo
pr t gjithe programin shkaktojne probleme. )eto "ariabla jane globale ne sensin qe
shume pro$edura brenda thread#it i prdorin, por thread#et e tjere logjikisht nuk duhet ti
prdorin.
!r shembull, konsideroni "ariablin errno qe prdoret ne +N6R. )ur nj proes ose nj
thread bn nj thirrje sistem e $ila deshton, kodi i gabimit "endoset ne errno. Ne /ig.
H#&D, thread#i & ek'ekuton thirrjen sistem access pr t pare ne se ka t drejta pr t
aksesuar nj file t $aktuar. 1istemi operati" kthen prgjigjen ne "ariablin global errno.
!asi kontrolli sht kthyer tek thread#i &, por me pare ai ka nj shans pr t le%uar errno,
s$heduler#i "endos qe thread#i & ka pasur shume nga koha e *!+#se dhe "endos t kaloje
tek thread#i H. Nhread#i H ek'ekuton nj thirrje open e $ila deshton, e $ila bn qe errno
mbishkruhet dhe kodi i aksesimit t thread#it & t humbase prgjithnj. )ur thread#i & t
filloje me "one, ai do t le%oje "leren e gabuar dhe do t punoje ne menyre jo t rregullt.
Figura 2-16. )onflikte midis thread#e"e pr prdorimin e nj "ariabli global.
1hume 'gjidhje pr ket problem jane t mundshme. Njra sht t ndalosh "ariablat
global ne tresi. (egjithese kjo do t ishte nj 'gjidhje, realisht nuk pranohet nga pjesa
me e madhe e software#e"e ek'istues. Nj tjetr 'gjidhje sht ti "endosim do thread#i
"ariablat e tyre global si$ tregohet ne /ig.H#&C. Ne ket menyre do thread ka nj kopje
pri"ate t errno dhe "ariabla t tjere globale, keshtu qe konfliktet shmangen. !or ky
"endim krijon nj ni"el t ri lirie, "ariablat qe jane t dukshme pr t gjitha pro$edurat e
nj thread#i, qe i shtohen "ariabla"e qe jane t dukshem "etm pr nj pro$edure dhe
"ariablat qe jane t dukshem kudo ne program.
Figura 2-17. Nhread#et mund t kene "ariabla globale pri"ate.
,ksesimi i "ariabla"e global pri"ate sht pak i "eshtire, prderisa shume gjuhe
programimi kane nj menyre pr t deklaruar "ariablat lokale dhe globale, por jo forma t
ndermjetme. ?sht e mundur t alokosh nj pjese t "ogel t memorjes pr globalet dhe
tOia kalosh do pro$edure ne thread, si ne parametr shtese.
Nj tjetr 'gjidhje konsiston ne faktin e krijimit t pro$edura"e t reja ne librari, t $ilat
mund t krijojne, "endosin dhe le%ojne "ariabla t ndermjetm. Nhirrja e pare mund t
jet si me poshtJ
$reate`global(\bufptr\)I
)jo alokon nj pjese memorje pr nj pointer qe quhet 'ufptr ne nj "end t "e$ant t
re'er"uar pr thread#in therrits. Nuk ka rendesi ku 'gjidhet "endodhja, "etm thread#i
therrits ka akses tek "ariabla global. Ne se nj thread tjetr krijon nj "ariabel global me
t njjtin emer ai ruhet ne nj "endodhje tjetr, ne menyre qe mos t krijoje konflikt me
"ariablin ek'istues.
=y thirrje ne"ojiten pr t aksesuar "ariablat globaleJ Nj pr ti shkruar dhe tjetri pr ti
le%uar. !r ti shkruar prdoret di$ka e tilleJ
set`global(\bufptr\, Sbuf)I
,jo ruan "leren e pointerit ne "endin e pr$aktuar qe sht krijuar me pare nga thirrja
create:global. !r t le%uar nj "ariabel global, thirrja sht afersisht si me poshtJ
bufptr [ read`global (\bufptr\)I
)jo kthen adresen e ruajtur ne "ariablin global, por t dhenat e saj mund t aksesohen.
!roblemi tjetr qe ek'iston kur kthjeme nj program single#thread ne multithread sht
se shume pro$edura librarish nuk t lejone t hysh. )jo do t thot qe nuk jane t
di'enjuara t kene nj thirrje t dyt t bere ne do lloj pro$edure, ndersa e para nuk ka
mbaruar. !r shembull, dergimi i nj mesa'hi ne rrjet mund t jet i programuar t
asembloje mesa'hin ne nj buffer fiks brenda librarise, me pas behet nj instruksion
EtrapF ne kernel pr ta derguar. *fare ndodh ne se nj thread ka asembluar mesa'hin e tij
ne buffer, me pas nj interrupt $lo$k#u detyron t behet nj nderrim thread#esh, thread#i i
ri menjehere mbishkruan bufferin me mesa'hin e tijU
Ne menyre t ngjashme, pro$edura pr alokimin e memorjes, si$ sht malloc ne +N6R,
mbajne disa tabela rreth prdorimit t memorjes, per shembull, nj list me "ende t
gatshme pr tu prdorur ne memorje. Ndersa malloc sht i 'ene duke a'hornuar keto
lista, ato mund t jene prkohesisht ne gjendje t parregullt, me pointera qe nuk pointojne
ne ndonj "end. Ne se ndodh nj nderrim thread#esh, ndersa keto tabela jane ne gjendje t
parregullt dhe nj thirrje e re "jen nga nj thread tjetr, nj pointer i gabuar mund t
prdoret, qe $on ne nj gabim t programit. .regullimi i t gjitha"e ketyre gabime"e
kerkon rishkrimin e t gjithe librarise.
Nj 'gjidhje e ndryshme sht qe do pro$edure t "endosi nj bit pr t shenuar librarine
qe ka ne prdorim. Bdo prpjekje nga ana e nj thread#i tjetr pr t prdorur librarine do
t bllokohet. (egjithese kjo menyre mund t funksionoje ajo e eliminon pareleli'min e
mundshem.
)onsederoni nj sinjal. =isa sinjale spe$ifikojne logjikisht thread#et, disa t tjere jo. !r
shembull ne se nj thread bn nj thirrje alarm, kjo ka kuptim pr nj sinjal t $aktuar t
shkoje t thread#i qe beri thirrjen. (egjithat ne se thread#et jane implementura t gjithe
ne user spa$e, kerneli nuk di gje fare pr ek'isten$n e tyre dhe 'or se mund ta dergoje
sinjalin t thread#i i duhur. Nj komplika$ion tjetr ndodh ne se proesi mund t ket nj
sinjal alarm duke pritur dhe shume thread#e qe bejne thirrje alarm ne menyre t pa"arur.
1injale t tjere, si interruptet e tastieres, nuk jane t spe$ifikuar me thread#e. )ush duhet
ti prgjigjet atyreU Nj threadU N gjithe thread#etU Nj thread pop#upU (e tej, $fare
ndodh ne se nj thread ndryshon mena%huesin e sinjalit pa i thene thread#e"e t tjereU
*fare ndodh ne se nj thread do t kape nj sinjal t $aktua, dhe nj thread tjetr do ket
sinjal pr t prfunduar proesinU )jo situat mund t ndodhe ne se nj ose me shume
thread#e ek'ekutojne pro$edura standarte librarish dhe t tjeret jane user%"rittn. ?sht e
qart qe keto deshira jane t pareali'ueshme. Ne prgjithesi, sinjalet jane t "eshtire pr
tu mena%huar ne nj ambjent me nj thread t "etm. !or edhe prdorimi i tyre ne
ambjent me multithread nuk e lehtson shume prdorimin e tyre.
Nj problem i fundit i futur nga thread#et sht mena%himi i stakut. Ne shume sisteme, ne
t $ilt kemi o"erflow t stakut t proesit, kerneli thjesht i siguron atij proesi me shume
stak ne menyre automatike. )ur nj proes ka shume thread#e, ai gjithashtu ka edhe
shume stake. Ne se kerneli nuk sht ne dijeni t ketyre stake"e, ai nuk mund ti rrise ato
ne menyre automatike ne rast se kemi nj gabim ne stak (o"erflow).
)eto probleme nuk jane t pakapr$yeshme, por tregojne se "etm futja e thread#e"e ne
nj sistem ek'istues pa nj ridi'enjim t sistemit nuk do t funksionoje. 1emantikat e
thirrje"e sistem duhen t ripr$aktohen dhe librarit duhet t rishkruhen. )eto ndryshime
duhen t behen por gjithnj duke ruajtur pajtueshmerine me programet ek'istuese.
2.3 Komunikimi i intrproeseve
!roeset shpesh her duhet t komunikojn me proese t tjera. !r shembull, n
nj pipeline shelli, outputi i nj proesi duhet ti kalohet proesit t dyt dhe kshtu deri n
fund t linjs. )shtu sht i ne"ojshm nj komunikim ndrmjet proese"e, n nj
mnyr t mir#strukturuar, pa prdorur interruptet. N pjesn e mposhtme do t shohim
disa nga problemet q lidhen me komunikimin e intrproese"e (6!* K 6ntrproess
*omuni$ation).
1hqyrtojm shkurtimisht tre probleme ktu. 6 pari u prmend edhe m siprJ si nj
proes mund ti kaloj informa$ion nj tjetri. 6 dyti ka t bj me sigurimin q dy ose m
shum proese t mos ndrhyjn n rrugn e njri#tjetrit kur merren me nj akti"itet t
rndsishm (supo'ojm se dy proese mundohen t kapin t dy & (; t fundit q ka
mbetur n memorie). 6 treti ka t bj me rradhitjen e proese"e kur ka "arsi ndrmjet
tyreJ n qoft se proesi , prodhon t dhna dhe proesi ; i printon ato, ; duhet t pres
derisa proesi , t prodhoj t dhna para se ti printoj ato. =o t shqyrtojm se$ilin prej
ktyre raste"e.
?sht gjithashtu e rndsishme t prmendim se dy nga kto probleme "lejn n
t njjtn mnyr edhe pr threadet. 6 pari K kalimi i informa$ionit K sht i leht pr
threadet duke qn se ndajn t njjtn hapsir adresash (threadet q ndodhen n
hapsira adresash t ndryshme q kan ne"oj t komunikojn komandohen nga proeset
komunikuese). (egjithat, dy problemet e tjera K t rrin larg nga rruga e njri#tjetrit dhe
renditja e prshtatshme K "lejn edhe pr threadet. k'istojn t njjtat probleme dhe
"lejn t njjtat 'gjidhje. !osht do t diskutojm problemet n lidhje me proeset, por
mos harroni q t njjtat probleme dhe 'gjidhje "lejn edhe pr threadet.
2.3.1 Kushtet e prparsis
N disa sisteme operati"e, proese q po punojn n t njjtn koh mund t
share#ojn memorie t njjt, ku se$ili mund ta shkruaj ose le%oj. (emoria q share#
ojn mund t ndodhet n memorien kryesore (ndoshta n nj struktur t dhnash kernel)
ose mund t jet nj file i share#uarJ "endndodhja e memories s share#uar nuk ndryshon
natyrn e komunikimit apo problemet q mund t lindin. !r t par se si ndodh nj
komunikim interproesesh n praktik, marrim nj shembull t thjesht por t shpeshtJ
spooler i nj printeri. )ur nj proes dshiron t printoj nj file, ai shkruan emrin e file#it
n nj direktori spooler. Nj proes tjetr, printer daemon, kontrollon priodikisht pr
t par a ka file t gatshme pr tOu printuar dhe n qoft se ka, ai i printon dhe heq emrat e
tyre nga direktoria.
6magjinojm se dirketoria spooler ka nj numr t madh slotsh, me numrat 8, &,
H, _, dhe se$ili mund t mbaj nj emr file. 5jithashtu imagjinojm se jan dy "ariabla
q share#ohen, out- e $ila shenjon n filen pasardhse q do t printohet, dhe in, q
shenjon n slotin pasardhs t lir n direktori. )to dy "ariabla mund t ruhen n nj file
me gjatsi dy word, q mund t aksesohet nga t gjith proeset. N nj ast t $aktuar,
slott nga 8 n 9 jan bosh ( filet jan printuar) dhe slott nga M n D jan plot (me emrat e
file"e n rradh pr tu printuar). !ak a shum n t njjtn koh, proeset , dhe ;
"endosin q duan t rradhisin nj file pr printim. )jo situat sht treguar n /ig. H#&L.
Figura 2-18. =y proese q duan t aksesojn memorie t share#uar n t njjtn koh.
N nj prioritet ku 'batohet ligji i (urphyt, mund t ndodh si m posht. !roesi
, le%on "ariabln in dhe ruan "lern, C, n nj "ariabl lokale e quajtur ne&t:free:slot.
(enjeher ndodh nj interrupt dhe *!+#ja "endos q proesi , ka "epruar mjaftueshm,
kshtu kalon tek proesi ;. !roesi ; gjithashtu le%on "ariabln in dhe merr gjithashtu
"lern C. ,i e ruan at n "ariabln e tij lokale ne&t:free:slot. N kt moment t dy
proeset mendojn se slot i lir pasardhs sht C.
!roesi ; "a'hdon rrjedhn. ,i ruan emrin e file#it t tij n slotin C dhe
inkrementon "ariablin in n L. !astaj largohet dhe "a'hdon gjra t tjera.
)shtu, proesi , "a'hdon ek'ekutimin nga "endi ku e kishte ln. 1hikon n
ne&t:free:slot, gjen C aty dhe shkruan emrin e file#it n slotin C, kshtu fshin emrin q
proesi ; kishte "endosur. ( pas llogarit ne&t:free:slot C1 q sht L, dhe bn "ariablin
in L. =irektoria spooler sht e qndrueshme, kshtu printer daemon nuk do t dalloj
asnj t gabuar, por proesi ; nuk do t marr asnjeher outputin e dshiruar. !rdoruesi
; do t rrij n dhomn e printerit pr"itet tra, duke shpresuar pr nj output q nuk
"jen kurr. 1ituata t ktilla, ku dy ose m shum proese le%ojn ose shkruajn disa t
dhna t share#uara dhe re'ultati final "aret nga kush ek'ekutohet ek'aktsisht, kur quhen
kushte prparsie (ra$e $onditions). N bsh debug programe"e q mbajn kushte
prparsie nuk sht argtim. .e'ultatet e shumi$s s test"e dalin mir, por ndonjeher
mund t ndodh dika e uditshme dhe e pashpjegueshme.
2.3.2 Zonat kritike
1i i mnjanojm kushtet e prparsisU *elsi pr t shmangur problemet n kt
rast dhe n shum situata q kan t bjn me share#imin e memories, share#imin e file"e
dhe me share#imin e do gjje tjetr sht t gjejm nj mnyr q t lejojm "etm nj
proes, q t le%oj apo shkruaj t dhna t share#uara n nj ast t $aktuar. thn me
fjal t tjera, na duhet nj prjashtim i ndrsjellt, q do t thot, na duhet nj mnyr
pr t siguruar q N qoft se nj proes sht duke prdorur nj "ariabl apo file t
share#uar, proeset e tjera do t prjashtohen. >shtirsia m par ndodhi sepse proesi ;
filloi t prdort nj nga "ariablat e share#uara para se proesi , t kishte prfunduar me
t. @gjedhja e "eprime"e primiti"e t prshtatshme pr t arritur prjashtimin e ndersjellt
sht nj problem i rndsishm design#i i t gjith sisteme"e operati"e dhe nj tm q
do t shqyrtojm me "mndje n paragrafin pasardhs.
!roblemi i mnjanimit t kushte"e t prparsis mund t formulohet edhe n
mnyr abstrakt. Nj pjes t kohs, proesi sht i 'n duke br llogaritje t
brendshme dhe gjra t tjera q nuk ojn n kushtet e prparsis. (egjithat,
ndonjeher nj proesi i duhet t aksesoj memorie ose nj file t share#uar, ose i duhet t
bj gjra t tjera q mund t ojn n kushtet e prparsis. ,jo pjes e programit ku
aksesohet memoria e share#uar quhet zona kritike ose seksioni kritik. N qoft se ne
mund t bjm t mundur q dy proese mos t jen asnjeher n 'onat kritike n t
njjtn koh, mund t mnjanojm problemin e prparsis.
dhe pse kjo krkes mnjanon kushtet e prparsis, nuk sht mjaftueshm pr
t pasur proese paralele q bashkpunojn korrektesisht duke prdorur t dhna t share#
uara. Ne duhet ti prmbahemi katr kushte"e pr t pasur nj 'gjidhje t mirJ
1. dy proese nuk mund t jen n t njjtn koh n 'onat kritike respekti"e.
2. nuk mund t bhen supo'ime mbi shpejtsite dhe numrin e *!+#"e.
3. nj proes q ek'ekutohet jasht 'ons s tij kritike nuk mund t bllokoj
proeset e tjera.
4. nj proes nuk duhet t pres prgjithmon pr t hyr n 'onn e tij
kritike.
N mnyr abstrakt, sjellja q duam tregohet ne /ig. H#&G. !roesi , hyn n
'onn e tij kritike n kohn N
&
, n kohn N
H
proesi ; tenton t hyj n 'onn e tij kritike,
por dshton sepse nj proes tjetr sht n 'onn e tij kritike dhe ne lejojm "etm nj
n nj ast t $aktuar. .rjedhimisht, proesi ; pe'ullohet deri n kohn N
9
kur , largohet
nga 'ona kritike, kshtu lejon ; t hyj menjeher. ( pas ; largohet (n N
M
) dhe
kthehemi srish n situatn fillestare, ku asnj proes nuk ndodhet n 'onn kritike.
Figura 2-19. !rjashtimi i ndersjellt me 'onat kritike.
2.3.3 Prjashtim i ndersjellt me Busy Waiting
N kt paragraf do t shqyrtojm propo'ime t ndryshme pr t arritur
prjashtimin e ndersjellt, n mnyr q, ndrkoh q nj proes sht duke prpunuar
memorien e sharuar n 'onn e tij kritike, nj tjetr nuk mund t hyj n 'onn e tij
kritike dhe kshtu t hap probleme.
Mbyllja e interrupteve
@gjidhja m e thjesht sht q do proes t mbyll interruptet menjeher sapo t
hyj n 'onn e tij kritike dhe lejimi i tyre menjeher pasi t dal. (e interruptet e
mbyllura, nuk kemi interrupte t $lo$kut. *!+#ja kalon nga nj proes tek nj tjetr si
re'ultat i interrupte"e t $lo$kut ose t tjer, dhe me interruptet t fikura, *!+#ja nuk do
t kaloj n nj proes tjetr. )shtu, pasi nj proes t ket mbyllur interruptet, mund t
shoh dhe ndryshoj memorien e sharuar pa patur frik nga ndrhyrja e ndonj proesi
tjetr.
)jo mnyr nuk sht e plqyer sepse nuk sht e 'gjuar ti japsh proese"e user
mundsin e fikjes s interrupte"e. 1upo'ojm sikur njri prej tyre e bn dhe nuk i nde'
mU )jo do t sillte fundin e sistemit. !r m tepr n qoft se sistemi sht
multiproesor, me dy ose m shum *!+, mbyllja e interrupte"e "len "etm pr *!+#n
q ek'ekutoi instruksionin e mbylljes. N tjert do "a'hdojn t funksionojn dhe mund
t aksesojn memorien e share#uar.
Nga ana tjetr, shpesh her sht e dobishme q kerneli t mbyll interruptet pr
pak instruksione ndrkoh q po ndryshohen "ariablat. N qoft se nj interrupt ndodh
kur lista e proese"e n gjendjen ready sht e paqndrueshme, mund t kemi kushtet e
prparsis. !rfundimi shtJ mbyllja e interrupte"e muund t jet nj teknik e
dobishme brnda sistemit operati", por nuk sht i prshtatshm si mekani'm i
prgjithshm i prjashtimit t ndersjellt pr proeset user.
Variablat ky (lock)
1i prpjekje t dyt le t prpiqemi t gjejm nj 'gjidhje me sfotware.
)onsiderojm sikur kemi "etm nj "ariabl (ky) t share#uar, q fillimisht sht 8. )ur
nj proes krkon t hyj n 'onn e tij kritike, teston "ariabln ky. N qoft se ky$i
sht 8, proesi e kthen & dhe futet n 'onn kritike. N qoft se kyi sht &, proesi pret
derisa t bhet 8. )shtu, 8 do t thot se nuk ka proes n 'onn e tij kritike, dhe & do t
thot se ka nj proes q ndodhet n 'onn kritike.
/atkeqsisht, ideja prmban t njjtn rrjedh t gabuar q pam n direktorin
spooler. 1upo'ojm se nj proes le%on kyin dhe shikon q sht 8. prpara se ta kthej
n &, skedulohet nj proes tjetr, ek'ekutohet dhe e kthen ky$in n &. )ur proesi i par
"a'hdon ek'ekutimin edhe ai do t kthej ky$in n &, dhe dy proese do t ndodhen n
'onat kritike prkatse n t njjtn koh.
Nani mund t mendoni q mund t mnjanojm kt problem duke le%uar
fillimisht "ariabln ky, dhe m pas ta rikontrollojm pak para se t shkruajm n t, por
kjo n t "rtt nuk ndihmon. 5ara e prparsis tani fillon n qoft se proesi i dyt
ndryshon "ariabln ky menjeher pasi proesi i par e ka kontrolluar pr her t dyt.
Alternimi i Prpikt
Nj trajtim i tret i problemit t prjashtimit t ndrsjellt tregohet n /ig. H#H8.
)jo pjes programi, si pothuajse t gjitha n kt libr, sht shkruar n *. ?sht
'gjedhur * sepse sistemet operati"e jan pothuajse gjithmon t shkruara n * (ose
nganjeher n *TT), por shum rrall n gjuh si Aa"a, (odula 9, apo !as$al. *#ja sht e
fuqishme, efikase dhe e parashikueshme, karakteristika kritike pr shkruajtjen e
sisteme"e operati"e. Aa"a, pr shembull, nuk sht e parashikueshme sepse mund t
ngelet pa memorie n nj moment kritik, dhe i duhet t thrras garbage $olle$tor n nj
moment t paprshtatshm. )jo nuk mund t ndodh n *, sepse n * nuk ka garbage
$olle$tor. Nj krahasim i prpikt i *, *TT, Aa"a dhe katr gjuh"e t tjera sht dhn n
(!re$helt, H888).
N /ig. H#H8, "ariabla integer turn (rradha), fillimisht 8, ruan kush e ka rradhn
pr tOu futur n 'onn kritike dhe t shikoj apo ndryshoj memorien e sharuar.
/illimisht, proesi 8 kontrollon "ariabln turn- shikon q sht 8 dhe hyn n 'onn e tij
kritike. dhe proesi & shikon q sht 8 dhe "endoset n nj lak duke testuar
"a'hdimisht "ariabln turn pr t par kur do t bhet &. Nestimi i "a'hdueshm i nj
"ariable derisa ajo t ket nj "ler t $aktuar quhet busy waiting. @akonisht duhet
e"ituar, meqnse har%hon koh t *!+#s. busy waiting prdoret "etm n qoft se
sht logjikisht e pritshme se do t marr pak koh. Nj ky q prdor busy waiting quhet
spin lock.
Figura 2-20. Nj propo'im pr 'gjidhjen e problemit t 'ona"e kritike. (a)
!roesi 8. (b) !roesi &. N t dy rastet, "ini re pikpresjen n fund t $ikle"e while.
)ur proesi 8 l 'onn kritike, "endos "ariabln turn n &, q t lejoj proesin &
t hyj n 'onn kritike. 1upo'ojm se proesi & mbaron 'onn e tij kritike shpejt, kshtu
t dy proeset ndodhen n 'onat e tyre jo#kritike, me "ariabln turn n 8. Nani proesi 8
ek'ekuton gjith $iklin e tij shpejt, del nga 'ona kritike dhe "endos turn n &. N kt
pik turn sht & dhe t dy proeset jan duke u ek'ekutuar n 'onat e tyre jo#kritike.
!apritur, proesi 8 mbaron 'onn e tij jo#kritike dhe rikthehet n fillim t lakut.
/atkeqsisht, nuk i lejohet t futet n 'onn e tij kritike tani, sepse turn sht & dhe
proesi & sht i 'n me 'onn e tij jo#kritike. ,i ngelet n lakun while derisa proesi &
kthen turn n 8. thn ndryshe, puna me turne nuk sht ide e mir kur njri nga
proeset sht shum m i ngadalt se tjetri.
)jo situat shkel kushtin 9 e "endosur m lartJ proesi 8 po bllokohet nga nj
proes tjetr q nuk sht n 'onn e tij kritike. !o ti kthehemi direktoris spooling q
diskutuam m lart, po t lidhim 'onn kritike me le%imin dhe shkrimin n direktorin
spooling, proesit 8 nuk do ti lejohej t printont nj file sepse proesi & sht duke br
dika.
N fakt, kjo 'gjidhje krkon q dy proeset t altrnohen n hyrjen n 'onat
kritike, pr shembull n file spooling. ,snjrit nuk do ti lejoheshin dy njri pas tjetrit.
Ndrkoh q ky algoritem mnjanon kushtet e prparsis, nuk sht nj kandidat i
"lefshm sepse shkel kushtin 9.
Zgjidhja e Peterson
=uke kombinuar iden e turne"e me iden e "ariabla"e ky dhe "ariabla"e
lajmruese, nj matmatikan hollande', N. =ekker, ishte i pari q gjeti nj 'gjidhje
sfotware#ike pr prjashtimin e ndrsjellt q nuk krkont altrnim rigoro'. !r nj
diskutim mbi algoritmin e =ekker, shiko (=ijkstra, &GD7).
N &GL&, 5. -. !etrson 'buloi nj mnyr m t thjesht pr t arritur
prjashtimin e ndrsjellt dhe n kt mnyr e bri 'gjidhjen e =ekker t pa"ler.
,lgoritmi i !etrsonit sht treguar n /ig. H#H&. )y algoritem prmban dy pro$edura t
shkruara n ,N16 *, q do t thot se pr t gjith funksionet e pr$aktuara dhe
prdorura duhet t $aktohen prototipet e funksione"e. (egjithat, pr t kursyer hapsir,
nuk do t tregojm prototipet n shembullin e mposhtm.
adefine /,-1 8
adefine N.+ &
adefine N H /b number of proesses b/
int turnI /b whose turn is itU b/
int interested0N4I /b all "alues initially 8 (/,-1) b/
"oid enter`region(int proess) /b proess is 8 or & b/
c
int otherI /b number of the other proess b/
other [ & d proessI /b the opposite of proess b/
interested0proess4 [ N.+I /b show that you are interested b/
turn [ proessI /b set flag b/
while (turn [[ proess SS interested0other4 [[ N.+) /b null statement b/I
e
"oid lea"e`region (int proess) /b proess, who is lea"ing b/
c
interested0proess4 [ /,-1I /b indi$at departure from $riti$al region b/
e
Figura 2-21. @gjidhja e !etersonit pr prjashtimin e ndersjellt.
!ara se t prdor "ariablat e sharuara (para se t hyj n 'onn e tij kritike), do
proes thrret enter:region me numrin e "et, 8 ose &, si parametr. )jo thirrje do ta bnte
at t priste, n qoft se duhet, derisa t jet pa rre'ik t hyj. !asi t ket mbaruar me
"ariablat e sharuara, proesi thrret lea#e:region pr t treguar q ka mbaruar dhe pr t
lejuar proeset e tjera t hyjn, n qoft se kjo krkohet.
-e t shohim se si funksionon kjo 'gjidhje. /illimisht asnj nga proeset nuk
ndodhet n 'onn kritike. !roesi 8 thrret enter:region. Nregon interesin duke setuar
elementin e "ektorit t tij dhe kthen turn n 8. (eqn se proesi & nuk sht i interesuar,
kthehet menjeher enter:region. N qoft se proesi & thrret tani enter:region, derisa sa
intereste,7(8 t bhet F@<S?, dhe kjo ndodh "etm kur proesi 8 thrret lea#e:region pr
t dal nga 'ona kritike.
Nani konsiderojm rastin kur t dy proeset thrrasin pothuajse njkohsisht
enter:region. N dy do t rregjistrojn numrin e tyre tek turn. >etm ai numr q do t
rregjistrohet i fundit "lenI i pari mbishkruhet dhe humbet. 1upo'ojm q t fundit e
rregjjistron proesi &, kshtu turn do t jet &. )ur t dy proeset t "ijn tek while,
proesi 8 e ek'ekuton 'ero her dhe hyn n 'onn kritike. !roesi & nuk futet n 'onn
kritike derisa proesi 8 t dal nga 'ona e "et kritike.
Instruksioni TSL
-e t shikojm tani nj propo'im q ka ne"oj pr pak ndihm nga hardware.
1hum kompjutera, "eanrisht ata q projektohen pr multiproesor, kan nj
instruksion J
N1- .R, -:*)
(Nest dhe 1et -o$k) q funksionon si m posht. -e%on prmbajtjen e memories
n fjaln lock (ky$) n rregjistrin .R dhe ruan nj "ler jo#'ero n memorien me adres
lock. >eprimet e le%imit dhe t shkrimit mbi fjaln jan t pandashme K asnj proes nuk
mund t aksesoj fjaln derisa instruksioni t ket prfunduar. *!+#ja q ek'ekuton
instruksionin N1- bllokon busin e memories pr t mos lejuar *!+#t e tjera t aksesojn
memorien derisa t ket prfunduar.
!r t prdorur instruksionin N1-, do t prdorim nj "ariabl t share#uar, lock,
pr t koordinuar aksesimin e memories s share#uar. )ur lock sht 8, do proes mund
ta kthej n & duke prdorur instruksionin N1- dhe m pas t le%oj dhe shkruaj n
memorien e share#uar. )ur mbaron pun, proesi rikthen lock n 8 duke prdorur nj
instruksion t 'akonshm mo"e.
1i mund t prdoret ky instruksion pr t penguar q dy proese t futen n 'onat
kritike n t njjtn kohU @gjidhja jepet n /ig. H#HH. )tu tregohet nj subroutin me
pes instruksione n nj gjuh assembler fikti"e (por tipike). 6nstruksioni i par kopjon
"lern e "jetr t lock n nj regjistr dhe kthen lock n &. >lera e "jetr krahasohet me 8.
N qoft se sht jo#'ero, kyi sht "n, kshtu programi kthehet n fillim dhe e teston
srish. N nj moment ai do t bhet 8 (kur proesi q pr momentin ndodhet n 'onn
kritike e l), dhe subroutina kthehet, me kyin e "endosur. N pastrosh kyin sht e
thjesht. !rogrami ruan nj 8 n lock. Nuk krkohen intruksione t "eanta.
enter`regionJ
N1- .561N?., -:*) kopjon lo$k n regjistr dhe "endos &
*(! .561N?., a8 a ishte lo$k 'eroU
AN enter`region n qoft se ishte jo'ero, lo$k ka qn setuar, futu n lak
.N return, futet n 'onn kritike
-ea"e`regionJ
(:> -:*),a8 rregjjistro 8 n lo$k
.N .eturn
Figura 2-22. 2yrja dhe dalja nga 'ona kritike duke prdorur instruksionin N1-.
Nj 'gjidhje e problemit t 'ona"e kritike tashm sht e qart. !rpara se t hyj
n 'onn kritike, nj proes thrret enter:region dhe kalon n busy waiting derisa t
lirohet lo$kI pastaj merr lo$k#un dhe kthehet. !as 'ons kritike proesi thrret
lea#e:region, q ruan nj 8 n lock. 1i gjith 'gjidhjet t ba'uara n 'onat kritike,
proeset duhet t thrrasin enter:region dhe lea#e:region n kohn e duhur q metoda t
funksionoj. N qoft se proesi bn hile, prjashtimi i ndrsjellt do t dshtoj.
2.3.4 Sleep and Wakeup (gjumi dhe zgjimi)
dhe 'gjidhja e !etrsonit, edhe ajo q prdor N1- jan t sakta, por t dy kan
ne"oj pr busy waiting. N thelb, far kto 'gjidhje bjn shtJ kur nj proes do t
hyj n 'onn kritike, shikon a i lejohet. N qoft se jo, proesi thjesht pret derisa ti
lejohet.
)y trajtim har%hon koh t *!+#s dhe mund t ket re'ultate t papritshme.
)onsiderojm nj kompjuter me dy proese, 2 me prioritet t lart dhe - me prioritet t
ult. .regullat e skedulimit jan t tilla q 2 mund t ek'ekutohet kur t jet n gjendjen
gati. N nj ast t $aktuar, me - n 'onn e tij kritike, 2 bhet gati pr tOu ek'ekutuar
(pr shembull, kompletohet nj "eprim 6/:). 2 fillon busy waiting, meqnse - nuk
skedulohet kur 2 sht duke u ek'ekutuar, - nuk ka asnjeher mundsin t ler 'onn e
tij kritike, kshtu 2 mbetet n lak prgjithmon. )jo situat nganjeher referohet si
problemi i inversionit t prioritetit.
Nani le t shikojm disa primiti"a t komunikimit t intrproese"e q bllokohen
n "nd q t humbin koh t *!+#s kur nuk lejohen t futen n 'onat kritike. Nj nga
m t thjeshtat sht dyshja sleep dhe wake up. 1leep sht nj thirrje sistem q shkakton
at q bn thirrjen t bllokohet, do t thot, t pe'ullohet derisa nj proes tjetr ta 'gjoj.
Nhirrja wakeup ka nj parametr, proesin q duhet 'gjuar. :se t dy proeset mund t
ken se$ili nga nj parametr, nj adres memorie q prdoret pr t lidhur thirrjet sleep
me ato wake up.
Problemi prodhues-konsumator
1i nj shembull se si mund t prdoren kto primiti"a, le t konsiderojm
problemin prodhues-konsumator (i njohur edhe si problemi buffer-i kufizuar). =y
proese ndajn nj buffer t prbashkt me madhsi t $aktuar. Njri prej tyre, prodhuesi,
"endos informa$ion n buffer dhe tjetri, konsumatori e merr at. (?sht gjithashtu e
mundur t prgjithsohet problemi duke patur m prodhues dhe n konsumator, por ne do
t marrim parasysh "etm rastin me nj prodhues dhe nj konsumator, sepse ky supo'im
thjeshtson 'gjidhjen).
Na lindin tlashe kur prodhuesi do t "endosi nj element tjetr n buffer, por
sht plot. @gjidhja sht q prodhuesi t "ihet n gjum, dhe t 'gjohet kur konsumatori
t ket hequr nj ose m shum element. N mnyr t ngjashmme, n qoft se
konsumatori do t marr nj element nga bufferi dhe shikon q sht bosh, "ihet n
gjum derisa prodhuesi t "endos dika n buffer dhe ta 'gjoj.
)y trajtim duket i mjaftueshm, por ai $on n t njjtat kushte prparsie q pam
m par me direktorin spooler. Na duhet nj "ariabl, count, pr t ruajtur numrin e
element"e n buffer. N qoft se numri maksimal i "ariabla"e q mund t mbaj sht
N, kodi i prodhuesit do t testoj fillimisht n se count sht N. N qoft se po, prodhuesi
do t "ihet n gjumI n qoft se jo, prodhuesi do t shtoj nj element dhe do
inkrementoj count.
)odi i konsumatorit sht i ngjashmJ fillimisht teston count pr t par n qoft
se sht 8. N qoft se sht, "ihet n gjum, n qoft se sht jo#'ero, heq nj element
dhe dekrementon numruesin. 1e$ili prej proese"e shikon gjithashtu n se proesi tjetr
duhet 'gjuar, n se po, e 'gjon. )odi si pr prodhuesin dhe konsumatorin tregohet n /ig.
H#H9.
adefine N &88 /b number of slots in the buffer b/
int $ount [ 8I /b number of items in the buffer b/

"oid produ$er ("oid)
c
int itemI

while (N.+) c /b repeat fore"er b/
item [ produ$e`item()I /b generate ne%t item b/
if ($ount [[ N) sleep()I /b if buffer is full, go to sleep b/
insert`item(item)I /b put item in buffer b/
$ount [ $ount T &I /b in$rement $ount of items in buffer b/
if ($ount [[ &) wakeup($onsumer)I /b was buffer emptyU b/
e
e

"oid $onsumer("oid)
c
int itemI

while (N.+) c /b repeat fore"er b/
if ($ount [[ 8) sleep()I /b if buffer is empty, got to sleep b/
item [ remo"e`item()I /b take item out of buffer b/
$ount [ $ount d &I /b de$rement $ount of items in buffer b/
if ($ount [[ N d &) wakeup(produ$er)I /b was buffer fullU b/
$onsume`item(item)I /b print item b/
e
e
Figura 2-23. !roblemi prodhues#konsumator me kushte prparsie.
!r t shprehur thirrjet sistem si sleep dhe wake up n *, do ti shprehim si thirrje
pr routina librarie. ,to nuk jan pjes e librari"e standarte t * por q do t jen me
shum mundsi t disponueshme n do sistem q ka patur kto thirrje sistem. !ro$edurat
insert:item dhe remo#e:item, q nuk tregohen, merren me rregullimin e futjes s
element"e n buffer dhe heqjen e tyre nga bufferi.
Nani kthehemi n kushtin e prparsis. (und t ndodh sepse aksesimi i count
sht i pakufi'uar. (und t ndodh situata e mposhtme. ;ufferi sht bosh dhe
konsumatori sapo ka le%uar count pr t par a sht 8. N at ast, skeduleri "endos t
ndaloj s ek'ekutuari prkohsisht konsumatorin dhe t filloj s ek'ekutuari
prodhuesin. !rodhuesi "endos nj element n buffer, inkrementon count dhe "ren q tani
sht &. =uke arsyetuar q count sht 8, dhe kshtu q konsumatori sht n gjum,
prodhuesi thrret "ake up pr t 'gjuar konsumatorin.
/atkeqesisht, konsumatori nuk sht ende llogjikisht n gjum, kshtu sinjali i
'gjimit humbet. )ur ek'ekutohet konsumatori, do t testoj "lern e $ount q le%oi m
par, do t shoh q sht 8 dhe do t "ihet n gjum. N nj ast prodhuesi do t mbushi
bufferin dhe do t "ihet n gjum gjithashtu. N dy do t mbetn n gjum prgjithmon.
Nhelbi i problemit ktu sht se thirrja wake up q i drgohet nj proesi q nuk
sht (ende) n gjum, humbet. N qoft se nuk do t humbist, gjith$ka do t punonte.
Nj rregullim i shpejt do t ishte duke shtuar nj wakeup waiting bit (biti i pritjes s
'gjimit). )ur nj wake up i drgohet nj proesi q sht ende 'gjuar, biti setohet. (
pas, kur proesi tenton t "ihet n gjum, n qoft se wake up waiting bit sht nde'ur, do
t fiket, por proesi do t mbetet 'gjuar. 3ake up waiting bit sht nj depo'it ndihmse
pr sinjalet e 'gjimit.
Ndrkoh q wake up waiting bit na shpton problemin n kt shembull t
thjesht, sht e thjesht t ndrtojm problema me tre ose m shum proese ku "etm
nj bit i ktill nuk sht i mjaftueshm. (und t shtojm edhe nj bit tjetr ose ndoshta L
apo 9H, por si parim problemi mbetet.

2.3.5 Semafort
)jo ishte situata n &GD7, kur . 3. =ijkstra (&GD7) sugjeroi t prdorej nj
"ariabl integer pr t numruar wake up#et e ruajtura pr prdorim t m"onshm. N
propo'imin e tij u fut nj "ariabl e re e quajtur semafor. Nj semafor mund t kishte nj
"ler 8, q tregont q nuk ishte ruajtur asnj wake up ose nj numr po'iti", n qoft se
nj ose m shum wake up#e po prisnin.
=ijkstra propo'oi dy "eprime, down (posht) dhe up (lart) (prgjithsimet e sleep
dhe wake up). >eprimi down kontrollon n se "lera sht m e madhe se 8. N qoft se
sht kshtu, dekrementon "lern (prdor nj wake up t ruajtur) dhe "a'hdon. N se
"lera sht 8, proesi "ihet n gjum pa prfunduar "eprimin down pr momentin.
)ontrolli i "lers, ndryshimi i saj dhe me raste "nie n gjum, bhet n nj "eprim t
"etm dhe t pandashm (atomic action). ?sht e sigurt q, n qoft se fillohet nj
"eprim semafori, asnj proes tjetr nuk mund t aksesoj semaforin derisa "eprimi t
ket prfunduar ose t jet bllokuar. )jo pandashmri sht thelbsore pr 'gjidhjen e
probleme"e t sinkroni'imit dhe shmangien e kushte"e t prparsis.
>eprimi up inkrementon "lern e adress s semaforit. N qoft se nj ose m
shum proese ishin n gjum n at semafor, t pamundur pr t prfunduar nj "eprim
t mparshm down, njri prej tyre 'gjidhet nga sistemi (per shembull,., n mnyr t
rastesishm) dhe lejohet t prfundoj "eprimin e tij down. )shtu, pas nj "eprimi up n
nj semafor m proese n gjum, semafori do t ngelet 8, por do t ket nj proes m
pak n gjum n t. >eprimi i inkrementimit t semaforit dhe 'gjimit t nj proesi sht
gjithashtu i pandashm. Nuk ka proese q t bllokohen duke kryer nj up, ashtu si nuk
bllokoheshin duke kryer nj wake up n modelin e mparshm.
N paperin origjinal t =ijkstra, ai prdori emrat ! dhe > n "end t down dhe up
respekti"isht, por meqnse kto nuk kan kuptim mnemonik pr njer'it q nuk flasin
gjuhn hollande'e, do t prdorim termat down dhe up. )jo u paraqit fillimisht n ,lgol
DL.
Zgjidhja e problemit Prodhues-Konsumator duke prdorur Semafort
1emafort 'gjidhin problemin e wake up#it t humbur, si tregohet n /ig. H#HM.
?sht thelbsore q t implementohen n mnyr t pandashme. (nyra normale sht
implementimi i up dhe down si thirrje sistem, me sistemin operati" q shkurtimisht mbyll
interruptet ndrkoh q teston semaforin, e ndryshon at, dhe n qoft se sht e
ne"ojshme " proeset n gjum. (eqnse kto "eprime kan ne"oj "etm pr pak
instruksione, mbyllja e interrupte"e nuk dmton. N qoft se prdoren shum *!+, do
semafor duhet t prdor nga nj "aribl ky, m instruksioni N1- q prdoret pr t
siguruar q "etm nj *!+ ek'aminon semaforin. 1igurohuni t kuptoni se prdorimi i
N1- pr t parandaluar q disa *!+ t aksesojn semaforin n t njjtn koh sht
ndryshe nga prdormi i busy waiting nga prodhuesi dhe konsumatori q presin q tjetri t
'bra' ose mbush bufferin. >eprimit t semaforit do ti duhen "etm pak mikrosekonda,
ndrkoh q prodhuesit dhe konsumatorit mund ti duhen relati"isht shum.
adefine N &88 /b number of slots in the buffer b/
typedef int semaphoreI /b semaphores are a spe$ial kind of int b/
semaphore mute% [ &I /b $ontrols a$$ess to $riti$al region b/
semaphore empty [ NI /b $ounts empty buffer slots b/
semaphore full [ 8I /b $ounts full buffer slots b/

"oid produ$er("oid)
c
int itemI

while (N.+) c /b N.+ is the $onstant & b/
item [ produ$e`item()I /b generate something to put in buffer b/
down(Sempty)I /b de$rement empty $ount b/
down(Smute%)I /b enter $riti$al region b/
insert`item(item)I /b put ne item in buffer b/
up(Smute%)I /b lea"e $riti$al region b/
up(Sfull)I /b in$rement $ount of full slots b/
e
e

"oid $onsumer("oid)
c
int itemI

while (N.+) c /b infinit loop b/
down(Sfull)I /b de$rement full $ount b/
down(Smute%)I /b enter $riti$al region b/
item a[ remo"e`item()I /b take item from buffer b/
up(Smute%)I /b lea"e $riti$al region b/
up(Sempty)I /b in$rement $ount of empty slots b/
$onsume`item(item)I /b do something with the item b/
e
e
Figura 2-24. !roblemi prodhues#konsumator duke prdorur semafort.
)jo 'gjidhje prdor tre semaforJ njri i quajtur full (plot) pr t ruajtur numrin e
slot"e q jan plot, njri i quajtur empty (bosh) pr t ruajtur numrin e slot"e q jan
bosh, dhe njri i quajtur mute& pr t siguruar q prodhuesi dhe konsumatori t mos
aksesojn bufferin n t njjtn koh. Full sht fillimisht 8, empty sht fillimisht i
barabart me numrin e slot"e n buffer, dhe mute& sht fillimisht &. 1emafort q
ini$iali'ohen me & dhe q prdoren nga dy ose m shum semafor pr t siguruar q
"etm njri prej tyre mund t futet n 'onn kritike n nj ast t $aktuar quhen semafor
binar. N qoft se se$ili prej proese"e kryen nj down menjeher prpara se t futet n
'onn e tij kritike dhe nj up menjeher pasi e l at, kemi patjetr nj prjashtim t
ndrsjellt.
Nani q kemi nj primiti" komunikimi intrproesesh n dispo'i$ion, le t
rishikojm sekuen$n e interrupte"e n /ig. H#7. N nj sistem q prdor semafort,
mnyra natyrale pr fshehjen e interrupte"e sht me ann e nj semafori, fillimisht 8, i
bashkngjitur me t gjitha pajisjtt 6/:. (enjeher pas fillimit t nj pajisje 6/:, proesi
mena%hues kryen nj down n semaforin prkats dhe bllokohet menjeher. )ur "jen nj
interrupt, mena%huesi i interrupte"e kryen nj up n semaforin prkats, gj q bn
proesin t gatshm t ek'ekutohet srish. N kt model, hapi 7 n /ig. H#7 konsiston n
kryerjen e nj "eprimi up mbi semaforin e pajisjes, kshtu q n hapin D skeduleri do t
mund t ek'ekutoj de"i$e managerin. 1igurisht, n qoft se disa proese jan tashm n
gjendjen gati, skeduleri mund t 'gjedh t ek'ekutoj nj proes ndoshta m t
rndsishm m pas. =o t shohim disa algoritma q prdoren pr skedulim m pas n
kt kapitull.
N shembullin e /ig. H#HM, n t "rtt kemi prdorur semafort n dy mnyra t
ndryshme. )y ndryshim sht mjaftueshmrisht i rndsishm pr tOu br i qart.
1emafori mute& sht prdorur pr prjashtimin e ndrsjellt. ?sht projektuar pr t
siguruar q n nj koh t $aktuar "etm nj proes t le%oj ose t shkruaj bufferin e
shoqruar me "ariablat. )y prjashtimi i ndrsjellt duhet pr t parandaluar nj kaos. =o
t studiojm prjashtimin e ndersjellt dhe se si ta arrijm at m shum n paragrafin e
ardhshm.
!rdorimi tjetr i semafor"e sht sinkronizimi. 1emafort full dhe empty
ne"ojiten pr t siguruar q disa sekuen$a ngjarjesh t ndodhin apo t mos ndodhin. N
kt rast, ata sigurojn q prodhuesi t ndaloj s ek'ekutuari kur bufferi sht plot, dhe
t ndaloj konsumatori kur sht bosh. )y prdorim sht i ndryshm nga prjashtimi i
ndrsjellt.
2.3.6 Mutex-et
)ur nuk na duhet aftsia e semafor"e pr t numruar, prdorim nj "ersion t
semaforit t quajtur mute%. (ute%#et jan t mir "etm pr mana%himin e prjashtimit t
njanshm n disa burime t sharuara ose pjes kodi. ,ta jan t leht dhe efikas n
implementim, q i bn "eanrisht t prdorshm n paketat e thread#e"e q
implementohen trsisht n hapsirn user.
(ute% sht nj "ariabl q mund t ket dy gjendjeJ e hapur dhe e kyur.
.rjedhimisht, ne"ojitet "etm & bit pr ta prfaqsuar, por n praktik prdoret shpesh
her nj integer, ku 8 do t thot e hapur dhe do "ler tjetr e kyur. (e mute%#in
prdoren dy pro$edura. )ur nj threadi (ose proesi) i duhet t aksesoj 'onn e tij
kritike, thrret nj mute&:lock. N qoft se mute% sht pr momentin i hapur (q do t
thot q 'ona kritike sht e lir), thirrja kryhet dhe thread#i q kryen thirrjen sht i lir
t hyj n 'onn kritike.
Nga ana tjetr, n qoft se mute% sht i kyur, thread#i q ka kryer thirrjen
bllokohet derisa thread#i n 'onn kritike t ket mbaruar dhe thrret mute&:unlock. N
qoft se disa proese jan bllokuar n mute%, 'gjidhet rastesisht njri prej tyre dhe lejohet
t prdor kyjen.
(eqn se mute%#et jan shum t thjeshta, ato mund t implementohen shum
thjesht n hapsirn user n qoft se mund t prdoren instruksione N1-. )odi pr
mute%`lo$k dhe mute%`unlo$k q prdoren n nj paket thread#esh n ni"elin user,
tregohen n /ig. H#H7.
mute%`lo$kJ
N1- .561N?.,(+NR Z $opy mute% to registr and set mute% to &
*(! .561N?.1,a8 Z was mute% 'eroU
A@ ok Z if it was 'ero, mute% was unlo$ked, so return
*,-- thread`yield Z mute% is busyI s$hedule another thread
A(! mute%`lo$k Z try again latr
okJ .N Z return to $allerI $riti$al region entered

mute%`unlo$kJ
(:> (+NR,a8 Z store a 8 in mute%
.N Z return to $aller
Figura 2-25. 6mplementimi i mute&:lock dhe mute&:unlock
)od i mute&:lock sht i ngjashm me kodin e enter:region q tregohet n /ig. H#
HH por me nj ndryshim thelbsor. )ur enter`region nuk arrin t futet n 'onn kritike
"a'hdon teston "a'hdimisht (busy waiting). !rfundimisht, koha mbaron dhe skedulohet
nj proes tjetr pr tOu ek'ekutuar. N nj ast proesit q mban kyin i "jen rradha pr
ek'ekutim dhe e lshon at. (e thread#et situata sht e ndryshme, sepse nuk ka $lo$k q
mbyll thread#et q kan shum koh q ek'ekutohen. .rjedhimisht, nj thread q tenton
t marr nj ky me busy waiting do t ngelet n lak prgjithmon dhe nuk do t marr
kurr kyin, sepse nuk lejon asnj thread t ek'ekutohet dhe t lshoj kyin.
)tu qndron edhe ndryshimi ndrmjet enter:region dhe mute&:lock. )ur ky i
fundit nuk arrin t kap kyin, thrret threa,:yiel, pr ti dhn *!+#n nj thread#i
tjetr. .rjedhimisht nuk ka busy waiting. )ur thread#i ek'ekutohet hers tjetr, teston
srish kyin.
(eqn se threa,:yiel, sht "etm nj thirrje drejt skedulerit t thread#e"e n
hapsirn user, sht shum i shpejt. 1i rrjedhim, as mute&:lock dhe as mute&:unlock
nuk i duhen thirrje kernel. =uke i prdorur, thread#et n ni"elin user mund t
sinkroni'ohen plotsisht n hapsirn user duke prdorur pro$edura q kan ne"oj
"etm pr nj grusht instruksionesh.
1istemi mute% q prshkruam m lart sht nj grup i thjesht thirrjesh. !r t
gjith sfotware#et ka gjithmon nj krkes pr sa m shum detyra dhe "eori, e njjta
gj "len edhe pr primiti"at e sinkroni'imit. !r shembull, nj paket thread#esh ofron nj
thirrje e quajtur mute&:trylock, q merr kyin ose kthen nj kod n rast se dshton, por
nuk bllokohet asnjeher. )jo thirrje i jep thread#it mundsi t 'gjedh far t bj si
altrnati" n "nd q t pres.
=eri tani na ka dal nj problem q e kemi mbuluar paksa por q n fund ja "len
ta shpjegojm. )ur kemi nj paket thread#esh n hapsirn user, nuk kemi probleme me
rastin kur shum thread#e duan t aksesojn t njjtin mute%, meqn se "eprojn n t
njjtn hapsir adresash. (egjithat, me shumi$n e 'gjidhje"e t mparshme, si
algoritmi i !etrson apo semafort, ka nj supo'im q nuk thuhet, q n rastin e shum
proese"e ata kan t drejt t aksesojn t paktn disa memorie t share#uar, ndoshta
edhe "etm nj fjal, por dika po. N se proeset kan hapsira adresash pa lidhje me
njra#tjetrn, ashtu si kemi thn "a'hdimisht, si mund t share#ojn "ariabln turn n
algoritmin !etrson apo n semafor, apo n nj buffer fardoU
)a dy prgjigje. para, disa nga strukturat e share#imit t t dhna"e, si
semafort, mund t ruhen n kernel dhe t aksesohen "etm me an t thirrje"e sistem.
)y trajtim eliminon problemin. dyta, shumi$a e sisteme"e operati"e moderne (duke
prfshir +ni% dhe 3indows) ofrojn nj mnyr q proeset t share#ojn nj pjes t
hapsirs s tyre t adresa"e me proese t tjera. N kt mnyr, mund t share#ohen
buffer apo dhe struktura t tjera t dhnash. N rastin m t keq, q nuk sht e mundur
asgj tjetr, mund t prdoret nj file i share#uar.
N se dy ose m shum proese share#ojn shumi$n apo t gjith hapsirn e tyre
t adresa"e, ndryshimi ndrmjet proese"e dhe thread#e"e mbulohet disi, por ek'iston
gjithsesi. =y proese q share#ojn t njjtn hapsir adresash kan gjithsesi open
files, alarm timers dhe karakteristika t tjera t proese"e t ndryshme, ndrkoh q
proeset brnda nj proesi i share#ojn ato. =he sht gjithmon e "rtt q proeset q
ndajn t njjtn hapsir adresash nuk kan t njjtin efikasitet si thread#et e ni"elit user
meqn se kernel sht thellsisht i prfshir n mana%himin e tyre.
2.3.7 Monitort
( an t semafor"e komunikimi i intrproese"e duket i thjesht, apo joU
2arrojeni. 1hikoni me "mendje rregullin e "endosjes s down#e"e prpara se t
"endosni apo t trhiqni element nga buffer#i n /ig. H#HM. 1upo'ojm sikur dy down#et
n kodin e prodhuesit t ishin ndryshuar n rradh, kshtu mute& do t dekrementohej
prpara empty dhe jo pas tij. N se bufferi do t ishte plot, prodhuesi do t bllokohej, dhe
mute% do t ishte 8. .rjedhimisht, hern tjetr q konsumatori do t mundohej t
aksesont bufferin, do tkryentenj down mbi mute%, q tani sht 8 dhe do t bllokohej
gjithashtu. N dy proeset do t mbetshin t bllokuar prgjithmon dhe nuk do t kryhej
m pun. )jo situat e pafat quhet deadlo$k. =o ti studiojm m mir n )ap. 9.
)y problem theksohet pr t treguar sa i kujdesshm duhet t jesh kur prdor
semafort. Nj gabim i leht on n nj bllokim t ashpr. ?sht si programimi n gjuhn
assembler, "etm se m keq sepse gabimet jan kushte prparsie (ra$e $onditions),
deadlo$k, dhe forma t tjera sjelljeje t paparashikueshme.
!r ta br m t leht shkrimin e programe"e t rregullta, 2oare (&GCM) dhe
;rin$h 2ansen (&GC7) propo'uan nj primiti" me sinkroni'im t ni"elit t lart t
quajtur monitor. !ropo'imi i tyre ndryshonte shum pak nga sa prshkruhet m posht.
Nj monitor sht nj grup pro$edurash, "ariablash dhe struktura t dhnash q jan t
gjitha t mbledhura bashk n nj tip t "eant moduli apo paket. !roeset mund t
thrrasin pro$edurat q ndodhen n nj monitor kur t duan, por nuk mund t aksesojn
strukturat e t dhna"e t brndshme t monitorit me an t pro$edura"e t deklaruara
jasht tij. /igura H#HD ilustron nj monitor t shkruar n nj gjuh imagjinare, !idgin
!as$al.
monitor e&ample
integer iI
condition cI

procedure pro,ucer( )I
f
f
f
endI

procedure consumer( )I
f f f
endI
end monitorI
Figura 2-26. Nj monitor.
(onitort kan nj karakteristik t rndsishme q i bn ata t dobishm pr
arritjen e prjashtimit t ndrsjellt (mutual e%$lusion)J n nj $ast t $aktuar "etm nj
proes mund t jet akti" n nj monitor. (onitort jan nj konstrukt i gjuhs s
programimit, kshtu kompilatori e di q jan t "eant dhe mund t merret me thirrjet
drejt pro$edura"e t monitor"e ndryshe nga thirrjet e tjera pro$edur. N prgjithsi, kur
nj proes thrret nj pro$edur nga monitori, instruksionet e para t pro$edurs do t
kontrollojn n se ka ndonj proes tjetr akti" n monitor. Ne s ka, proesi q ka kryer
thirrjen do t pe'ullohet derisa proesi tjetr t lr monitorin. N se nuk ka proes tjetr
duke prdorur monitorin, ather proesi thirrs mund t futet.
6mplementimi i prjashtimit t ndrsjellt tek monitort sht n dor t
kompilatorit, por nj mnyr e 'akonshme sht prdorimi i nj mute% apo nj semafori
binar. ?sht m pak e mundur q dika do t shkoj gabim, sepse sht kompilatori dhe
jo programuesi, q merret me prjashtimin e ndrsjellt. ?sht e mjaftueshme t dim q
duke i kthyer t gjitha 'onat kritike drejt pro$edura"e t monitor"e, nuk do t ket m dy
proese q ek'ekutojn 'onat e tyre kritike n t njjtn koh.
dhe pse monitort na paraqesin nj mnyr t thjesht pr t arritur prjashtimin
e ndrsjellt, si e pam m lart, kjo nuk sht e mjaftueshme. Na duhet edhe nj mnyr
pr t bllokuar proeset kur nuk mund t "a'hdojn m. N problemin prodhues#
konsumator, sht e leht q t gjith testt pr buffer#full dhe buffer#empty t "endosen
n pro$edurat monitor, por si do t bllokohet prodhuesi kur gjen buffer plotU
@gjidhja qndron n futjen e variblave t gjendjes dhe dy "eprime"e n to, wait
(prit) dhe signal (sinjal). )ur nj pro$edur monitor 'bulon se nuk mund t "a'hdoj m
(per shembull,., prodhuesi gjen buffer#in plot), ek'ekuton nj wait n ndonj "ariabl
gjendjeje, t themi, full. )y "eprim shkakton proesin q ka kryer thirrjen t bllokohet. ,i
gjithashtu lejon nj proes tjetr, q m par nuk ishte lejuar, t futet tani.
)y proes tjetr, pr shembull, konsumatori, mund t 'gjoj partnerin e tij duke
ek'ekutuar nj sinjal mbi "ariabln e gjendjes mbi t $iln po pret partneri. !r t
mnjanuar t paturin e dy proese"e akti"e n monitor n t njjtn koh, na duhet nj
rregull q na tregon far ndodh pas sinjalit. 2oare propo'oi q proesi i sapo'gjuar t
lejohej t ek'ekutohej, duke pe'ulluar tjetrin. ;rin$h 2ansen propo'oi t rregulloj
problemin duke krkuar q nj proes q kryen nj sinjal t dal menjeher nga monitori.
(e fjal t tjera, nj rresht sinjal do t paraqitt si rreshti i fundit n nj pro$edur
monitor. Ne do t prdorim propo'imin e ;rin$h 2ensen, sepse sht m i thjesht n
kon$ept dhe gjithashtu m i leht pr tOu implementuar. N se ek'ekutohet nj signal n
nj "ariabl gjendjeje n t $iln po presin disa proese, "etm njri prej tyre 'gjohet,
kush pr$aktohet nga skeduleri i sistemit.
)a dhe nj 'gjidhje t tret, t $iln nuk e ka propo'uar as 2oare as ;rin$h
2ansen. )jo sht pr t ln sinjali'uesin t "a'hdoj s ek'ekutuari dhe t lejoj
proesin n pritje t filloj ek'ekutimin "etm pasi sinjali'uesi t ket ln monitorin.
>ariablat e gjendjes nuk jan numrues. ,ta nuk i ruajn sinjalet pr tOu prdorur
m pas si bjn semafort. )shtu n se sinjali'ohet nj "ariabl gjendjeje n t $iln
nuk ka proes duke pritur, sinjali humb prgjithmon. (e fjal t tjera, wait duhet t "ij
prpara signal. )y rregull e bn implementimin shum m t thjesht. N praktik nuk
paraqitt ndonj problem, meqn se sht e thjesht t ruhet gjendja e se$ilit proes me
an t "ariabla"e, n se duhet. Nj proes q do t kryej nj "eprim signal mund t
shoh q ky "eprim nuk sht i domosdoshm duke par "ariablat.
Nj skelet i problemit prodhues#konsumator me monitor sht dhn n /ig. H#
HC n nj gjuh imagjinare, !idgin !as$al. ,"anta'hi i prdorimit t gjuhs !idgin !as$al
n kt rast sht se ajo sht e pastr dhe e thjesht dhe ndjek ek'aktsisht modelin
2oare/;rin$h 2ansen.
monitor )ro,ucer'onsumer
condition full, emptyI
integer countI

procedure insert(itemJ integer)I
begin
if count [ N then wait(full)I
insert:item(item)I
count J[ count T &J
if count [ & then signal(empty)
endI

function remo#eJ integerI
begin
if count [ 8 then wait(empty)I
remo#e [ remo#e:itemI
count J[ count d &I
if count [ N d & then signal(full)
endI

count J[ 8I
end monitorI

procedure pro,ucerI
begin
while true do
begin
item [ pro,uce:itemI
)ro,ucer'onsumer.insert(item)
end
endI

procedure consumerI
begin
while true do
begin
item [ )ro,ucer'onsumer.remo#eI
consume:item(item)
end
endI
Figura 2-27. Nj ski$ e problemit prodhues#konsumator me monitor. >etm nj
pro$edur monitor sht akti"e n nj ast t $aktuar. ;uffer#i ka N slot.
(und t mendohet se "eprimet wait dhe signal duken t ngjashme me sleep dhe
wake up, q m sipr pam q kishin kushte prparsie fatale. ,to jan shum t
ngjashme, por me nj ndryshim thelbsorJ sleep dhe wake up dshtuan sepse njri proes
po mundohej t futej n gjum, tjetri po mundohej ta 'gjont. (e monitort kjo nuk
mund t ndodh. !rjashtimi i ndrsjellt automatik i pro$edura"e monitor e garanton q,
t themi, n se prodhuesi brnda nj pro$edure monitor 'bulon q bufferi sht plot, do t
mund t kompletoj "eprimin wait pa u shqetsuar pr mundsin q skeduleri mund t
kaloj tek konsumatori para se t kompletohet wait. )onsumatori nuk do t lejohet t
futet n monitor para se t kompletohet wait dhe prodhuesi t jet shnuar si jo n
ek'ekutim.
dhe pse !idgin !as$al sht nj gjuh imagjinare, ka disa gjuh programimi q
suportojn monitort, edhe pse jo gjithmon n formn e projektuar nga 2oare dhe
;rin$h 2ansen. Nj nga kto gjuh sht edhe Aa"a. Aa"a sht nj gjuh e orientuar nga
objekti q suporton thread#et n ni"elin user dhe gjithashtu lejon metodat (pro$edurat) t
grupohen n klasa. =uke shtuar nj fjal kye n sinkroni'im me deklarimin e metods,
Aa"a garanton q n se nj thread fillon ek'ekutimin e nj metode, asnj thread nuk do t
lejohet t filloj ek'ekutimin e metoda"e t tjera n at klas.
Nj 'gjidhje e problemit prodhues#konsumator duke prdorur monitoret n Aa"a
sht dhn n /ig. H#HL. N 'gjidhje ka katr klasa. )lasa e jashtme,
)ro,ucer'onsumer, krijon dhe fillon dy threade, p dhe c. )lasa e dyt dhe e tret,
pro,ucer dhe consumer, prmbajn kodin pr prodhuesin dhe konsumatorin
respekti"isht. 1 fundi, klasa our:monitor, sht monitori. ,jo prmban dy thread#e t
sinkroni'uara q prdoren pr t futur element n bufferin e share#uar dhe pr ti n%jerr
ato. Ndryshe nga shembulli i mparshm, ktu kemi treguar kodin e plot pr insert dhe
remo#e.
Nhread#et e prodhuesit dhe konsumatorit jan identike n funksion me homologt
e tyre n shembullin e mparshm. !rodhuesi ka nj lak t pafund q gjeneron t dhna
dhe i fut ato n nj buffer t prbashkt. )onsumatori ka nj lak t ngjashm t pafund q
merr t dhna nga bufferi.
!jesa interesante e programit sht klasa our:monitor, e $ila prmban buffer#in,
"ariablat administrati"e, dhe dy metoda t sinkroni'uara. )ur prodhuesi sht akti"
brenda insert, e ka t sigurt q konsumatori nuk mund t jet akti"e brenda remo#e, duke
e pasur pa rre'ik ndryshimin e "ariabla"e dhe buffer#it pa frikn e kushte"e t
prparsis. >ariabla count ruan sa element ndodhen n buffer. (und t marr do "ler
nga 8 deri n N F 1, duke e prfshir kt t fundit. >ariabla lo sht indeksi i slotit t
buffer#it nga do t ngarkohet elementi i ardhshm. N mnyr t ngjashme, hi sht
indeksi i slotit t buffer#it ku do t "endoset elementi i ardhshm. -ejohet q lo 9 hi, q
do t thot q n buffer mund t ket 8 ose N element. >lera e count tregon se $ili rast
qndron.
(etodat e sinkroni'uara n Aa"a ndryshojn nga monitort klasik n nj mnyr
thelbsoreJ Aa"a nuk ka "ariabla gjendjesh. !or, ajo ofron dy pro$edura, wait dhe notify
q jan ekui"alentt me sleep dhe wake up, por q kur prdoren brenda nj metode t
sinkroni'uar, nuk jan shkak pr kushte prparsie. N tori, metoda wait mund t
ndrpritet, dhe kt bn kodi q e rrethon at. Aa"a krkon q t bhet i qart trajtimi i
prjashtime"e. !r synimin ton, imagjinojm q go:to:sleep sht mnyra pr ta "n
n gjum.
publi$ $lass
!rodu$er*onsumer c
stati$ final int N [ &88I // $onstant gi"ing the buffer si'e
stati$ produ$er p [ new produ$er()I // instantiate a new produ$er thread
stati$ $onsumer $ [ new $onsumer()I // instantiate a new $onsumer thread
stati$ our`monitor mon [ new our`monitor()I // instantiate a new monitor

publi$ stati$ "oid main(1tring args0 4) c
p.start()I // start the produ$er thread
$.start()I // start the $onsumer thread
e

stati$ $lass produ$er e%tends Nhread c
publi$ "oid run( ) c // run method $ontains the thread $ode
int itemI
while(true) c // produ$er loop
item [ produ$e`item()I
mon.insert(item)I
e
e
pri"ate int produ$e`item ( )c _ e // a$tually produ$e
e

stati$ $lass $onsumer e%tends Nhread c
publi$ "oid run() c // run method $ontains the thread $ode
int itemI
while(true) c // $onsumer loop
item [ mon.remo"e()I
$onsume`item (item)I
e
e
pri"ate "oid $onsume`item (int item) c _ e // a$tually $onsume
e

stati$ $lass our`monitor c // this is a monitor
pri"ate int buffer0 4 [ new int0N4I
pri"ate int $ount [ 8, lo [ 8, hi [ 8I // $ounters and indi$es

publi$ syn$hroni'ed "oid insert (int "al) c
if($ount [[ N) go`to`sleep()I //if the buffer is full, go to sleep
buffer 0hi4 [ "alI // insert an item into the buffer
hi [ (hi T &) Q NI // slot to pla$e ne%t item in
$ount [ $ount T &I // one more item in the buffer now
if($ount [[ &) notify( )I // if $onsumer was sleeping, wake it up
e

publi$ syn$hroni'ed int remo"e( ) c
int "alI
if($ount [[ 8) go`to`sleep( )I // if the buffer is empty, go to sleep
"al [ buffer 0lo4I // fet$h an item from the buffer
lo [ (lo T &) Q NI // slot to fet$h ne%t item from
$ount [ $ount d &I // one few items in the buffer
if($ount [[ N d &) notify()I // if produ$er was sleeping, wake it up
return "alI
e
pri"ate "oid go`to`sleep() c trycwait( )Ie $at$hc 6nterrupted%$eption e%$) ceIe
e
e
Figura 2-28. Nj 'gjidhje e problemit prodhues#konsumator n Aa"a.
=uke e br prjashtimin e ndrsjellt t 'ona"e kritike automatik, monitort e
bjn programimin paralel me m pak mundsi gabimesh sesa me semafort. (egjithat
edhe ata kan nj di'a"anta'h. Ao m kot dy shembujt tan me monitor ishin n !idgin
!as$al dhe Aa"a dhe jo n *, ashtu si$ jan edhe shembujt e tjer n kt libr. ,shtu si
tham m par, monitort jan nj kon$ept gjuhe programimi. )ompilatori duhet ti njoh
ato dhe ti prshtas pr prjashtimin e ndrsjellt. *, !as$al dhe shumi$a e gjuh"e t
tjera nuk kan monitor, kshtu sht e paarsyeshme t pressh q kompilatort e tyre t
$aktojn rregulla pr prjashtimin e ndrsjellt. N fakt, si do ta kuptonte kompilatori se
$ilat pro$edura ndodhen n monitor dhe $ilat joU
,s kto gjuh t tjera nuk kan semafor, por shtimi i tyre sht i thjeshtJ na
duhet t shtojm n librari dy rutina t shkruara n gjuhn asembler pr t prfaqsuar
thirrjet sistem up dhe down. )ompilatoret nuk duhet as ta dijn q ek'istojn. 1igurisht
q sistemet operati"e duhet t din q ka semafor, megjithat n qoft se kemi nj sistem
operati" t ba'uar n semafor, mund t shkruajm programe user n * ose *TT (apo
edhe n asembler). (e monitort, na duhet nj gjuh q ti ket t prfshir.
Nj problem tjetr me monitoret dhe gjithashtu me semafort, sht q ata u
projektuan pr t 'gjidhur problemin e prjashtimit t dyanshm n nj ose m shum
*!+, dhe t gjith kan akses n nj memorie t prbashkt. =uke i "n semafort n
memorien e share#uar dhe mbrojtja e tyre me an t instruksione"e N1-, mund t
mnjanojm kushtet e prparsis. )ur shikojm nj sistem t shprndar q konsiston
n shum *!+, se$ili me memorien e tij personale, t lidhur nga nj lo$al area network,
kto primiti"a bhen t paprdorueshme. !rfundimi sht se semafort jan t ni"elit
shum t ult dhe monitort nuk jan t prdorshm, pr"e se n disa gjuh
programimi. =he gjithashtu asnjra nga primiti"at e dhna m sipr pr shkmbimin e
informa$ionit ndrmjet makina"e. Ne"ojitet dika tjetr.
2.3.8 Shkmbimi i Mesazheve
,jo dika tjetr sht shkmbimi i mesazheve (message passing). (etoda e
komunikimit t intrproese"e prdor dy primiti"a, send (drgo) dhe re$ei"e (merr), q si
semafort por jo si monitort, jan thirrje sistem dhe jo konstrukt gjuhe. 1i t tilla, ato
mund t "endosen shum thjesht n pro$edura librari, si pr shembullI
send(destination, Smessage)I
dhe
re$ei"e(sour$e, Smessage)I
Nhirrja e par drgon nj mesa'h n nj "endndodhje t dhn dhe e dyta merr nj
mesa'h nga nj burim i dhn (ose prej nj 6far,o, n se pr marrsin nuk ka rndsi).
N se nuk ka asnj mesa'h t mundshm, marrsi bllokohet derisa t "ij nj i till, ose
mund t kthej menjeher me nj kod gabimi.
Problemet e projektimit t sistemeve pr shkembimin e mesazheve
1istemet e shkmbimit t mesa'he"e kan shum probleme dhe shtje projektimi
q nuk lindin me semafort apo monitort, n "eanti n se proeset komunikuese jan n
makina t ndryshme t lidhura nga nj network. !r shembull, mesa'het mund t humbn
nga network#u. !r tOu mbrojtur nga humbja e mesa'he"e, drguesi dhe marrsi mund t
bien dakord q sapo t merret nj mesa'h, marrsi do t kthej nj mesa'h
acknowledgement. N se drguesi nuk ka marr a$knowledgement brnda nj inter"ali
kohor t $aktuar, ai ritransmeton mesa'hin.
Nani le t marrin n konsiderate far ndodh n se mesa'hi merret sakt, por
humbet a$knowledgement. =rguesi do t ritransmetoj mesa'hin, kshtu marrsi do ta
marr at dy her. ?sht thelbsore q marrsi t dij t dalloj nj mesa'h t ri nga nj t
"jetr. @akonisht, ky problem 'gjidhet duke "n numra t njpasnjshm n do mesa'h.
N se marrsi merr nj mesa'h q mban t njjtin numr si mesa'hi paraardhs, ai e di q
mesa'hi sht duplikat dhe mund t injorohet. )omunikimi i suksesshm sht nj pjes
e rndsishme n studimin e rrjeta"e kompjuterike. !r m shum informa$ion, shiko
(Nanenbaum, &GGD).
1istemet e mesa'he"e duhet t merren edhe me pyetjen se si emrohen proeset,
n mnyr q proesi q spe$ifikohet n nj thirrje send apo re$ei"e t jet i qart.
Njohja (autntikimi) sht gjithashtu nj problem n sistemet e mesa'he"eJ si mund t
"rttoj klienti q po komunikon me ser"erin e "ertet dhe jo me nj mashtruesU
Nga ana tjetr e spektrit, ka edhe probleme projektimi q jan t rndsishme kur
drguesi dhe marrsi ndodhen n t njjtn makin. Njra prej tyre sht prforman$a.
)opjimi i mesa'he"e nga nj proes tek nj tjetr sht gjithmon m e ngadalt sesa t
bsh nj "eprim me semafor apo t aksesosh nj monitor. 1hum pun sht br pr t
br kalimin e mesa'he"e efikas. *heriton (&GLM), pr shembull, sugjeroi t limitohet si'e
i mesa'he"e q t futet n regjistrat e makins, dhe m pas t bhet shkmbimi i
mesa'he"e duke prdorur regjistrat.
Problemi Prodhues-Konsumator me Shkmbimin e Mesazheve
Nani le t shohim si mund t 'gjidhet problemi prodhues#konsumator me
shkmbimin e mesa'he"e dhe jo memorie t share#uar. Nj 'gjidhje sht dhn n /ig.
H#HG. 1upo'ojm q t gjith mesa'het jan n t njjtn madhsi, dh q, mesa'het q
jan drguar, por nuk jan marr akoma "endosen n buffer automatikisht nga sistemi
operati". N kt 'gjidhje, prdoren N mesa'he, n analogji me N slott e memories s
share#uar n buffer. )onsumatori fillon duke i drguar prodhuesit N mesa'he bosh. 1apo
prodhuesi t ket nj element pr ti drguar konsumatorit, ai merr nj mesa'h bosh dhe
kthen nj t plot. N kt mnyr, numri total i mesa'he"e n sistem mbetet i
pandryshueshm n koh, kshtu q mund t ruhen n nj sasi t $aktuar memorie t ditur
m par.
N se prodhuesi punon m shpejt se konsumatori, t gjith mesa'het do t
mbushen plot, duke pritur pr konsumatorinJ prodhuesi do t bllokohet, duke pritur pr
nj mesa'h bosh pr tOu kthyer. N se konsumatori punon m shpejt, ather ndodh e
kundrtaJ t gjith mesa'het do t jen boshe duke pritur q prodhuesi ti mbushJ
konsumatori do t bllokohet, duke pritur pr nj mesa'h plot.
adefine N &88 /b number of slots in the buffer b/
"oid produ$er("oid)
c
int itemI
message mI /b message buffer b/

while (N.+) c
item [ produ$e`item( )I /b generate something to put in buffer b/
re$ei"e($onsumer, Sm)I /b wait for an empty to arri"e b/
build`message (Sm, item)I /b $onstru$t a message to send b/
send($onsumer, Sm)I /b send item to $onsumer b/
e
e

"oid $onsumer("oid) c
int item, iI
message mI

for (i [ 8I i Y NI iTT) send(produ$er, Sm)I /b send N empties b/
while (N.+) c
re$ei"e(produ$er, Sm)I /b get message $ontaining item b/
item [ e%tra$t`item(Sm)I /b e%tra$t item from message b/
send(produ$er, Sm)I /b send ba$k empty reply b/
$onsume`item(tem)I /b do something with the item b/
e
e
Figura 2-29. !roblemi prodhues#konsumator me N mesa'he.
)a shum "ariante t mundshme pr shkmbimin e mesa'he"e. 1i fillim, le t
shohim si adresohen mesa'het. Nj mnyr sht ti bashkangjisim do proesi nj adres
t "eant dhe mesa'het ti adresojm drejt proese"e. Nj mnyr tjetr sht t shpikim
nj struktur t dhnash t re, t quajtur nj mailbox (kuti postare). Nj mailbo% sht nj
"end pr t ruajtur nj numr t $aktuar mesa'hesh, n prgjithsi numri $aktohet kur
krijohet mailbo%#i. kur prdoren mailbo%#et, parametrat e adresa"e, n thirrjet send dhe
re$ei"e, jan mailbo%#et dhe jo proeset. )ur nj proes tenton ti drgoj nj mailbo%#i q
sht plot, pe'ullohet derisa t largohet nj mesa'h nga mailbo%#i dhe t hap "end pr
nj tjetr.
!r problemin prodhues#konsumator, edhe prodhuesi edhe konsumatori do t
krijojn nj mailbo% t madh sa pr t mbajtur N mesa'he. !rodhuesi do t drgoj
mesa'he q pmbajn t dhna n mailbo%#in e konsumatorit, dhe konsumatori do t
drgoj mesa'he bosh n mailbo%#in e prodhuesit. )ur prdoren mailbo%#et, mekani'mi i
buffer#it sht i qartJ mailbo%#i destina$ion mban mesa'he q i jan drguar proesit
destina$ion, por nuk jan pranuar akoma.
kstremiteti tjetr nga ai i t paturit mailbo%#e sht eliminimi i bufferit. )ur
ndiqet ky trajtim, n se ek'ekutohet send prpara re$ei"e, proesi drgues bllokohet
derisa t ndodh re$ei"e, n kt moment mesa'hi mundet tani t kaloj direkt nga
drguesi tek marrsi, pa prdorur buffer si ndrmjets. N mnyr t ngjashme, n se
"eprimi re$ei"e kryhet i pari, marrsi bllokohet derisa t ndodh nj "eprim send. )jo
strategji shpesh her njihet si nj rendezvous. ?sht m i thjesht pr tOu implementuar
sesa nj skem mesa'hesh me buffer, por sht m pak fleksibl meqn se drguesi dhe
marrsi jan t detyruar t punojn me turne.
1hkmbimi i mesa'he"e sht shum e prdorur n sisteme me programim
paralel. Nj sistem me programim paralel e mirnjohur sht, pr shembull, MPI
(Message-Passing Intrface). ?sht shum i prdorur pr llogaritje shken$ore. !r m
shum informa$ion pr kt shikoni (5ropp et al., &GGMI dhe 1nir et al., &GGD).
2.3.9 Barrierat
(ekani'mi i fundit i sinkroni'imit sht i prshtatshm pr situata me shum
proese dhe jo pr ato me dy proese prodhues#konsumator. =isa aplika$ione jan t
ndara n fa'a dhe kan rregullin q asnj proes nuk mund t kaloj n fa'n pasardhse
pa mbaruar t gjith proeset fa'n paraardhse. )jo sjellje mund t arrihet duke
"endosur nj barrier n fund t do fa'e. )ur nj proes mbrrin n barrier, bllokohet
derisa t gjith proeset t ken arritur barriern. >eprimi i nj barriere sht treguar n
/ig. H#98.
N /ig. H#98(a) shikojm katr proese q mbrrijn n barrier. )jo do t thot
q po "eprojn dhe q nuk kan arritur ende n fundin e fa's. ( pas, proesi i par
prfundon gjith punn e fa's s par. !astaj ek'ekuton primiti"n e barriers,
prgjithsisht duke thirrur nj pro$edur librarie. !roesi pastaj pe'ullohet. ( pas, nj
proes i dyt dhe m pas nj i tret prfundojn fa'n e par dhe gjithashtu ek'ekutojn
primiti"at e barriers. )jo situat ilustrohet n /ig. H#98(b). m n fund, kur proesi i
fundit, *, mbrrin n barrier, t gjith proeset lirohen, si tregohet n /ig. H#98($).
Figura 2-30. !rdorimi i nj barriere. (a) !roesi duke ju afruar barriers. (b) N
gjith proeset "e njrit jan bllokuar. ($) )ur proesi i fundit mbrrin n barrier, t
gjith lejohen t kalojn.
1i nj shembull i nj problemi q ka ne"oj pr barriera, konsiderojm nj
problem tipik n fi'ik apo in%hinieri. )emi nj matri$ tipike q prmban disa "lera
fillestare. >lera mund t prfaqsojn temperaturat n pika t ndryshme t nj flet
metalike. 6deja mund t jet t llogaritet sa i duhet nj flake t "endosur n njrin $ep t
jap efekt dhe t shprhapet mbi gjith fletn.
=uke filluar nga kto "lera, mbi matir$ kryhet nj transformim pr t marr
"ersionin e dyt t matri$s, pr shembull, duke 'batuar ligjet e termodinamiks pr t
par sa jan temperaturat pas gA. ( pas proesi prsritet dhe jep temperaturat n pika
t $aktuara, si nj funksion i kohs ndrsa fleta n%ehet. ,lgoritmi n kt mnyr
prodhon nj seri matri$ash me kalimin e kohs.
Nani imagjinojm se matri$a sht shum e madhe (t themi & milion me &
milion), kshtu na duhen proeset paralele (mundsisht n nj multiproesor) pr t
prshpejtuar llogaritjet. !roese t ndryshme punojn n pjes t ndryshme t matri$s,
dhe kshtu llogarisin elementet e matri$s s re nga ajo e "jetra, duke u ba'uar n ligjet e
fi'iks. (egjithat, asnj proes nuk mund t filloj prsritjen n T & pa mbaruar
prsritja n, do t thot, derisa t gjith proeset t ken mbaruar punn e momentit.
(nyra pr t arritur kt qllim sht t programojm do proes t ek'ekutoj nj
"eprim barrier pasi t ket mbaruar pjesn e tij. )ur t gjith t ken mbaruar, matri$a e
re (input#i pr prsritjen e ardhshme) do t mbaroj dhe t gjith proeset do t lirohen
n t njjtn koh pr t filluar $iklin e ardhshm.
2.4. PROBLEMET KLASIKE IPC
-iteratura e sisteme"e operati"e sht plot me probleme interesante t $ilat jane
diskutuar dhe anali'uar duke prdorur nj shumllojshmeri metodash sinkroni'uese. Ne
paragrafet e meposhtme do t shqyrtojme tre probleme t mirenjohur.
2.4.1. PROBLEMI I DARKIMIT T FILOZOFEVE
Ne &GD7, =ijkstra parashtroi dhe 'gjidhi nj problem sinkroni'imi qe e quajti dhe dining
phylosophers problem (problemi i darkimit t filo'ofe"e). =eri ne at kohe, do njri qe
krijonte nj primiti"e sinkroni'imi u ndje i detyruar t demonstronte se sa elegant ishte
menyra e 'gjidhjes se probleme"e dining phylosophers. !roblemi mund t konstatohet
shume thjesht si me posht. !ese filo'ofe jane t ulur ne nj ta"oline t rrumbullaket. Bdo
filo'of ka nj pjat me spageti. 1pageti sht kaq rreshqits sa nj filo'of ka ne"oje pr
dy pirune pr t. Ndermjet do $ifti pjatash ka nga nj pirun. !araqitja e ta"olines sht e
ilustruar ne figuren H.9&.

Fig.1.31. /reka ne ,epartamentin e filoBofise.
Aeta e nj filo'ofi konsiston ne perioda t alternuara ngrenieje dhe mendimi. ()jo
sht di$ka e abstraksionit, madje edhe pr filo'ofet, por akti"itetet e tjera ketu jane t
pa"end.) )ur nj filo'of sht i uritur, ai mundohet t marre pirunin e tij ne t majt dhe
ne t djatht, nj ne nj kohe, ne nj rend $faredo. Ne qoft se sht i sukseshem ne
sigurimin e dy pirune"e ai ha pr pak dhe me pas le pirunet, dhe fillon t mendoje. !yetja
kryesore shtJ , mund t shkruani ju nj program pr se$ilin fili'of qe bn at qe
supo'ohet t beje dhe asnjehere nuk mr'itetU (?sht prmendur qe ne"oja e dy pirunj"e
sht di$ka artifi$ialeI mbase duhet t ndryshojme ushqimin nga ai 6talian ne at )ine',
duke 'e"endesuar spagetin me ori'in dhe pirunjt me shkopinjt.)
/igura H.9H. tregon 'gjidhje t dukshme. !ro$edura take%fork pret derisa piruni i
spe$ifikuar sht i disponueshem dhe me pas e kap at. /atkeqesisht, kjo 'gjidhje e
dukshme sht gabim. 1upo'oni qe pese filo'ofet marrin pirunjt ne t majt t tyre, ne t
njjtn kohe. ,snjri nuk sht i aft t marre pirunin ne t djatht t tij. Ne qoft se nuk
mundet ai le pirunin ne t majt, pret pr pak kohe dhe pastaj prserit t gjithe proesin.
)y propo'im, gjithashtu, pr nj arsye apo pr nj tjetr deshton. (e shume pak fat t
keq, filo'ofet mund t fillojne papritur algoritmin, marrin pirunjt ne t majt t tyre,
presin, marrin prseri papritur pirunjt e tyre t majt dhe keshtu me rradhe gjthmone.
Nj situat e tille ku t gjithe programet "a'hdojne t ek'ekutojne, por deshtojne ne
berjen e do nj progresi quhet star"ation ("dekje nga uria). (<uhet star"ation edhe ne se
problemi nuk ndodh ne nj restorant kine' apo italian).
adefine N 7 /b number of philosophers b/

"oid philosopher(int i) /b iJ philosopher number, from 8 to M b/
c
while (N.+) c
think( )I /b philosopher is thinking b/
take`fork(i)I /b take left fork b/
take`fork((iT&) Q N)I /b take right forkI Q is modulo operator b/
eat()I /b yum#yum, spaghetti b/
put`fork(i)I /b !ut left fork ba$k on the table b/
put`fork((iT&) Q N)I /b put right fork ba$k on the table b/
e
e
Fig.1.32. )roblemi i ,arkimit t filoBofe#e pa Bgji,hje.
Nani ju mund t mendoni Epo ne qoft se filo'ofi do t priste nj kohe t
rastesishme dhe jo t njjtn kohe pas deshtimit t marrjes se pirunit ne t djatht, shan$i
qe do gje do t "a'hdoje ne lo$kstp pr edhe nj ore sht shume i "ogelF. )y "rojtim
sht i "ertet, dhe pothuajse ne t gjitha aplikimet t pro"uarit prseri me "one nuk sht
problem. !r shembull, ne siprfaqen lokale t rrjetit thernet, ne qoft se dy kompjutera
dergojne paketa ne t njjtn kohe, se$ili prej tyre pret nj fare kohe t rastesishme dhe
pro"on prseriI Ne praktike kjo 'gjidhje funksionon mire. 1idoqoft, ne disa aplikime,
nj do t preferont nj 'gjidhje qe funksionon gjithmone dhe nuk mund t deshtoje ne
saj t nj serie numrash t rastesishem t papelqyeshem. (endoni rreth kontrollit t sigurt
ne nj u'ine nukleare.
Nj prmiresim i figures &.9H. qe nuk ka asnj deadlo$k dhe asnj star"ation sht
t mbrojme pese formulimet qe ndjekin thirrjen think nga nj semafor binar. !ara fillimit
t marrjes se pirunj"e, filo'ofi duhet t beje nj 'britje ne mute&. !as ri"endosjes se
pirunj"e, ai duhet t bej nj ngritje ne mute&. Nga kend"eshtrimi torik kjo 'gjidhe sht
e prshtatshme. !or nga ana praktike ka nj t met ne performan$eJ ne nj $ast kohe t
$aktuar "etm nj filo'of mund t jet duke ngrene. (e pese pirunj t disponueshem
duhet t jemi t aft t lejojme dy filo'ofe t hane ne t njjtn kohe.
@gjidhja e treguar ne figuren H.99. sht pa deadlo$k dhe lejon paraleli'min
maksimal pr nj numer arbirtar filo'ofesh. ,i prdor nj tabele, state- pr t mbajtur
gjurme ne se nj filo'of po ha, po mendon apo sht i uritur (duke u munduar t marre
pirunjt). Nj filo'of mund t le"i'e ne state#in Wduke ngreneO ne qoft se asnj nga
komshinjt nuk po ha. )omshinjt e filo'ofit t i#t pr$aktohen nga makrot -/N dhe
.652N. Ne fjale t tjera ne qoft se i sht H, -/N sht & dhe .652N sht 9.
!rogrami prdor nj grup semaforesh, nj pr do filo'of, keshtu qe filo'ofet e
uritur mund t bllokojne ne qoft se pirunjt e ne"ojitur jane t 'ene. >ini re qe se$ili
proes ek'ekuton pro$eduren philosopher si kodin e tij kryesor, por pro$eduarat e tjera,
take%forks- put%fork- ,he test jane pro$edura t 'akonshme, dhe nuk ndajne proeset.

adefine N 7 /b number of philosophers b/
adefine -/N (iTNd&)QN /b number of ihs left neighbor b/
adefine .652N (iT&)QN /b number of ihs right neighbor b/
adefine N26N)6N5 8 /b philosopher is thinking b/
adefine 2+N5.] & /b philosopher is trying to get forks b/
adefine ,N6N5 H /b philosopher is eating b/
typedef int semaphoreI /b semaphores are a spe$ial kind of int b/
int state0N4I /b array to keep tra$k of e"eryonehs state b/
semaphore mute% [ &I /b mutual e%$lusion for $riti$al regions b/
semaphore s0N4I /b one semaphore pr philosopher b/

"oid philosopher (int i) /b iJ philosopher number, from 8 to Nd& b/
c
while (N.+) c /b repeat fore"er b/
think()I /b philosopher is thinking b/
take`forks(i)I /b a$quire two forks or blo$k b/
eat()I /b yum#yum, spaghetti b/
put`forks(i)I /b put both forks ba$k on table b/
e
e

"oid take`forks(int i) /b iJ philosopher number, from 8 to Nd& b/
c
down(Smute%)I /b enter $riti$al region b/
state0i4 [ 2+N5.]I /b re$ord fa$t that philosopher i is hungry b/
test(i)I /b try to a$quire H forks b/
up(Smute%)I /b e%it $riti$al region b/
down(Ss0i4)I /b blo$k if forks were not a$quired b/
e

"oid put`forks(i) /b iJ philosopher number, from 8 to Nd& b/
c
down(Smute%)I /b enter $riti$al region b/
state0i4 [ N26N)6N5I /b philosopher has finished eating b/
test(-/N)I /b see if left neighbor $an now eat b/
test(.652N)I /b see if right neighbor $an now eat b/
up(Smute%)I /b e%it $riti$al region b/
e

"oid test(i) /b iJ philosopher number, from 8 to Nd& b/
c
if (state0i4 [[ 2+N5.] SS state0-/N4 i[ ,N6N5 SS state0.652N4 i[ ,N6N5)
c
state0i4 [ ,N6N5I
up(Ss0i4)I
e
Fig.1.33. Nj Bgji,hje pr problemin e ,arkimit t filoBofe#e
2.4.2. PROBLEMI I SHKRUESVE DHE I LEXUESVE
!roblemi i darkimit t filo'ofe"e sht i dobishem pr proeset e modelimit qe
jane konkuruese pr akses eksklusi"e t nj numri t limituar burimesh, si pajisjet 6/:.
Nj tjetr problem i famshem sht problemi i shkrues"e dhe i le%ues"e (*ourtois et al,
&GC&), modelet e t $ilit aksesojne ne nj database. 6magjinoni, pr shembull, nj sistem
re'er"imi ajror, me shume proese konkuruese qe duan t le%ojne apo t shkruajne. ?sht
e pranueshme t kemi shume proese qe le%ojne database ne t njjtn kohe, por ne qoft
se nj proes ishte shkruajtur database#in, asnj proes tjetr nuk mund t ket akses te
database, madje as edhe le%uesit. !yetja sht si i programoni le%uesit dhe shkruesitU Nj
'gjidhje tregohet ne figuren H.9M.
Ne ket 'gjidhje, le%uesi i pare qe do t marre akses t database bn nj 'britje ne
semaforin ,b. -e%uesit pasues thjesht inkrementojne nj numerues, rc. 1apo t ikin
le%uesit, ato dekrementojne numeruesin dhe i fundit bn nj ngritje t semaforit, duke
lejuar nj shkrues t bllokuar, ne qoft se ka nj t tille, t futet.
@gjidhja e pre'antuar ketu ne menyre impli$ite prmban nj "endim delikat pr t
$ilin ia "len t komentojme di$ka. 1upo'oni qe nderkohe qe nj le%ues po prdor
database#in, "jen nj le%ues tjetr. (eqene se t paturit e dy le%ues"e ne t njjtn kohe
nuk prbn ndonj problem, le%uesi i dyt pranohet. Nj le%ues i tret dhe t tjere pasues
mund t pranohen ne qoft se ato do t "ijne.
Nani supo'oni se "jen nj shkrues. 1hkruesi nuk mund t pranohet ne database
prderisa shkruesit duhet t kene akses eksklu'i"e, keshtu shkruesi pe'ullohet. (e "one,
shfaqen le%ues t tjere. !r sa kohe qe t paktn nj le%ues sht akti", le%ues t tjere
pasardhes pranohen. 1i pasoje e kesaj strategjie, pr sa kohe t ket nj furni'im t
rregullt le%uesish, ata do t futen sapo t mberrijne. 1hkruesi do t mbahet i pe'ulluar
derisa t mos ket asnj le%ues. Ne qoft se "jen nj le%ues i ri, le t themi, do H sekonda
dhe se$ili le%ues kerkon 7 sekonda pr t bere punen e tij, shkruesi nuk do t futet
asnjehere.
!r t parandaluar ket situat, programi mund t shkruhet pak ndrysheJ kur
mberrin nj le%ues dhe nj shkrues sht duke pritur, le%uesi ne "end qe t pranohet
menjehere pe'ullohet pas shkruesit. Ne ket menyre shkruesit i duhet t prese "etm pr
le%uesit qe ishin akti" kur ai mberrin, por nuk duhet t prese pr le%uesa qe "ijne pas tij.
=isa"anta'hi i kesaj 'gjidhjeje sht se ajo $on ne uljen e konkuren$es dhe si pasoje ne
nj performan$e me t ulet. *ourtois et al, pre'antoi nj 'gjidhje qe u jep prioritet
shkrues"e.
typedef int semaphoreI /b use your imagination b/
semaphore mute% [ &I /b $ontrols a$$ess to hr$h b/
semaphore db [ &I /b $ontrols a$$ess to the database b/
int r$ [ 8I /b a of proesses reading or wanting to b/

"oid reader("oid)
c
while (N.+) c /b repeat fore"er b/
down(Smute%)I /b get e%$lusi"e a$$ess to hr$h b/
r$ [ r$ T &I /b one reader more now b/
if (re [[ &) down(Sdb)I /b if this is the first reader_ b/
upcSmute%)I /b release e%$lusi"e a$$ess to hr$h b/
read`data`base()I /b a$$ess the data b/
down(Smute%)I /b get e%$lusi"e a$$ess to hr$h b/
r$ [ r$ d &I /b one reader fewer now b/
if (r$ [[ 8) up(Sdb)I /b if this is the last reader_ b/
up(Smute%)I /b release e%$lusi"e a$$ess to hr$h b/
use`data`read()I /b non$riti$al region b/
e
e

"oid writer("oid)
c
while (N.+) c /b repeat fore"er b/
think`up`data()I /b non$riti$al region b/
down(Sdb)I /b get e%$lusi"e a$$ess b/
write`data`base()I /b update the data b/
up(Sdb)I /b release e%$lusi"e a$$ess b/
e
e
Fig.1.3!. Nj Bgji,hje e problemit t le&ues#e ,he shkrues#e.
2.4.3. PROBLEMI I BERBERIT QE FLE
Nj tjetr problem klasik 6!* ndodh ne nj dyqan berberi. =yqani berberit ka
nj berber, nj karrige berberi, dhe n karrige pr tu ulur klientt qe presin, ne qoft se ka.
Ne qoft se nuk ka asnj klient, berberi ulet ne karrigen e berberit dhe bie ne gjume, si$
ilustrohet ne figuren H.97. )ur "jen nj klient, atij i duhet t 'gjoje berberin qe po fle. Ne
qoft se gjat kohes qe po pret floket e nj klienti "ijne klient t tjere, ata ose ulen (ne
qoft se ka karrige bosh) ose ikin (ne qoft se nuk ka karrige bosh). !roblemi sht t
programojme berberin dhe klientt pa shkuar ne kushte ra$e. )y problem sht i
ngjashem me shume situata t gershetuara, si nj 'yre ne ndihme t shume persona"e me
nj sistem t kompjuteri'uar pritjeje t thirrjes pr mbajtjen e nj numri t limituar
thirrjesh hyrese.


Fig.2.3G.*erberi 4e fle.
@gjidhja jone prdor tre semaforeJ customers- i $ili numeron klientt qe po
presin (duke mos prfshire klientin ne karrigen berberit, qe nuk po pret), barbers- numrin
e berbere"e (8 ose &) qe rrine kot, duke pritur pr klient dhe mute&- qe prdoret pr
prjashtimin e ndersjellt (mutual e%$lusion).5jithashtu duhet nj "ariabel, "aiting- e $ila
gjithashtu numeron klientt qe po presin. ?sht thelbesore nj kopje e customers. ,rsyeja
e t paturit "aiting sht sepse nuk ka asnj menyre pr t le%uar "leren aktuale t
semaforit. Ne ket 'gjidhje, nj klient qe hyn ne dyqan duhet t numeroje klientat qe po
presin. Ne qoft se ka me pak se numri i karrige"e, ai qendronI pr ndryshe, iken.
@gjidhja jone tregohet ne figuren H.9D. )ur berberi shfaqet ne mengjes pr
pune, ai ek'ekuton pro$eduren barber sepse ajo fillimisht sht 8. (e pas berberi shkon
t fleje, si$ tregohet ne fig.H.97. ,i fle derisa t "ije klienti i pare.
adefine *2,6.1 7 /b a $hairs for waiting $ustomers b/
typedef int semaphoreI /b use your imagination b/
semaphore $ustomers [ 8I /b a of $ustomers waiting for ser"i$e b/
semaphore barbers [ 8I /b a of barbers waiting for $ustomers b/
semaphore mute% [ &I /b for mutual e%$lusion b/
int waiting [ 8I /b $ustomers are waiting (not being $ut) b/

"oid barber("oid)
c
whit (N.+) c
down(S$ustomers)I /b go to sleep if a of $ustomers is 8 b/
down(Smute%)I /b a$quire a$$ess to hwaitingh b/
waiting [ waiting d &I /b de$rement $ount of waiting $ustomers b/
up(Sbarbers)I /b one barber is now ready to $ut hair b/
up(Smute%)I /b release hwaitingh b/
$ut`hair()I /b $ut hair (outside $riti$al region) b/
e
e

"oid $ustomer("oid)
c
down(Smute%)I /b enter $riti$al region b/
if (waiting Y *2,6.1) c /b if there are no free $hairs, lea"e b/
waiting [ waiting T &I /b in$rement $ount of waiting $ustomers b/
up(S$ustomers)I /b wake up barber if ne$essary b/
up(Smute%)I /b release a$$ess to hwaitingh b/
down(Sbarbers)I /b go to sleep if a of free barbers is 8 b/
get`hair$ut()I /b be seated and be ser"i$ed b/
e else c
up(Smute%)I /b shop is fullI do not wait b/
e
e
Fig.2.3H. Nj Bgji,hje pr problemin e berberit 4e fle.
)ur "jen nj klient, ai ek'ekuton customer- duke filluar me sigurimin e mute&
pr t hyre ne nj "end kritik. Ne qoft se nj tjetr klient futet pak me pas, i dyti nuk
sht i aft t beje asgje derisa i pari t lere mute&%in. (e pas klienti kontrollon ne se
numri i klient"e qe presin sht me i "ogel se i karrige"e. Ne qoft se jo, ai le mute& dhe
iken pa prere floket.
Ne qoft se ka nj karrige t disponueshme, klienti inkrementon "ariablin
integer, "aiting. (e pas ai bn nj ngritje t semaforin customers- keshtu qe 'gjon
berberin. Ne ket pike, klienti dhe berberi jane t dy t 'gjuar. )ur klienti le mute&-
berberi e rrmben at, bn administrimin dhe fillon prerjen e floke"e.
)ur mbaron prerja e floke"e, klienti del nga pro$edura dhe iken nga dyqani.
Ndryshe nga shembujt e meparshem, nuk ka asnj loop pr klientin sepse se$ili pret
"etm nj here floket. ;erberi kthehet pr t marre klientin tjetr. Ne qoft se ka nj t
tille, behet nj tjetr prerje flokesh. Ne qoft se jo, berberi shkon t flej.
?sht e rendesishme t themi se, edhe pse problemet e le%uesit dhe shkruesit
dhe berberi qe fle nuk prfshijne transferimin e t dhena"e, ata akoma i prkasin 6!*
sepse ato prfshijne sinkroni'imin ndermjet shume proese"e.
2.5 SCHEDULIMI
)ur nj kompjuter sht i multiprogramuar, athere ai ka njkohesisht shume proese qe
konkurrojne pr *!+#ne. )jo situat ndodh gjithmone kur dy ose me shume proese jane
ne t njjtin moment ne gjendjen 5ati. Neqoftse "etm nj *!+ sht i gatshem athere
duhet t behet nj 'gjidhje pr proesin e ardhshem qe do t ek'ekutohet. !jesa e sistemit
operati" qe e bn ket 'gjedhje quhet scheduler dhe algoritmi qe ai prdori quhet
algoritmi i s$hedulimit. )eto do jene pikat kryesore pr t $ilat do t flitet gjat ketij
kapitulli.
1humi$a e probleme"e qe prbejne s$hedulimin e proese jane t njjt edhe ne
s$hedulimin e threads edhe se ka ndryshime t "ogla. /illimisht do prqendrohemi ne
s$hedulimin e proese"e. (e "one do t shohim imtsisht s$hedulimin e thread#sa"e.
2.5.1 Hyrje ne konceptin e Schedulimit
Ne kohet kur inputi behej me disqe magnetike, algoritmi 6 sh$edulimit ishte shume i
thjesht, ek'ekuto punen e ardhshme ne disk. (e sistemin timesharing, algoritmi i
s$hedulimit u be me $ompleks sepse prgjithsisht kishte disa prdorues qe prisnin pr
sherbim. =isa mainframe ende kombinojne sherbimin bat$h dhe timesharing, duke
kerkuar qe s$heduleri t "endos n qoft se nj bat$h job ose nj prdorues intera$ti"e ne
nj terminal t "a'hdoj. (Nj bat$h job mund t jet nj kerkese pr t ek'ekutuar me
shume programe rradha'i, por ne ket kapitull do e mendojme si nj kerkeser pr t
ek'ekutuar "etm nj program). 1epse *!+ sht nj burim i "ogel dhe nj s$heduler i
mire mund t prmiresoje ndjeshem performan$en dhe plotsimin e kerkesa"e t
prdoruesit. .rjedhimisht nj pune e madhe sht bere ne 'h"illimin e algoritme"e t
'gjuar dhe efi$ent.
(e ardhjen e kompjutera"e personal, situat ndryshoi ne H pika. para, shumi$en e
kohes ka "etm nj proess akti". Ne qoft se nj prdorues sht duke shkruar nj
dokument ne nj 3ord proessor nuk mund t behet njkohesisht me kompilimin e nj
programi ne ba$kground. )ur nj prdorues shkruan nj komand ne word proessor,
s$heduleri nuk i duhet shume kohe pr t kuptuar se kush proess duhet ek'ekutuar, sepse
word proesori sht kandidati i "etm.
dyta, kompjuterat jane bere aq t shpejt gjat "ite"e saqe *!+ nuk sht me aq i "ogel
sa dikur. 1hume programe pr personal $omputers jane t kufi'uar nga shpejtsia me t
$ilen prdoruesi mund t japi inputin (duke klikuar ose shtypur tastet), dhe jo nga
shpejtsi e ek'ekutimit t *!+#se. Ne kohet e shkuara nj grup instruksionesh i duheshin
nj numer $iklesh *!+ pr ek'ekutim, sot duhet e shumta disa sekonda. dhe kur
ek'ekutohen njkohesisht dy programe, si pr shembull nj word proessor dhe nj
spreadsheet sOka shume rendesi kush nis i pari sepse ka shume mundesi qe prdoruesi i
pret t dy t prfundojne njkohesisht. 1i pasoje, skedulimi nuk ndikon shume ne
kompjutarat e thjesht !*. 1igurisht, ka aplika$ione qe praktikisht e Ehane t gjalleF *!+#
neJ t prodhosh nj ore "ideo me re'olu$ion t lart ne"ojitet fuqi industriale pr
prpunim ima'hi ne se$ilen prej &8L.888 frame#t ne NN1*(G8.888 ne !,-), por keto
aplika$ione jane prjashtime nga rregulli.
)ur flasim pr rrjeta ser"erash ose workstations, situata ndryshon. Ne ket rast disa
proese konkurrojne pr *!+, keshtu qe skedulimi ka rendesi. !r shembull kur *!+
duhet t "endos ne se t ek'ekutoj nj update t ekranit pasi prdoruesi ka mbyllur nj
dritare ose proesin qe dergon nj email qe sht ne radhe pritje, bn shume ndryshim ne
prgjigjen e marre. Ne qoft se ne do prisnim H sekonda deri sa t dergohej emaili dhe me
pas t update#hej ekrani. ,there prdoruesi do t mendonte se sistemi sht tepr i
ngadalt ndersa ne qoft se emaili do dergohej H sekonda me "one se athere prdoruesi
as nuk do e kuptonte "onesen. Ne ket rast skedulimi i proese ka shume rendesi.
!r"e$ se shqetsimit pr t 'gjedhur proesin e duhur pr ek'ekutim, por ai duhet t
shqetsohet edhe pr t bere sa me efi$ent prdorimin e *!+, sepse nderrimi i proese"e
sjell shume "onesa. /illimisht duhet t behet nj kalim nga user mode ne kernel mode.
(e pas gjendja e proesit qe po ek'ekutohet duhet t ruhet, prfshire ketu edhe ruajtjen e
regjistra"e ne tabelen e regjistra"e, keshtu mund t ringarkohen me "one. Ne shume
sisteme harta e memorjes ( pr shembull, bitet e referen$es se memorjes ne tabele) duhet
t ruhen. (e pas nj proes tjetr duhet t 'gjidhet duket ek'ekutuar algoritmin e
s$hedulimit. (e pas ((+#ja duhet t ringarkohet me hartn e memorjes se proesit t
ri. Ne fund proesi i ri duhet t filloj. !r me tepr, ndryshimi i proese"e e bn jo t
"lefshme gjithe $a$he#ne, duke e detyruar at t ringarkohet ne menyre dinamike nga
memorja dy here (ne hyrjen ne kernel dhe ne daljen nga kerneli). !ra ndryshimi i shume
proese"e ne sekonde mund te humbe nj pjese t madhe t kohes se *!+, keshtu qe
keshillohet kujdes.
Sjellja e proeseve
!othuajse do proess altrnon prpunimin kompjuterik me (disk) kerkesat 6/:, si$
tregohet ne fig. H#9C. Normalisht *!+#ja punon pr nj kohe t konsiderueshme para se
t ndaloje, me pas nj thirrje sistem behet pr t le%uar nj file ose pr t shkruar nj t
tille. )ur prfundon thirrja sistem prfundon, *!+ "a'hdon prseri t prpunoje deri sa t
ket ne"oje pr t le%uar t dhena ose pr t shkruar t dhena. =uhet kujtuar se edhe disa
akti"itet 6/: quhen si prpunim. !r shembull, kur *!+ kopjon bite ne nj "ideo .,(
pr t rino"uar pamjen ne ekran, kjo sht prpunim dhe jo 6/:, sepse *!+ sht ne
prdorim. 6/: ne ket sens sht kur nj proess futet ne gjendjen e bllokuar duke pritur
nj paisje t jashtme pr t prfunduar punen e saj.
Figure 2-37. 6mpulset e prdorimit t *!+ t alternuara me momente pritje pr 6/:. (a)
)ufijt e nj proesi ne *!+. (b) )ufijt e nj proesi 6/:.
/akti kryesor qe paraqitt ne /ig.H#9C sht se disa proese, si ai i paraqitur ne /ig.H#
9C(a), shpen'ojne shumi$en e kohes duke prpunuar, ndersa disa t tjere si ne /ig.H#9C(b)
shpen'ojne shumi$en e kohes duke pritur 6/:. N paret quhen compute-boundI t dytt
quhen I/O-bound. !roeset *ompute#bound kane $ikle ne gjata t *!+#se ndersa shume
pak pritje t 6/:, ndersa ato 6/: bound kane pak $ikle t *!+ por shume pritje t 6/:.
*elesi sht gjithmone $iklet e *!+#se dhe jo pritja e 6/:.
Nani nuk kushton shume t kemi nj *!+ t shpejt keshtu qe proeset tentojn t jene
6/: bound. =he me kalimin e kohes do t punohet shume me s$hedulimin e proese 6/:
bound sepse shpejtsia e *!+ sht shume e shpejt se ajo e disqe"e.
Kur t kryhet schedulimi
Nj problem kryesor pr sa i prket s$hedulime"e sht kur t behet s$hedulimi. =el ne
dukje se ka nj numer t madh situatash ne t $ilat duhet s$hedulimi. /illimisht kur nj
proess i ri krijohet, "endimi qe duhet t merret sht ne se duhet t ek'ekutohet proesi
prind apo femije. =uke qene se t dy proeset jane ne gjendjen gati, duhet t behet nj
s$hedulim normal i $ili mund t shkoj ne dy drejtime, domethene qe s$heduleri mund t
'gjedh midis proesit prind dhe femije.
Nj "endim s$hedulimi duhet t behet kur nj proess ek'iston. )y proess nuk mund t
ek'ekutohet (deri sa nuk ek'iston me), pra disa proese t tjera nga lista e proese"e ne
gjendjen gati. Ne qoft se asnj proes nuk sht gati, do t ek'ekutohet normalisht nj
proes i ardhur nga sistemi.
treta, kur nj proes bllokohet ne 6/:, ne nj semafor, ose pr arsye t tjera, duhet t
'gjidhet nj proes tjetr pr tu ek'ekutuar. =isa here arsyeja e bllokimit mund t luaj rol
ne 'gjidhjen e proesit t ri. !r shembull, ne qoft se , sht nj proes i rendesishem
dhe pret qe ; t largohet nga 'ona kritike, ne qoft se ne lejojme qe ; t ek'ekutohet me
"one, do ti hapim rruge proesit , t "a'hdoje fillimisht. !o problemi qendron ne faktin
se s$heduleri nuk e ka informa$ionin e sakt.
katrta, kur ndodh nj interrupt 6/:, duhet t behet nj "endim s$hedulimi. Ne qoft se
interrupti "jen nga nj paisje 6/: qe ka prfunduar punen, disa proese qe mund t ishin
ne pritje t 6/: tani mund t "a'hdojne ek'ekutimin. >aret nga s$heduleri ne qoft se
proeset ne gjendjen gati t ek'ekutohen, ne se proesi qe po ek'ekutohet ne momentin e
interruptit duhet t "a'hdoje ek'ekutimin ose duhet t ek'ekutohet nj proes i ri.
Ne qoft se nj ore hardware prodhon interrupte periodik me frekuen$e 78 2', D8 2'
ose frekuen$a t tjera, nj "endim interrupti mund t behet do interrupt $lo$ku ose do
k#interrupt. ,lgoritmet e s$hedulimit mund t klasifikohen ne dy grupe sipas menyres si
kombinohen me interruptet e $lo$k#ut. Nj algoritem s$hedulimi nonpreemptive 'gjedh
nj proes pr t ek'ekutuar dhe e le t ek'ekutohet deri ne bllokim (si ne 6/: ashtu edhe
pr t pritur nj proes tjetr) ose deri sa t lihet "ullnetarisht *!+#ja. dhe ne qoft se
ek'ekutimi 'gjat pr ore t tra, ai nuk do t ndalohet me for$e. Ne t "ertet asnj
"endim s$hedulimi nuk behet gjat interrupte"e t $lo$k#ut. !as kryerjes se interruptit t
$lo$kut, proesi qe po ek'ekutohej rikthehet ne ek'ekutim.
Ndryshe nga rasti i pare, algoritmi i s$hedulimit preemptive 'gjedh nj proes dhe e
lejon t ek'ekutohet pr nj kohe t $aktuar. Ne qoft se ai sht ende ne ek'ekutim kur
mbaron koha e $aktuar, ai pushon se ek'ekutuari dhe s$heduleri 'gjedh nj proes tjetr
pr ek'ekutim (ne qoft se ka ndonj t gatshem). )ryerja e s$hedulimit preempti"e
kerkon nj $lo$k interrupti ne fund t kohes se $aktuar pr ti dhene kontrollin e *!+#se
prseri s$hedulerit.
Kategorit e algoritmeve t schedulimit.
Nuk sht $udi qe ne sistuata t ndryshme ne"ojitet algoritme t ndryshme s$hedulimi.
)jo situat lind pr shkak se ek'istojne aplikime t ndryshme (dhe sisteme operati"e t
ndryshme) kane qellime t ndryshme. (e fjale t tjera, $fare duhet t optimi'oje
s$heduleri ndryshon nga sistemi. Aa "len t dallojme tre mjedise t ndryshme
&. ;at$h.
2. 6ntera$ti"e.
9. .eal time.
Ne sistemet bat$h, nuk ka prdorues t padurueshem qe presin ne terminalin e tyre pr
prgjigje. .rjedhimisht algoritmet nonpreemti"e ose preempti"e, me period t gjat pr
do proes jane shpesh here t pranueshem. )jo teknike redukton nderrimin e proese"e
dhe prmireson performan$en.
Ne nj mjedis me prdorues interakti", algoritmet preempti"e luajne rol kryesor qe nj
proes t prdori *!+#ne dhe ti mohoje sherbimin proese"e t tjera . dhe se asnj
proes nuk mund t ek'ekutohet ne pafundesi, pr shkak t nj program bug, nj proes
mund ti bllokoje gjithe proeset pafundesisht. !reemtion sht i ne"ojshem pr t
shmangur ket sjellje.
Ne sisteme me kushte real#time, preemption nuk sht i mjaftueshem, disa here nuk
ne"ojitet sepse proeset e dine qe mund t mos ek'ekutohen pr nj kohe t gjat dhe
shpesh here e bejne punen e tyre dhe bllokohen. Ndryshimi midis sisteme"e interakti"
dhe sisteme real#time sht se sistemet real#time ek'ekutojne programe qe mendohet t
shkojne ne aplika$ione t ardheshme. Ndersa sistemet intera$ti"e ek'ekutojne programe
arbitrare qe nuk kooperojne.
Qellimet e algoritmeve t schedulimit
Ne menyre qe t ndertohet nj algoritem s$hedulimi duhet t jet e qart idea se $fare bn
nj algoritem i mire. =isa qellime "aren nga mjedisi (bat$h, intera$ti"e, real#time), por ka
edhe qellime t njjta ne t gjitha sistemet. =isa qellime jane ne /ig. H#9L. =o ti
diskutojme me posht.
N gjithe sistemet
=rejtsia # Ndarja e *!+ nepr proese ne menyre t drejt.
!oli$y enfor$ement # seeing that stated poli$y is $arried out
;alan$e K (bajtja e t gjithe pjese"e t sistemit t 'ena.
;at$h systems
Nhroughput K maksimi'imi i pune"e pr ore.
)oha Nurnaround K minimi'imi i kohes midis submission dhe prfundimit.
!rdorimi *!+ K (bajtja e *!+ t 'ene gjat gjithe kohes.
6ntera$ti"e systems
)oha e prgjigjes K prgjigja ndaj kerkesa"e me shpejtsi.
!roportionality K !lotsimi i kerkesa"e t prdoruesit.
.eal#time systems
.eali'imi brenda kohes se $akuar K !arandalimi i humbjes se t dhena"e
!arashikueshmeria K !arandalimi i degradimit t $ilesise ne sistemet
multimediale.
Figure 2-38. =isa qellime t algoritmit t s$hedulimit ne rrethana t ndryshme.
Ne do rrethane, drejtsia sht e rendesishme. !roese konkurruese duhet t marrin
sherbime konkurruese. Ni japesh nj proesi me shume kohe *!+#je, se nj proesi
ekui"alent nuk sht e drejt. 1igrurisht, kategori t ndryshme proesesh duhet t
trajtohen ndryshe. (jafon t mendojme pr qendren e kompjutera"e ne nj reaktor
nuklear.
N lidhur me drejtsine jane edhe rregullat e sistemit. Ne qoft se rregulli sht qe proesi
pr kontrrollin e sigurise ek'ekutohet kur t doje ai, edhe ne qoft se payroll sht 98
sekonda me "one se, s$heduleri duhet t sigurohet qe ky rregull t 'batohet.
<ellim tjetr, t mbahen sa me shume t jet e mundur t 'ena pjeset e sistemit. Ne qoft
se *!+#ja dhe paisjet 6/: mund t mbahen ne pune gjithe kohes, kryen me shume pune
ne sekonde dhe ne qoft se disa komponent jane t gatshem, ne nj system bat$h, pr
shembull, s$heduleri ka kontroll mbi punet t $ilat sillen ne memorje pr tu ek'ekutuar.
N kesh se bashku ne memorje disa proese *!+#bound dhe disa proese 6/:#bound
sht ide me e mire, sesa t ngarkosh dhe t ek'ekutosh gjithe proeset *!+#bound dhe
me pas, pasi keto t prfundojne, t ngarkohen dhe t ek'ekutohen proeset 6/:#bound.
Ne qoft se prdoret strategjia e dyt, kur proeset *!+#bound po ek'ekutohen, ato do t
jene ngjitur *!+#se dhe disku do t jet bosh. (e pas kur "ijne proeset 6/: Kbound, ato
do t tentojn drejt diskut dhe *!+#ja do t jet bosh. (e mire sht t mbajme t gjithe
sistemin ne pune duke prdorur me kujdes nj pr'ierje proesesh.
(ana%heret e qendra"e t medha kompjuterike qe ek'ekutojne shume proese bat$h
shohim gjithmone tre karakteristika qe t "leresojne sa mire po punon sistemi i tyreJ
throughput, koha turnaround dhe prodrimi *!+. Throughput, sht numri i pune"e pr
ore qe sistemi kryen. =uke marre parasysh t gjitha, prfundimi i 78 pune"e ne ore sht
me mire se M8 pune ne ore. Koha Turnaround, koha mesatare nga momenti qe fillon nj
pune bat$h deri ne momentin qe prfundon. ,jo mat mesataren sa duhet t pres
prdoruesi pr nj prgjigje. )etu rregulli shtJ sa me e "ogel aq me mire.
Nj algoritem qe maksimi'on throughtputin nuk siguron minimi'imin e kohes
turnaround. !r shembull, futja e nj pr'irjeje punesh t shkurtra dhe t gjata, nj
s$heduleri qe gjithmone ek'ekuton punet e shkurtra do t japi nj thorughtput ma%imal
(domethene shume pune t shkurtra t ek'ekutuar brenda nj ore) por nga ana tjetr kemi
nj kohe shume t gjat turnaround pr punet e gjata. Ne qoft se punet e shkurtra "ijne
"a'hdimisht, punet e gjata mund t mos ek'ekutohen kurre duke e $uar kohen turnaround
ne infinit dhe nj throughtput maksimal.
!rdorimi i *!+ sht edhe problem me sistemet bat$h sepse ne mainframe e medha#ja
ku ek'ekutohen sistemet bat$h, *!+ sht ende nj shpen'im i madh. (ana%heret e
ketyre qendra"e kompjuterike gjithmone tentojn t prdorin sa me shume *!+#ne.
(egjithat prdorimi i *!+#se nuk sht nj mats i mire. *fare ka rendesi me shume,
sht punet qe kryhen nga sistemi ne nj ore (throughtput) dhe sa i duhet sistemit pr t
kthyer punen (koha turnaround). N marresh prdorimin e *!+ si tregues sht si t
"leresosh nj makine me sa %hiro bn motorri ne nj ore.
!r sistemet intera$ti"e, kryesisht sistemet time sharing dhe ser"er, aplikohen qellime t
tjera. )ryesori sht mini'imi i kohes se prgjigjes, qe sht koha qe duhet nga dergimi i
komandes deri ne marrjen e prgjigjes. Ne kompjuterat personal kur nj proes
ba$kground po ek'ekutohet (pr shembull, le%imi ose ruajtja e nj emaili nga network),
nj kerkese e prdoruesit pr t nisur ose hapur nj program duhet t ket prioritet mbi
punen qe sht ne ba$kground. k'ekutimi i gjithe kerkesa"e intera$ti"e ne fillim quhet
nj sherbim i mire.
Nj tregues tjetr sht proportionality. !rdoresit kane nj ide (shpesh here t gabuar)
pr kohen sa duhet t 'gjasi nj "eprim i $aktuar. )ur nj kerkese qe prdoruesit e
mendojne si komplekse 'gjat shume, prdoruesit e pranojne ket, por kur nj kerkese e
$ila mendohet se thjesht kerkon shume kohe, athere prdoruesi 'emerohet. !r shembull,
ne qoft se klikimi i nj ikone e $ila bn t mundur lidhjen me nj internet pro"ider me
nj modem analog do t duhet M7 sekonda t krijohet lidhja, prdoruesi sht i detyruar ta
pranoj ket fakt. !or ne qoft se do t duhej M7 sekonda pr t shkeputur lidhjen athere
kjo nuk do pranohej nga prdoruesi. )jo sjellje "jen nga pr$eptimi i do prdoruesi se,
krijimi i nj lidhjeje do gjithmone me shume kohe se sa thjesht shkeputja e lidhjes. Ne
disa raste si ky i sapo s$heduleri nuk ka site ndikoje ne kohen e prgjigjes, por ne raste t
tjera, kryesisht kur "onesa sht si pasoje e nj renditjeje t keqe t proese"e.
1istemet real#time kane karakteristika t ndryshme nga sistemet intera$ti"e keshtu qe ka
edhe qellime t ndryshme s$hedulimi. )eto sisteme karakteri'ohen nga disa kohe 'batimi
t $aktuara qe duhet t respektohen. !r shembull, ne qoft se kompjuteri po kontrollon
nj paisje qe prodhon t dhena me nj fluks kostant, deshtimi ne ek'ekutimin e proesit
data#$olle$tion mund t $oj ne humbje t t dhena"e. !ra kerkesa kryesore ne sistemet
real#time sht respektimi i kohes se 'batimit.
Ne disa sisteme real#time, sidomos ato qe prfshijne multimedia, parashikueshmeria sht
e rendesishme. (os respektimi ne disa raste i kohes se 'batimi nuk sht gjithmone fatal,
por ne qoft se proesi audio fillon t ek'ekutohet me $rregullime, $ilesia e 'erit do t
ulet. dhe "ideo sht problem por "eshi ka me shume ndjeshmeri ndaj gabime"e sesa
"ideoja. !r t parandaluar problemin, proesi i s$hedulimit duhet t jet shume i
parashikueshem dhe i rregullt. =o t studiojme algoritmet bat$h dhe intera$ti"e ne ket
kapitull, por do t prqendrohemi me shume ne s$hedulimin real#time deri sa t shkojme
ne multimedia operating system.
2.5.2 Schedulimi ne sistemet Batch
Nani sht moment pr t kaluar nga s$hedulimi ne prgjithesi ne algoritmat spe$ifi$ t
s$hedulimit. Ne ket paragraph do t studiojme algoritmet e prdorura ne sistemet bat$h.
(e pas do t studiojme sistemet intera$ti"e dhe real#time. Aa "len t theksojme se disa
algoritma jane t njjt si ne sistemet bat$h ashtu edhe ne ato intera$ti"e. =o ti studiojme
keto me "one. )etu do t studiojme algoritmat qe jane t prshtatshem "etm pr sistemet
bat$h.
I pari qe vjen, i pari sherbehet (First-Come First-Served)
Ndoshta algoritmi me i thjesht i s$hedulimit sht nonpreemti"e first-come first-
served. (e ket algoritem, proeset aksesojne *!+ sipas rradhes qe kane kryer kerkesen.
!ra normalisht ka "etm nj radhe t pro$e"e ne gjendje gati. )ur "jen proesi i pare ai
fillon menjehere dhe lejohet t ek'ekutohet deri sa t doje. Bdo pune e re qe "jen
"endoset ne fund t radhes. )ur proesi qe po ek'ekutohet bllokohet athere proesi i
pare qe sht ne radhe do t ek'ekutohet. )ur nj proess i bllokuar ndryshon gjendje dhe
shkon ne gjendjen ready, si t ket ardhur nj pune e re, ky proes "endoset ne fund t
radhes.
mira e ketij algortmi sht se sht i thjesht pr tu kuptuar dhe i thjesht pr tu
programuar. ?sht gjithashtu i drejt ne kuptimin si$ sht e drejt qe biletat e para t nj
kon$erti ose t nj ndeshjeje ti marrin ne fillim ato qe jane ne radhe prej ores H t
mengjesit. (e ket algoritem mjafton "etm nj list e linkuar pr t ruajtur proeset qe
jane ready. @gjedhja e nj proesi mjafton "etm t marrin proesin e pare ne listn
ready. 1htimi i proesit ready ose 'hbllokimi i nj proesi mjafton "etm ta shtojme ne
fund t radhes. 1hume e thjeshti
/atkeqsisht, first#$ome first#ser"ed ka gjithashtu nj disa"anta'h t madh. 1upo'ojme se
ka nj proess $ompute#bound qe ek'ekutohet pr & sekonde dhe shume proese 6/:#
bound qe prdorim pak kohe *!+#je, por qe se$ili prej tyre duhet t kryej &888 le%ime
disku qe t prfundoje. !roesi $ompute#bound eke'ekutohet pr & sekonde, me pas le%on
nj blo$k ne disk. Nani t gjithe proeset 6/: ek'ekutohet dhe fillojne le%imin e diskut.
)ur proesi $opmut#bound merr blo$kun nga disku, ai ek'ekutohet edhe pr & sekonde
tjetr, duke u ndjekur nga gjithe proeset 6/:#bound ne "a'hdim.
.e'ultati final sht se do proess 6/:#bound i duhen & sekonde pr t le%uar nj blo$k
t diskut, pra do i duhen &888 sekonda pr t mbaruar. (e nj algoritem s$hedulimi qe
'e"endeson proesin $ompute#bound do &8 sekonda do t bnte qe proesi 6/:#bound t
prfundonte &8 sekonda ne "end t &888 sekonda dhe duke mos ngadalesuar shume
proesin $ompute#bound.
Puna me e shkurtr e para (Shortest 1ob First)
Nani le t shohim nj algoritem tjetr bat$h nonpreemti"e qe pretendon se koha e
ek'ekutimit dihet paraprakisht. Ne nj kompani sigurimi, pr shembull, njere'it mund t
parashikojne shume sakt sa kohe do t duhet pr ek'ekutuar nj bat$h me &888 thirrje,
duke qene se pune t njjta kryhen do dit. )ur pune t t njjts rendesi presin ne radhe
pr ek'ekutim, s$heduleri 'gjedh punen me t shkurtr. 1hikojme ne /ig. H#9G. 1hohim
katr pune ,,;,* dhe = me kohe ek'ekutimi prkatse L, M, M dhe M minuta. Ne qoft se i
ek'ekutojme keto pune sipas kesaj rradhe, koha turnaround pr , do t jet L minuta, pr
; do jet &H minuta, pr * do jet &D minuta dhe pr = do t jet H8 minuta me nj
mesatare prej &M minutash.
Figure 2-39. Nj shembull i s$hedulimit. !una me e shkurtr e para. (a) k'ekutimi i
katr pune"e sipas rendit original. (b) k'ekutimi sipas rendit. !una me e shkurtr e para.
-e t konsiderojme ek'ekutimin e ketyre katr pune"e duke prdorur, puna me e shkurtr
e para, si$ tregohet ne /ig. H#9G(b). Nani koha turnaround do t jene M,L,&H, H8 me nj
mesatare prej && minutash. -e t konsiderojme rastin e katr pune"e $fardo me kohe
ek'ekutimi a,b,$ dhe d. !una e pare mbaron ne kohen a, e dyta ne kohen aTb dhe keshtu
me rradhe. )oha turnaround sht (MaT9bTH$Td)/M. ?sht e qart se a kontribon me
shume ne mesatare se kohet e tjera, keshtu qe duhet t jet puna me e shkurtr, me b ne
"a'hdim, me pas $ dhe me pas d, si me e gjata e $ila ndikon "etm kohen e "et
turnaround. njjta llogjike aplikohet edhe ne raste kur kemi numer tjetr punesh.
Aa "len t theksojme se algoritmi shortest job first sht i "lefshem "etm kur t gjitha
punet jane t gatshme njkohesisht. 1i nj kundershembull, le t konsiderojme 7 pune,
nga , deri ne , me kohe ek'ekutimi prkatsisht H, M, &, & dhe &. )oha e mberritjes se
tyre sht 8, 8, 9, 9 dhe 9. /illimisht "etm , dhe ; mund t 'gjidhen prderisa punet e
tjera nuk kane ardhur ende. =uke 'gjedhur punen e shkurtr t paren radha e ek'ekutimit
do t jet ,, ;, *, =, me nj mesatare pritjeje M.D. (egjithat sipas radhes ;, *, =, ,
, mesatarja e pritjes sht M.M.
Koha e mbetur me shkurtr (Shortest Remaining Time Next)
Nj "ersion preempti"e i shortest job first sht shortest remaining time next. (e ket
algoritem, s$heduleri 'gjedh gjithmone proesin koha e mbetur e ek'ekutimit t t $ilit
sht me e shkurtr. !rseri edhe ne ket rast koha e ek'ekutimit duhet t jet e ditur. )ur
nj pune e re "jen, koha e tij totale e ek'ekutimit krahasohet me kohen e mbetur t
ek'ekutimit t proesit qe po ek'ekutohet ne at moment. Ne qoft se puna qe erdhi do
me pak kohe pr ek'ekutim se proesi qe po ek'ekutohet, proesi qe po ek'ekutohet do t
pe'ullohet dhe puna e re qe erdhi do t ek'ekutohet. )jo skeme i ofron sherbim me t
mire proese"e t shkurtra.
Schedulimi me tre nivele (Three-Level Scheduling)
Nga nj pikpamje e $aktuar, sistemet bat$h lejojne s$hedulimin me tre ni"ele t ndryshme
si$ sht treguar ne /ig. H#M8. !asi punet "ijne ne system, ato fillimisht "endosen ne nj
radhe input qe ruhet ne disk. ,dmission s$heduler "endos $ilen pune t pranoj sistemi. N
tjeret mbahen ne radhen e inputit deri sa t 'gjidhen. Nj algoritem tipik pr kontrollin e
pranimit sht qe t kerkohet nj mi% i pune"e $ompute#bound dhe pune"e 6/:#bound.
,lternati"a tjetr, punet e shkurtra t 'gjidhen menjehere, ndersa punet e gjata duhet t
presin. ,dmission e$heduler ka t drejt t pranoj pune qe kane ardhur me "one dhe pune
t tjera t presin.
Figure 2-40. 1$hedulimi me 9 ni"ele
Ne momentin qe nj pune pranohet ne sistem, nj proes mund t krijohet pr t dhe
mund t pretndoje pr *!+#ne. (egjithat, mund t ndodhi qe numri i proese"e mund
t jet shume i madh sa nuk mund t ket me "end bosh pr to ne memorje. Ne ket rast,
disa nga proeset duhet t dergohen ne disk. Ni"eli tjetr i s$hedulimit sht 'gjedhja se
$ili proess duhet t mbahet ne memorje dhe kush t mbahet ne disk. =o ta quajme ket
s$heduler memory s$heduler, sepse ai 'gjedh $ili proess duhet t mbahet ne memorje
dhe kush ne disk.
)y "endim duhet t rishikohet shpesh pr t bere t mundur qe proeset ne disk t marrin
sherbimin qe kerkojne. (egjithese sjellja e nj proesi nga disku nuk sht i fa"orshem,
ky rishikim nuk duhet t ndodhi me shume nj here ne se$ond ndoshta edhe me pak. Ne
qoft se prmbajtja e memorjes kryesore rino"ohet shpesh, nj pjese e madhe e
bandwidthit t diskut do t shkoj dem, duke ngadalsuar 6/:.
!r t prmiresuar performan$en ne prgjithesi, s$heduleri i memorjes duhet t "endos
me kujdes sa proese do ne memorje, kjo quhet grada e multiprogramimit dhe llojin e
proese"e. Ne qoft se ai ka informa$ion se $ili proes sht $opmut#bound dhe $ili
sht 6/:#bound, ai mundohet t mbaj nj pr'ierje t ketyre proese"e ne memorje. 1i
nj parashikim i prafert, ne qoft se nj klase e $aktuar proesesh ek'ekutohen pr H8Q
t kohes, mbajtja e 7 prej ketyre proese"e do t mbaj t 'ene gjat gjithe kohes *!+#ne.
Ne kapitullin e M, do t shohim nj model me t mire multiprogramimi.
!r t bere 'gjedhjen e tij, s$heduleri i memorjes ne menyre periodik rishikon do
proes ne disk pr t "endosur kush duhet t $ohet ne memorje. )riteret qe ndjek
s$heduleri pr t bere 'gjedhjen e tij jane ketoJ
1. 1a kohe ka kalur nga momenti qe proesi ka swapped in ose swapped outU
2. 1a kohe *!+#je i sht dhene proesit kohet e funditU
3. 1a i madh sht proesiU (proeset e "egjel nuk e marrin ket rruge)
4. 1a i rendesishem sht proesiU
Ni"eli i tret i s$hedulimit sht 'gjedhja e njrit nga proeset ne gjendjen ready qe
ndodhen ne memorjen kryesore pr tu ek'ekutuar. 1hpesh quhet s$heduleri i *!+#se dhe
sht ai qe ne quajme thjesht s$heduler. )etu mund t prdoret do algoritem i "lefshem,
si preempti"e ashtu edhe nonpreemti"e. )etu bejne pjese algoritmet e shpjeguara me lart
dhe ato qe do shpjegohen me posht.
2.5.3 Schedulimi ne sistemet interactive
Nani do t shohim disa algoritme qe prdoren ne sistemet intera$ti"e. N gjithe keto mund
t prdoren shume mire edhe ne s$hedulerin e *!+#se t sisteme"e bat$h. !rderisa
s$hedulimi me tre ni"ele nuk sht i mundur ketu, s$hedulimi me dy ni"ele sht i
mundur dhe shpesh here i prdorshem (s$heduleri i memorjes dhe s$heduleri i *!+#se).
(e posht do t prqendrohemi me shume ne s$hedulerin e *!+#se.
Schedulimi Round-Robin
-e t shikojme disa algoritma spe$ifi$ s$hedulimi. Nj nga me t "jetrit, me t thjeshtit,
me t drejtt dhe me t prdorshmit sht algoritmi round-robin. Bdo proesi i $aktohet
nj inter"al kohe, i quajtur quantum, gjat t $ilit ai lejohet t ek'ekutohet. Ne qoft se
proesi sht ende duke u ek'ekutuar ne fund t quantumit, *!+#ja i jepet nj proesi
tjetr. Ne qoft se proesi bllokohet ose prfundon para se t mbaroje quantum#i,
nderrimi i *!+#se behet sigurisht kur bllokohet proesi. .ound robin sht i thjesht pr
tu implementuar. 5jith$ka duhet t beje s$heduleri sht t mbaj nj list t proese"e t
ek'ekutueshem, si$ tregohet ne /ig.H#M& (a). )ur proesi e shfryt'on quantumin e tij, ai
"endoset ne fund t lists, si$ tregohet ne /ig. H#M&(b)
Figure 2-41. 1$hedulimi .ound#robin. (a) -ista e proese"e t ek'ekutueshem. (b) -ista
e proese"e t ek'ekutueshem pasi ; e ka prfunduar quantumin e tij.
!roblemi i "etm me round#robin sht gjatsia e quantumit. )alimi nga nj proess ne
tjetrin, kerkon nj fare kohe gjat t $iles behet administrimi, ruajtja e regjistra"e
ngarkues (loading) dhe harts se memorjes, rino"imi i tabela"e t ndryshme dhe lista"e,
pastrimi dhe ringarkimi i memorjes $a$he, etj. 1upo'ojme se ky nderrim proesesh ose
si$ quhet shpesh $onte%t swit$h, 'gjat & mse$, duke prfshire edhe nderrimin e harts se
memorjes, pastrimin dhe ringarkimin e $a$hes, etj. 5jithashtu supo'ojme se quantumi
sht $aktuar Mmse$. (e keto parametra pasi jane kryer M mse$ pune e "lefshme, *!+#
ja do shpen'oje & mse$ ne nderrimin e proese"e. Nj'et prqind e kohes se *!+ do t
shkoje dem me pune administrati"e. =uket qart qe kjo prqindje sht e lart.
!r t rritur efi$en$en e *!+#se, mund t $ojme quantum le t themi &88 mse$. Nani koha
e shpen'uar sht "etm &Q. !or le t konsiderojme do t ndodh ne nj sistem time
sharing ne qoft se dhjet prdorues shtypin t njjtin buton njkohesisht. =hjet proese
do t "endosen ne listn e proese"e t ek'ekutueshem. Ne qoft se *!+#ja sht gati,
proesi i pare do t ek'ekutohet menjehere. 6 dyti mund t mos filloje pas &88 mse$ dhe
keshtu me rradhe. 6 fundit do t jet me fatkeqi dhe ndoshta mund t presi me shume se &
se$ deri sa t marri sherbimin e kerkuar, duke supo'uar se gjithe t tjeret e kane
shfryt'uar plotsisht quantumin e tyre. 1humi$a e prdorues"e do t marrin nj prgjigje
prej & se$ t nj komande si ngadalesim.
Nj faktor tjetr sht $aktimi i quantumit me i gjat sesa perioda kryesore e *!+#se,
'e"endesimi ndodh shume rralle. Ne t njjtn kohe, shumi$a e proese"e do t kryejne
nj "eprim bllokues para se quatumi t mbaroje, duke krijuar nj nderrim proesi.
leminimi i 'e"endesimit rrit performan$en dhe nderrimi i proese"e do t ndodhi "etm
kur sht llogjikisht e ne"ojshme, domethene kur nj proess bllokohet dhe nuk mund t
"a'hdoje.
!rfundimi mund t formulohet si me poshtJ *aktimi i quantumit t shkurtr shkakton
nj numer t madhe nderrime proesesh dhe ul efi$en$en e *!+#se, por $aktimi i nj
quantumi t gjat mund t uli prgjigjet ndaj kerkesa"e t gjata. Nj quantum rreth H8#78
mse$ sht 'gjedhja e prshtatshme.
Schedulimi me prioritet
1$hedulimi .ound#robin bn supo'imin qe t gjithe proeset jane t njjt nga rendesia
qe kane. Normalisht, njere' qe 'otrojne ose punojne ne kompjutera multiuser kane ide t
ndryshme mbi ket teme.
Ne nj uni"esitet radhitja mund t ishte dekani, profesoret, sekretaret, rojet dhe me ne
fund studentt. Ne"oja e faktore"e t jashtm ne llogari na $on tek schedulimi me
prioritet. 6dea ba'e sht e tilleJ do proesi i $aktohet nj prioritet dhe proesi i
ek'ekutueshem me prioritetin me t lart lejohet t ek'ekutohet.
dhe ne nj !* me "etm nj prdorues, mund t ket proese t shume fishta, disa me t
rendesishme se t tjerat. !r shembull, nj proes deamon qe dergon email dhe qendron
ne ba$kground duhet ti $aktohet nj prioritet me t ulet, sesa nj proess qe shfaqe ne
ekran nj film ne real#time.
!r t menjanuar rastin kur proeset me prioritet t lart t ek'ekutohen deri ne nj kohe
t pa$aktuar, s$heduleri mund t uli prioritetin e proesit ne ek'ekutim gjat do tiku t
ores ( pr shembull ne do interrupt t ores). Ne qoft se ky "eprim shkakton uljen e
prioritetit nen ni"elin e prioritetit t proesit t ardhshem, athere do t ndodhi nj
nderrim proesi. ,lternati"a tjetr, do proesi i $aktohet nj kohe maksimale ek'ekutimi
quantum. )ur ky quantum prfundon, i jepet shansi proesit t ardhshem me prioritet me
t madh qe t ek'ekutohet.
!rioriteti mund t $aktohet ne menyre statike ose dinamike. Ne nj kompjuter ushtarak,
proeset fillojne si gjenerale me prioritet &88, si kolonele me G8, si majore me L8,
kapitenet me C8, leitnantt me D8 dhe keshtu me radhe. Ndryshe, ne nj qender
kompjuterash komer$ial, punet me prioritet t lart mund t kushtojne &88 P ne ore,
prioritet t mesem C7 P ne ore dhe prioritet t ulet 78 P ne ore. 1istemi +ni% ka nj
komande, nice qe bn t mundur uljen "ullnetare t prioritetit t proesit, ne menyre qe t
hapi rruge proese"e t tjere. !rdoret shume rralle.
!rioritetet mund t $aktohen edhe ne menyre dinamike nga sistemet pr t arritur nj
qellime t $aktuar. !r shembull, disa proese jane shume 6/: bound dhe shpen'ojne
shume kohe pr t pritur 6/: qe t prfundoje. Ne do moment kur ky proes kerkon
*!+#ne, ajo duhet ti jepet menjehere qe t lejoje t niset kerkesa e ardhshme 6/:, e $ila
mund t "a'hdojne ne paralel punen me nj proes tjetr. N lejosh t presi pr nj kohe
t gjat nj proess 6/: bound, do t thot ta kesh at nepr kembe ne memorjen kryesore
duke e 'ene at. Nj algoritem qe ofron sherbim t mire proese"e 6/: bound ba'ohet ne
prioritet, ne &/f, ku f sht fraksioni i quantumit t fundit qe proesi prdor. Nj proes qe
prdor &mse$ nga 78 mse$ quantum do t ket prioritet 78, ndersa nj proes qe
ek'ekutohet H7 mse$ para se t bllokohet do t ket prioritet H dhe proesi qe do prdori
gjithe quantumin do t ket prioritetin &.
1hpesh here sht e "lefshme t grupohen proeset ne klasa prioriteti dhe me pas t
prdoret s$hedulimi me prioritet midis klasa"e por round#robin brenda do klase. /igura
H#MH tregon nj sistem me katr klasa prioriteti. ,lgoritmi i sh$edulimit sht si me
poshtJ pr aq kohe sa ka proese t ek'ekutueshme ne klasen M, duhet t ek'ekutohet
se$ili prej tyre pr nj quantum, sipas metodes round#robin dhe kurre nuk duhet t
shqetsohen nga proese me klase prioriteti me t "ogel, ne qoft se klasa me prioritet M
boshatiset, athere ek'ekuto proeset e klases me prioritet 9 me round#robin. Ne qoft se
klasa me prioritet M dhe ajo me priorit 9 jane t dyja bosh, athere ek'ekutohen proeset
e klases me prioritet H me round#robin dhe keshtu me rradhe. Ne qoft se prioritetet nuk
rregullohen here pas here, athere me por$eset e klasa"e me prioritet t ulet do t ndodhte
star"a$ioni.
Figure 2-42. Nj algoritem s$hedulimi me katr klasa prioriteti.
Rradhet e shumefishta
Nj nga s$hedulerat e pare me prioritet ishte ne *N11 (*orbatj et al., &GDH). *N11 kishte
nj problem sepse nderrimi i proese"e ishte shume i ngadalt pr shkak se C8GM mund t
mbaj "etm nj proes ne memorje. Bdo nderrim nenkupton dergimin e atij qe po
ek'ekutohej ne disk dhe marrjen e nj t riu nga disku. )rijuesit e *N11 shpejt e kuptuan
qe ishte me efi$ente ti jepej nj here ne nj kohe t $akuar nj quantum i madh proese"e
*!+#bound sesa ti jepej shpesh here nj quantum i "ogel (pr t reduktuar swaping). Nga
ana tjetr ti jepej gjithe proese"e nj quantum i madh do t $onte ne nj kohe prgjigjeje
t gjat. @gjidhja e ketij problemi ishte krijimi i klasa"e me prioritet. !roeset ne klasen
me t lart do t ek'ekutoheshin pr nj quantum t plot. !roeset ne klasen me t lart
pasardhese do t ek'ekutoheshin pr H quanta. !roeset ne klasen pasardhese do t
ek'ekutoheshin pr katr quanta. 1a here qe nj proes gjithe quantat qe i ishin
$aktuar, ai ulet nj klase me posht.
1i shembull, konsiderojme nj proess qe i ne"ojiten pr t prfunduar &88 quanta.
/illimisht do ti jepet nj quantum dhe me pas do largohet. (e pas do ti jepen H quanta
para se t largohet. Ne "a'hdim do ti jepet M, L, &D, 9H, DM quanta edhe se ai do t ket
prdorur "etm 9C nga DM quantat qe do i jepen ne fund. =o t ne"ojiten "etm C largime
(duke marre parasysh edhe ngarkimin fillestar) ne "end t &88 t tilla"e me nj round#
robin t thjesht. Ne "a'hdim, proesi do t futet thelle e me thelle ne radhet e prioritetit,
ai do t ek'ekutohet rralle e me rralle, duke e ruajtur *!+#ne pr proeset intera$ti"e t
shkurtra.
.regulli i meposhtm u adoptua qe t parandalont nj proes qe dont nj kohe t gjat
pr tu ek'ekutuar kur filloi, por qe me "one u be intera$ti"e nga t ndeshkuarit
prgjithmone. 5jithmone kur nj $arriage return sht future ne nj terminal, proesi qe i
prket atij terminali $ohet ne klasen me prioritet me t madh, duke supo'uar se sht
duke u bere intera$ti"e.
Nj dit, nj prdorues me nj proes t rende *!+#bound 'buloi se "etm duke ndenjur
tek terminali dhe duke shtypur me $rregullsi do disa sekonda, bnte $udi pr kohen e
prgjigjes. ,i i tregoi t gjithe shoke"e. (orali shtJ N besh gjera t sakta ne praktike
sht shume me "eshtire se t jene t sakta ne tori.
1hume tipe t tjere algoritmash jane prdorur pr ti $aktuar proese"e klasen e prioritetit.
!r shembull, sistemi R=1 GM8 (-ampson, &GDL), i ndertuar ne ;erkeley, kishte katr
klasa prioriteti, t quajtura terminal, 6/:, quantum i shkurtr, quantum i gjat. )ur nj
proes qe sht duke pritur pr nj input ne terminal 'gjohet, ai menjehere $ohet ne
klasen me prioritet me t lart (terminal). )ur nj proes sht duke pritur nj blo$k t
diksut t behet gati, ai shkon ne klasen e dyt. )ur nj proes sht ende duke u
ek'ekutuar dhe quantum i tij mbaron, proesi "endoset fillimisht ne klasen e tret.
(egjithat, ne qoft se nj proes e mbaron quantumin e tij shume here rresht pa u
bllokuar pr terminal ose 6/: t tjera, athere ai "endoset ne fund t rradhes. 1hume
sisteme t tjera di$ka t ngjashme pr t fa"ori'uar prdoruesit dhe proeset intera$ti"e
ne lidhje me ato qe jane ne ba$kground
Proesi me i shkurtr do jet pasardhesi (shortest process next)
(e qe shortest job first gjithmone prodhon kohen mesatare me t ulet pr sistemet bat$h,
do t ishte mire sikur t prdorej edhe pr sistemet intera$ti"e. =eri ne nj fare pike
mundet. !roesset intera$ti"e prgjithesisht presin pr nj komande, ek'ekutojne
komanden, presin nj komande, ek'ekutojne komanden dhe keshtu me rradhe. N qoft
se ne shohim ek'ekutimin e do komande si pune e "e$ant, munde t minimi'ojme
prgjigjen e prgjithshme duke ek'ekutuar me t shkurtren t paren. !roblemi qendron ne
gjetjen se $ili proes sht me i shkurtri.
Nj menyre sht t ba'ohemi ne sjelljet e meparshme dhe t ek'ekutohet proesi me
kohen e mbetur me t shkurtr. -e t supo'ojme se koha e mbetur pr komande pr disa
terminale sht No. Nani supo'ojme se ek'ekutimi i ardhshem do t jet A
&.
Ne mund t
llogarisim mbetjen duke marre 1humen me peshe t dy numra"e qe, aA
8
T (& d a)A
&
.
=uke 'gjedhur "leren e a#se ne mund t "endosim qe ek'ekutimet e "jetra t harrohen
shpejt ose jo. (e nj a [ &/H ne marrimI
A
8
, A
8
/H T A
&
/H, A
8
/M T A
&
/M T A
H
/H, A
8
/L T A
&
/L T A
H
/M T A
9
/H
!as tre ek'ekutimesh t reja, pesha e A
8
do t ket rene ne &/L.
Neknika e llogaritjes se "leres pasardhese ne nj seri duke prdorur mesataren me peshe
t "lera"e t matura me pare quhet aging. ?sht shume i shpesht rasti kur nj parashikim
duhet t behet ne ba'e t "lera"e t meparshme. ,ging sht i leht t implementohet kur
a [ &/H
Schedulimi i garantuar (Guaranteed Scheduling)
Nj menyre tjetr e s$hedulimit sht t behen premtime reale prdoruesit pr
performan$e dhe me pas ta mbash at. Nj premtim qe sht realisht dhe i leht pr tu
mbajtur sht kyJ N qoft se ka n prdorues t loguar ne momentin qe po punojme, do t
marrim rreth &/n e fuqise se *!+#se. njjta gje me nj prdorues me shume proese t
gjithe t barabart, se$ili do t ket &/n e $ikle"e t *!+#se.
<e t mbahet ky premtim, sistemi duhet t mbaj shenim sa *!+ ka pasur do proes qe
nga krijimi i tij. ,i me pas llogarit pjesen e *!+ qe i prket se$ilit, koha qe kur sht
krijuar, pjesetuar me n. =uke qene se shuma e kohes se *!+#se qe do proes ka sht e
ditur, sht e drejt llogaritja e raportit t kohes aktuale t konsumuar t *!+#se me
kohen e para$aktuar t *!+#se. Nj raport 8.7 nenkupton se proesi ka marre "etm
gjysmen e asaj qe i takonte t merrte dhe nj raport H.8, nenkupton se nj proess ka
marre dyfishin e kohes qe ishte $aktuar. ,lgoritmi ketu sht t ek'ekutohet proesi me
raportin me t "ogel deri sa raporti i tij t behet me i "ogel se i konkurruesit me t afert.
Schedulimi llotari (Lottery Scheduling)
;erja e premtime"e dhe me pas lenia ne dore e tyre sht nj ide e mire, por e "eshtire
pr tu implementuar. (egjithat nj algoritem tjetr mund t prdoret pr t dhene
re'ultate t ngjashme dhe t parashikueshme dhe me nj implementim me t thjesht. )y
quhet schedulimi llotari (3aldspurger and 3eihl, &GGM).
6dea kryosore sht ti japim proese"e bileta llotarie pr burime t ndryshme t sistemit,
si koha e *!+#se. 5jithmone kur duhet t behet nj "endim s$hedulimi, nj bilet llotarie
'gjidhet rastesisht, dhe proesi qe ka ket bilet merre burimin qe kerkon. )ur kjo
aplikohet ne s$hdeulimin e *!+#se, sistemi mund t japi deri ne 78 here ne sekonde, dhe
do fitues t marri H8 mse$ t kohes se *!+#se si $mim.
5eorge :rwell thotJ EN gjithe proeset jane t barabart, por disa jane edhe me t
barabartF. !roeset me t rendesishem mund t marrin bileta spe$iale pr t rritur
shanset e tyre pr fitore. N qoft se ka &88 bileta dhe nj proes ka H8 prej tyre, ai do t
ket H8Q t shanse"e pr t fituar llotarine, dhe do t ket rreth H8 Q t kohes se *!+#se.
Ndersa ne s$hedulimin me prioritet nuk sht e qart se do t thot t kemi nj prioritet
M8. )etu rregulli sht i qartJ 'otrimi i nj fraksioni f t bileta"e do t japi afersisht
fraksionin f t burime"e ne fjale.
1$hdeulimi llotari ka tipare interesante. !r shembull, n qoft se nj proes i ri del ne
skene dhe ka siguruar disa bileta, ne rastin e pare kur do t hidhet llotaria ai do jet ne
gjendje t fitoje ne raport me numrin e bileta"e qe ka.
!roeset qe bashkepunojne mund t shkembejne bileta n qoft se deshirojne. !r
shembull, kur nj proes klient dergon nj mesa'he tek nj proes ser"er dhe me pas
bllokohet, ai mund tOja japi gjithe biletat e tij proesit ser"er, duke i rritur shanset ser"erit
qe t ek'ekutohet. )ur ser"eri mbaron ek'ekutimin, ai ja kthen biletat klientit qe ai t
ket mundesi t ek'ekutohet. Ne fakt ne munges t ser"era"e klientt nuk kane ne"oje
pr bileta.
1$hedulimi me llotari mund t prdoren pr t 'gjidhur probleme qe jane t "eshtira pr
tu mena%huar me metoda t tjera. Nj shembull sht nj "ideo ser"er ne t $ilin shume
proese ushqejne me "ideo stream klientt e tyre, por me frame rate t ndryshme.
1upo'ojme se proeset kerkojne frame nga &8, H8 dhe H7 frame/se$. =uke i $aktuar
ketyre proese"e &8, H8 dhe H7 bileta prkatsisht ato automatikisht do ta ndajne *!+#ne
afersisht ne raportin &8JH8JH7.
Schedulimi me ndarje t drejt (Fair-Share Scheduling)
=eri tani kemi supo'uar se proeset s$hedulohen ne "et"et, pa patur rendesi kush sht
pronari. 1i re'ultat, n qoft se prdoruesi & nis G proese dje prdoruesi H nis & proes,
me round#robin ose me prioritete t njjta, prdoruesi & do marri G8Q t *!+#se dhe
prdoruesi H do t marri "etm &8Q t *!+#se.
!r t parandaluar ket situat, disa sisteme shikojne edhe se kush e 'otrone proesin
para se ta s$hedulojne. Ne ket model, do prdoruesi i $aktohet nj fraksion t *!+#se
dhe s$heduleri 'gjedh proeset duke ju bindur kesaj ndarjeje. !r shembull n qoft se dy
prdorues kane se$ili 78 Q t *!+#se, ata do ta kene ket duke mos u marre parasysh sa
proese ato kane ne ek'istn$e.
1i nj shembull, konsiderojme nj sistem me dy prdorues, ku se$ili prej tyre kane 78 Q
t *!+#se. !rdoruesi & ka katr proese ,, ;, * dhe = dhe prdoruesi dy ka "etm nj
proes. N qoft se round#robin prdoret, athere nj sekuen$e s$hedulim do t jet kjoJ
, ; * = , ; * = ...
N qoft se prdoruesit & do ti jepej dyfishi i kohes se *!+#se ne lidhje me prdoruesin H
athere sekuen$o mund t jetJ
, ; * = , ; * = ...
2.5.4 Schdeulimi ne sistemet real-time
Nj sistem real#time sht nj sistem ku koha luan rol kryesor. Nomalisht, nj ose me
shume paisje t jashtme gjenerojne stimuj dhe kompjuteri duhet t reagoj ne menyre t
drejt kundrejt se$ilit prej tyre me nj pjese kohe t $aktuar. !r shembull, kompjuteri ne
nj $ompa$t disk player merr bitet si$ "ine dhe duhet ti kon"ertoje ne musi$ ne nj
inter"al shume t shkurtr. N qoft se llogaritja 'gjat shume, mu'ika do t degjohet e
"e$ant. 1isteme t tjera real#time jane sistemet e monitorimit t pa$ient"e ne spitale,
piloti automati$ ne a"ion, kontrroli i robotit ne nj fabrike. Ne t gjitha keto raste, t kesh
prgjigjen e duhur por ta kesh me "one se sht aq keq sa mos ta kesh fare.
1istemet real#time ndahen ne hard real time, domethene qe ka limit kohore qe duhet t
'batohen me saktsi. 5rupi tjtr jane soft real time, domethene qe t mos 'batosh ndonj
limit sht i papelqyeshem por i tolerueshem. Ne t dy rastet, arritja e sjelljes real#time
arrihet duke duke ndare programin ne disa proese, ku sjellja e tyre sht e
parashikueshme dhe e njohur qe me pare. !rgjithesisht keto proese jane t shkurtr dhe
ek'ekutohen brenda nj sekondi. )ur ndodh nj ngjarje e jashtme sht detyre e
s$hedulerit pr t s$heduluar proeset ne nj menyre qe gjithe limitet kohore t
respektohen.
Ngjarjet qe nj system real#time duhet ti prgjigjet mund t kategori'ohen si periodic dhe
aperdiodic. Nj sistem mund ti duhet ti prgjigjet shume ngjarje"e periodik, kjo "aret
nga sa kohe kerkon do ngjarje pr prpunim, ndoshta mund t mos jet e mundur
prballimi i gjithe ketyre proese"e. !r shembull, n qoft se kemi m ngjarje periodik
dhe ngarja i ndodh me priod )
i
dhe i duhen '
i
se$konda t kohes se *!+ qe t mena%hoj
do proes, keshtu pra ngarkesa mund t prballohet "etm n qoft se

Nj sistem real#time kur prputhet me ket kritr quhet schedulable.
1i nj shembull, konsiderojme nj soft real#time me tre ngjarje periodik, me perioda
&88, H88 dhe 788 mse$, prkatsisht. N qoft se keto ngjarje kerkojne 78, 98 dhe &88
mse$ kohe *!+#je pr ngjarje dhe sistemi sht s$hedulable, sepse 8.7 T 8.&7 T 8.H Y &.
N qoft se nj ngjarje e katrt me period & se$ shtohet, sistemi do t ngelet s$hedulable
deri ne momentin qe kjo ngjarje nuk do me shume se &78 mse$ t kohes se *!+#se.
1$hedulimi real#time mund t jet stati$ ose dinamik. 6 pari i merr "endimet e tij para se
sistemi t filloje pune. Njetri i merr "endimet e tij gjat kohes kur sistemi sht ne
ek'ekutim. 1$hedulimi stati$ punon "etm kur ka informa$ion t sakt para ek'ekutimit
mbi punen qe do kryhet. 1$hedulimi dinamik nuk i ka keto kufi'ime.
2.5.5 Rregullat dhe mekanizmat
=eri tani, kemi supo'uar se gjithe proeset ne system i prkasin prdorues"e t ndryshem
dhe t gjithe konkurrojne pr *!+#ne. !r sa kohe kjo sht e "ertet, por ka raste kur nj
proes ka shume femije qe ek'ekutohen nen kontrollin e tij. !r shembull, nj sistem
mana%himi t dhenash mund t ket shume femije. Bdo femije mund t punoje ne
kerkesa t ndryshme ose se$ili mund t ket funksion spe$ifi$. ?sht totalisht e mundur
qe proesi kryesor t ket nj ide t qart se $ili nga femijet e tij sht proesi me i
rendesishem. !or asnj s$heduler nuk e bn dot ket.
@gjidhja e ketij problem sht ndarja e mekanizmave t schedulimi nga rregullat e
schedulimit. (e pak fjale duhet t parametri'ohet algoritmi i s$hedulimit, por parametrat
mund t merren nga proeset user. -e t marrim edhe njehere si shembull rastin e data
bases. 1upo'ojme se kernel prdor nj algoritem me prioritet dhe siguron nj system $all
me ane t se $iles nj proes mund t rregulloje prioritetin e femijes se tij. Ne ket
menyre prindi mund ta $aktoje "et si do t shkoje s$hdulimi i femijes se tij, edhe se nuk
sht ai qe e bn s$hedulimin.
2.5.6 Schedulimi I threadsave
)ur do proes kane thread#sa t shumefishta, kemi dy ni"ele t paraleli'mit pre'entJ
proese dhe thread#sa.
1$hedulimi ne keto lloj sistemesh ndryshon thellesisht dhe sht ne "aresi thread#sa"e t
ni"elit#user dhe thread#sa"e t ni"elit#kernel.
-e t konsiderojme thread#sat e ni"elit user t parat. =uke qene se kernel nuk sht ne
dijeni t threadsa"e, ai punon si gjithmone, merr nj proes le t themi , dhe i jep ,#se
quantumin e saj. 1$heduleri i thread#sa"e brenda , "endos qe thread t ek'ekutoj, themi
,&. =eri sa nuk ka intrerrupt $lo$k#u ne multiprogramin e threadsa"e, ai mund t
"a'hdoje t ek'ekutohet sa t doje. N qoft se ai mbaron quantumin e tij athere kernel
do 'gjedhi nj proes tjetr.
)ur proesi , ek'ekutohet prape, thread#si ,& do t "a'hdoje ek'ekutimin e tij. =o t
konsumoje gjithe kohen e , deri sa t mbaroje. 1jellja e tij antiso$ial nuk do ndikoje
proeset e tjera. ,to do t marrin at qe mendon se sht e drejt s$hedulerit nuk ka
rendesi se $ka proesi , brenda.
-e t konsiderojme se thread#sat e , nuk kane shume pune ne do $ikel t *!+#se, pr
shembull, 7 mse$ pune ne 78 mse$ quantum. 1e$ili punon pr pak dhe me pas ja jep
*!+#ne s$hedulerit t thread#sa"e. )jo do t $oj ne sekuen$en @1, @2, @3, @1, @2, @3,
@1, @2, @3, @1, para se kernel t ndryshojne ne ;. )jo situat ilustrohet ne /ig. H#M9(a).
,lgoritmi i s$hedulimit i prdorur nga sistemet run#time mund t jet njri nga keto t
meposhtmit. (e shume prdoren round#robin dhe prioriteti me s$hedulim. !roblemi i
"etm sht mungesa e interruptit t $lo$k#ut.
Nani konsiderojme situatn me ni"elin kernel t thread#sa"e. )etu kernel 'gjedh nj
thread t $aktuar pr u ek'keututar. Nuk merret parasysh kuj i prket thread#si por edhe
mund t merret parasysh. Nhread#sit i jepet nj quantum dhe ai nderpritet kur ky
quantum mbarohet me nj quantum 78 mse$ dhe me thread#sa qe mbarojne pr 7 mse$,
pr 98 mse$ radha mund t jet ,&, ;&, ,H, ;H, ,9, ;9. )jo situat sht prshkruar ne
figuren H#M9.
Figure 2-43. (a) s$hedulimi i mundshem i thread#sa"e me 78#mse$ quantum dhe 7 mse$
pr do ek'ekutim thread#si.
Ndryshimi i thread#sa"e t ni"eli user dhe atyre t ni"elit kernel sht performan$e. =uke
bere nj ndryshim threadi ne user le"el thread#sat marrin dore t instruksione"e makine.
(e ni"elin kernel duhet nj nderrim i plot, nderrim i harts se memorjes, in"alidimi i
$a$hes. Nga ana tjetr, me ni"elin kernel threads, qenia e thread#sa"e ne ni"elin 6/: nuk
pushon gjithe proeset si$ behet ne ni"elin user.
=uke qene se kernel e di se kalimi nga nj thread ne proesin , ne nj thread ne proesin
; sht me kushtueshme se ek'ekutimi i nj thread#i tjetr ne , (pr shkak se duhet t
nderrohet memory map dhe $a$he), ai mund ta marri parasysh ket fakt kur t marri
"endimin e tij.
Nj faktore tjetr i rendesishem sht se thread#sat ne ni"elin user mund t marrin nj
s$heduler spe$ifi$. )onsideroni pr shembull, nj 3eb ser"er ne /ig. H#&8. 1upo'ojme se
nj thread#s sht bllokuar ne dispat$her thread dhe H threadsa punetore jane gati. )ush
duhet t "a'hdojeU 1istemi run#time duke ditur se $bn do thread mund t 'gjedhi
dispat$herin dhe keshtu mund t filloje nj tjetr punetore punen. )jo strategji rrit
paraleli'min ku punetoret shpesh bllokohen ne disk 6/:.
2.6 Kerkime mbi proeset dhe thread-sat
Ne kapitullin & pame disa nga kerkimet e bera ne strukturen e sisteme"e operati"e. Nani
do t shohim kerkimet mbi proeset. =isa subjekt jane me t sqaruar se disa t tjere.
)erkimet ba'ohen ne subjeket qe jane t pa'buluara dhe jo ato qe kane"iteqe trajtohen.
!roesi sht nj kon$ept shume i trajtuar. 5ati do sistem ka nj no$ion t proesit, nj
mbajts 6 pr grupimin e t dhena"e qe kane t bejne me njra#tjetren, si hapesira e
adresa"e, thread#sat, file#t e hapur, ruajtja dhe lejet. 1isteme t ndryshme e bejne ndryshe
grupimin, por ka "etm ndryshime in%hinierike.
Nhread#sat jane ide me e re se proeset, keshtu qe ka ende kerkime ne lidhje me to.
2auser et al. (&GG9), pa si programet reale prdorin thread#sat dhe n%orri &8 prfundime
pr prdorimin e thread#sa"e. 1$hedulimi i threadsa"e multiproessor dhe jo (;lumofe
and -eiserson, &GGMI ;u$hanan and *hien, &GGCI *orbalkn et al., H888I *handra et al.,
H888I =uda and *heriton, &GGGI /ord and 1usarla, &GGDI and !etrou at al., &GGG).
5jithemone prane threadsa"e qendron sinkroni'imi i threadsa"e dhe mutual e%$lusion.
(e &GC8 dhe &GL8 nuk kishte shume pune mbi keto tma, me shume ishin t fokusuar
mbi performan$e. (e.g., -iedtkeI &GG9), mjet pr t dalluar gabimet e sinkroni'imit
(1a"age et al, &GGC) ose modifikimi i kon$epte"e t "jetra me menyra t reja. (Nai and
*ar"er, &GGD, Nrono, H888). 1i prfundim !:16R dhe paketat e threadsa"e ende
prodhohen dhe raportohen ne (,lfieri, &GGM, and (iller, &GGG).
2.7 Prmbledhje
!r t fshehur efektt e interrupte"e, sistemi operati" prodhon nj model kon$eptual qe
konsiston ne ek'ekutimin e proese"e ne paralel. !roeset mund t krijohen dhe
prfundohen ne menyre dinamike.
!r disa aplika$ione sht mire t kemi thread#sa t shumefisht kontrolli ne nj proes.
)eto thread#sa s$hedulohen ne menyre t pa"arur dhe se$ili ka stakun e "et, por do
thread ne nj proes ndan nj hapesire adresash t prbashketa. Nhread#sat mund t
implementohen ne hapesiren user ose kernel.
!roeset mund t komunikojne me njri#tjetrin duke prdorur komunikimin me primiti"e,
si semaphore, monitore ose mesa'he. )eto duhen pr t siguruar se asnj here dy proese
jane ne 'onen kritike ne t njjtn kohe, kjo situat do t $onte ne kaos. !roesi mund t
jet ne ek'ekutim, i ek'ekutueshem ose i bllokuar dhe mund t ndryshoje gjendje kur ai
ose nj proes tjetr ek'ekutojne nj nga primiti"at e komunikimit. )omunikimi
intrhead sht i ngjashem.
1hume algoritme s$hedulimi njihen. =isa prej tyre jane prdorur fillimisht ne sistemet
bat$h, si pr shembull shortest job first. =isa jane t prdorshem ne t dy sistemet at
bat$h dhe intera$ti"e. )etu futen round robin, priority s$heduling, multile"el queues,
guaranted s$heduling, lottry s$heduling dhe fair#share s$heduling.
=isa sisteme bejne t qart dallimin midis mekani'ma"e dhe rregulla"e t s$hedulimit,
gje kjo qe bn t mundur qe prdoruesit t kene kontroll mbi algoritmat e s$hedulimit.
Kapitulli 3
DEADLOCK
1istemet e kompjuterit jane plot me burime te $ilet mund te perdoren "etem nga nje
proes ne nje moment kohe. 1hembuj te shumte jane printerat, tape dri"er dhe slots ne
tabelat e brendeshme te sistemit.
=uke pasur H#proese ne te njejten kohe duke shkruar te printeri nuk ka kuptim. =uke
pasur H#proese qe perdorin te njejtin file sistem, table slot do te mbaj te pa ndryshuar nje
sistem te korruptuar. !er pasoj te gjitha sistemet operati"e kane aftesi (perkohesisht) te
hyrjes tek nje proes i madh eksklu'i" tek disa burime te $aktuara. !er shume aplikime
nje proes do akses eksklu'i" jo "etem tek nje burim por te disa, per shembull,
supo'ojme H proese qe duan te shkruajn ne nje *=. )erkesa e proesit , te perdori
skanerin dhe pastaj e liron ate. !roesi ; eshte i programuar ndryshe, ai kerkon nje *=#
re$order ne fillim dhe pastaj e liron gjithashtu ate. Nani , kerkon nje *=#re$order por
kerkesa mohohet derisa ; ta kete reali'uar ate, per fat te keq ne "end qe ; ta reali'oj
*=#re$order kerkon skanerin, ne kete $ast te dy proeset do te bllokohen dhe do te rrijne
keshtu pergjithmon, kjo situate perben nje deadlo$k.
=eadlo$k mund te ndodhi ne makina per shembull, shume 'yra kane te perhapur nje
rrjet lo$al ne shume !* te lidhur ne te. 1hume sherbime si skanerat, *=#re$order,
printerat dhe tape dri"e jane te lidhur me rrjetin si burime te ndara te "lefshme te mbajne
perdorusin ne ndonje makineri. Ne qofte se keto sherbime mund te reali'ohen se largu
(nga perdorusat shtepiake) i njejtin lloj deadlo$k mund te ndodhi si ky qe shpjeguam.
1ituata me te nderlikuara mund te perfshijn 9, M, 7 ose me shume sherbime dhe
pordorues.
=eadlo$k mund te gjenden ne nje sere situatash sipas kerkesa"e te dedikuara 6/:
de"i$es. Ne nje sistem data base, per shembull, nje program mund ti duhet te mbylli
regjistrime te mundshme qe eshte perdorur per te lejuar kushte te rinje. Ne qofte se
proesi , ka mbyllur regjistrimin .& dhe proesi ; mbyll regjistrimin .H, dhe atehere
sei$ili proes perpiqet te bllokoj burimet e tjetrit, gjithashtu ne kete rast kemi deadlo$k.
)eto burime mund te 'ene nje burim hardware ose software. Ne kete kapitull ne do te
shikojme me nga afer deadlo$k, te shikojme si eshte ndare dhe te studiojme disa raste se
si i ndalojme ose i lejojme ato. (egjithate ky material eshte rreth deadlo$k ne lidhje me
sistemet operati"e, ato gjithashtu perdoren ne sistemet e data base dhe ne shume shken$a
kompjuterike, keshtu qe ky lloj materiali eshte aplikuar ne shume lloje proesesh me
multiproese. 1hume eshte shkruajtur rreth deadlo$kJ H#bibliografi me kete teme jene
shfaqur ne (operating system re"iew) dhe mund te perdoren per referen$e
(Newton,&GCGJdhe @obel,&GL9). (egjithese keto bibliografi jane te "jetra, pjesa me e
madhe e punes per sa i perket deadlo$k eshte bere perpara &GL8, keshtu qe keto jane
akoma shume te perdorura.
3.1 BURIMET
=eadlo$k mund te 'ene "end kur proeset kane dhene pranin ne de"i$er, file e
keshtu me radhe. !er ta bere diskutimin rreth deadlo$k sa me te perafert ne mund ti
referohemi objekte"e qe na japin burime. Nje burim mund te jete hardware (per
shembull, tape dri"er) ose nje pjes informa$ioni (per shembull, nje regjister i bllokuar ne
nje data base). Nje !* normalisht mund te kete shume burime te ndyshme te $ilat mund
te perfitohen. !er shume burime instan$at e identifikimit mund tOi lejojne atij si tape
dri"er. )ur disa kopje te burimit jane te lejueshme shume prej tyre mund te perdoren per
te kenaqur ndonje kerkese te burimit. Ne menyre te permbledhur nje burim eshte nje
di$ka qe ne nje moment te kohes mund te perdoret nga nje proes.
3.1.1 BURIME TE PARANDALUSHEM OSE 1O
;urimet mund tOi kemi ne H tipeJ te parandalushme ose jo. Nje burim eshte i
parandalushem ne qofte se mund te merret nga nje proes duke e fituar ate pa burime
anesore. (emorja eshte nje shembull i burime"e te parandalueshem. )onsiderojme per
shembull, nje sistem me 9H (b te memorjes se perdorshme, nje printer dhe H proese me
nga 9H (b ku se$ili do te printoje di$ka.
!roesi , kerkon dhe merr printerin pastaj nis te ndjeke rregullat e printimit. !erpara
se ai te mbaroje me llogaritjet, ai e shpen'on kohen e tij te kuanti'uar swapped out.
!roesi ; "epron dhe mundohet, por pa sukses per te aksesuar printerin. /uqishem ne tani
kemi nje situate deadlo$k sepse , ka printerin dhe ; memorjen dhe asnjeri nuk mund te
"a'hdoj pa burimet e mbajtura nga tjetriI per fat eshte e mundur te marresh memorje nga
; dhe tOia japesh ,. Nashme , mund te "a'hdoje printimin dhe me pas ta kompletoje
ate. Nani deadlo$k nuk shfaqet.
Nje burim i paparandalueshem ne $ontrast eshte nje qe nuk mund te merret nga
po'i$ioni fillestar pa shkaktuar deshtimin e llogaritje"eJ Ne qofte se proesi ka filluar te
krijoje nje *=#.:(, te marresh papritur *=#.e$order dhe tOi japesh direkt atij nje
proes tjeter mund te re'ultoje me nje *= te parregullt. *=#.ekorder nuk
parandalueshem ne nje moment albitrar. Ne pergjithesi deadlo$k perfshijne burime te
paparandalueshme. =eadlo$k te fuqishem qe perfshijne burime te parandalueshme ne
pergjithesi 'gjidhen per te kaluar burimet nga nje proes ne nje tjeter, ky trajtimi qe ne
po bejme do te fokusohet tek burimet e paparandalueshme. 1eria e ngjarje"e qe
kerkohen te ndiqen per te perdorur nje burim eshte dhene me pas ne nje forme abstrakte.
1. Ne kerkosh burimin.
2. Ne perdoresh burimin.
3. Ne rikthesh burimin.
Ne qofte se burimi nuk eshte i gatshem kur kerkohet, proesi i kerkimit eshte i
detyruar te pres. Ne disa sisteme operati"e proesi bllokohet automatikisht, kur nje
kerkes burimi deshton dhe ri"epron kur ai behet i "lefshem. Ne sisteme te tjera kerkesa
deshton ne nje gabim kodi dhe kalon ne proesin e thirrjes, pret pak dhe fillon proesi.
Nje proes kerkesat e burime"e te te $ilit sapo jane mohuar natyrshem 'ene "end ne
nje nyje te fiksuar duke kerkuar burimin me pas bien ne qetesi pastaj e pro"ojne perseri.
(egjithese ku proes nuk eshte i bllokuar, ne kuptimin e mirefillte, eshte njesoj sikur te
ishte sepse nuk kryen asnje pune te dobishme. Ne trajtimin tone te radhes, ne do te
trajtojme rastin kur nje proesi i mohohet kerkesa per burimin ai kalon ne gjendje sleep
(nuk eshte akti").
Natyra ek'akte e kerkimit te burimit eshte komplet ne "aresi te sistemit. Ne disa sisteme,
kerkesa thirrje sistem, siguron qe te lejoje proesin per te pyetur per burimin ne menyre
ekspli$ite. Ne te tjere, te "etmet burime qe sistemi operati" njeh, jane disa file spe$iale qe
"etem nje proes mund ti hapi ne nje kohe te dhene. )eto hapen nga nje open $all i
'akonshem. Ne qofte se file "a'hdon te jete ne perdorim thirresi erresohet derisa thirresi
qe po e perdor e mbyll ate.
3.1.2 Marrja e burimeve
!er disa lloje burimesh si$ jane regjistrat ne database e nje sistemi eshte detyre e
proesit perdorues te mena%hoj perdorimin "etijak te burimit. Nje menyre e mundshme
e lejimit te mena%himit te burimit nga perdoruesi eshte shoqerimi i do burimi me nga
nje semaformafor. )eta semafor jane te gjithe te ini$iali'uar nga (mute%) dhe mund te
perdoren mjaft mire te gjithe. Ne tre keto shkalle qe permendem, jane te implementuara
ne semafor si$ jane treguar me poshte ne fig.3.1.
typedef int semaphoreI typedef int semaphoreI
semaphore resour$e#&I semaphore resour$e #&I
semaphore resour$e # HI
"oid proess`,("oid) c "oid proess`,("oid) c
down(Sresour$e # &)I down (S resour$e#&)I
use#resour$e #&()I down (S resour$e# H),
up(Sresour$e &)I use both#resour$es()I
e up(Sresour$e#H)I
up(Sresourse`&)I
e
(a) (b)
/igure 9#&. +sing a semaphore to prote$t the resour$es, (aj :ne resour$e, (b) Nwo
resour$es.

=isa here proeset duan dy ose me shume burime, ato mund te fitohen dale#ngadale
si$ tregohet ne (fig.3-h-p). Ne qofte se ne"ojiten me shume se dy burime ato fitohen njeri
pas tjetrit. )aq larg, kaq mire. !er aq kohe sa nje proes eshte i perfshire do gje punon
mire. Natyrisht qe "etem ne nje proes nuk eshte e ne"ojshme te formosh perfitime
burimesh derisa nuk ek'iston nje tip gare per ta.
Nani le te marrim ne $onsiderate nje situate me dy proese , , ; dhe dy burime. =y
skenare jane paraqitur ne fig. 3.2.Ne fig.3.2 a te dy proeset kerkojne burimet e te njejtin
rregull. Ne fig. 3.2 b ata i kerkojne burimet ne menyra te ndryshme. )jo diferen$e mund
te duket e paket , por nuk eshte e tille.
Ne fig. 3.2 a nje nga proeset mund te fitoje burimin e pare me perpara se tjetri. ,i
proes mund te fitoje atehere ne menyre te suksesshme burimin e dyteJ dhe te na beje
ne"e te punojme. Ne qofte se proesi tjeter tenton te fitoje burimin me perpara se ai te
reali'ohet, proesi tjeter thjesht do te bllokohet deri sa te behet i "lefshem.
Ne fig.3.2 b situate eshte e ndryshme. (und te ndodhe qe nje proes i fiton te dy
burimet dhe efekti"isht i bllokon te gjitha proeset e tjera deri sa mbaroje.
(egjithate mund te ndodhe gjithashtu qe proesi , te fitoje burimin e pare dhe ; fiton
burimin e dyte. Bdo njeri prej tyre tani bllokon tjetrin. ,snje proes tjeter nuk mund te
ndodhe, kjo situate eshte nje deadlo$k.
Nani ne shohim se si shfaqet nje diferen$e e "ogel ne nje menyre kodimi, burimet e se
$iles te fituara ne fillim kthehen per te bere diferen$at ndermjet nje programi qe punon
dhe nje programi qe deshton ne nje menyre te "eshtire gjetjeje. 1epse deadlo$k mund te
arrije ne menyre shume te lehte, shume prej kerkime"e kane shkuar ne ndarjen e tyre. )y
kapitull diskuton deadlo$k#et ne detaje dhe se $fare mund te behet me ta.
typedef int semaphoreI
semaphore resour$e#&I semaphore resour$e#&I
semaphore resour$e#HI semaphore resour$e#HI
"oid proess`,c"oid) c "oid proess#,("oid) c
down(Sresour$e #&)I down (S resour$e#&)I
down(Sresour$e H)I down(Sresour$e H)I
use#both#resour$es()I use#both#resour$es()I
up(Sresour$e#H)I upcSresour$e#H)I
up(Sresour$e#&)I up(Sresour$e#&)I
] ]
"oid proess#;("oid) c "oid proess#;("oid) c
down(Sresour$e#&)I down(Sresour$e#H)I
downjSresour$e #H)I do wn(S resour$e # &)I
use # both #resour$esc)I use# both # resour$es ( ) I
up(Sresour$e#H)I up(9$resour$e#&)I
up(Sresour$e#&)I up(Sresour$e #H)J
(a) "'#
Figure 3-2, (a) =eadlo$k#free $ode, (b) *ode with a potential deadlo$k.
3.2 HYR1E TEK DEADLOCK
=eadlo$k#et mund te perkufi'ohen si me poshteJ
Nje set proesesh eshte dead%o&k "; )ge&ur # )e <ofte se do proes )e set eshte duke
pritur )je )gjarje <e *etem )je proes tjeter )e set mu)d ta shkaktoje= sepse )ga te
gjithe proeset <e ja)e duke pritur as)je prej tyre )uk mu)d te shkaktoje )darje,
)gjarja <e mu)d t>i $gjoje te gjithe a)etaret e tjere te setit dhe keshtu te gjitha proest
*a$hdoj)e te presi) pergjithmo)e.
!er kete model ne permbledhim qe proeset kane "etem nje thread te "etem dhe nuk
kane interrupt#e te mundshme per te "ene ne pune proeset e bllokuara. 1ituata e jo#
interrupt#it i duhet te kete (te beje prone te "eten) nje proes deadlo$k#u tjeter per te
'gjuar dhe per te dhene nje alarm dhe me pas te shkaktoje ngjarjet qe te "ene ne pune te
gjitha proeset e setit.
Ne rastet me te shumta ngjarjeje qe do proes eshte duke pritue eshte reali'imi i disa
burime"e te njepasnjeshme, pasuar nga nje anetar tejter i setit. (e fjale te tjera do
anetare i proesit te deadlo$k#ut eshte duke pritur per nje burim qe fitohet nga nje proes
deadlo$k. ,snje prej proese"e nuk ndodh, asnje prej tyre nuk reali'on ndonje burim, dhe
asnje prej tyre nuk mund te "ihet ne pune.
Nr i proes"e dhe nr i llojit te burime"e te paraqitura dhe te kerkura jane te pa
"lefshem. )eto re'ultate jepen per ndonje lloj burimi duke perfshire hardware dhe
software se bashku.
3.2.1 KUSHTET PER DEADLOCK
*offman ka treguar qe M kushte ne"ojiten per nje deadlo$k.
1. )ushte perjashtuese, pershkruese do burim eshte pergjithesisht i shenuar kur
nje proes eshte i "lefshem.
2. )ushti i mbajtjes dhe i pritjes. !roeset e rrjedhshem mbajne burimet e "jetra
qe kerkojne burime te reja.
3. )ushti i paparashikueshem. ;urimet e "jetra nuk mund te hiqen me for$e nga
proesi. ,to mund te shmangen dhe proesi ti mbaje ato.
4. )ushti i pritjes $irkulare. (und te ek'istoje nje rruge $irkulare e dy ose me
shume proese"e ku se$ili prej tyre eshte duke pritur qe nje burim ta marre si
nje anetar tjeter te 'in%hirit.
Ne gjitha keto M kushte mund te ne"ojiten qe te ndodhe nje deadlo$k. Ne qofte se
ndonjeri prej tyre mungon asnje deadlo$k nuk ndodh. shte e ne"ojshme te thoni qe do
njeri prej ketyre kushte"e krijon nje tip kontrolli qe nje sistem mund ta kete ose jo .
, mund nje burim te regjistrohet ne me shume se nje proes ne te njejten koheU ,
mund nje proes te mbaje nje burim dhe te kerkoje per nje tjeterU , mund nje burim te
parashikohet U , ek'istojne 'in%hiret $irkulare U
(e "one ne do te shohim se si deadlo$k#et mund te sulmohen per te bllokuar nje nga keto
fusha.
3.2.2 MODELI DEADLOCK
2alt (&GCH) trgon se si keto M kushte mund te modelohen per te perdorur grafike
direkt. 5rafiku ka dy lloj shenjash. !roest qe paraqiten me rrathe dhe burimet te
paraqitur si katrore. Nje hark nga katrori tek nje rreth d.m.th. qe burimi eshte kerkuar,
sigurohet dhe mbrohet nga proesi. Ne fig 3.0 (a) burimi . eshte shenuar tek proesi ,.
Nje pjese e proesit tek nje burim d.m.th. qe proesi eshte bllokuar perkohesisht duke
pritur per burimin .
Ne fig. 3.3. b proesi ; eshte duke pritur per burimin 1. Ne fig 3.3.c ne shohim nje
deadlo$k. !roesi * eshte duke pritur per burimin N i $ili nderkohe kerkon te ndihmohet
nga proesi =. !roesi = nuk eshte duke reali'uar burimin N sepse eshte duke pritur per
burimin + i $ili mbrohet nga *. Ne dy proeset do te presin pergjithemon $iklin , me
grafikI kjo d.m.th. qe eshte nje deadlo$k qe perfshin proeset dhe burimet ne $ikel
(theksojme qe ka burime te ndryshme per do lloj). Ne kete shembull $ikli eshte *#N#=#
+#* .
Nani le te shohim nje shembull tjeter se sa grafike burimesh mund te perdoren.
6magjinoni qe ne kemi tre proese ,, ; dhe * dhe tre burime .,1,N.
)erkesat dhe reali'imet e tre proese"e jane te dhena ne fig 3.4(a-e). 1istemi operati"
eshte prirur te kapi ndonje proes te pa bllokuar ne ndonje moment keshtu qe ai mund te
"endosi te kapi , , ne momentin qe , mbaron pune .(e pas ai kap ; qe ta kompletoje
dhe ne fund kap *.
)y rregull nuk lejon te ndodh ndonje deadlo$k (sepse nuk ka ndonje gare per burime),
por gjithashtu nuk ka ndonje paraleli'em te pergjithshem. Ne perfundim te burime"e te
kerkuara dhe te reali'uara proesi reali'on dhe ben 6/:. )ur proeset kapen njeri pas
tjetrit, nuk ka ndonje mundesi qe ndersa nje proes tjeter mund te perdori *!+. )jo kapje
strikte e proese"e ne menyre sekuen$iale mund te mos jete me e mira. Ne anen tjeter ne
qofte se asnje nga proeset nuk ben asnje 6/: ne pergjithesi ne qofte se bejne pune te tjera
me te mira eshte me mire se te bejne nje (pla$kitje )$iklike.
!er disa rrethana te besh disa proese ne menyre te njepasnjeshme eshte me e mira.
Nani le te supo'ojme se proeset i bejne te dy 6/: dhe njehsimet, keshtu qe "jedhja
$iklike e shperndare eshte nje algoritem i programuar i arsyeshem. )erkesat e burim"e
mund te ndodhin sipas rregullit tek fig 3.4.d.
Ne qofte se keto D kerkesa mbahen me kete rregull D grafiket e burime"e re'ultati"e jane
te treguar ne fig 3.4(eKj). !as kerkeses M qe eshte bere , bllokon pritjen per 1 si$
pregohet ne fig 3.4.h. Ne dy hapat e tjere ;, * bllokohen gjithashtu , si perfundim for$on
lidhjen ne $ikel dhe deadlo$k nuk ndodh fig 1.4 (i,j)
(egjithate si$ kemi permendur 1: nuk kerkon te kapi proeset me ndonje rregull
spe$ial ne qofte se dhenia e nje kerkese te "a$ant for$ohet lidhet ngusht sipas nje
deadlo$k 1: thjesht mund ti pe'ulloj proeset pa dhene kerkesen (per shembull thjesht
nuk programon proesin) derisa te sigurohet, te ruhet ne fig 3.4. Ne qofte se 1: di rreth
"aresis se deadlo$k ai mund te pe'ulloj ; para se te japi 1.
=uke "epruar "etem , dhe * ne mund te marrim kerkesat dhe r fig 3.4(k) ne "end te
3.4(d). )eto sekuen$a for$ojne atehere grafikun e burimit te fig 3.4(i)-(q), e $ila nuk
lejon te ndodhin deadlo$k.
!asi hapit (q), proesi ; mund ti jepet 1, sepse , ka mbaruar dhe * ka do gje qe i duhet.
dhe ne se ; mund te bllokohet kur kerkon C, asnje deadlo$k nuk und te ndodhe, ;
thejsht do presi derisa te mbaroje *.
(e "one ne kete kapitull ne do te studiojme nje algoritem te detajuar per berjen e
llogaritje"e qe nuk lejojn $uarjen e sistemit ne deadlo$k.
!er momentin ajo qe duhet kuptuar eshte qe grafiket e burime"e jane nje table qe na lejon
ne"e te shohim ne qofte se nje kerkese dhe sekuen$ reali'imesh te dhena lejojne
deadlo$k. Nani per tani ne marrim nje per nje kerkesat dhe reali'imet dhe lejojme do hap
te kerkoj grafikun per te pare nese permban ndonje $ikel, gjithashtu nese kemi deadlo$k
apo nuk kemi deadlo$k.
!ergjithesisht trajtimet jane mbi grafiket e burimet, jene bere per rastin e butime"e te
"e$anta per sei$ilin tip, grafiket e burime"e mund te gjenerali'ohen per te shumefishuar
burimet e te njejtit tip (2olt &GCH).
Ne pergjithesi M strategji jane ndjekur per te shkurtuar deadlo$k.
1. Nhjesht injoron problemet e gjithanshem. (base ngaqe ju do te injoroni ate ai do
ju injoroje ju.
2. =edekto, shtro, lejo te ndodhin deadlo$k dedektoje ate dhe "epro.
3. 1hmangie dinamike nga llogaritjet e kujdesshme te burime"e.
4. !arandalim duke mohuar strukturalisht nje nga M kushtet e ne"ojshme per te
shkaktuar nje deadlo$k,
Ne do te ek'aminojme sei$ilen prej ketyre metoda"e ne milimetra ne M seksionet
pasardhes.
3.3 THE OSTRICH ALGORITEM
,frimi me thjeshte eshte algoritmi skeletorJ /ut kohen tende ne seksion dhe
pretendo qe nuk ka asnje problem.
Njere' te ndryshem reagojne ndaj kesaj strategjie ne menyre te ndryshme.
(atematikisht nuk e kon$eptojne dot dhe thone qe deadlo$k duhet te parandalohet me
do kusht. 6n%hinieret pyesin se sa here eshte kapur problemi, sa shpesh sistemi perplaset
per arsye te tjera dhe sa serio' eshte deadlo$k#u. Ne qofte se deadlo$k#u ndodh ne
inter"al do 7 "ejte, por sistemi perplaset me deshtimet e hardwar#e"e, gabime te
komplikuara dhe "iruse te sistemit operati" ndodhin & here ne ja"e. 1hume in%hiniere nuk
do te preferonin te programonin nje penalitet te madh ne performan$e ose ne perfitim te
eleminimit te deadlo$kut.
!er te bere kete $ontrast me spe$ifi$ shumi$a e sisteme"e operati"e "uajne
poten$ialisht nga deadlo$k#et qe nuk jane detektuar, duke u lene automatikisht te thyhen.
Nr total i proese"e ne nje sistem per$aktohet nga numri i hyrje"e nga nje proes table.
)eto tabela proes jane burime te perfunduar. Ne se nje dyje'im deshton sepse tabela
eshte e plote nje perafrim i arsyeshem i programit duke bere dyje'imin, eshte nje kohe
random dhe te pro"oje perseri.
Nani supo'oni qe nje sistem +N6R ka &88 slote per proes,&8 programe fillojne te
"eprojne ku se$ili prej tyre duhet te krijoje &H nenproese. (e pas do njeri prej ketyre
proese"e krijon &8 proeset origjinale dhe G8 proese te rinj te $ilet e ngarkojne tabelen.
Bdo njeri prej &8 proese"e origjinale tani ulet ne nje nyje fundore, dyje'ohet dhe
deshton, kjo perben nje deadlo$k. !robabiliteti qe kjo te ndodhe eshte shume i "ogel, por
mund te ndodhe.
, do ta braktisim proesin dhe thirrjen per dyje'im per te eleminuar probleminU
Numri maksimal i file"e te hapura eshte i kufi'uar ne menyre te ngjashme nga
permasat e inod$ table, nje problem i ngjashem ndodh dhe kur ajo mbushet plot. 2apesira
e swap ne *= eshte nje tjeter burim i kufi'uar, ne fakt shumi$a e do tabele ne sistemin
operati" paraqet nje burim te kufi'uar. , do ti braktisim ne te gjitha keto sepse mund te
ndodhe qe nje koleksion i N proese"e mund te pretendoje >n te totalit dhe do tjeter te
pretendoje tjetren.
1humi$a e sisteme"e operati"e perfshire +N6R dhe 36N=:31 thjeshte e injorojne
problemin ne nje permbledhje, qe shume perdorues do t preferonin nje deadlo$k rastesor
se sa nje rregull qe kufi'on te gjithe perdoruesit ne nje proes, nje file i hapur dhe do gje
tjeter. Ne qofte se deadlo$ket do te eleminoheshin tek boshti kryesor nuk do te kete
shume diskutime. !roblemi eshte qe $mimi eshte shume i larte, aq shume sa "endosen
dhe kufi'ime ne proese. )eto jane te ballafaqueshme ne nje situate te pakendshme midis
ne"ojshmerise dhe korrektesesJ nje diskutim tjeter i madh eshte se kush eshte me i
rendesishem dhe per $fare.
Ne keto kushte 'gjidhje te pergjitheshme jane "eshtire per tu gjetur.

3.4 PERCAKTIMI I DEADLOCKEVE DHE RIFITIMI I G1END1ES
Nje teknike tjeter eshte detektimi dhe ri"endosja. 5jate perdorimit te kesaj teknike
sistemi nuk tenton te parandaloje ngjarjen deadlo$k, perkundra'i i lejon ato te ndodhin
dhe tenton te identifikoje se kur mund te ndodhe dhe me pas mer masa per ri"endojsen e
gjendjes pas ndodhise. Ne kete seksion do te shikojme disa menyra per identifikimin e
deadlo$k dhe disa menyra se si trajtohen rastet e ri"endosjes se gjendjes.
3.4.1 DETEKTIMI I DEADLOCKEVE ME N1E BURIM PER SECILIN TIP
-e te fillojme me nje rast te thjeshte ku kemi "etem nje paisje per do tip. 1i psh ne
nje sistem te kemi "etem nje skaner nje *=#rom nje plotter nje tape dri"e por jo me
shume se nje eksi'ten$e per do klase paisjesh. (e fjale te tjera per momentin nuk do te
trajtojme sisteme me paisje te dyje'uara per shembull, nje sistem me dy printera. )eto
lloje sistemesh do ti trajtojme me "one duke perdorur nje metode tjeter.
!er keto lloj sistemesh mund te ndertojme nje grafik burimesh (paisjesh) sipas ilustrimit
ne figuren 9#9. Nese ky grafik permban nje apo me shume $ikle athere mund te themi qe
ndodh nje ngjarje deadlo$k. Bdo proes qe eshte pjese e ketije $ikli mund te quhet nje
ngjarje deadlo$k. Nese nuk ek'iston asnje $ikel atehere sistemi nuk ka ngjarje deadlo$k.
1i nje shembull me kompleks se ata qe kemi pare deri tani le te supo'ojme nje sistem
me shtate proese, , deri ne 5 dhe gjashte paisje (burime) . deri ne 3.
.radha e paisje"e atkualisht ne perdorim dhe e atyre te kerkuara per perdorim nga
proeset eshte si me poshteJ
1. !roesi , kap . por deshiron 1.
2. !roesi ; nuk kap asgje por deshiron N.
3. !roesi * nuk kap asgje por deshiron 1.
4. !roesi = kap + dhe deshiron 1 dhe N.
5. !roesi kap N dhe deshiron >.
6. !roesi / kap 3 dhe deshiron 1.
7. !roesi 5 kap > dhe deshiron +.
!yetja ne kete rast eshteJ E, mund te ndodhe ne kete sistem nje ngjarje deadlo$kU Nese
po $ilat jane proeset qe perfshihen ne kete ngjarjeUF
!er tiu pergjigjur kesaj pyetje nderotjme nje grafik burimesh si ne figuren 9#7(a). )y
grafik si$ mund te shikohet dhe me pamje te pare permban nje $ikel. *ikli paraqitet ne
figuren 9#7(b). Nga ky $ikel kuptojme se proeset =, dhe 5 jane te perfshire brenda nje
ngjarje deadlo$k. !roeset ,, * dhe / nuk jane te perfshire ne nje ngjarje deadlo$k sepse
1 mund te "ihet ne dispo'i$ion per se$ilin nga keto proese, te $ilat pasi perfundojne e
lirojne burimin (paisjen) per perdorimI me pas dy proeset e tjere mund te perdorin
burimin sipas rradhes dhe ta lirojne per perdorim pas perfundimit.
(egjidhese eshte relati"isht e thjeshte per te identifikuar ngjarjet deadlo$k dhe proeset e
perfshira ne te nga nje grafik i thjeshte, ne sistemet aktualisht ne perdorim ne"ojitet nje
algoritem formal per identifikimin e ngjarje"e deadlo$k. k'istojne shume algoritme per
identifikimin e $ikle"e ne grafik.
(e poshte do te japim nje shembull qe inspekton nje grafik dhe perfundon duke treguar
nese ka apo jo nje ngjarje deadlo$k. )y algoritem perdor nje strukture te dhenash te
perbere nga nje liste nyjesh. 5jate ketij algoritmi harqet markohen per te dalluar nese ato
jane inspektuar dhe per shmangien e ri"erifikime"e te harqe"e.
,lgoritmi operon sipas hapa"e te spe$ifikuar me poshteJ
1. !er sej$ilen nyje ,
r
ne grafik ndjekim 7 hapat duke mare nyjen > si nyje
fillestare.
2. ;oshatisim listen - dhe identifikojme harqet si te pa kontrolluara.
3. 1htojme nyjen aktuale dhe kontrollojme nese ne - shfaqet dy apo me shume
here.
Nese po atehere grafiku permban nje $ikel te listuar ne - dhe algoritmi perfundon duke
identifikuar nje ngjarje deadlo$k.
4. Nga nyja e dhene kontrollojme per harqe te pa kontrolluara. Ne se po atehere
"a'hdojme me hapin 7 ne te kundert kalojme direkte ne hapin D.
5. @gjedhim nje hark te kontrolluar dhe e $iklojme si te kontrolluar. ndjekim
harkun per ne nyjen tjeter pasardhese dhe rikthehemi ne hapin 9.
6. )emi arritur ne nje nga fundet e ngjarje"e. heqim kete nyje dhe rikthehemi
tek nyja qe kishim ne shqyrtim para kesaj dhe i rikthehemi hapit 9. Nese kjo
nyje eshte nyja fillestare atehere grafi nuk ka $ikle dhe algorimi perfundon.
,jo $ka ben ky algoritem eshte trajtimi i sej$iles nyje si rrenje te asaj qe mund te jete nje
peme dhe ben nje kerkim te thelluar ne te. Ne se i rikthehet ndonje nyjeje qe ka hasur me
pare atehere identifikon nje $ikel. Ne se e'auron te gjitha nyjet pasardhese te nje nyje te
dhene rikthehet ne nyje paralele me te dhenen. Ne se tenton te rikthehet ne nje nyje
paralele me rrenjen pa identifikuar nje $ikel dhe nese i ka kaluar te gjitha nyjet atehere
grafi nuk permban $ikle si rrjedhim sistemi nuk permban ngjarje deadlo$k.
!er ta pare se si funksionon ky algoritem ne praktike le te perdorim grafin e figures
9#7 (a) . .radha e proesimit te nyje"e eshte arbitrare keshtu qe le ti inspektojme nga e
majta ne te djathte dhe nga lart poshte. /illojme ek'ekutimin e algoritmit tek
.... bV
=he me pas tek
..... . ,M, /U, *. 1, :, A- lh, F
=he keshtu me rradhe. Nese hasim nje $ikel y algoritmi ndalon.
-e te fillojme me . dhe ini$iali'ojme - si nje liste boshe. 1htojme . ne liste dhe
le"i'im drejte mundesise se "etme ,. )ete te fundit e shtojme ne - duke bere -[fi(,).
Nga , shkojme ne hapin 7 duke i dhene - "lere - [ .,1. 1 nuk ka harqe te tjere dales
ndaj mund te themi se kemi aritur ne nje fund nyjesh, $ka na detyron te rikthehemi tek ,.
(eqenese , nuk ka harqe te tjera dalese, rikthehemi tek . duke $ilesuar si te plotesuar
inspektimin e pikes ,.
.ifillojme ek'ekutimin e algoritmit duke filluar nga , dhe duke boshatisur listen -.
)y kerikm gjithashtu eshte i thjeshte si dhe kerkimi i meparshem. )eshtu qe kalojme tek
;. Nga ; ndjekim harqet dalese deri sa arrijme tek =, ne kete rast lista - ka "lere -9
7*.A. ?. >, (C. l.< @X4........... Nani na duhet te bejme nje 'gjedhje te rastit. Nese 'gjedhim
1 arrijme ne nje fund nyjesh ndaj duhet te rikthehemi tek =. 2eren e dyte 'gjedhim N dhe
lista - mer "lere -[0l, A- ?y I- :, E. /- C4............, ne kete pike shikojme qe ne graf
kemi nje $ikel dhe ndalojme algoritmin.
)y algoritem eshte shume larg optimales. !er nje algoritem me te detajuar shikoni ("en
&GCG ). (egjithate demostron ek'isten$en e algoritme"e per identifikimin e ngjarje"e
deadlo$k.
3.4.2 DETEKTIMI I DEADLOCKEVE ME BURIME TE SHUMFISHTA
Ne rast se kemi ek'isten$en e shume tipe"e te te njejtes paisje (burim) ne"ojitet te ndiqet
nje tjeter menyre per identifikimin e ngjarje"e deadlo$k. Nani do te trajtojme nje
algoritem matri$or per identifikimin e ngjarje"e deadlo$k midis n proese"e, !4 deri ne
!tl. -e te jete numri klasa"e te paisje"e ( burime"e ) m, me 0burime te klases 4. /i
burime te klases H dhe burime te klases i (V Y i Y m). eshte nje "ektor me burime
ek'istente. Ne te paraqiten totalet e instan$a"e per sej$ilin burim ek'istent. !er shembull
nese klasa & eshte nje tape dri"e t # H do te thote qe sistemi ka dy tape dri"es.
Ne nje $ast te $aktuar disa nga burimet jane te 'ena dhe nuk jane te lira per shfryte'im.
-e te jete , nje burim i lire i "ektorit, me M paraqitet numri i instan$a"e te burime"e / qe
jane aktualisht te lira per perdorim ( te pa 'ena ). Ne se te dy tape dri"es do te ishin te
'ena ahere M do te kishte "leren 8.
Nani na duhen me teper "ektore, *V matri$a aktuale e perdorimit dhe .. (atri$a e
kerkesa"e.
.rjeshti @#te i * tregon se sa instan$a te klases se burime"e !f mbajne aktualisht b.
)eshtu *,C eshte numri i insta$a"e te burimit / qe mbahen nga proesi i. Ne menyre te
ngjashme, 3tj eshte numri i instan$a"e te burimit / qe kerkohen nga !. )eto kater
struktura te dhenash paraqiten ne figuren 9#D.
Ne "en$anti, sej$ili burim eshte ose i bllokuar per shfryte'im ose i lire per shftyte'im.
)ete e tregon dhe struktura e te dhena"e.
,lgoritmi i identifikimit te ngjarje"e deadlo$k eshte i ba'uar ne krahasimin e "ektore"e.
-e te per$aktojme rela$ionin ,Y; mbi dy "ektoret , dhe ;, d.m.th. do elemet i , qe
eshte me i "ogel ose bara'im me elementin korespondent ne ;. (atematikisht ,Y;
qendron "etem nese @J K *- per 6 Y / Y m%.
Bdo proes fillimisht qendron si i pa shenuar. 5jate ek'ekutimit te algoritmit proeset
do te shenohen, duke treguar qe mund te plotesohen totalisht dhe nuk jane pjese e nje
ngjarjeje deadlo$k. )ur algoritmi perfundon proeset e pashenuar njihen si proese
pjesmarrese ne ngjarje deadlo$k.
,lgoritmi i identifikimit te ngjarje"e deadlo$k mund te jepet si me poshteJ
1. )erkojme per proes te pashenuar, )it per te $ilin rrjeshti i%ih i ; eshte me i
"ogel ose bara'im me @-
2. Nese nje proes i tille gjendet, shtojme rrjeshtin /#th te * tek ,M, shenojme
proesin dhe i rikthehemi hapit &.
3. Nese nje proes i tille nuk ek'iston algoritmi perfundon.
)ur algoritmi perfundon te gjithe proeset e pashenuar, nese ka, jane pjese te ngjarje"e
deadlo$k.
,jo $ka ben algoritmi ne hapin e pare eshte kerkimi per proese qe mund te arrine
perfundimin e "et"etes. )eto proese karakteri'ohen nga kereksa per burime te $ilat
mund te plotesohen nga burimet aktuale te lira per shfryte'im. !roesi i 'gjedhur
ek'ekutohet dhe deri sa mbaron, kohe ne te $ilen ai kthen dhe te gjitha burimet qe mban
per shfryte'im, burime te $ilat kthehen ne hapsiren e burime"e te gatshme per shfryte'im
dhe se fundi proesi shenohet si i kompletuar. Nese te gjitha proeset mund te arrijne
perfundimin e tyre atehere asnjeri prej tyre nuk ben pjese ne nje ngjarje deadlo$k.
(egjithate dhe ky algoritem nuk eshte per$aktues ( determinues ) sepse ai mun, te
ek'ekutoje proeset ne menyra jo te para$aktuara.
1i shembull per funksionimin e nje algoritmi per identifikimin e nje ngjarjeje deadlo$k le
te konsiderojme figuren 9#C. )etu kemi tre proese dhe kater klasa burimesh te $ilat i
kemi emertuar arbitrarisht tape dri"e, ploter, skaner dhe *=#.:(. !roesi & ka nje
skaner. !roesi H ka dy tape dri"ers dhe nje *=#.:(. !roesi 9 ka nje ploter dhe dy
skanera. 1ej$ilit proes i ne"ojiten burime shtese, si paraqitet ne"oja per burime shtese, si
paraqitet dhe ne matri$en ..
!er ek'ekutimin e algoritmit te identifikimit te ngjarje"e deadlo$k, kerkojme per proese
kerkesat e te $ile"e per burime mund te plotesohen. )erkesa e pare nuk mund te
plotesohet sepse nuk kemi *=#.:( te lire per shfryte'im. )erkesa e dyte nuk mund te
plotesohet gjithashtu sepse nuk kemi skaner te lire per shfryte'im. /atmiresisht, kerkesa e
trete mund te plotesohet keshtu proesi 9 ek'ekutohet dhe pas perfundimit rikthen te
gjitha burimet e 'ena per shfrytesim duke dhene
, [ (H H H 8)
Ne kete pike proesi H mund te ek'ekutohet dhe ne perfundim kemi
, [ (M 2 2 +)
=he se fundi ek'ekutojme proesin 9. Nuk ka ngjarje deadlo$k ne sistem.
-e te konsiderojme nje ndryshim ne situaten e paraqitur ne /iguren 9#C. 1upo'ojme
qe proesit H i ne"ojitet nje *=#.:( si dhe dy tape#dri"e dhe nje ploter. ,snje nga keto
kerkesa nuk mund te plotesohen keshtu mund te themi se proesi H eshte pjese e nje
ngjarjeje deadlo$k.
Nashme qe dime se si mund te identifikojme nje deadlo$k, pyetja qendron se kur
mund te kerkojme per ndodhjen e tyre. Nje mundesi eshte te kerkojme per to sa here qe
behet nje kerkese per nje burim. Ne kete rast kemi gjetje te sigurt por kjo menyre eshte
shume e shtrejnte ( ne kohe perdorimi te *!+ ). Nje alternati"e tjeter strategjike eshte
kerimi per to do ) minuta ose gjate kohes kur perdorimi i *!+ ka rene nen nje ni"el te
$aktuar.
,rsyea e konsiderimit te kohes se *!+ eshte sepse nese shumi$a e proese"e jane pjese
e ngjarje"e deadlo$k mund te kete shume pak proese te mundeshme per ek'ekutim dhe
*!+ mund te jete e lire per ek'ekutimin e algoritme"e te identifikimit te proese"e
deadlo$k.
3.4,3 RIFITIMI I G1END1ES
1upo'ojme qe algoritmi yne i identifikimit te ngjarjes deadlo$k pati sukses duke
identifikuar nje ngjarje te tille. (e pas ne ndonje menyre do na duhet te 'hbllokojme kete
gjendje te sistemit ne menyre te tille qe ky i fundit te "a'hdoje punen. Ne kete seksion do
te diskutojme per menyrat e rekuperimit te gjendjes se sistemit pas nje ngjarjeje deadlo$k.
Recovery through Pre-emption
Ne disa raste mund te jete e mundur ne menyre te perkohshme te marim nje paisje
burim nga perdoruesi aktual dhe tiha japim per perdorim nje proesi tjeter. Ne shume raste
ne"ojitet nderhyrje manuale "e$anerisht gjate bat$h proessing (grumbullimit te
programe"e) te sisteme"e operati"e qe ek'ekutohen ne mainframe ('h"illimet kryesore).
!er shembull, per marrjen e printerit nga nje perdorues operatori duhet te re'er"oje pjesen
e skedarit te paprintuar ta "endose ne nje maga'ine te perkoheshme, ne kete moment te
shenoje proesin si te ndaluar per momentin dhe ne kete pike tia jape printerin per
perdorim nje proesi tjeter. )ur ky i fundit te kete mbaruar pune te n%jerre pjesen e
paprintuar te skedarit e $ila ndodhet ne maga'inen e perkoheshme, ta "endose ate ne
rradhen e printimit dhe me pas ta deklaroje proesin origjinal si te filluar. )y "eprim i
marrjes se paisjes burim nga perdorimi per nje proes te $aktuar dhe kalimin per
perdorim ndaj nje proesi tjeter "aret shume nga natyra e burimit.
.ekuperimi ne kete menyre eshte shpesh shume i "eshtire ose i pamundur. @gjedhja e
proesit qe duhet te ndalohet eshte ne "artesi se kush nga keto proese kane ne perdorim
burime te $ilat mund te rimeren ne perdorim ne menyre te thjeshte.
Recovery through Rollback
Nese projektuesit e sistemit dhe operatoret e makina"e kane njohuri mbi ngjarjet
deadlo$k, mund te reali'ojne kontroll gjendjeje periodik te proese"e. )ontrolli i gjendjes
se nje proesi ka te beje me shkrimin e gjendjes se nje proesi spe$ifik ne nje skedar ne
menyre te tille qe ta rikthjeme proesin ne gjendjen e meparshme. !er te qene me efekti"
gjendjet e reja te proese"e nuk duhet ti mbi"endosen atyre te "jetra"e por duhet te
rishkruhen ne skedare te rinje ne menyre te tille qe te formojme nje sekuen$e gjendjesh.
)ur identifikohet nje ngjarje deadlo$k mundet te per$aktohen lehte paisjet burim te $ilat
ne"oiten. !er reali'imin e rikthimit te gjendjes normale proesi i $ili ka paisjen e
ne"ojshme ne perdorim kthehet ne nje gjendje perpara se te merte kete paisje ne perdorim
duke perdorur skedaret e kontrollit te gjendjes. gjithe puna e bere pas rikthimit te
gjendjes se proesit humbet. Ne te "ertete, proesi kthehet ne nje gjendje te meparshme
gjate te $iles nuk e kishte akoma ne perdorim paisjen burim e $ila ne kete moment i jepet
per perdorim proesit qe ben pjese ne nje ngjarje deadlo$k. Nese proesi i $ili ka rimar
gjendje te me parshme kerkon serish perdorimin e kesaj paisjeje duhet te prese qe kjo
paisje burim te behet e mundshme per perdorim.
Rikuperim nepemjet vrasjes se proesit
(egjithate menyra me e shkurter per daljen nga nje gjendje deadlo$k eshte shkatrrimi
i proese"e qe bejne pjese ne kete ngjarje. (e pak fat proesi deadlo$k mund te "a'hdoje
por nese kjo nuk mundeson "a'hdimin e ketij proesi atehere shkatrrimi i proese"e qe
perbejne $iklin deadlo$k "a'hdon deri sa $ikli te shperbehet.
Nje alternati"e tjeter eshte shkaterrimi i nje proesi qe nuk ben pjese ne $ikel ne menyre
qe te liroje paisjet burim ne perdorim. )etu duhet te 'gjedhim me kujdes proesin qe
duhet shkaterruar ne menyre te tille qe ky proes te kete ne perdorim paisje te ne"ojshme
per proeset ne $iklin deadlo$k. !er shembull supo'ojme nje proes qe po perdor nje
printer dhe i ne"oitet nje ploter dhe nje proes tjeter qe perdor ploterin por i ne"oitet nje
printer. )eto dy proese bejne pjese ne nje $ikel deadlo$k. Nje proes i trete mund te
mbaje ne perdorim nje printer dhe nje ploter identik me ata aktualish ne perdorim nga
proeset ne deadlo$k. 1hkatrimi i proesit te trete dhe lirimi nga perdorimi i paisje"e ne
perdorim mund te kenaqe kerkesat e dy apo me shume proese"e ne deadlo$k.
)ur eshte e mundur, eshte me mire te shkatrrosh nje proes te tille dhe ta riek'ekutosh pa
efekte anesore.
!er shembull nje proes kompilimi mund te riek'ekutohet sepse ajo $ka ben eshte le%imi
nga nje skedar burim dhe prodhimi i nje skedari objekt. Nese ky proes shkatrrohet gjate
ek'ekutimit riek'ekutimi i tije nuk eshte apsolutisht i influen$uar nga eksekutimi i pare.
Nga ana tjeter dhe nje proes update i nje ba'e te dhenash nuk mund te ek'ekutohet per
here te dyte ne menyre te sigurt. Nese ky proes shton "leren & tek nje rekord i ba'es se te
dhena"e nese ky proes shkaterrohet ek'ekutimi per here te dyte i tije mund te shtoje me
H "leren e keti rekordi, $ka perben nje gabim.
3.5 SHMANG1A E DEADLOCK
5jate diskutimit per identifikimin e ngjarje"e deadlo$k, supo'uam se nje proes gjate
kerkeses per paisje burim munde te kerkoje per shume te tilla ne te njejten kohe (matri$a
. ne figuren 9#D ) ne shume$en e sisteme"e burimet kerkohen ne rradhe.
1istemi duhet te jete ne gjendje te "endose nese ofrimi paisjes burim nga nje proes
siguron "a'hdimesi dhe te beje re'er"imin ne rast se kjo gje eshte e sigurt.
)etu lind pyetjaJ E, ek'iston nje algoritem qe i shmang gjthmone gjendjet deadlo$k
duke bere gjithmone 'gjedhjen e duhurUF
!ergjigja eshteJ E po mund ti shmangim deadlo$k por kur kemi informa$ionin e duhur
perparaF.
Ne kete seksion do te ek'aminojme shmangien e gjendje"e deadlo$k duke 'gjedhur me
kujdes ofrimin e paisje"e burim per perdorim.
3.5.1 Trajektoret e burimeve
,lgorimet kryesore per reali'imin e shmangie"e te gjendje"e deadlo$k jane te
ba'uara ne kon$eptin e gjendje"e te sigurta. !erpara se te pershkruajme keto algorime le
te hedhim nje sy mbi ko$eptin gjendje e sigurt te pershkruar ne menyre grafike.
(egjithese ana grafike nuk perkthehet drejteperdrejte ne nje algoritem te
perdorshem, ajo jep nje pamje te qarte te natyres se problemit.
Ne figuren 9#L paraqitet nje model qe trajton dy proese dhe dy burime psh. Nje priter
dhe nje ploter. ,kset hori'otale paraqesin instruksionet e ek'ekutuara nga proesi ,.
,kset "ertikale perfaqesojne instruksionet e ek'ekutuara nga proesi ;.
Ne /, @ kerkon nje printerI ne /i i ne"oitet nje ploter. !riteri dhe ploteri lirohen nga
perdorimi ne 1 L dhe /M, respekti"isht. !roesit ; i ne"oitet nje ploter nga 1L deri ne /C
dhe nje printer nga ify deri ne /).
Bdo pike ne diagram perfaqeson nje status te bashkuar te dy proese"e.
1i fillim statusi eshte ne p, ku asnje proes nuk ka ek'ekutuar asnje intruksion. Nese
skeduleri "endos te ek'ekutoje ne fillim @, ne arrijme ne piken 4. Ne te $ilen, , ka
ek'ekutuar disa instruksione, kurse * asnje. Ne piken 4 trajektorja behet "ertikale, duke
treguar keshtu qe skeduleri ka 'gjedhur te ek'ekutoje *. (e nje proesor te "etem te
gjitha trajektoret duhet te jene hori'ontale ose "ertikale por asnjehere diagonale.
!er me teper orientimi eshte gjithmone nga "eriu ose lindja, asnjeher nga jugu apo
perndimi. (proeset nuk ek'ekutohen asnjehere mbrapsht). )ur , te kaloje trajektoren
nga r te s ai kerkon printerin dhe pranohet. )ur ; arrin piken t, ai kerkon plotter.
2apesirat e hije'uara jane shume interesante. !jesa me "ija te drejtuara nga jug#
perendimi ne "eri#lindje perfaqesojne te dyja proeset se bashku qe 'oterojne printerin.
.regulli i perjashtimit ben te pamundur hyrjen ne kete 'one. Ne te njejten menyre, 'ona e
hije'uar ne formen tjeter perfaqeson te dy proeset qe 'oterojne njekohesishte plotterin,
dhe eshte po ashtu e pamundur.
Nese sistemi futet ne hapsiren e rrethuar nga /r dhe/J ne anesore, dhe ngai /
9
dhe /
D
larte e poshte, ai do te futet ne deadlo$k kur te arrije ndermjet olh/
H
dhe /
M
. Ne kete pike ,
po kerkon ploterin dhe ; printerin, dhe te dyja jane tashme ne perdorim. gjithe hapesira
eshte e pasigurt dhe ne kete 'one i,ol,l,M dhe u me dalin te paqarta sipas meje per siguri
shiko gjith interpretimin e grafikut sistemi nuk duhet te futet. ,- tregon qe e "etmja gje
qe duhet te behet eshte te ek'ekutohet proesi M derisa te arrije ne /.t. !as kesaj do
trajektore per tek u do te "leje.
Nje gje e rendesishme per te "ene re eshte qe pika ; po kerkon nje burim. 1istemit i
takon te "endose nese ta pranoje ate apo jo. Nese behet pranimi, sistemi futet ne nje 'one
te pasigurt dhe ne nje deadlo$k. !er te shmangur deadlo$kun ; duhet te pe'ullohet deri sa
, te kete kerkuar dhe mbaruar pune me plotterin.
3.5.2 Gjendjet e sigurta dhe te pasigurta
A%goritmi) e shma)gies se dead%o&k,e*e "deshtime*e# )e mu)d ta studiojme duke
perdorur i)forma&io)i) e ig. !,.. Ne do &ast te kohes eshte nje gjendje qe konsiston
tek l. ,. '+ dhe .. Nje gjendje quhet e sigurt nese nuk ndodhet ne gjendje deadlo$k#u
(deshtimi) dhe nese ka ndonje rregull te per$aktuar ne te $ilin do proes mund te
ek'ekutohet plotesisht edhe nese te gjitha papritur kerkojne menjeher numrin ma%imal te
burime"e. shte e thjeshte te ilustrosh kete kon$ept me nje shembull duke perdorur nje
burim ne /ig. 9#G(a) ku shikohet se , ka 9 instan$a te burimit por mund te kete ne"oje
per G. ; ka momentalisht H por me "one do i duhen M. !o njesoj edhe * ka H por mundt ti
duhen 7. k'istojne &8 instan$a te burimit, keshtu qe me C instan$a te grumbulluara
mbeten akoma 9 te lira.
5jendja e /ig. 9#G eshte e per$aktuar sepse ek'iston nje sekuen$e grumbullimesh qe
lejojne te gjitha proeset te plotesohen. Nameiy, skeduleri thjesht mund te ek'ekutoje ;
eksklu'i"isht dersa ai te kerkoje dhe te marre H instan$a te tjera te burimit, duke shkuar
ne gjendjen e /ig. 9#G(b). )ur te jete plotesuar ; ne marrim gjendjen e /ig. 9#G($). !astaj
skeduleri mund te ek'ekutoje *, duke u drejtuar te /ig. 9#G(d). )ur * te plotesohet
shkojme tek /ig. 9#G(e). Nani , mund te marre gjashte instan$at e burimit qe kishte
ne"oje dhe te plotesohet. )eshtu gjendja e /ig. 9#G(a) eshte e sigurte fale sistemit qe
mund te skeduloje ne menyre te kujdesshme dhe te parandaloje deadlo$k#un.
Nani supo'ojme qe kemi gjendjen fillestare te treguar ne /ig. 9#&8(a), por kete rradhe
#M kerkon dhe merr nje tjeter burim, duke na dhene keshtu /ig. 9#&8(b).
, mund te gjejme nje sekuen$e qe eshte e garantuar te punojeU -e ta pro"ojme. 1keduleri
mund te ek'ekutoje ; derisa ai te kerkoje per te gjitha burimet te treguara ne /ig. 9#&8($).
Normalisht ; perfundon dhe ne arrijme ne situaten e /ig. 9#&8 (d). Ne kete pike ne kemi
nge$ur. )emi tani "etem kater instan$a te lira te burimit, kurse se$ila nga proeset akti"e
ka ne"oje per pese te tilla. Nuk ka ndonje sekue$e qe te garantoje perfundimin e
ek'ekutimit. )eshtu qe "endimi i grumbullimit qe le"i'i sistemin nga /ig. 9#&8 (a) ne
/ig. 9#&8 (b) kaloi nga gjendja e sigurt ne ate te pasigurt. ,s te ek'ekutosh , ose * pas
fillimit ne /ig. 9#&8 (b) nuk funksionon. Nga ana tjeter kerkesa /Ns nuk do ishte pranuar,
h +s tani eshte nje gjendje deadlo$k. !o te filloje m /ig. 9#&8(b) sistemi mund te
ek'ekutohet per nje $ast. Ne fakt nje proes mund edhe te perfundoje. !er me teper, eshte
e mundur qe , mund te liroje nje burim perpara se te kerkoje per te tjera duke lejuar
keshtu * qe te perfundoje dhe gjuthashtu te shmange deadlo$k#u. )eshtu pra ndryshimi
midis nje gjendje te sigurt dhe nje te pasigurt eshte se ne nje gjendje te sigurt sistemi
mund te garantoje qe te gjitha proest te perfundojne gje qe nuk garantohet ne nje gjendje
te pasigurt.
3.5.3 Algoritmi i Bankierit per nje burim te vetem.
Nje algoritem rradhitjeje qe mund te shmange deadlo$k#et eshte fale =ijkastra (&GD7)
dhe njihet si bakerOs algorithm, dhe eshte nje 'gjerim i algoritmit te detektimit te
deadlo$ke"e te dhene ne 9.M.&. shte modeluar sipas menyres qe nje banke e "ogel mund
te nder"eproje me klientet e saj te $ile"e u garanton linja krediti. ,jo $ka ben ky
algoritem eshte kontrolli per te pare nese pranimi i kerkeses $on ne nje gjendje te pasigurt
. Nese ndodh, kerkesa mohohet. Nese pranimi te $on ne nje gjendje te sigurt ateher ajo
mbahet. Ne /ig. 9#&&(a) shohim kater kliente, ,, ;, * dhe =, ku se$ilit i eshte pranuar
nje numer i $aktar kreditesh.
;ankieri e di qe jo te gjithe klientet do te kene ne"oje per maksimumin e kredite"e
njeheresh, keshtu qe ai ruajti "etem &8 njesi per tu sherbyer dhe jo HH.
)lientet e$in me prespekti"at e tyre, duke bere "a'hdimisht kerkesa. Ne nje moment te
$aktuar situata eshte si ne /ig. 9#&&(b). )jo gjendje eshte e sigurt sepse me H kreditet e
mbetura bankieri mund te mohoje do kerkese per"e$ *&, dhe me *& te mbaruar lirohen
te katerta burimet e tij. (e kater kredite ne dore, bankieri mund te lejoje = ose L te
marrin kreditet e ne"ojshme e keshtu me rradhe. (endoni pak se $fare do te ndodhte nese
nje kerkese nga ; per nje kredit me shume do te ishte pranuar ne /ig. 9#&&(b). =o te
kishim situaten e /ig. 9#&&(e), e $ila eshte e pasigurte. Nese te gjithe klientet papritmas
do te kerkonin maksimumin e sasise, bankieri nuk do mundte tia plotesonte kerkesen e
asnjerit, dhe do te kishim nje deadlo$k. Nje gjendje e pasigurt sdo te thote qe sjell nje
deadlo$k, meqe nje klient nuk ka ne"oje per gjithe sasine e kredite"e te disponueshme,
por bankieri nuk mund te mbeshtetet tek kjo sjellje.
,lgoritmi i bankierit i konsideron te gjitha kerkesat ti "ijne, dhe shikon nese pranimi
$on ne nje gjendje te sigurt. Ne se po, kerkesa pranohetI perndryshe ajo shtyhet per me
"one.
Ne piken 2Ii gjendja eshte e sigurt, bankieri kontrollon nese ka burime te mjaftueshme
per te kenaqur klientet. Ne se po, sasia e kredite"e supo'ohet te rikthehet dhe klienti me
afer limitit $hekohet, e keshtu me rradhe. =he nese sasia mund te rikthehet, do te thote qe
gjendja eshte e sigurt dhe kerkesa fillestare mund te plotesohet.
3.5.4 Algoritmi i bankierit per burime te shumefishta
)y algoritem mund te pergjithsohet qe te suportoje burime shumefishe dhe kete e tregon
/igura 9#&H.
Ne /ig. 9#&H ne shohim dy matri$a. ,jo ne te majte tregon sa burime jane
momentalisht perdorur nga se$ili nga 7 proeset. (atri$a ne te djatht tregon sa burime te
tjera i duhen se$ilit proes qe te perfundoje. )eto matri$a sjane gje tjeter per"e$ * dhe .
nga /ig. 9#D. ,shtu si ne rastin me nje burim, proeset duhet te per$aktojne totalin e
burime"e qe kane ne"oje para ek'ekutimit, qe sistemi te llogarise matri$en ne te djathte
ne do rast.
Ne tre "ektoret ne te djatht te figures tregojne burimet ek'istuese, lV burimet ne perdorim,
fV dhe burimet e lira, ,. Nga l ne shohim qe sistemim ka gjashte tape dri"es, tre ploteran
kater printera, dhe dy *=#.:(
Nga keto, pese tape dri"ers, tre plotera dhe dy *=#.:( jane momentalisht te
per$aktuara. )y fakt "ihet re qarte tek kater kolonat ne matri$en e majte.
>ektori i burime"e te gatshme eshte thjesht diferen$a midis asaj $ka ka sistemi dhe asaj
$ka eshte momentalisht ne perdorim.
Nani mund te tregojme algoritmin e kontrollit nese gjendja eshte e sigurt apo jo.
1. 5jej rreshtin . ne"ojat e te $ilit per burime jane te barabarta apo me te "ogla se ,.
Nese nje rresht i tille nuk ek'iston sistemi do te shkoje ne gjendje deadlo$k meqe
asnje proes nuk mund te plotesohet.
2. 1upo'ojme qe proesi i atij rreshti te 'gjedhur kerkon te gjitha burimet dhe
perfundon. shenojme kete proes si te perfunduar dhe i shtojme te gjitha
burimet e tij "ektorit ,.
3. !erserisim hapin & dhe H derisa te gjitha proeset te jene shenuar te perfunduar, ne
se$ilin rast qe gjendja fillestare eshte e sigurt, dhe derisa te kemi deadlo$k ne
rastet kur kjo gjendje nuk eshte e sigurt.
Nese ne rastin & kemi shume raste 'gjedhjesh, nuk ka rendesi se ke marrim te parinJ 1asia
e burime"e te gatshme ose behet me e madhe ose mbetet njesoj ne rastin me te keq.
Nani te kthehemi mbrapsht te shembulli i /ig. 9#&H. 5jendja e $astit eshte e sigurt.
1upo'ojme qe proesi ; tani kerkon nje printer. )jo kerkese mund te pranohet sepse
gjendja perfundimtare eshte perseri e sigurt (!roesi = mund te perfundoje, pastaj , ose
, e te tjerat).
Nani imagjinoni qe pasi ti jepet ; nje ose dy printerat e mbetur, kerkon printerin e
fundit. !ranimi i kerkeses mund te reduktoje "ektorin e burime"e te "lefshme ne (& 8 8
8), gje qe $on ne deadlo$k. !ra eshte e qarte qe kerkesa e #se nuk duhet te pranohet per
momentin.
,lgoritmi i bankierit u publikua per here te pare ne &GD7. <e ateher pothuajse do
liber per sistemet operati"e e ka pershkruar ate ne detaje. (e mijera faqe jane shkruajtur
per shume aspekte te ndryshme te ketij algoritmi. !or fatkeqsisht pak autor kane shprehur
qe pan"aresisht se teorikisht ky algoritem eshte i mrekullueshem, praktikisht eshte i
pa"lefshem sepse rralle ndodh qe proeset ta dine me pare se sa do jete maksimumi i
burime"e qe do i ne"ojitet. !er me teper, numri i proese"e nuk eshte fikse, por dinamike
duke "ariuar nga hyrja e dalja e shume perdorues"e. 5jithashtu burimet qe jan te
"lefshme mund papritur te shkeputen nga sistemi. )eshtu qe ne praktike shume pak nga
sistemet ek'istuese perdorin kete algoritem per shmangien e deadlo$k#e"e.
3.6. PARANDALIMI I DEADLOCK-EVE
)emi pare qe shmangia e deadlo$k#e"e ne thelb eshte e pamundur sepse duhet
informa$ion rreth kerkesa"e ne te ardhmen te $ilat nuk njihen. 1i jane sistemet reale te
shmangin deadlo$k#etU !ergjigjja eshte duke u kthyer prapa ne kater kushtet te shpallura
nga *offman et al.(&GC&) per te pare nese ato mund te sigurojne ndonje te dhene. Ne
qofte se mund ta sigurojme ate qe te pakten nje nga keto kushte te mos jete 6
reali'ueshem atehere deadlo$k#et do te jene strukturisht te pamundur (2a"ender,&GDL).
3.6.1 KRITIKAT NDA1 KUSHTIT TE PER1ASHTIMIT TE NDERS1ELLTE
Ne fillim le te kritikojme kushtin e perjashtimit te ndersjellte. Ne qofte se asnje
burim nuk i $aktohet nje proesi te "etem ne nuk do te kemi asnjehere deadlo$k
(bllokim). (egjithate ,eshte e qarte se te lejosh dy proese te printojne ne te njejten kohe
do te $oj ne kaos .!as spooling output#in e printerit, disa proese mund te gjenerojne
output#et e tyre ne te njejten kohe. Ne kete model, proesi i "etem qe porosit materialin
ne printer eshte deamon (printer deamon). (eqenese deamon nuk do te kerkoj kurre
burime te tjera ne mund te eleminojme deadlo$k#et per printerin .
/atkeqesisht jo te gjitha pajisjet mund te bejne spooled (tabela e proesit nuk mund
te jap "eten plotesisht per te bere spooled). >e$ kesaj konkurren$a per hapsiren ne disk
mund te $oj "ete ne deadlo$k. Bfare do te ndodhte ne qofte se dy proese do te mbushnin
se$ili gjysmen e hapsires ne dispo'i$ion per spooling me output#in e tyre dhe asnjehere te
mos mbaroj prodhimin e output#it UNe qofte se deamon eshte programuar te fillojne
printimin ,perpara se i gjithe output#6 te jete spooled, printeri mund te mbetet pa pune ne
qofte se proesi i output#it "endos te pres disa ore perpara se te n%jerr output#in e pare.
!er kete arsye deamons jane programuar normalisht te printojne "etem pasi file
perfundimtar te jete i gatshem. Ne kete rast ne kemi dy proese qe kane perfunduar
pjeserisht por jo komplet output#in (prodhimin) e tyre dhe nuk mund te "a'hdojne.
,snjeri proes nuk do te perfundoje, pra kemi nje deadlo$k ne disk.
(egjithate ketu ka njefare ideje qe eshte shpesh e 'batueshme. (enjano $aktimin e
burime"e kur ato nuk jane absolutisht te ne"onshme dhe perpiqu te sigurohesh se sado
pak proese te jene ne te "ertete mund te kerkojne burime
3.6.2 KRITIKAT NDA1 KUSHTIT TE MBA1T1ES DHE TE PRIT1ES
)ushti i dyte i $aktuar nga *offman duket pak me premtues. Ne qofte se ne mund te
parandalojme proese te $ilet mbajne burime dhe presin per me shume burime ne mund te
eleminojme deadlo$k#e. Nje menyre per te arritur kete qellim eshte tu kerkosh te gjithe
proese"e te kerkojne te gjithe burimet qe u ne"oiten perpara se te fillojne ek'ekutimin.
Ne qofte se do gje eshte ne dispo'i$ion proesi mund te alokoj $fardo gjeje qe te kete
ne"oje dhe mund te ek'ekutohet deri ne fund. Ne qofte se nje ose disa nga burimet jane te
'ena, asnje gje nuk mund te alokohet dhe proesi duhet "etem te pres.
Nje problem qe del menjehere ne kete trajtim eshte se shume proese nuk e dine se
sa burime u ne"oiten deri sa ato te kene filluar ek'ekutimin. Ne fakt, nese ato e dine,
mund te jete perdor algoritmi banker. nje problem tjeter eshte se burimet nuk do te kene
nje perdorim optimal ne kete trajtim. (arrim si shembull, nje proes qe le%on te dhena
hyrese nga nje shirit (tape) hyres dhe i anali'on ato per nje ore dhe pastaj shkruan shiritin
dales (output tape) me se miri duke thurur re'ultatin. Ne qofte se te gjitha burimet do te
ishin kerkuar me perpara, proesi do te bllokonte diskun e shiritit dales (output tape
dri"e) dhe plotter#in per nje ore.
(egjithate shume mainframe, grumbull sistemesh i kerkojne perdoruesit te bejne nje
liste me te gjitha burimet ne linjen e pare te se$iles pune.1istemi atehere siguron
menjeher te gjitha burimet dhe i mban ato derisa te mbaroj pune. Nje menyre pak e
ndryshme per te thyer kushtin e mbajtjes dhe pritjes eshte duke i kerkuar nje proesi te
bej kerkesen per nje burim por me pare te leshoj perkohesisht te gjitha burimet qe po
mban. pastaj te pro"oj te, marre gjith$ka ka ne"oj pernjeheresh.
3.6.3 KRITIKAT NDA1 KUSHTIT TE MOSZEVENDESIMIT
Ne kritikosh kushtin e trete (mos'e"endesimin) eshte me pak premtues se te kritikosh
e dytin. Ne qofte se nje proes i eshte $aktuar printeri dhe eshte ne mes te printimit te
output#it te tij i merret menjeher for$erisht printeri sepse ploteri qe eshte i ne"ojshe nuk
eshte i disponueshem eshte i 'ene (nderlikuar) ne rastin me te mire dhe i pamundur ne
rastin me te keq.
3.6.4 KRITIKAT NDA1 KUSHTIT TE PRIT1ES RRETHORE
Na ka mbetur "etem nje kusht. .rethi i pritjes mund te eleminohet me disa menyra.
Nje menyre eshte thjesht te kesh nje rregull qe thote qe nje proes eshte i lidhur me nje
burim te "etem ne nje moment te $aktuar. Ne qofte se i duhet nje burim tjeter duhet te
leshoj te parin. !er nje proes qe ka ne"oje te kopjoj nje file te madh nga shiriti (tape) ne
printer, kjo pengese eshte e papranueshme. Nje menyre tjeter per te shmangur rrethin
prites eshte te sigurojme nje numerim te te gjitha burime"e si$ tregohet ne figuren 9#&9
(a). tani rregulli eshte kyJ proeset mund te kerkojne burime kur te duan port te gjitha
kerkesat duhet te behen ne nje rend numerik. Nje proes mund te kerkoj ne fillim nje
printer dhe me pas nje disk shiriti (tape dri"e) por ai nuk mund te kerkoj ne fillim
plloter#in dhe me pas nje printer.
(e kete rregull, grafiku i alokimit te burime"e nuk mund te kete kurre nje $ikel. -e
te shohim se pse kjo eshte e "ertete per rastin e dy proese"e, ne figuren 9#&9 (b) Ne
mund te kemi deadlo$k#e "etem nese , kerkon burimin j dhe ; kerkon burimin i .=uke
pretenduar qe i dhe j jane burime te ndryshme ata mund te kene numra te ndryshme. Ne
qofte se iXj atehere proesit nuk i lejohet te kerkoj j sepse ai eshte me i paket se $far ai
ka.Ne qofte se iYj ; nuk i lejohet te kerkoj i sepse ai eshte me i paket se $fare ai ka. Ne
kete menyre deadlo$k#et jane te pamundur te ndodhin.
(e shumfishimin e proese"e, ndiqet e njejta logjike. ne do moment nje nga
burimet do te jete me larte. !roesi qe mban ate burim nuk do te pyes per burimin qe i
eshte $aktuar. ,i gjithashtu mund te perfundoj ose me keq mund te kerkoje nje numer me
te larte burimesh te gjitha ato qe jane te disponueshme .!erfundimisht ai do te perfundoje
dhe te liroj burimet e 'ena prej tij. !er kete shume prej proese"e te tjera mund te kapin
burimet me larte dhe gjithashtu mund te perfundojne dhe ata. (e pak fjale ek'iston nje
plan ne te $ilin te gjithe proeset mbarojne, pra asnje deadlo$k nuk re'ulton.
Nje ndryshim i "ogel i ketij algoritmi eshte se hedh kerken qe burimi te jete saktesisht
nje sekuene rritese, dhe thjeshte insiston qe asnje proes te mos kerkoje nje burim me te
ulet se ate qe mban. Ne qofte se proesi kerkon G dhe &8 dhe me pas i liron qe te dy eshte
efekti"e qe te fillosh nga fillimi keshtu qe nuk ka arsyje qe te ndaloj kerkesen per burimin
&. (egjithese renditja numerike e burime"e eleminon problemin e deadlo$ke#"e mund te
jete e pamundur te gjesh nje rregull renditje per te kenaqur gjithkend. )ur burimet
perfshijne, proes table slots, hapsiren spooler ne disk, bllokimin e rekorde"e ne database
dhe burimet e tjera abstrakte, numri i burime"e mund te jete aq i madhe saqe asnje
renditje e mundshme nuk funksionon.
(undesite e ndryshme per te parandaluar deadlo$k#e jane permbledhurne fig 9#&M
3.7 SHT1E T T1ERA
N kt pjes do t diskutojm pak eshtje t lidhura m deadlo$k#un (bllokimet).
)ta prfshijn dy fa'a# bllokimi, deadlo$k#et (bllokim) pa burim dhe star"a$ioni
("djekje nga uria).
3.7.1 DY FAZA BLLOKIMI (MBYLL1E1E)
(egjithse menjanimi dhe parandalimi, q t dy nuk jane tmerrsisht premtues n
eshtje kryesore, pr aplikime spe$ifike, njihen shume algoritma perfekt pr qellime
spe$iale. 1i pr shembull, ne shume sisteme ba'a t dhenash (database) nj opera$ion q
ndodh her pas here sht krkese bllokimi n disa rekorde dhe pastaj duke i rifreskuar t
gjitha rekordet e bllokuara. )ur proeset e shumt jan n ek'ekutim n t njjtn koh,
aty sht nj rre'ik real pr tu krijuar nj deadlo$k (bllokim).
,frimi me shpesh i prdorur sht quajtur dy-faza bllokimi (mbyllje).Ne fa'n e par
proesi pro"on t bllokoj t gjitha rekordet q ka ne"oj, nj nga nj. N qoftse kjo
ndodh, fillon fa'a e dyt performuar updatet (rifreskimet) e tij dhe 'bllokuar ato. N
fa'n e par muk sht br nj pun e "rtet.
Nse gjat fa's s par disa rekorde q ishin t ne"ojshme ishin tanim t bllokuara
proesi i 'hbllokon ato dhe fillon fa'n e par nga fillimi prseri. N nj far sensi ky
afrim sht si t krkosh t gjitha burimet m prpara, ose t paktn prpara se dika e
pakthyeshme t ket ndodhur. N disa "ersione t dy fa'a bllokimi (mbylljeje), nuk ka
'hbllokim dhe ristarto nese bllokimi sht ndeshur gjat fa's s par. Ne kto "ersione
mund t ndodh deadlo$k.
(egjithat kjo strategji n pergjithsi nuk sht e aplikushme. N sistemet n kohe
reale dhe sistemet e kontrollit t proese"e, pr shembull, sht e papranueshme q
thjesht t prfundosh nje proes n mes sepse burimi nuk sht i disponueshm dhe te
fillosh gjithka nga fillimi. 5jithashtu nuk sht e pranuashme t fillosh prseri n
qoftse proesi gjen mesa'het e shkruara ose te le%uara ne nje rrjet,update#on (rifreskon)
fajlat ose gjithka tjetr q nuk mund te prsritet. ,lgoritmi punon "etm n ato situata
ku programuesi ka rregulluar me shume kujdes gjerat q programi mund t ndaloj n
do pik gjat fa's s par dhe t ristartoj. 1hum aplika$ione nuk mund t jene
strukturuar n kt mnyr.
3.7.2 DEADLOCK-ET PA BURIME
gjith puna jon e gjertanishme sht e prqndruar n burimet e deadko$k#ut. Nj
proes dshiron dika q nj proess tjetr ka dhe duhet t pres derisa i pari ta lshoj at.
deadlo$k#u mund te ndodh edhe ne situata t tjera, gjithsesi, duke prfshir kta duke mos
ngatrruar fare burimet.!r shembull, mund t ndodh q dy proese deadlo$k t presin
njri tjetrin pr t br dika. )jo ndodh shpesh me semafort. N kapitullin H ne treguam
shembuj n t $iln ka pr t kaluar posht ne dy semafor, tipiku mute9 dhe nje tjetr si
ai n qofte se kto mund te bhen n nj rend t gabuar, mund t re'ultoj nj deadlo$k
(bllokim).
3.7.3 STARVACIONI
Nj problem i lidhur drejtprdrejt me deadlo$k#un sht starvacioni. N nj system
dinamik, krkesa pr burime ndodhin gjat gjith kohs. =isa politika jan t ne"ojshme
pr t marr nj "endim rreth kush t marr, $ilin burim, dhe kur. )jo politik, megjithese
duket e arsyeshme mund t oj q shum proese"e t mos u shrbehet kurr megjithese
ato nuk jan deadlo$k#e. 1i pr shembull, konsideroni alokimin e printerit. 6magjinoni q
sistemi prdor shum lloj algoritmash per te siguruar q alokimi i printerit te mos oj n
deadlo$k (bllokim). Nani supo'oni q disa proese e duan at n t njjtn koh. *ili prej
tyre do ta marr atU
Nje algoritem alokimi i mundur sht tia jap at proesit me file#t m t "egjl per tu
printuar (duke spo'uar q informa$ioni sht i gatshm). )y trajtim maksimi'on numrin
e klient"e (proese"e) te g'uar dhe duket i drejte.
Nani gjykoni se far ndodh n nj system t 'n ku nj proes ka nje file gjigand pr tu
printuar. Bdo her q printeri sht i lir, sistemi 'gjedh proesin me file#t me te shkurter.
N qoft se aty sht nj ni"el $onstant me proese me file t shkurtr, proesit me file#n
gjigand nuk do ti $aktohet kurre e drejta pr t printuar. ,i thjesht para$aktohet t ngordh
urie deri n "dekje, t pres deri n fund(t 'gjas pr nj koh t papr$aktuar, sadoq nuk
sht i bllokuar).
1tar"a$ioni mund t shmanget nga prdorimi,i pari q "jen i pari shrbehet, politikat e
alokimit t burime"e. (e kt trajtim proeset presin q me i gjati te sherbehet hers
tjetr. N rrjedhn e duhur t kohs, se$ili proes i dhn "endos prfundimisht t bhet
m i "jetr dhe kshtu merr burimet e ne"ojshme.
KAPITULLI I KATR
8ENA?@;8; ; 8E8A3BE6
(emorja eshte nje burim qe duhet mena%huar me shume kujdes. (e kalimin e kohes,
kompjuterat per shtepi, ne kohet e sotme, kane njemije here me shume memorje se
6;(C8GM, kompjuteri me i madh ne bote i "ite"e &GD8, programet po behen me te shpejte
se memorja. -e te $itojme ligjin e !arkinsonitJ !rogramet shtrihen per te mbushur
memorjen e gatshme per tOi mbajtur. Ne kete kapitull do te studiojme se si sistemi
operati" mena%hon memorjen.
,jo qe do programues do te donte, eshte nje memorje pafundesisht e madhe dhe e
shpejte, qe nuk i humb te dhenat gjate mungeses se energjise. (eqe jemi te memorja, pse
nuk kerkojme qe ajo te jete edhe e pakushtueshmeU /atkeqesisht teknologjia nuk na
siguron memorje te tilla. 1i rrjedhoje, pjesa me e madhe e kompjutera"e kane nje hierarki
te memorjes me nje sasi shume te "ogel dhe te shtrenjte te memorjes te paqendrueshme
dhe te shpejte $a$he, dhjetera (; shpejtesi mesatare, nje mim mesatar, memorje te
paqendrueshme .,( dhe dhjetera e qindra 5; te nje disku te lire dhe te ngadalte te
qendrueshem. shte puna e sistemit operati" te kordinoje punen e se$iles prej ketyre
memorje"e. !jesa e sistemit operati" qe ben te mundur mena%himin e memorjes quhet
menaxhues i memorjes (memory menager). !una e tij eshte te regjistroje se $ila pjese
e memorjes po "ihet ne pune si dhe $ila jo, per ta lidhur ate me proeset dhe per ta
shkeputur prej tyre kur kane perfunduar si dhe per te bere swaping midis memorjes
"etjake dhe diskut kur ajo eshte teper e "ogel per te perballuar proeset.
Ne kete kapitull do te studiojme "arietet mena%himi memorjesh duke u nisur nga me te
thjeshtat tek me te sofistikuarat.
1i$ e theksuam ne kapitullin e pare, historia e kompjutera"e perserit "eten.
(.1 8e)a9himi 'a$e i memorjes
1istemi i mena%himit te memorjes ndahet ne dy klasaJ ato qe transportojne proeset midis
memorjes "etjake dhe hardiskut dhe ato qe nuk e bejne nje gje te tille. )eto te fundit jane
me te thjeshta, ndaj do te studjohen te parat.(e "one do te studjojme swap#in dhe paging.
)eto te fundit shkaktohen prej pamundesis se memorjes "etjake per te perballuar
proese shume te medha njekohesisht. Ne qofte se memoria kryesore 'gjerohet aq shume
sa nuk ka me "end, argumentat ne fa"or te nje lloji te skemes se mena%himit te memories
ose te tjera mund te 'hduken.
Nga ana tjeter softwar#et po behen edhe me te shpejte se "ete memorja, duhet nje
mena%him i memorjes shume efi$ient. Ne "itet L8, pati shume uni"ersitete qe perdoren
sistemin e ndarjes se kohes me nje dy'ine perdoruesish me M (; >,R. Nani (i$rosofti
rekomandon qe te kete te pakten DM (; per nje perdorues te "etem te sistemit 3indows
H888. Nrendi drejt multimedias kerkon akoma me shume memorje, keshtu qe nje
mena%him akoma me i mire do te duhet ne dekadat qe "ijojne.
(.1.1 8o)oprogramimi pa s1ap dhe pagi)g
1kema me e thjeshte e mena%himit te memorjes eshte proedimi i nje programi te "etem
ne nje kohe te $aktuar, duke e ndare memorjen midis atij programi dhe sistemit operati".
Ne figuren M#& jane treguar tre "ariante te kesaj skeme. 1istemi operati" mund te ndodhet
mbi .,(, tek .:( ose dri"er#at e pajisje"e ndodhen ne .:( dhe pjesa tjeter ne .,(.
(odeli i pare shte implementuar ne kompjuerat mainframe si dhe tek minikompjuterat.
(odeli i dyte eshte perdorur tek kompjuterat palmtop si dhe tek ata embeded. (odeli i
trete eshte perdorur tek kompjuterat e hershem desktop(per (1#=:1), ku pjesa e
sistemit e ndodhur ne .,( quhej *10S (*asic 1nput 0utput System)
igura (,1.2re me)yra te orga)i$imit te memmorjes me )je system operati* dhe me )je
pro&es perdorues.
)ur sistemi eshte organi'uar ne nje menyre te tille, "etem nje proes ne nje kohe te
$aktuar mund te proedoje. Ne astin kur perdoruesi shtyp nje komande, sistemi operati"
kopjon programin e kerkuar nga hard disku ne memorje dhe e ek'ekuton ate. )ur proesi
perfundon sistemi operati" gjeneron menjehere nje karakter dhe pret per nje komande
tjeter. (e te marre komanden, ai e ngarkon programin e ri ne memorje duke ia
mbishkruar te parit.
(.1.2 8u%tiprogramimi me parti&io)e fikse
!er "ese ne sistemet te nderfutura, monoprogramimi "eshtire se mund te perdoret.
1istemet moderne lejojne proese te shumefishta qe "eprojne ne te njejten kohe. Ne kesh
proese te shumefishta qe "eprojne ne te njejten kohe do te thote qe, kur nje proes eshte
duke pritur pajisjen 6/: te perfundoje, nje tjeter eshte duke perdorur *!+. )eshtu,
multiprogramimi rrit perdorimin e *!+. 1er"erat e rrjetit, gjithnje kane aftesine qe te
"eprojne me proese te shumefishta (per kliente te ndryshem) ne te njejten kohe.Nashme
edhe makinat EklientF e kane kete aftesi.
(enyra me e thjeshte per te reali'uar multiprogramimin eshte duke e ndare memorjen ne
n pjese(mundesisht jo te barabarta). )jo ndarje per shembull.mund te behet manualisht
kur hapet sistemi.
)ur nje pune eshte per tOu reali'uar, ajo "endoset ne radhen e inpute"e ne pjesen nje
pjese te "ogel, por me madhesi te mjaftuesheme per ta mbajtur. =uke qene se pjeset kane
nje madhesi fikse, ajo qe nuk eshte perdorur per ndonje pune te $aktuar, shkon dem. Ne
fig.M#H (a) shohim sesi duket nje sistem i tille.=isa"anta'hi i "endosjes se pune"e ne pjese
fikse behet i dukshem kur nje radhe me pjese te medha eshte bosh dhe nje tjeter me pjese
te "ogla eshte e mbushur plot si ne rastin e pjese"e & dhe 9 ne fig M#H(b). 1a here qe pjesa
lirohet, puna me e afert qe ndodhet perballe radhes mund te ngarkohet ne pjesen bosh dhe
te reali'ohet. =uke qene qe nuk eshte e deshirueshme qe te shkoje dem nje pjese per nje
pune te "ogel, ndiqet nje tjeter strategji qe te kerkohet neper te gjithe radhen e inpute"e
per nje pun t mjaftueshem te madhe per tu ngarkuar ne pjesen e madhe. >ihet re qe
algoritmi i fundit "eohet kundrejt pune"e te "ogla si te ishte e pa"lere patja e nje
parti$ioni te plote, nga ana tjeter 'akonisht pelqehet qe punes me te "ogel (shpesh punet
interakti"e) ti jepet sherbimi me i mire, jo me i keqi.
igura (,2."a# 8emorje me pjese fikse me radha i)putesh te )dara per &do pjese.
"'#8emorje me pjese fikse me )je radhe te *etme i)putesh.
Nje menyre 'gjidhjeje per kete problem eshte te kesh ne gjendje nje pjese shume te "ogel.
Nje pjese e tille e "ogel do te lejonte qe aty te proedoheshin si pune te "ogla, pa pasur
ne"oje per te alokuar pjese me te medha.
Nje perafrim tjeter eshte te kesh nje rregull i $ili nuk e lejon nje pune te $aktuar te
proedoje me shume se k here.1a here qe ajo proedon, ajo merr nga nje pike. )ur ajo
ploteson k pike,ajo nuk proedon me.
)y sistem me parti$ione(pjese) fikse, i "endosur nga operatori Ene mengjesF dhe qe nuk
ndryshon me, eshte perdorur gjeresisht nga :1/9D8 ne kompjuterat e medhenj
mainframe.+ quajt (/N ((ultiprograming with /i%ed number of Nasks). Nuk ka
"eshtiresi per tOu kuptuar dhe eshte i thjeshte, gjithashtu, per tOu implementuarJ puna e
ardhur "endoset ne nje radhe derisa nje pjese e pershtatshme te jete e gatshme per te. ,ty
puna ngarkohet dhe pro$edon derisa te perfundoje. Ne ditet e sotme pak sisteme operati"e
e implementojne kete model.
(.1.! 8u%tiprogramimi me mode%im
)ur perdoret multiprogramimi, perdorimi i *!+ mund te jete i qarte. Ne qofte se raporti i
proedimit te pune"e ne kohe eshte rreth H8Q, me pese proese ne kohe te $aktuar,*!+
do te ishte e 'ene gjate gjithe kohes. )y model eshte ne menyre jo shume optimiste, pasi
jo te peste pro$eset do te presin per pajisjet 6/: ne te njejten kohe.
Ne model me mire eshte ta shohesh perdorimin e *!+ nga nje pikepamje me
probabilistike. 1upo'ojme qe nje proes pret gjate nje fraksioni p te kohes se tij per
pro$edimin e pajisje"e 6/:. (e n pro$ese ne nje kohe te $aktuar ne *!+, probabiliteti i
pritjes se tyre per pajisjet 6/: eshte p
n
.!erdorimi i *!+ jepet nga formulaJ
Perdorimi i CP4C1,p
)
/igura M#9 tregon grafikisht perdorimin e *!+ ne funksion te n e quajtur shkalla e
multiprogramimit.
igura (,!.Perdorimi i CP4 si fu)ksio) i )umrit te pro&ese*e )e memorje
Nga figura eshte e qarte qe proeset shpen'ojne L8Q te kohes se tyre per te pritur pajisjet
6/:. =uhet te jene me pak se &8 proese ne memorje ne menyre qe *!+ te har%hoje me
pak se &8Q. )ur kupton qe nje proes interakti" eshte duke pritur per nje perdorues te
shtype di$ka nga nje terminal e ai eshte ne gjendjen e pritjes per 6/:, duhet te jete i qarte
fakti qe har%himi i L8Q te kohes eshte mese normal. dhe ne sistemet bat$h, proeset qe
perdorin sasi te madhe te diskut perqindja e tyre eshte po aq, madje edhe me shume.
=uhet te behet e ditur qe modeli probabilistik i sapo pershkruar eshte "etem nje perafrim.
,i thjesht n%jerr perfundimin qe n proese jane te pa"arura, ka do te thote qe eshte e
pranueshme qe ne 7 proese te ngarkuara ne memorje qe "eprojne njekohesisht, realisht 9
te jene duke "epruar dhe dy te tjere duke pritur. !or me nje *!+ te "etme nuk mund te
kemi 9 proese qe "eprojne njekohesisht, keshtu qe nje proes qe behet gati nderkohe qe
*!+ eshte e 'ene, do tOi duhet te prese. )eshtu proeset nuk jane te pa"arura. (und te
ndertohet nje model me i pershtatshem duke perdorur teorine e radhe"e por ne momentin
kur bejme multiprogramim lejohet qe proeset te perdorin *!+ edhe pse ajo do te operoj
me minimumin e shpejtesise, sigurisht, per sa kohe eshte i "lefshem, edhe pse linjat e fig
M#9 jane paksa te ndryshme.
dhe pse modeli i mesiperm i fig.M#9 eshte i thjeshte, ai gjithsesi mund te perdoret per te
bere parashikime te perafruara per performan$en e *!+. 1upo'ojme, per shembull qe
kemi nje memorje prej 9H (;, me nje sistem operati" qe merr &D (; dhe se$ili program
i perdoruesit qe merr rreth M (;. )eto permasa lejojne M programe te perdoruesit qe te
alokohen ne memorje njekohesisht. (e nje sasi prej L8Q te pritjes per pajisje 6/:, ne
kemi nje perdorim te *!+ prej &#8.L
M
ose gati D8Q. =uke shtuar rreth D8Q te memorjes
qe e lejojne sistemint te kaloje nga nje model me kater rruge per multiprogramim ne nje
tjeter me L rruge, performan$a e *!+ rritet ne L9Q. Ne fjale te tjera shtimi prej &D (;
do ta rrise throughput#in me 9LQ.
=uke shtuar edhe &D(; te tjera do ta oje throughput#in ne G9Q, pra nje rritje me &HQ.
=uke perdorur kete model, perdoruesi do te mendoje qe shtimi i pare ne memorje do te
ishte nje in"estim i mire por i dyti, jo.
(.1.( A)a%i$a e performa)&es se sistemit me mu%tiprogramim
(odeli i diskutuar me siper eshte perdorur per te anali'uar sistemet bat$h. -e te marrim
ne konsiderate, per shembull,nje kompjuter qendror ku ne punet e te $ilit, L8Q eshte
pritje per pajisjet 6/:. Ne nje dite te "eante, punet jane mbi"endosur si ne fig M#M(a).
!una e pare, e $ila "jen ne oren &8
88
kerkon M min nga koha e *!+.(e L8Q pritje per
pajisjet 6/: ,puna e ardhur perdor "etem &H sek nga koha e *!+ perdo minute qe ajo
pret ne memorje, edhe pse sOka pune te tjera qe konkurojne me te per kohen e *!+. ML
sek e tjera jane shpen'uar duke pritur per pro$edimin e pajisje"e 6/:. )eshtu nje pune e
$aktuar duhet te qendroje se paku per H8 min ne memorje qe te perfitoje M min nga koha e
*!+, edhe ne mungese te nje konkurren$e
!rej ores &8J88 deri ne oren &8J&8 puna e pare eshte e "etme ne memorje dhe perfiton
"etem H min per pro$edimin e saj. )ur puna e dyte ngarkohet ne memorje ne oren &8J&8,
perdorimi i *!+ rritet nga 8.H8 ne 8.9D, fale shkalles se larte te multiprogramimit (shiko
fig M#9).5jithsesi me ane te skedulimit (round#robin), se$ila pune shfryte'on gjysmen e
*!+. )eshtu se$ila pune merr 8.&L min nga puna e *!+ e $aktuar per $do min qe ajo
eshte ne memorje.=uhet nen"i'uar qe $do shtese e nje pune te dyte ne memorje i kushton
punes se pare "etem &8Q te performan$es se saj. Nga 8.H per $do min nga koha e *!+
ajo tashme perfiton 8.&L per minute nga koha e saj.
Ne oren &8J&7 ngarkohet ne memorje puna e dyte. Ne kete ast puna e pare ka perfituar
H.G min nga koha e *!+ dhe puna e dyte ka perftuar 8.G min. (e nje multiprogramim me
9 rruge, se$ila pune perfton 8.&D min nga koha e *!+ per $do min nga koha reale, si$
eshte treguar ne fig M#M(b).Nga ora &8J&7 ne oren &8JH8 se$ila nga tre punet perftojne 8.L
min nga koha e *!+. Ne oren &8JH8 ngarkohet puna e katert./ig M#M($) tregon sekuen$en
e plote te ngjarje"e.
(.1.+ 3i*e)dosja dhe m'rojtja
(ultiprogramimi na shfaq dy probleme esen$iale qe mund te 'gjidhen ri"endosja dhe
mbrojtja. 1hiko fig M#H. Nga figura duket qarte qe pune te ndryshme do te proedojne ne
adresa te ndryshme. )ur nje program eshte linkuar(per shembull. programi kryesor,
programi i shkruar nga perdoruesi dhe librari proedurash te kombinuara ne nje hapesire
te "etme adresash), linkuesi duhet ta dije se ne $fare adrese duhet te filloje programi.
!er shembull.supo'ojme qe instruksioni i pare eshte nje thirrje proedure ne adresen
absolute &88 ne file#in binar te gjeneruar nga linkuesi. Ne se programi eshte ngarkuar ne
pjesen e pare( ne adresen &88)), ky instruksion do te ker$eje ne adresen absolute &88, e
$ila eshte ne brendesi te sistemit operati". ,jo ka ne"ojitet eshte nje thirrje nga
&88)T&88). Ne qofte se programi eshte ngarkuar ne pjesen e dyte, ai do te mbahet si nje
thirrje ne H88)T&88 e keshtu me radhe. )jo situate eshte e njohur si problemi i
ri"endosjes.
Nje 'gjidhje e mundshme eshte te modifikohen instruksionet sa here qe nje program eshte
ngarkuar ne memorje. !rogrami i ngarkuar ne pjesen e pare ka &88) plus adresen ku
eshte "endosur, ata te "endosur ne pjesen e dyte kane H88) plus adresen e keshtu me
radhe. !er te reali'uar ri"endosjen duke ngarkuar programe ne kete menyre, linkuesi
duhet te prefshije ne programin e tij binar nje liste te bitmap i $ili tregon se $ilat fjale te
programit jane adresa qe duhen perfshire ne ri"endosje dhe $ilat jane op$ode#e, konstante
apo fjale te tjera qe nuk kane ne"oje per ri"endosje.:1/(/N punon ne kete menyre.
.i"endosja gjate ngarkimit te programe"e nuk e 'gjidh problemin e mbrojtjes. Nje
program dashakeqes mund te ndertoje nje instruksion te ri duke ker$yer me pas tek ai.
dhe pse programet preferojne adresat absolute ne memorje sesa ato relati"e ne regjistra,
nuk asgje qe ta pengoje nje te tille qe te ndertoje nje instruksion qe le%on ose shkruan nje
fjale ne memorje. Ne nje sistem me shume perdorues, eshte shume e padeshirueshme qe
te shkruhen apo te le%ohen ne memorje gjera qe i perkasin perdorues"e te tjere.
@gjidhja qe 6;( gjeti per te mbrojtur 9D8 ishte ta ndante memorjen ne blloqe prej H);
dhe te shenonte ne se$ilin prej tyre nje kod mbrojtjeje prej M bit. !13 (!rogram 1tatus
3ord) permbante nje $eles prej M bit. 2ardware#i 9D8 'bulonte $do perpjekje te
pro$ese"e ne "eprim qe aksesonte memorjen kodi i te $ilit ndryshonte nga ai !13. =uke
qene se "etem sistemi operati" ka te drejte te ndryshoje kodet e mbrojtjes, pro$eset e
perdoruesit jane parandaluar te interferojne me njeri#tjetrin dhe me sistemin operati".
Nje 'gjidhje alternati"e per te dyja problemetJ ri"endosjen dhe mbrojtjen eshte
mobili'imi i makines me dy regjistra hardware#ik spe$ial, te quajtura regjistrat ba'e dhe
limit. )ur proesi eshte skeduluar, regjistri ba'e ngarkohet me adresen e fillimit te pjeses
se tij dhe regjistri limit ngarkohet ne gjatesine e pjeses se tij. Bdo adrese e memorjes qe
gjenerohet automatikisht ka permbajtjen e regjistrit ba'e e $ila eshte shtuar aty para se te
dergohej ne memorje. )eshtu, ne se "lera e permbajtjes se regjistrit ba'e eshte &88),nje
instruksion thirrjeje &88 eshte kthyer efekti"isht ne nje instruksion thirrjeje &88)T&88,
duke mos e modifikuar "ete instruksionin. ,dresat gjithashtu kontrollohen prej regjistrit
limit per tOu siguruar qe nuk do te tentojne te adresojne memorjen jashte pjeses se
per$aktuar. 2ardware#i i mbron keto regjistra nga modifikimi prej programe"e te
perdoruesit.
=isa"anta'hi i kesaj metode eshte shtimi dhe krahasimi ne do referen$e ne memorje.
)rahasimet jane te shpejta, por shtimi eshte i ngadalte fale kohes qe kerkon
mbartja.>etem ne qofte se jane perdorur $ikle spe$iale te shtimit.
Nje *=*#DD88#superkompjuteri i pare ne bote# ka perdorur kete skeme. 6NN- L8LL i
perdorur per kompjuterat !* 6(;, nje "ersion me te dobet te kesaj skeme, regjistrat ba'e,
por jo ato limit. Nashme po perdoret nga pak kompjutera.
4.2 SWAPING
Ne organi'osh memorjen ne nje sistem bat$h ne parti$ione fikse, eshte e thjeshte dhe
efekti"e.Bdo pune ngarkohet ne pjesen perkatese kur "jen ne krye te radhes. ,jo qendron
ne memorje derisa te kete mbaruar "eprimin e saj. !er sa kohe ka mjaftueshem pune qe
qendrojne ne memorje dhe qe ta mbajne te 'ene *!+, nuk ka arsye qe te perdorim ndonje
metode tjeter me te komplikuar. Ne sistemet me ndarje te kohes ose me !* qe jane te
orientuar grafikisht, situata eshte me ndryshe. Ndonjehere nuk ka mjaftueshem memorje
per tOi mbajtur ata ne nje gjendje akti"e. )eshtu proeset ekstra "endosen ne disk per tOu
sjelle me pas ne menyre dinamike.
(und te perdoren dy perafrime te pergjithshme ne mena%himin e memorjes, ne "aresi te
gatishmerise se hardware#it. 1trategjia me e thjeshte, e quajtur swaping, konsiston ne
sjelljen e dy pro$ese"e ne teresine e tyre ne menyre qe te "eprojne dhe me pas te kthehen
serish ne disk. 1trategjia tjeter, e quajtur memorje "irtuale, i lejon programet te
proedojne edhe kur ato jane pjeserisht ne memorjen kryesore. (e poshte do te studjojme
swaping, kurse ne seksionin M.9 do te studjojme memorjen "irtuale.
(enyra e operimit e sistemit swaping eshte treguar ne fig.M#7. /illimisht "etem pro$esi ,
eshte ne memorje.(e pas pro$eset ; dhe * jane krijuar ose EswapedF nga disku. Ne
fig.M#7(d) eshte pro$esi , qe shkon ne disk. (e pas "jen = dhe eshte ; qe largohet.1e
fundi eshte , qe rikthehet perseri ne memorje. (eqene se , eshte kthyer tashme ne nje
po'i$ion tjeter, adresa qe e permban do te ripo'i$ionohet. )jo behet si nga ana e
software#it kur programi merret nga disku, ashtu sikurse nga hardware#i kur ai
ek'ekutohet.
igura (,+. A%okimi i memorjes )drysho) kur pro&eset *e)dose) )e te dhe %argohe)
prej saj. Pjeset e *ije$uara tregoj)e memorje) e paperdorur.
Ndryshimi kryesor midis parti$ione"e fikse ne fig.M#H dhe atyre te ndryshueshme ne
fig.M#7,eshte qe numri, po'i$ioni dhe madhesia e parti$ione"e ndryshon ne menyre
dinamike sa here qe pro$eset shkojne e "ijne, nderkohe ne formen me parti$ione fikse
madhesia e tyre nuk ndryshon. /leksibiliteti i te mos pershtaturit ne parti$ione fikse te
$ilat mund te jene shume me te "ogla apo shume me te medha se$ duhet, permireson
perdorimin e memorjes, por gjithashtu komplikon ngarkimin dhe shkarkimin ne memorje
si dhe gjithashtu edhe regjistrimin ne te.
)ur swaping krijon shume holles ne memorje eshte e mundur qe tOi kombinosh ato ne nje
me te madh duke i shtyre proeset sa me poshte qe te jete e mundur. )jo teknike eshte e
njohur si kompaktesimi i memorjes(memory $ompa$tion). )jo 'akonisht nuk perdoret
sepse kerkon nje kohe shume te madhe *!+. !. 12(;+--J nje makine prej
H7D(;, qe kopjon M; ne $do M8 n/sek, i duhen H.C sek per kompaktesuer te gjithe
memorjen.
Nje eshtje qe ia "len te perqendrohesh eshte se sa memorje duhet alokuar per proeset e
krijuara ose qe largohen( bejne swaping). Ne se pro$eset jane krijuar ne nje madhesi fikse
qe nuk ndryshon asnjehere, alokimi eshte i thjeshteJ sistemi operati" alokon ek'aktesisht
ate ka duhet,as me shume e as me pak.
Ne se, sidoqofte segmentet e te dhena"e mund te 'gjerohen, per shembull, duke e alokuar
memorjen ne menyre dinamike nga nje heap, si ne do gjuhe programimi, problemi lind
sa here qe pro$esi tenton te rritet. Ne qofte se gjendet nje hole fqinje me proesin, atehere
ajo mund te alokohet duke e lejuar proesin te 'gjerohet pertej permasa"e te tij pergjate
hole#it.Nga ana tjeter, ne qofte se pro$esi eshte fqinje me nje proes tjeter, ky duhet te
'h"endoset ne nje hole te madh mjaftueshem per te, ose proeset e tjera duhet te bejne
swaping ne menyre qe te lirojne "end per te ne memorje. Ne qofte pro$eset nuk mund te
'gjerohen ne memorje ose swaping nuk eshte i mundur pasi nuk ka "end mjaftueshem ne
memorje, atehere proeset duhet te presin ose do Ete "ritenF.
Ne qofte se pritet qe proeset te 'gjerohen gjate kohes qe ata "eprojne, mund te jete nje
ide e mire qe te alokosh nje memorje te "ogel ekstra sa here qe proesi eshte larguar
(swaping) apo 'h"endosur, per te reduktuar kohen shtese qe lidhen me 'h"endosjen apo
me proeset swaping qe ndodhin kur nuk ka pershtatje ne alokimin ne memorje.
5jithsesi, kur swaping ndodh ne disk, ky proes ndodh "etem ne memorjen qe eshte
perdorur aktualisht, pasi eshte e demshme per memorjen shtese. Ne fig.M#D(a) paraqitet
nje konfigurim i memorjes ne te $ilin hapesira shtese eshte alokuar nga dy pro$ese.
iigra (,.."a# A%okimi i )je hapesire per )je segme)t shume te gjate te dhe)ash."'#
A%okimi i )je hapesire per )je sta&k dhe )je segme)t te dhe)ash te )dryshueshem.
Ne qofte se nje proese kane dy segmente qe rriten , per shembull. nje segment te
dhenash qe perdoret si heap per "ariablat qe alokohen dhe leshohen me pas nga memorja
dhe nje segment sta$k per "ariablat normale lokale si dhe adresat qe kthehen, nje
alternati"e kjo e sugjeruar nga fig.M#D(b).Ne kete figure ne shohim se do proes ka nje
sta$k ne fillim te memorjes se alokuar, i $ili rritet per poshte si dhe nje segment te
dhenash fqinje me programin tekst, i $ili rritet per nga siper. (emorja midis tyre mund te
perdoret edhe per segment. Ne qofte se perfundojne se ek'ekutuari, edhe proeset do te
"endosen ne nje hole me nje hapesire te mjaftueshme, duke u larguar nga memorja derisa
te krijohet nje hapesire e mjaftueshme ne memorje, ose ne te kundert do te "riten.
4.2.1 Menaxhimi i memorjes me 'itmap
)ur memorja shenohet ne menyre dinamike, sistemi operati" duhet ta mena%hoje ate. Ne
terma te pergjithshme, ka dy menyra per te regjistruar perdorimin e memorjesJ bitmap
dhe listat e lira . Ne kete seksion dhe ne tjetrin qe "ijon do te shohim keto dy metoda.
(e ane te bitmap#it memorja eshte e ndare ne pjese alokimi unike, ndoshta te "ogla sa
disa fjale ose sa disa kilobyte. !er $do pjese te alokuar ka nje bit ne bitmap, i $ili eshte 8
ne qofte se ajo pjese eshte e lire si dhe & ne se ajo eshte e 'ene. /igura M#C tregon pjese te
memorjes dhe bitmap#in korrespondues.
igura (,/."a# Nje pjese e memorjes me pese pro&ese dhe tre ho%e. 6he)jat ti&k tregoj)e
pjese te a%okimit te memorjes. Pjeset e *ije$uara" - te 'itmap,i# ja)e te %ira."'#Bitmap,;
korrespo)dues."&# Po i )jejti i)forma&io) )e )je %iste.
(adhesia e pjeses se alokuar eshte nje eshtje shume e rendesishme e di'enjimit. 1a me
e "ogel te jete pjesa e alokuar aq me i gjere eshte bitmap#i. 5jithsesi, edhe me nje pjese te
alokuar prej M;, 9H bit memorje do te kerkonte "etem nje bit te map#it. Nje ,memorje prej
9Hn bit do te perdorte n bit te map#it, keshtu qe bitmap#i do te merrte persiper "etem &/99
te memorjes. Ne qofte se pjesa e alokuar eshte 'gjedhur e madhe, bitmap#i do te jete me i
"ogel, por do te ohej dem nje pjese e rendesishme e memorjes ne pjesen e fundit te
pro$esit kur madhesia e ketij te fundit nuk eshte nje shumefish i sakte i pjeses se alokuar.
(etoda bimap tregon nje menyre te thjeshte per te regjistruar fjale ne nje sasi fikse te
memorjes, sepse madhesia e bitmap#it "aret nga madhesia e memorjes dhe madhesia e
pjeses se alokuar. !roblemi kryesor ne kete rast eshte qe kur "endoset per te sjelle k pjese
pro$esi ne memorje, nje mena%hues i memorjes duhet te kerkoje per bitmap i $ili duhet
te gjeje k bitet 8 qe "ijojne ne map. )erkimi per bitmap per nje pro$es te nje gjatesie te
$aktuar, eshte nje proes i ngadalte. )y eshte nje argument kunder bitmap#it.
4.2.2 Menaxhimi memorjes me listat e linkuara
Nje tjeter metode per te mirembajtur memorjen eshte ajo e lista"e te linkuara, apo
segmentet e alokuara apo te memorjes se lire, ku nje segment mund te jete nje pro$es apo
edhe nje hapesire( hole) midis dy pro$ese"e. (emorja e figures M#C eshte perfaqesuar me
modelin e lista"e te linkuara ne fig.M#C($). Bdo entry ne liste spe$ifikon nje hole(2) ose
nje pro$ess(!), adresen ku fillon, gjatesine si dhe nje pointer ne adresen ku ndodhet entry
tjeter.
Ne shembullin me poshte lista e segmente"e gjenerohet prej adresa"e. )jo menyre ka
a"anta'hin qe kur nje proes perfundon ose largohet eshte shume i "lefshem update#im i
listes. Nje pro$es qe perfundon, normalisht ka dy fqinje (me perjashtim te raste"e kur
ndodhet ne krye apo ne fund te memorjes). )eto mund te jene ose pro$ese ose hole, ka
na on ne kater kombinimet e fig.M#L. Ne fig.M#L(a), update#imi i listes kerkon
'e"endesimin e ! nga nje 2. Ne fig.M#L(b) dhe ($) dy entry jane perfshire ne nje te "etme
dhe lista behet me nje entrty me te shkurter. Ne fig.M.L(d) tre entry jane shkrire ne nje dhe
dy grupe jane larguar na lista. (eqene se tabela e proese"e qe slot per proeset qe
perfundojne, ajo do te pointoje ne listen entry per "ete proesin, eshte me e pershtatshme
ta kesh listen si nje liste dyshe te linkuar sesa nje liste te "etme si ne fig.M#L($). )jo
strukture e ben me te lehte gjetjen e entry#t te ri si dhe mund te dallohet lehtesisht ne se
eshte e ne"ojshme nje shkrirje.
igura (,:. Dater kom'i)ime f<i)je per )je pro&es ? <e perfu)do).
)ur proeset dhe hole#t jane "endosur ne nje liste qe gjenerohet prej adresa"e, mund te
perdoren nje sere algoritmesh per te alokuar memorjen gjate krijimit te nje proesi te
ri( ose nje pro$esi te "jeter qe shkeputet nga disku). N%jerrim perfundimin qe mena%heri i
memorjes e di se sa memorje duhet alokuar. ,lgoritmi me i thjeshte eshte first fit.
(ena%heri i memorjes skanon pergjate listes se segmente"e derisa te gjeje nje hole qe
eshte mjaftueshem i madh. )y i fundit ndahet ne dy pjese, nje per pro$eset dhe nje per
memorjen e paperdorur, per"e rastit te nje pershatjeje ek'akte. First fit eshte nje
algoritem shume i shpejte pasi kerkon sa me pak qe te jete e mundur.
Nje "ariant me i "ogel i algoritmit me siper eshte next fit. ,i funksionon ne te njejten
menyre si first fit me perjashtim te faktit qe ai "e'hgon derisa te gjeje nje hole te
pershtatshem. 2eren e ardhshme kur ai thirret per te per nje kontroll ai e nis atje ku e
kishte lene, ne "end qe ta filloje nga e para, si ne rastin e algoritmit te pare. 1imulimi nga
;ays (&GCC) tregon qe algoritmi i dyte ka performan$e me te keqe se i pari.
Nje tjeter algoritem i mire eshte best fit. ,i kerkon neper te gjithe listen dhe gjen hole#in
me te "ogel te pershtatshem.Ne "end te te ndaje nje hole te madh qe mund te duhet me
"one ai kerkon nje te tille qe te jete sa me i "ogel dhe, gjithashtu i pershtatshem.
1i nje shembull te first fit dhe te best fit merrni ne konsiderate shembullin e fig.M#C. ne
qoftese kerkohet nje bllok i nje madhesie H, first fit do te alokonte hole#in 7 ndersa best
fit hole#in &L.
Best fit eshte me i ngadalte se first fit pasi i duhet te kerkoje neper te gjithe listen sa here
qe thirret .Ne nje fare menyre, uditerisht re'ulton te har%hoje me shume memorje se sa
first fit apo next fit pasi tenton ta mbushe memorjen me hole te "egjel dhe te
pane"ojshme. Ndersa first fit gjeneron hole te medha.
Ne qofte se duam te kemi te bejme me problemin e ndarjes ne pjese ek'akte te
pershtatshme, mund te perdorim algoritmin worst fit, i $ili merr hole#in me te madh te
mundshem dhe te gatshem ne menyre qe ta ndaje ate ne pjese me te "ogla, perseri te
medha. 1imulimi ka treguar qe as kjo nuk eshte ndonje ide e mire.
Ne kater keto algoritme mund te pershpejtohen duke i ndare listat e pro$ese"e nga ato te
hole#"e. Ne kete menyre ata do te dedikonin te gjithe energjine e tyre ne kerkimin e hole#
"e dhe jo te pro$ese"e. Bmimi qe duhet te paguhet per kete rritje te shpejtesise gjate
alokimit eshte kompleksiteti shtese si dhe ngadalesia gjate dealokimit te memorjes duke
qene se nje segment i tere duhet te largohet nga lista e pro$ese"e dhe te "endoset ne ate te
hole#"e.
Ne qofte se mbahen lista te ndryshme per preset dhe hole#et, ajo e hole#"e duhet
regulluar ne madhesi per ta bere me te shpejte algoritmin best fit. )ur ky algoritem
kerkon nje hole ne liste, nga me i "ogli tek me i madhi, ne astin qe do te gjeje nje te
pershtatshem, ai e di qe hole#i eshte me i "ogli i gjetur i pershtatshem per punen. Nuk
eshte me i ne"ojshem nje kerkim i metejshem, si ne rastin e nje liste te "etme. (e nje
liste te hole#"e best fit dhe first fit jane njelloj te shpejte ndersa next fit eshte pointless.
)ur hole#t mbahen ne lista te "eanta nga proeset, eshte i mundur nje optimi'im i "ogel
dhe i mire. Ne "end qe te kemi nje strukture te "eante te dhenash per te mbajtur listen e
hole#"e, si ne fig.M#C($), mund te perdoren "ete hole#t. /jala e pare e se$ilit hole eshte
madhesia e tij, ndersa e dyta do te jete nje pointer per hyrjen qe "ijon. Nyjet e listes se
fig.M#C($), te $ilat kerkojne tre fjale dhe nje bit (!/2) nuk ne"ojiten me.
Nje tjeter algoriten alokimi eshte quick fit, i $ili permban lista te "eanta per madhesite
qe perdoren me shume. !er shembull.mund te kete nje tabele me n entry, ne te $ilat e para
eshte nje pointer tek koka e listes me hole prej M );, e dyta nje pointer ne listen me hole
prej L); dhe e treta nje pointer ne listen me hole prej &H ); e keshtu me radhe. 2ole#t
per shembull, H& ); mund te futen ne nje liste prej H8 );, por edhe mund te futen ne nje
liste te "e$ante me nje numer tek hole#sh. (e ane te ketij algoritmi eshte shume e shpejte
te gjesh hole te nje madhesie te pershtatshme, por ka ate a"anta'hin e njejte qe kane te
gjitha skemat qe gjenerohen nga madhesia e hole#"e. Ne fjale te tjera, kur nje pro$es
perfundon apo largohet, eshte e kushtueshme te kerkosh per fqinjin e tij ne se mund te
behet ndonje shkrirje e mudshme. !or, ne se nuk behet nje shkrirje, memorja do te ndahej
ne fragmente te "ogla hole#sh, ne te $ilat nuk do te pershtatej asnje pro$es.
4.3 Memorja virtuale
1hume "jet me pare, njere'it jane perballur me programe te $ilat ishin shume te medha
per memorjen e dhene. @gjidhja qe eshte perdorur me shpesh eshte ndarja e progaramit
ne pjese te quajtura nenshtresa. Nenshtresa 8 do te fillonte te "epronte e para. !asi te
kishte perfunduar, ajo do te therriste nje tjeter nenshtrese. =isa sisteme nenshtresash
kishin nje kompleksitet te larte, duke lejuar njekohesisht nenshtresa shumefishe ne
memorje. Nenshtresat mbaheshin ne disk dhe hynin e dilnin nga memorja me ane te
sistemit operati" ,ne menyre dinamike ne se ishte e ne"ojshme.
dhe pse puna e mesiperme behej nga sistemi, ndarje e progarmit ne pjese duhej bere nga
"ete programuesi. Ndarja e programe"e te medhenj ne pjese me te "ogla kerkonte shume
kohe si dhe ishte shume e mer'itshme. Nuk kaloi shume kohe derisa u gjet menyra per
tOia kaluar kete pune kompjuterit. (etoda qe u paraqit (/otheringham, &GD&) u be e
njohur si memorja *irtua%e. 6dea kryesore qe qendronte pas kesaj metode ishte fakti qe
kombinimi i programit, i te dhena"e dhe e stakut kerkon nje memorje shume te gjere .!er
kete arsye sistemi, pjeset e programit qe perdoren aktualisht, i mban ne memorjen
kryesoren ndersa pjesen tjeter ne disk. !er shembull, nje program prej &D(; mund te
"eproje ne nje makine prej M(;, mjafton te dime te 'gjedhim pjeset e duhura (prej M(;)
te programit per memorjen kryesore, duke e lene pjesen tjeter per ne disk.
(emorja "irtuale mund "eproje edhe ne sisteme me multiprogramim, me bite dhe pjese
te shume programe"e ne memorje njekohesisht. )ur nje program eshte duke pritur per nje
pjese te tij te sillet ne memorje, ai pret per pajisjet 6/:, ndaj nuk mund te "eproje,keshtu
qe *!+#ja i dore'ohet nje programi tjeter, ashtu si ne $do pro$es me multiprogramim.
4.3.1 Faqosja ( Paging)
1hume sisteme te memorjes "irtuale perdorin tekniken e quajtur paging, e $ila do te
pershkruhet tani. Ne shume kompjutera, ek'iston nje set adresash ne memorje te
prodhuara nga programet. )ur nje program perdor nje instruksion te tipitJ
(:> .5,&888
kjo behet me qellim qe te kopjoje permbajtjen e memorjes me adrese &888 tek regjistri
.5 (ose anasjelltas, ne "aresi te kompjuterit). ,dresat mund te gjenerohen duke
perdorur indeksimin, regjistrat ba'e, regjistrat segmente si dhe metoda te tjera.
igura (,0. Po$i&io)i dhe fu)ksio)im i 884,se. Detu 884,ja eshte shfa<ur si te jete
pjese e <arkut te CP4,se, ashtu si& eshte ditet e sotme. Ejithsesi, mu)d te jete )e )je
<ark me *ete si *ite me pare.
)eto adresa te gjeneruara prej programe"e jane quajtur adresa "irtuale dhe formojne
hapesiren e adresa"e "irtuale. Ne kompjuterat pa memorje "irtuale, adresa "irtuale
"endoset direkt ne bus#in e memorjes dhe ben qe fjala me te njejten adrese ne memorjen
fi'ike te shkruhet apo te le%ohet. )ur perdoret memorja "irtuale, adresa "irtuale nuk
shkon direkt ne bus#in e memorjes. ,to ne fakt shkojne ne ((+ ( (emory (enagement
+nit) e $ila harton adresat "irtuale mbi memorjen fi'ike si$ eshte ilustruar ne fig.M.G.
Ne fig.M#&8 eshte treguar nje shembull shume i thjeshte se si funksionon kjo faqosje. Ne
kete shembull kemi nje kompjuter qe gjeneron adresa &D#bit, nga 8 ne DM );.)eto jane
adresa "irtuale. )y kompjuter ka "etem 9H); te memorjes fi'ike, keshtu, megjithese
programet mund te shkruhen, ato nuk mund te ngarkohen plotesisht ne memorje dhe te
"eprojne me pas. Nje pamje teresore e programit duhet, gjithsesi, te jete pre'ente ne disk,
ne menyre qe pjese te tij te merren sa here te jete e ne"ojshme. 2apesira e adresa"e
"irtuale ndahet ne pjese me te "ogla te quajtura pages (faqe). !jeset koresponduese ne
memorjen fi'ike quhen page frame (kampjone faqesh).!age#t dhe page frame#t kane
gjithnje te njejten madhesi. Ne kete shembull ato jane M );, por madhesia e faqe"e nga
7&H ; ne DM ); eshte perdorur ne sistemet reale. (e DM ) hapesire adresash "irtuale dhe
9H ) te adresa"e fi'ike, ne perftojme &D faqe "irtuale dhe L page frame. Nransferimet
midis .,(#it dhe diskut gjithmone behen ne njesi faqesh.
igura (,1-. Fidhja midis adresa*e *irtua%e dhe atyre te memorjes fi$ike jepet )ga
ta'e%a e fa<e*e.
)ur programi tenton te aksesoje adresen 8 duke perdorur instruksioninJ
(:> .5, 8
,dresa "irtuale 8 dergohet ne ((+.((+#ja sheh ne se ka "endosje te adreses "irtuale
ne faqen 8( nga 8 ne M8G7), e $ila perputhet me harten e saj ne ne page frame H (nga L&GH
ne &HHLC) .!ra transformohet adresa ne L&GH dhe n%irret duke u "endosur me pas ne bus.
(emorja nuk di asgje ne lidhje me ((+ dhe "etem sheh kerkesen per le%im apo shkrim
te adreses L&GH. Nderkohe ((+#ja ka hartuar te gjitha adresat "irtuale nga 8 ne M8G7 ne
adresat fi'ike nga L&GH ne &HHLC.
Ne menyre te ngjashme nje instruksion i tilleJ
(:> .5, L&GH
transformohet ne J
(:> .5, HM7CD
sepse adresa "irtuale L&GH ndodhet ne faqen e dyte "irtuale dhe kjo faqe i korrespondon
page frame#it D (nga HM7CD ne HLDC&).1i shembull i trete adresa "irtuale H8788 ndodhet
H8; nga fillimi i faqes "irtuale 7( me adresa "irtuale nga H8ML8 ne HM7C7) dhe
korrespondon adreses fi'ike &HHLLTH8[&H98L.
Ne "et"ete, kjo aftesi per tOi permbledhur keto &D faqe "irtuale ne do njeren prej page
frame#"e duke ndryshuar harten e ((+#se nuk e 'gjidh problemin e qe perben fakti qe
hapesira e adresa"e "irtuale eshte me e gjere se memorja fi'ike. =uke qene se kemi
"etem L page frame, "etem L nga faqet "irtuale te fig.M#&8 hartohen ne memorjen fi'ike.
Ne tjeret te shfaqur me kryq ne figure, nuk hartohen. Ne hardware#in aktual nje bit
present/absent ( i pranishem ose jo) tregon se $ilat faqe jane pre'ente ne memorje.
Bfare ndodh ne se programi perdor nje faqe te pahartuar duke perdorur instruksioninJ
(:> .5, 9HCL8
i $ili eshte biti i &H midis faqes "irtuale (duke filluar nga 9HCDL)U ((+#ja e "e re qe faqa
e &H nuk eshte e hartuar (ne figure eshte e treguar me kryq) dhe ben qe *!+ te kape
sistemin operati". )y "eprim quhet page fau%t .1istemi operati" merr nje page frame pak
te perdorur dhe e shkruan permbajtjen e saj ne disk. (e pas merr faqen "irtuale qe i
korrspondon page framet te sapo marre, ndryshon harten dhe rinis instruksionin e kapjes.
!er shembull.ne qofte se sistemi operati" ka "endosur te e"ituar page frame#in e pare, ai
do te ngarkoje faqen "irtuale L ne adresen fi'ike M) dhe ben dy ndryshime ne harten e
((+#se. /illimisht do te shenoje sit e pa hartuar hyrjen e faqes se pare "irtuale, ne
menyre qe te kape do akses ne adresat "irtuale midis M) dhe L).(e pas do te mund te
'e"endesoje kryqin ne hyrjen e faqes "irtuale L me nje &, keshtu qe kur te ri ek'ekutohet
nje tjeter instruksion kapjeje, do t mund te "endose nj lidhje midis adreses "irtuale
9HCL8 me adresen fi'ike M&L8.
Nani le te shqyrtojme brendesine e ((+#se qe te shohim se si funksionon ajo dhe te
tregojme se perse kemi 'gjedhur te perdorim nje madhesi faqeje qe eshte fuqi e H#it.Ne
fig.M#&& ne shohim nje shembull te adreses "irtuale L&GD (88&8888888888&88 ne forme
binare), e $ila eshte hartuar duke perdorur harten e ((+#se te fig.M#&8. ,dresat &D#
biteshe qe "ijne, ndahen ne nje numer faqesh prej M#bit dhe &H#bit offset. (e M#bit per
numrin e faqe"e, ne kemi &D faqe, dhe me &H#bit per offset#in, ne mund tOi adresojme te
M8GD bytet ne nje faqe. Numri i faqe"e eshte perdorur si nje indeks ne tabelen e faqe"e
(paqe table) duke i shtuar numrin e page frame#it qe i korrespondon asaj faqeje "irtuale
Ne qofte qe biti present/absent eshte 8, behet nje kapje ne sistemin operati". Ne qofte se
biti eshte & numri i page frame#it i gjetur ne tabelen e faqe"e ne rendin rrites 9#bit nga
regjistrat e output#it se bashku me &H#bitet offset, te $ilat kopjohen te pamodifikuara nga
adresa "irtuale .1e bashku ato formojne nje adrese fi'ike prej &7#bitesh. .egjistri output#
it "endoset ne busin e memorjes ashtu si dhe adresa fi'ike e memorjes.
4.3.2 Tabela e faqeve (Page tables)
Ne rastin me te thjeshte, hartimi i adresa"e "irtuale ne ato fi'ike eshte si e pershkruam
me pare. ,dresat "irtuale ndahen ne nje numer faqesh "irtuale (ne bite sipas rendit rrites)
dhe nje offset (me bite sipas rendit rrites).!er shembull. me nje adrese prej &D#bit dhe me
nje madhesi te faqes prej M );, kater bitet e mesiperme do te spe$ifikojne nje nga &D
faqet "irtuale dhe &H bitet e meposhteme do te spe$ifikojne offset#in ne byte( nga 8 ne
M8G7) neper faqen e selektuar. 5jithsesi nje ndarje ne 9, 7 apo ne $do numer bitesh per
faqe eshte gjithashtu i mundur. Ndarje te ndryshme ojne ne madhesi te ndryshme faqesh.
igura (,11.Apera&io)i i 're)dshem i 884,se me 1. fa<e (,kB
Numri i faq"e "irtuale eshte perdorur si 6ndeks ne tabelen e faqe"e per te gjetur entry#n
per ate faqe "irtuale. !rej entry#t ne tabelen e faqe"e gjendet numri i kampjone"e te
faqe"e. )y numer i bashkangjitet sipas rendit rrites numrit te offset#it, duke 'e"endesuar
numrin e faqe"e "irtuale ne menyre qe te formoje nje adrese fi'ike e $ila me pas dergohet
ne memorje.
<ellimi i tabeles se faqe"e eshte hartimi i faqe"e "irtuale ne kampjone faqesh.
(atematikisht, tabela e faqe"e eshte nje funksion me numrin e faqe"e "irtuale si
argument dhe me re'ultat numrin fi'ik te kampjone"e.=uke perdorur re'ultatin e ketij
funksioni, fusha e faqe"e "irtuale ne adresen "irtuale mund te 'e"endesohet me nje fushe
me kampione faqesh duke formuar nej adrese fi'ike ne memorje.
!r"e ketij pershkrimi te thjeshte, duhen perballur dy eshtje te rendesishme.
&. Nabela e faqe"e mund te jete ekstremisht e gjere.
H. 2artimi mund te jete shume i shpejte.
!ika e pare rrjedh nga fakti qe kompjuterat moderne perdorin adresa "irtuale me se paku
9H bit. -e, le te themi, M ); madhesi faqeje, nje hapesire adresash me 9H bit ka & milion
faqe dhe nje hapesire adresash DM#bit ka akoma me shume se &97 mund te kon$eptojme
ne. (e & milion faqe ne hapesiren e adresa"e "irtuale, tabela e faqe"e mund te kishte &
milion entries. )ujtoni q do pro$es ka tabelen e tij te faqe"e( pasi ka hapesiren e tij te
adresa"e "irtuale).
!ika e dyte eshte nje rrjedhoje e faktit qe hatrimi nga "irtual ne fi'ik duhet bere ne $do
referen$e ne memorje. Nje instruksion tipik eshte ajo fjale dhe shpesh nje operand i
memorjes. 1i rrjedhoje jane te ne"jshme &,H apo me shume referen$a ne tabelat e faqe"e
per do instruksion . Ne qofte se nje instruksion kerkon, te themi M n/sek, referen$a ne
tabelen e faqe"e duhet bere se paku $do & n/se$ pr te shmangur piken e "dekjes.
Ne"oja per te pasur nje hartim te shpejte dhe te gjere eshte nje kufi'im shume i
rendesishem ne menyren se si ndertohen kompjuterat. (egjithate problemi eshte akoma
me serio' me makinat e ni"elit me te larte, eshte gjithashtu nje shtje jo shume e
kushtueshme, kur kosto dhe mimi/shpejtesi e performan$es jane kritike.
.Ne kete seksion dhe ne ata qe "ijojne do te trajtojme ndertimin e tabelae te faqe"e ne
menyre me te detajuar si dhe nje numer 'gjidhjesh hardware#ike te $ilat jane perdorur ne
kompjuterat e sotem.
Ndertimi me i thjeshte (se paku kon$eptual) eshte te kemi nje tabele te "etme faqesh qe
konsistojne ne nje sasi regjistrash te shpejte hardware#ik, me nje entry per do faqe
"irtuale, te indeksuar me numrin e faqes "irtuale, si$ tregohet ne fig.M#&&.)ur fillon nje
proes, sistemi operati" ngarkon regjistrat me ane te tabeles se faqe"e, i marre ky nga nje
kopje e mbajtur ne memorje. 5jate ek'ekutimit te proesit, nuk jane me te ne"ojshme
referen$at ne memorje per tabelen e faqe"e. ,"anta'het e kesaj metode jane qe kjo eshte
e drejtperdrejte si dhe nuk kerkon referen$a ne memorje gjate hartimit. =isa"anta'hi i saj
eshte fakti i te qenurit poten$alisht e kushtueshme (ne qofte se tabela e faqe"e eshte e
gjere). Ngarkimi i nje tabele te tere faqesh ne do konteks te sajin ndikon ne
performan$e.
!o te kalojme ne ekstremin tjeter, tabela e faqe"e mund te ngarkohet e gjitha ne
memorjen kryesore. 6 gjithe hardware#ri, kerkon nje regjister te "etem qe pointon ne
fillim te tabeles se faqe"e. )y model lejon qe harta e memorjes te jete e ndryshueshme
duke ringarkuar "etem nje regjister. 1igurisht qe ek'iston disa"anta'hin e te kerkuarit me
shume se nje referen$e ne memorje per te le%uar do entry ne tabelen e faqe"e gjate
ek'ekutimit te do instruksioni. !er kete arsye, ky perafrim perdoret rralle ne formen e tij
te paster, por me poshte mund te shqyrtojme disa perafrime qe sjellin nje performan$e me
te mire.
Tabelat e faqeve me shume nivele
Ne menyre qe te mund te perballen me problemin e maga'inimit te shume tabela"e te
faqe"e, shume kompjutera perdorin tabelat e faqe"e me shume ni"ele. Nje shembull i
thjeshte eshte treguar ne fig.M#&H. Ne fig.M#&H (a) kemi te bejme me nje adrese "irtuale
prej 9H#bitesh e $ila eshte ndare ne &8#bit fushe !N&, &8#bit fushe !NH si dhe &H#bit fushe
offset#i. =uke qene se offset#i eshte &H#bit atehere faqet jane M );, ndaj kemi nje total
prej H
H8
faqesh gjithesej.
igura (,12."a# Nje adrese !2,'it me dy fusha te ta'e%es se fa<e*e."' #2a'e%a fa<e*e me
dy )i*e%e.
1ekreti i kesaj metode eshte shmangia e te mbajturit te te gjithe tabela"e te faqe"e ne
memorje. Ne "eanti, ato qe nuk jane te ne"ojshme nuk duhen mbajtur aty. 1upo'ojme,
qe nje pro$esi i ne"ojiten &H (; dhe M (; me te siperm ne"ojiten per sta$k#un, ato qe
"ijojne per te dhenat dhe M te fundit per programin tekst. (idis pjeses se siperme te te
dhena"e dhe fundit te sta$k#ut ndodhet nje hole i madhe qe nuk perdoret.
Ne fig.M#&H (b) shohim se si nje tabele faqesh me dy ni"ele funksionon ne kete shembull.
Ne te majte kemi nje tabele faqesh me ni"el te siperm me &8HM entry, qe i korrespondojne
fushes &8#bit !N&.)ur nje adrese "irtuale pre'antohet ne ((+, ajo n%jerr fillimisht
fushen !N& dhe e perdor fushen e saj si nje indeks ne tabelen e faqe"e me ni"el te siperm.
1e$ila nga keto &8HM entry perfaqeson M ( pasi e gjithe hapesira e adresa"e "irtuale prej
M 5 shte $optuar ne pjese prej &8HM bytes.
ntry e lokali'uar nga indeksimi ne tabelen e faqe"e me ni"el te siperm i bashkangjitet
adreses apo numrit kampjon te faqes se nje tabele me nje ni"el te dyte. ntry 8 i nje
tabele me ni"el te siperm pointon ne tabelen e faqe"e per nje program tekst, entry & per te
dhena ndersa ajo e &8HM per sta$k#un. ntry#t e tjera nuk perdoren. /usha !NH eshte
tashme e perdorur si nje indeks ne tabelen e selektuar te faqe"e me nje ni"el te dyte ne
menyre qe te gjeje numrin kampjon te asaj faqeje.
1i shembull, do te marrim ne konsiderate nje adrese "irtuale prej 9H#bitesh 8%88M8988M
(M,H8D,7GD ne de$imal), i $ili eshte &H,HGH bytes te dhena. )esaj adrese "irtuale i
korrespondon !N&[&, !NH[H dhe offset[M. ((+ fillimisht perdor !N& si nje indeks per
tabelen me nje ni"el te siperm dhe perfton nje entry &, e $ila i korrespondon adresa"e nga
M( ne L(. (e pas ajo perdor !NH per te indeksuar tabelen me ni"el te dyte te sapo gjetur
dhe perfton nje entry 9, e $ila i korrespndon adresa"e nga &HHLL ne &D9L9 midis atyre
M( $hunk (me adresa absolute nga M,H8D,7GH ne M,H&8,DLC). )jo entry permban numrin
kammpjon te faqes me adrese "irtuale 8%88M8988M. Ne qofte se ajo faqe nuk ndodhet ne
memorje, biti present$absent ne entry#n e abeles se faqe"e do te behet 'ero duke
shkaktuar nje mungese te faqes (page fault). Ne qofte se faqja do te ndodhet ne memorje
numri i kampjonit te faqes i marre nga tabela e faqe"e me ni"el te dyte kombinohet me
offset#in (M) duke ndertuar nje adrese fi'ike. )jo adrese "endoset ne bus dhe dergohet ne
memorje.
,jo ka shte per tOu shenuar nga fig.M#&H eshte fakti qe, edhe pse hapesira eadresa"e
permban mbi & milion faqe, "etem M tabela faqesh ne"ijiten tamamJ tabela me ni"el te
siperm, tabela me ni"el te dyte nga 8 ne M(, ajo nga M deri ne L( dhe maksimumi me
M(.;itet present$absent &8H& entry#t te tabeles me ni"el te siperm "endosen ne 8, duke
shkaktuar nje mungese faqej, sigurisht ne se ajo aksesohet ndonjehere. (e tOu shfaqur
kjo, sistemi operati" do te "ereje qe pro$esi po tenton tOi referohet memorjes, gje ka ai
nuk eshte i autori'uar ta beje dhe sistemi do te ndermarre nje "eprim te tille si eshte
dergimi i nje sinjali apo "rasja e pro$esit. Ne ket shembull ne kemi 'gjedhur nje sere
numrash per madhesi te ndryshme dhe e kemi marre !N& te barabarte e !NH por ne jeten
e perditshme jane te mundshme edhe "lera te tjera.
Nabelat e faqe"e me dy ni"ele te fig.&H mund te 'gjerohen deri ne ni"ele, kater apo me
shume. Ni"elet shtese sjellin me shume fleksibilitet, por eshte i dyshimte kompleksiteti
shtese kur kalohet ne mbi tre ni"ele.
Struktura e nje entry ne nje tabele faqesh
-e te kthehemi tani nga struktura e nje tabele faqesh ne gjeresi, ne detajet e nje entry ne
nje tabele faqesh. 1htrirja ek'akte e nje entry eshet ne "aresi te larte nga makina, por
struktura e informa$ionit aty eshte praktikisht e njejte ne do makine. Ne fig.M.&9 jepet
nje shembull i nje entry ne tabelen e faqe"e. (adhesia "aret nga kopmjuteri ne
kompjuter, por 9H#bit eshte nje madhesi normale. /usha me e rendesishme eshte numri
kampion i faqes (page frame number). Ne fund te fundit qellimi i hartimit eshte
lokali'imi i ketij numri. !rane tij kemi bitin present$absent. Ne qofte se ky bit eshte &,
entry eshte e "lefshme dhe mund te perdoret. Ne qofte se eshte 8, faqja "irtuale se $iles i
perket entry nuk eshte aktualisht ne memorje. Ne aksesosh nje entry ne nje tabele faqesh
ku ky bit eshte 8 do te shkaktoje nje page fault.
igura (,1!. Nje e)try tipike )e )je ta'e%e fa<esh.
;iti i mbrojtjes tregon se fare lloj aksesi eshte i lejuar. Ne rastin me te thjeshte, kjo fushe
permban nje bit, me 8 ne se kemi te bejme me opera$ion shkrim/le%im dhe & ne se kemi
te bejme "etem me opera$ion le%im. Nje rregullim me i sofistikuar eshte te kesh e besh
me tre bite, dy te parat per aftesim te shkrimit dhe le%imit dhe fundit per ek'ekutim te
faqes .;itet e mo,ifikuar dhe te referuar regjistrojne do perdorim te faqes. )ur eshte
shkruar mbi nje faqe, hardware#i autmatikisht ndryshon bitin e mo,ifikuar. )y bit ka
"lere kur sistemi operati" "endos te kerkoje nje kampion faqeje. )ur faqja nuk eshte e
modifikuar (eshte e piset), ajo do te rishkruhet perseri ne disk. Ne se nuk eshte e
modifikuar (eshte e paster), thjesht mund te braktiset perderisa kopja ne disk eshte e
"lefshme. ;iti 'akonisht eshte quajtur ,irty bit, pasi tregon gjendjen e faqes.
;iti i referuar ndryshon sa here ne i referohemi nje faqeje, per shkrim apo per
le%im.>lera e tij e ndihmon sistemin operati" te shmange ndonje page fault te mundshem.
/aqet qe nuk jane perdorur ndonjehere jane kandidate me te mire se ato qe jane perdorur
me pare. )y bit luan nje rol te rendesishem ne algoritmat e 'e"endesimit te faqe"e, te
$ilat do te studiohen me "one ne kete kapitull.
(e ne fund, biti i fundit lejon qe fshehja te jete disa bite per faqen.
)jo forme eshte e rendesishme per ato faqe qe hartohen ne pajisjet regjistra me shume se
ne memorje. Ne se sistemi operati" perfshihet ne nje $ikel duke pritur per pajisje 6/: qe
tOi pergjigjen komandes se sapo dhene, eshte e rendesishme qe hardware#i te marre fjale
nga pajisja dhe jo te perdore nje kopje te "jeter. (e ane te ketij biti, $a$hing nuk
aftesohet me. (akinat qe kane hapesira 6/: te ndryshme dhe nuk perdorin hartimin 6/: te
memorjes kete bit nuk e kane te ne"ojshem.
(baj mend qe adresa e diskut e perdorur per ta mbajtur kete faqe kur ajo nuk gjendet ne
memorje nuk eshte pjese e tabeles se faqe"e. )y arsyetim eshte i thjeshte. Nabela e
faqe"e mban "etem informa$ionin qe i ne"ojitet hardware#it per te perkthyer adresat
"irtuale ne adresa fi'ike. 6nforma$ioni qe i ne"ojitet sistemit perati" per te perballuar
page fault#et gjendet ne tabelat software ne brendesi te sistemit operati".2ardware#i nuk
ka ne"oje per te.
4.3.3 TLB s
Ne shume skema te hartimit, tabelat e faqe"e mbahen ne memorje, fale permasa"e te
medha te tyre. !oten$ialisht, ky ndertim ka nje ndikim te madh ne performan$e. (errni
ne konsiderate nje instruksion qe kopjon nje regjister tek nje tjeter. Ne mungese te
hartimit, ky instruksion i referohet "etem memorjes per te marre nje tjeter instruksion.(e
ane te hartimit, jane te ne"ojshme referime te tjera ne memorje per te aksesuar tabelen e
faqe"e.(eqene se shpejtesia e ek'ekutimit "aret nga shpejtesi me te $ilen *!+ kap
instruksionet dhe te dhenat nga memorja, te besh nga dy referime ne tabelat e faqe"e per
memorje e redukton performan$en me H/9. Ne kushte te tilla, askush nuk do ta perdorte
kete metode.
=i'enjuesit e kompjutera"e ishin ne dijeni te ketij problemi dhe gjeten nje 'gjidhje.
@gjidhja u ba'ua ne fatin qe shume programe tentonin te benin nje numer te madh
referimesh ne nje numer te madh faqesh te "ogla. )eshtu "etem nje numer i "ogel
tabelash faqesh le%oheshin dhe pjesa tjeter thjesht mbetej jashte loje.
@gjidhja ishte "endosja ne kompjutera i nje pajisjeje te "ogel hardware#ike ne menyre qe
hartimi i adresa"e "irtuale ne ato fi'ike te behej aty, pa pasur ne"oje per aksesim ne
tabela te faqe"e. !ajisja e quajtur N-; (Nable -ookaside ;uffer) ose, si 'akonisht
memorje sho4eruese, eshte ilustruar ne fig.M.&M. ,jo gjendet 'akonisht ne brendesi te
((+#se dhe konsiston ne nje numer te "ogel entry#sh, tete ne kete shembull, por rralle
me shume se DM. *do entry permban informa$ion mbi faqen duke perfshire ketu edhe
numrin e faqes "irtuale, nje bit qe ndryshon kur faqja modifikohet, kodin e mbrojtjes (leje
mbi le%imin, shkrimin dhe ek'ekutimin) dhe numrin kampion te faqes fi'ike ne te $ilen
kjo faqe eshte lokali'uar. Nje bit tjeter tregon nse nje entry eshte e "lefshme (ne
perdorim) apo jo.
igura (,1(.Nje 2FB pe te pershpejtuar fa<osje)
Nje shembull qe gjeneron nje N-; si ne fig.M#&M eshte nje pro$es qe gjndet ne nje $ikel
qe pershkon faqet "irtuale &G, H8 dhe H&, keshtu keto N-; entry kane kode mbrojtjeje per
le%im dhe ek'ekutim. Ne dhenat qe perdoren ne ate kode ndodhen ne faqet &HG dhe &98.
/aqja &M8 permban indekset e perdorura ne llogaritjet e te dhena"e. 1e fundi, sta$k#u
ndodhet ne faqet LD8 dhe LD&.
-e te shohim tani se si funksionon N-;. )ur ne ((+ pre'antohet nje adrese "irtuale per
perkthim, hardware#i kontrollon per te pare ne se numri i faqes se saj "irtuale ndodhet ne
N-; duke e krahasuar ate me te gjitha entry#t njekohesisht (ne paralel). Ne se ka
perputhje dhe aksesimi nuk i dhunon bitet e mbrojtjes, kampioni i faqes merret direkt nga
N-;, pa qene e ne"ojshme te shkojme tek tabela e faqe"e. Ne se faqja "irtuale ndodhet
ne N-; por instruksioni kerkon te shkruaje mbi nje faqe "etem te le%ueshme, atehere
kemi nje dhurim te bitit te mbrojtjes dhe nuk lejohet aksesi, njelloj si te tabela e faqe"e.
.ast interesant eshte kur numri i faqes "irtuale nuk gjendet tek N-;. ((+#ja e 'bulon
nje gje te tille dhe ben nje kontroll te 'akonshem ne tabelen e faqe"e. ,jo perjashton nje
entry ne N-; dhe e 'e"endeson ate me nje entry ne tabelen e faqe"e te sapo 'buluar.
)eshtu, ne se ajo faqe eshte perdorur me pare, heren e dyte ajo re'ulton si nje goditje ne
memorje dhe jo si nje mungese. )ur nje entry eshte purged nga N-;, biti i modifikuar
kopjohet ne entry#n e tabeles se faqe"e ne memorje. >lerat e tjera jane, sakaq atje. )ur
N-; ngarkohet nga tabela e faqe"e, te gjitha fushat merren nga memorja.
Menaxhimi software-ik imemorjes
=eri tani, kemi supo'uar qe memorjet me faqe "irtuale kane tabela faqesh te njohura nga
hardware#i, plus nje N-;. (e kete model, mena%himi 6 N-; dhe perballja me gabimet ne
te do te merreshin persiper nga harware#i i ((+#se. Nderhyrja ne software ndodh "etem
kur kemi nje mungese faqeje ne memorje.
Ne te kaluaren, nje supo'im i tille ishte i "ertete. 5jithsesi, shume makina moderne te
.61* duke perfshire edhe 1!,.*, (6!1, ,-!2, dhe 2!!, bejne te gjitha perafresisht
nje mena%him software#ik. Ne makina te tilla entry#t ne N-; behen "etem nga sistemi
operati". )ur ndodh nje mungese ne N-;, ne "end qe te ngarkohet ((+#ja me detyre e
gjetjes se faqes perkatese ne memorje, tashme gjenerohet nje sinjal (N-; fault) dhe
problemi i kalohet sistemit operati". 1istemi duhet te gjeje faqen, te 'h"endose nje entry
nga N-;, ta 'e"endesoje me nje tjeter dhe te rinise instruksionin qe deshtoi me pare.
1igurisht, te gjitha keto duhet te behen ne menyre manuale pasi sinjalet e gabimit ne N-;
ndodhin me shpesh sesa ne tabelat e faqe"e.
Buditerisht, ne se N-; eshte mjaftueshem e gjere (DM entry le te themi) pr t reduktuar
mungesat, mena%himi i software#it te N-; re'ulton te jete efi$ent. !erfitimi me i madh
ketu sht nje ((+ me e thjeshte e $ila liron nje hapesire te konsiderueshme ne qarkun e
*!+#se per $a$he apo per forma te tjera qe kerkojne performan$e. (ena%himi software#
ik i N-; eshte diskutuar nga +hliget al. (&GGM).
Aane 'h"illuar strategji te ndryshme per te permiresuar performan$en ne makina qe
aplkojne mena%himin softaware#ik te N-;. Nje prej tyre tenton te '"ogeloje mungesat ne
N-; si dhe pasojat qe shkakton kjo mungese (;ala et al.&GGM). !er t redukruar
mungesat, ndonjehere sistemi operati" perdor intuiten e tij per te gjetur se $ila do te jete
faqja qe do te perdoret ne "ijim dhe per te ngarkuar paraprakisht entry#t nga tabela e
faqe"e ne N-;. !er shembull, kur nje pro$es klient i dergon nje mesa'h pro$esit ser"er
ne te njejten makine, kerkohet qe ser"eri te "eproje menjehere. =uke e ditur kete,
nderkohe qe kryhet pro$esi i dergimit, sistemi mund te kontrolloje ku ndodhen kodi i
ser"erit, te dhenat dhe faqet e sta$k#ut duke i hartuar ato perpara se te ndodhe ndonje
gabim ne N-;.
Nje menyre normale per te "epruar me nje mungese ne N-;, si ne hardware ashtu edhe
ne software, eshte te shkosh ne tabelen e faqe"e dhe te kryesh nje opera$ion indeksimi
per te lokali'uar faqen qe mungon. !roblemi ne nje kerkim e tille ne software eshte se
faqja qe mban tabelen e faqe"e mund te mos ndodhet ne N-; duke shkaktuar nje tjeter
gabim ne N-; gjate pro$esit keto gabime mund te reduktohen duke mbajtur nje $a$he
software ne entry#t e N-; ne nje "endodhje fikse, faqja e se $iles ndodhet gjithnje ne
N-;. =uke kerkuar me pare ne kete $a$he, sistemi operati" mund te reduktoje mungesat
ne N-;.
4.3.4 Tabelat e invertuara te faqeve
Nabelat tradi$ionale te faqe"e te pershkruara deri tani kerkojne nje entry per do faqe
"irtuale, duke qene se jane indeksuar nga numri i faqes "irtuale. Ne se hapesira e
adresa"e konsiston ne H
9H
bytes, me M8GD byte per faqe, atehere ne"ojiten mbi & milion
entry te tabela"e te faqe"e. =uke marre minimumin, tebela e faqe"e duhet te kishte te
pakten M(;. Ne sisteme me te gjera, kjo shifer eshte ndoshta e mundshme.
5jithsesi, duke qene se kompjuterat DM bit#sh po bhen m te 'akonshem, situata
ndryshon ne menyre drastike. Ne se hapesira e adresa"e tashme eshte H
DM
byte, me faqe
prej M);, do te na duhej nje tabele faqesh me H
7H
entry. Ne se $do entry eshte L byte,
tabela do te kishte mbi 98milion 5;. ;llokimi i 98 milion 5; "etem per page table nuk
mund te behet, as tani dhe as per shume "ite te tjera.
1i rrjedhoje do ta na duhet nje 'gjidhje tjeter per hapesirat e faqe"e "irtuale prej DMbit.
Nje 'gjidhje e tille do te ishte tabela e in#ertuar e fa4e#e. Ne nje model te tille kemi nje
entry per $do kampion faqeje ne memorjen reale, ne karahasim me rastin kur kemi nje
entry per $do faqe te hapesires se adresa"e "irtuale. !er shembull, me DM bit adresa
"irtuale, nje faqe prej M ); dhe me nje .,( prej H7D (;, nje tabele faqesh e in"ertuar
kerkon "etem D7.79D entry.ntry regjistron se $ili pro$es apo faqe "irtuale eshte lokali'ar
ne kampionin e faqes. dhe pse tabelat e in"ertuara te faqe"e shmangin shperdorim te
madh te memorjes, te pakten, kur hapesira e adreses "irtuale eshte me e gjere se memorja
fi'ike, ata kane nje ane te erretJ perkthimi "irtual#fi'ik behet shume me i "eshtire.)ur
pro$esi n i referohet faqes "irtuale p, hardware#i nuk mund ta gjeje me faqen fi'ike "etem
duke perdorur p si indeks ne tabelen e faqe"e. Nga ana tjeter, ai mund te kerkoje neper te
gjithe tabelen e in"ertuar te faqe"e per nje entry (n-p). ,koma me tej, ky kerkim mund
behet gjate do referimi ne memorje, jo "etem gjate nje page fault. =uke kerkuar nje
tabele me DM ) ne do referim ne memorje nuk eshte nje menyre per ta bere te shpejte
makinen.
@gjidhja e kesaj dileme eshte perdorimi i N-;#se. Ne se N-; mund te mbaje te gjitha
faqet e renda te perdorura, perkthimi mund te ndodhe aq shpejte sa me tabela normale
faqesh. Ne nje mungese tek N-;, gjithsesi, tabela e in"ertuar e faqe"e duhet te kerkohet
ne software. Nje menyre e mire per te reali'uar kete kerkim eshte te kesh tabela hash te
ndodhura ne adresat "irtuale. Ne gjitha faqet "irtuale te ndodhura aktualisht ne memorje
qe kane te njejten "lere hash jane te "endosura 'in%hir se bashku, si ne fig.M#&7. Ne se
tabela hash ka aq slote sa nje makine ka faqe fi'ike, 'in%hiri do te ishte i gjate sa nje
entry, duke pershpejtuar me se miri hartimin. (e tOu gjetur numri kampjon i faqes, nje
pale e re ("irtuale, fi'ike), do te gjendet ne N-;.
igura (,1+. Drahasimi i ta'e%a*e k%asike te fa<e*e me ta'e%at e i)*ertuara te fa<e*e.
Nabelat e in"ertuara te faqe"e perdoren ne disa 6;( si dhe ne disa workstation 2ewlett#
!a$kard dhe do te behen akoma me te 'akonshme ashtu sikurse po behen makinat DM#
biteshe. !erafrime te tjera qe perballojne memorje te gjera "irtuale mund te gjenden ne
(2u$k S2ays, &GG9I NalluriS 2ill, &GGM dhe Nalluri et al.,&GG7).
4.4 ALGORTMAT E ZVENDSIMIT T FAQEVE
)ur ndodh nj page fault, sistemi operati" duhet t fshij nj faqe nga memorja pr t
ln "end pr faqen tjetr q duhet t oj atje. N qoft se faqja q do t fshihet sht
modifikuar gjat kohs q ka qen n memorje duhet t rishkruhet n disk n menyr q
disku t a'hornohet. !or n qoft se ajo nuk sht ndryshuar (per shembull, prmban nj
program te%t), disku sht i a'hornuar, kshtu q rishkrimi nuk sht i ne"ojshm. /aqja
q do t le%ohet n memorje thjesht do t shkruhet mbi faqen q do t fshihet.
dhe pse do t ishte e mundur t 'gjidhej rastsisht nj faqe pr tOu fshir gjat do page
fault#i, performan$a e sistemit do t ishte m e mir nse do te hiqej nj faqe q nuk
prdoret shpesh. N se fshihet nj faqe q prdoret shpesh, ajo shpejt do t duhej t sillej
n memorje, duke re'ultuar n e%tra o"erhead. ?sht br shum pun teorike dhe
eksperimentale mbi algoritmat e '"endsimit t faqe"e. ( posht do t prshkruajm
disa nga algoritmat m t rndsishm.
=uhet thn se problemi i E'"endsimit t faqe"eF shfaqet edhe n pjes t tjera t
ndrtimit t kompjuterit gjithashtu. !er shembull shum kompjutera kan nj ose m
shum memorje $a$he t prbra nga blloqe memorjeje 9H#byte dhe DM#byte te perdorur
se fundmi. )ur $a$he#ja sht plot, nj bllok duhet t fshihet. )y problem sht i njjti
me at t '"endsimit t faqe"e, me prjashtim t inter"alit kohor m t shkurtr (kjo gj
duhet t bhet n disa ns dhe jo n disa ms si n rastin e faqe"e). ,rsyeja e inter"alit m
t shkurr kohor sht se miss $a$he#t e blloqe"e plotsohen nga memorja kryesore, q
nuk ka koh krkimi dhe asnj "ones ra$ionale.
1hembulli i dyt sht ai i nj web ser"eri. 1er"eri mund t prmbaj nj numr t
$aktuar web faqesh shpesh t prdorura n $a$he#n e tij. !or kur $a$he#ja sht plot dhe
ne i referohemi nj faqeje t re, duhet t fshihet nj web faqe. -ogjika sht e njjt me
at t faqe"e t memorjes "irtuale, me prjashtim t faktit q faqet web nuk modifikohen
n $a$he, prandaj ka gjithmon nj kopje tjetr n disk. N sistemin e memorjes "irtuale,
faqet n memorjen kryesore mund t jen $lean ose dirty.
4.4.1 ALGORITMI OPTIMAL
,lgoritmi m i mir i mundshm sht i thjesht pr tOu prshkruar, por i pamundur pr
tOu implementuar. ,i funksionon kshtuJ n momentin q ndodh nj page fault, nj grup
faqesh sht n memorje. Ne do t adresojm njrn nga kto faqe n instruksionin
pasardhs (faqen q prmban instruksionin). /aqet e t tjera mund t mos i adresojm
deri pas &8, &88 apo i(%) 8 instruksione m pas. Bdo faqe mund t etiketohet me numrin e
istruksione"e q do t ek'ekutohen para se tOi referohemi asaj faqeje.
1ipas algoritmit optimal duhet fshir faqja me etiket m t madhe. Nse nj faqe nuk do
t prdoret pr C milion instruksione dhe nj tjetr nuk prdoret pr D milion instruksione,
duke fshir t parn e shtyn page fault sa m larg n t ardhmen t jet e mundur.
)ompjuterat, ashtu si njer'it, prpiqen tOi shtyjn ngjarjet e pakndshme sa m shum
koh t munden.
!roblemi i "etm i ktij algoritmi sht se sht i pareali'ueshm. N momentin e page
fault, sistemi operati" nuk ka mundsi t dij kur do tOi referohemi n "a'hdim se$ils
faqe (!am t njtn situat tek algoritmi shortest job first s$heduling K 1i mund ta dij
sistemi $ili pro$es sht m i shkurtriU). 5jithsesi, duke ek'ekutuar nj program n nj
simulator dhe duke ruajtur gjurmt e t gjitha adresa"e t faqe"e, sht e mundur t
implementohet '"endsimi optimal i faqe"e n ek'ekutimin e dyt, duke prdorur
informa$ionin mbi gjurmt e adresa"e t faqe"e t marr gjat ek'ekutimit t par.
N kt mnyr sht e mundur t krahasohet performan$a e algoritma"e t reali'ueshm
me performan$n m t mir t mundshme. Nse nj sistem operati" arrin nj
performan$ prej, t themi &Q m pak se algoritmi optimal, mundi i har%huar pr
krkimin e nj algoritmi m t mir do t jap t shumtn &Q fitim.
!r t shmangur do konfu'ion t mundshm, duhet t bhet e qart se ky aksesim i
adresa"e t faqe"e i referohet "etm nj programi sapo t matur dhe me nj input
spe$ifik. ,lgoritmi q deri"on prej ktej sht kshtu spe$ifik pr kt program dhe t
dhnat hyrse. dhe pse kjo metod sht e prdorshme pr "lersimin e algoritmit, nuk
prdoret n sistemet praktike.
( posht do t studiojm algoritmat e prdorshm n sistemet reale.
4.4.2 ALGORITMI NOT RECENTLY USED
N mnyr q t lejojn sistemin operati" t mbledh statistikat e ne"ojshme se $ilat faqe
po prdoren dhe $ilat jo, shum kompjutera me memorje "irtuale kan H bite gjendjeje q
i aso$iohet do faqeje. . "endoset kur faqja adresohet (shkruhet ose le%ohet), ( "endoset
kur faqja shkruhet (pra modifikohet). ;itet ndodhen n do page table entry, si$ tregohet
n /ig M#&9. ?sht e rndsishme t kuptohet se kto bite mund t a'hornohen (update) n
do aksesim memorjeje, prandaj sht esen$iale t "endosen nga hardware. !asi biti
setohet &, qndron kshtu derisa sistemi operati" e reseton 8 n software.
Nse hardware nuk i ka kto bite, ato mund t simulohen si m posht. )ur nj pro$es
fillon, t gjitha page table entrie te tij shnohen sikur nuk jan n memorje. 1apo nj faqe
adresohet do t ndodh nj page fault. ,ther sistemi operati" seton bitin . (n tabelat e
tij t brendshme), ndryshon page table entry t pointoj te faqja q duhet me mnyrn
.,= :N-] dhe restarton instruksionin. Nse faqja m pas do t shkruhet ather do t
ndodh nj tjetr page fault, duke e lejuar sistemin operati" t ndryshoj mnyrn e faqes
n .,=/3.6N.
;itet . dhe ( mund t prdoren pr t ndrtuar nj algoritm t thjesht si m poshtJ
)ur pro$esi fillon, t dy bitet e faqe"e pr t gjith faqet e tij 'erohen nga sistemi
operati". !eriodikisht (pra pr $do interrupt $lo$k#u) biti . 'erohet pr t dalluar faqet q
nuk jan adresuar nga ato q jan adresuar.
)ur ndodh nj page fault, sistemi operati" kontrollon t gjitha faqet dhe i ndan ato n M
kategori, ba'uar n "lerat aktuale t bite"e . dhe (J
)ategoria 8 m jo e adresuar, jo e modifikuar
)ategoria & m jo e adresuar, e modifikuar
)ategoria H m e adresuar, jo e modifikuar
)ategoria 9 m e adresuar, e modifikuar
dhe pse kategoria e par duket, n pamje t par e pamundur, kjo ndodh kur nj faqe e
kategoris 9 e ka bitin . t resetuar nga nj sinjal $lo$k#u. )to sinjale nuk resetojn bitin
(, sepse ky informq$ion ne"ojitet pr t ditur nse faqja sht rishkruar n disk apo jo.
=uke resetuar ., por jo (, ato ojn n faqet e kategoris &.
,lgoritmi N.+ fshin rastsisht nj faqe nga klasa jobosh me numr m t "ogl. mira e
ketij algoritmi sht se sht m mir t fshihet nj faqe modifikuar q nuk sht adresuar
n t paktn nj impuls $lo$k#u ('akonisht H8ms), se t fshihet nj faqe q sht n
prdorim. ,"anta'hi kryesor i N.+ sht se sht i leht pr tu kuptuar, mesatarisht
efient pr tu implementuar dhe jep nj performan$ q, edhe pse jo shum optimale,
mund t jet e mjaftueshme.
4.4.3 ALGORITMI FIRST-IN, FIRST-OUT (FIFO)
Nj tjetr algoritm low#o"erhead sht algoritmi /6/:. !r t kuptuar se si funksionon,
mendoni nj supermarket q ka mjaft rafte pr t reklamuar ek'aktsisht k produkte t
ndryshme. Nj dit nj kompani pre'anton nj ushqim t astit t ri me le"erdi, t ngrir,
kos organik q mund t rigjenerohet n nj furr me mikro"al. ?sht nj sukses i
menjehershm, kshtu supermarketi yn i kufi'uar duhet t heq nj produkt tjetr n
mnyr q t fus kt produkt t ri.
Nj mundsi sht q t gjendet nj produkt q supermarketi e ka mbajtur pr m gjat
(per shembull dika q ka nisur t shitet H8 "jet m par) dhe pr t $ilin askush nuk
interesohet m. N fakt, supermarketi mban nj list t lidhur t t gjiht produkte"e q ai
shet, n radhn q ato jan futur. !rodukti i ri shkon n fund t lists, ai i pari fshihet prej
lists.
N algoritm 'batohet e njjta ide. 1istemi operati" mban nj list t t gjitha faqe"e q
ndodhen n memorje, me faqen m t "jetr n fillim t lists dhe me m t ren e ardhur
n fund t saj. N nj page fault faqja n fillim fshihet dhe faqja e re shtohet n fund t
lists. )ur aplikohet n maga'in, /6/: mund t fshij parafine, por gjithashtu mund t
fshij miell, krip ose gjalp. )ur aplikohet n kompjutera shfaqet i njjti problem. !er
kt arsye, /6/: prdoret rall n formn e tij t pastr.
4.4.4 ALGORITMI SECOND CHANCE
Nj modifikim i thjesht tek /6/: q shmang problemin e t fshirit t nj faqeje t
prdorshme, sht t kontrollohet biti . i faqes m t "jetr. Nse sht 8, faqja sht e
"jetr dhe e paprdorur, kshtu q '"endsohet menjeher. Nse sht &, biti resetohet,
faqja "endoset n fund t lists dhe koha e ngarkimit t saj a'hornohet si t kishte ardhur
tani n memorje, m pas krkimi "a'hdon.
>eprimi i ktij algoritmi, t quajtur 1e$ond *han$e, tregohet n /ig M#&D. N /ig M#&D (a)
shohim faqet nga , n 2 t mbajtura n nj list t lidhur dhe t radhitura sipas kohs n
t $iln kan arritur n memorje.
1upo'ojm se ndodh nj page fault n kohn H8. /aqja m e "jetr sht ,, q ka ardhur
n kohn 8, kur pro$esi ka filluar. Nse , e ka birin . 8, ajo fshihet nga memorja, edhe
duke qen shkruar n disk (nse sht dirty) apo thjesht EbraktisurF (nse sht $lean).
Nga ana tjetr, nse . sht i setuar, , "ihet n fund t lists dhe koha e ngarkimit t saj
ri"endoset n kohn aktuale (H8). ;iti . gjithashtu 'erohet. )rkimi pr nj faqe t
prshtatshme "a'hdon.
Fig. 4.16. Veprimi i Second Chance : (a) Faqet t renditura n rendin FIFO. (b)
Lista e faqeve nse ndodh nj page fault n kohn 20 dhe A e ka bitin R t setuar.
Numrat sipr faqeve jane koht e tyre t ngarkimit.
,jo q 1e$ond *han$e bn, sht t krkoj nj faqe t "jetr q nuk sht adresuar n
inter"alin e mparshm t $lo$k#ut. Ne qofte se t gjitha faqet jan adresuar, 1e$ond
*han$e degjeneron n /6/: t pastr. )onkretisht, imagjinoni q t gjitha faqet n /ig M#
&D (a) e kan bitin . &. Nj nga nj, sistemi operati" i on n faqet n fund t lists, duke
'eruar bitin . sa her q shton nj faqe n fund t lists. N fund kthehet tek faqja , q
tashm bitin . e ka 8. N kt pik ajo fshihet. )shtu, algoritimi prfundon.
4.4.5 ALGORITMI THE CLOCK
dhe pse algoritmi 1e$ond *han$e sht i logjikshm, ai nuk sht efient pr shkak t
l"i'je"e t tij konstante rreth faqe"e t lists. Nj mnyr m e mir sht q t mbahen
t gjitha frame#t n nj list qarkulluese n form ore, si tregohet n /ig M#&C. Nj
tregues pointon n faqen m t "jetr.
Fig. 4-17. Algoritmi The Clock
)ur ndodh nj page fault, faqja tek e $ila pointohet nga treguesi, kontrollohet. Nse biti .
i saj sht 8, ajo fshihet, faqja e re shtohet n or n "end t saj dhe treguesi a"an$on me
nj po'i$ion. Nse biti . sht &, ai 'erohet dhe treguesi a"an$on n faqen tjetr.
)y pro$es prsritet derisa gjendet nj faqe me .[8. Nuk sht udi q algoritmi quhet
Nhe *lo$k. ,i ndryshon nga 1e$ond *han$e "etm nga implementimi.
4.4.6 ALGORITMI LEAST RECENTLY USED
Nj prafrim i mir i algoritmit optimal ba'ohet n hipote'n se faqet q jan prdorur n
instruksionet e fundit ndoshta do t prdoren prsri n instruksionet pasardhse. Ndrsa
faqet q nuk jan prdorur pr "ite, ndoshta nuk do t prdoren pr nj koh t gjat. )jo
ide sugjeron nj algoritm t reali'ueshm J kur ndodh nj page fault, hiqet faqja q nuk
sht prdorur pr kohn m t gjat. )jo strategji quhet -.+ (-east .e$ently +sed).
dhe pse -.+ sht teorikisht i reali'ueshm, nuk sht i lir. !r tu implementuar
plotsisht -.+ sht e ne"ojshme t mbahet nj list e lidhur t gjitha faqe"e n
memorje, me faqen most re$ently used n fillim dhe at least re$ently used n fund.
>shtirsia sht se lista duhet t a'hornohet n do aksesim t memorjes. N gjendet nj
faqe n list, t fshihet dhe m pas t l"i'et n fillim sht nj "eprim q har%hon shum
koh, edhe n hardware (duke supo'uar se nj hardware i till mund t ndrtohet).
(egjithat, ka mnyra t tjera pr t implementuar -.+ me nj hardware t "eant.
(arrim n fillim mnyrn m t thjesht. )jo mnyr krkon pajisjen e hardware me nj
numrues DM#bitsh, *, q automatikisht inkrementohet pas do instruksioni. !r m
tepr,do page table entry duhet t ket nj fush aq t gjersa t mbaj numruesin. !as
do aksesimi memorjeje, "lera e * ruhet n page table entry pr faqen sapo t adresuar.
)ur ndodh nj page fault, sisemi operati" ek'aminon t gjith numratort n page table
pr t gjetur m t ultin prej tyre. ,jo faqe sht least re$ently used.
Nani le t shohim algoritmin e dyt -.+ t hardware. !r nj makin me n page frame,
-.+ mund t mbaj nj matri$ prej m%n bitesh, fillimisht t gjitha 8. 1a her q page
frame k adresohet, hardware n fillim "endos t gjitha bitet kolons k n 8. N do
moment, rreshti, "lera binare e t $ilit sht m e lart, sht m pak re$ently used e
kshtu me radh. !una e ktij algoritmi tregohet n /ig. M#&L pr katr page frame dhe
adresa faqesh n radhn J 8 & H 9 H & 8 9 H 9.
!asi adresohet faqja 8, kemi situatn n /ig. M#&L(a). !asi adresohet faqja &, kemi situatn
n /ig. M#&L(b), e kshtu me radh.
4.4.7 SIMULIMI I LRU N SOFTWARE
dhe pse t dy algoritmat -.+ e mparshm jan t reali'ueshm n parim, pak nse
ek'istojn, makina e kan kt hardware, kshtu q kan prdorim t pakt n di'enjimet
e sistemit operati", q nuk jan sisteme pr makina q nuk kan kt hardware. N "end
t saj ne"ojitet nj 'gjidhje q mund t implementohet n software. Nj mundsi sht
quajtur algoritmi N/+ (Not /requently +sed). )jo krkon nj numrator software t
aso$iuar do faqeje, n fillim 8. N do sinjal $lo$k#u, sistemi operati" skanon t gjitha
faqet n memorje. !r do faqe, biti . q sht 8 ose &, skanon t gjitha faqet n
memorje. N fakt, numratort jan nj prpjekje pr t ruajtur gjurmt se sa shpesh sht
adresuar do faqe. )ur ndodh nj page fault, faqja me numratorin m t ult, shpesh
'gjidhet pr '"ndsim.
Fig. 4-18. LRU duke prdorur nj matric kur faqet adresohen sipas radhs 0, 1, 2,
3, 2, 1, 0, 3, 2, 3.
!roblemi kryesor me N/+ sht q asnjeher nuk harron asgj. !er shembull n nj
kompilator me shum kalime, faqet q u prdorn shpesh gjat kalimit &, mund t ken
nj numrim t lart edhe n kalimet e m"onshme. N fakt, nse ndodh q kalimi & t
ket kohn m t gjat t e%ekutimit t t gjith kalime"e, faqet q mbajn kodin e
kalime"e t m"onshm mund t ken gjithmon numrime m t ulta se kalimi i
faqe"e. 1i pasoj e ksaj, sistemi operati" do t fshij faqe t ne"ojshme n "end t
faqe"e q nuk prdoren.
/atmirsisht, nj modifikim i "ogl i N/+ bn t mundur t simulohet mjaft mir -.+.
(odifikimi ka H pjes. 1 pari, numratort 'h"endosen, se$ili prej tyre, djathtas me nj
bit, prpara se t shtohet biti .. 1 dyti, biti . i shtohet bitit m t majt e jo atij m t
djatht.
/ig. M#&G, ilustron se si algoritmi i modifikuar, i njohur si Aging, funksionon.
1upo'oni se pas impulsit t par t $lo$k#ut bitet . pr faqet nga 8 n 7, kan prkatsisht
"leratJ &, 8, &, 8, & dhe & (faqja 8 sht &, faqja & sht 8 etj). (e fjal t tjera, midis
sinjale"e 8 dhe &, u adresuan faqet 8, H, M dhe 7, duke i "endosur bitet . t tyre n &,
ndrkoh q t tjerat qndrojn 8. !asi gjasht numruesat korrespondues jan
'h"endosur dhe biti . sht shtuar n t majt, ata kan "lerat e treguara n /ig. M#&G(a).
)atr kolonat e tjera tregojn gjasht numratort pas katr impulse"e pasardhse.
)ur ndodh nj page fault, faqja, numratori i s $ils sht m i ult, fshihet. ?sht e qart
se nj faqe q nuk sht adresuar pr, t themi, M impulse $lo$k#u, do t ket M bitet e para
8 n numratorin e saj dhe kshtu do t ket "ler m t "ogl se nj numrues q nuk
sht adresuar pr 9 impulse $lo$k#u. )y algoritm ndryshon nga -.+ n dy aspekte.
1hikoni faqet 9 dhe 7 n /ig. M#&G(e). ,snjra nuk sht adresuar pr dy impulse $lo$k#u,
t dyja ishin adresuar n impulsin pararendse. 1ipas -.+, nse nj faqe duhet t
'e"endsohet, duhet t 'gjedhim njrn nga kto t dyja. !roblemi sht se nuk e dim se
$ila nga kto t dyja ishte adresuar e fundit midis impulsi"e & dhe H. =uke regjistruar
"etm nj bit pr inter"al kohe, nuk e kemi aftsin tOi dallojm se $ila nga dy faqet u
adresua m shpejt n inter"alin e kohs se tjetra. 5jithka q mund t bjm sht t
fshijm faqen 9, duke qen se faqja 7 ishte adresuar gjithashtu H impulse m par, ndrsa
faqja 9 jo.
Fig. 4-19. Algoritmi Aging simulon LRU n software. 1an treguar gjasht faqe pr
pes impulse clock-u. Impulset e clock-ut paraqiten nga (a) te (e).
Ndryshimi i dyt midis ,ging dhe -.+ sht se n aging numruesat kan nj numr
limit bitesh, L n rastin ton. 1upo'ojm se dy faqe kan se$ila "ler t numruesit 8. ,jo
q mund t bjm sht t 'gjedhim rastsisht njrn prej tyre. N realitet, mund t ishte
nj nga ato faqe q ishte adresuar per her t fundit G impulse me par, ndrsa tjetra &888
impulse m par. Nuk kemi si e shohim kt gj. (egjithat, n praktik L bit jan
'akonisht t mjaftueshm nse nj impuls $lo$k#u sht 'akonisht H8 ms. Nse nj faqe
nuk sht adresuar n &D8 ms, ndoshta ajo nuk sht shum e rndsishme.
4.4.8 ALGORITMI WORKING SET
N formn m t pastr t punimit me faqe, pro$eset fillojn me asnj nga faqet e tyre n
memorje. 1apo *!+ prpiqet t kap instruksionin e par, ai merr nj page fault, duke
br q sistemi operati" t sjell n page mbajtesin e instruksionit te par. )jo ndiqet
shpejt nga t tjera page faults pr "ariabla global dhe sta$k#un. !as njfar kohe, pro$esi
ka shumi$n e faqe"e q i duhen dhe normali'ohet duke u ek'ekutuar relati"isht pak
page faults. )jo strategji quhet demanding paging sepse faqet ngarkohen "etm me
krkes dhe jo me prparsi.
1igurisht, sht mjaft e thjesht t shkruhet nj program test q le%on sistematikisht t
gjitha faqet n nj hapsir t madhe adresash, duke shkaktuar aq shum page faults, sa
nuk ka memorje t mjaftueshme pr tOi mbajtur t gjitha. /atmirsisht, shumi$a e
pro$ese"e nuk punojn kshtu. ,ta paraqesin nj lokalitet adresash, q do t thot se gjat
do fa'e ek'ekutimi pro$esi adreson "etm nj fraksion relati"isht t "ogl t t gjitha
faqe"e t "eta. Bdo kalim i nj kompiatori shum#kalimsh, pr shembull, akseson "etm
nj fraksion t t gjitha faqe"e, dhe nj fraksion t ndryshm nga ai.
1eti i faqe"e q nj pro$es sht duke prdorur quhet working set#i i tij (=enning, &GDL,
aI =enning, &GL8). Nse i gjith working set#i sht n memorje, pro$esi do t
ek'ekutohet pa shkaktuar shum page faults dhe do t ek'ekutohet ngadal, duke qen se
ek'ekutimi i nj instruksioni krkon disa ns, ndrsa le%imi i nj faqeje nga disku
'akonisht krkon &8 ms. N nj shkall prej disa & ose H instruksionesh pr &8ms, do t
duhej shum koh pr t mbaruar. Nj program q shkakton page fault do disa
instruksione thuhet se sht thrashing (=enning, &GLDb).
N nj sistem me multiprogramim, pro$eset ohen shpesh n disk (pra t gjitha faqet e
tyre fshihen nga memorja), pr tOua ln radhn pro$ese"e t tjera n *!+. -ind pyetja se
Odo t ndodh kur nj pro$es duhet sjell prsri n memorje. Neknikisht nuk duhet br
asgj. !ro$esi do t shkaktoj page faults, derisa working set#i i tij t jet ngarkuar.
!roblemi sht se duke patur H8,&88 apo edhe &888 page faults sa her q ngarkohet nj
pro$es, ngadalson dhe gjithashtu humbet nj koh t konsiderueshme t kohs s *!+,
duke qen se sistemit operati" i duhen disa ms t *!+ pr t pro$esuar nj page fault.
!randaj shum sisteme q punojn me faqe prpiqen t mbajn gjurm t working set t
do pro$esi dhe t sigurohet se sht n memorje para se t lejojn q pro$esi t
ek'ekutohet. )jo mnyr quhet working set model (=enning, &GC8). ,jo sht
projektuar pr t reduktuar shum shkalln e page fault. Ngarkimi i faqe"e para se t
lejohet ek'ekutimi i pro$ese"e quhet gjithashtu prepaging. )ini parasysh se working set
ndryshon n lidhje me kohn.
=ihet prej kohsh se shum programe nuk e aksesojn adresn e tyre t adresa"e
uniformisht, por adresat kan tenden$n t mblidhen n nj numr t "ogl faqesh. Nj
aksesim memorjeje mund t kap nj instruksion, nj t dhn ose mund t ruaj nj t
dhn. N do moment t kohs t, ek'iston nj grup i t gjitha faqe"e nga k adresimet t
pak mparshme. )y grup, wck, te, sht working set. (eqnse k[&, shumi$a e adresa"e
t fundit (re$ent) duhet tOi ken prdorur t gjitha faqet e prdorura nga kX& adresat m t
fundit (most re$ent) dhe mbase t tjera, wck, te sht funksion monoton jo 'brits i k.
-imiti i wck, te, duke qen se k rritet, sht i fundm, sepse nj program nuk mund t
adresoj m shum faqe nga sa mban hapsira e tij e adresimit dhe pak programe do t
prdorin do faqe. /ig. M#H8 paraqet madhsin e working set si funksion i k.
Fig. 4-20. Working set sht grupi i faqeve t prdorura nga k adresimet m t
fundit t memorjes. Funksioni w k, t] sht madhsia e working set n kohn t.
/akti se pjesa m e madhe e programe"e aksesojn nj numr t "ogl faqesh, por q ky
grup ndryshon ngadal, shpjegon rritjen e shpejt fillestare t kurbs dhe m pas rritjen e
ngadalsuar pr k t mdha. !er shembull, nj program q sht duke ek'ekutuar nj
$ikl q 'e dy faqe, q prdorin t dhna pr katr faqe, mund t adresoj t gjasht faqet
do &888 instruksione, por adresa m e fundit (most re$ently) n nj faqe tjetr mund t
jet &888 instruksione m shpejt, gjat fa's s ini$iali'imit. !r shkak t ksaj sjelljeje
asimptodike, prmbajtja e working set nuk sht e ndjeshme ndaj "lers s k#s s
'gjedhur. !r ta thn ndryshe, ek'iston nj "arg i gjat "lerash t k pr t $ilat working
set sht i pandryshuar. (eqnse working set ndryshon ngadal n lidhje me kohn,
sht e mundur t bhet nj hamendje e logjikshme se $ilat faqe do t duhen kur programi
t rifilloj mbi ba'n e working set#it kur ai u ndalua pr her t fundit. !repaging
konsiston n ngarkimin e ktyre faqe"e prpara se pro$esi t lejohet t e%ekutohet prsri.
!r implementilin e modelit working set sht e ne"ojshme q sistemi operati" t ruaj
gjurmt e se $ilat faqe jan n working set. N paturit e ktij informa$ioni gjithashtu on
menjeher n nj algoritm t mundshm t '"endsimit t faqe"eJ kur ndodh page fault,
gjendet nj faqe q nuk sht n working set dhe fshihet. !r t implementuar nj
algoritm t till na duhet t prei'ojm mnyrn e pr$aktimit se $ilat faqe jan n
working set dhe $ilat nuk jan n nj moment kohe t dhn.
1i prmendm m lart, working set sht bashksia e faqe"e t prdorura n k adresat
m t fundit (disa autor prdorin C adresat m t fundit, por 'gjedhja sht arbitrare). !r
t implementuar do algoritm working set, disa "lera t k duhet t 'gjidhen me par.
!asi sht 'gjedhur "lera, pas do adresimi, grupi i faqe"e i prdorur nga k adresat e
mparshme sht i pr$aktuar n mnyr unike.
!a dyshim, t paturit e nj prkufi'imi funksional t working set nuk do t thot se se ka
nj mnyr efiente pr ta monitoruar at n koh reale gjat ek'ekutimit t programit.
(und t imagjinohet nj regjistr rrshqits me gjatsi k
y
, q do adresim memorjeje e
'h"endos at n po'i$ionin majtas dhe n t djatht shtohet nr i faqes t adresuar m n
fund (most re$ently). 5rupi i k numrit t faqe"e n regjistrin rrshqits do t ishte
working set. (egjithat, t mbahet rregjistri rrshqits dhe dhe t pro$esohej n nj page
fault do t isht shum e kushtueshme, prandaj kjo teknik nuk prdoret.
N "end t saj, jan prdorur prafrime t ndryshme. Nj prafrim q prdoret 'akonisht
sht reali'imi i ides s numrimit prsri t k adresa"e dhe n "end t tyre t prdoret
koha e ek'ekutimit. !er shembull, n "end t pr$aktimit t working set si faqet e
prdorura gjat &8 mln adresime"e t mparshme, mund ta pr$aktojm at si grupi i
faqe"e i prdorur gjat &8 m/se$ e kohs s ek'ekutimit. N praktik, ky pr$aktim sht
po aq i mir, sa edhe m i thjesht pr tu prdorur. )ini parasysh se pr do pro$es, ka
rndsi "etm koha e tij ek'ekutimit. )shtu, nse nj pro$es fillon ek'ekutimin n kohn
N dhe ka pasur M8 m/se$ nga koha e *!+ n kohn reale NT&88 m/se$, pr qllimet e
working set, koha e tij sht M8 m/se$. !jesn e kohs s *!+ q pro$esi ka prdorur q
n fillim t tij, shpesh quhet koha virtuale aktuale ($urrent "irtual time) e tij. (e kt
prafrim, working set i nj pro$esi sht grupi i faqe"e q ai ka adresuar gjat N
sekonda"e t kaluara t kohs "irtuale.
Nani le t shohim nj algoritm t ba'uar n working set. 6deja ba' sht t gjendet nj
faqe q nuk sht n working set dhe t fshihet. N /ig. M#H& shohim nj pjes t page
table t nj kompjuteri. =uke qen se "etm faqet q ndodhen n memorje konsiderohen
si kandidate pr tu fshir, faqet q mungojn injorohen nga ky algoritm. Bdo entry
prmban t paktn dy elementJ kohn e prafrt kur faqja sht prdorur pr her t
fundit dhe bitin . (t referen$s). =rejtkndshi i bardh bosh prfaqson fushat e tjera,
t pane"ojshme pr kt algoritm, t tilla si numri i page frame#it, bit i mbrojtjes dhe biti
( (i modifikimit).
Fig. 4-21. Algoritmi Working Set
,lgoritmi funksionon si m poshtJ hardware duhet t sertoj bitet . dh (, si kemi
thn m par. 5jithashtu, nj inetrrupt $lo$k#u periodik duhet t bj t ek'ekutohet
software q 'eron bitin e referen$s n do sinjal $lo$k#u. N do page fault, page table
skanohet pr t krkuar nj faqe t prshtatshme pr t fshir. =uke qen se do entry
pro$esohet, biti . ek'eminohet. Nse sht &, koha "irtuale aktuale shkruhet n fushn e
kohs s pr,orimit t fun,it n page table, q tregon se faqja ishte n prdorim kur
ndodhi page fault. <kur faqja u adresua gjat sinjalit aktual t $lo$k#ut, sht e qart se
n working set nuk sht kandidate pr tu fshir (pranohet se n prfshin shum sinjale
$lo$k#u).
Nse . sht 8, do t thot se faqja nuk sht adresuar gjat sinjalit aktual t $lo$k#ut dhe
kshtu mund t jet kandidate pr tu fshir. !r t par nse ajo duhet t fshihet, mosha e
saj, q sht Ekoha "irtuale aktuale # koha e prdorimit t funditF, llogaritet dhe
krahasohet me n. Nse mosha sht m e madhe se n faqja nuk sht m n working set.
,jo hiqet dhe faqja e re ngarkohet ktu. (egjithat, skanimi "a'hdon t a'hornoj entries
q ngelen.
1idoqoft, nse . sht 8, por mosha sht m e "ogl ose e barabart me n, faqja sht
ende n working set. )jo faqe prkohsisht nuk fshihet, por faqja me moshn m t
madhe ("lern m t madhe t Nime of last use) do t shnohet. Nse gjith tabela
skanohet pa gjetur nj kandidate pr t fshir, kjo do t thot se t gjitha faqet jan n
working set. N ket rast, nse nj ose m shum faqe me .[8 do t ishin gjetur, ajo me
moshn m t madhe do t isht fshir. N rastin m t keq, t gjitha faqet jan adresuar
gjat sinjalit aktual t $lo$k#ut (kshtu q t gjitha kan .[&), kshtu 'gjidhet rastsisht
nj pr tu fshir, mundsisht nj faqe $lean, nse ek'iston nj e till.
4.4.9 ALGORITMI WSCLOCK
,lgoritmi ba' working set sht i ngarkuar, duke qen se e gjith page table duhet
skanuar n do page fault derisa lokali'ohet nj faqe e prshtatshme. Nj algoritm i
prmirsuar, q ba'ohet n algoritmin $lo$k, por prdor gjithashtu informa$ionin e
working set, sht quajtur 31*lo$k (*arr and 2enne sey, &GL&). !r shkak t
thjeshtsis s tij pr tu implementuar dhe performan$s s tij t mir, ky algoritm
prdoret gjersist n praktik. 1truktura e t dhna"e q ne"ojitet sht nj list rrethore
page frame#sh si n algoritmin $lo$k, si tregohet n /ig. M#HH(a). /illimisht lista sht
bosh. )ur ngarkohet faqja e par, ajo i shtohet lists. =uke u shtuar m shum faqe, ato
shkojn brenda lists pr t formuar nj una'. Bdo entry prmban fushn e kohs s
prdorimit t fundit, nga algoritmi ba' working set, dhe gjithashtu bitin . (t treguar n
figur) dhe bitin ( (nuk tregohet n figur).
Fig. 4-22. Veprimi i algoritmit WSClock. (a) dhe (b) japin nj shembull se `ndodh
kur R1. (c) dhe (d) japin shembull se `ndodh kur R0.
1i tek algoritmi $lo$k, n do page fault, faqja e pointuar nga treguesi, fillimisht
ek'aminohet. Nse biti . sht &, faqja sht prdorur gjat impulsit aktual t $lo$k#ut,
prandaj nuk sht kanidate pr tu fshir. ;iti . setohet n 8, treguesi a"an$on n faqen
pasardhse dhe algoritmi prsritet pr kt faqe. 5jendja pr kt sekuen$ ngjarjesh
tregohet n /ig. M#HH(b).
Nani mendoni Ondodh nse faqja tek e $ila pointohet e ka .[8, si tregohet n /ig. M#
HH($). Nse mosha e saj sht m e madhe se n dhe faqja sht $lean, ajo nuk sht n
working set dhe nj kopje e "lefshme e saj ndodhet n disk. !age frame thjesht hiqet dhe
faqja e re "endoset atje, si trgohet n /ig. M#HH(d). N ann tjetr, nse faqja sht dirty,
nuk mund t hiqet menjeher, meqnse asnj kopje e "lefshme ek'iston n disk. !r t
shmangur nj pro$ess swit$h, shkrimi n disk skedulohet, por treguesi a"an$on dhe
algoritmi "a'hdon me faqen tjetr. N fund t fundit, mund t ket nj faqe t "jetr,
$lean m posht q mund t prdoret menjeher.
N parim, t gjitha faqet mund t skedulohen pr disk 6/: n rreth & $ikl $lo$k#u. !r t
reduktuar trafikun n disk, mund t "endoset nj limit q lejon nj maksimum prej n
faqesh t rishkruhen. Nse ky limit arrihet nuk skedulohen m shkrime t reja.
BOndodh nse treguesi gjith kohn "jen rrotull piks s tij t filimitU )tu dallohen dy
raste J
&. N paktn nj shkrim sht skeduluar.
H. ,snj shkrim nuk sht skeduluar.
N rastin e par, treguesi "etm le"i', duke krkuar nj faqe $lean. =uke qen se nj ose
m shum shkrime jan skeduluar, n fund nj shkrim do t plotsohet dhe faqja e tij do
t shnohet si $lean. /aqja e par $lean q do t gjendet, do t fshihet. )jo faqe nuk sht
domosdoshmrisht e para write skeduled sepse disk dri"er#i mund tOi regjistroje shkrimet
n mnyr q t optimi'oj performan$n e sistemit.
N rastin e dyt, t gjiha faqet jan n working set, ndryshe t paktn njra do t ishte
skeduluar. N munges t informa$ionit shtes, gjja m e thjesht pr t br sht t
prdoret nj faqe $lean. ,dresa e nj faqeje $lean mund t mbahet si gjurm gjat
fshirjes. Nse sOka faqe $lean, ather faqja aktuale 'gjidhet dhe rishkruhet n disk.
4.4.10 PRMBLEDH1E E ALGORITMAVE T ZVENDSIMIT T FAQEVE
)emi par disa algoritma '"endsimi t faqe"e. N kt seksion do tOi permbledhim ato
shkurtimisht. -ista e algoritma"e t diskutuar jepet n /ig. M#H9.
,lgorimi optimal '"endson faqet e adresuara n fund m ato aktuale. /atkeqsisht, nuk
ka mnyr pr$aktimi se $ila faqe do t jet e fundit, kshtu q n praktik ky algoritm
nuk mund t prdoret. 5jithsesi, shrben si pik referimi me t $ilin mund t karahasohen
algoritmat e tjer.
,lgoritmi N.+ i ndan faqet n M klasa, n "arsi t bite"e . dhe (. @gjidhet rastsisht
nj faqe nga ato me numrin me te ulet. )y algoritm sht i thjesht pr tu implementuar,
por sht shum i pa prpunuar. k'istojn edhe m t mir.
/6/: ruan gjurmt e radhs n t $iln faqet u ngarkuan n memorje duke i mbajtur ato
n nj list t lidhur. =uke fshir faqen m t "jetr m pas bhet i rndomt, por ajo faqe
mund t jet ende n prdorim, kshtu q /6/: sht nj 'gjedhje e keqe.
1e$ond $han$e sht nj modifikim i /6/: q kontrollon nse nj faqe sht n prdorim
para se ta fshij at. Nse po, ather faqja nuk fshihet. )y modifikim e prmirson
shum performan$n. *lo$k sht thjesht nj implementim i ndryshm i se$ond $han$e.
)a t njjtat karakteristika t performan$s, por krkon m pak koh pr ek'ekutimin e
algoritmit.
Fig. 4-23. Algoritmat e diskutuar n tekst.
-.+ sht nj algoritm i shklqyer, por nuk mund t implementohet pa hardware t
"eant. Nse ky hardware nuk sht i disponueshm, -.+ nuk mund t prdoret. N/+
sht nj prpjekje e parndsishme pr t arritur -.+. Nuk sht shum i mir.
5jithsesi, aging sht nj prafrim m i mire i -.+ dhe mund t implementohet n
mnyr efiente. ?sht nj 'gjedhje e mir.
=y algoritmat e fundit prdorin working set. ,lgoritmi working set ka performan$ t
arsyeshme, por n njfar mnyr sht i shtrenjt pr tu implementuar. 31*lo$k sht
nj "ariant q jo "etm jep performan$ t mir, por sht efient pr tu implementtuar.
1i prfundim, dy algoritmat m t mir jan aging dhe 31*lo$k. ,to ba'ohen
prkatsisht n -.+ dhe working set. N dyja japin performan$ t mir dhe mund t
implementohen ne mnyr efiente. )a dhe disa algoritma t tjer, por ndoshta kta t dy
jan m t rndsishm n praktik.
4.5 MODELI I ALGORITMIT ME ZVNDESIM FAQESH
Ne "ite shte br pune ne modelin e algoritmit me '"endsim faqesh nga nje
perspekti"e teorike. Ne kete pjes ne do te diskutojme disa nga keto ide, "etem per te
pare se si punon pro$esi i modelimit.
4.5.1 ANOMALIA E BELADY
<logjikisht- ,uket 4e sa me shume )age frame ka memorja- me pak )age faults ,o te
marre programi. Mu,iterisht mjashtueshem- nuk eshte Bbuluar gjithmone nje
shembull numerimi- ne te cilen F1F0 shkaktoi me shume page faults me kater fa4e
frame se
me tre. )jo situate e uditshme shte bre e njohur si ,N:(,-6, ;-,=]. )jo sht
ilustuar ne figuren M#HM pr nj program me pes faqe "irtuale, numeruar nga 8 ne M.
/aqet jane referuar ne rregullinJ
(( H 9 8 6 M 8 6 H .& M
Ne figuren M#HM.(a) ne shohim se si me tre page frame, nje total me nente page faults
kane ndodhur. Ne fig. M#HM ne marrim dhjete page faults me kater page frame.
Figura 4-24 Anomalia Belady, (a) FIFO me tre page frames, (b) FIFO me kater
page frame
4.5.2 ALGORITMET STACK
1hume krkime n shken$en e kompjuterit ishin 'buluar nga anomalia ;elady dhe filluan
ta in"estigonin ate. )jo pune oi ne 'h"illimin e nje teorie t tre te algoritma"e te faqe"e
dhe karakteristika"e te tyre. Ndersa pjesa me e madhe e kesaj pune ishte jashte ketij libri,
ne do te japim nje pre'antim te shkurter me poshte. !r me shume detaje shiko ((aekawa
et a- &GLC).
!rotesimi i kesaj pune, fillon me "rojtimin qe do pro$es gjeneron nje sekuen$e te
referen$a"e te memorjes, nderkohe qe ek'ekutohet. Bdo referen$e te memorjes i
korespondon nje faqe spe$ifike "irtuale. )eshtu qe, nje pro$es i aksesimit ne memorje
mund te karakteri'ohet nga nje list e (renditur) e numra"e te faqe"e. )jo list eshte quajtur
stringa referen$e, dhe luan nje rol qndror ne teori. !er thjeshtesi, n "a'hdim ne do te
marrim ne konsiderate "etem rastin e nj makine me nje pro$es, keshtu qe do makine ka
nje pro$es, deterministik referen$e string (me shume pro$ese ne do te duhej te merrnim
ne llogari shtrese'imin e stringa"e te tyre te referen$es qe ojne ne multiprogramim).
Nje sistem numerimi karakterizohet nga tre gjera:
1. Stringa reference e procesit te ekzekutimit.
2. Algoritmi i zevendesimit te faqeve.
3. Numri i faqeve frame te mundshme ne memorje, m.
-logjikisht ne mund te imagjinojme nje interpretues abstrakt qe funksionon si me poshte.
)jo miremban nje grup te brendshem. ,, qe mban gjurmet e gjendjes se memorjes. ,i ka
aq shume elemente sa ka pro$esi faqe "irtuale, te $ilat ne i shenojme me n. 5rupi ( eshte
ndare ne dy pjese. !jesa e siperme me m hyrje, permban te gjitha faqet qe jane
momentalisht ne memorje. !jesa e poshtme, me n#m faqe, permban te gjitha faqet qe
kan qne referuar njehere por kane qene page :+N dhe nuk jane momentalisht ne
memorje. ( eshte set bosh per aq kohe sa asnje faqe nuk ka qn referuar dhe nuk ka as
nje faqe ne memorje.
Ndrkoh qe ek'ekutimi fillon te lere jashte faqet ne stringen referen$e, nje ne $do kohe.
Nderkohe qe se$ila shfaqet, interpretuesi kontrollon ne se faqja eshte ne memorje (i.e., ne
pjesen e siperme te (). Ne qofte se nuk eshte, ndodh nje !age /aults. Ne qofte se
ndodhet nje "rime boshe ne memorje(i.e., pjesa e siperme e ( permban me pak se m
hyrje), faqja eshte ngarkuar dhe ka hyre ne pjesen e siperme te (. )jo situate arrihet
"etem ne fillim te ek'ekutimit. Ne qofte se memoria eshte plote (i.e., pjesa e siperme e (
permban m hyrje) algoritmi i faqes me 'e"endesim thirret per te 'h"endosur nje faqe nga
memorja. N model ajo qe ndodh sht q nje faqe shte 'h"endosur nga pjesa e siperme
e ( ne pjesen e poshtme, dhe faqja e ne"ojshme qe ka hyre ne pjesen e siperme. !er me
teper, pjesa e siperme dhe tabani i poshtem mund te korrigjohen te ndara. !er ti bere me
te qarta "eprimet e interpretuesit le te shikojme nje shembull konkret duke perdorur -.+
faqe 'e"endesimi. 2apesira e adreses "irtuale ka tete faqe, dhe memoria fi'ike ka kater
!age frame. Ne fillim te figures M#H7 ne kemi nje string referen$e qe perbehet nga HM
faqeJ
8 H & 9 7 M D 9 C M C 9 9 7 7 9 & & & C H 9 M &
!oshte stringes se referen$es, ne kemi H7 kolona me tete 6N( se$ila. )olona e pare, e
$ila eshte bosh tregon gjendjen e ( perpara se te filloje ek'ekutimi. 1e$ila kolone
pasuese tregon ( pasi nje faqe shtlene jashte nga referen$a, dhe shte perpunuar nga
algoritmi i faqosjes. )ufiri i rende tregon majen e ,], qe perben kater "rimat e para, te
$ilat iu korrespondojne page frame ne memorje. /aqet brenda kutise se rende jane ne
memorje, dhe faqet poshte saj jane faqosur jashte diskut.
Modeli i algoritmit te zevendesimit te faqeve
Fig.4-25.Propozimi i memorjes tabele. M
/aqja e pare ne stringen referen$e eshte 8. keshtu qe ajo eshte futur ne fillim te memorjes,
si$ tregohet ne kolonen e dyte. /aqja e dyte eshte H, .: kjo ka hyre ne fillim te kolones
se trete. )y "eprim ben qe 8 te le"i' poshte, hapesire bosh per shembull. 1e fundmi faqja
e ngarkuar gjithmone hyn ne fillim, dhe $do gje akoma 'h"endoset poshte si ne"oje.
1e$ila prej shtate faqe"e te para ne stringen referen$e shkakton nje page faults. )ater prej
tyre mund te trajtohen pa 'h"endosur nje faqe. 2+N fillon me nje referen$e ne faqen 7,
faqja e re e ngarkuar kerkon 'h"endosjen ne faqen e "jeter.
.eferen$a e dyte ne faqen 9 nuk

shkakton nje page fault, sepse eshte pothuajse ne
memorje. 1idoqofte interpretuesi e le"i' ate nga ku ajo eshte, dhe e "endos ate ne fillim
si$ tregohet. !ro$esi "a'hdon per nje kohe derisa faqja 7 eshte referuar. /aqja eshte
'h"endosur nga pjesa e fundit e ( ne pjesen e siperme (i.e.,ii eshte ngarkuar ne memorje
nga disku). 1idoqofte nje faqe eshte referuar, keshtu qe nuk eshte brenda nje kutie te
rende, ndodh nje page fault, si$ shfaqet nga /XOs poshte matri$es.
-e te permbledhim tani me pak fjale shkurtimisht disa nga karakteristikat e modelit
gabim. 2 m , ndersa nje faqe eshte referuar, ajo eshte 'h"endosur ghithmone ne hyrje te
(. 1e dyti, ne qofte se faqja e adresuar eshte tashme ne ,f, gjitha faqet siper saj
'h"endosen nje po'i$ion poshte.
)y kalim nga brendesia e kutise jashte saj i korrespondon nje faqeje ek'istuese te debuar
nga memorja. 1e treti, faqet qe ishin poshte faqes se adresuar nuk jane 'h"endosur. Ne
kete menyre, permbajtja e ( saktesisht paraqet permbajtjen e algoritmit -.+.
Ndone se ky shembull perdor -.+, modeli funksionon njelloj me algoritmat e tjere.
!osa$erisht , ndodhet nje klase algoritmash e $ila eshte kryesisht e "e$anteI algoritmat qe
kane karakteristikat
((m , r) Y[ ((mT V. r)
)u m ndryshon gjate page frames, dhe r eshte nje indeks ne stingen referen$e.
Bfare kjo thote eshte qe seti i faqe"e te perfshira ne pjesen e fillimit te ( per nje memorje
me m page frame pasi r referen$at e memorjes, jane perfshire gjithashtu ne (N:. nje
memorje me mT& page frames. thene ndryshe, ne qofte se ne rrisim madhesine e
memorjes me nje page frame, dhe riek'ekuton pro$esin, i pare nga $do pike "eshtrim
gjate ek'ekutimit, gjitha faqet qe ishin pre'ente ne ek'ekutimin e pare, jane gjithashtu
pre'ente ne ek'ekutimin e dyte, pergjate me nje faqe shtese.
Nga ek'aminimi i fig M#H7 dhe nje ide e "ogel se si funksionon, eshte e qarte qe -.+ ka
kete karakteristike. =isa algoritma te tjere, gjithashtu e kane ate, por /6/: nuk e ka.
,lgoritmet qe kane kete karakteristike quhen 1ta$k ,lgorithms. )eto algoritme nuk
preken nga anomalia ;eladys dhe jane ne kete menyre me te preferuara nga teoria e
memorjes "irtuale.
4.5.3 Stringa distance
!er 1ta$kun e algoritmit, kjo eshte shpesh e pershtatshme per te paraqitur stringen
referen$e ne nje menyre me abstrakte sesa numrat aktual te faqe"e. Nje faqe referen$e do
te paraqitet qe tani e tutje me ane te nje distan$e nga maja e stakut ku faqja e adresuar
ishte "endosur. !er shembull, referen$a ne faqen & ne kolonen e fundit te /igures M#H7,
eshte nje referen$e drejt nje faqeje ne distan$e 9 nga maja e stakut. (sepse faqja & ishte ne
"endin e trete perpara referen$es). /aqet qe akoma nuk jane adresuar, dhe si rrjedhim
akoma nuk jane ne sta$k (i.e., akoma jo ne () jane konsideruar te rrine ne distan$e YY.
1tringa distan$e per figuren M#H7 eshte $aktuar ne fund te figures.
1henimi qe stringa distan$e "aret jo "etem nga stringa referen$e por edhe nga algoritmi i
faqosjes. (e te njejten stringe referen$e origjinale, nje tjeter algoritem faqosje, duhet te
beje 'gjedhje te ndryshme rreth asaj se $ilat faqe te n%jerr jashte. 1i re'ultat, rrjedh nje
sekuen$e e ndryshme e stakut.
)arakteristikat statistikore te stringes distan$e kane nje ndikim te madh ne performan$en
e algoritmit. Ne /ig M#HD(a) ne shohim funksionin e densitetit propabilitar per hyrjen ne
nje stringe distan$e, d. !jesa me e madhe e hyrje"e ne string jane ndermjet 6 dhe k.
(e nje memorje prej k page frame, ndodhin me pak page faults.
Ne kundershtim, ne figuren M#HD(b) referen$at jane n%jerre jashte, keshtu qe e "etmja
rruge per te menjanuar nje numer te madh te page faults eshte ti japesh programit aq
page frame (aq) sa ka faqe "irtuale. Ne pasurit e nje programi si ky eshte tamam nje fat i
keq
4.5.4 PARASHIKIMI I MASES SE PAGE FAULT
Nje nga karakteristikat me te mira te distan$esI stringa eshte qe ajo qe mund te perdoret
per te parashikuar numrat e page faults qe do te ndodhin nga memorje te permasa te
ndryshme.
Ne do te demostrojme se si kjo llogaritje mund te ba'ohet ne shembullin e figures M#H7.
<ellimi eshte te besh nje kalim mbi stringen distan$e dhe, nga informa$ioni i mbledhur te
aftesohesh per te parashikuar sa shume page fault, duhet te kete pro$esi ne memorjet me
&, H, 9,_., n. page frame, ku n eshte numri i faqe"e "irtuale ne pro$esin e hapesires se
adreses.
,lgoritmi fillon me skanimin e stringes distan$e, faqe per faqe. ,jo ruan gjurmet e
numrit 8V, kohet & ndodhin, numri i kohe"e H ndodhin, dhe keshtu me rradhe. -e te jete *
numri i ndodhi"e te j. !er stringen distan$e te fig. M#H7 "ektori * eshte ilustruar ne fig.M#
HC(a). Ne kete shembull, kjo ndodh kater here, keshtu qe faqja e referuar eshte pothuajse
ne maje te stakut. Nre heret referen$a eshte tek fillimi i faqes tjeter, dhe me tutje. -e te
jete *% numri i here"e qe ndodhin ne stringen distan$e.
Fig.4-27 Njesimi i mases se page faults nga stringa distance, (a) vektori C, (b)
Vektori F
Nani llogarit "ektorin / sipas formules..
/
m [
+ =
n
m k
'
&
k
T *
o
>lera e /
m
sht numri i page faults qe do t ndodhin ne distan$en e stringes se dhene dhe
m page frame. !r distan$en e stringes t /ig. M#H7, /ig. M#HC(b) jep "ektorin /. !r
shembull, / sht H8, domethene qe ne memorje ajo 'e "etm & page frame, jasht HM
referen$a"e ne stringe, gjithe page fault pr"e$ katr qe jane t njjt si faqja referen$e e
meparshme.
!r t pare pse kjo formule funksionon, kthehu tek kutia e rende ne fig. M#H7. -e t jet m
numri i page frame ne krye t (. Nj page faults ndodh sa here nj prishje e stringes
distan$e sht mT& ose me shume. 1huma ne formulen e mesiprme prllogarit numrin e
here"e qe ndodhin $rregullime. )y model mund t prdoret pr t bere parashikime t
tjera. ((aekawa et ah,&GLC).
4.6 Projektimi i faqeve t sistemeve.
Ne paragrafet e meparshem u tregua se si funksionojne faqet, u treguan disa nga
algoritmet ba'e t 'e"endesimit t faqes dhe treguam dhe si ti modelojme faqet.
!r t projektuar nj sistem, ju duhet t dini akoma me shume ne menyre qe ai t
funksionoje sa me mire. )jo sht e ngjashme me nj loje shahu, ku ju duhet t dini mire
le"i'jet e torres, kaloresit, ofi$erit dhe gure"e t tjere ne menyre qe t jeni nj lojtar i
mire.
Ne paragrafet qe "ijne, ne do t shohim disa hapa t tjere qe duhen pasur parasysh me
shume kujdes nga projektuesit e sisteme"e operati"e ne menyre qe t kemi nj
performan$e sa me t mire t sistemit.
4.6.1 Krahasimi politikave t alokimit local kundrejt atij global.
Ne paragrafet paraprijes ne diskutuam disa algoritma qe bnin t mundur kapjen dhe
'e"enedsimin e nj faqeje kur shkaktohej nj gabim. Nj $eshtje e rendesishme qe lidhet
me ket problem (t $ilen ne e kemi shmangur deri tani) sht se si mund t alokohet
memoria gjat ek'ekutimit t proese"e.
1hikoni figuren M#HL(a). Ne ket figure tre proeset ,, ;, * jane proese t
ek'ekutueshme. 1upo'ojme se proesi , ka nj gabim faqeje (page fault). , do t
mundet algoritmi i 'e"endesimit t faqes t gjeje faqen qe sht prdorur e fundit duke
marre ne konsiderate "etm D faqet qe jane alokuar pr momentin tek ,, ose duke i
konsideruar t gjitha faqet ne memorieU Ne figuren M#HL(a) , n qoft se se shohim "etm
faqet , faqja me moshen (age) me t "ogel sht ajo me "lere ,7, keshtu kemi situatn si
ne figuren M#HL(b).
Nga ana tjetr n qoft se faqja me moshen me t ulet sht hequr (remo"ed) pa marre
parasysh "leren e saj, athere do t merret faqja ;9 dhe do t kemi situatn si ne figuren
M#HL($). ,lgoritmi ne figuren M#HL(b) quhet edhe algoritmi lokal i 'e"endesimit t faqe"e,
kurse algoritmi i figures M#HL($) quhet algoritmi global i 'e"endesimit t faqes.
,lgoritmat lokal jane efekti"e kur alokojne do proes ne nj 'one t $aktuar t
memories, kurse algoritmat globale alokojne page frames ne menyre dinamike gjat
ek'ekutimit t proese"e. )eshtu numri i faqe"e qe i prket do proesi "arion ne kohe.
Figura4-28. Zevendesimi local kundrejt atij global. (a) Konfigurimi fillestar. (b)
zevendesimi local i faqes. (c) zevendesimi global i faqes.
@akonisht, algoritmat globale punojne me mire, ne "e$anti kur hapesira e punes (working
set) ndryshon gjat gjithe kohes se proesit. N qoft se prdorim nj algoritem lokal dhe
hapesira e punes rritet, EgoditjaF (thrashing) do t shfaqet n qoft se kemi faqe t lira. N
qoft se hapesira e punes '"ogelohet, algoritmat lokal humbasin memorie. N qoft se
prdorim nj algoritem global, sistemi duhet t "endose ne menyre t "a'hdueshme se sa
faqe duhet ti $aktoje do proesi. Nj menyre sht t monitorojme hapesiren e punes
neprmjet bite"e EagingF, por kjo menyre nuk e parandalon plotsisht EgoditjenF
(thrashing).
Nj menyre tjetr sht t kemi nj algoritem pr alokimin e faqe"e t proese"e. 1ipas
ketij algoritmi pr$aktohet periodikisht numri i proese"e qe po ek'ekutohen dhe
alokohet do proes ne menyre t barabart. )eshtu n qoft se kemi &H.M&D faqe dhe &8
proese, do proes merr &HM& faqe kurse D faqet e fundit prdoren kur shkaktohen page
fault (gabime ne faqe).
(egjithese kjo metode nga njra ane duket e mire (ndarja e faqe"e ne menyre t
barabart pr do proes), nga ana tjetr nuk bn dot nj dallim midis hapesires qe 'ene
proeset, pr shembull ndermjet nj proesi &8#); dhe 988#); (i konsideron proeset si
t barabart ne hapsire memorieje). !roesi 988#); sht 98 here me i madh se ai &8#
);. Ne ket menyre sht me mire qe ti jepet do proesi nj numer minimal faqesh qe ai
t ek'ekutohet, pa u shqetsuar se sa i "ogel mund t jet proesi. Ne disa makina, nj
instruksioni t "etm me dy operande (burim dhe destina$ion) mund ti duhet rreth D faqe
sepse "et instruksioni, operandi burim dhe operandi destina$ion mund t ndryshojne
kufijt e faqes. (e nj alokim prej "etm 7 faqesh instruksionet qe ndodhen ne nj
program nuk do t ek'ekutohen dot.
Ne qoft se prdorim nj algoritem global, sht e mundur t fillojme do proes me nj
numer t $aktuar faqesh i $ili sht propor$ional me madhesine e proesit, por alokimi
duhet t beje update ne menyre dinamike sapo proesi ek'ekutohet. Nj menyre pr t
mena%huar alokimin sht prdorimi i algoritmit PFF (!age /ault /requen$y). )y
algoritem tregon se kur duhet t 'madhojme apo t '"ogelojme alokimin e faqes se
proesit por nuk na tregon se $ilen faqe duhet t 'e"endesojme kur shkaktohet nj gabim.
)y algoritem kontrollon "etm madhesine e alokimit.
!r nj klase t madhe algoritmash t 'e"endesimit t faqes, duke prfshire edhe -.+,
sht pare qe sa me i madh t jet numri i faqe"e qe alokohet aq me shume ulet mundesia
e ndodhjes se gabimit. )jo tregohet me ane t grafikut t figures M#HG.
Figura 4-29. Gabimi i faqes ne funksion t numrit t faqeve
!r t matur "leren e gabimit t faqes duhet t numerojme numrin e gabime"e qe ndodhin
pr sekonde. >ija ,, me nderprerje, qe paraqitet ne grafik, paraqet nj "lere t lart t
gabimit t faqes, prandaj algoritmi rrit numrin e faqe"e pr t ulur "leren e gabimit. >ija
;, paraqet nj "lere t ulet t gabimit, por ne ket rast arrijme ne prfundimin qe proesi
ka marre nj hapesire me t madhe memorieje. !randaj numri i faqe"e duhet 'gjidhur i
tille qe "lera e gabimit dhe memoria qe okupon proesi t jet sa me e "ogel (kurba midis
"ijes , dhe ;), gje e $ila kontollohet neprmjet !// qe mundohet t ruaje nj normalitet
t $aktuar.
?sht e rendesishme t theksojme se algoritmat e 'e"endesimit t faqes mund t prdorin
njren nga dy politikatJ politiken e 'e"endesimit lokal ose politiken e 'e"endesimt global.
!r shembull, /6/: mund t 'e"endesoje faqen e "jetr nga kujtesa (algoritm global) ose
mund ta 'e"endesoje at nga proesi qe e ka ne 'otrim (algoritem lo$al). )eshtu
'gjedhja e politikes lo$al apo global "aret nga algoritmi dhe menyra se si funksionon ai.
4.6.2 Kontrolli i ngarkeses
(egjithese mund t kemi algoritmin me t mire pr 'e"endesimin e faqes dhe nj alokim
global t prshtatshem pr faqet e proese"e, mund t ndodhe qe sistemi t EgoditetF
(thrashes). Ne fakt, sa here qe hapesira e punes e t gjithe proese"e kalon kapa$itetin e
memories, EgoditjaF sht e pa e"itueshme. Nj simptome e kesaj situate shfaq edhe
algoritmi !// i $ili tregon se disa proese kane ne"oje pr me shume memorie dhe
asnjri prej proese"e t tjere nuk kerkon me pak memorie. Ne ket situat nuk ka rruge
tjetr pr"e$se ti jepet memorie proese"e qe kerkojne me shume duke demtuar disa t
tjera. Nj 'gjidhje e ketij problem sht shpetimi i prkohshem i proese"e.
!r t reduktuar numrin e proese"e qe konkurojne me njri tjetrin pr memorie behet nj
swap (shkembim), duke i derguar disa nga proeset ne disk ne menyre qe t lirohen faqet
qe ata kishin 'ene. )eshtu pr shembull n qoft se nj proess dergohet ne disk, athere
faqet qe ai kishte 'ene ne memorie do t ndahen midis proese"e t tjera, qe kane ne"oje
pr me shume memorie. N qoft se kerkesa pr memorie plotsohet pr t gjitha
proeset athere sistemi do t "a'hdoje t punoje pr aq kohe, derisa do t linde nj
proes i ri i $ili kerkon serish memorie. N qoft se pas proesit t pare qe beme swap,
kerkesa pr memorie nuk plotsohet akoma, athere nj proes i dyt do t kaloje ne disk
duke bere prape swap. )jo do t "a'hdoje derisa t prfundojne EgoditjetF (domethene
derisa t plotsohen kerkesat e proese"e pr memorie). !ra neprmjet pro$edures swap,
t shkembimit t proese"e midis memories dhe diskut, behet i mundur kontrolli i
ngarkese ne memorie. !ro$edura swap behet sipas nj plani (s$hedule) t $aktuar. 1apo
disa nga proeset mbarojne se ek'ekutuari ne memorie, pro$edura i rikthen proeset nga
disku ne memorie.
Nj tjetr faktor qe duhet marre ne konsiderate sht edhe shkalla e multiprogramimit.
1i$ e pame edhe ne figuren M#M, kur numri i proese"e ne memorien kryesore sht i
"ogel, *!+#ja mund t qendroje ne gjendje pritjeje pr nj period t konsiderueshme
kohe. )y faktor tregon qe pr"e$ madhesise se proesit dhe "leres se faqe"e, kur
"endosim t bejme nj proes swap, duhen marre ne konsiderate edhe karakteristikat e
proesit siJ n qoft se proesi sht i lidhur me *!+ apo me pajisjet 6/:, si dhe
karakteristikat e proese"e t tjere.
4.6.2 Madhesia e faqes
(adhesia e faqes sht nj parametr i $ili 'gjidhet nga sistemi operati". N qoft se
hardware sht projektuar pr shembull me faqe 7&H#byte, sistemi operati" mund ti
rendise faqet 8 dhe &, H dhe 9, M dhe 7 dhe keshtu me rradhe, si faqe &#); duke alokuar
gjithmone dy faqe t njpasnjshme 7&H#byte se$ila.
=uke pr$aktuar sa me mire madhesine e faqes, ne balan$ojme shume faktore konkurues.
1i re'ultat, nuk ka nj kufi t fa"orshem. 1i fillim, ka dy faktore qe argumentojne nj
faqe t "ogel. Nj tekst, e dhene ose nj sta$k i 'gjedhur ne menyre random (t
rastesishme) nuk mbushin nj numer t plot faqesh. (esatarisht, gjysma e faqes nga
fundi do t jet bosh. 2apesira e "e$ant ne ket faqe sht e humbur (waste). )jo
hapesire e humbur quhet fragmentim i jashtm (internal fragmentation). N qoft se kemi
n segment ne memorie dhe nj madhesi faqeje prej p byte, nbp/H byte do t jene waste
(do t humbin) ne fragmentimin e jashtm. )y arsyetim prdoret pr nj faqe me madhesi
t "ogel.
Nj argument tjetr pr nj faqe me madhesi t "ogel behet i dukshem n qoft se marrim
ne konsiderate nj program me L sekuen$a me M ); se$ili. (e nj madhesi faqeje 9H );,
programi do t alokoje 9H ); gjat gjithe kohes. (e nj madhesi faqeje &D); do t
alokoje &D );. (e nj madhesi faqeje M ); ose me t "ogel kerkon "etm M ); ne do
moment. Ne prgjithesi, nj faqe me hapesire t madhe mund t mbaje me shume
programe t paprdorshme ne memorie sesa nj faqe me hapesire t "ogel.
Nga ana tjetr, duke qene se faqet jane t "ogla, bejne qe programet t kerkojne me
shume faqe, duke krijuar nj page table (tabele faqesh). Nj programi 9H ); i duhen
katr faqe L );, pothuaj DM faqe 7&H byte. Nransferimi midis memories dhe diskut behet
me nga nj faqe ne do transfert. )eshtu transferimi i nj faqeje t "ogel apo t madhe
kerkon t njjtn kohe. =uhet DMb&8 mse$ pr t ngarkuar DM faqe 7&H byte qe sht
pothuaj ekui"alent me Mb&H mse$ qe duhen pr t ngarkuar M faqe L );.
Ne disa makina, tabela e faqe"e ngarkohet ne regjistrat e hardware#it do here qe *!+#ja
kalon nga nj proes ne tjetrin. )eto makina duke patur faqe me madhesi t "ogel bejne
qe koha qe duhet pr ngarkimin e regjistra"e t faqe"e t rritet kur madhesia e faqe"e
"jen e '"ogelohet. >e$ kesaj, hapesira qe okupohet nga tabela e faqes "jen e rritet kur
madhesia e faqes '"ogelohet.
-e ta anali'ojme $eshtjen me sipr nga ana matematikore. 1henojme madhesine e
proesit me s byte dhe madhesine e faqes me p byte. >e$ kesaj, supo'ojme se do faqe ne
hyrje kerkon e byte. Numri i faqe"e qe duhen pr nj proess sht s/p byte dhe
okupohen sbe/p byte nga tabela e faqes. (emoria wasted sht p/H byte. )eshtu shuma e
tabeles se faqe"e me fragmentimin e jashtm (waste) shenohet o"erhead dhe jepet nga
shprehjaJ
o"erhead [ sbe/p T p/H
Nermi i pare se/p (madhesia e tabeles se faqe"e) ka "lere t madhe kur madhesia e faqes
sht e "ogel. Nermi i dyt, p/H (fragmentimi i jashtm # waste) ka "lere t madhe kur
madhesia e faqes sht e madhe. =uke deri"uar shprehjen e mesiprme sipas p dhe duke
e bara'uar me 'ero marrim ekua$ioninJ
#se/p
H
T&/H [ 8
!rej ketij ekua$ioni ne mund t n%jerrim formulen e prshtatshme pr t pr$aktuar
madhesine e faqes (duke konsideruar "etm memorien waste dhe page table). )eshtu
kemiJ
se p H =
!r s [ &(; dhe e [ L byte madhesia e faqes do t jet M );.
4.6.3 Vecimi i hapesirave t instruksioneve dhe t dhenave.
!jesa me e madhe e kompjutera"e kane nj single address spa$e (hapesira e adreses) e
$ila mban programe (instruksione # 6) dhe t dhenat K =, si$ tregohet ne figuren M#98(a).
N qoft se hapesira e adreses sht e mjaftueshme, do gje do t punoje mire. Ne t
kundert n qoft se ajo sht shume e "ogel, do ti detyroje programuesit ti qendrojne mbi
koke pr t "endosur do gje ne hapesiren e adresa"e.

Nj 'gjidhje sht qe t ndajme hapesiren e adresa"e nga hapesira e instruksione"e. )eto
i shenojme me 6#spa$e pr instruksionet dhe me =#spa$e pr t dhenat. 2apesira e
adresas"e fillon nga 'ero 8 deri ne ma% i $ili mund t jet H
&D
K & ose H
9H
K &, si$ tregohet
edhe ne figuren M#98(b). Ne nj kompjuter me ket projektim, t dyja hapesirat e adresa"e
mund t faqosen (paged), pa"aresisht nga njra tjetra. 1e$ila faqe ka tabelen e "et, me t
dhenat e saj nga faqet "irtual deri tek faqet fi'ike qe jane page frames. )ur hardware do
t trheq (fet$h) nj instruksion, ai e di qe duhet t prdor 6#spa$e dhe tabelen e 6#spa$e.
Ne menyre t ngjashme, n qoft se do t transferoje t dhena ai do ti drejtohet tabeles =#
spa$e. Ne ket menyre, duke prdorur dy adresa me hapesira t ndryshme, nj pr
instruksionet 6#spa$e dhe nj pr t dhenat =#spa$e, ulet kompleksisteti i adresimit dhe
shfryt'ohet me mire memoria e kompjuterit.
4.6.4 Ndarja e faqeve
Nj tjetr problem ne projektimin e faqe"e sht dhe ndarja (share). Ne nj sistem t
madhe multiprogramimi shpesh here ndodh qe disa prdorues t prdorin t njjtin
program, ne t njjtin $ast t kohes. )eshtu sht me efi$ient t ndajme faqet dhe t
shmangim dy kopje t nj faqeje ne memorie ne t njjtin $ast t kohes. !or nj problem
tjetr sht se jo t gjitha faqet mund te ndahen. Ne "e$anti, faqet qe jane "etm t
le%ueshme (read only), si tekstet e programe"e mund t ndahen, kurse faqet e t dhena"e
(data) nuk ndahen.
N qoft se ndarja e hapesira"e 6#spa$e dhe =#spa$e sht e mundur, athere sht e leht
t ndajme programet qe kane dy ose me shume proese dhe prdorin t njjtn faqe ne 6#
spa$e, dhe ato qe kane faqe t ndryshme ne =#spa$e. @akonisht, ne nj implementim qe
mundeson ndarjen ne ket menyre, tabelat e faqe"e jane struktura t dhenash t pa"arura
nga tabela e proese"e. Bdo proes ka dy pointera ne tabelen e proese"eJ njri ndodhet
ne tabelen 6#spa$e dhe tjetri ne tabelen =#spa$e, si$ tregohet ne figuren M#9&.
Figura 4-31. Dy proese t cilat ndajne t njjtin program, ndajne edhe tabelen e
faqeve.
)ur skedulimi 'gjedh nj proes pr tu ek'ekutuar, prdor pointerat pr t lokali'uar
tabelat e faqes dhe therret ((+ pr ti prdorur ato. N qoft se nuk do t kishim nj
ndarje t hapesira"e 6 dhe =, proeset mund t ndanin programet (librarit), por
mekani'mi do t ishte shume i komplikuar.
)ur dy ose me shume proese ndajne disa kode, athere shfaqet nj problem me ndarjen e
faqe"e. 1upo'ojme se proeset , dhe ; jane duke prdorur t dy editorin dhe duke ndare
faqet e tyre. N qoft se skeduleri kerkon t fshij proesin , nga memoria, athere ai
debon t gjitha faqet dhe mbush t gjitha page framet bosh me programe t tjera, duke
bere qe proesi ; t gjeneroje nj numer t madh gabimesh ne faqe (page faults), pr ti
risjelle ato serisht ne memorie.
Ne menyre t ngjashme, kur proesi , prfundon, sht e rendesishme t dime ne se
faqet jane duke u prdorur akoma, ne menyre qe hapesira e tyre ne disk t mos boshatiset
nga ndonj gabim. )erkimi i t gjitha tabela"e t faqes pr t pare n qoft se ndonj faqe
mund te ndahet, sht tepr i kushtueshem, keshtu struktura spe$iale t t dhena"e
ne"ojiten pr t mbajtur drejtimin e faqe"e qe ndahen.
Ndarja e t dhena"e sht e ndryshme nga ndarja e kode"e, por kjo nuk sht shume e
rendesishme. Ne "e$anti, ne +N6R, pas nj thirrjeje sistem EforkF, babai dhe femija duhet
t ndajne t dyjaJ program tekst dhe data. Ne nj sistem, ajo $Oka duhet bere sht ti jepet
se$ilit prej proese"e tabela e tij e faqes dhe t kene t dy proeset t njtin grup faqesh.
)eshtu nuk ne"ojitet asnj kopje e faqe"e ne kohen EforkF. (egjithat, t dyja faqet e t
dhena"e jane mapped ne t gjitha proeset si .,= :N-] ("etm t le%ueshme).
!r sa kohe qe t dy proeset le%ojne t dhenat e tyre pa i modifikuar ato, kjo situat do t
"a'hdoje. 1apo ndonjri prej proese"e i bn update nj fjale memorije, athere
shkaktohet nj EtrapF (kurth) ne sistemin operati". Nderkohe sht bere nj kopje e faqes,
keshtu do proess ka kopjen e tij pri"ate. N gjitha kopjet jane bashkuar si .,=#
3.6N, keshtu qe shkrimet pasuese ne se$ilen prej kopje"e behet pa shkaktur nj EtrapF.
)jo strategji nenkupton qe ato faqe qe nuk jane shkruajtur asnjehere (duke prfshire t
gjitha faqet e programit) nuk kane ne"oje t kopjohen. >etm faqet e t dhena"e qe jane
shkruajtur aktualisht kane ne"oje t kopjohen. )jo menyre quhet copy on write, rrit
performan$en duke reduktuar kopjimin.
4.6.5 Cleaning Policy
/aqet punojne mire kur ato kane shume page frame t lira qe mund t deklarohen si
shkaktare t gabime"e ne faqe. N qoft se do page frame sht plot dhe "e$ kesaj
modifikohen, prapara se nj faqe e re t sillet, nj faqe e "jetr duhet t ruhet ne disk.
!r t siguruar hapesire t madhe me page frames t lira, shume faqe sistemi kane nj
fushe proesesh e $ila quhet paging daemon. !aging daemon fle (sht jo akti"e) pjesen
me t madhe t kohes dhe 'gjohet (behet a$ti"e) periodikisht pr t inspektuar gjendjen e
memories. N qoft se shume page frame jane t lira, paging daemon fillon selektimin e
faqe"e pr t e"ituar prdorimin e algoritmit t 'e"endesimit t faqes, n qoft se keto
faqe jane modifikuar kur jane ngarkuar athere ato patjetr qe jane ruajtur ne disk.
N qoft se ndonj nga faqet e n%jerra ne"ojitet serisht prpara se frame i faqes t jet
mbishkruajtur, ajo mund t korrigjohet duke e hequr at nga 'ona e page frame#"e t lira.
(bajtja e nj fushe re'er"e me page frames rrit performan$e dhe e"iton prdorimin e
gjithe memories dhe kerkimin e nj frame ne momentin qe duhet.
Nj nga menyrat pr t implementuar ket $leaning poli$y sht edhe ora me dy#shigjeta.
1higjeta e prparme kontrollohet nga paging daemon. )ur ajo pointon ne nj faqe t
mbushur, kjo faqe shkruhet ne disk dhe shigjeta e prparme "a'hdon prpara pr t
pointuar ne faqen e rradhes. )ur ajo pointon ne nj faqe t bardhe (boshe) ajo "a'hdon
serisht prpara dhe nuk kryen asnj "eprim me faqen. 1higjeta e prapme prdoret pr
'e"endesimin e faqes, tamam si ne algoritmin standart t ores.
4.6.6 Nderfaqja e Memories Virtuale
=eri tani ne kemi diskutuar se memoria "irtual sht transparente ndaj proese"e dhe
programues"e. gjitha $fare shohim sht nj hapesire e madhe adresash "irtual ne nj
kompjuter me memorie fi'ike t "ogel. )jo sht e "ertet pr shume sisteme, por ne disa
sisteme t a"an$uara, programuesit kane disa kontrolle mbi mbi hartn e memories dhe
mund ta prdorin at ne nj menyre jo tradi$ionale pr t rritur sjelljen e programe"e.
Nj nga shkaqet qe programuesit duhet t marrin kontrollin mbi hartn e memories sht
qe t lejojne dy ose me shume proese t ndajne t njjtn memorie. N qoft se
programuesit mund t emertojne 'onat e memories, sht e mundur qe nj proes ti jape
nj proesi tjetr emrin e nj 'one dhe qe ky proess t mund t "endoset ne t. (e dy
(ose me shume) proese qe ndajne t njjtat faqe prftohet nj gjeresi bre'i e lart, ku
njri proes shkruan ne memorien e ndare dhe tjetri le%on prej saj.
Ndarja e faqe"e prdoret gjithashtu edhe pr t implementuar nj sistem me mesa'he#
kaluese (message#passing) me performan$e t lart. Normalisht, kur mesa'het kane
ardhur, t dhenat jane kopjuar nga nj adrese ne nj tjetr, me nj kosto t
konsiderueshme. N qoft se proeset do kontollonin hartn e faqes se tyre, nj mesa'h
do t kalonte duke patur proesin e derguar t pa "ene ne hartn e faqes qe prmban
mesa'hin, dhe proesin e marrjes t "ene ne t. )etu "etm emrat e faqe"e do t
kopjohen, ne "end qe t kopjohet t gjithe t dhenat.
Nj teknike tjetr e a"an$uar e mena%himit t memories sht distributed shared
memory (/eely ne &GG7I -i, &GLDI -i dhe 2udak, &GLGI dhe @ekauskas ne &GGM). )etu
idea sht qe t lejohen shume proese ne nj network t ndajne mundesisht nj bashkesi
faqesh (ky nuk sht kusht i ne"ojshem), duke prdorur nj linj t "etme adresash. )ur
nj proes i referohet nj faqeje, e $ila nuk gjendet ne hart, athere shkakohet nj page
fault (gabim ne faqe). (bajtesi i page fault K it mund t gjendet ne kernel ose ne
hapesiren user, pasi lokali'ohet makina mbajtse e faqes i dergohet asaj nj mesa'h qe i
kerkon pr t hequr faqen dhe dergohet faqja ne network. )ur faqja arrin, ajo "endoset ne
hart dhe instruksioni i gabimit ristartohet. Ne do t shikojme me me hollesi distributed
shared memory ne kapitullin L.

4.7 QELLIMET E IMPLEMENTIMIT
6mplementuesit e sisteme"e t memorjes "irtuale duhet t 'gjedhin midis algoritme"e
teorike me kryesore si nj rast i dyt kunder kohes, shprndarjen e faqe"e lokale kunder
faqe"e globale. ,ta gjithashtu duhet t jene ne dijeni pr nj numer qellimesh
implementimi. Ne ket seksion do i hedhim nj shikim disa probleme"e dhe disa
'gjidhje"e.
4.7.1 SISTEMI OPERATIV I PRFSHIRE ME PAGING`
1istemi operati" kur sht ne pune e prdor katr here WpagingOJ krijimi i proesit,
ek'ekutimi, koha e gabimit dhe mbarimi i proesit. Nani do i ek'aminojme t gjitha.
)ur nj proes i ri krijohet ne sistemin WpagingO, 1istemi operati" duhet t dije sa i madh
do jet programi dhe t dhenat qe t krijoje nj tabele pr t. =uhet t "endoset nj
hapesire ne memorje pr faqen e tabeles dhe duhet t fillohet. )ur proesi ek'ekutohet,
tabela e faqes duhet t jet ne memorje. 2apesira duhet t "endoset ne nj siprfaqe t
ndryshme t diskut qe kur t ndryshohet faqja t ket ku t shkoje. 1iprfaqja e ndryshuar
duhet t fillohet me nj program tekst dhe t dhena qe kur proesi i ri t filloje t kape
Wpage faultingO, faqet t hyjne brenda nga disku. !erfundimisht, informa$ioni rreth
tabela"e t faqes dhe siprfaqes se ndryshueshme ne disk duhet ta kemi ne tabelen e
proesit.
)ur nj proess jepet pr ek'ekutim, ((+#ja duhet t risetohet pr proesin e ri dhe
N-;#ja t mbushet qe t jet ne dijeni t proesit qe po ek'ekutohej me pare. Nabela e
faqes se proesit t ri duhet t behet paresore duke e kopjuar at ose duke e shenjestruar
ne nj regjistr hard#i. @akonisht disa ose t gjitha faqet e proesit mund t sillen ne
memorje pr t ulur numrin e gabime"e fillestare.
)ur ndodh nj page faultI 1: duhet t le%oje ne regjistrat hardware, t gjeje se $ila
adrese "irtuale e shkaktoi fault. Nga ky informa$ion, duhet t gjeje $ila faqe sht e
ne"ojshme dhe ta "endose at faqe ne disk. !astaj, duhet t gjeje nj page frame t
disponueshme qe t "endose faqen e re, ndoshta dhe duke hequr disa faqe te "jetra ne se
do te jete e ne"ojshme.
!astaj duhet t le%oje fjalen e ne"ojshme ne page frame. Ne fund, duhet t beje nje kthim
mbrapsht te numruesit t programit qe t prqendrohet te instruksioni i gabimit dhe ta
ek'ekutoje ate perseri.
)ur nj pro$e ek'iston, 1: duhet t liroje tabelen e faqes se tij, faqen e tij dhe hapesiren
ne disk qe n%e faqja kur ato jane ne disk. N qoft se disa faqe jane t share#uara me
pro$ese te tjera, faqet ne memorje dhe ne disk mund t lirohen "etm kur proesi i fundit
qe i prdore ato ka prfunduar.
4.7.2 FUNKSIONI I PAGE FAULT.
(e ne fund jemi ne nj po'i$ion qe mund t prshkruajme $fare ndodh ne nj Wpage faultO
ne detajeI 1ekuen$a e ngjarje"e shtI
&. !ajisja bie ne kurthin e kernelit, duke e ruajtur numeruesin e programit ne sta$k.
Ne shumi$en e makina"e, disa informa$ione rreth gjendjes se instruksionit t
tanishem memori'ohet ne regjistrat spe$iale t *!+#se.
H. Nj kod i prbashket leshohet t regjistroje regjistrat e prgjithshem dhe
informa$ione t ne"ojshme, qe 1: te mos i shkaterroje ato. )jo rutine therret
sistemin operati" si nj pro$edure.
9. 1: 'bulon qe ka ndodhur nj page fault dhe mundohet t gjeje se $ila faqe
"irtualet ne"ojitet. @akonisht ky informa$ion mbahet ne njrin nga regjistrat
hardware. Ne t kundert 1: duhet t trheqe numruesin e programit, t ngarkoje
instruksionin dhe ta prshkruaje ne soft, qe t gjeje $fare po bnte kur ndodhi
fault.
M. )ur adresa "irtuale qe shkaktoi fault dihet, proesi kontrollon n qoft se adresa
ishte e rregullt. N qoft se jo, proesi dergon nj sinjal pr ta 'hdukur at. N
qoft se adresa sht e rregullt, sistemi kontrollon ne se korni'a e faqes sht e
lire. Ne se sOka korni'a t lira algoritmi i 'h"endosjes se faqes duhet t 'gedhe
nj "i$tim.
7. Ne se korni'a e faqes se selektuar sht pis, faqja "endoset pr transferim ne
disk dhe nj swit$h $faredo "endoset ne "end t saj, derisa t prfundoje
transferimi. Ne $do rast, frame shenohet si e 'ene, qe t mos prdoret pr ndonj
qellim tjetr.
D. )ur pastrohet korni'a e faqes, 1: shikon sipr adreses se diskut ku ndodhet
faqja e ne"ojshme dhe skedulon diskun qe do ta sjelle at. )ur faqja po
ngarkohet proesi i faulting sht akoma i pe'ulluar dhe nj tjetr proes
ek'ekutohet n qoft se ai punon.
C. )ur interrupti i diskut tregon qe faqja ka ardhur, tabelat e faqes jane update#uar
t reflektojne po'i$ionin e tij dhe korni'a sht "endosur ne gjendje normale.
L. 6nstruksioni i faulting sht "endosur ne gjendjen qe kishte kur filloi dhe
numruesi i programit sht risetuar qe t prqendrohet te instruksioni.
G. !roesi WfaultingO sht "endosur dhe 1: kthehet t rutina e gjuhes assembler qe
e therriti at.
&8. )jo rutine ringarkon regjistrat dhe informa$ione t tjera t gjendjes, dhe kthehet
t hapsira e userit t "a'hdoje ek'ekutimin, n qoft se nuk ndodh nj fault
tjetr.
4.7.3 INSTRUKSIONI BACKUP
)ur nj proes i referohet nj faqeje qe nuk sht ne memorje, instruksioni qe shkakton
WfaultO ndalon dhe ndodh nj kurth te sistemi operati". !asi 1: ka ngarkuar faqen e
ne"ojshme, duhet t ristartoje instruksionin qe shkakton kurthin. )jo sht di$ka e
thjesht pr tu thene. !er te pare natyren e ketij problemi nga ana negati"e e saj,
shqyrtojme nj *!+ qe ka instruksione me dy adresa, si (otorola DL8%8, t prdorura
gjeresisht ne sistemet e nderfutura. !er shembull, instruksioniJ
(:>.- aD(,&), H(,8)
ka D byte. 1hiko fig M#9H. <e t ristartosh sistemin, 1: duhet t per$aktoje se ku do t
"endoset byte i pare i instruksionit. >lera e !* ne kohen e kurthit "aret se $ili operand ka
deshtuar dhe se si jane implementuar mikrokodet e *!+.

Fig 4-32- nj ton instruktiv qe shkakton page fault
Ne fig M#9H kemi nj instruksion qe fillon t adresa &888, qe perfshin tre referen$a
memorjeJ "et fjalen e instruksionit dhe dy offset pr operandet. =uke u "arur t se$ila
nga keto tre referen$a shkaktoi Wpage faultO. !* mund t jet &888, &88H ose &88M ne
kohen e gabimit. ?sht e pamundur pr 1: t prfundoje pikerisht aty ku filloi
instruksioni. N qoft se !* sht &88H ne kohen e gabimit, 1: nuk ka rruge pr t
treguar ne se fjala ne &88H sht adrese memorje e lidhur me nj instruksion t &888 apo
nj instruksion Wop$odeO.
)y problem mund t kish shkuar dhe me keq. =isa tipe adresash DL8%8 prdorin
autoinkrementim, e $ila do t thot qe nj efekt anesor i ek'ekutimit t instruksionit sht
t inkrementosh nj ose me shume regjistra. 6nstruksionet qe prdorin autoinkrementim
mund t deshtojne. Ne "aresi t detaje"e t mikrokodit, inkrementimi mund t behet para
referen$a"e t memorjes, ku 1: duhet t dekrementoje regjistrin ne soft para se t
ristartoje instruksionin. ,utoinkrementimi mund t behet edhe pas referen$a"e t
memorjes ku nuk mund t behet ne kohen e kurthit dhe nuk mund t kthehet nga 1:.
k'iston edhe autodekrementimi i $ili shkakton t njjtin problem.
=etajet pre$i'e t autoinkrementimit dhe autodekrementimit qe jane ose jo para
referen$a"e t memorjes korresponduese, mund t ndryshojne nga instruksioni ne
instruksion dhe nga nj model e *!+#je t nj tjetr.
/atmiresisht, ne disa makina, di'enjuesit e *!+#se i japin nj 'gjidhje, 'akonisht ne
formen e nj regjistri t fshehur ne te $ilin !* sht e kopjuar para se t ek'ekutohet do
instruksion. )eto makina mund t kene dhe nj regjistr dytsor qe u tregon se $ili
regjistr sht pr momentin autoinkrementuar ose dekrementuar dhe me sa. !asi jepet ky
informa$ion, 1: i kthen nga e para t gjitha efektet e instruksionit EfaultF, keshtu qe
mund t fillohet e gjitha nga e para. N qoft se ky informa$ion nuk sht i
disponueshem, 1: duhet t sfor$ohet t 'buloje se $fare ndodh dhe si ta rregulloje at,
mendohet se di'enjuesit e pajisje"e hardwareishin t paaft t 'gjidhin problemin, keshtu
qe ata hoqen dore dhe ja lane perdoruese"e t 1: t meren me t.
4.7.4 KYC1A E SISTEMEVE T MEMOR1ES
=he pse nuk i kemi diskutuar 6/: ne ket kapitull, fakti qe nj kompjuter ka nj memorje
"irtuale sOdo t thot qe 6/: mungon. (emorja "irtuale dhe 6/: nder"eprojne ne rruge t
organi'uar.
)onsidero nj proes qe ka si qellim nje thirrje system, pr te le%uar nga disa skedare ose
pajisje brenda ne nj buffer me hapesiren e adreses se saj. Ndersa pret qe 6/: t
prfundoje, proesi pe'ullohet dhe nj tjetr proess fillon ek'ekutimin. )y proess tjetr
merr nj Wpage faultO.
N qoft se algoritmi i faqes sht global, sht nj shans i "ogel, por jo 'ero qe faqja qe
prmban buffer#at 6/: t 'gjidhet t hiqet nga memorja. N qoft se nj pajisje 6/: pr
momentin ndodhet ne pro$es duke bere nj transfert =(, t asaj faqe, ta heqesh at
shkakton qe nj pjese e t dhena"e t shkruhen ne buffer#in qe 6 perkasin dhe nj pjesa
tjetr t shkruhen mbi faqet e reja t ngarkuara. Nj 'gjidhje e problemit sht ky$ja e
faqe"e t 'ena me 6/: ne memorje. )eshtu qe ato nuk do t hiqen. Nj 'gjidhje tjetr
sht qe t gjitha 6/: te behen ne kernel buffer dhe pastaj t kopjojme t dhenat ne faqet e
prdorura.
4.7.5 BACKING STORE
Ne diskutim pr ri"endosjen e algoritme"e t faqes pame se si nj faqe selektohet pr
heqje. Nuk kemi thene se ku "endoset ne disk pasi n%irret jasht. -e t prshkruajme disa
nga qellimet ne lidhje me mena%himin e diskut.
,lgoritmi me i thjesht pr t shprndare hapesirat e faqes ne disk sht qe ne disk duhet
t kesh nj hapesire t "e$ant. )ur operon sistemi, kjo siprfaqe sht bosh dhe
prfaqesohet ne memorje si nj hyrje e "etme, duke i dhene origjinen dhe masen e saj.
)ur fillon proesi i pare, nj pjese e siprfaqes se proesit t pare re'er"ohet dhe pjesa
tjetr 'britet me at njsi. )ur fillojne proese t reja u $aktohen siprfaqe t reja, t
njjta ne madhesi me ima'het e tyre. )ur ato mbarojne hapesira ne disk sht e lire.
,dresa e siprfaqes se diskut qe mbahet ne tabelen e proesit sht e lidhur me se$ilin
proes. !ara se nj proes t filloje, duhet t ini$iali'ohet siprfaqja. Nj rruge sht t
kopjosh t gjithe ima'hin e proesit ne siprfaqe, keshtu qe mund ta marim ashtu si
duhet. (enyra tjetr sht t ngarkojme t gjithe proesin ne memorje dhe t shfletohet
ashtu si ne"ojitet.
(egjithat ky model i thjesht ka nj problem sepse proeset mund t 'gjerohen pasi t
fillojne. dhe pse programi 'akonisht sht i fiksuar, t dhenat nganjehere rriten dhe pila
rritet gjithmone. (egjithat do ishte me mire t re'er"onim siprfaqe t ndara pr tekstin,
t dhenat dhe pilen dhe ti lejojme se$iles nga keto siprfaqe, qe t prmbaje me shume se
nj pjese ne disk.
kstremi tjetr sht t mos shprndaje asgje me prparesi, dhe nj hapesire disku pr
se$ilen faqe kur ndryshohet. )eshtu proeset ne memorje nuk marrin ndonj siprfaqe t
ndryshueshme. keqja sht se nj adrese disku ne"ojitet ne memorje t mbaje pjese t
se$iles faqe ne disk. (e fjale t tjera duhet nj tabele pr proes pr t treguar pr se$ilen
faqe se ku ndodhet ne disk. =y alternati"at jane treguar ne fig.M.99
Fig. 4-33
Ne fig M#99 (a) sht ilustruar nj tabele me L faqe. /aqet 8, 9, M dhe D jane ne memorjen
kryesore. /aqet &. H, 7 dhe C jane ne disk. 1iprfaqja ne disk sht po aq e madhe sa
siprfaqja e adreses "irtuale t proesit (L faqe), ku se$ila faqe ka nj "endndodhje fikse e
$ila shkruhet kur hiqet nga memorja kryesore. !r t llogaritur ket adrese duhet t dime
se ku fillon siprfaqja WpagingO e proesit meqe faqet regjistrohen ne te "a'hdimisht, sipas
numra"e te faqe"e "irtuale te tyre. /aqet qe jane ne memorje e kane gjithmone nj kopje
(ne hije) ne disk, por kjo kopje nuk funksionon n qoft se faqja modifikohet kur
ngarkohet.
N fig M#99(b) faqet nuk kane adresa fikse ne disk. )ur nj faqe shprndahet, 'gjidhet nj
faqe disku boshe dhe harta e diskut (e $ila ka nj dhome pr nj adrese disku) behet
EupdateF ne "aresi t saj. /aqet ne memorje nuk kane kopje ne disk. 2yrjet e tyre ne
hartn e diskut prmbajne nj adrese disku jo te rregullt ose nj bit qe i tregon ato sikur
nuk jane ne prdorim.
4.7.6 NDAR1A E PLANIT DHE E MEKANIZMIT
rendesishme pr mena%himin e kompleksitetit t nj sistemi sht t ndash planin nga
mekani'mi. )y prin$ip mund t aplikohet t mena%himi i memorjes duke patur
ek'ekutimin e memories si nj proes t ni"elit prdorues. Nj ndarje e tille fillimisht u
be ne (a$h (]oung et al,&GLC) dhe ne (6N6R (Nanenbaum,&GLC). !rshkrimi me posht
ba'ohet ne (a$h.
Nj shembull i thjesht se si mund t ndahen plani dhe mekani'mi tregohet ne fig.M#9M.
)etu sistemi i mena%himit t memorjes ndahet ne tre pjese.
&. ((+ e ni"elit t ulet
H. nj Wpage faultO qe sht pjese e kernel
9. nj faqe t jashtme qe "epron ne hapesiren e prdoruesit
t gjitha detajet se si funksionon ((+ jane t prmbledhura t mbajtsja e ((+#se qe
sht nj kod makine dhe qe duhet t rishkruhet pr do platforme t re qe 1: dergon.
(bajtsja e Wpage faultO sht nj makine e pa"arur dhe prmban shumi$en e mekani'mit
pr paging. !lani pr$aktohet gjeresisht pr nj faqe t jashtme, qe "epron si nj proes
prdorues.
Fig.4-34. page faulting` me nj faqe t jashtme
)ur fillohet nj pro$ess, njoftohet faqja e jashtme qe t ndertoje hartn e faqes se proesit
dhe t shprndaje Wba$king storeO ne disk, n qoft se sht e ne"ojshme. Ndersa proesi
"a'hdon, mund t hartoje objekte t reja ne hapesiren e adreses se saj, keshtu qe njoftohet
prseri faqja e jashtme.
)ur proesi fillon, ndonjehere mund t marre nj Wpage faultO. (bajtsja e gabimit e
dallon se $ila faqe "irtuale ne"ojitet dhe i dergon nj mesa'h faqes se jashtme, duke i
treguar se ku sht problemi. /aqja e jashtme le%on faqen e ne"ojshme nga disku dhe e
kopjon at ne nj por$ion te hapesira e adreses se saj. =he pastaj i tregon mbajtses se
gabimit se ku ndodhet faqja. )jo e fundit e heq faqen dhe pyet mbajtsen e ((+#se qe
ta "endose ne "endin e duhur te hapesira e adreses se prdoruesit. !astaj proesi i
prdoruesit mund t ristartohet.
)y implementim e le t hapur ku do t "endoset algoritmi i 'h"endosjes se faqes. =o
ishte me e pastr ta kishim at te faqja e jashtme, por me ket afrim do t ket probleme.
!rin$ipja midis ketyre sht se faqja e jashtme nuk ka akses t bitet . dhe ( e t faqe"e
t tjera. )eto bite luajne rol tek shume algoritme WpagingO. !randaj disa mekani'ma duhet
ta kalojne ket informa$ion deri t faqja e jashtme ose algoritmi i 'h"endosjes se faqes
duhet t shkoje ne kernel. Ne raste t tjera faqja e gabimit i tregon faqes se jashtme se
$ilen faqe ka selektuar pr ta hequr dhe prodhon t dhena duke i hartuar ato ne adresat e
faqe"e t jashtme ose me nj mesa'h. (enyre tjetr sht se faqja e jashtme i shkruan t
dhenat ne disk.
,"anta'hi kryesor i ketij implementimi shtJ nj kod i moduluar dhe me nj fleksibilitet
shume t madh. =isa"anta'hi sht se i kalon se teprmi kufinjt e prdorues"e kernel si
dhe sasia e madhe e mesa'he"e qe dergohen midis pjese"e t sistemit. !r momentin ky
subjekt sht shume i diskutueshem, por me rritjen e kompjutera"e dhe programi behet
me kompleks. 5jat rruges duke sakrifikuar disa performan$a pr programe me t
prshtatshme, ndoshta mund t behet me e pranueshme pr shumi$en e implementues"e.
4.8 Segmentimi
(emoria "irtuale qe u diskutua deri tani sht nj#dimensionale sepse adresat "irtuale
shkojne nga 8 deri ne adresen maksimale, njra pas tjetres. !r shume probleme, sht me
mire t kemi dy ose me shume hapsira adresash "irtuale t "e$anta sesa nj t "etme. !r
shembullJ nj kompilues ka shume tabela t $ilat jane ndertuar nga kompilimi i
pro$dura"e, duke prfishereJ
&. Neksti burim sht ruajtur pr listn e printueshme (ne nj bat$h sistem).
H. Nabela simbol prmban emrat dhe atributet e "ariabla"e.
9. Nabela prmban t gjitha konstantet integer (dhjetore) dhe floating#point (me
presje le"i'ese).
M. !ema e anali'es, prmban anali'en sintaksore t programit.
7. 1ta$k#u prdoret pr thirrjet e pro$edures brenda kompilatorit.
1e$ila prej katr tabela"e t para 'h"illohet ne menyre t "a'hdueshme, ashtu si
kompilimi i pro$edura"e. )urse tabela e fundit 'h"illohet dhe tkurret ne menyre t
paparashikueshme gjat kompilimit. Ne nj memorie nj#dimensionale, keto katr tabela
duhet t alokojne "a'himisht pjese t hapesires se adresa"e "irtuale si$ tregohet edhe ne
figuren M#97.
Figura 4-35. Ne nj hapesire adresash nj-dimensionale me zhvillimin e tabelave,
nj tabele mund t prplaset me nj tjetr.
)onsideroni se $fare do t ndodhte ne se nj program do t kishte nj numer mjaft t
madh "ariablash por nj sasi normale pr gjerat e tjera. !jesa e hapesires e alokuar pr
tabelen e simbole"e mund t mbushet plot, megjithese mund t ket hapesira t lira ne
tabelat e tjera. )ompiluesi do t shfaqte nj mesa'h, i $ili do t na thosht qe kompiluesi
nuk mund t "a'hdoje pr shkak t numrit t madh t "ariabla"e, gje e $ila nuk duket
shume argetuese kur hapesira t lira jane t pranishme ne tabelat e tjera.
Nj mundesi tjetr sht t luajme si .obin 2ood, duke marre hapesiren e lire nga tabelat
qe e kane me tepri$e (t pasura) dhe ia dhurojme tabela"e qe kane pak hapesire (t
"arfra).
,jo $fare duhet ne t "ertet sht nj menyre pr ta $liruar programuesin nga detyra e
mena%himit t 'h"illimit dhe tkurrjes se tabela"e, ne t njtn kohe qe memoria "irtuale
eliminon problemin e organi'imit t programit ne Eo"erlaysF.
Nj 'gjidhje sht t pajisim makinen me shume hapesira adresash komplet t pa"arura
qe quhen segment. Bdo segmenet konsiston ne nj sekuen$e lineare adresash nga 8 deri
ne ma%. 5jatsia e do segmenti mund t jet $faredo, nga 8 deri ne ma% e lejuar.
1egment t ndryshme 'akonisht kane gjatsi t ndryshme, por gjatsia e segment"e
mund t ndryshoje gjat ek'ekutimit. 5jatsia e nj segmenti sta$k rritet sa here qe di$ka
futet (push) ne sta$k dhe '"ogelohet sa here qe n%jerrim (pop) di$ka.
Bdo segment $akton nj hapesire adresash, kurse segmente t ndryshme mund t rriten
ose t '"ogelohen ne menyre t pa"arur pa demtuar njri tjetrin. N qoft se nj sta$k ne
nj segment t $aktuar kerkon me shume hapesire adresash pr tu rritur, ai do ta ket at,
sepse nuk ka ndonj re'ik qe adresat t prplasen. (und t ndodhe qe segmenti t
mbushet plot, por meqe ata jane shume t medhenj kjo gje mund t ndodhe shume rralle.
!r t spe$ifikuar nj adrese ne ket segment ose ne ket memorie dy#dimensionale,
programi duhet t re'er"oje numrin e segmentit dhe adresen e segmentit. /igura M#9D,
ilustron nj segment memorieje qe u prdor ne diskutimin pr kompilimin e tabela"e.
!ese segmente t ndryshme jane treguar ne ket figure.
Figura 4-36. Nj memorie e segmetuar lejon do tabele t zhvillohet ose tkurret
pavaresisht nga tabelat e tjera.
Nheksojme se nj segment sht nj entitet llogjik. 1egmenti mund t prmbaje nj
pro$edure, nj tabele, nj sta$k ose nj grup "ariablash, por asnjehere nuk prmban nj
pr'ierje t tyre.
Ne nj memorie, n qoft se do pro$edure okupon nj segment t $aktuar, ku adresa e
fillimit sht 8, athere metoda e bashkmit dhe kompilimit t pro$edura"e t "e$anta
sht e thjesht. !asi t gjitha pro$edurat qe formojne nj program jane kompiluar dhe
bashkuar, nj thirrje pro$edure ne pro$eduren e $ila ndodhet ne segmentin n do t prdori
adresat e prbera (n, 8) ne fjalen me adrese 8 (pika e hyrjes). N qoft se pro$edura ne
segmentin n me pas sht modifikuar dhe rikompiluar, pro$edurat e tjera nuk mund t
ndryshohen (sepse adresa e fillimit sht modifikuar), "etm n qoft se "ersioni i ri sht
me i madh se i "jetri. (e nj memorie nj#dimensionale, pro$edurat jane paketuar dhe
ngjeshur me njra tjetren pa asnj hapesire adresash midis tyre. 1i pasoje e ndryshimit se
madhesise se nj pro$edure mund t kemi demtimin e adreses fillestare pr pro$edurat
pasardhese. )jo, si rregull kerkon modifikimin e t gjitha pro$edura"e qe therrasin
ndonj nga pro$edurat e spostuara, ne "end qe t inkorporojme adresat e tyre t fillimit.
N qoft se nj program prmban me qindra pro$edura, athere ky proes do t jet tepr
i kushtueshem.
1egmentimi gjithashtu ndihmon ne ndarjen e pro$edura"e apo t dhena"e midis shume
proese"e. Nj shembull i 'akonshem sht dhe shared library. )ompjuterat workstation
qe punojne me sisteme t a"an$uara windows#i kane librari grafike ekstreme t
kompiluaraa ne do program. Ne nj sistem t segmentuar, libraria grafike "endoset ne
nj segment dhe mund t ndahet midis shume proese"e duke eliminuar ne"ojen pr ta
patur at "etm nga nj proes. 5jithashtu mund t kemi edhe ndarjen e librari"e midis
faqe"e t sistemit por kjo sht me e komplikuar. Ne fakt kjo behet nga sistemet duke
stimuluar segmentimin.
(eqe do segment formon nj entitet llogjik, programesi sht i informuar se $Oka ne
se$ilin prej segment"e, si pro$edura, sta$k apo tabela, dhe segmente t ndryshme kane
mbrojtje (prote$tion) t ndryshme. Nj pro$edure mund t $aktohet "etm si e
ek'ekutueshme, duke ndaluar prpjekjet pr t le%uar apo shkruajtur ne t. Ne nj tabele
mund t shkruhet dhe le%ohet, por nuk mund t ek'ekutohet. )jo lloj mbrojtjeje sht e
ne"ojshme ne parandalimin e gabime"e gjat programimit.
Nj pyetje qe shtrohet shtJ !se mbrojtja prfshihet ne nj memorie t segmentuar dhe jo
ne nj memorie njKdimensionale si$ jane faqet e memoriesU Ne memorien e segmentuar
prdoruesi sht i informuar se $fare ka ne do segment. @akonisht nj segment nuk
mund t mbaje dhe nj pro$edure dhe nj sta$k, por "etm njren prej tyre. )eshtu,
meqenese do segment prmban "etm nj lloj objekti, segmenti do t ket nj mbrojtje
t prshtatshme pr at lloj objekti. /aqet dhe segmentet jane krahasuar ne figuren M#9C.
)onsiderata /aqet 1egmentt
)erkon qe programuesi t jet i
informuar pr tekniken qe sht
prdorurU
A: !:
1a hapesira adresash lineare kaU & 1hume
, e kapr$en hapesira e adresa"e
madhesine e memories fi'ikeU
!: !:
, jane pro$edurat dhe t dhenat t
dallueshme dhe t mbrojtura
"e$masU
A: !:
, munden tabelat madhesia e t
$ila"e ndryshon t prshtaten lehtU
A: !:
;ehet ndarja e pro$edura"eU A: !:
!se sht krijuar kjo teknikeU !r t patur nj hapesire
t madhe lineare
adresash pa patur ne"oje
pr t blere me shume
memorie fi'ike
!r t lejuar programet
dhe t dhenat t
"endosen ne hapesira
adresash logjike dhe t
pa"arura si dhe pr t
ndihmuar ndarjen dhe
mbrojtjen
Figura 4-37. Krahasimi i faqeve dhe segmentve
!rmbajtja e nj faqeje sht ne nj fare menyre aksidentale. !rogramuesi sht i pa
informuar pr krijimin e nj faqeje. Ndonese "endosim disa bite ne hyrje t do page
table pr t spe$ifikuar aksesin e lejuar, pr t prdorur ket "e$ori programuesi duhet t
ndjeke se ne $fare "endi ne hapesiren e adresa"e gjenden kufinjt e faqes. )jo ishte
pikerisht menyra e administrimit pr faqet qe jane 'buluar pr tu eliminuar. !r shkak t
prdorimit t memories se segmentuar sht krijuar ilu'ioni se t gjitha segmentt jane ne
memorien kryesore gjat gjithe kohes, se programuesi mund ti adresoje ato me mendimin
qe ato ek'istojne, apo ai mund t mbroje do segment ne menyre t "e$ant, pa u
shqetsuar pr at qe ka t beje me administrimin e mbulimit t tyre.
4.8.1 Implementimi i segmentimit t pastr (pure segmentation)
6mplemetimi i segmentimit ndryshon nga krijimi i faqe"e ne menyre thelbesoreJ faqet
kane madhesi fikse kurse segmentet jo. /igura M#9L(a), tregon nj shembull t memories
fi'ike e $ila fillimisht prmban pese segmente. *fare do t ndodhte n qoft se segment &
n%irret jasht dhe segmenti C i $ili sht me i "ogel t "endoset ne "endin e tij. Ne arrijme
ne konfigurimin e memories si ne figuren M#9L(b). Ndermjet segmentit C dhe H ka nj
'one boshe e $ila quhet "rime. (e pas segmenti M 'e"endesohet nga segmenti 7, si ne
figuren M#9L($) dhe segmenti 9 'e"endesohet nga segmenti D, si ne figuren M#9L(d). !asi
sistemi sht duke punuar pr nj fare kohe, memoria do t ndahet ne nj numer t
$aktuar pjesesh ($hunks), ku disa prmbajne segmente dhe disa prmbajne "rima. )y
fenomen quhet ndarja ne kuadrate (checkerboarding) ose fragmentimi i jashtm.
/orma e kompaktsuar e ketij segmentimi jepet ne figuren M#9L(e).
Figura 4-38 (a)-(d) Zhvillimi i checkerboarding. (e) eliminimi i checkerboarding
neprmjet kompaktsimit.
4.8.2 Segmentimi me faqe: MULTICS
N qoft se segmentet jane t medhenj, mund t jet e paprshtatshme ose gati e
pamundur, pr ti mbajtuar ato ne memorien kryesore. )jo $on ne idene e krijimit t
faqe"e t tyre, keshtu "etm ato faqe qe duhen do t mbahen. 1hume sisteme kane
mbshtetur segmentimin e faqe"e. Ne kt paragraf ne do t prshkruajme t parinJ
(+-N6*1. (e pas ne "ijim do t diskutojme pr nj tjetrJ 6ntel !entium.
(+-N6*1, punojne ne makinat 2oneywell D888 dhe ne pasardhesit e tyre dhe pajisin
se$ilin program me nj memorie "irtuale mbi H
&L
segment (me shume se H78 888), se$ila
prej t $ila"e mund t jet mbi D7 79D (9D#bit) fjale e gjat. !r t implementuar ket,
projektuesit e (+-N6*1 duhet ta trajtojne do segment si nj memorie "irtuale dhe si
faqe, duke kombinuar a"anta'het e faqes (madhesia uniforme e faqes dhe mos mbajtja e
gjithe segmentit ne memorie kur prdoret "etm nj pjese e tij) me a"anta'het e
segmentimit (lehtsia e programimit, modulariteti, mbrojtja dhe sharing).
Bdo program (+-N6*1 ka nj tabele segment, me nj prshkrues pr do segment.
!rderisa mund t kemi me shume se nj $erek milioni hyrje ne nj tabele, tabela segment
sht ne "et"ete nj segment dhe nj faqe. !rshkruesi i segmentit prmban nj t dhene
qe tregon ne se segmenti sht ne memorie ose jo. N qoft se ndonj pjese e segmentit
ndodhet ne memorie, segmenti konsiderohet sikur sht ne memorie, prshkruesi i tij
prmban nj pointer &L#bit ne tabelen e faqes se tij 0shiko figuren M#9G(a)4. (eqenese
adresat fi'ike jane H bitshe dhe faqet jane rradhitur ne kufij DM byte, ku "etm &L bit
ne"ojiten pr prshkruesin qe t ruaje adresen e page table. !rshkruesi gjithashtu
prmban madhesine e segmentit, bitet mbrojts (prote$tion bits) dhe disa t dhena t tjera.
/igura M#9G(b), ilustron nj prshkrues segmenti (+-N6*1. ,dresa e segmentit ne
memorien sekondare nuk gjendet ne prshkruesin e segmentit por ne nj tabele tjetr e
prdorur nga segment fault handler.
Figura 4-39. Memoria virtuale MULTICS (a). Prshkruesi (descriptor) i segmentit
duke point-uar ne tabelat e faqeve (b). Nj prshkrues segmenti. Numrat jane
gjatsite e segmentve.
Bdo segment sht nj hapesire adresash "irtuale e 'akonshme, e ndare ne faqe ne t
njjtn menyre si faqet e memories t pa segmentuar, qe i shpjeguam me prpara ne ket
kapitull. (adhesia normale e faqes sht &8HM fjale.
Figura 4-40. Nj adrese MULTICS 34-bit.
Nj adrese ne (+-N6*1 prbehet nga dy pjeseJ nga segmenti dhe adresa brenda
segmentit. ,dresa brenda segmentit ndahet me tej ne nj numer t $aktuar faqesh dhe
fjalesh brenda faqes, si$ tregohet ne figuren M#M8. )ur ndodh nj referen$e ne memorie,
algoritimi qe ndiqet sht $arried out.
&. Numri i segmentit prdoret pr t gjetur prshkruesin e segmentit.
H. Nj "erifikim behet pr t pare n qoft se tabela e faqes se segmentit sht ne
memorie. N qoft se tabela e faqes sht ne memorie, athere ajo sht
lokali'uar. N qoft se jo, shkaktohet nj segment fault. N qoft se ka nj shkelje
t sigurise, shkaktohet nj fault (trap).
9. N qoft se sht ek'aminuar kerkesa e faqes "irtuale pr t hyre ne tabelen e
faqes. )ur faqja nuk ndodhet ne memorie, shkaktohet nj page fault. )ur faqja
ndodhet ne memorie, adresa e fillimit t faqes ne memorien kryesore sht n%jerre
nga page table entry.
M. :ffset futet qe ne fillim t faqes pr t dhene adresen e memories kryesore ku
sht lokali'uar fjala.
7. -e%imi ose ruajtja prfundimisht 'aptojne "end.
)y proes sht ilustruar ne figuren M#M&. !r thjeshtsi, fakti qe prshkruesi i segmentit
sht dhe "et i ndare ne faqe, sht harruar. *fare do t ndodhte ne t "ertet n qoft se
nj regjistr (regjistri ba'e i prshkruesit), do t prdorej pr t lokali'uar prshkruesin e
segment"e t tabeles se faqes, i $ili ne parim pointon ne faqet e prshkruesit t
segmentit. !asi prshkruesi pr segmentin e kerkuar sht gjetur, adresimi i proese"e
sht treguar ne figuren M#M&.
Figura 4-41. Shnderrimi i prbere i nj adresese MULTICS ne nj adrese se
memories kryesore.
N qoft se pro$edura e algoritmit sht kryer nga sistemi operati" instuksion pas
instruksioni, programet nuk do t punojne shume shpejt. Ne realitet, hardware i
(+-N6*1 prmban nj N-; &D#fjaleshe me shpejtsi t lart qe mund t kerkoje t
gjitha t dhenat e futura ne paralel pr nj $eles (key) t dhene. )jo sht ilustruar ne
figuren M#MH. )ur nj adrese sht pre'ente ne kompjuter, hardware i adresimit ne fillim
kontrollon ne se adresa "irtuale ndodhet ne N-;. N qoft se po, merr numrin e page
frame direkt nga N-;#ja dhe formon adresen aktuale t fjales qe i referohet pa marre
parasysh prshkruesin e segmentit apo page table (tabelen e faqes).
Figura 4-42. Nj version i thjesht i TLB-se MULTICS. Ekzistenca e dy madhesive
t faqes e bn TLB-ne aktuale me t komplikuar.
!rogramet qe kane nj hapesire pune me t "ogel se madhesia e N-; do t "ijne duke u
bara'uar me adresat qe hyjne ne hapesien e punes se N-;, dhe keshtu do t punojne me
me efi$ense. N qoft se faqja nuk sht ne N-;, prshkruesi dhe tabelat e faqe"e
detyrohen t gjejne adresen e page frame#it dhe N-;#ja bn nj update (freskim) pr t
prfshire ket faqe, kurse faqja e fundit qe u prdor n%irret jasht. /usha e moshes (age
field) tregon jetgjatsine e faqe"e duke pr$aktuar ne ket menyre dhe faqen qe sht
prdorur e fundit. 1hkaku se pse kemi prdorur nj N-; sht pr t krahasuar segmentin
dhe faqen pr t gjitha hyrjet ne paralel.
4.8.3 Segmentimi me faqe: Intel Pentium
(emoria "irtuale tek !entium#et ngjason me (+-N6*1, pasi kane t dy segmentimin me
faqe. (+-N6*1 ka H7D ) segment t pa"arur, se$ili mban DM ) fjale 9H#bitshe, kurse
!entiumi ka &D ) segment t pa"arura, se$ili mban mbi & milion fjale 9H#bit.
@emra e memories "irtuale tek !entium prbehet nga dy tabelaI LDT (-o$al =es$riptor
Nable) dhe GDT (5lobal =es$riptor Nable). Bdo program ka -=N#ne e tij, kurse 5=N
sht "etm nj dhe ndahet midis t gjitha programe"e t kompjuterit. -=N#ja prshkruan
segmentt lokale t do programi, duke prfshire kodet, data, sta$k, etj, ndersa 5=N
prshkruan segmentt e sistemit, duke prfshire ne "et"ete sistemin operati".
!r t aksesuar nj segment, nj program !entium ne fillim ngarkon nj pr'gjedhes pr
at segment ne nj nga gjasht regjistrat e makines. 5jat ek'ekutimit, regjistri mban
pr'gjedhesin pr kodin e segmentit dhe regjistri =1 mban pr'gjedhesin pr t dhenat e
segmentit. .egjistrat e tjere t segment"e jane me pak t rendesishem. Bdo pr'gjedhes
sht nj numer &D#bit, ashtu si$ tregohet ne figuren M#M9.
Figura 4-43. Nj przgjedhes (selector) Pentium-i
Nj nga bitet e pr'gjedhesit tregon ne se nj segment sht lokal apo global (ndersa ai
sht ne -=N ose ne 5=N). &9 bitet e tjere pr$aktojne numrin e hyrje"e t -=N#se ose t
5=N#se, keshtu keto tabela jane t pr$aktuara qe se$ila t mbaje nga L ) prshkrues
segmenti. H bitet e tjere kane t bejne me mbrojtjen (prote$tion) dhe do t trajtohen me
"one. !rshkruesi 8 ('ero) mungon.
1apo nj pr'gjedhes ngarkohet ne nj segment regjistr, prshkruesi qe i korrespondon
atij regjistri sht marre (fet$h) nga -=N ose 5=N dhe sht ruajtur ne regjistrat e
mikroprogramit, keshtu mund t aksesohet me leht. Nj prshkrues prbehet nga L byte,
duke prfshire adresen ba'e t segmentit, madhesine dhe informa$ione t tjera, si$
paraqitet ne figuren M#MM.
Figura 4-44. Pentium code segment descriptor. Segmentt e t dhenave ndryshojne
pak.
/ormati i pr'gjedhesit sht marre i aft qe t beje lokali'imin e prshkruesit sa me t
leht. Ne fillim behet selektimi i -=N ose 5=N. (e pas pr'gjedhesi kopjohet ne nj
regjistr t jashtm dhe tre bitet me peshe me t "ogel behen 8. Ne fund adresat e se$ilit
prej -=N ose 5=N "endosen ne tabele pr ti dhene direkt nj pointer prshkruesit.
!r shembull, pr'gjedhesi CH i referohet hyrjes G ne 5=N, i $ili sht "endosur ne
adresen 5=N T CH.
-e t shohim hapat nepr t $ilat nj $ift (pr'gjedhes, offset) sht shnderruar ne nj
adrese fi'ike. 1apo mikroprogrami identifikon segment regjistrin qe sht prdorur, ai
mund t identifikoje prshkruesin qe i korrespondon pr'gjedhesit ne regjistrin e tij t
jashtm. N qoft se segmenti nuk ek'iston (pr'gjedhesi 8) ose sht paged out,
shkaktohet nj trap.
-logjikisht duhet nj fushe 9H biteshe ne prshkruesin qe pr$akton edhe madhesine e
segmentit, por jane "etm H8 bit t mundshme. N qoft se fusha e 5bit (5ranularity)
sht 8, athere fusha -imit sht ek'aktsisht madhesia segmentit, mbi & (;. (adhesia
e faqes !entium sht fikse M );, keshtu qe H8 bit mjaftojne pr segmentt, mbi H
9H
byte.
=uke pretenduar qe segmenti ndodhet ne memorie dhe offset#i sht ne "arg, athere
!entiumi fut fushen ;ase 9H bit#she ne prshkruesin e offset#it pr t formuar at qe
quhet linear address (adrese lineare), si$ tregohet edhe ne figuren M#M7. /usha ;ase
sht ndare ne tre pjeseJ ,dresa ba'e, fusha -imit dhe fushat e tjera. Ne t "ertet, tek
fusha ;aselejon do segment t filloje me nj hapesire arbitrare, me 9H#bit hapesire
adrese lineare.
Figura 4-45. Shnderrimi i ciftit (selector, offset) ne nj adrese lineare.
N qoft se faqet jane disabled (ndaluar nga nj bit ne regjistrin e kontrollit global),
adresa lineare interpretohet si adrese fi'ike dhe dergohet ne memorie pr read ose write.
)eshtu me faqet disabled (t ndaluara), ne marrim skemen e nj segmentimi t pastr
(pure segmentation), ku adresa ba'e e do segmenti sht dhene ne prshkruesin e tij.
Nga ana tjetr, n qoft se faqet jane lejuar (enabled), adresa lineare interpretohet si nj
adrese "irtuale dhe mapped (krijon nj hart) mbi adresen fi'ike duke prdorur tabelat e
faqes. Nj "eshtiresi qe haset sht se me nj adrese "irtuale 9H#bit dhe nj faqe M );, nj
segment duhet t mbaje & milion faqe, keshtu nj mapping me dy ni"ele prdoret pr t
reduktuar madhesine e tabeles se faqes pr segmente t "egjel.
Bdo program ne ek'ekutim ka nj direktori faqeje (page dire$tory) qe prmban &8HM
hyrje 9H bit#she. ,i sht i "endosur ne nj adrese qe pointohet nga nj regjistr global.
Bdo hyrje ne ket direktori pointon ne nj tabele faqeje e $ila gjithashtu prmban &8HM
hyrje 9H#bitshe. 2yrjet ne tabelen e faqes pointoin ne page frame#t. 1kema paraqitet si ne
figuren M#MD.
Figura 4-46. Mapping i nj adrese lineare mbi nj adrese fizike.
Ne figuren M#MD(a) shohim nj adrese lineare t ndare ne tre fushaJ =ir, !age dhe :ffset.
/usha =ir prdoret si indeks ne direktorine e faqes pr t lokali'uar nj pointer ne tabelen
e faqes. /usha !age prdoret si nj indeks ne tabelen e faqes pr t gjetur adresen fi'ike e
nj page frame. /usha :ffset "endoset ne adresen e page frame#it pr t gjetur adresen
fi'ike t byte#it apo word#it qe ne"ojitet.
2yrjet e tabeles se faqes jane 9H#bit se$ila, H8 prej t $ila"e prmbajne nj numer page
frame#sh. ;itet e ngelur prmbajne a$$ess dhe dirty bits, t $aktuar nga hardware pr
qellimet e sistemit operati", prote$tion bits dhe bite t tjere t ne"ojshem.
Bdo tabele faqeje (page table) ka &8HM hyrje M#); pr page frame#t, keshtu "etm nj
tabele mban M (; memorie. Nj segment me i shkurtr se M ( do t ket nj direktori
faqeje me nj hyrje t "etme, qe sht nj pointer ne tabelen e faqes e $ila sht e "etme
(sepse kemi "etm nj hyrje), ne "end t & milion faqe"e qe do t duheshin ne nj tabele
faqeje me nj ni"el.
!r t shmangur prseritjet ne adresimin e memories, !entiumi, po ashtu edhe
(+-N6*1, kane nj N-; t "ogel e $ila tregon kombinimet me t fundit t prdorura ne
=ir#!age ne adresen fi'ike e page frame#it. )ur kombinimi i $astit nuk sht pre'ent ne
N-;, sht mekani'mi i figures M#MD $arried out dhe N-; bn nj update. )ur deshtimet
ne N-; rrallohen, prforman$a rritet.
?sht e gabuar t themi se disa aplika$ione nuk kane ne"oje pr segmentim, por ky model
sht i mundur "etm kur segmenti prmban "etm nj faqe t "etme me hapesire adrese
9H#bitshe. N gjithe regjistrat mund t ndertohen me t njjtin pr'gjedhes (sele$tor),
prshkruesi (des$riptor) i t $ilit ka ba'en [ 8 dhe limitin deri ne maksimum. :ffseti i
instruksionit do t jet adresa lineare "etm me nj hapesire t "etme, ne fakt e prdorur
si normal paging. N gjithe sistemet operati"e pr !entiumet punojne ne ket menyre.
:1/H sht i "etmi nga t gjithe qe prdor t gjithe fuqine e arkitektures se 6ntel ((+.
!r sa i prket mbrojtjes se sisteme"e, !entiumi ka M ni"ele mbrojtjeje, qe fillon me
ni"elin 8 dhe sht me i pri"ilegjuari dhe "a'hdon deri ne ni"elin 9 qe sht me pak i
pri"ilegjuar. )eto ni"ele jane treguar ne figuren M#MC. Ne do $ast t kohes, nj program
qe sht ne ek'ekutim, sht ne nj ni"el t $aktuar qe identifikohet nga nj fushe H bit#
she ne !13 e tij. Bdo segment ne sistem gjithashtu ka nj ni"el.
Figura 4-47. Mbrojtja tek Pentiumet
!r sa kohe qe nj program kufi'on "eten ne prdorimin e segmente"e ne ni"elin e tij,
do gje punon ne rregull. !rpjekjet pr t aksesuar t dhena ne ni"ele me t larta jane t
lejuara. )urse prpjekjet pr t aksesuar t dhena ne ni"ele me t ulta jane ilegale dhe
shkaktojne EtrapF. !rpjekjet pr t thirrur pro$edura nga ni"ele t ndryshme (ni"ele t
larta ose t uleta) jane t lejueshme por t kontrolluara. !r t bere nj $all midis dy
ni"el"e, instruksioni *,-- duhet t prbaje nj pr'gjedhes ne "end t nj adrese. )y
pr'gjedhes (selektor) pr$akton nj prshkrues (des$riptor) qe quhet call gate (porta e
$all), i $ili jep adresen e pro$edures qe do t thirret. )eshtu nuk sht e mundur t
ker$ejme ne mes t nj kodi segment arbitrar ne nj ni"el tjetr. >etm hyrjet e lejuara
mund t prdoren. )on$eptet e mbrojtjes se ni"ele"e dhe $all gates jane prdorur tek
(+-N6*1, ku ato jane pare si protection rings (una'a mbrojtse).
Nj prdorim tipik i ketij mekani'mi sht sugjeruar ne figuren M#MC. Ne ni"elin 8 kemi
kernelin e sistemit operati", i $ili mban 6/:, mena%himin e memories dhe pjese t tjera
kritike. Ne ni"elin &, system $all handler sht pre'ent. !rogramet user mund t therrasin
pro$edura pr t patur systems $alls $arried out, por "etm nj list spe$ifike dhe e
mbrojtur e pro$edura"e mund t thirret. Ni"eli H prmban librarit e pro$edura"e qe
ndahen midis shume programe"e ne ek'ekutim. =he i fundit, ni"eli 9 prmban programet
qe ek'ekutohen dhe sht me pak i mbrojturi.
Nraps dhe interrupt#et prdorin nj mekani'em t ngjashem me $all gates. ,ta, gjithashtu
i referohen prshkrues"e me mire sesa ne adresat absolute dhe keta prshkrues pointojne
ne pro$edurat spe$ifike pr tu ek'ekutuar. /usha Nype ne figuren M#MM, bn nj dallim
ndermjet $ode segments, data segments dhe nj numri t $aktuar gates.
KAPITULLI I PEST
INPUT/OUTPUT
Nj nga fuksionet kryesore t sistemt operati" sht t kontrolloj t gjitha paisjet hyrese/
dalese t kompjuterit. ,i duhet te trajtoj konditat pr paisjet, t kapi interraptet, dhe t
kujdeset pr gabimet. ,i gjithashtu duhet t siguroj nj nderfaqe midis paisjes dhe pjeses
tjetr t sistemit, ne menyre qe ta bej at sa me t thjeshte pr tu prdorur. Ne 'gjerimin e
mundshem, nderfqja duhet t jet e njjt pr t gjitha paisjet (pa"aresia e paisje"e). )odi
i paisje"e hyrese/dalese prfaqeson nj pjese sinjifikati"e t t gjithe sistemit operati".
1ubjekti i ketij kapitulli sht se si sistemi operati" mena%hon paisjet 6/:.
)y kapitull sht i ndare si me posht. Ne fillim do t shikojme disa prin$ipe t paisje"e
6/: dhe me pas do shikojme software 6/:. 1oftwaret 6/: mund t strukturohen ne shtresa,
ku do shtrese do t ket nj mision t mire pr$aktuar pr t kryer. Ne do t shikojme
keto shtresa pr t pare se $fare bejne ato dhe se si jane ato t kombinuara se bashku.
=uke ndjekur ket hyrje qe beme, ne do t shikojme disa paisje 6/: t ndryshmeJ
disket, $lo$k#et, tastierat dhe shfaqet. !r do paisje do shikojme pjesen hardware t tij
dhe at software. =he ne fund do t marrim parasysh power management.
5.1 PRINCIPET E I/O HARDWARE
Njere' t ndryshem i shikojne 6/: hardware ne menyra t ndryshme. 6n%hinieret elektrik i
shikojne ato si $hipe, tela, kon"ertuesa t tensione"e, motora dhe si do paisje tjetr
fi'ike qe prdoren pr t ndertuar hardware#et. !rogramuesit shikojne nderfaqen e
paraqitur pr software, komandat qe pranojne hardware, funksionet ne dalje dhe gabimet
qe ato mund te kthejne mbrapsht. Ne ket liber ne do t prqendrohemi ne programimin e
paisje"e 6/: dhe jo ne di'enjimin e tyre, ndertimin ose mirembajtejn e tyre, pra interesi
yne do t kufi'ohet se si hardware sht programuar dhe jo si ai punon ne "et"ete. 1i do
qoft ne disa raste programimi i paisje"e 6/: sht i lidhur ngusht me punen e tyre. Ne
tre seksionet e ardhshme ne do t sigurojme nj ba$kground t prgjithshem pr 6/:
hardware, se si lidhen ato me programin.
5.1.1 PAIS1ET I/O
!aisjet 6/: prafersisht mund t ndahen ne dy kategoriJ block ,e#ices dhe character
,e#ices. Nj blo$k de"i$es sht ai qe mbledh blloqe informa$ione me madhesi t
$aktuar, do informa$ion ka adresen e tij. 2apesira e bllokut t prbashket shkon nga 7&H
bytes ne 9H,CDL bytes. )arakteristika esen$iale e nj blo$k de"i$e sht qe ajo bn t
mundur le%imin ose shkrimin e do blloku ne menyre t pa"arur nga njri tjetri.
Ne qoft se shikojme me kujdes, kufiri midis paisje"e qe jane blloqe t adresueshme dhe
atyre qe nuk jane, nuk sht i mire pr$aktuar. N gjithe bien dakort qe nj disk sht nj
paisje bllok e adresueshme se pa"aresisht se ne $ilin krah ndodhet, sht gjithmone e
mundur qe t arrij nj $ilinder tjetr dhe t presi deri sa blloku i kerkuar t rrotullohet
posht kokes. Nani le t marrim ne konsiderat nj tape dri"e pr t bere nj disk ba$kup.
)asetat prmbajne nj sekuen$e t bllokut. Ne qoft se nj tape dri"e jep nj komand pr
t le%uar bllokun N, ajo mund ta riktheje kasetn dhe t shkoj prpara deri sa t arrij t
blloku N. )y opera$ion sht i njjt me at t kerkimit t nj disku, pr "e$ se ai kerkon
me shume kohe. 5jithashtu, jo gjithmone sht e mundur pr t rishkruajtur ne nj bllok
ne mes t kasets. dhe pse ngadonjehere sht e mundur t prdoren kaseta si blo$k
de"i$es me akses random, kjo e 'gjeron qellimin deri dikuJ normalisht keto nuk prdoren
ne ket menyre.
!jesa tjetr e paisje"e 6/: sht $hara$ter de"i$e. Nj $hara$ter de"i$e shprndan ose
merr nj "arg karakteresh, pa kerkuar asnj lidhe me struktura blloku. Nuk sht e
adresueshme dhe nuk ka asnj opera$ion kerkimi. !rinterat, nderfaqet e networkut, maus#
i, spiun (pr eksperimente laboratorike psikologjike), dhe pr shume paisje t tjera qe nuk
i ngjajne diskut mund t shihen si $hara$ter de"i$es.
)jo skeme klasifikimi nuk sht perfekte. =isa paisje nuk bejne pjese ne to. *lo$k#et
prshembull nuk jane blloqe t adresueshme. ,to as nuk gjenerojne ose pranojne "argje
karakteresh. ,to "etm shkaktojne interrupte ne inter"ale t mire pr$aktuara. ,s hartat e
memories nuk bejne pjese ne t. ,koma, modeli blo$k dhe $hara$ter de"i$e sht mjaft i
prgjithshem aq sa mund t prdoret si ba'e pr t bere disa software sistemesh operati"e
qe t punojne ne menyre t pa"arur me paisjet 6/:. !r shembull, file sistem merret "etm
me blo$k de"i$e abstrakt dhe ja le pjesen e lidhjes me paisjen shtresa"e me t ulta
software.
!aisjet 6/: mbulojne nj "ije t gjere ne shpejtsi, gje qe shkakton nj presion t
konsiderueshem ne software qe t plotsoj sa me mire t gjitha kerkesat. /ig.7 tregon disa
data rates pr disa paisje t ndryshme. 1humi$a e ketyre paisje"e tentojne t shpejtojne sa
po koha nis.
=e"i$e =ata rate
)eyboard &8 bytes/se$
(ouse &88 bytes/se$
7D) modem C );/se$
Nelephone $hannel L );/se$
=ual 61=N lines &D );/se$
-aser printer &88 );/se$
1$anner M88 );/se$
*lassi$ thernet &.H7 (;/se$
+1; (+ni"ersal 1erial ;us) &.7 (;/se$
=igital $am$order M (;/se$
6= disk 7 (;/se$
M8% *=#.:( D (;/se$
/ast thernet &H.7 (;/se$
61, bus &D.C (;/se$
6= (,N,#H) disk &D.C (;/se$
/ire3ire (6 &9GM) 78 (;/se$
R5, (onitor D8 (;/se$
1:NN :*#&H network CL (;/se$
1*16 +ltra H disk L8 (;/se$
5igabit thernet &H7 (;/se$
+ltrium tape 9H8 (;/se$
!*6 bus 7HL (;/se$
1un 5igaplane R; ba$kplane H8 5;/se$
Figure 5-1. Some typical device, network, und bus data rates.
5.1.2 KONTROLLUESIT E PAIS1EVE
!aisjet 6/: 'akonisht jane t prbera nga pjese mekanike dhe pjese elektronike. 1hpesh
sht e mundur qe keto dy pjeset t ndahen pr t marre nj kuptim sa me t prgjithshem
ne ndertimin e tyre. !jeset elektronike quhen ,e#ice controller ose adaptor. Ne
kompjuterat personal ato kane formen e nj qarku t stampuar e $ila mund t "ihet ne nj
slot. !jesa mekanike sht "et paisja. )jo marre"eshje sht treguar ne fig.&#7.
)arta kontrolluese ka nj konektor ne t $ilin mund t lidhen telat qe dalin nga paisja. N
qoft se nderfaqia midis kontrolluesit dhe paisjes sht nj nderfaqe standarte ose ,116,
6 ose standarti 61: athere kompanit e prodhimit t ketyre pjese"e mund t ndertojne
kontrolluesa, ose paisje qe t mos krijojne konflikte me njra tjetren. !r shembull disa
kompani prodhojne disk dri"er t $ilat shkojne me nderfaqet 6= ose 1*16.
Nderfaqa midis kontrolluesit dhe paisjes sht shpesh here nderfaqe e ni"elit t ulet. Nj
disk prshembull mund t ket H7D sektor me nga 7&H bytes pr linj. ,jo $fare merret
nga dri"e megjithese nis me nj "arg serial bitesh, nis me nj hyrje, me pas M8GD bit pr
sektor dhe nu fund sht $heksum ose si$ quhet ndryshe Error-Correcting code. 2yrja
shkruhet ne momentin qe formohet disku dhe prmban $ilindrat dhe numrin e sektorit,
prmast e sektorit dhe t dhenat krahasuese si nj informa$ion t sinkroni'uar.
!una e kontrolluesit sht qe t kon"ertoj nj "arg bitesh serial ne blloqe me byte dhe t
bej do korrigjim gabim n qoft se do t jet e ne"ojshme. ;lloku me byte asemblohet
bit pr bit ne nj buffer brenda kontrollerit. (basi sht kontrolluar $heksum i tij dhe nuk
sht gjetur asnj gabim athere ai mund t kopjohet ne memorien kryesore.
)ontrolleri pr nj monitor punon edhe si nj paisje me bite serial ne nj ni"el t ulet.
,jo le%on bytet t $ilt prmbajne karakteret qe do t meren nga memorja dhe qe
gjenerone sinjalet qe do t prdoren pr tu moduluar ne binar *.N pr t shkruajtur ne
ekran. 5jithashtu kontrolleri gjeneron sinjale qe detyron *.N t beje nj rishikim
hori'ontal pasi ai t ket mbarur nj skanim t nj rreshti, ashtu si edhe sinjale pr t bere
nj rishikim "ertikal pasi i gjithe ekrani t jet skanuar. N qoft se nuk do t kishim
kontrollerin *.N, programatori 6 sistemit operati" do ti duhej ta programonte ne menyre
eksplisite skanimin analog t tubit katodik. 1istemi operati" e ini$iali'on kontrolleri me
disa parametra, si$ jane numri 6 karaktere"e, ose pi%el#at pr rrjesht dhe numrat e
rrjeshta"e pr ekran dhe le kontrolleri pr tu kujdesur.
5.1.3 HARTA E MEMORIES I/O
Bdo kontroller ka disa regjistra t $ilat prdoren pr t komunikuar me *!+. =uke
shkruajtur ne keto regjistra, sistemi operati" mund t komandoj paisjet pr t $uar t
dhena, pr t mare t dhena, pr tu akti"i'ur ose $akti"i'ur ose pr t ndermarre "eprime
t tjera. =uke le%ur nepr keto regjistra, sistemi operati" meson se ne $Ogjendje sht
paisja, n qoft se sht gati pr t marre komanda t reja dhe keshtu me radhe. !r"e$
regjistar"e t kontrollit, shume paisje kane edhe t dhena buffer ku sistemi operati" mund
t shkruaj ose t le%oj ne to. !rshembull nj menyre e prbashket t kompjuterat pr t
n%jerr pi%elat ne ekran, sht qe duhet t kene nj "ideo .,( e $ila ne parim sht nj
data buffer, e gatshme pr programin ose ku sistemi operati" mund t shkruaj ne t. !ra
*!+ komunikon me regjistrat e kontrollit dhe me paisjet data buffer. k'istojne dy
alternati"a. Ne trajtimin e pare, do regjistri kontrolli i sht $aktuar nj numer port 6/:,
L ose &D bit integer. =uke prdorur nj instruksion spe$ial 6/: si J

6N .5,!:.N,
*!+ mund t le%oj ne regjistrin kontrollues !:.N dhe t ruaj re'ultatin ne regjistrin
.5 t *!+#se.
:+N !:.N,.5
*!+ mund t shkruaj prmbajtjen e .5 ne regjistrin kontrollues. 1humi$a e
kompjutera"e t athershem, duke prfshire dhe mianframet, si 6;( 9D8 dhe t gjithe
pasardhesit e tij punojne ne t njjtn menyre.
Ne ket skeme hapesira e adreses pr memorjen dhe 6/: jane t ndryshme, si$ duket
edhe nga fig 7.H. 6nstruksioni

6N .:,M
dhe

(:> .:,M
jane komplet ndryshe ne ket di'enjim. 6 pari le%on prmbajtjen e ports M 6/: dhe e
"endos at ne .8 kurse i dyti le%on prmbajtjen e fjales M ne mermorje dhe e "endos at
ne .8.

,frimi i dyt, qe ka t bej me !=!#&&, sht qe t ski$oje t gjithe regjistrat e kontrollit
ne hapesiren e memories si$ tregohet ne fig.7#H(b). Bdo regjistri kontrolli 6 sht $aktuar
nj adrese e "etme ne memorie. )y sistem quhet memory-mapped I/O. @akonisht
adresat e $aktuara ndodhen ne fillim t hapesires se adresa"e. Nj skeme hibride me
memori#mapped 6/:, me data buffer dhe me porta 6/: t ndara pr regjistrat e kontrollit
tregohen ne fig.7.H($). !entium#et e prdorin ket arkitekture, me adresa DM8) deri ne
&( t re'er"uara pr paisje data buffer.
1i funksionojne keto skemaU Ne do rast, kur *!+ kerkon t le%oj nj fjale, nga memoria
ose nga portat 6/:, ajo "endos adresen qe duhet ne busin e linja"e t adresa"e dhe
akti"i'on sinjali .,= ne busin e linja"e t kontrollit. Nj sinjal i dyt prdoret pr t
treguar se sa hapesire 6/: ose hapesire ne memorie duhet. N qoft se sht pr hapesiren
ne memorie, memoria i prgjigjet kerkeses, n qoft se sht pr hapesire 6/:, paisja 6/: i
prgjigjet.
N qoft se ka "etm hapesire memorie 0si ne fig.7#H(b)4, do modul i memories dhe do
paisje 6/: krahasojne linjn e adreses me range#in e adreses qe ato ofrojne. N qoft se
adresa bie ne range#in e tij, ajo i prgjigjet kerkeses. N dy skemat pr adresimin e
kontrollera"e kane t mira dhe t keqija t ndryshme. -e t fillojme me a"anta'het e
memory#mapped 6/:. para, ne se kerkohen instruksione spe$iale 6/: pr t shkruajtur
apo le%uar regjistrat e kotrollit t paisje"e, aksesimi i tyre do t kerkoj prdorimin e
kode"e assembler prderisa sht e pamundur pr t ek'ekutuar nj instruksion 6N ose
:+N ne * ose *TT. Nherritja e nj pro$edure t tille do t shtonte komplikimin ne
kontrollin e 6/:. Ne t kundert, me memory#mapped 6/: regjistrat e kontrollit jane
thjesht "ariabla ne memory dhe mund t adresohen ne * ne t njjtn menyre si do
"ariabel tjetr. )eshtu, me memory#mapped 6/:, nj dri"er i nj paisje 6/: mund t
shkruhet i tri ne gjuhen *. !a memory#mapped 6/: do t duhen disa komanda ne
assembler.
dyta, me memory#mapped 6/: nuk na ne"oitet ndonj mekani'em spe$ial mbrojtjeje qe
t ndaloj proeset e prdoruesit qe t prdori 6/:. 5jith$ka qe duhet t bej sistemi
operati" sht qe t shmang futjen e pjeses se hapesira"e qe prmbajne regjistrat e
kontrollit ne hapesiren e adresa"e "irtuale t prdoruesit. (e mire akoma, ne se do
paisje ka regjistrat e kontrollit ne faqe t ndryshme t hapesires se adresa"e, sistemi
operati" mund t japi nj kontroll nga prdoruesi mbi spe$ifikat e paisje"e thjesht duke
prfshire faqet e deshirueshme ne page table e tij. Nj skeme e tille mund t lejoj dri"era
t paisje"e t ndryshme t "endosen ne hapesira adresash t ndryshme, jo "etm qe
redukton prmasat e kernel por nuk lejon qe dri"erat t interferohen me njri tjetrin.
treta, me memory#mapped 6/: do instruksion mund t adresoj memorien mund edhe t
adresoj regjistrat e kontrollit. !r shembull, ne se do kemi nj instruksion N1N qe teston
nj fjale t memories pr 8, ajo gjithashtu mund t prdoret pr t testuar nj regjistr
kontrolli pr 8, e $ila mund t jet sinjali qe paisja nuk po rri kot dhe mund t pranoj nj
komand t re. )odi ne gjuhen assembler do ket ket formeJ

-::!J N1N !:.N`M //kontrollon ne se porta M sht 8
;< .,=] //ne se sht 8 shko te ready
;.,N*2 -::! //ne t kundert "a'hdo testin
.,=]J
N qoft se memory#mapped 6/: nuk sht presente, regjistrat e kontrollit duhet t jene
gati ne *!+, me pas t testohen, duke kerkuar dy instruksione ne "end t nj. Ne rastin e
nj loop, duhet t shtohet edhe nj instruksion i katrt i $ili bn qe t ulet ne menyre t
a"asht aftsia pr t detektuar ne se paisja nuk po ben gje.
Ne di'enjimin e kompjutera"e, do gje praktikisht ka t bej me shkembime. (emory#
mapped 6/: ka edhe kjo disa"anta'het e saj. 1e pari kompjuterat e sotm kane disa forma
kapje t fjale"e ne memorie. N kapesh nj paisje regjistr kontrolli mund t jet nj
shkatrim i "ertet. )onsideroni kodin assembler pr nj loop t dhene me posht ne rastin
kur t kemi nj kapje. ,dresimi i pare pr !:.N`M mund t shkaktoj nj kapje.
,dresimet pasues do tu duhej ta merrnin "leren nga $a$he pa e pyetur fare paisjen. (e
pas kur piasja t behet gati software nuk do t ket mundesi ta 'buloj at. =he $ikli loop
do t "a'hdoj keshtu prfundimisht.
!r ti paraprire kesaj situate me memory#mapped 6/:, hardware duhet t ket aftsin qe t
$akti"i'oj kapjen ne menyre selekti"e. )y tipar do t rrisi kompleksitetin si pr hardware#
in ashtu edhe pr sistemin operati" i $ili ka pr detyre t drejtoj kapjen selekti"e.
1e dyti, ne se do t kemi nj hapesire adrese t "etme athere t gjithe modulet e
memories dhe t gjithe paisjet 6/: duhet t kontrollojne t gjitha adresimet e memories
pr t pare se $ilit i prgjigjen. N qoft se kompjuteri do t kishte "etm nj bus, si ne
fig.7#9, kerkimi i adresa"e nga t gjithe behet ne menyre t EndershmeF.
Nenden$a pr kompjuterat e sotm personal sht qe t kene nj bus memorie me
shpejtsi t madhe si ne fig.7#9(b), nj karakteristik e mainfraime"e. )y bus i sht
dhene pr t optimi'uar performan$en e memories pa u re'ikuar nga shpejtsia e "ogel e
paisje"e 6/:. 1istemet pentium kane 9 buse t jashtm (memory, !*6, 61,), t treguara ne
fig.&#&&.
meta e t paturit nj memorie t ndare ne makinat memory#mapped sht qe paisjet 6/:
nuk i shikojne adresat e memories pasi shkojne ne buset e memories, dhe keshtu qe nuk
kane mundesi t prgjigjen. !rape duhet t behen matje spe$iale pr t bere t mundur
memory#mapped 6/: t punojne ne sisteme me shume buse. Nj mundesi sht qe t
dergojme ne fillim t gjitha referen$at e memories ne memorie. N qoft se memoria nuk
na kthen prgjigje, athere *!+ prdor buset e tjere. )jo arkitetekture sht bere qe t
punoj por do kerkonte nj kompleksitet t madh hardware#ik.
Nj arkitekture tjetr e mundshme sht "endosja e nj paisje 'hbiruese ne busin e
memories qe t bej kalimin e adresa"e t paisje"e 6/: t interesuara. !roblemi ne ket rast
qendron pasi paisjet 6/: kane shpejtsi me t "ogel se memoria.
Nj arkitekture tjetr, e $ila prdoret sot te !entium sht "endosja e nj filtri adresash ne
$hipin !*6. )y $hip prmban nj linj regjistrash t $ilat preludohen ne kohen e butimit.
!r shembull, DM8 ) deri ne & ( mund t shenohet si nje linj jo e memories. ,dresat t
$ilat nuk i prkasin linja"e t memories shkojne te busi !*6 ne "end t memories.
=isa"anta'hi i kesaj skeme sht qe duhet t dihet ne kohen e butimit se $ilat nga adresat
e memories jane "ertet adresa t memories.
5.1.4 DIRECT MEMORY ACCESS (DMA)
Nuk ka rendesi ne se *!+ ka apo jo memory#mapped 6/:, asaj i i duhet t dergoj adresa
paisje"e kontrolluese pr t shkembyer t dhena me to. *!+ kerkon t dhena nga paisjet
6/: me nga nj byte ne nj $ast t kohes gje qe do t sillte humbjen e kohes se *!+, pr
ket ofrohet nj skeme tjetr e quajtur DMA (Direct Memory Access). 1istemi operati"
mund t prdor =(, "etm ne se edhe hardware ka nj kontroller =(,, ku shumi$a e
sisteme"e e kane. 1hpeshere ky kontroller sht i integruar ne disk kontrollerin por
arkitektura t ndryshme kerkojne kontrollera =(, t ndryshem pr do paisje. Nj =(,
kontroller i "etm sht i gatshem pr t rregulluar kalimet ne shume paisje, sipas nj
rregulli t $aktuar.
!a"aresisht se ku ndodhet fi'ikisht, =(, kontrolleri ka akses me sistem bus#in duke
mos u "arur nga *!+, si$ tregohet ne fig.7#M. ,jo prmban disa regjistra t $ilt mund t
shkruhen dhe t le%ohen nga *!+. )eto prfshijne nj adrese regjistr pr memorien, nj
byte pr numrator regjistrin dhe nj ose me shume rregjistra kontrolli. .regjistrat e
kontrollit spe$ifikojne portat 6/: qe do t prdoren, drejtimin e transferimit (le%imin nga
paisjet 6/: ose shkrimin ne paisjet 6/:), njsin e transferimit (byte ne nj $ast t kohes ose
fjale ne nj $ast t kohes) dhe numrin e byte"e, qe do transmetohen ne nj "rull.
!r t shpjeguar se si punon =(,, le t shikojme ne fillim se si le%on nj disk kur nuk
prdoret =(,. Ne fillim kontrolleri le%on blloqet ne menyre seriale nga dri"eri, bit pr
bit, derisa i gjithe blloku sht ne pjesen e jashtme t bufferit t kontrollerit. (e pas ai
llogarit n qoft se sht bere ndonj gabim gjat le%imit. =he me pas kontrolleri
shkakton nj interrupt. )ur sistemi operati" fillon, ai mund t le%oj disk bllokun nga
bufferi i kontrollerit me byte ose fjale pr nj $ast kohe duke ek'ekutuar nj loop, me do
le%im ne menyre t prseritur t byte"e ose fjale"e nga rregjistrat e kontrollerit t paisjes
ne memorien kryesore.
)ur prdoret =(,, pro$edura ndryshon. Ne fillim *!+ programon kontrollerin =(,
duke i "endosur rregjistrat e saj dhe keshtu e di se ku dhe $fare do transportoj. ,jo
gjithashtu i jep nj komand disk kontrollerit duke i treguar atij t le%oj t dhenat nga
disku ne bufferin e jashtm dhe t "erifikoj $heksum#in. )ur t dhenat e "lefshme jane ne
bufferin e disk kontrollerit, =(, mund t nisi.
)ontrolleri =(, nis transfertn duke dhene nj kerkes le%imi neprmjet bus#it pr dis
kontrollerin (hapi H). )jo kerkes pr le%im duket njsoj si do kerkes tjetr pr le%im dhe
disk kontrolleri nuk e di ne se kjo kerkes po "jen nga *!+#ja ose nga kontrolleri =(,.
,dresa e memories ku do t shkruhet sht ne busin e adresa"e dhe keshtu kur disk
kontrolleri kap fjalen tjetr pr t shkruajtur nga bufferi i jashtm, di se ku ta shkruaj at.
!r t shkruajtur ne memorie sht nj tjetr $ikel standart busi (hapi 9). )ur prfundon
shkrimi, disk kontrolleri dergon nj sinjal a$k disk kontrollerit neprmjet busit (hapi M).
)ontrolleri =(, in$rementon adresen e memories pr t prdorur dhe de$rementon
numeruesin e byte#"e. Ne se numeruesi i byte#e"e sht me i madh se 'ero, prsritet
hapi i dyt dhe i katrt derisa numeruesi behet 'ero. Ne ket kohe, kontrolleri =(, i
dergon nj interrupt *!+ pr ti bere t ditur qe transferimi tashme u krye. )ur sistemi
operati" fillon, ai nuk ka pse t kopjoj disk bllokun ne memorie sepse ai gjendet tashme
aty.
)ontrollerat =(, ndryshojne shume ne sofistikimin e tyre. (e i thjeshti prej tyre
prballon nj transfert ne nj $ast t kohes. -lojet e tjera me komplekse mund t
programohen qe t prballojne shume transferta njeheresh ne nj $ast kohe. )ontrollera
t tille kane paisje paralele t rregjistra"e t jashtm, nga nj pr do kanal. *!+ fillon
loading#un pr do paisje t rregjistra"e me parametrat e prshtatshem qe do t transferoj.
!asi do fjale sht transmetuar (hapi H deri ne M) ne fig.7#M, kontrolleri =(, "endos se
$iles paisje do ti sherbej. ,jo mund t prdori disa algoritma t $aktuar si round#robin ose
mund t prdorin prioritet ku nj paisje ka prioritet me t lart se tjetra e keshtu me
rradhe. )erkesat e shumta drejt kontrollera"e t paisje"e t ndryshme mund t "aren nga
e njjta kohe, duke parashikuar se atje sht nj menyre e qart pr t ndare a$k menjane.
@akonisht linja t ndryshme a$k ne bus prdoren pr do kanal =(, pr ket arsye.
1hume buse mund t operojne ne dy formaJ forma nj fjale pr nj $ast kohe dhe forma
ne bllok. =isa kontrollera =(, mund t operojne ne forma t tjera. Ne formen e pare
opera$ioni sht si$ prshkruhet me poshtJ kontrolleri =(, kerkon pr transfertn e nj
fjale dhe e merr at. Ne se edhe *!+ e kerkon busin athere atij i duhet t pres. )y
mekani'em quhet $ikli 6 "jedhjes sepse kontrolleri i paisjes "jedh nj $ikel busi t
rastesishem nga *!+. Ne formen me blloqe kontrolleri =(, i thot paisjes t siguroj nj
bus, leshon nj seri transfertash dhe me pas liron busin. )jo forme e t "epruari quhet
burst mode. ?sht me efi$ente se $ikli 6 "jedhjes sepse t marresh nj bus kerkon kohe
dhe shume fjale mund t dergohen me t njjtin $mim si nj marrje busi. ,na negati"e e
kesaj metode sht qe mund t bllokoj *!+ dhe paisje t tjera pr nj kohe t
konsiderueshme ne se nj burst i gjat mund t jet duke u transportuar.
Ne ket model qe po flasim, shpesh here i quajtur fly-by mode, kontrolleri =(, i tregon
kontrollerit t paisjes t transferoj te dhena direkt e ne memorien kryesore. Nj forme
alternati"e qe prdorin disa =(, sht qe t kene disa kontrollera paisjesh qe ti
dergojne fjale kontrollerit =(, i $ili me "one i $akton nj kerkese pr t shkruajtur
fjalen atje ku sht nisur pr t shkuar. )jo skeme kerkon nj $ikel busi ekstra pr do
fjale qe do transmetohet por sht me fleksible pr sa i prket kopjimit paisje me paisje
dhe kopjimit memorie me memorie.
1humi$a e kontrollera"e =(, adresat e shtreses fi'ike pr transfertat e tyre. !r t
prdorur adresat fi'ike sistemi operati" duhet t bej prkthimin nga adresa "irtuale ne at
fi'ike dhe ta shkruaj at ne rregjistrat e adreses se kontrollerit =(,. Nj skeme
alternati"e e prdorur ne disa rregjistra adresash t kontrollerit =(, sht qe t shkruaj
adresat "irtuale ne kontrollerin =(,. =he me pas kontrolleri =(, i duhet t prdori
((+ pr t bere prkthimin nga adresa "irtuale ne at fi'ike.
(e pare prmendem qe disku le%on t dhenat ne busin e tij t jashtm prpara se t filloj
=(,. Au mbase pyesni "eten pse kontrolleri nuk i dergon menjehere bytet ne memorjen
kryesore sapo i merr ato nga disku. (e fjale t tjera pse i duhet nj buffer 6 jashtmU !r
ket ka dy arsye. Ne fillim duke bere bufferimin e jashtm kontrolleri i diskut "erifikon
$heksumin prpara se t nis nj transfert. Ne se $heksumi sht i parregullt, sinjali'ohet
nj error dhe transferimi nuk kryhet.
,rsyeja e dyt sht qe bitet "ijne nga disku me t njjtn shpejtsi pa"aresisht ne se
kontrolleri sht gati pr to ose jo. Ne se kontrolleri do mundohet t shkruaj t dhena
direkt ne memorie ai do t ndryshonte sistemin e busit pr do fjale t transmetuar. Ne se
busi sht i 'ene me disa paisje t tjera, kontrollerit i duhet t pres. Ne se fjala e rradhes
"jen prpara se fjala qe ka rradhen pr t ardhur, kontrollerit i duhet qe ta ruaj at diku.
Ne se busi sht i 'ene, kontrolleri mund t prfundoj marrjen e fjale"e t "ogla dhe t
ket nj administrim t plot pr ta bere po aq mire. )ur blloku sht bufferuar jasht,
nuk ne"ojitet busi derisa t nis =(, dhe keshtu ndertimi i kontrollerit sht me i
thjesht, sepse transferimi =(, pr ne memorie nuk sht time $riti$al. (=isa kontrollera
t "jetr, ne fakt shkojne direkt pr ne memorie, por kur busi ishte shume i 'ene nj
transfert mund t mos kryhej.)
Ao t gjithe kompjuterat prdorin =(,. )jo shpjegohet se *!+ sht shume me e shpejt
se kontrolleri =(, dhe mund ta bej punen shume me shpejt. Ne se nuk do t ket pune
t tjera pr t bere, duke pasur nj *!+ t shpejt dhe nj kontrollues =(, t a"asht
nuk do t kishte kuptim.
5.1.5 Interrupts Revisited
Ne shkurtimisht i prshkruam interruptet ne 1e$. &.M.9, por ka akoma shume pr t thene.
Ne nj sistem t nj kompjuteri personal, struktura e interrupte"e jepet si ne /ig.7#7.
Ne ni"eli hardware interruptet punojne si me posht. )ur nj paisje 6/: prfundon punen
qe i sht $aktuar, ajo shkakton nj interrupt. ,jo e bn ket duke kerkuar nj sinjal ne
nj linje busi t $aktuar. 1injali kapet nga $ipi i kontrollerit t interrupte"e, i $ili me pas
"endos se $fare t bej.
Ne se nuk ka interrupte t tjere, kontrolleri i interrupte"e prpunon menjehere
interruptin. Ne se ndonj tjetr sht ne progres ose nj paisje tjetr ka bere nj kerkes me
prioritet t lart, paisja injorohet pr momentin. Ne ket rast ajo "a'hdon t kerkoj nj
sinjal interrupti ne bus derisa ajo t sherbehet nga *!+.
!r t prballuar interruptet, kontrolleri "endos nj numer ne linjn e adresa"e qe t
spe$ifikoj se $ila paisje do kujdes dhe kerkon nj sinjal qe t shkaktoj interrupt ne *!+.
1injalet e interruptit detyrojne *!+ t nderpres at qe po bnte pr t bere di$ka tjetr.
Numri ne linjn e adresa"e prdoret si nj indeks ne nj tabel t quajtur interrupt vector
qe t sjell nj program $ounter t ri. )y program $ounter shenjon ne fillimin e
pro$edures se sherbimit t interrupte"e korrespondues. Nrap#et dhe interruptet prdorin t
njjtin mekani'em duke i pare nga kjo pike dhe 'akonisht ndajne t njjtin "ektor
interruptesh. >ektori 6 interrupte"e mund t ndodhet ne makine si nj pjese hardware ose
ne do "end t memories, me nj rregjistr *!+ qe pointon ne fillimin e tij.
!ak para se ajo t "a'hdoj ek'ekutimin, pro$edura e sherbimit t interrupte"e njofton pr
interrupt duke shkruajtur nj "lere t $aktuar ne nj nga portat 6/: t kontrollerit t
interrupte"e. )jo a$k njofton kontrollerin qe sht 6 lire pr t leshuar nj tjetr interrupt.
=isa kompjutera (t "jetr) nuk kane nj $hip kotrolleri interruptesh t $entrali'uar
prandaj do kontroller paisjesh kerkon interruptet e tij.
2ardwaret gjithmon ruajne nj informa$ion t $aktuar prpra se t nisi pro$edura e
sherbime"e. 1e $fare informa$ioni sht ruajtur dhe se ku sht ruajtur "aret shume nga
*!+ te *!+. !rogram $ounter duhet ruhet dhe keshtu qe proesi i interrupte"e duhet
mund t ristartohet. Ne anen tjetr t gjithe rregjistrat e dukshem dhe nj numer i madh i
rregjistra"e t brendshem mund t ruhen po aq mire.
Nj $eshtje tjetr sht se ku do ruhet ky informa$ion. Nj opsion sht qe ta "endosim
at ne rregjistrat e jashtm dhe sistemi operati" mund ta le%oj at sa here qe ti duhet. Nj
problem qe na lind sht qe kontrolleri 6 interrupte"e nuk mund t "erifikohet derisa i
gjithe informa$ioni 6 prshtatshem t le%ohet, "etm , n qoft se nj interrupt i dyt t
rishkruaj rregjistrin e jashtm duke ruajtur gjendjen. )jo strategji sjell nj kohe t madhe
t "dekur kur interruptet jane t $akti"i'uar dhe ndoshta interruptet mund t humbin
gjithashtu edhe t dhenat.
1i pasoj shume *!+ e ruajne informa$ionin ne sta$k. 5jithesesi edhe kjo menyre ka
problemet e saj. N nisim me pyetjenJ staku i kujtU Ne qoft se staku i rradhes sht i
prdorur ai mund t jet nj sta$k proes i prdorur. 1ta$k pointeri mund t mos jet i
njjt, gje qe mund t sjell nj gabim fatal kur hardware mundohet t shkruaj fjale ne t.
5jithashtu ai mund t pontoj ne fund t faqes. !as disa shkrimesh ne memorie, faqia tjetr
mund t kalohet dhe nj faqe gabim mund t gjenerohet. =uke patur faqe gabim qe
ndodhin gjat proesit t interrupte"e hardware, krijon nj problem t madhJ ku ta ruaj
gjendjen qe t merret me faqet gabimU
N qoft se sta$ku i kernel#it sht i prdorur ka shume mundesi qe sta$ku i pointerit t
jet i njohur dhe t pointoj ne nj pinned page. 5jithesesi swit$himi ne kernel mode mund
t sjell ndryshim ne kontekstet e ((+ dhe mund t parali'oj shume ose t gjitha $a$he
dhe N-;. =uke riloaduar t gjithe ket, ne menyre statike ose dinamike mund t rrisi
kohen pr t proesuar nj interrupt dhe kjo do t sjell humbjen e kohes se *!+.
Nj problem tjetr lind ngaqe shume *!+ moderne punojne ne pipeline dhe 'akonisht
jane supers$ale (paralel ne brendesi). Ne sistemet e "jetra, pas do instruksioni
prfundonte ek'ekutimi, mikroprogrami ose hardware shikonte ne se kishim ndonj
interrupt t ngelur pe'ull. Ne se po, program $ounteri dhe !13 shtyheshin pr ne sta$k
dhe fillonte sekuen$a e interrupte"e. !asi ek'ekutohet interrupti, proesi i anasjellt
ndodh dhe !13 e "jetr dhe program $ounteri bejne pop nga sta$ku dhe proesi i
ardhshem "a'hdon.
)y model tregon qe, n qoft se nj interrupt ndodh mbas disa instruksione"e, t gjithe
instruksionet duke prfshire dhe at instruksion, ek'ekutohen plotsisht, dhe asnj
instruksion mbas atij nuk ek'ekutohet. Ne nj makine t "jetr kjo gje ka qene gjithmone
e "lefshme. Ne makinat moderne mund t mos jet me.
!r t nisur, konsideroni modeli pipeline ne fig.&#D(a). *fare ndodh kur kerkohet nj
interrupt nderkohe qe pipeline sht i ngarkuar (rasti 6 'akonshem)U 1hume instruksione
jane ne fa'a t ndryshme ek'ekutimi. )ur ndodh nj interrupt, "lera e program $ounter
nuk mund ta pasqyroje kufirin e sakt midis nj instruksioni t ek'ekutuar dhe t nj
instruksioni t pa ek'ekutuar. ,jo pasqyron adresen e instruksionit tjetr pasardhes qe do
t merret dhe do t "endoset ne pipeline, sesa adresen e instruksionit i $ili sapo u
ek'ekutua nga njsia e ek'ekutimit.
.rjedhimisht mund t jet nj kufi i mire pr$aktuar midis instruksione"e t $ilit sapo
jane ek'ekutuar dhe t atyre t $ilit presin pr tu ek'ekutuar, por hardware mund t mos e
njohi ket. )ur sistemi operati" kthehet nga nj interrupt, ai nuk mund t nisi direkt
mbushjen e pipeline nga adresa e ruajtur ne program $ounter. ,jo duhet t tregoj se pr
$fare duhej instruksioni qe sapo u ek'ekutua, 'akonisht sht nj pune komplekse qe
duhet pr t anali'uar gjendjen e makines.
Ndone se kjo situate ishte e keqe, interruptet ne nj makine superskalare, si ato ne
fig.&.D(b) jane akoma me keq. Ngaqe instruksionet mund t ek'ekutohen jo sipas nj
rradhe, nuk mund t ket nj kufi t mire pr$aktuar midis nj instruksioni t ek'ekutuar
dhe t nj instruksioni t pa ek'ekutuar. (und t ndodh qe instruksionet &,H,9,7, dhe L t
jene t ek'ekutuar dhe instruksionet M,D,C,G dhe &8 mund t mos jene ek'ekutuar.
!rogram $ounter mund t pointoj ne instruksionin G, &8 ose &&.
Nj interrupt qe le makinen ne nj gjendje t mire pr$aktuar quhet interrupt pre$is. Nj
interrupt ka katr karakteristikaJ
&. !* (program $ounter) ruhet ne nj "end t njohur.
H. N gjithe instruksionet para se t pointohet 6 pari nga !*, kane ek'ekutim t plot.
3. ,snj instruksion pasi sht pointuar 6 pari nga !*, ka qene i ek'ekutur.
M. 5jendja e ek'ekutimit t nj instruksioni t pointuar nga !* sht e njohur.
1henojme qe nuk ka asnj ndalim pr instruksionet pasi 6 pari sht pointuar nga !* qe
nga fillimi. Bdo ndryshim qe bejne pr tu rregjistruar ose pr tu memori'uar, duhet t jet
6 prfunduar prpara se t ndodh nj interrupt. ?sht e lejuar qe instruksioni i pointuar t
jet i ek'ekutuar. 5jithashtu sht e lejuar qe instruksioni i pointuar t mos jet i
ek'ekutuar. 5jithesesi, duhet t jet e qart se $ila forme kerkohet. @akonisht, n qoft se
kemi nj interrupt pr 6/:, instruksioni nuk duhet t ket nisur akoma. N qoft se
interrupti sht nj trap ose page fault, athere !* do t pointoj te instruksioni qe
shkaktoi fault#in keshtu qe ai mund t ristartoj me "one.
Nj interrupt qe nuk plotson keto kerkesa quhet interrupt jo pre$i' dhe ja n%in jetn
atyre qe programojne sisteme operati"e, t $ilt duhet t "rasin mendjen se $fare ndodhi
dhe se $fare pritet t ndodhi. (akinat me interrupte jopre$i'e n%jerrin nj numer t madh
gjendjesh t brendshme mbi sta$k#un pr ti dhene sistemit operati" mundesi t 'buoje se
$fare po ndodh. =uke ruajtur nj numer t madh informa$ionesh ne memorie pr do
interrupt, do t kerkonte nj kohe t madhe. )jo do t sillte nj situate ironike, pasi do t
kishim *!+ superskalare shume t shpejta t $ilat jane t paprshtatshme pr t punuar
me interrupte t a"asht.
=isa kompjutera jane ndertuar ne menyre t tille ku disa interrupte dhe trap jane pre$i'e
dhe t tjere jo. =isa makina kane nj bit i $ili setohet pr ti detyruar t gjithe interruptet t
jene pre$i'. ,na e keqe e kesaj sht se ajo do t detyroj *!+ qe t log#oj do gje qe po
bn dhe t ruaj nj kopje t rregjistra"e ne menyre qe t gjeneroj nj interrupt pre$i' ne
do moment. gjithe kjo ka nj ndikim t madh ne performan$e.
=isa makina superskalare, si$ jane !entium !ro dhe t gjithe pasardhesit kane interrupte
pre$i'e pr t lejuar programet e "jetr t 9LD, MLD dhe !entium &, qe t punojne ne
menyre t rregullt. *mimi qe paguhet pr t patur interrupte pre$i'e nuk sht ne kohe,
por ne kompleksitetin e $hipe"e dhe t arkitektures. N qoft se nuk do t prdoreshin
interrupte pre$i'e mund t ndertoheshin $hipe t tille qe do t sillnin nj *!+ me
shpejtsi shume t madhe. Nga ana tjetr interruptet jopre$i'e do t bnin sistemin
operati" me kompleks dhe me t a"asht, keshtu qe e kemi t "eshtire pr t treguar se
$ila nga keto sht me e mire.
5.2 Parimet e software I/O
-e ta leme hardware 6/: dhe t shikojme software 6/:.
/ilimisht do t shqyrtojme synimet e software 6/:, pastaj menyrat e ndryshme qe 6/:
mund t beje nga pikepamja drejtuese.
5.2.1 Synimet e software I/O
Nj $eles ky$ ne synimet e software 6/: sht i njohur si pajisje e pa"arur.)jo do t thot
qe do t jet e mundur t shkruash programe qe kane mundesi hyrjeje ne ndonj pajisjeje
6/: pa dashur t pr$aktosh pajisjen me t rendesishme.
!r shembull nj program qe i $ili le%on nj dosje si informa$ion duhet t jet ne gjendje
ne disket, ne hard disk ose ne *= .:(, pa dashur t ndryshoje programin pr pajisje t
ndryshme.
5jithashtu duhet t jet ne gjendje t shkruaje nj komande t tille siJ
Sort<input>output
=he t punoje me informa$ionin qe del nga nj disket, 6= disk, 1*16 =61) ose nga
tastiera, dhe prpunimi i t dhena"e del nga $faredo lloj disku ose ne ekran.
6 takon sistemit operati" (drejtues) t merret me problemet e shkaktuara nga fakti se keto
pajisjeje jane "ertet t ndryshme dhe kerkojne komanda sekuen$ash t ndryshme pr ti
le%uar apo shkruar.
.elati"isht shume afer me pajisjen e pa"arur sht uniform naming.
mri i nj dosje ose i nj pajisjeje do t jet thjesht nj "arg ose nj numer i plot dhe nuk
duhe t "aret pr asnj arsyeje nga pajisja.
Ne UNIX t gjithe disqet mund t integrohen ne hirarkine e sisteme"e t larta ne menyre
arbitrare, ne menyre qe prdoruesi t mos dij $fare emri i prket do pajisjeje.
!r shembullJ nj disket mund t qendroje ne direktorine usr$ast$backup keshtu qe ne
"end qe t kopjosh nj dosje ne usr$ast$backup$mon,ay e kopjon filein ne disket.
Ne ket menyre t gjitha dosjet dhe pajisjet jane adresuar ne t njjtin "end, ne nj emer
t "etm.
Nj tjetr emertim pr software 6/: eshte error handling (trajtim gabimesh). Ne
prgjithesi gabimet duhet t trajtohen sa me afer hardware qe t munden. Ne se
kontrolluesi 'bulon nj gabim ne le%im, ne se mundet, duhet t prpiqet ta rregulloje
"et. Ne se jo athere duhet t merret pajisja drejtuese, ndoshta "etm duke u prpjekur t
le%oje prseri bllokimin (gabimin). =isa gabime ndodhin rastesisht, si pr shembullJ
gabim le%imi i shkaktuar ne fillim dhe fshihet ne se "eprimi prsritet. >etm ne se lower
layers (pjesa e poshteme) nuk sht ne gjendje ta 'gjidhe problemin, i duhet t informoje
pjesen e siprme. Ne se disa raste gabimet mund t behen me shume ne ni"elin e
poshtm, jo ne ni"elin e siprm edhe pse e di gabimin.
Nj tjetr emertim i rendesishem sht sinkron (bllokues) ose anasjellta, "ersioni i
asinkroni'uar (nderprerje#drejtimi) ne transferime. Ne t shumtn e raste"e 6/: sht i
pasinkroni'uar. *!+ fillon transferimin dhe kalon t di$ka tjetr, derisa t "ij interrupti.
!rdoruesit e programe"e e kane me t leht t shkruajne ne se proeset e 6/: jane t
bllokuara, pas nj thirrje t sistemit le%ues, programi automatikisht nderpritet derisa t
dhenat ne dispo'i$ion ruhen ne kujtese. 6 takon sistemit drejtues t bej "eprime qe jane
aktualisht nderprerje Kdrejtimi, t shohe bllokimet ne prdorimin e programit.
Nj tjetr emertim pr software 6/: sht kujtesa. 1hpesh t dhenat qe "ijne ne pajisje
nuk mund t ruhen menjehere ne "endin e tyre prfundimtar. !er shembull, kur nj pako
"jen ne rrjet, sistemi drejtues nuk di ku ta "endose derisa ta ruaje diku dhe ta "erifikoje.
5jithashtu disa pajisje kane shume detyrime pr shembullJ pajisjet di%hitale audio, keshtu
qe t dhenat duhet t "endosen ne kujtesen e prpunimit t t dhena"e, ne a"anta'h t
lidhe kategori ne t $ilen kujtesa eshe plotsuar, akumuluar nga kategori t tjera, si
rregull, &8 sht numri qe ka kujtesa. )ujtesa prmban kopje t konsiderueshme dhe
shpesh ka nj ndikim t madh ne kryerjen e 6/:.
)on$epti i fundit qe do t prmendim i dedikohet pajisje"e. =isa pajisje 6/: si$ jane
disqet,mund t prdoren nga prdorues t ndryshem ne t njjtn kohe. Nuk shkaktohen
probleme ne se prdorues t ndryshem kane hapur dosje ne t njjtin disk, ne t njjtn
kohe. !ajisje t tjera si$ janeJ shiritat drejtues, duhet t kene nj prdorues t "etm derisa
ai t ket mbaruar. !astaj, nj prdorues tjetr mund t ket shiritin drejtues. =y ose me
shume prdorues t shkrimit t bllokime"e t ndryshme rastesisht ne t njjtin shirit,
prfundimisht nuk mund t funksionoje.
Njohja me pajisjet gjithashtu paraqet nj sere problemesh si$ jane pengesat. !rseri
sistemi drejtues duhet t jet ne gjendje t kryeje t dyja funksionet, dhe ti prkushtohen
pajisjes ne nj menyre qe t shmange problemet.
5.2.2 Programimi I/O
)a 9 menyra t rendesishme, t ndryshme me t $ilat mund t shfaqet 6/:. Ne
ket pjese t paren (programmed I/O). Ne t dy pjest e tjera do t anali'ojme t
tjera nderprerje t pajisje"e 6/: duke prdorur =(,
/orma me thjesht e 6/: sht qe t ket *!+ pr t funksionuar. )jo metode
sht quajtur programimi 6/:. ?sht shume e thjesht t ilustrosh programin 6/:
neprmjet nj shembulli. (arrim nj prdorues proesi qe do t printoje "argun
prej D shkronjash \, ; * = / 5\ ne printer. /illimisht grupon "argun ne nj
kujtese ne hapsiren prdoruese si$ tregohet ne fig. 7.D (a)

!astaj prdoruesi i proesit ne seleksionimin e bere nga nj nj sistem qe prdoret
pr ta hapur at.
Ne se printeri ne moment sht ne prdorim nga nj proes tjetr, ky proes do t
deshtoje dhe t kthehet ne gabim kodi ose t bllokohet derisa printimi t
reali'ohet duke u mbshtur ne sistemin drejtues dhe ne parametrat e kerkuara.
)ur printimi t behet, prdoruesi i proesit krijon nj sistem pr ti dhene
komanden sistemit drejtues t printoje "argun ne printer.
!astaj sistemi drejtues 'akonisht kopjon kujtesen ne nj informa$ion thot ppN ne
hapsiren kryesore, ku sht me e leht hyrja (sepse hapsira kryesore i duhet t
nderroje hartn e kujteses pr t marre nj hapesire prdorimi).
!astaj kontrollon ne se printeri momentalisht sht gati. Ne se jo duhet t prese
derisa t behet gati. )ur printeri t jet gati sistemi drejtues kopjon shkronjn e
pare ne manualin e t dhena"e t regjistruara, ne ket shembull duke prdorur
hartn kujtese 6/:. )y "eprim akti"i'on printerin. 1hkronja nuk mund t shfaqet
akoma sepse disa printojne kujtesen ose faqen e rradhes prpara se t printoje do
gje tjetr.
(egjithat ne fig 7.D (b) shohim qe shkronja e pare sht printuar dhe pastaj
sistemi ka shenuar \;\ si shkronjn pasardhese pr tu printuar.
!asi ka kopjar shkronjn e pare ne printer, sistemi drejtues kontrollon ne se
printeri sht gati t printoje nj shkronj tjetr. Ne prgjithesi printeri ka nj
regjistr t dyt qe i jep at gjendje. )ryerja e shkrimit ne t dhenat e regjistruara
bn qe printeri t mos jet gati.
)ur kjo t ndodhe, printohet shkronja tjetr, si$ tregohet ne fig 7.D ($).
)jo pro$edure "a'hdon derisa t printohet gjithe "argu. !astaj kontrolluesi
kthehet t proesi i prdoruesit "eprimet e bera (kryera) nga sistemi drejtues jane
prmbledhur ne fig 7.C.
/illimisht t dhenat kopjohen ne kernel. !astaj sistemi operati" fillon proesin e
prpunimit t te dhena"e t do shkronj me radhe. ,spekti kryesor i programit
6/:, i ilustruar qart ne ket figure sht se pasi prpunon nj shkronj, *!+
kontrollon "a'hdimisht pajisjen ne se sht gati t pranoje nj tjetr. )y "eprim
shpesh sht quajtur polling ose busy waiting.

!rogramimi 6/: sht i thjesht por ka nj disa"anta'h, *!+ punon pa pushim
derisa t gjithe 6/: t ken mbaruar. Nese koha per te EprintuarF nje karakter eshte
shume e shkurtet (sepse gjith$ka qe nje printer ben eshte te kopjoje karakterin ne
nje buffer te brendshem), me pas busy waiting kalon ne maje. 5jithashtu ne nj
sistem t nderfutur, ku *!+ nuk ka $fare t beje tjetr, busy wating eshte me
funksionale. (egjithat ne shume sisteme t nderlikuara ku *!+ bn pune tjetr
busy wating nuk funksionon. ?sht e ne"ojshme nj metode me e mire 6/:.
5.2.3 Nderprerjet drejtuese
-e te shqyrtojme rastin e printimit ne nj printer i $ili nuk $on $do karakter ne buffer por
printon se$ilen kur "jen. Ne se printeri printon &88 karaktere/sekonde, do shkronj i
duhet &8 mse$ per tu printuar. )jo do t thot se pasi do shkronj sht shkruar ne
regjistrin per printimin e te dhena"e, *!+ nuk punon pr &8ms dhe pret konfirmimin qe
t prpunoje t dhenat e shkronjs tjetr. )jo sht nj kohe mese e mjaftueshme pr t
'gjuar dhe eg'ekutuar disa pro$ese te tjera ne keto &8 mse$, qe do te ishin gjithsesi te
humbura.
(enyra me e mire qe *!+ t punoje nderkohe qe pret printimin t behet gati sht t
prdore interruptet. )ur thirrja sistem per te printuar string eshte kryer, bufferi eshte
kopjuar ne hapesiren kernel, si$ e treguam me sipr dhe shkronja e pare kopjohet ne
printer menjehere sapo ai deshiron te pranoje nje karakter. Ne ket moment *!+ therret
s$heduler dhe disa pro$ese te tjera qe jane duke "epruar. !roesi qe ka kerkuar printimin
e "argut bllokohet derisa i gjithe "argu t jet printuar. !una e kryer nga thirrja sistem
sht treguar ne fig 7.L (a).
)ur printeri ka printuar nj shkronj dhe sht bere gati pr t pranuar shkronjn tjetr
gjenerohet nj interrupt. )y interrupt ndalon proesin qe eshte duke u eg'ektuar dhe e
ruan ne at gjendje. !astaj eg'ekutohet pro$edura per sherbimin e interrupte"e, nj
menyre paraqitjeje e paprpunuar e ketij rregulli sht treguar ne fig 7.L (b). Ne se nuk ka
me shkronja pr t printuar, 'oteruesi i interrupte"e kryen disa "eprime per te bere akti"
perdoruesin. !rndryshe, ai n%jerr karakterin tjeter, pranon interruptet dhe kthehet tek
pro$esi qe ishte duke "epruar para se te ndodhte interrupti, duke "a'hduar nga aty ku
ishte nderprere.
5.2.4 Programi I\O duke prdorur DMA.
Nj di'a"anta'h i qart i interrupt#dri"en 6/:, sht se nj interrupt ndodh ne do
shkronj. 6nterruptet duan kohe, keshtu qe kjo skeme humbet njfare kohe nga ajo e
*!+#se. Nj 'gjedhje sht qe t prdoresh =(,. 6deja sht t lejosh kontolluesin e
=(,#se t "endose shkronjat ne printer nj nga nj, pa ju dashur t nderhyje *!+. Ne
thelb, =(, sht program 6V:, "etm me kontrolluesin e =(, behet puna, ne "end t
*!+se. Nj ski$e e ketij rregulli sht dhene ne fig 7.G.
1uksesi me i madh i =(,#se sht ulje e numrit t interrupte"e, nga nj pr do
shkronj, ne nj ne bufferin e pare. Ne se ka disa shkronja dhe nderprerje ato jane t
"ogla, kjo mund t jet nj arritje e madhe. Nga ana tjetr kontrolluesi =(, sht shume
me i ngadalt se *!+. Ne se kontrolluesi =(, nuk sht ne gjendje t drejtoje pajisjen
ne shpejtsine e duhur, ose *!+ 'akonisht nuk ka $fare t beje nderkohe qe pret per
=(,#interrupt, pastaj interrupt#dri"en 6V: ose edhe programi 6V: mund t jet me i mire.
5.3 SHTRESAT E SOFTWARE- it t I/O
1oftware#i 6/: 'akonisht merret si i prber nga M shtresa, si$ tregohet dhe n fig. 7#&8.
Bdo shtres ka nj funksion t mir pr$aktuar per te reali'aur dhe nje nderfaqe te mire
per$aktuar me shtresat ngjitur. /unksionimi dhe ndrfaqja ndryshojn nga nj sistem n
tjetrin, kshtu q diskutimi q do pasoje, i $ili shqyrton te gjithe shtresat qe nisin nga
fundi nuk sht spe$ifik "etm pr nj lloj makine.
5.3.1 Prgjegjsit e Interrupt-eve
!r pjesn m t madhe t paisje"e 6/:, interrupet jan nj fakt i padshirueshm q
sOmund t shmanget. ,to duhet t fshihen n ni"elet m t ulta t sistemit operati", n
mnyr q ky i fundit t dij sa m pak pr to. (nyra m e mir pr ti fshehur ato sht
posedimi i nj dri"er#i q ti bllokoj ato derisa 6/: t prfundoj punn e "et dhe m pas
interrupet mund t "a'hdojn. =ri"eri mund t bllokoj "eten e "et n mnyr t
ngjashm si$ ndodh me semaforin, duke pritur n ba' t nj "ariabli t kushte'uar ose te
marr nj mesa'h.

+ser#le"el 6/: software

=e"i$e#independent operating system software
=e"i$e dri"ers
6nterrupt handlers
2ardware
fig.5-10. 1htresat e sistemit software 6/:.
!r shembullJ )ur ndodh nj interrupt, pro$edura e tij bn detyrn e "et n mnyr q t
arrij qllimin. ( pas ajo mund ta 'hbllokoj dri"erin q e filloi at.
N disa raste ai mund t "eproj sipas semaforit dhe n disa raste t tjera mund t prdor
nj "ariabl t kushte'uar duke afishuar sinjalin e tij n nj monitor. =he n raste t tjera
drgon nj mesa'h tek dri"eri i bllokuar. N t gjitha rastet efekti i prgjithshm i nj
interrupti sht 'hbllokimi i dri"erit q ishte i bllokuar. )y model sht shum i
prshtatshm kur dri"er#at jan strukturuar si proese kernel, me sti"at, stak#et dhe
program $ounter#in e tyre.
1igurisht q n realitet nuk sht aq e thjesht. !rpunimi i nj interrupti nuk sht t
marrsh interruptin, ti bsh nj ~up n semafor dhe m pas me ann e ek'ekutimit t
instruksionit IRET t kthehemi nga interrupti tek proesi i mparshm. ?sht nj pun
shum m e madhe e 1istemit :perati" pr t mena%huar interrupt#et. Nani le t japim
nj seri hapash duhet te kryhen ne software pasi interrupti hardware ka prfunduar. =uhet
t kemi parasysh q detajet e msiperme pr shembull jan shume ne "aresi te sistemit,
kshtu q disa nga hapat mund te mos jene te ne"ojshme ne makina t "e$anta. 5jithashtu
kto hapa do ti gjejm t renditura ndryshe n makina t ndryshme.
&# .uajtja e disa rregjistra"e (prfshir dhe at !13), q nuk jan ruajtur
nga hardware i interrupte"e.
H# !r$aktimi i nj konteksti pr pro$edurn e shrbimit t interrupte#"e.
)tu mund t prfshihet dhe pr$aktimi i N-;, ((+ dhe i page table.
9# !r$aktimi i nj staku pr pro$edurn e shrbimit t interrupte#"e
M# Njohja e kontrolluesit t interrupte#"e. N se nuk ka kontroller
interruptesh qndror, bhet riakti"i'imi i interrupte#"e.
7# )opjimi i rregjistra"e nga ku ishin ruajtur (me shum mundsi n
ndonj stak) tek tabela e proese"e.
D# k'ekutimi i pro$edurs s shrbimit t interrupte#"e, e $ila do t
n%jerr informa$ion nga rregjistrat e kontrollit t paisjes t interrupte#
"e.
C# @gjedh se $ili proes do ek'ekutohet n "a'hdim. N se interrupti
kishte ndrprer m prpara nj proes me prioritet t lart, sht m e
mundshme q ky proes t ek'ekutohet pas interruptit.
8- >endos kontekstin e ((+ pr proesin q do ek'ekutohet n
"a'hdim. (und t duhet dhe nj Eset upF pr N-;.
G# Ngarkon rregjistrat e rinj t proesit duke prfshir dhe !13.
&8# /illon ek'ekutimin e proesit t ri.
1i$ mund t shihet proesi i interrupt#e"e sht i rndsishm. ,i krkon gjithashtu nj
numr t konsiderueshm instruksionesh *!+#je, sidomos n makinat ku memorja
"irtuale sht pre'ent. N disa makina N-; dhe *,*2 kan ne"oj t mena%hohen
gjat kohs s kalimit nga mode kernel n at user, e $ila krkon $ikle makin shtes.
5.3.2 Driver-at e paisjeve

!ak m sipr pam se $Ofar bnin kontrollert e paisje"e. !am q do kontroller ka disa
rregjistra paisjesh, q shrbejn pr t dhn komandat e "eta ose disa rregjistra paisjesh,
q shrbejn pr t le%uar gjendjen e tij ose pr ti br q t dyja njkohsisht. Numri i
regjistra"e t paisje"e dhe natyra e komanda"e ndryshojn n mnyr radikale nga nj
paisje n tjetrn. !r shembull, dri"er#i i mouse duhet t marr informa$ion nga "et
mouse#i, q ti tregoj sa ka l"i'ur dhe $ilt jan butonat q jan shtypur. N kontraste
me kt nj dri"er disku duhet t dij pr sektort, tra$k#et, $ilindrat, kokat, kohn e
"endosjes s koka"e, si dhe pr shum mekani'ma t tjer q bjn t mundur
mirfunksionimin e diskut. 1i$ shihet, kto dri"era do jen t ndryshm nga njri#tjetri.
1i rrjedhim do paisje 6/: e lidhur me nj kompjuter krkon nj kod t "e$ant pr ta
kontrolluar at. )y kod i quajtur dri"er paisjeje, prgjthsisht sht shkruar nga prodhuesi
i paisjes dhe sht i bashkangjitur me paisjen. =uke qn se do sistem operati" krkon
dri"er#at e "et, prodhuesit e paisje"e ndrtojn dri"era spe$ifik pr sisteme t ndryshme
operati"e (pr ata q jan m popullor).
Bdo dri"er normalisht prgjigjet "etm pr nj lloj paisjeje, ose maksimumi pr nj
bashksi paisjesh t ngjashme me njra#tjetrn. !r shembull, nj dri"er disku 1*16 mund
t prgjigjet pr nj sasi t madhe disqesh 1*16 t $ilt mund t ken madhsi dhe
shpejtsi t ndryshme, dhe ndoshta t prgjigjet pr nj *=#.:( 1*16. Nga ana tjetr
nj mouse dhe nj joysti$k jan aq t ndryshm saq duhen dri"era komplet t ndryshm
pr se$ilin. 5jithsesi nuk ka kufi'ime teknike pr sa i prket posedimit t nj lloj dri"eri
pr paisje t lloje"e t ndryshme. Nhjesht nuk sht nj ide e mir.
N mnyr q t aksesoj hardware#in e paisjes (rregjistrat e kontrollerit), dri"eri duhet t
jet pjes e kernelit t sistemit operati". ,ktualisht sht e mundur q t di'enjohen
dri"er#a q punojn n hapsirn user me thirrje sistemi pr t le%uar dhe shkruar
rregjistrat e paisjes. N fakt ky di'enjim do ishte nj ide e mir, ku do i'olohej kerneli
nga dri"er#at dhe dri"er#at nga njri#tjetri. )jo do t eleminonte burimin ku do lindnin
shum Wprplasje sistemO (dri"era q n nj mnyr ose nj tjetr interferojn me
kernelin). (egjithat duke qn se n sistemet e sotme operati"e dri"erat ek'ekutohen n
kernel, ky sht dhe modeli q ne do marrim n konsiderate.
< n momentin q projektuesit e sisteme"e operati"e kan marr parasysh faktin q
mund t shtohen nga jasht dri"er#a (kode) q m pas t instalohen n kt sistem
operati", gjithashtu duhet krijuar nj arkitektur e prshtatshme pr kt lloj instalimi.
)jo do t thot q duhet t kemi nj model t mirpr$aktuar se $far bn nj dri"er dhe
sesi ndr"epron ky me pjesn tjetr t 1:. =ri"er#at e paisje"e 'akonisht po'i$ionohen
posht pjess tjetr t 1: si$ mund ta shohim t ilustruar n fig.7#&&.
1istemet operati"e prgjithsisht i klasifikojn dri"er#at n disa kategori. )ategorit m t
'akonshme jan block devices` (paisjet me blloqe), si$ jan disqet q prmbajn t
dhna t shumefishta t adresueshme n mnyr t pa"arur dhe character devices`
(paisjet me karaktere), si$ jan tastjerat apo printerat, t $ilat gjenerojn ose aksesojn nj
sasi t madhe karakteresh.
!jesa m e madhe e sisteme"e operati"e pr$aktojn nj standart ndrfaqje n mnyr q
t gjithe dri"erat me blloqe ta suportojn, si dhe nj standart t dyt ndrfaqje, n mnyra
q t gjithe dri"erat me karaktere ta suportojn. )to ndrfaqe konsistojn n nj numr
pro$edurash, t $ilat thirren nga pjesa tjetr e 1: n myr q dri"eri t bj detyrn e
"et. !r$edura tipike jan ato q le%ojn nj bllok (blo$k de"i$e), dhe ato pr t shkruar nj
karakter string ($hara$ter de"i$e).
N disa sisteme, 1: sht nj program i "etm binar, q prmban t gjithe dri"er#at q
duhen t jen t kompiluar n t. )jo skem ka qn standarte pr "ite n sistemet +N6R,
sepse ato ek'ekutoheshin nga qndra kompjuterike, paisjet 6/: t t $ila"e shum rrall
ndryshonin. N se shtohej nj paisje e re, sistemi administrator thjesht rikompilonte
kernelin me dri"er#in e ri duke ndrtuar nj kode binar t ri.
N fillimet e kompjutera"e personal, paisjet 6/: n to ishin t shumta n numr. )y
model nuk "a'hdoi pr shum koh. !ak prdorues jan t aft t rikompilojn kernelin,
edhe pse ndoshta mund t ken kodin burim apo modulet objekt. ( "on sistemet
operati"e, duke filluar me (1#=:1, kishin nj model ku dri"er#at ngarkoheshin n
mnyr dinamike gjat ek'ekutimit. 1isteme t ndryshme kan mnyra t ndryshme t
ngarkimit t dri"er#a"e.
Nj dri"er paisjeje ka funksione t shumellojshme. ( i rndsishmi sht t pranoj
le%im abstrakt dhe krkesa shkrimi nga softeware t pa"arur nga paisja. !or jan dhe disa
funksione t tjera q ai duhet t performoj. !r shembull, dri"er#i i duhet te ini$iali'oj
paisjen kur sht e ne"ojshme. 5jithashtu dri"eri mund t mena%hoj krkesat e fuqis s
paisjes ose mund t bj rregjistrimin e ngjarje"e.
1hum dri"era paisjesh kan struktur t ngjashme. Nj dri"er prgithsisht e fillon
punn e "et duke kontrolluar parametrat e hyrjes, pr t par n se ata jan t "lefshm.
N t kundrt kthehet nj EerrorF. N se jan t "lefshm, duhet br nj prkthim n
terma konkret. !r nj dri"er disku, kjo mund t kuptohet si marrja e nj blloku numrash
dhe "endosja e tyre n numrat kok, tra$k, sektor dhe $ilindr sipas gjeometris s diskut.
=ri"er#i mund t kontrolloj n se paisja sht n prdorim. N se sht n pun, krkesa
mund t "ihet n rradh pr prpunime t mtejshme. N se paisja nuk sht n prdorim,
ek'aminohet gjendja e hardware#it pr t par n se krkesa mund t merret parasysh
tani. Ndoshta mund t jet e ne"ojshme q paisja t ndi'et, para se transferimi t filloj.
N momentin q paisja ndi'et dhe sht gati pr pun, mund t filloj kontrolli aktual.
N kontrollosh nj paisje do t thot t ushtrosh nj sekun$ komandash n t. =ri"er#i
sht "endi ku kjo sekuen$ komandash pr$aktohet, duke u "arur dhe nga detyra q ka
pr t kryer. !asi dri"er#i di se $far komandash ka pr t ek'ekutuar, ai fillon ti shkruaj
ato n rregjistrat e kontrollerit t paisjes. !as shkruarjes s komanda"e n kontroller,
ndoshta duhet par n se ai i ka pranuar kto komanda dhe n se sht prgatitur pr t
pritur ato pasardhse. )jo sekuen$ "a'hdon derisa t gjitha komandat jan pr$aktuar.
=isa kontrollera"e mund tu jepet nj list komandash nga memorja, q ti le%ojn dhe ti
prpunojn "et pa ndihmn e sistemit operati".
!asi pr$aktohen t gjitha komandat, mund t ndodh nj nga dy situatat. N disa raste
dri"eri duhet t pres derisa kontrolleri t prfundoj ndonj pun pr t, dhe kshtu
bllokon "eten e "et derisa t "ij interrupt#i pr ta 'hbllokuar. N raste t tjera opera$ioni
prfundon pa "onesa dhe dri"eri nuk ka ne"oj t bllokoj "eten e "et. 1i shembull i
situats "ijuese, shndrrimi i ekranit n W$hara$ter modeO mund t bhet duke shkruar disa
bite n rregjistrat e kontrollerit. Nuk ne"ojiten "eprime mekanike, kshtu opera$ioni
mund t prfundoj n disa nanosekonda.
N rastin e par dri"er#i i bllokuar do t W'gjohejO nga interrupt#i. N rastin e dyt dri"eri
nuk do ishte kurr En gjumF. 5jithashtu pasi opera$ioni prfundon, dri"er#i duhet t
kontrolloj pr gabime. N se do gj sht n rregull, m pas dri"er#it mund ti duhet t
kaloj t dhna tek softi i pa"arur nga paisja (nj bllok sapo u le%ua). N fund ai kthen
nj informa$ion gjendjeje (raport gabimesh) tek thirrsi i tij. N se jan "n n rradh
krkesa t tjera, njra nga to mund t 'gjidhet dhe mund t filloj. N se nuk ka krkesa
t rradhitura, dri"er#i bllokon "eten dhe pret pr krkesn e rradhs.
)y model i thjesht sht "etm nj prshkrim n "ija t trasha i realitetit. 1hum faktor
e bjn kodin tepr t komplikuar. 6nterrupt#i mund ta bj nj dri"er t punoj.
5jithashtu ai mund t bj t punoj nj dri"er dhe kur ai sht pr momentin n pun.
!r shembull, kur dri"er#i i network#ut sht duke prpunuar nj paket hyrse, nj
paket tjetr mund t "ij. !r pasoj nj dri"er n pun duhet t pres q t thirret disa
$aste m hert se prfundimi i thirrjes s par.
N nj sistem fleksibl, paisjet mund t shtohen ose t hiqen dhe kur kompjuteri sht n
pun. 1i re'ultat kur nj dri"er sht i 'n duke le%uar nga ndonj paisje, sistemi mund
t informoj dri"er#in q prdoruesi sapo e hoqi kt paisje nga sistemi. Ao "etm q
duhet ndrprer transferimi data 6/: i momentit pa prishur strukturn e t dhna"e, por
duhen hequr n mnyr t kujdesshme dhe ato krkesa n pritje ndaj paisjes q nuk sht
m, dhe thirrs"e duhet Etu jepen lajmet e kqiaF. !r m tepr shtimi i paisje"e mund t
shkaktoj nj konfu'ion n kernel duke e br q t 'h"endos paisjet e "jetra nga dri"eri
duke i dhn atij ato t reja.
=ri"er#a"e nuk u lejohet t bjn thirrje sistem, por ata shpesh mund t ndr"eprojn me
pjesn tjetr t kernelit. !rgjithsisht thirrjet drejt pro$edura"e t $aktuara lejohen. !r
shembull, ka thirrje q shrbejn pr t alokuar dhe $Oalokuar faqe hardware t memorjes,
q prdoren si bufera. Nhirrje t tjera t ne"ojshme jan ato pr mena%himin e ((+,
kohues"e, kontrollerin e =(,, kontrollerin e interrupt#e"e, etj.
5.3.3 Software-i I/O i pavarur ndaj paisjes
(egjithse nj pjes e software#"e 6/: jan spe$ifik ndaj paisjes, pjes t tjera t tij jan
t pa"arura ndaj paisjes. =allimi i "rtet mes dri"er#a"e dhe software#"e t pa"arur
ndaj paisjes sht "arsia sistem, sepse disa funksione q mund t kryen n mnyr t
pa"arur nga paisja, pr efi$en$ ose arsye t tjera mund t kryen nga "et dri"er#at.
/unksionet e treguara n fig.7#&H jan t kryera nga software t pa"arur nga paisja.
/unksioni kryesor i softwar#it t pa"arur nga paisja sht t prformoj funksione 6/: q
jan t prbashkt pr t gjitha paisjet, dhe t prodhoj nj ndrfaqe uniforme ndaj
softwar#it t ni"elit#user. ( posht do i trajtojm n mnyr m t detajuar temat e
msiprme.
Ndrfaqja uniforme ndaj driver-ave t paisjeve
Nj detyr e rndsishme e nj sistemi operati" sht si ti bj paisjet 6/: dhe dri"er#at t
duken pak a shum njlloj. N se disqet, printerat, tastjerat, etj, jan t gjitha t
ndrfaqura n mnyra t ndryshm, sa her q "endoset nj paisje e re n pun, sistemi
operati" duhet t modifikohet sipas ksaj t fundit. =etyrimi pr t Eha$k#uarF sistemin
operati" sa her q "endoset nj paisje e re, nuk sht nj ide e mir.
Nj aspekt i ksaj detyre sht ndrfaqja ndrmjet dri"er#a"e dhe pjess tjetr t 1:. N
fig.7#&9 (a) jepet nj ilustrim i situats ku do dri"er ka nj ndrfaqe t ndryshme me 1:.
)jo do t thot q funksionet e dri"era#"e pr t thirrur n sistem ndryshojn nga nj
dri"er tek tjetri. )jo mund t nnkuptohet dhe q funksionet kernel q duhen mund t
ndryshojn n "arsi t dri"er#it. 1i prfundim mund t themi, q t ndrfaqsh nj dri"er
t ri krkon programime shtes.
N kontrast me kt, figura 7#&9, (b) na tregon nj pamje krejt tjetr, ku t gjith dri"erat
kan t njjtn ndrfaqe. Nani sht shum m e leht t "endossh nj dri"er t ri. )jo
do t thot q projektuesi e dri"era#"e e din se $far pritet t prformohet nga kto
dri"er#a. N praktik jo t gjitha paisjet jan identike, por jan nj numr i "ogl tipe
paisjesh, t $ilat kan t dhna t prgjithshme t njjta. !r shembull, dhe paisjet me
blloqe dhe karaktere kan gjra t prbashkta.
Fig.5.13
Nj tjetr aspekt i posedimit t nj ndrfaqje uniforme, sht mnyra se si jan emrtuar
paisjet 6/:. 1oftwar#t e pa"arur nga nga paisja merren me "endosjen e emra"e
simbolik t tyre n brendsi t dri"er#it prkats. !r shembull, n +N6R emri i nj
paisjeje, si $,e#$,isk( spe$ifikon i#node n mnyr unike pr nj file spe$ifik, dhe kjo i#
node prmban numrin kryesor t paisjes, i $ili shrben pr t lokali'uar dri"er#in e
prshtatshm. 5jithashtu i#node prmban dhe numrin EminorF, i $ili i kalohet si
parametr dri"er#it pr t spe$ifikuar njsin q do le%ohet apo shkruhet. N gjitha paisjet
kan numr kryesor dhe minor, dhe t gjth dri"er#at aksesohen duke prdorur numrin
kryesor t paisjes pr t 'gjedhur dri"er#in.
1hum e lidhur me emrtimin sht siguria. 1i i parandalon sistemi prdoruesit q t
aksesojn paisjen q nuk sht parapr$aktuarU N +N6R dhe 3indows H888 paisjet
shfaqen n Wfile systemO si objekte t emrtuara, q do t thot q rregullat e 'akonshme
t mbrojtjes pr WfiletO aplikohen dhe tek paisjet. 1istemi administrator m pas mund t
pr$aktoj leje t "e$anta pr do paisje.
Buffering
;uffering sht gjithashtu nj problem si pr paisjet me blloqe, ashtu dhe pr ato me
karaktere pr arsye t ndryshme. !r t par nj prej tyre, le t marrim parasysh nj
proes q krkon t le%oj t dhna nga nj modem. Nj strategji e mundshme pr t
mena%huar karakteret e hyrjes, sht t bjm proesin e prdoruesit q t bj nj thirrje
sistem le%imi dhe t bllokoj pritjen e nj karakteri. Bdo karakter q "jen shkakton nj
interrupt. !ro$edura e shrbimit t interrupte"e e kalon karakterin tek proesi i
prdoruesit dhe e 'hbllokon at. !asi e $on karakterin diku, proesi le%on nj karakter
tjetr dhe bllokohet prap. )y model ilustrohet n fig7#&M,(a).
1hqetsimi me kt mnyr t bri WbisnesO sht q proesi i prdoruesit duhet te fillohet
pr do karakter q duke br q proesi t ek'ekutohet shum her pr ek'ekutime
shum t shkurtra. )jo nuk sht efi$iente, kshtu q ky model nuk sht nj ide e mir.
Nj prmirsim tregohet n fig.7#&M, (b). )tu proesi prdorues ka nj buffer me n#
karaktere n hapsirn prdorues dhe bn nj le%im prej n#karakteresh. !ro$edura e
shrbimit t interrupte"e i "endos karakteret n kt buffer derisa t mbushet plot. ( pas
ajo 'gjon proesin prdorues. )y model sht shum m tepr efi$ient se ai i pari, por
dhe ky ka nj problemJ $far ndodh n se kur "jen karakteri, bufferi nuk gjendet n
memorje, por sht 'h"endosurU ;uffer#in mund t ky$im n memorje, por n se shum
proese fillojn t ky$in faqe n memorje, krkimi n t pr faqe t gatshme do
'"oglohej, gj q do sillte degradimin e performan$s.
Nj prmirsim tjetr sht n fig.7#&M, ($) ku "endoset nj buffer n kernel dhe
prgjegjsi i interrupt#e"e i $on karakteret n t. )ur ky buffer mbushet plot, faqja me
buffer#in e prdoruesit sillet aty dhe dhe n se ne"ojitet, kto t dhena kopjohen direkt n
kt buffer. )y model sht shum m efi$ient.
(egithat dhe kjo skem e ka nj problemJ $far ndodh me karakteret q mbrrijne gjat
kohs q faqja e buffer# it prdorues po sillet nga diskuU =uke qn se buffer#i sht plot
nuk kemi ku ti $ojm kto karaktere. Nj mnyr sht q t kemi nj tjetr buffer n
kernel. !asi mbushet buffer#i i par, para se ai t boshatiset, prdoret buffer#i i dyt, si$
tregohet n fig.7#&M, (d). )ur buffer#i i dyt mbushet, mund t kopjohet n hapsirn e
prdoruesit. 5jat kohs q po kopjohet buffer#i i dyt, ai i pari mund t pres karakteret
e rinj q po "ijn. N kt mnyr t dy buffer#at punojn m turneJ gjat kohs q njri
punon, tjetri akumulon. )jo skem sht quajtur Edouble bufferingF.
;uffering sht gjithashtu i rndsishm n dalje. !r shembull, le t imagjinojm sesi
bhet dalja n modem pa buffering duke prdorur modelin e fig.7#&M, (b). !roesi
prdorues ek'ekuton nj thirrje sistem shkrimi pr t dhn n dalje n#karaktere. N kt
pik sistemi ka dy 'gjidhje.
&. (und t bllokoj prdoruesin derisa t shkruhen t gjith karakteret,
por kjo do krkonte shum koh n nj linj telefonike t ngadalt.
2. :se mund t $liroj prdoruesin menjeher duke kryer nj "eprim 6/:,
ndrkoh q ai n kto momente mund t jet duk prpunuar di$ka
tjetr. !or kjo na $on drejt nj problemi m t madhJ nga ta dij
proesi prdorues q "eprimi 6/: ka prfunduar dhe q tani mund t
riprdor buffer#inU 1istemi mund t gjeneroj nj sinjal ose interrupt
software, por kjo mnyr programimi sht e "shtir. Nj 'gjidhje m
e mir pr kernelin sht t kopjoj t dhnat n nj buffer kerneli
(analoge me fig.7.&M, ($)) dhe t 'hbllokoj thirrsin menjeher. Nani
nuk ka rndsi se kur ka prfunduar "eprimi 6/:.
;uffering sht nj teknik shum e prdorur, por ka dhe ann e tij negati"e. N se t
dhnat buffero#hen shum her, performan$a ulet. -e t marrim parasysh pr shembull,
network#un n fig 7.&7. )tu prdoruesi kryhen nj thirrje sistem pr t shkruar n
network. )erneli e kopjon paketn n buffer#in e kernelit dhe i jep t drejt prdoruesit
t "a'hdoj menjeher (hapi &).
Fig.5.15
)ur thirret dri"eri, bufferi kopjon paketn tek kontrolleri pr output (hapi H). ,rsyeja pse
ai nuk e n%jerr paketn pr output nga memorja e kernelit direkt n linjn e transmetimit,
sht q kur nj paket fillon t transmetohet, ajo duhet t "a'hdoj kt me t njjtn
shpejtsi. =ri"er#i nuk na garanton q paketa shkon tek memorja me shpejtsi uniforme,
sepse kanalet e =(,#s ose paisje t tjera 6/: mund t "jedhin shum $ikle. (os marrja
n koh e nj fjale, mund t shkatrroj komplet paketn. =uke e buffer#uar paketn
brenda kontrollerit shmanget ky problem.
!asi paketa kopjohet n buffer#in e brendshm t kontrollerit, ajo kopjohet n network
(hapi 9) . ;itet mbrrijn tek marrsi n fillim tek bufferi kontrollit t nework#ut. ( pas
paketa kopjohet n buffer#in e kernelit t marrsit (hapi M). ( n fund ajo kopjohet tek
buffer#i i proesit prdorues t marrsit (hapi 7). N prgjithsi marrsi kthen nj paket
njohjeje tek drguesi. )ur ky merr paketn e njohjes, ai ka t drejt t drgoj paketn
tjetr. ?sht e qart q ky kopjim do '"ogloj shpejtsin e transmetimit, pasi t gjith
hapat duhet t ek'ekutohen n mnyr sekuen$iale.
Raportimi i gabimeve (error reporting)
5abimet jan di$ka shum e 'akonshme n kontekstin e 6/:, si n asnj kontekst tjetr.
)ur ato ndodhin sistemi operati" duhet t merret me to n mnyrn m t mir q t
mundet. 1hum gabime jan spe$ifik sipas paisje"e, dhe duhet t merren n ngarkim nga
dri"er#a t prshtatshm, por framework#u q prgjigjet pr gabimet sht i pa"arur nga
paisja.
Nj klas gabimesh 6/: jan gabimet n programim. )jo ndodh kur proesi krkon di$ka
t pamundur, si shkrimi n nj paisje hyrse (mouse, tastjer, skaner, etj.) ose le%imi n
nj paisje dalse (printer, plottr, etj.). 5abime t tjera ndodhin kur gjenerojm nj adres
buffer#i t pa"lefshme ose ndonj parametr tjetr dhe spe$ifikimi i nj paisjeje t
pa"lefshme (krkojm diskun 9 kur sistemi ka "etm H). >eprimi q kryhet kur kemi kto
gabime sht i thjeshtJ raportimi i nj kodi gabimi drejt thirrsit.
Nj klas tjetr gabimesh 6/: jan ato aktuale, pr shembull prpjekja pr t shkruar nj
bllok disku q sht dmtuar apo prpjekja pr t le%uar nga nj kamer q sht e fikur.
N kto raste i takon dri"erit t "endos $far t bj. N se dri"eri nuk di $far t bj, ai
mund tOia kaloj si problem software#it t pa"arur nga paisja.
,jo $ka bn ky soft "aret nga ambjenti dhe lloji i gabimit. N se sht nj gabim i
thjesht le%imi, dhe n se sht n dispo'i$ion nj prdorues interakti", mund t shfaqet
nj kuti dialoguese q pyet prdoruesin se $far do t bj. N opsion mund t prfshihet
injorimi i gabimit dhe riprpjekja disa her, ose "rasja e proesit t thirrjes. N se nuk ka
nj prdorues n dispo'i$ion ndoshta opsioni i "etm sht dshtimi i thirrjes sistem me
nj kod gabimi.
(egjithat disa lloje gabimesh nuk mund t trajtohen si m sipr. !r shembull, nj
struktur t dhnash kritike si direktoria root mund t jet shkatrruar. N kt rast
sistemi mund t shfaq nj mesa'h gabimi dhe t prfundoj.
Alokimi dhe clirimi i paisjeve t dedikuara.
=isa paisje si regjistruesit e *=#.:(, mund t prdoren "etm nga nj proes n nj
moment t $aktuar. 6 takon sistemit operati" t ek'aminoj krkesat pr prdorimin e
paisje"e dhe ti pranoj ose jo ato, duke u "arur dhe nga disponibiliteti i paisjes. Nj
mnyr e thjesht pr ti mena%huar kto krkesa sht q ti krkosh proesit t hap file
t $aktuara spe$ifike "etm pr paisjet. N se paisja nuk sht e gatshme, hapja dshton.
Nj prafrim alternati" do ishte q t kishim mekani'ma spe$ifike pr krkimin dhe
$lirimin e paisje"e t dedikuara. !rpjekja pr t aksesuar nj paisje q sht e 'n e
bllokon thirrsin, n "end q t dshtoj. !roeset e bllokuara "endosen n nj rradh.
2ert a "on paisja e bllokuar bhet e disponueshme dhe proesi q sht n rradh i pari,
lejohet ta aksesoj at dhe t "a'hdoj ek'ekutimin.
Prmasa e bllokut t pavarur nga paisja
=isqe t ndryshm mund t ken prmasa t ndryshme t sektor"e. 6 takon softit t
pa"arur nga paisja pr t fshehur kt fakt, duke performuar blloqe me prmasa t njjta
ndaj shtresa"e m t larta, pr shembull, duke trajtuar sektor t ndryshm si nj bllok
logjik unik. N kt mnyr shtresat m t larta kan t bjn me paisje abstrakt, t $ilat
prdorin blloqe logjik me t njjtat prmasa, t pa"arur nga prmasat fi'ike t sektor"e.
!r shembull, paisjet me karaktere i transferojn t dhnat me nj byte n njsin e kohs
( modem#t), ndrkoh q t tjerat i transferojn n njsi m t mdha (ndrfaqet e
network#ut) . dhe kto diferen$a mund t fshihen.
5.3.4 Software I/O i hapsirs prdorues (user space)
(egjithse pjesa m e madhe e software#it 6/: ndodhet brenda 1:, nj pjese e "ogl e tij
konsiston n librari t lidhura me prgramet user, apo t programe"e t tjera jasht
hapsirs kernel. Nhirrjet sistem, prfshir dhe ato 6/:, normalisht kryen nga pro$edura
librari. )ur nj program n * prmbanJ
*ount [ write (fd, buffer, nbytes)I
!ro$edura e libraris "rite do lidhet me programin dhe do i bashkangjitet ktij programi
n memorje kur ky t jet n ek'ekutim. )oleksioni i gjith ktyre pro$edura"e librari
sht qartsisht pjese e sistemit 6/:.
,jo q bjn kto pro$edura sht pak a shum "endosja e parametra"e n "endin
e duhur, ndrkoh q jan pro$edura t tjera q bjn punn e "rtet. >e$anrisht
formatimin e input#it dhe output#it e bjn pro$edurat librari. Nj shembull i gjuhs *
sht printf, e $ila merr si input nj string dhe ndoshta disa "ariabla, ndrton nj string n
,1*66, dhe m pas thrret "rite pr shfaqur stringn. 1i shembull t printf le t shohim J

printf ( E Nhe square of Q9d is QDd Vn E i, ibi)I
)jo formaton stringn prej &M karakteresh E Nhe squareF duke br nj linefeed.
1i shembull i nj pro$edure t ngjashme, por pr input, sht scanf, i $ili le%on input#in
dhe e ruan at n "ariabla me nj sintaks t njjt me at t printf. -ibraria standarte e
6/: prmban nj numr pro$edurash q prfshin 6/: dhe gjithe pjesn e programe"e user.
Ao i gjith software 6/: i ni"elit user prmban pro$edura librari. Nj kategori tjetr e
rndsishme, sht sistemi spooling. 1pooling sht nj mnyr e t mena%huarit t
paisje"e 6/: t dedikuara (n nj sistem me multiprogramim). -e t marrim parasysh nj
paisje q prdor kt sistemJ printeri. (egjithse teknikisht do ishte e leht t lejohej nj
proes prdorues t hapte nj file t "e$ant karakteresh pr printerin, supo'ojm se nj
proes e ka hapur dhe nuk bn asnj gj pr or t tra. ,snj proes tjetr sOdo mundt t
printonte gj.
!r kt krijojm nj proes t "e$ant, t quajtur daemon dhe nj direktori t "e$ant, t
quajtur spooling directory. >etm daemon (q ka leje t "e$ant pr t prdorur printerin
dhe asnj proes tjetr), mund t printoj file#a n direktori. =uke e mbrojtur file#n e
"e$ant nga prdorimi direkt nga prdoruesi, problemi i mbajtjes s saj n mnyr t
pane"ojshme, eleminohet.
1pooling nuk prdoret "etm pr printerat. ,i prdoret dhe n situata t tjera. !r
shembull, transferimi i file#a"e n network prdor nj daemon network#u. !r t drguar
nj file diku, prdoruesi e "endos at n nj spooling dire$tory network#u. !ak m "on,
daemon i network#ut e transmeton at. Nj pjes e "e$ant e prdorimit t transmetimit
me an t spooling, sht +1NN news system. )y rrjet kosiston n miliona makina q
komunikojn n t gjith globin, duke prdorur internet#in. k'istojn me mijra grupe
EnewsF rreth tema"e t ndryshme. !r t postuar nj mesa'h news, prdoruesi prfshin
nj program news, i $ili pranon mesa'hin q do postohet dhe e depo'iton n nj spooling
dire$tory pr ta transmetuar m pas. 6 gjithe sistemi news ek'ekutohet jasht sistemit
operati".
/ig. 7#&D prmbledh sistemin 6/:, duke na trguar t gjitha shtresat dhe funksionet
kryesore t se$ils. =uke filluar nga fundi, shtresat janJ hardware, prgjegjsit e
interrupt#e"e (interrupt handlers), dri"er#at e paisje"e, software i paisje"e t pa"arura nga
paisja, dhe n fund proeset prdorues.
1higjetat tregojn drejtimin e kontrollit. !r shembull, kur nj program user prpiqet t
le%oj nj bllok nga nj file, prfshihet 1:, n mnyr q t prgjigjet pr thirrjen e br.
1oftware i pa"arur nga paisja e krkon n buffer $a$he. N se blloku i krkuar nuk
ndodhet aty, thirret dri"eri i paisjes pr ta transmetuar krkesn tek hardware, q ky ta
marr bllokun n disk. ( pas proesi bllokohet derisa t prfundoj ky "eprim.
)ur merret blloku, hardware gjeneron nj interrupt. !rgjegjsi i interrupt#e"e "ihet n
pun pr t 'buluar $far ka ndodhur, q do t thot se $ila paisje ka rradhn n kt
moment. ( pas shikon statusin e paisjes dhe 'gjon proesin n gjendje qetsie pr t
prfunduar krkesn 6/:, dhe t lejoj proesin user t "a'hdoj.

+.( D;6GE2
Nani do t studiojme disa pajisje hyrese/dalese (6/: de"i$es) reale. =o t fillojme me
disqet. (e pas do t shqyrtojme orat, tastierat dhe ekranet.
5.4.1 Hardware-i i Disqeve
=isqet jane t tipe"e t ndryshem. (e t 'akonshmit jane disqet magnetike (hard disk dhe
floppy disks). )eto mund t shkruhen dhe t le%ohen me t njjtn shpejtsi, gje qe i bn
ideal si memorie sekondare (paging, file#a t sistemit, etj). )eto prdoren si ruajts shume
t besueshem t informa$ionit. !r prhapjen e programe"e, t dhena"e dhe filma"e
prdoren lloje t ndryshem disqesh (*=#.:(, *=#.e$ordable dhe =>=). Ne seksionin
qe "ijon do t prshkruajme ne fillim hardware#in dhe me pas software#in e ketyre
pajisje"e.
Disqet Magnetike
=isqet magnetike organi'ohen ne $ilindra dhe se$ili prej tyre prmban gjurme. 5jurmet
ndahen ne sektore, ku numri i sektore"e pr nj gjurme t mbyllur (rreth) "arion nga L ne
9H pr floppy disks dhe deri ne disa qindra pr hard disqet. Numri i koka"e "arion nga &
ne &D.
=isa disqe magnetike kane hardware t thjesht dhe japin thjesht nj seri t
"a'hdueshem bitesh ne dalje. Nek keto disqe "e$anerisht disqet IDE (Integrated Drive
Electronics - driver elektroni i integruar) "et pajisja ka nj mikrokontrollues
(mi$ro$ontroller) qe bn disa pune dhe i lejon kontrollerit t "ertet t jape disa
komanda t nivelit me t lart.
Nj "e$ori e pajisjes, qe ka ndikim t rendesishem mbi dri"er#at e diskut sht mundesia
e kontrollerit pr t bere dy ose me shume kerkime (seek) t sektore"e t disqe"e. )eto
njihen si kerkime t mbivendosura (overlapped seek). 5jat kohes qe nj kontroller po
pret pr mbarimin e nj kerkimi ne nj "end, ai mund t filloje kerkimin ne nj tjetr
"end. 1hume kontrollera mund t le%ojne ose t shkruajne ne nj disk gjat kohes qe
kerkojne ne nj tjetr, por nj kontroller i floppy disk nuk mund t le%oje ose t shkruaj
gjat kohes qe po kerkon ne t. (N shkruarit apo t le%uarit kerkon le"i'jen e bite"e ne
nj kohe t rendit t mikrosekondes, keshtu nj kontrollues prdor pothuajse gjithe fuqine
e tij llogaritse pr ket transferim). !una qendron ndryshe pr hard disk me kontrollera
t integruar dhe ne nj sistem me me shume se nj hard disk. ,ta mund t punojne
njkohesisht, t paktn ne transferimin nga disku ne bufferin e kontrollerit. ,ftsia e
kryerjes se dy opera$ion"e njkoheshisht mund t ule kohen e aksesit ne menyre t
ndjeshme.
/igura 7#&C krahason parametrat e pajisjes ruajtse pr 6;( !*, origjinale me parametrat
e hard diskut modern, pr t treguar sa kane ndryshuar disqet ne dy dekadat e fundit.
?sht interesante t dallosh se jo t gjithe parametrat jane prmiresuar njlloj. )oha
mesatare e kapjes se nj sektori sht prmiresuar shtat here, shpejtsia e trasferimin
sht prmiresuar &988 here, ndersa kapa$iteti sht rritur deri ne 78,888 here me shume.
)jo ka t beje me prmiresimin gradual t pjese"e le"i'ese, por rritjen e madhe t
dendesise se bite"e ne siprfaqen e diskut.
!,.,(N.,N 6;( 9D8#); disku
floppy
2ard disku 3=
&L988
Numri i $ilindra"e M8 &8D8&
5jurme pr $ilinder H &H
1ektore pr gjurme G HL&(mes)
1ektore pr disk CH8 97CMH888
;yte pr sektore 7&H 7&H
)apa$iteti i diskut 9D8 ); &L.95;
)oha kerkimit ($ilindri
ngjitur)
D msek 8.L msek
)oha kerkimit (rasti mesatar) CC msek D.G msek
)oha rrotullimit H88 msek L.99 msek
)oha ndalim/nisje t motorrit H78 msek H8msek
)oha pr trasferimin e nj
sektori
HH msek &C qsek
FIGURA 5-17. Parametrat e floppy diskut origjinal t IBM PC dhe nj hard disk
origjinal t Werstern Digital WD
=uhet pasur kujdes kur shikohen spe$ifikimet e hard disqe"e modern sepse gjeometria e
spe$ifikuar, dhe e prdorur nga software#i i dri"e#it, mund t jet e ndryshme nga forma
fi'ike reale. Ne disqet e "jetr numri i sektore"e pr gjurme ishte i njjt pr t gjithe
$ilindrat. =isqet moderne jane ndare ne 'ona me me shume sektore ne periferi t diskut se
ne 'onat e brendshme t tij. /ig 7#&L (a) ilustron nj disk t "ogel me dy 'ona. 5jurma
me ne periferi ka 9H sektore pr gjurme, ndersa ajo me ne brendesi ka &D sektore pr
gjurme. =isqet reale, si pr shembull 3= &L988, shpesh kane &D sektore, ku numri i
sektore"e rritet me rreth MQ pr 'one kur kalohet nga 'ona me ne brendesi ne at me ne
periferi.
!r t fshehur detajet e numrit t sektore qe ka nj gjurme, shumi$a e disqe"e modern
kane nj gjeometri "irtuale qe i paraqitet sistemit operati". 1oftware#i sht i bere pr t
"epruar sikur t ket & $ilindra, y koka, B sektore pr do gjurme. )ontrolleri me pas
riformulon kerkesen pr (&-y-B) ne $ilindrat, kokat dhe sektoret reale.

Figura 5-18. (a) Gjeometria reale e nj disku me dy zona. (b) Nj gjeometri
virtuale e mundshme, pr ket disk
Nj organi'im gjeometrik i mundshem pr diskun fi'ik t figures 7#&L(a) tregohet ne fig
7#&L (b). Ne t dy rastet disku ka &GH sektore, "etm se oragani'imi i tyre sht ndryshe
nga ai reali.
!r kompjuterat t ba'uar ne !entium, maksimumi i "leres pr keto parametra sht
(D7797, &D, dhe D9), pr shkak t ne"ojes se prshtatjes me limitet e kompjutera"e t
meparshem IBM PC. Ne ket makine, fusha prej &D#, M# dhe D# bit prdoreshin pr t
spe$ifikuar keto numra, ku numerimi i $ilindra"e, sektore"e fillonte nga &, ndersa
numerimi i koka fillonte nga 8. (e keto parametra dhe me 7&H byte pr sektor, disku me
i madh i mundshem ishte 9&.7 5;. !r t anashkaluar ket limit, shume disqe sot kane
nj sistem t quajtur adresim llogjik t blloqeve (logical block adressing), ne t $ilin
sektoret e disqe"e numerohen njri pas tjetrit duke filluar nga 8, pa pasur parasysh
gjeometrine e diskut.
RAID
*ilesite e *!+ jane rritur ne menyre eksponen$iale gjat dekades se fundit, pothuajse
duke u dyfishuar do &L muaj. )jo nuk ndodhi me disqet. Ne &GC8 koha mesatare e
kerkimit t nj sektori ne disqet e minikompjutera"e ishte 78 deri &88 msek. Nani koha
kerkimit sht pak me e "ogel se &8 msek. Ne shumi$en e industri"e teknike (pr
shembull automobilistike, a"ia$ionit, etj) nj rritje prej 7 deri ne &8 here t $ilesi"e t tyre
ne dy dekada, do t ishte nj lajm i madh, por ne industrine e kompjutera"e kjo rritje
sht nj EturprimF ne krahasim me t tjerat. (e gjithe diferen$en midis shpejtsise se
*!+ dhe shpejtsise se diskut, ajo sht bere me e madhe me kalimin e kohes.
1i$ po shohim, prpunimi ne paralel po prdoret gjithnj e me shume pr t rritur
rendimentin e *!+. 5jat "ite"e ka patur njere' qe menduan se pajisjet 6/: ne paralel do
t ishin ide e mire. Ne studimin e tyre t &GLL !attrson et al, sugjeroi gjasht organi'ime
spe$ifike t disqe"e qe mund t prdoreshin pr t prmiresuar $ilesite e disqe"e, sigurine
ose t dyja (!attrson et al, &GLL). )eto ide u 'batuan me shpejtsi ne industri dhe kane
$uar ne nj klase t re pajisjesh 6/: t quajtura RAID. !attrson et al pr$aktoi .,6= si
.edundant ,rray of 6ne%pensi"e =isk (rradhitje e prseritur e disqe"e jo t kushtushem),
por idustria ndryshoi 6#ne pr t qene 6ndipendent#t pa"arur ne "end t 6ne%pensi"e#jo t
shtrenjt (ndoshta ne ket menyre mund t prdornin disqe t shtrenjta).
)onkuruesi i .,6= ishte SLED (1ingle -arge %pensi"e =isk K nj disk i shtrenjt, i
"etm, i madh), (njlloj si$ sht .61* me *61*, edhe kjo fale !attrson).
6dea ba'e mbrapa .,6= sht t instalosh nj kuti plot me disqe prane kompjuterit,
'akonisht nj ser"er, te 'e"endesosh kartn e kontrollit t diskut me nj kontroller .,6=,
t kopjosh t dhenat tek .,6= dhe t "a'hdosh "eprimet normale. (e fjale t tjera .,6=
duhet ti duket sistemit operati" si nj 1-=, por t ket rendiment dhe besueshmeri me t
madhe. (eqe disqet 1*16 kane rendiment t mire, $mim t ulet dhe aftsi pr t patur
deri ne C paisje, me nj kontroller t "etm (&7 pr 1*16#t e gjere) sht e natyrshme qe
shumi$a e .,6= jane kontrollera .,6= 1*16, plus nj kuti me disqe 1*16 qe i duken
sistemit operati" si nj disk i "etm i madh. Ne ket menyre, nuk ishte e ne"ojshme
ndryshimi i software#it pr t prdorur .,6=.
!r"e$ paraqitjes si nj disk i "etm software#it, t gjithe .,6=#et e shprndajne
informa$ionin nepr disa disqe, pr t lejuar opera$ionet ne paralel. !attrson ef al. beri
disa skema t ndryshme pr t bere ket gje, dhe ato njihen si ni"eli (le"el) 8 i .,6= deri
ne ni"elin 7 t .,6=. )a gjithashtu edhe disa ni"ele t tjera qe nuk do ti diskutojme.
Nermi Eni"elF sht thjesht nj emertim jo i drejt, sepse nuk prfshihen hierarki ne
organi'imin e tyre, por ka gjasht organi'ime t ndryshme t mundshme.
Ni"eli 8 i .,6= ilustrohet ne /ig. 7#&G (a). =isku i "etm "irtual i simuluar nga .,6=
ndahet ne rripa (strip) me nga k sektore se$ili, ku sektoret nga ( ne k%1 prbejne rripin e 8,
sektoret nga k ne 2k%1 i takojne rripit &, e keshtu me rradhe. !r k[& do rrip sht nj
sektor, pr k[H do rrip ka H sektore, etj. :rgani'imi ne ni"eli 8 t .,6= i shkruan rripa
t njpasnjshem ne menyren round#robin, si$ tregohet ne /ig. 7#&G (a) pr nj .,6= me
katr pajisje. 1hprndarja e te dhena"e ne disa pajisje ne ket menyre quhet stripping.
!r shembull, ne se software jep nj komande le%imi t nj blloku t dhenash ne katr
rripa t njpasnjshem duke filluar nga fillimi, kontrolleri i .,6= do t ndaje ket
komande ne katr komanda t "e$anta, nj pr se$ilin nga katr disqet, dhe keshtu t
"eprojne paralelisht. )emi keshtu 6/: paralele pa njohurine e software#it.
Ni"eli 8 i .,6= punon me mire me kerkesa t medha, sa me e madhe aq me mire. Ne se
nj kerkese sht me e madhe se numri i rripa"e shume'uar me madhesine e nj rripi,
disa disqe do t marrin kerkesa t shumefishta, keshtu qe kur t mbarojne kerkesen e pare
mund t fillojne t dytn. ?sht detyra e kontrollerit pr t ndare kerkesat dhe pr ti dhene
diskut t duhur komanden e duhur, dhe me pas t bashkoje re'ultatet ne memorie.
.endimenti sht shume i mire dhe 'batimi i thjesht.
Ni"eli 8 i .,6= punon me keq me sisteme operati"e qe 'akonisht kerkojne t dhena ne
nj sektor t "etm. .e'ultati do t jet korrekt por nuk do t kemi paraleli'em dhe
keshtu asnj rritje performan$e. Nj tjetr disa"anta'h i ketij organi'imi sht fakti qe
besueshmeria mund t jet me e "ogel ne krahasim me nj 1-=. Ne se nj .,6=
prbehet nga M disqe, se$ili me nj kohe mesatare pune pa deshtime prej H8,888 oresh, do
t thot qe afersisht nj here ne 7,888 ore njri prej disqe"e do t deshtoje dhe t gjithe t
dhenat do t humbasin. Nj 1-= me kohe mesatare pune pa deshtime prej H8,888 oresh
do t ishte katr here me i besueshem. (eqe ne ket organi'im nuk kemi prseritje ky
nuk sht nj .,6= i "ertet.
>ariant tjetr, ni"eli & i .,6=, i treguar ne /ig. 7#&G (b) sht nj .,6= i "ertet. ,i
duplikon t gjithe disqet, keshtu qe ka katr disqe primare dhe katr kopje. !r do
shkrim, do rrip shkruhet dy here. !r nj le%im, t dy kopjet mund t prdoren, duke
shprndare punen. .rjedhimisht, rendimenti i shkrimit nuk sht me i mire se ne rastin e
nj disku t "etm, por rendimenti i le%imit mund t jet deri ne dyfish me i mire.
Noleran$a e gabime"e sht e shkelqyeshme, ne se nj disk prishet, do t prdoret kopja e
tij. @gjidhja sht instalimi i nj disku tjetr dhe kopjimi i diskut t rregullt ne t.
Ndryshe nga ni"eli 8 dhe ni"eli & qe punojne me rripa t sektore"e, ni"eli H i .,6=
punon me fjale, mundesisht edhe me byte. 6magjinoni t ndani do byte t diskut t "etm
"irtual ne dy grupe me nga M bite, dhe me pas t shtosh nj kod t 2amming#ut ne se$ilin
grup pr t formuar nj fjale C bit t gjat, nga t $ilat bitet &,H dhe M jane bite parieteti.
(e tej, imagjinoni qe t shtat pajisjet e /ig. 7#&G($) t ishin t sinkroni'uar pr nga
po'i$ioni i krahut, e po'i$ioni i rrotullimit. ,there do t ishte e mundur t shkuanim nj
fjale C bit (e koduar sipas 2amming#ut) mbi shtat pajisjet, nj bit pr pajisje.
)ompjuteri ENhe Nhinking (a$hine *(#HF prdorte ket skeme, duke patur 9H bit, duke
shtuar D bitet e paritetit t 2amming#ut, formohej nj fjale 9L bit, plus nj bit tjetr shtese
pariteti. /jalet shprndaheshin ne disqe. Nhroughput#i total ishte shume i madh, sepse ne
kohen qe duhet pr shkrimin e nj sektori, mund t shkruheshin 9H t tille. 5jithashtu,
prishja e nj disku nuk krijonte probleme, sepse kjo do t thoshte humbjen e njrit prej 9G
bite"e t fjale"e, po ket gje e rregullon me lehtsi kodi i 2amming#ut.
/igura 7#&G Ni"elet e .,6= nga 8 ne 7. !ajisjet qe mbajne kopjet dhe informa$ionin e
paritetit jane shenuar me gri
Nga ana tjetr kjo skeme kerkon qe t githe disqet t jene t sinkroni'uar, dhe ka kuptim
pr nj numer t $aktuar disqesh (edhe me 9H bit t dhena, D bite pariteti, gabimi sht
&GQ). 5jithashu sht nj pune e madhe pr kontrolluesin, sepse do here do t beje
kontrollin e bite"e t paritetit.
Ni"eli 9 i .,6= sht nj "ersion i thjeshtuar i ni"elit H. ,i ilustrohet ne /ig. 7#&G(d).
)etu llogaritet "etm nj bit pariteti, i $ili shkruhet ne diskun e paritetit. ,shtu si tek
ni"eli H, disqet duhet t jene saktsisht t sinkroni'uara, meqe nj fjale sht e shprndare
nepr shume disqe.
Ne fillim mund t duket se nj bit i "etm pariteti jep "etm detektim t gabimit dhe jo
korigjim t tij. !r rastin e gabime"e t rastesishme t pa detektuar, kjo sht e "ertet.
(egjithat ne rastin e deshtimit t nj disku t tre, ai na jep nj korigjim t plot t
gabime"e & biteshe, meqe "endi i bitit t gabuar njihet. )ur nj nga pajisjet prishet,
kontrolleri pretendon se t gjithe bitet e tij jane 8. Ne se kemi nj gabim pariteti, biti ne
pajisjen e prishur duhet t ket qene &, keshtu qe korrigjohet. (egjithese t dy ni"elet H
dhe 9 t .,6=#it, ofrojne shpejtsi shume t medha, numri i kerkesa"e 6/: qe mund t
kryejne pr sekonde nuk sht me i mire se ai i nj disku t "etm.
Ni"eli M dhe 7 i .,6=,kane prseri rripa, sOkane me fjale me bite pariteti dhe nuk kane
me ne"oje pr sinkroni'im. Ni"eli M i .,6= (/ig. 7#&G(e)) sht si ni"eli 8 i .,6= me
rripa pariteti pr rripat, t shkruar ne nj pajisje shtese. !r shembull ne se do rrip sht i
gjat k byte, mbi t gjithe rripat aplikohet "eprimi R-+16>#:., duke re'ultuar keshtu
ne nj rrip pariteti k bit t gjat. Ne se nj disk prishet, biti i humbur mund t rillogaritet
nga disku paritetit.
)y lloj projektimi t mbron nga humbjet e nj disku por sht i keq ne rast se ndryshohet
nj pjese e "ogel e informa$ionit. Ne se nj sektor ndryshon, sht e ne"ojshme t le%osh
t gjithe sektoret pr t llogaritur paritetin, i $ili duhet t rishkruhet. :se mund t le%ohet
prmbajtja e "jetr dhe pariteti i "jetr dhe t rillogaritet pariteti i ri prej tyre. dhe me
ket optimi'im, nj ndryshim i "ogel kerkon dy shkrime dhe dy le%ime.
1i rrjedhoje e "ellimit, punes se madhe ne diskun e paritetit, ai mund t kthehet ne
problem. !r 'gjidhjen e ketij problemi ni"eli 7 i .,6= shprndan bitet e paritetit ne t
gjithe disqet, ne menyre round#robin, si$ tregohet ne /ig. 7#&G(f). (egjithat ne rastin e
deshtimit t njrit prej disqe"e, llogaritja e bite"e t humbura sht nj proes i "eshtire.
CD-ROM-s
Ne "itet e fundit, disqet optike (si kundershtare t atyre magnetike) jane bere t
pranishem ne treg. ,ta kane dendesi shkrimi me t madhe se disqet e 'akonshme
magnetike. =isqet optike u 'h"illuan si fillim, pr t regjistruar programet tele"i'i"e, por
ata mund t prdoren si pajisje ruajtse t kompjutera"e. !r shkak t kapa$itetit
poten$ial memori'ues, disqet optike jane bere subjekti i shume kerkime"e dhe kane
kaluar nj e"olu$ion t shpejt.
5jenerata e pare e disqe"e optike u shpik nga nj grup in%hinieresh elektronik hollande'
t !hilips#it pr t mbajtur filma. ,ta kishin diametr 98$m dhe emer -aser>ision, por
nuk patn sukses, pr"e$se ne Aaponi.
Ne &GL8, !hilips bashke me 1ony, 'h"illuan *= (*ompa$t =is$), t $ilt shpejt
'e"endesuan regjistrimet prej "inili 99 &/9#rpm. =etajet teknike t sakta pr *= u
publikuan ne 1tandartin Nderkombetar (61 &8&MG), i njohur jo#'yrtarisht si .ed ;ook
(libri i kuq), pr shkak t ngjyres se kapakut t tij, (6nternational 1tandard#standartet
nderkombetare n%irren nga 6nternational :rgani'ation for 1tandadi'ation, i $ili sht
forma nderkombetare e grupe"e kombetare t standarte"e. Bdo standart ka nj numer 61).
<ellimi i publikimit t spe$ifikime"e te diskut dhe pajisjes se tij ne nj 1tandart
Nderkombetar, sht ti beje *=#t nga shtpi t ndryshme diskografike t punojne ne
pajisje t prodhues"e t ndryshem. N gjithe *=#t kane diametr &H8mm, dhe &.Hmm t
trashe, me nj "rime &7mm ne mes. *= audio ishte e para pajisje kujtese di%hitale e
suksesshme ne tregun e gjere. ,to supo'ohen t durojne deri ne &88 "jet. Au lutem
kontrolloni ne H8L8 si shkoi parashikimi.
!rgatitet nj *= duke prdorur nj laser infra#red pr t djegur "rima me diametr 8.L#
mikron ne nj master disk mbuluar me qelq. Nga ky master, prgatitet nj kallep, me
gunga aty ku ishin "rimat e laserit. Ne ket kallep, nj pr'ierje polikarbonatesh t shkrire
injektohet pr t formuar nj *= me t njjtin forma$ion "rimash si ne masterin prej
qelqi. !astaj nj shtrese pasqyruese shume e holle alumini, "endoset mbi polikarbonat,
dhe mbulohet nga nj shtrese mbrojtse llaku, e ne fund etiketohet. Nhellimet ne shtresen
e polikarbonatit quhen grope'a(pits), dhe pjesa e padjegur midis grope'a"e quhet fushe
(lands).
5jat punes, nj diode la'er me fuqi t ulet ndri$on grope'at dhe fushat me drit infra#
red, me gjatsi "ale 8,CL mikron. (eqe la'eri ndodhet ne krahun e polikarbonatit,
grope'at do ti duken gunga ne nj siprfaqe qe prndryshe do t ishte e shesht. (eqe
grope'at kane nj lartsi prej $erek gjatsie "ale, drita e reflektuar nga gungat (grope'at
nga ana tjetr e diskut) do t kene nj shfa'im prej gjysem "ale, ne lidhje me dritn e
reflektuar nga siprfaqja prreth. 1i re'ultat i ketij shfa'imi, dy rre'et e drits interferojne
ne menyre desktrukti"e dhe i kthejne fotodetektorit t pajisjes me pak drit se ne rastin
kur pasqyrimi ndodh ne nj fushe. )jo sht menyra se si nj pajisje tregon dallimin e nj
grope'e nga nj fushe. (egjithese duket e natyreshme prdorimi i nj grope'e pr t
regjistruar 8 dhe t nj fushe pr &, sht me e sigurt prdorimi i tran'i$ionit grope'/fushe
apo fushe/grope' pr simboli'uar & dhe mungesen e tran'i$ionit pr 8. )jo skeme
prdoret edhe ne praktike.
5rope'at dhe fushat shkruhen ne nj spirale t "etme t "a'hdueshme qe fillon tek "rima
dhe shkon deri ne nj largesi 9Hmm nga bordura e diskut. 1piralja bn HH,&LL rrotullime
rreth qendres se diskut (rreth D88 rrotullime pr & mm). Ne se do t $Ombeshtillej, spiralja
do t ishte 7.D km e gjat. 1piralja ilustrohet ne /ig. 7#H8.
Figura 5-20 Struktura e regjistrimit t nj CD (Compact Disc)
!r luajtur mu'ike me ritem kostant, sht e ne"ojshme qe grope'at dhe fushat t kalojne
prpara fotodiodes, me shpejetsi lineare konstante. !ra duhet qe shpejtsia e rrotullimit
t *= t ulet "a'hdimisht, kur koka le%uese e *= le"i' nga pjeset me afer qendres drejt
pjese"e me larg saj. Ne brendesi, shpejtsia rrotullimit sht 798 rrot/min pr t arritur
shpejtsine e deshiruar t kalimit t grope'a"e dhe fusha"e prej &H8 $m/sekI tek gjurmet
me t jashtm rrotullimet ulen ne H88 rrot/min pr ti dhene kokes le%uese t njjtn
shpejtsi lineare. Nj pajisje me shpejtsi lineare konstante sht ndryshe nga nj disk
magnetik, i $ili punon me nj shpejtsi kendore kostante, pa"aresisht "endit se ku
ndodhet koka le%uese. 5jithashtu shpejtsia prej 798 rrot/min sht shume larg
shpejtsise 9D88 deri ne CH88 rrot/min qe arrijne shumi$a e disqe"e magnetike.
Ne &GLM, !hilips dhe 1ony kuptuan poten$ialin e prdorimit t *= pr t ruajtur t dhenat
e kompjutera"e, keshtu botuan -ibrin e >erdhe (]ellow ;ook) duke pr$aktuar
standartin e atij qe sot quajme *=#.:( (*ompa$t =is$ K .ead :nly (emory). !r t
prfituar nga tregu i madh i audio *= ne at kohe, *=#.:( do t kishin t njjtn
madhesi si audio *=, do t ishin t pajtueshem me to pr nga ana mekanike e optike, dhe
do t prodhoheshin nga e njjta makine qe injektonte polikarbonat pr *= audio. )y
"endimi solli ne"ojen e motorre"e t ngadalt me shpejtsi t ndryshueshme. 5jithashtu
kosto e prodhimit t nj *=#.:( do t ishte posht & dollar.
,jo $fare pr$aktoi -ibri i >erdhe ishte forma ruajtjes se t dhena"e t kompjuterit.
5jithashtu u prmiresua mundesia e korigjimit t gabime"e, nj hap shume i
rendesishem. (egjithese degjues"e t mu'ikes nuk u prishte pune humbja e ndonj bit#i
here pas here, prdoruesit e kompjuterit e "ene re, shume ket gje. /orma kryesore e
ruajtjes se t dhena"e ne *=#.:( sht duke koduar do byte ne nj simbol &M#bit. 1i$
pame me sipr, &M#bit jane t mjaftueshem pr t koduar sipas 2amming nj byte L#bitesh
dhe H bite teprojne. Ne fakt prdoret nj sitem kodimi me i fuqishem. *Okodimi &M#ne#L
behet neprmjet hardware#it.
Nj ni"el me sipr, nj grup MH simbolesh t njpasnjshem formojne nj ima'h (frame)
prej 7LL bit. 1e$ili frame mban &GH bit me t dhena (HM byte). !jesa tjetr qe mbetet, 9GD
bite, prdoren pr kontroll dhe korigjim gabimesh. =eri ketu kjo skeme sht e njjt si
pr *= audio ashtu edhe pr *=#.:(.
-ibri i >erdhe shton edhe grupimin e GL frame ne nj sektor t *=#.:(, e treguar ne
/ig.7#H&. Bdo sektor i *=#.:( fillon me nj hyrje (preamble) &D byte, ku &H t paret
jane 88////////////////////88 (ne forme hek'a de$imale), pr ti treguar pajisjes
fillimin e nj sektori. Nre byte t tjere mbajne numrin e sektorit, sepse kerkimi i t
dhena"e ne spiralen e "etme t *=#.:( sht me e "eshtire se kerkimi ne gjurmet
bashkeqendrore t disqe"e magnetike. !r t kerkuar nj sektor, software#i i pajisjes
llogarit me prafersi "endin ku t kerkoje. !asi "endoset aty fillon t kerkoje pr
sekuen$en e fillimit t nj sektori. ;yti i fundit i hyrje eshte byti mode.
-ibri i >erdhe pr$akton dy menyra (mode). (enyra & prdor organi'imin e /ig.7#H&, me
nj sekuen$e hyrje prej &D bit, H8ML byte t dhenash, dhe nj kod korigjimi HLL byte ( nj
nga kodet .eed#1olomon). (enyra H kombinon byte#et e ** (rror *orre$tion *ode)
me t dhenat, pr ato prdorime ku nuk ka kohe pr kontrollin apo korigjimin e
gabime"e, si pr shembull audio apo "ideo. >ini re se pr t sigurar besueshmeri t lart,
prdoren tre skema pr korrigjimin e gabime"eI brenda nj simboli, brenda nj frame#i,
brenda nj sektori t *=#.:(.
Figura 5-21 Organizimi llogjik i t dhenave ne nj CD
5abimet me nj bit t "etm korrigjohen ne ni"elin me t ulet, segment t shkurtr
gabimesh korrigjohen ne ni"elin e frame#"e, dhe do gabim i mbetur pa kapur detektohet
ne ni"el sektoresh. !r t patur ket besueshmeri sakrifikojme rendimentin. Na duhen GL
frame prej 7LL bit se$ili (CH89 byte) pr t mbajtur H8ML byte informa$ion, me nj
rendiment prej "etm HLQ.
!ajisjet *=#.:( me nj shpejtsi punojne me C7 sektore/sek, qe do t thot nj shpjetsi
t dhenash &79,D88 byte/sek me menyren & dhe &C7,H88 byte/sek me menyren H. !ajisjet
me dy shpejtsi jane dyfish me t shpejta, dhe keshtu me rradhe deri ne shpejtsine me t
madhe. )eshtu nj pajisje M8% mund le%oje t dhena me nj shpejtsi M8 % &79D88
byte/sek, duke supo'uar se bus#i i nderfaqes se pajisjes dhe sistemi operati" mund t
prballojne ket shpejtsi. Nj *= ,udio standarte ka hapesire pr CM min mu'ike, i $ili
ne se prdoret me menyren &, jep nj kapa$itet DL&,GL9,888 byte. )jo 'akonisht jepet si
D78 (;, sepse & (; sht H
H8
byte (&,8ML,7CD byte) dhe jo &,888,888 byte.
dhe nj pajisje *=#.:( 9H% (M,G&7,H88 byte/sek) nuk krahasohet me nj disk
magnetik 1*16#H me shpejtsi &8 (;/sek, megjithese shume pajisje *=#.:( prdorin
nderfaqe 1*16 (ek'istojne edhe pajisje *=#.:( me nderfaqe 6=). )ur kujton se koha
e kerkimit sht disa qindra milisekonda, behet e qart se pajisjet *=#.:( nuk jane ne
t njjtn kategori rendimenti me disqet magnetike, pa"aresisht kapa$itetit t tyre t
madh.
Ne &GLD, kompania !hilips pati prseri sukses me -ibrin Aeshil (5reen ;ook), duke i
shtuar grafike *=#.:(#it dhe aftsine pr t mbajtur audio, "ideo e t dhena ne t
njjtin sektor, nj "eti e ne"ojshme pr *=#.:( multimediale.
*eshtja e fundit e *=#.:( sht system file (sistemi i file#"e). !r t bere t mundur
prdorimin e t njjtit *=#.:( ne kompjutera t ndryshem, ne"ojitej nj marre"eshje
mbi sistemin e file#"e t *=#.:(. !r t arritur ne ket marre"eshje, prfaqesues t
shume kompani"e u mblodhen ne liqenin Nohoe t 2igh 1ierras#as ne kufirin )aliforni#
Ne"ada dhe krijuan nj system file qe u quajt 2igh 1ierra. (e pas kjo marre"eshje e"oloi
ne 1tandartin Nderkombetar (61 GDD8). ,i ka tre ni"ele. Ni"eli &, prdor emra file#esh
deri ne L karaktere, nj prapashtese t mundshme prej 9 karakteresh (marre"eshja e
emra"e t file#"e t (1#=:1). mrat e file#"e mund t prmbajne "etm shkronja t
medha, numra, dhe simbolin E`F (quajturJ unders$ore). =irektorit mund te prmbajne
njra#tjetren por deri ne nj hierarki prej L shkallesh, dhe emrat e tyre nuk mund t kene
prapashtesa. Ni"eli & i detyron t gjithe file t jene t "a'hdueshem, gje qe nuk sht
problem pr nj disk qe do shkruhet "etm nj here. Bdo disk i shkruar sipas standartit 61
GDD8, Ni"eli &, mund t le%ohet ne (1#=:1, komjuterat ,pple, ne kompjuterat +N6R,
apo ne do kompjuter tjetr. !rodhuesit e *=#.:( e shikojne ket "eti si nj plus i
madh, ni"elit &.
61 GDD8, ni"eli H, lejon emra deri ne 9H karaktere dhe ni"eli 9 lejon file jo t
"a'hdueshem. !rapashtesa E.o$k .idgeF (e quajtur keshtu $uditrish nga nj film i 5ene
3ilder, ;la'ing 1addles) lejon emra shume t gjat (pr +N6R), +6=, 56= dhe link#e
simbolike, por *=#.:(#et paprputhshem me ni"elin & nuk do t le%ohen nga t gjithe
kompjuterat.
*=#.:(#et jane bere shume popullore pr t n%jerre ne shitje lojra, filma, en$iklopedi,
atllase dhe materiale t do lloji. 1humi$a e software#"e tani gjenden ne *=#.:(.
)ombinimi i kapa$itetit t tyre t madhe dhe kostos se ulet t prodhimit, i bn ata t
prshtatshem pr prdorime t shumta.
CD-Rercordable (CD-t shkrueshem)
/illimisht, pajisja e ne"ojshme pr prodhimin e nj *=#.:( master (ose *= audio)
ishte shume e shtrenjt. !or si 'akonisht ne industrine e kompjutera"e, asgje nuk "a'hdon
se qeni e shtrenjt pr shume kohe. Ne mesin e "ite"e &GG8, shkruesit e *=, jo me t
medhenj se nj pajisje e 'akonshme periferike, ishin ne shitje ne shumi$en e dyqane"e t
kompjutera"e. )eto pajisje akoma ishin t ndryshme nga disqet magnetike, sepse ne se
*=#.:(#et shkruheshin, nuk mund t fshiheshin me. 1idoqoft, ata gjetn prdorim si
kujtesa pr ruajtjen e kopje"e (ba$k up) t hard disqe"e t medhenj. 5jithashtu *=#
.:(#i i lejoi indi"idet apo edhe kompanit e "ogla t prodhonin *=#.:( e tyre, apo t
bnin mastera qe do tu $oheshin fabrika"e t medha pr shumefishimin. )eto pajisje
njihen si *=#. (*=#.e$ordables).
/i'ikisht, *=#. jane disqe bosh, me diametr &H8mm me polikarbonat, njsoj si t *=#
.:(#et, pr"e$se *=#. kane nj kanal 8.Dmm pr t drejtuar laserin gjat shkrimit.
)anali ka nj ndryshim sinusoidal prej 8.9mm me nj frekuen$e saktsisht HH.87 k2', pr
t kontrolluar "a'hdimisht shpejtsine e *=, dhe ne se sht e ne"ojshme t ndryshohet
ajo. *=#. duken njsoj si *=#.:(#et e 'akonshem, pr"e$se ata kane ngjyre ari, ne
"end t ngjyres se argjendt. Ngjyra e art "jen nga prdorimi i arit ne "end t aluminit si
shtrese reflektuese. Ndryshe nga *=, qe kane grope'a (pit) ne to, aftsia reflektuese e
ndryshme e grope'a"e (pits) dhe fusha"e (lands) duhet t simulohet ndryshe. )jo behet
duke shtuar nj shtrese boje trasparente midis polikarbonatit dhe shtreses reflektuese prej
ari, si$ tregohet ne /ig. 7#HH. =y lloje bojerash prdoren, $yanina, e $ila sht jeshile, dhe
pthalo$yanina, e $ila sht portokalli ne t "erdhe. )imistt mund t diskutojne pafund se
$ila sht me e mire. )eto bojera t ngjashme me ato t prdorura ne fotografit, gje qe
shpjegon faktin qe astman )odak dhe /uji jane prodhuesit me t medhenj t *=#.
bosh.
Fig. 5-22 Prerja trthore e nj disku CD-R dhe e lazerit (jo me t njjtn shkalle).
CD-ROM-et e argjent kane stukture t njjt, prvec shtreses se bojes dhe shtreses
se arit, t prfaqesuar nga shtresa e argjendit me gropeza
Ne gjendjen e saj fillestare shtresa e bojes sht trasparente dhe lejon dritn e laserit ti
kaloje prmes, e t reflektohet mbi shtresen e arit. !r t shkruar, laseri e *=#.
rregullohet t punoje me fuqi t madhe (L#&D m3). )ur rre'ja godet nj 'one t bojes, ajo
ngrohet duke prishur lidhjen kimike. )y ndryshim ne strukturen molekulare krijon nj
njolle t erret. )ur le%ohet (me 8.L m3) fotodetektori shikon nj ndryshim midis 'ona"e
t erreta, ku boja sht goditur, dhe 'ona"e trasparente ku boja sht e paprekur. )y
ndryshim interpretohet si ndryshimi midis grope'a"e dhe fusha"e (pits dhe lands), edhe
kur *=#. le%ohet ne le'uesat e *=#.:(#it t 'akonshem, ose edhe tek audio *= player.
,snj lloj i ri *= nuk u shpik i pashoqeruar nga libri i tij me ngjyre, keshtu qe -ibri
!ortokalli (:range ;ook) u publikua ne &GLG pr *=#.. )y dokument prshkruan *=#.
dhe gjithashtu edhe nj forme t re t tij, CD-ROM XA, i $ili i lejon *=#. t shkruhen
disa hereJ disa sektore sot, disa t tjere neser dhe disa muajin tjetr. Nj grup sektoresh t
njpasnjshem t shkruar njeheresh quhet gjurme e CD-ROM (CD-ROM track).
Nj nga prdorimet e pare t *=#. ishte )odak !hoto*=. Ne ket sistem klienti sjell nj
film me fotografi dhe !hoto*= e tij t "jetr dhe merre t njjtin !hoto*= me fotografit
e reja, t shtuara tek ato t "jetrat. 6nforma$ioni i ri pr tu hedhur merret nga skanimi i
foto"e ne film. /otot hidhen ne !hoto*=, ne nj gjurme tjetr *=#.:(#i (*=#.:(
tra$k). 1hkrimi disa here i *=#. ishte i ne"ojshem sepse kur ky produkt u hodh ne treg,
*=#. bosh ishin shume t shtrenjt pr t blere nj t ri sa here mbaronte nj film me
foto.
(egjithat, shkrimi disa here i *=#. krijon nj problem t ri. !rpara se t dilte -ibri
!ortokalli, t gjithe *=#.:(#et kishin "etm nj VTOC (Volume Table Of Content -
libri i tabeles se prmbajtjes) ne fillim. ,jo skeme nuk punonte kur shkruhej disa here
(multitra$k). @gjidhja per te shkruar ne -ibrin !ortokalli ishte qe ti jepej do gjurme t
*=#.:(#it, >N:* e "et. /ile#t e shkruara ne >N:* mund t prfshijne disa ose t
gjitha file#t nga gjurmet e meparshme. (basi nj *=#. futet tek pajisja le%uese, sistemi
operati" kerkon t gjithe gjurmet (tra$ks) e *=#.:(#it pr t gjetur >N:* me t re, e
$ila i jep gjendjen aktuale t diskut. =uke prfshire "etm disa, por jo t gjitha file#t ne
>N:* me t re, sht e mundur t krijohet ilu'ioni i fshirjes se file#"e. 5jurmet (tra$ks)
mund t grupohen ne sesione, duke $uar ne *=#.:(#e multisesione (multisession)
audio *= player standart nuk mund ti le%ojne *= me multisesione, sepse ata presin
"etm nj >N:* ne fillim t diskut.
Bdo gjurme duhet t shkruhet me nj "eprim t "etm pa ndaluar. 1i rrjedhim, hard disku
nga i $ili do t "ijne t dhenat duhet t jet i shpejt, pr tOia dore'uar ato pajisjes
shkruajtse ne kohen e duhur. Ne se file#i qe do t kopjohet sht i shprndare nepr hard
disk, koha e kerkimit t tij mund t beje qe t dhenat (data stream) qe po shkruhen ne disk
t shterojne. Ne se kjo ndodh, ju do prfundoni me nj gje t re shkelqyese dhe t bukur
(por deri diku t shtrenjt) pr t "ene gotat, apo nj frisbee &H8mm ngjyre ari. @akonisht
software#et e *=#. ofrojne mundesi te mbledhjes se t gjithe file#a"e ne nj ima'h *=#
.:( (image) t "a'hdueshem D78 (;, por ky proes 'akonisht dyfishon kohen e
shkrimit, kerkon D78 (; t lira ne hard disk, dhe prseri nuk t mbron nga hard disku,
"e$anerisht ne $aste EpanikuF kur hard disku "endos t beje rikalibrimin termik, n qoft
se n%ehet shume.
*=#. bejne t mundur qe indi"ide apo edhe kompanit t kopjojne me lehtsi *=#.:(#
et (dhe audio *=), 'akonisht duke shkelur ligjin mbi t drejtat e autori. =isa skema jane
shpikur pr t bere piraterine me t "eshtire dhe pr t bere me t "eshtire le%imin e *=#
.:(#e"e nga software t tjere, pr"e$se atij t prodhuesit. Nj prej tyre sht shkrimi i
gjatsise se file#"e ne *=#.:(, si t ishin shume gigabyte, duke shmangur keshtu do
prpjekje pr kopjimin e *= ne hard disk. 5jatsia e "ertet ndodhe ne sofware#in e
prodhuesit, apo e fshehur (mundesish e enkriptuar) ne nj 'one t pa parashikueshme t
*=#.:(#it. Nj skeme tjetr sht prdorim me "etdije i ** gabim, ne sektore t
$aktuar, me shpresen qe software#i pr kopjimin e *= do te EkorigjojeF gabimet. )y
software#i kontrollon "et **, duke refu'uar t punoje ne se ata jane t rregullt.
5jithashtu sht e mundur prdorimi i hapesira"e jo standarte midis gjurme"e (tra$k) apo
i Edifekte"eF t tjera fi'ike.
CD-Rewritables (CD-t rishkruajtshem)
(egjithese njere'it jane mesuar me gjera qe shkruhen "etm nj here, si$ jane letra,
filmat fotografik, ka nj kerkese t madhe pr *=#.:( t rishkruajtshem. Nj teknologji
e disponueshme sht CD-RW (CD-ReWritable), e $ila prdor disqe me t njjtn
madhesi si *=#.. (egjithat, ne "end t bojes $yanine apo pthalo$yanine, *=#.3
prdorin nj alia'h argjenti, indiumi, antimoni dhe telluriumi si shtrese regjistruese. )y
alia'h ka dy gjendje t qendrueshmeJ kristaline dhe jokristaline (amorphous#amorfe), me
"eti t ndryshme pasqyruese.
!ajisjet pr *=#.3 kane la'er me tre fuqi t ndryshme. (e fuqine me t lart, la'eri
shkrin alia'hin, duke e kthyer nga gjendja kristaline shume pasqyruese, ne nj gjendje
amorfe jo pasqyruese, pr t paraqitur nj grope(pit). (e fuqine e mesme, alia'hi shkrihet
dhe kthehet ne gjendjen e tij natyrale, kristaline, pr tu bere prseri fushe(land). (e
fuqine me t ulet, EndjehetF gjendja e materialit (pr le%im), por nuk ka ndryshim shenje.
,rsyeja se prse *=#.3 nuk ka 'e"endesuar *=#., sht sepse *=#.3 bosh jane me t
shtrenjt se *=#. bosh. 5jithashtu, pr prdorime t tilla si kopjimi (bu$k up K re'er"e) e
hard diskut, fakti qe *=#. po t shkruhen nuk fshihen me, sht nj plus i madh.
DVD
/ormat kryesore t disqe"e optike, *=/ *=#.:(, kane ek'istuar qe prej &GL8.
Neknologjia sht prmiresuar qe prej athere, keshtu qe disqet optike me kapa$itet me t
lart jane ekonomikisht t prballueshem dhe ka nj kerkese t madhe pr to. 2ollywood#
i, do t enderronte t 'e"endesonte kasetat "ideo analoge me disqet di%hitale, meqe disqet
kane nj $ilesi me t lart, jane me t lira pr tu prodhuar, 'gjasin me shume, kerkojne me
pak hapesire nepr dollapet e "ideoteka"e dhe nuk kane ne"oje t mbeshtillen. )ompanit
e konsumit elektronik po kerkojne pr nj produkt t ri, meqe kompanit e kompjutera"e
duan ti shtojne multimedia software#"e t tyre.
)y kombinim i teknologjise dhe kerkeses se tregut nga tre industri shume t pasura e t
fuqishme, $oi ne krijimin e DVD, ne fillim e njohur si Digital Video Disk (disk i videos
dixhitale), por tani njihet 'yrtarisht si Digital Versatile Disk (disk dixhital i
gjithanshem). =>= prdorin t njjtin parim si *=, nj disk &H8mm polikarbonati me
grope'a dhe fusha, qe ndri$ohet nga nj diode la'er dhe le%ohet nga nj fotodetektor. N
rejat tek =>= jane prdorimi iJ
& &. grope'a"e me t "ogla (8.M mikron ndryshe nga 8.L mikron tek *=)
H H. nj spiraleje me t ngusht (8.CM mikron ndermjet gjurme"e ne dallim nga &.D
mikron t *=)
9 9. nj laser t kuq (8.D7 mikron ne krahasim me 8.CL mikron t *=)
;ashke, keto prmiresime rrisin kapa$itetin shtat here, ne M.C 5;. Nj pajisje =>= &%
punon me &.M (;/sek (ne dallim nga &78 );/sek tek *=). /atkeqesisht ndryshim ne
laser t kuq, si ai i prdorur tek supermarkett, do t $oje ne ne"ojen e nj la'eri t dyt,
apo t ndonj metode t sofistikuar optike, pr t le%uar *= dhe *=#.:( ek'istues.
)et nuk e bejne t mundur t gjitha pajisjet. 5jithashtu mund t mos jet e mundur
le%imi i *=#. dhe *=#.3 ne pajisjet e =>=.
, jane t mjaftueshme M.C 5;U Ndoshta. =uke prdorur ngjeshjen ($ompression) (!5#
H (me standart 61 &99MD), nj disk =>= M.C5;, mund t mbaje &99 minuta me "ideo me
ekran t plot (full#s$reen), me le"i'je (full#motion), ne $ilesi (resolution CH8%ML8) t
lart, gjithashtu edhe me fonogram (soundtra$k) deri ne L gjuhe dhe 9H titra (subtitles).
.reth GH prqind e t gjithe filma"e qe ka bere 2ollywood jane me pak &99 minuta.
(egjithat, disa aplika$ione si lojrar multimediale, apo informa$ioni i nj pune t
$aktuar, mund t kerkoje me shume. !o ashtu edhe 2ollywood#i do t kerkonte t fuste
disa filma ne nj disk, keshtu qe u pr$aktuan katr formaJ
&. Nj ane t "etme, me nj shtrese t "etme (M.C 5;)
H. Nj ane t "etme, me dy shtresa (L.7 5;)
9. =y ane, me nga nj shtrese (G.M 5;)
M. =y ane, me nga dy shtresa (&C 5;)
!o prse kaq shume formateU (e pak fjaleJ politika. !hilips dhe 1ony donin disqe me nj
ane dhe me dy shtresa si "ersion me kapa$itet t lart t =>=, por Noshiba dhe Nime
3arner donin disqet me dy ane, me nj shtrese. !hilips dhe 1ony mendonin se njere'"e
nuk do tu pelqente t kthenin diskun nga ana tjetr. Ndersa Nimer 3an"er nuk besonte se
mund t "endoseshin dy shtresa ne nj disk. )ompromisi ishte J t gjithe kombinimet e
mundshme, por tregu do t "endoste se $ili do t mbijetonte.
Neknologjia me dy shtresa "endos shtresen reflektuese mbi nj shtrese gjysem#reflektuese
(semireflekti"e). Ne "aresi t fokusimit t la'erit, ai pasyrohet nga njra apo tjera shtrese.
1htresa me e ulet ka ne"oje pr grope'a dhe fusha (pits and lands) pak me t medha, qe t
le%ohet me leht. )apa$iteti i saj sht pak me i "ogel se ai i shtreses se siprme.
=isqet me dy ane behen duke mare dy disqe 8.Dmm me & ane dhe duke i ngjitur ata
bashke. !r ti bere t gjitha "ersionet t kene t njtn trashesi, disku me nj ane prbehet
nga nj disk 8.Dmm i ngjitur me nj ba'e (disk bosh), (ose ndoshta ne t ardhmen, ky disk
sOdo t jet bosh po do ket &99 minuta me reklama, me shpresen se njere'it do t behen
kurio' mbi prmbajtjen e anes tjetr). 1truktura e diskut me dy ane, me dy shtresa sht
treguar ne /ig. 7#H9.
Figura 5-23 Nj disk DVD me dy ane, me nga dy shtresa.
=>= u shpik nga nj partneritet prej &8 kompanish elektronike, shtat prej t $ila"e ishin
japone'e, ne bashkepunim me studiot me t medha t 2ollywood#it (disa prej t $ila"e
jane prone e kompani"e japone'e ne partneritet). 6ndustrit e kompjutera"e dhe e
telekomunika$ionit nuk u ftuan ne EpiknikF, dhe si re'ultat =>=#t u shpiken me qellim
kryesor prdorimin pr shitjen apo dhenien me qera t filma"e. !r shembull, nj tipar
standart sht kalimi ne kohe#reale (real#time) t Eskena"e t pistaF (pr ti lejuar prinderit
ti bejne filmat e shikueshem edhe pr femijet), audio me gjasht kanale dhe suportimi i
!an#and#1$an. >e$orit me t fundit i lejojne le%uesit e =>= (=>= player) t "endosin
ne menyre dinamike ne se t presin pjesen e djathte apo t majt t filmit (me raport
gjeresiJlartsi 9JH) pr tu prshtatur me tele"i'oret (me raporte gjeresiJlartsi MJ9).
Nj tjetr gje t $ilen industria e kompjutera"e nuk do ta kishte menduar ishte
mosprputhja nderkombetare midis disqe"e pr 1htetet e ;ashkuara dhe disqet pr
uropen, prseri standarte t ndryshme pr kontinente t ndryshme. 2olliwood#i kerkoi
ket E"e$oriF sepse filmat e rinj dalin ne fillim ne 1htetet e ;ashkuara dhe me pas
dergohen ne urope. 6dea ishte qe "ideotekat ne urope t mos blinin "ideot ne 1h.;.,.
me shpejt se sa ata qe do tu dergoheshin, duke ulur keshtu edhe shikimin e filma"e ne
kinemat uropiane. Ne se 2olliwood#i do t kishte drejtuar industrine e kompjutera"e,
do t kishte $akuar floppy#dis$ 9.7 in$h pr 1htetet e ;ashkuara dhe floppy#dis$ G $m
ruopen.
5.5.2 Formatimi i Diskut (Disc Formatting)
2ard disku prbehet nga nj pirg me pjata prej ali'hi alumini, ose qelqi, me diametr 7.H7
ose 9,7 in$h (& in$h[H.7M $m), (ose edhe me t "egjel ne komjuterat portati"e). Bdo pjat
ka nj shtrese oksid metali, t magneti'ueshem. (bas prodhimit, nuk ka asnj
informa$ion ne disk. !rpara se disku t prdoret, do pjat ka ne"oje ti nenshtrohet nj
formatimi t nivelit t ulet (low-level format), i bere nga software#i. /ormatimi ka t
beje me krijimin e gjurme"e (tra$ks), ku se$ila gjurme prmban nj numer t $aktuar
sektoresh, me hapesira t "ogla midis sektore"e. !rmbajtja e nj sektori tregohet ne
/ig.7#HMJ
Figura 5-24 Sektori i nj disku
2yrja (preamble) fillon me nj moti" t $aktuar bit#esh qe i lejon hardware#it t njohe
fillimin e nj sektori. 5jithashtu ajo prmban numrin e $ilindrit t sektorit si dhe disa
informa$ione me shume. (adhesia e pjeses qe mban t dhenat, "endoset nga programi
formatues i ni"elit t ulet. 1humi$a e disqe"e i kane sektoret nga 7&H#byte. !jesa **
(rror *orre$ting *ode) prmban informa$ion shtese qe mund t prdoret pr t 'gjidhur
gabimet ne le%im. Nuk sht e $uditshme qe pjesa e ** t ket &D#byte. !r me tepr, t
gjithe hard disqet kane disa sektore re'er"e, pr t 'e"endesuar sektoret me difekt
prodhimi.
!o'i$ioni i sektorit 8 ne se$ilen gjurme (tra$k) sht shmangur nga po'i$ioni ne gjurmen
paraardhese, kur behet formatimi i ni"elit t ulet. )jo 'h"endosje, qe quhet
shtremberimi-cilindrit (cylinder-skew), behet pr t prmiresuar efektshmerine. 6deja
sht, qe ti lejosh diskut t le%oje disa gjurme me nj "eprim t "etm t "a'hduar, pa
humbur t dhena. !roblemi mund t dallohet duke pare /ig.7#&L(a). 1upo'oni se nj
kerkese ka ne"oje pr &L sektore duke filluar nga sektori 8 ne gjurmen me t brendshme.
!r t le%uar &D sektoret e pare ne"ojitet nj rrotullim i plot i diskut, por duhet t bejme
nj kerkim pr t le"i'ur tek gjurma e jashtme dhe t marrim sektorin e &C. 5jat kohes
qe koka le%uese ka le"i'ur tek gjurma tjetr, sektori 8 i saj e ka kaluar koken, keshtu qe
ne"ojitet nj rrotullim i plot qe ky sektor t kaloje prseri posht. )y problem 'gjidhet
duke 'h"endosur sektoret, si$ tregohet ne /ig.7#H7.
Figura 5-25 Nj ilustrim i shtremberimit t cilindrit (cylinder skew)
(adhesia e shtremberimit t diskut "aret nga gjeometria e pajisjes. !r shembullJ nj
paisje me &8,888rrot/min rrotullohet ne Dmsek. Ne se nj gjurme mban 988 sektore, nj
sektor i ri do t kaloje do H8qsek. Ne se koha e kerkimit gjurme#me#gjurme sht
L88qsek, do t kene kaluar M8 sektore gjat kerkimit. )eshtu qe shtremberimi i $ilindrit
duhet t jet M8 sektore ne "end t 9 sektore"e t treguar ne /ig.7#H7. =uhet t prmendet
se nderrimi i koka"e le%uese kerkon nj kohe t fundme, pra ka edhe nj shtremberim-
t-kokes (head-skew) ashtu si$ ka shtremberim t $ilindrit, por shtremberimi#i#kokes
nuk sht shume i madh.
1i re'ultat i formatimit t ni"elit t ulet, kapa$iteti i diskut '"ogelohet, ne "aresi t
madhesise se hyrjes, hapesira"e ndermjet sektore"e dhe **, por gjithashtu edhe i
sektore"e re'er"e. 1hpesh kapa$iteti pas formatimit sht H8Q me i ulet se kapa$iteti i
para formatimit. 1ektoret re'er"e nuk bejne pjese ne kapa$itetin pas formatimit. N gjithe
disqet e nj lloji t $aktuar kane t njjtin kapa$itet kur dergohen, pa"aresisht numrit t
sektore"e t prishur qe kane (ne se numri i sektore"e t prishur i tejkalon numrin e atyre
re'er"e, pajisja do t kthehet, e nuk do t shitet).
)a nj ngatrrim rreth kapa$itetit t disqe"e, sepse disa prodhues reklamojne kapa$itetin
e diskut t pa formatuar. )jo behet pr ti bere t duken me t medha pajisjet e tyre,
ndryshe nga $fare jane me t "ertet. !r shembull konsideroni nj pajisje, kapa$iteti i pa
formatuar i t $iles sht H8%&8
G
byte. )jo mund t shitet si nj disk prej H85;.
(egjithat pas formatimit, "etm H
9M
r&C.H%&8
G
byte mund t mbushen me t dhena.
,koma me shume, puna ngatrrohet pr shkak se sistemi operati" do ta raportoje ket
kapa$itet si &D5;, jo &C.H5; sepse ai e konsideron &5;[H
98
(&,8C9,CM&,LHM)byte, dhe jo
&8
G
(&,888,888,888) byte.
5jerat nderlikohen me shume kur kosiderohet bota e komunika$ionit, ku &5bps do t
thot &,888,888,888 bit/sek. )jo ndodh sepse parashtesa giga ne t "ertet do t thot &8
G
( nj kilometr sht &888 metra , dhe jo &8HM metra). >etm me memorien dhe me
madhesite e disqe"e, kilo, mega, giga, tera jane sipas rradhesJ H
&8
,H
H8
,H
98
,H
M8
.
/ormatimi ndikon gjithashtu edhe ne efektshmeri. Ne se nj disk me &8,888 rrot/min ka
988 sektore pr gjurme, me nga 7&H byte pr do sektor, do ti duhen Dmsek pr t le%uar
&79,D88 byte ne nj gjurme, duke dhene nj shpejtsi prej H7,D88 byte/sek ose HM,M
(;/sek. ?sht e pamundur qe t le%oje me shpejt se kaq, pa"aresisht nga lloji i nderfaqes
qe ti "endosesh, edhe po t jet nj nderfaqe 1*16 me shpjtsi L8 (;/sek ose &D8
(;/sek.
!r t le%uar "a'hdimisht me ket shpejtsi do t duhej nj buffer i madh tek kontrolleri.
)onsideroni pr shembull, nj kontroller me nj buffer prej nj sektori madhesi, qe ka
marre komanden pr t le%uar dy sektore t "ijueshem. (basi le%ohet sektori i pare nga
disku, e pas llogaritjes se **, t dhenat duhet t trasferohen tek memoria kryesore.
5jat kohes qe kryhet ky trasferim, sektori tjetr e kalon koken le%uese. )ur mbaron
kopjimi ne memorien kryesore, kontrolluesi duhet t presi pothuajse pr nj periode
rrotullimi, ne menyre qe sekotri i dyt t "ije posht kokes le%uese prseri.
!roblemi mund t eliminohet duke i numeruar sektoret ndryshe, kur t behet formatimi.
Ne /ig. 7#HD (a) sht treguar numerimi (duke injoruar shtremberimin e $ilindra"e). Ne
/ig.7#HD (b) tregohet single interleaving, i $ili i jep kontrolluesit pak pushim gjat
sektore"e t njpasnjshem, ne menyre t tille qe t kopjoje buffer#in ne memorien
kryesore.
Ne se proesi i kopjimit sht shume i ngadalt, sht e ne"ojeshme double interleaving,
i treguar ne /ig. 7#HC($). Ne se nj kontroller ka nj buffer prej "etm nj sektori, nuk ka
rendesi ne se kopjimi do t kryhet nga kontrolluesi, nga *!+ apo nga =(,, asaj do ti
duhet nj fare kohe. !r t shmangur ne"ojen e nj numerimi t atille t sektore"e,
kontrolluesi duhet t jet ne gjendje qe t mbaje nj gjurme t tr. 1hume kontrollera
modern mund ta bejne ket gje.
(bas formatimit t ni"elit t ulet, disku sht i ndare ne parti$ion#one (pjese). -logjikisht
do parti$ion sht si nj disk i ndare. Nek !entium#i dhe ne shumi$en e kompjutera"e t
tjere, sektori 8 prmban master boot record, (t dhenat kryesore t fillimit t punes), e
$ila mban disa rreshta kod pr fillimin e punes se kompjuterit plus tabelen e parti$ione"e
ne fund.
Figura 5-26 (a) Pa interleaving (b)Single interleaving (c) Double interleaving
Nabela e parti$ione"e (partition table) jep sektorin e fillimit dhe madhesine e do
parti$ioni. Nek kompjuterat !entium, tabela parti$ione"e ka "end pr katr parti$ione. Ne
se t gjitha jane pr 3indows, ata do t quhen *J, =J, J e /J dhe do t trajtohen si pajisje
me "et. Ne se tre prej tyre jane pr 3indows e nj sht pr +N6R, athere 3indowsi
do ti quaj *J, =J, J. *=#.:(#i i pare do t quhet /J. !r t filluar punen kompjuteri
(boot) nga le%imi i njrit prej sektore"e, ai duhet t jet i shenuar si akti"e ne tabelen e
parti$ion"e.
2api i fundit ne prgatitjen e nj disku pr prdorim, sht kryerja e nj formatimi t
nivelit t lart (high-level format) t se$ilit parti$ion ("e$mas). )y opera$ion "endos
nj bllok t fillimit t punes se kompjuterit (boot blo$k), administrimin e hapesira"e
boshe (free list ose me bitmap), direktorin rrenj(root dire$tory) dhe nj sistem bosh file#
sh. 5jithashtu ai "endos nj kod ne tabelen e parti$ion"e qe tregon $ili sistem file#sh
sht prdorur ne at parti$ion. )jo behet sepse sisteme operati"e t ndryshem mund t
le%ojne sisteme file#sh t ndryshem dhe t papajtueshem (pr arsye historike). Nani
sistemi mund t filloje punen (boot#ed).
)ur ndi'et kompjuteri, ek'ekutohet ne fillim ;6:1 dhe pastaj le%ohet master boot re$ord.
)y program kontrollon se $ili nga parti$ionet sht akti"e. !astaj ai le%on sektorin pr
fillimin (boot se$tor) dhe e ek'ekuton at. 1ektori pr fillim (boot se$tor) prmban nj
program t "ogel i $ili kerkon direktorine rrenj e nj programi t $aktuar (ose t sistemit
operati" ose t nj ngarkuesi t sistemit t fillimit, me t madhI # bootstrap loader). ,i
program ngarkohet ne memorie dhe ek'ekutohet.
5.4.3 Algoritmet e planifikimit t krahut t diskut (Disk arm Scheduling
Algorithms)
Ne ket pjese do t shikojme disa $eshtje t prgjithshme rreth pajisje"e t disqe"e. Ne
fillim, mendoni se sa do t jet koha e ne"ojshme pr le%imin apo shkrimin e nj blloku.
)oha e ne"ojshme pr$aktohet nga tre faktoreJ
&
H &. koha kerkimit (koha pr t le"i'ur krahun ne $ilindrin e duhur)
9 H. "onesa e rrotullimit (koha qe sektori i duhur t rrotullohet posht kokes)
M 9. koha reale e transferimit t t dhena"e.
!r shumi$en e disqe"e, koha kerkimit mbi'otron mbi dy kohet e tjera. =uke ulur kohen
mesatare t kerkimit mund t prmiresohet ndjeshem efektshmeria.
Ne se pajisja pranon "etm nj kerkese dhe e prfundon at, pra /irst#*ome /irst#1er"ed
(/*/1), nuk mund t behet ndonj gje e madhe pr t prmiresuar kohen e kerkimit.
(egjithat mund t prdoret nj strategji tjetr, kur disku sht shume i ngarkuar. ?sht e
mundur qe gjat kohes qe krahu po punon pr plotsimin e nj kerkese, proese t tjera t
kene kerkesat e tyre pr sherbim nga disku. 1hume pajisje mbajne nj tabele, e rradhitur
sipas numrit t $ilindrit, me t gjitha kerkesat e paplotsuara pr do $ilinder. )erkesat e
shumta pr nj $ilinder mbahen ne lista 'in%hir, t $ilat e kane fillimin tek rrjeshtat e
tabeles.
(e ket lloj strukture t dhenash, mund t prmiresojme algoritmin e planifikimit first#
$ome, first#ser"ed. )osideroni nj disk imagjinar me M8 $ilindra. >jen nj kerkese pr
le%imin e nj blloku ne $ilindrin &&. 5jat kohes se kerkimit t $ilindrit &&, "ijne kerkesa
t reja pr $ilindrat &,9D,&D,9M,G dhe &H, me ket rradhe. ,to futen ne tabelen e kerkesa"e
t pambaruara (pending request), me nj list 'in%hir (linked list) pr do $ilinder.
)erkesat tregohen ne /ig. 7#HCJ
Figura 5-27 Algoritmi : i pari, kerkimi me i shkurtr (Shortest Seek Firs - SSF)
)ur kerkesa e pare (ajo pr $ilindrin &&) mbaron, pajisja mund t 'gjedhe se $ilen kerkese
t plotsoj me pare. =uke prdorur /*/1 ajo do t shkonte tek $ilindri &, pastaj tek 9D, e
keshtu me rradhe. )y algoritem do $oje ne nj 'h"endosje prej &8,97,H8 &L,H7, dhe 9
$ilindrash respekti"isht, pr nj total prej &&& $ilindrash.
Ndryshe, pajisja mund ti prgjigjet gjithmone kerkeses me t afert t pares, pr t
minimi'uar kohen e kerkimit. (e kerkesat e /ig.7#HC, sekuen$a e kerkesa"e do t jet &H,
G, &D, &,9M dhe 9D, t treguara me "ijen e thyer posht fig.7#HC. (e ket renditje, le"i'jet
e krahut do t jene &, H, C, &7, 99 dhe H, me nj total prej D& $ilindrash. )y algoritem
Shortest Seek First (SSF i pari, kerkimi me i shkurtr) pothuajse e prgjysmon
kohen e kerkimit ne krahasim me /*/1.
/atkeqesishit, 11/ ka nj problem. 1upo'oni se gjat kohes se kryerjes se kerkesa"e t
/ig. 7#HC do "ijne "a'hdimisht kerkesa t reja. !r shembull, mbasi krahu ka shkuar tek
$ilindri &D, "jen nj kerkese pr $ilindrin L, e $ila do t ket prioritet mbi kerkesen pr
$ilindri &. Ne se me pas "jen nj kerkese pr $ilindrin &9, krahu do t shkoje tek $ilindri
&9, ne "end t $ilindrit &. (e nj disk t ngarkuar, krahu do t tentoje t qendroje ne mes
t diskut shumi$en e kohes. )eshtu kerkesat ne dy skajet do tu duhet t presin pr nj
fluktua$ion statistikor t kerkesa"e t reja, i $ili t shkaktoje mungesen e kerkesa"e ne
mes t diskut. )erkesat larg qendres do t kene sherbim t "arfer. <ellimet e kohes
minimale dhe bara'i'e se kohes se pritjes jane ne konflikt ne ket rast.
dhe ndertesat e larta duhet t prballohen me ket problem. !roblemi i planifikimit t
le"i'jes se nj ashensori ne nj ndertse t lart, sht i njjt me at t planifikimit t
le"i'jes se krahut t diskut. )erkesat "ijne "a'hdimisht duke therritur ashensorin ne nj
kat t $aktuar ($ilinder). )ompjuteri mund t mbaje rendin e kerkesa"e ne t $ilen
klientt kane shtypur butonin dhe ti sherbeje ata duke prdorur /*/1. ,i mund t prdore
edhe 11..
(egjithat, shumi$a e ashensore"e prdorin nj alogoritem tjetr pr ekuilibrimin e
efektshmerise dhe drejtsise. ,ta "a'hdojne t le"i'in ne t njjtin drejtim derisa nuk ka
me kerkesa ne at drejtim. !astaj ata nderrojne drejtim. )y algoritem, i njohur si ne botn
e ashensore"e ashtu edhe ne at te disqe"e me emrin algoritmi i ashensorit (elevator
algorithm), ka ne"oje qe software#i t mbaje nj bit pr drejtiminJ lart ose posht. )ur
mbaron nj kerkese, kontrollehet bit#i i drejtimit. Ne se sht lart krahu apo kabina
le"i'in tek kerkesa lart me e afert, e pambaruar. Ne se nuk ka me kerkesa t pambaruara
ne ket drejtim bit#i i drejtimit ndryshohet. )ur bit#i sht posht, le"i'ja behet ne drejtim
t kerkeses me t afert posht, t pambaruar, ne se ka.
/igura 7#HL tregon 'batimin e algoritmit t ashensorit duke prdorur t njjtat kerkesa si
ne /ig.7#HC, duke supo'uar se te bit#i drejtimi ka qene fillimisht lart. .enditja ne t $ilen
u sherbehet kerkesa"e sht &H, &D, 9M, 9D, G dhe &. )jo $on ne keto le"i'je t krahutJ &,
M, &L, H, HC dhe LI me nj shume prej D8 $ilindrash. Ne ket rast algoritmi i ashensorit
sht pak me i mire se 11/, megjithese 'akonish sht me i keq. Nj "e$ori e algoritmit
t ashensorit sht qe kufiri maksimal i numrit total t le"i'je"e, pa"aresisht shprndarjes
se kerkesa"e, sht sa dyfishi i numrit t $ilindra"e.
Figura 5-28 Algoritmi i ashensorit pr menaxhimin e kerkesave t diskut
Nj modifikim i ketij algoritmi, me nj kohe t prgjigjes me pak t ndryshueshme, sht
t kerkosh ne at drejtim. )ur $ilidri me numrin me t madh dhe me nj kerkese t
pambaruar, mbaron pune, krahu shkon ne $ilindrin me numer me t "ogel dhe me nj
kerkese t pambaruar. (e pas "a'hdo t le"i' ne drejtimin rrits. 1i re'ultat, $ilindrit me
numrin me t "ogel mendohet t jet mbi $ilindrin me numrin me t madh.
=isa kontrollues t diskut bejne t mundur qe software#i t kontrolloje numrin e sektorit
t pranishem nen koken le%uese. (e nj kontrollues t tille, sht e mundur nj organi'im
tjetr. Ne se ka dy ose me shume kerkesa t paplotsuara pr t njjtin $ilinder, pajisja
mund t sherbeje kerkesen, sektori i t $iles do t kaloje e para posht diskut. >ini re se,
kur nj $ilinder ka disa gjurme, kerkesat e njpasnjshme mund t jene pr gjurme t
ndryshme, pa "onesa t tjera ne kohe. )ontrolleri mund t 'gjedhe donjren prej koka"e
menjehere, sepse 'gjedhja e kokes le%uese nuk ka t beje as me le"i'je t krahut, as me
"onesa ne rrotullim.
Ne se disku ka "eti t tille qe koha e kerkimit sht me e "ogel se "onesa e rrotullimit,
athere duhet t prdoret nj strategji tjetr prmiresimi. )erkesat e paplotsuara, duhet t
rradhiten sipas numrit t sektorit. 1apo t afrohet sektori tjetr qe do le%ohet, krahu duhet
t le"i'e tek gjurma e duhur pr ta le%uar apo shkuajtur.
Ne disqet modern, "onesat e kerkimit dhe rrotullimit ndikojne kaq shume ne efekshmeri,
saqe t le%osh nj sektor t "etm do here, nuk sht aspak e frytshme. !r ket arsye,
shume kontrollues disqesh le%ojne dhe mbajne pr pak kohe ($a$he) gjithmone disa
sektore, edhe kur ne"ojitet "etm nj. @akonisht nj kerkese pr le%imin e nj sektori, do
t $oje ne le%imin e disa apo t t gjithe sektore"e t tjere t gjurmes, ne "aresi t
madhesise se kujteses $a$he t kontrolluesit. =isku i treguar ne /ig.7#&C, ka ne $a$he prej
H(; ose M(;, pr shembull. !rdorimi i $a$he pr$aktohet nga kontrolluesi. (e
menyren me t thjesht, $a$he ndahet ne dy pjese, nj pr le%imin dhe nj pr shkrimin.
Ne se kerkesa pasuese mund t plotsohet nga kujtesa $a$he, t dhenat e kerkuara
kthehen menjehere.
=uhet prmendur se $a$he#ja e kontrolluesit t diskut sht plotsisht e pa"arur nga
$a$he#ja e sistemit operati". *a$he#ja e kontrolluesit 'akonisht mban blloqe t dhenash t
$ilat ne t "ertet nuk jane kerkuar pr le%im, por ishte i prshtatshem le%imi i tyre, sepse
u ndodhi t kalonin posht kokes, si efekt anesor i le%imit t nj sektori. Ndersa, do
$a$he tjetr qe mban sistemi operati" do prmbaje blloqe t $ilat jane le%uar ne ba'e t
nj kerkese dhe t $ilat sistemi operati" mendon se do ti duhen prseri ne t ardhmen.
)ur nj kontroller ka disa pajisje, ai duhet t mbaje nga nj tabele kerkesash t
paplotsuara (pending requests) pr do pajisje. )ur ndonj nga pajisjet sht papune,
duhet t krijohet nj kerkim qe t le"i'e krahun tek $ilindri, ku do t le%ohet me "one
(duke supo'uar se kontrolleri lejon kerkimet e mbi"endosura). )ur nj trasferim t
dhenash mbaron, behet nj kontroll pr t pare ne se ndonj nga pajisjet sht ne $ilindrin
e duhur. Ne se ka nj ose me shume, trasferimi tjetr mund t filloje nga ajo pajisje qe
sht "endosur ne $ilindrin e duhur. Ne se asnj nga krahet nuk sht "endosur ne "endin
e duhur, dri"er#i duhet t urdheroje nj kerkim t ri (seek) ne pajisjen qe sapo mbaroi
trasferimin, dhe t prese interruptin tjetr pr t pare se $ili nga krahet ka arritur i pari.
?sht e rendesishme t kuptohet se t gjithe algoritmat e mesiprm supo'onin qe
gjeometria e disqe"e reale sht e njjt me at "irtual. Ne se nuk jane t tille, planifikimi
i kerkesa"e t disqe"e nuk ka kuptim sepse sistemi operati" nuk mund t dalloje ne se
$ilindri M8 apo $ilindri 9G sht afer $ilindrit 9G. Nga ana tjetr, ne se kontrolluesi i disku
mund t pranoje kerkesa t shumta menjeheresh, ai mund ti prdor "et keto algoritme.
Ne ket rast algoritmat jane t "lefshme, por t 'batuara ne nj ni"el me posht, tek
kontrolluesi.
5.4.4 Trajtimi i Gabimeve (Error Handling)
!rodhuesit e disqe"e po kapr$ejne limitet e teknologjise duke rritur gjithnje e me shume
dendesine lineare t bite#"e. Nj gjurme ne mes t nj disku 7,H7 in$h ka nj perimetr
rreth 988mm. Ne se gjurma mban 988 sektore prej 7&H byte, dendesia lineare mund t
jet rreth 7888 bit/mm, duke marre parasysh se nj pjese humbet pr fillimin e sektore"e
(preable), ** dhe hapesirat ndermjet sektore"e. !r t regjistruar 7888 bit/mm ne"ojitet
nj siprfaqe shume uniforme dhe nj mbulese shume e mire oksidi. /atkeqesish, nuk
sht e mundur prodhimi i disqe"e me keto spe$ifikime, pa difekte. !r sa kohe
prmiresohet teknologjia e prodhimit ne at pike qe lejon punen pa gabime me keto
dendesi, projektuesit e disqe"e do t prdorin dendesi edhe me t larta pr t rritur
kapa$itetin. )jo gje do t rifusi prseri, me shume mundesi difektet.
=ifektet e prodhimit $ojne ne sektore t prishur, t $ilt jane sektore nga ku nuk mund t
rile%ohet nj "lere e sapo shkruar. Ne se difekti sht shume i "ogel, le t themi "etm
disa bit, sht e mundur t prdoret ky sektori i prishur dhe ** le t korigjoje do here
gabimet. Ne se difekti sht me i madh, gabimet nuk mund t fshihen.
)a dy 'gjidhje t prgjithshme pr sa i prket blloqe"e t prishur (bad blo$k)J t merret
kontrolluesi me to ose t merret sistemi operati" me to. Ne 'gjidhjen e pare, prpara se
disku t niset pr shitje nga fabrika, testohet dhe ne t shkruhet nj list me sektoret e
prishur. Bdo sektor i prishur, 'e"endesohet nga nj sektor re'er"e.
)a dy menyra pr ta bere ket. Ne /ig. 7#HG(a), shohim "etm gjurme t nj disk me 98
sektore dhe dy re'er"e. 1ektori C sht me difekt. ,jo $fare mund t beje kontrolleri,
sht t shenoje nj nga sektoret re'er"e si sektori C, si$ tregohet ne fig.7#HG(b). (enyra
tjetr sht qe t 'h"endosesh t gjithe sektoret me nj "end, si$ tregohet ne /ig.7#HG($).
Ne t dy rastet kontrolluesi duhet t njohe se $ilt jane sektoret re'er"e dhe ato t prishur.
,i mban shenim ket informa$ion ne nj tabele t brendshme (nj pr do gjurme) ose
duke i rishkruar pjeset hyrese (preamble) t sektore"e, pr ti dhene sektore"e t ndryshuar
numrin e duhur. Ne se shkruhen pjese hyrese (preambles), metoda e figures 7#HG($),
kerkon me shume pune, por pa dyshim qe efektshmeria do t jet me e lart. gjithe
gjurma do t mund t le%ohet me nj rrotullim.
Figura 5-29 (a) Gjurma e nj disku me nj sektor t prishur. (b) Zevendesimi i
sektorit t prishur me nj rezerve. (c)Zhvendosja e t gjithe sektoreve pr t
anashkaluar nj t prishur
5abimet mund t lindin edhe gjat punes, pasi sht instaluar pajisja. 5jeja e pare qe
behet kur kemi nj gabim t $ilin ** nuk mundt ta rregulloje, sht thjesht t pro"ohet
edhe nj here le%imi. =isa gabime jane t prkoheshme, do t thot se shkaktohen nga
grim$a pluhuri posht kokes qe do t largohen ne pro"en e dyt. Ne se kontrolluesi dallon
se po le%on nj gabim t "a'hdueshem ne nj sektore t $aktuar, ai mund t kaloje tek ata
re'er"e, prpara se sektori t prishet plotsisht. Ne ket menyre, nuk humbasin t dhena
dhe sistemi operati" e prdoruesi as nuk e "ene re problemin. @akonisht metoda e /ig. 7#
HG(b) duhet t prdoret kur sektoret e tjere kane t dhena. !rdorimi i metodes se /ig.7#
HG do t kerkonte jo "etm t rishkruaje pjeset hyrese (preamble), por edhe t kopjoje t
dhenat.
(e pare u tha se ka dy menyre pr t trajtuar gabimetJ ti 'gjidhe kontrolluesi ose ti
'gjidhe sistemi operati". Ne se kontrolluesi nuk ka mundesine qe t rregulloje sektoret ne
menyre t pandjeshme, si$ u tha me sipr, athere sistemi operati" duhet beje t njjtn
gje por me software. Ne fillim ai duhet t marre nj list me sektoret e prishur, ose duke i
le%uar nga disku, ose duke e testuar "et t gjithe diskun. )ur i ka gjetur sektoret e
prishur, ai mund t ndertoje tabelen e rinumerimit. Ne se sistemi operati" do t prdore
'gjidhjen e /ig.7#HG($), ai duhet t 'h"endose me nj sektor me sipr t dhenat nga
sektori C ne sektorin HG.
Ne se merret sistemi operati" me rinumerimin e sektore"e, duhet sigurohet qe sektoret e
prishur t mos kene ndonj file dhe gjithashtu qe ata t mos gjenden asnjehere ne listn
ose hartn e hapesira"e boshe (free list ose bitmap). Nj 'gjidhje e ketij problemi sht
krijimi i nj file#i i $ili prbehet nga t gjithe sektoret e prishur. Ne se ky file nuk
"endoset ne sistemin e file#"e, prdoruesi nuk ka mundesine qe ta le%oje gabimisht (ose
me keq akoma ta fshije at, pr t liruar "end)
(egjithat ka edhe nj problem tjetrJ ba$k up (kopjet re'er"e). Ne se diskut i behet
ndonj kopje re'er"e file pr file, sht e rendesishem qe programi kopjues t mos
mundohet t kopjoje blloqet e prishur t file#"e. !r t parandaluar ket, sistemi operati"
duhet t fsheh file#in qe prbehet nga blloqet e prishur kaq mire, saqe edhe nj program
pr ba$k up mos ta gjeje at. Ne se disku kopjohet sektor pr sektor do t jet e "eshtire,
mos e pamundur, parandalimin e gabime"e t le%imit gjat kopjimit. 1hpresa e "etme
sht qe programi kopjuese t ket aq E'gjuarsiJ sa t dore'ohet pas &8 deshtime"e dhe t
"a'hdoje me sektorin tjetr.
1ektoret e prishur nuk jane burimi i "etm i gabime"e. 5abime kerkimi ndodhin pr
shkak t probleme"e mekanike tek krahu. )ontrolluesi ndjek po'i$ionin e krahut. !r t
reali'uar nj kerkim, ai i leshon nj seri pulsesh motorrit t krahut, nj puls pr $ilinder
pr t le"i'ur krahun mbi nj $ilider t ri. )ur krahu mberrin aty ku duhet, kontrolluesi
le%on numrin e $ilindrit nga pjesa hyrese (preamble) e sektorit me t afer. Ne se krahu
sht ne "endin e gabuar, gjenerohet nj gabim kerkimi (seek error).
1humi$a e kontrollues"e t disqe"e rregullojne gabimet ne kerkim automatikisht, por
shumi$a e kontrollues"e t floppy#it (duke prfshire edhe !entium#in) thjesht "endosin
nj bit gabimi dhe ia lene dri"er#it t merret me t. =ri"er#i 'gjidh ket problem duke
dhene nj komande rikalibrimi, pr t le"i'ur krahun sa me ne periferi t diskut dhe t
ri"endose $ilindrin qe kontrolleri mendon t jet 8. @akonisht kjo 'gjidh problemin. Ne se
nuk e 'gjidh, pajisja duhet t rregullohet.
1i$ kemi pare, kontrolleri sht me t "ertet nj kompjuter i "ogel i spe$iali'uar, me
software#in e tij, "ariabla, buffer#a dhe ndonj here me gabimet e tij t programimit
(bug). (und t ndodh qe nj seri ngjarjesh t pa'akonta, si$ sht ardhja e nj interrupti
ne nj pajisje, njkohesisht me komanden e rikalibrimit ne nj tjetr, t shkaktojne
probleme (shfaqjen e bug#e"e) dhe t sjelle nj $ikel t pafund t kontrolluesit ose
humbjen e asaj $fare po bnte me prpara. !rojektuesit e kontrolluesa"e 'akonisht
parashikojne rastin me t keq dhe i pajisin ata me nj kunj (pin) ne $hip i $ili kur
ne"ojitet e detyron kontrolluesin t harroje $faredo gjeje qe po bnte dhe t rifilloje
(reset) nga e para. Ne se do gje tjetr deshton mund t "endos nj bit t $aktuar ne &, pr
t kerkuar ket sinjal dhe reset#uar kontrollerin. Ne se kjo nuk punon, e "etmja gje qe
mund t beje dri"er#i sht t shfaqe nj mesa'h gabimi dhe t dore'ohet.
.ikalibrimi i nj disku, pr"e$ nj 'hurme t $uditshme, nuk sht shqetsuese.
(egjithat ka nj situat ku rikalibrimi sht nj problem i madhJ sistem me detyrime t
kohes#reale (real#time $onstrain). )ur po luhet nj "ideo nga hard disku, ose po shkruhen
ne *=#.:( file nga hard disku, sht e ne"ojshme qe bitet t "ijne nga hard disku me
nj shpejtsi uniforme. Ne keto kushte rikalibrimi fut hapesira ne rrjedhen e bite#"e (bit
stream), e $ila sht e pa pranueshme. !ajisje spe$iale, t quajtura disqe ,> (,udio
>ideo dis$), t $ilat nuk rikalibrohen kurre, prdoren pr keto aplika$ione.
5.4.5 Ruajtje e Qendrueshme (Stable Storange)
!ame qe disqet nganjehere kane gabime. 1ektore t mire mund t prishen papritmas.
gjithe pajisja mund t prishet pa parashikim. .,6=#et mbrojne nga prishja e disa
sektore"e ose edhe deshtimi i nj pajisje t tr. (egjithat ata nuk mbrojne nga gabimet
qe ne shkrim t t dhena"e. 5jithashtu nuk mbrojne nga deshtimet gjat shkrimit, t $ilt
prishin t dhenat origjinale pa i 'e"endesuar ato me t tjera.
!r disa 'batime, sht themelore qe t dhenat t mos humbin ose t prishen kurre, edhe
ne se ka gabime t diskut ose *!+#s. Nj disk ideal duhet t punoje gjithe kohes pa
gabime. /atkeqesisht kjo nuk mund t arrihet. ,jo $fare mund t arrihet sht nj disk,
nensistem, i $ili ka ket "etiJ kur komandohet nj shkrim, disku ose shkruan pa gabime t
dhenat, ose nuk bn asgje, duke i lene t dhenat ek'istuese t paprekura. Nj sistem i tille
quhet stable storage (ruajtje e qendrueshtme) dhe 'batohet me ane t software#it
(-ampson dhe 1turgis, &GCG). !osht po prshkruajme nj "ariant t idese origjinale.
!rpara se t prshkruajme algoritmin, sht e rendesishme t kemi nj model t qart t
gabime"e t mundshme. (odeli supo'on se kur shkruhet nj bllok (nj ose me shume
sektore), shkrimimi sht ne rregull ose i gabuar dhe ky gabim mund t detektohet nga
nj le%im pasues i $ili kontrollon "lerat e fusha"e t **. Ne parim nj 'bulim i sigurt i
gabime"e nuk sht i mundur kurre. !r shembull me nj &D byte **, t $ilat sherbejne
pr kontrollin e 7&H byte t sektorit, ka H
M8GD
"lera t mundshme t t dhena"e dhe "etm
H
&MM
"lera t mundshme t **. )eshtu ne se ndodh nj ngatrrese gjat nj shkrimi por
** sht ne rregull, ka biliona kombinime t mundshme t gabuara qe $ojne ne t
njjtn **. Ne se ndodh njri prej tyre, gabimi nuk do t 'bulohet. !robabiliteti qe nj e
dhene rastesore t ket ** e duhur pr mos tu 'buluar sht rreth H
#&MM
, e $ila sht aq e
"ogel sa mund ta quajme 'ero, por ne t "ertet nuk sht 'ero.
(odeli gjithashtu merr parasysh faktin se nj sektor i shkruar mire, mund t prishet
"et"etiu dhe t behet i pale%ueshem. (egjithat, supo'ohet se nj ngjarje e tille sht kaq
e rralle, saqe probabiliteti i prishjes se t njjtit sektor ne nj pajisje tjetr (t pa"arur)
gjat nj inter"ali t arsyeshem kohe (per shembull nj dit) sht aq e "ogel sa t
injorohet.
(odeli gjithashtu supo'on se edhe *!+ deshton. Ne ket rast ai thjesht ndalon. Bdo
shkrim i diskut ne $astin e deshtimit, gjithashtu nderpritet, qe $on ne t dhena t gabuara
ne nj sektor dhe ** t gabuar, i $ili mund t 'bulohet me "one. (e gjithe keto kushte,
stable storange mund t behet &88Q i besueshem ne kuptimin qe kur shkruhet ose
shkruhet pa gabime, ose lihen t dhenat e "jetra t paprekura. 1igurisht, nuk mbron nga
katastrofat natyrore, si pr shembull renia e nj termeti dhe kompjuteri qe bie nga &88m
lartsi ne nj liqen me lla"e. ?sht e "eshtire t mbrohesh ne keto rrethana me ane t
software#it.
1table storange prdor nj $ift disqesh identike, ku blloqet e njjta ne disqe"e t
ndryshem formojne bashke nj bllok pa gabime. Ne mungese t gabime"e blloqet
korresponduese ne t dy pajisjet jane t njjta. Njri prej tyre mund t le%ohet pr t
arritur ne t njjtin re'ultat. !r t arritur ket qellim, jane pr$aktuar tre "eprimet e
meposhtme.
& 1. Shkrim i qendrueshem (stable writes). Nj shkrim i qendrueshem ka t beje
me shkrimin e bllokut ne diskun & t parin, pastaj ne le%imin e tij pr "erifikim.
Ne se nuk sht shkruar mire, shkrimi dhe le%imi prseritn derisa mos ket
gabime, ose deri ne n here. Ne se pas n deshtime"e rradha'i, blloku "endoset ne
nj sektor re'er"e, dhe "eprimi prsritet derisa t ket sukses, pa"aresisht se sa
sektor re'er"e duhet t pro"ohen. (bas shkrimit ne pajisjen & u krye me sukses,
do t shkruhet blloku i njjt ne pajisjen H, dhe do t rile%ohet, disa here, derisa
edhe ketu shkrimi t ndodhe pa gabime. Ne mungese t deshtime"e t *!+#se,
kur mbaron nj shkrim i qendrueshem, blloku sht shkruajtur pa gabime ne t dy
pajisjet dhe sht "erifikuar tek t dyja.
& 2. Leximi i qendrueshem (stable read). Nj le%im i qendrueshem le%on ne fillim
bllokun nga pajisja &. Ne se kjo ka nj ** jo te sakt, le%ohet prseri, deri ne n
here. Ne se t gjitha le%imet japin nj ** gabim, blloku prkats do t le%ohet
tek pajisja H. =uke ditur se nj shkrim i qendrueshem krijon dy kopje t rregullta,
dhe se sipas supo'imit tone probabiliteti qe nj bllok t prishet tek t dy pajisjet
sht i negli'hueshem, nj le%im i qendrueshem sht gjithnj i sukseshem.
& 3. Rimarja nga deshtimet (Crash recovery). (bas nj deshtimi, nj program
rimarje (re$o"ery) shqyrton t dy disqet duke krahasuar blloket e njjta. Ne se nj
$ift blloqesh jane pa gabime dhe t njjt, nuk behet asgje. Ne se njri prej tyre ka
nj gabim ne **, blloku me gabim rishkruhet me t dhenat e bllokut tjetr pa
gabime. Ne se nj $ift blloqesh nuk kane gabime, por jane t ndryshem, blloku ne
pajisjen & shkruhet ne bllokun e pajisjes H.
Ne mungese t deshtime"e t *!+, kjo skeme punon gjithmone sepse shkrimi i
qendrueshem githmone shkruan dy kopje t "lefshme pr nj bllok dhe u supo'ua se
gabime t "et"etishme nuk ndodhin anjehere njkohesisht ne t dy kopjet e tij. !o ne se
ndodh nj deshtim i *!+ gjat nj shkrimi t qendrueshemU )jo "aret nga $asti se kur
ndodh ky deshtim. )a pese mundesi, si$ tregohet ne /ig. 7#98J
Figura 5-30 Analiza e ndikimit t deshtimeve ne shkrimin e qendrueshem
Ne /ig. 7#98 (a) deshtimi i *!+ ndodh prpare se t shkruhet ndonj nga kopjet e
bllokut. 5jat rrimarjes nga deshtimi, asgje nuk do t ndryshoje dhe t dhenat e "jetra do
t ek'istojne akoma, gje qe lejohet.
Ne /ig.7#98(b) deshtimi i *!+ ndodh gjat shkrimit t pajisjes &, duke shkaterruar
prmbajtjen e bllokut t saj. (egjithat programi rrimarjes do t detektoje gabimin dhe
do t kopjoje bllokun e pajisjes H ne bllokun e prishur t pajisjes &. )eshtu efekti i
deshtimit 'hduket dhe rrimeret plotsisht gjendja e meparshme.
Ne /ig.7#98($) deshtimi i *!+ ndodh pasi sht shkruar pajisja & por prpara shkrimit t
pajisjes H. ?sht arritur pika e moskthimitJ programi i rrimarrjes do kopjoje bllokun nga
pajisja & ne pajisjen H. 1hkrimi prfundon pa gabime.
/ig.7#98(d) sht ngjashme me /ig.7#98(b). 5jat rrimarjes, blloku pa gabime
mbishkruhet ne at t prishurin. !rseri, "lera e t dy blloqe"e do t jet ajo e bllokut t
ri.
1e fundmi, ne /ig.7#98(e) programi i rrimarjes shikon se t dy blloqet jane t njjt,
keshtu qe nuk ka ne"oje pr ndryshime dhe shkrimi prfundon me sukses.
)a disa prmiresime t mundshme t kesaj skeme. 1i fillim, krahasimi i t gjithe $ifte"e
t blloqe"e gjat rrimarjes sht e mundur, por kerkon shume kohe. Nj prmiresim i
madh sht t ruash numrin e gjurmes se bllokut i $ili po shkruhej, keshtu qe do t
ne"ojitet t kontrollohet "etm nj bllok gjat rrimarrjes. =isa kompjutera kane nj
memorie t "ogel jo t 'hdukshme (nonvolatile RAM) e $ila sht nj memorie *(:1
spe$iale e ushqyer nga nj bateri litiumi. )eto bateri 'gjasin "ite, mundesisht gjat gjithe
jets se kompjuterit. Ndryshe nga memoria kryesore, e $ila humbet mbas nj deshtimi,
non"olatile .,( nuk humbet pas nj deshtimi. :ra e dits mbahet ketu (dhe rritet nga
nj qark spe$ial). )jo shpjegon faktin qe kompjuteri di gjithmone oren edhe po ta heqesh
nga pri'a.
1upo'oni se disa byte t non"olatile .,( jane ne dispo'i$ion t sistemit operati".
1hkrimit i qendrueshem mund t "endosi numrin e bllokut qe do t rifreskoje ne nj
non"olatile .,( prpara se t filloje shkrimin. !as shkrimit t suksesshem, numri i
bllokut tek non"olatile .,( mbishkruhet me nj numer jo t "lefshem, per shembull,.
#&. Ne keto kushte, mbas nj deshtimi, programi i rrimarjes mund t kontrolloje
non"olatile .,( pr t pare, ne se po kryhej nj shkrim gjat deshtimit. Ne se po, $ili
ishte blloku qe po shkruhej kur ndodhi deshtimi. (e pas dy kopjet e bllokut mund t
kontrollohen pr saktsimin dhe prputhjen e tyre.
Ne se nuk ka non"olatile .,(, ai mund t sajohet si$ "ijon. Ne fillim t nj shkrimi t
qendrueshem, nj bllok fiks t pajisjes & shkruhet me numrin e bllokut qe do t shkruhet.
)y bllok rile%ohet pr ta "erifikuar. !asi t shkruhet pa gabime, i njjti bllok shkruhet ne
pajisjen H dhe "erifikohet. !as nj shkrimi t qendrueshem, t dy keto blloqe
mbishkruhen me nj numer t pa"lefshem. dhe ketu, mbas nj deshtimi sht e mundur
t pr$aktohet lehtsisht ne se po kryhej nj shkrim i qendrueshem ose jo. )jo teknike
kerkon me shume "eprime me diskun, pr t shkruar nj bllok pa gabime, keshtu qe duhet
t prdoret sa me rralle.
dhe nj pike tjetr qe ia "len ta prmendesh. Ne supo'uam se "etm nj prishje e
"et"etishme t nj blloku ndodh gjat dits. Ne se kalojne disa dit, mund t prishet
edhe kopja e tij. !ra, nj here ne dit duhet t behet nj kontroll i t dy disqe"e pr t
rregulluar demtimet e mundeshme. Ne ket menyre, do mengjes t dy disqet jane
gjithmone identik. dhe ne se prishen t dy blloqet e nj $ifti, prishen gjat nj periudhe
disa ditore, t gjithe gabimet rregullohen.
5.5 CLOCKS
*lo$ks (gjithashtu te quajtur timers ~kohezues) jane te rendesishme ne punen e nje
multi#programuesi per nje sere arsyesh. ,ta mirembajne oren e sakte dhe ndalojne nje
proes te monopoli'oje *!+#ne, per$ te tjera"e. *lo$k#u i softwaret mund te marri dhe
formen e nje dri"er te pajisjes, megjithese $lo$k eshte nje bllok pajisjesh, si disku, jo nje
karakter pajisjesh, si mausi. Ne seksionet e meposhteme ne do ta anali'ojme $lo$k ne
fillim si nje $lo$k hardware dhe pastaj si $lo$k software.
5.6 CHARACTER-ORIENTED TERMINALS
Bdo kompjuter ka t paktn nj tastier dhe nj ekran (monitor ose ekran t shesht) qe
prdoren pr t komunikuar me t. (egjithat, tastiera dhe ekrani ne nj kompjuter
personal jane paisje teknikisiht t ndara, t $ilat punojne se bashku. Ne mainframe, ka
shume prdoruesa t ndryshem ne distan$e t $ilt prdorin paisje me nj tastier dhe nj
ekran t ngjitur ne t. )eto paisje historikishte jane quajtur terminale. Ne do t prdorim
ket term edhe kur t diskutojme per kompjuterat personal.
Nerminalet i kemi ne shume forma. Nre nga format qe i shohim me shpesh ne praktik
janeJ
&. Nerminale t jashtm me nderfaqe seriale .1#H9H t prdorur ne mainframe.
H. kran t kompjutera"e personal me 5+6.
9. Nerminale rrjeti.
Ne seksionin pasardhes do t prshkruajme se$ilin nga keta tipe me rradhe.
5.6.1 RS-232 Terminal Hardware
Nerminalet .1#H9H jane paisje hardware t $ilat prmbajne tastieren dhe ekranin, t $ilat
komunikojne me nj nderfaqe seriale, nj bit ne nj $ast kohe (shiko /ig.7#9M). )eto
terminale prdori konektor me G ose H7 pin, nga t $ilt nj pin prdoret pr t
transmetuar t dhenat, nj pin sht pr t marre t dhenat dhe nj tjetr sht toka. !inet
e tjera jane pr t kontrolluar funksionet e ndryshme, shumi$a e tyre nuk prdoret. -injat,
ne t $ilat karakteret dergojn nj bit ne nj $ast kohe quhen linja seriale. N gjithe
modemat prdorin ket nderfaqe. Ne +N6R linjat seriale kane emra si /,e#/tty &
dhe /,e#/tty H. Ne 3indows ato kane emrat *:( & =2 *:( H.
!r t derguar nj karakter ne nj terminal .1#H9H ose modem neprmjet nj linje seriale,
kompjuterit i duhet t transmetoj nj bit ne nj $ast kohe, me nj bit ne fillim si prefi% i
ndjekur nga nj ose dy bit ndalimi qe $aktone kufijt e karakterit. Nj bit pariteti mund t
"endoset duke paraprire bitin e ndalimit, gjithesesi kjo kerkohet "etm ne komunkimet ne
sistemet mainframe.
Nerminalet .1#H9H jane akoma shume t prdorshme ne botn e mainframe#e"e t $ilat
bejne t mundur komunikimin me user#at ne distan$e duke prdorur modem#at ose nj
linj telefonike. )eto gjejne prdorim ne agjensit e fluturimit, ne sistemet bankare dhe ne
industri t ndryshme. dhe kur ato 'e"endesohen nga kompjutera personal, !* 'akonisht
e emulojne terminalin e "jetr .1#H9H qe t shmangin ndryshimet ne softwaret e
mainframe#it.
)eto terminale prdoren pr t dominuar botn e minikompjutera"e. Nj arritje e madhe
e software#"e qe prdoren ne sistemet e tilla, ba'ohen ne keto terminale. !r shembull t
gjithe sistemet e +N6R i suportojne keto paisje.
5jithesesi, akoma me e rendesishme, shume sisteme +N6R koherent t japin mundesin e
krijimit t nj dritareje, e $ila prmban linja me numra t nj teksti. 1hume programuesa
punojne ne te%t mode ne dritare t tilla si ne ndonj kompjuetr personal, ose ne
workstation. )eto dritare 'akonisht stimulojne disa terminale .1#H9H dhe keshtu qe ato
kane nj prdorim sa me t gjere t software#it ba'e t shkruajtur pr ket terminal.
Nastiera dhe softaware i terminalit pr ket emulim terminali sht njsoj si te terminali
real. (eqene se emulatoret e terminale"e jane ne prdorim t gjere, software sht
akoma 6 rendesishem, keshtu qe do t prshkruajme ne dy seksionet e meposhtme.
.1#H9H sht $hara$ter oriented. (e ket kuptojme qe ekrani ose dritarja tregojne nj
numer t linja"e t nj teksti, se$ila ne nj mase maksimale. Nj prmase normale sht
H7 linja me L8 karaktere se$ila. Ndone se disa karaktere jane ndonjhere mbshtets, keto
terminale jane tekste ne parim.
(eqene se kompjuteri dhe terminali punojne me t gjithe karakteret duke komunikuar ne
menyre seriale me nj bit ne nj moment kohe, $hipet jane 'h"illuar ne menyre t tille qe
t bejne kon"ertimin nga karakter ne serial dhe anasjelltas. ,to quhen UART-s
(+ni"ersal ,syn$hronous .e$eie"er Nransmitters). ,to jane t lidhura me kompjuterin
neprmjet nderfaqes .1#H9H me busin t treguar si ne /ig. 7#9M. Ne shume kompjutera,
nj ose shume porta seriale jane t ndertuara brenda bordit prind.
!r t treguar nj karakter, dri"erat e terminalit e shkruajne karakterin ne kartn e
nderfaqes ku me pas bufferohet dhe n%irret jasht linjs seriale me nga nj bit ne nj $ast
kohe nga +,.N. !r shembull, pr nj modem analog qe operon me 7D,888 bps, do ti
duhen &CG qse$ pr t derguar nj karakter. 1i re'ultat i ketij rate t "ogel transmetimi,
dri"eri 'akonisht n%jerr nj karakter ne kartn .1#H9H dhe bllokon, duke pritur
interruptin e gjeneruar nga nderfaqja, kur karakteri sht transmetuar dhe +,.N sht
gati pr t pritur nj karakter tjetr. +,.N mund t pres dhe t dergoj karaktere
njkohesisht. Nj interrupt gjenerohet kur merret nj karakter dhe 'akonisht nj numer i
"ogel 6 karaktere"e ne hyrje mund t bufferohet. =ri"eri 6 terminalit duhet t kontrolloj
nj regjistr kur merret nj interrupt qe t pr$aktoj shkakun e interruptit. =isa karta t
nderfaqes kane nj *!+ dhe nj memorie dhe mund t prballojne shume linja, duke
marre peshen e paisje"e 6/: nga *!+ qendrore. Nerminalet .1#H9H mund t nendahen ne
tre kategori. (e t thjeshtt jane terminalet hard$opy. )arakteret e shtypur ne tastier
transmetohen direkt ne kompjuter. )arakteret e derguar nga kompjuteri printohen ne
letr.
Nerminalet *.N punojne ne t njjtn menyre, "etm ne "end t letres kane nj ekran.
)eto 'akonisht quhen Eglass ttysF sepse nga ana funksionale jane njsoj si hard$opy
ttys. (Nermi EttyF sht shkurtim 6 Neletype, nj kompani e $ila ishte pionere ne bisnesin
e terminale"e kompjuterikJ EttyF tregon do terminal).
Nerminalet *.N 6nteligjent jane ne fakt kompjutera t spe$iali'uar ne miniatur. ,to
kane nj *!+ dhe nj memorie, dhe prmbajne software, 'akonisht ne .:(. =uke 6 pare
nga ana e sistemit operati", ndryshimi kryesor midis glass tty dhe nj terminali 6nteligjent
sht se ky 6 fundit 6 kalon disa sekuen$a. !r shembull, duke derguar karakteret 1* ne
,1*66, duke 6 pasuar me karaktere t ndryshme, mund t ndodh qe kursori t le"i' ne do
po'i$ion t ekranit. Nerminalet 6nteligjent jane t "etmet qe prdoren ne sistemet
mainframe dhe mund t emulohen nga sisteme t ndryshme operati"e. (e softwaret e
tyre do t merremi me posht.
5.6.2 Input software
krani dhe tastiera jane paisje t pa"arura nga njra tjetra dhe prandaj do ti trajtojme ne
menyre t ndare. ,to nuk jane tamam t pa"arura nga njra tjetra pasi kur shruajme nj
fjale ne tastier ajo na shfaqet ne ekran.
!una kryesore e dri"er#it t tastieres sht qe t mbledh inputet nga tastiera dhe ti dergoj
ato t programet user kur t le%ohen nga terminali. =y filo'ofi t mundshme mund ti
prshtaten dri"er#it. para, qe puna e dri"erit sht thjesht t marri inputet dhe ti dergoj
ne nj ni"el me t lart pa 6 prpunuar. Nj program qe le%on terminalin merr nj sekuen$
t paprpunuar ne kodin ,1*66.
)jo filo'ofi sht shume e prshtatshme pr ne"ojat e ekrane"e t sofistikuar si emacs, e
$ila e lejon prdoruesin t lidhet me nj aksion arbitrar me do karakter ose me sekuen$
karakteresh. N qoft se prdoruesi shtyp dste ne "end t date, dhe me pas e korrigjon
gabimin duke shtypur tre here ba$k$pa$e dhe ate, programi 6 prdoruesit do t jape t
gjithe kodet && ,1*66 si me poshtJ

dste s s s ate *.
Ao t gjithe programet duan kaq shume detaje. @akonisht ato duan inputin e sakt dhe jo
sekuen$en se si sht pro$eduar. )jo "erejte na $on ne filo'ofin e dytJ dri"eri e
prballon t gjithe montimin intraline, dhe "etem sa dergon linjat korrekte programe"e
ne prdorim. /ilo'ofia e pare sht $hara$ter orientedI ndersa e dyta sht line oriented. 6
referohen raw mode dhe cooked mode, respekti"isht. 1tandartet !:16R prdorin
$anoni$al mode pr t prshkruar line#oriented. Noncanonial mode sht ekui"alente
me raw mode, megjithese shume detaje t sjelljes se terminale"e mund t ndryshohen.
1istemet kompatible !:16R japin librari funksionesh t ndryshme t $ilat suportojne
selektimin dhe ndryshimin e shume aspekte"e t konfigurimit t terminalit.
!una e pare e dri"erit t tastieres sht t mbledhi karakteret. N qoft se do shtypje e
$elsit shkakton interrupt, dri"eri mund ta marre karakterin gjat interruptit. N qoft se
interruptet kthehen ne mesa'he nga ni"eli 6 ulet 6 software#it, sht e mundur qe t
"endosim karakteret e reja ne mesa'h. ,to "endosen ne nj buffer t "ogel t memories
dhe mesa'hi prdoret pr ti thene dri"erit qe di$ka erdhi.
N qoft se terminali sht ne $anoni$al ($ooked) mode, karakteret duhet t ruhen derisa
nj linj e tre t akumulohet, sepse prdoruesi me pas mund t "endos t fshij nj pjese
t tij. dhe ne se terminali sht ne raw mode, programi mund t mos ket kerkuar akoma
input prandaj duhet qe karakteret t bufferohen.
=y rruget e bufferimit t karaktere"e jane t thjeshta. Ne t paren, dri"eri prmban nj
grup me buffera, ku se$ili buffer ka &8 karaktere. Ngjitur mbas do terminali jepet edhe
struktura e t dhena"e, e $lia prmban midis t tjerash nj pointer ne grupin e buffera"e
pr inputet t mbledhura nga terminali. 1a me shume karaktere t shtypen, aq me shume
buffera do t kerkohen, t $ilat do t bashkohen me grupin e buffera"e. )ur karakteret t
kalojne pr te programi ne prdorim, bufferat do t kthehen prseri t grupi 6 buffera"e.
.ruga e dyt sht qe bufferimi t behet direkt nga terminali 6 struktures se t dhena"e pa
qene ne"oja e nj grupi bufferash. (eqene se pr prdoruesin sht bere e 'akonshme qe
pr"e$ disa komanda"e t $ilat kerkojne kohen e "et edhe keto, t shkruaj dhe disa linja
t tjera prbri tyre, dhe pr t qene 6 sigurt dri"eri alo$on rreth H88 karaktere pr
terminal. Ne nj sistem large#s$ale timesharing me &88 terminale, t alokosh H8) pr do
here sht nj makth 6 "ertet, prandaj nj hapesire prej 7) do t ishte mese e
mjaftueshme. Nga ana tjetr, nj buffer 6 dedikuar pr do terminal e bn dri"erin me t
thjesht dhe prandaj preferohet kjo menyre ne kompjuterat personal me nj tastier t
"etme. /ig.7#97 tregon ndryshimin midis ketyre dy menyra"e.
(egjithese tastiera dhe ekrani jane dy paisje t ndara nga njra tjetra, shume prdoruesa
jane mesuar t shikojne se ajo $Oka shkruajne ne tastier t shfaqet ne ekran. =isa
terminale (t "jetr) shfaqin automatikisht at $fare shtypet ne tastier, gje qe limiton
fleksibilitetin e editore"e t sofistikuar dhe programe"e t ndryshme. /atmiresisht me
terminalet e sotm asgje nuk shfaqet automatikisht kur shtypet nj $eles. ?sht e gjitha ne
dore t software#it ne kompjuter pr t shfaqur at qe do. )y proes quhet echoing.

$hoing sht e komplikuar ne faktin qe programi mund t jet duke shkruajtur ne ekran
kur prdoruesi t jet duke shtypur. =eri pak kohesh, dri"erat e tastieres i duhej t gjenin
"et se ku t "endosnin inputet e reja pa i mbishkruajtur nga programi output.
$hoing komplikohet gjithashtu kur me shume se L8 karaktere duhet t tregohen ne
ekran me nj linj me L8 karaktere. =uke u "arur nga aplika$ionet, t hedhurit ne linjn
tjetr mund t jet e prshtatshme. =isa dri"era nuk i njohin karakteret e tjera mbas
karakterit t L8#t.
Nj tjetr problem sht edhe tab handling. ?sht pune e dri"erit t "endos se ku sht
"endosur kursori, duke mbledhur ne llogarin e tij outputet nga programi dhe outputet nga
e$hoing dhe t "endosi numrin e duhur t hapesires pr tu pasqyruar.
Nani "ijme ne problemin e ekui"alen$es se paisje"e. -logjikisht ne fund t nj linje t nj
teksti, dikush kerkon nj transport mbrapsht, pr t le"i'ur kursorin mbrapsht per
shembull pr t rreshti 6 pare dhe nj linefeed pr t shkuar te rreshti tjetr. ?sht pune e
dri"erit pr t kon"ertuar $fare do lloj gjeje qe "jen ne format standart t prdorur nga
sitemi operati".
Ne se forma standarte sht "etm pr t ruajtur nj linefeed, athere mbetja kthehet ne
nj linefeed. N qoft se formati 6 brendshem duhet qe ti ruaj t dyja, athere dri"eri
duhet t gjeneroj nj linefeed ku do t kete nj mbetje dhe nj mbetje qe do t mbaj
linefeed. Nerminali mund ti kerkoj t dyja, linefeed dhe mbetjen pr ti pasqyruar qe t
marri updaten#in e ekranit ashtu si$ duhet. (eqene se nj kompjuter 6 madh mund t ket
terminale t ndryshme t lidhur me t, sht pune e dri"er#it t tastieres qe t kon"ertoj
mbetjet e ndryshme dhe kombinimet linefeed ne standartet e brendshme dhe t $aktoj qe
do pasqyrim t kryhet ne menyre t drejt.
)ur operohet me $anoni$al mode, nj numer 6 karaktere"e ne hyrje kane nj kuptim
spe$ial. /ig.7#9D tregon t gjitha kuptimet spe$iale t kerkuar nga !:16R. =eafult#et jane
karaktere kontrolli t $ilat nuk duhet t krijojne konflikt me te%tet ose me kodet t
prdorura nga programi, por t gjitha, pr"e$ dy t fundit mund t ndryshohen nen
kontrollin e programit.
)arakteret .,1 lejojne prdoruesin qe t n%jerr t gjithe karakteret si$ shkruhen.
?sht 'akonisht ba$kspa$e (*N.-#2). ,jo nuk i shtohet rradhes se karaktere"e por prape
arrin t n%jerr nga rradha karakterin paraardhes. ,jo duhet t pasqyrohet si nj sekuen$
me tre karaktere, ba$kspa$e, spa$e dhe ba$kspa$e ne menyre qe t le"i'i karakterin
paraardhes nga ekrani. Ne se karakteri paraardhes ishte nj tab, fshirja e tij "aret se si
sht pro$eduar pr shtypjen e tij. N qoft se "et tab sht ruajtur ne nj rradhe input, ai
mund t le"i'e dhe e gjithe linja mund t dale prseri. ,jo nuk mund t fshij nj mbetje
dhe t kthehet mbrapa pr shembull, ne linjn paraardhese.
)ur prdoruesi shikon nj gabim ne fillim t nj rreshti qe po shkruhet, ngadonjehere
sht me e prshtatshme ta fshij t gjithe rreshtin dhe ta filloj nga e para. )arakteri )6--
fshin nj linje komplet. 1hume sisteme e 'hdukin linjn e fshire nga ekrani por disa e
pasqyrojne at, plus mbetjet dhe linefeed sepse disa prdoruesa kane deshire t shikojne
linjn e "jetr. =he me .,1 'akonisht nuk sht e mundur t kthehesh me mbrapa
sesa linja aktuale. )ur nj bllok karakteresh "ritet, pr dri"erin nuk mund t jet problem
qe ta kthej bufferin ne grup, ne qofte se ai po prdoret.
1hpesh here karakteret .,1 ose )6-- mund t futen si t dhena normale. )arateret
-NRN sherbejne si karaktere escape. Ne +N6R *N.-#> sht default. 1i nj shembull,
sistemet e "jetra 'akonisht prdorin shenjn t pr komanden )6--, por interneti e
prdor ket shenje pr tOju referuar nj adrese si lin,aOcs."ashington.e,u . )ush sht
mesuar t prdor shenjat e "jetra prshembull t ne "end t )6--, pr tOju referuar nj
adrese interneti do ti duhet qe karakterin t ta n%jerr nga komanda *N.-#> t. *N.-#>
mund t futet "et nga komanda *N.-#> *N.-#>. )arakteret -NRN nuk futen ne
rradhen e karaktere"e.
!r ti lejuar prdoruesit qe t ndalojne nj pamje t figures, kodet e kontrollit e ngrijne
ekranin dhe me pas rinisin me "one. Ne +N6R keto jane N:!, (*N.-#1) dhe 1N,.N,
(*N.-#<) respekti"isht. ,to nuk ruhen, por riprdoren pr t futur dhe pastruar nj
flamur ne terminalin e struktures se t dhena"e. !r do prpjekje t outputit, flamuri
sht i kontrolluar. N qoft se sht i $aktuar nuk ndodh asnj output.
@akonisht sht e ne"ojshme qe t "rasesh nj program qe po ek'ekutohet. )arekteret
6NN. (=-) dhe <+6N (*N.-#V) prdoren pr ket qellim. Ne +N6R, =- i dergo nj
sinjal 165NN t gjithe proese"e t startuara nga terminali. 6mplementimi 6 =- mund t
jet me pasoja. !jesa me e "eshtire sht marrja e informa$ionit nga dri"eri pr te pjesa e
sistemit qe prmban sinjalet, t $ilat mbas gjithe kesaj nuk kane kerkuar pr kt
informa$ion.
Nj karakter tjetr spe$ial sht :/ (*N.-#=), 6 $ili ne +N6R shkakton nj kerkes pr
le%im pr terminalin 6 $ili sht 6 gatshem pr bufferin, edhe pse bufferi mund t jet
bosh. 1hkrimi 6 *N.-#= ne fillim t nj linje shkakton qe programi t marri ne le%im
prej 8 byte 6 $ili interpretohet si end#of#file

5.6.3 Output Software
:utputi sht me 6 thjesht se inputi. Ne pjesen me t madhe, kompjuteri dergon
karaktere pr te terminali dhe ato shfaqen atje. @akonisht, nj bllok karakteresh, pr
shembull nj linj shkruhet ne terminal ne nj thirrje t sistemit. (etoda qe prdoret me
shpesh ne terminalet .1#H9H sht ajo me buffera output t shoqeruar ne do terminal.
;ufferat mund t "ijne nga i njjti grup si buffera input, ose mund t jene t dedikuar.
)ur nj program shkruan ne terminal, outputi sht 6 pari qe kopjoihet ne buffer. Ne
menyre t ngjashme dhe outputi 6 pasqyrimit kopjohet ne buffer. !asi t gjithe outputet
kopjohen ne buffer, karakteri 6 pare sht output dhe dri"eri e mbaron punen e tij. )ur
"jen interrupti, karakteri tjetr sht output, dhe keshtu me rradh.
ditoret e ekranit dhe shume programe t tjere t sofistikuar kane ne"oje t jene t
gatshem pr t update#uar skenen ne shume menyra komplekse duke 'e"endesuar nj
linj ne mes t ekranit. !r t bere ket, shume terminale kane nj seri komandash pr t
le"i'ur kursorin, pr t futur dhe pr t fshire karakteret, etj. )eto komanda 'akonisht
quhen escape sequence. Ne kohet e 'h"illimit t terminale"e .1#H9H, kishte shume tipe
terminalesh se$ili me sekuen$en es$ape t tij. !r rrjedhoje, ishte e "eshtire pr t
shkruajtur software qe t punonin lehtsisht ne keto terminale.
Nj 'gjidhje e $ila u pre'antua ne ;erkeley +N6R, ishte nj terminal data base i quajtur
termcap. )jo paket software prmbante nj numer t aksione"e ba'e, si pr shembull
le"i'jen e kursorit ne (rradhe, rreshta). !r t le"i'ur kursorin ne nj po'i$ion $faredo, nj
editor do t prdor nj es$ape sequen$e e $ila me pas kon"ertohej ne es$ape sequen$e
aktuale pr terminalin ne t $ilin do t shkruhej. Ne ket menyre editori punonte ne do
terminal.
6ndustria pa se ishte e ne"ojshme standarti'imi i es$ape sequn$e, keshtu qe u 'h"illua nj
standart ,N16. =isa nga keto "lera jane t treguara ne /ig. 7#9C.
)onsideroni se si kjo es$ape sequen$e mund t prdoret nga nj editor te%ti. 1upo'oni se
prdoruesi prdor nj komand ku 6 thot editorit t fshij t gjithe linjn 9 dhe t mbylli
hapesiren midis linjs H dhe M. ditori do ti dergont ket es$ape sequen$e neprmjet
linjs seriale terminalitJ
1* 09I& 2 1* 0 8 ) 1* 0 & (
)jo komand le"i' kursorin ne filim t linjs 9, fshin t gjithe linjn dhe me pas fshin
linjn boshe qe sapo u krijua, duke sjell qe t gjitha t nisin nga linja 7, dhe $fare ishte
linja M kthehet ne linjn 9, $fare ishte linja 7 behet linja M dhe keshtu me rradh. s$ape
sequen$e mund t prdoren pr t shtuar te%te ne mes t ekranit. /jalet mund t shtohen
ose mund t hiqen ne menyra t ngjashme.

5.7 Nderfaqja Grafike e Prdoruesit
!*#t mund t prdorin nderfaqe t ba'uara mbi karakteret (germat). Ne fakt, prej "itesh
(1#=:1#i, i $ili sht i ba'uar mbi karakteret, ka dominuar skenen. Ne ditt e sotme
shume !* prdorin GUI - Graphical User Interface.
5+6 u shpik nga =ouglas ngelbart dhe nga grupi i tij kerkimor ne 6nstitutin e
)erkime"e t 1tanford. Ne at kohe u kopjua dhe nga kerkuesit ne Rero% !,.*. Nj
dit, 1te"e Aobs, bashke#themeluesi i ,!!-, po shetiste ne !,.* dhe pa nj 5+6 ne nj
*omputer Rero%. )jo i dha atij idene pr nj kompjuter t ri, i $ili u be me "one ,pple
-isa. -isa ishte shume i shtrenjt dhe nj deshtim komer$ial, por pasardhesi i tij
(a$intosh#i, ishte nj sukses gjigand. (a$intosh ishte inspirimi pr (i$rosoft 3indows
dhe sistemet e tjere qe ba'oheshin t 5+6 (nderfaqja grafike e prdoruesit).
5+6 K ka M element esen$iale, t paraqitura nga karakteret 36(! (3indows, 6$on,
(enu, !ointing de"i$e). 3indows (dritaret), jane blloqe drejtkendore t ekranit qe
prdoren pr ek'ekutimin e programit. 6konat jane simbole t "ogla, mbi t $ilat mund t
klikohet duke shkaktuar nj "eprim. (enu#t jane lista me "eprime nga t $ilat mund t
'gjidhet njra nga to. !ointing =e"i$e (pajisja shenjuese), sht mouse, tra$kball (sfera e
gjurma"e), ose pajisjet e tjera hardware qe prdoren pr t 'h"endosur krusorin nepr
ekran, pr t selektuar items.
5.7.1 Tastiera e Personal Computer, Mouse, dhe Display Hardware
!* moderne sot kane gjithmone nj tastiere dhe nj bit#oriented memory mapped display.
)eto komponent jane nj pjese integrale e "et kompjuterit. Nastiera dhe ekrani jane
plotsisht t ndara, ku se$ila ka dri"erin e saj "etjak.
Nastiera mund t nderfaqesohet neprmjet nj porte seriale, nj port paralele, ose nj
port +1;. Ne do "eprim ky$ qe kryet, *!+#ja nderpritet (interrupted) dhe dri"eri i
tastieres e%tra$ton karakterin e shtypur duke le%uar nj port 6/:. Bdo gje tjetr ndodh ne
software, kryesisht ne dri"erin e tastieres.
Ne nj pentium, tastiera prmban nj mikroproesor t futur (embedded) i $ili komunikon
neprmjet nj porte seriale t spe$iali'uar me nj $ontroller $hip qe ndodhet ne
parentboard. Nj interrupt gjenerohet kur shtypet nj tast, dhe gjithashtu liriohet ky tast.
>e$ kesaj, ajo $fare hardware i tastieres ofron sht numri i tastit (key number), dhe jo
kodi ,1*66. )ur shtypet ,#ja, kodi i tastit (98) "endoset ne nj regjistr 6/:. ?sht ne
doren e dri"erit t pr$aktohet ne seJ sht kapitale (e madhe), (e "ogel), *N.-#,, ,-N#
,, *.N-#,-N#,, apo ndonj kombinim i tille. (eqene se dri"eri mund t tregoje se $ili
tast sht shtypur, por jo $ili sht leshuar (shembulli 1hift), ai ka informa$ion t
mjaftueshem pr t kryer detyren.
!r shembull, 1ekuen$a e taste"eJ =!.11 126/N, =!.11 ,, .-,1 ,,
.-,1 126/N
Nregon nj germe kapitale ,.
5jithashtu =!.11 126/N, =!.11 ,, .-,1 126/N, .-,1 ,
Nregon germe kapitale ,.
dhe pse kjo nderfaqe e tastieres "endos gjithe ngarkesen tek software, ajo sht shume
fle%ible. !r shembull, programet e prdoruesit mund t kene interes t dine ne se nj
shifer sht shtypur nga rreshti i siprm i tastieres apo nga numer pad ne t djatht t
tastieres. Ne prin$ip dri"eri mund ta ofroje ket informa$ion.
1hume !* kane nj mouse, ose shpesh here nj tra$kball, i $ili sht nj mouse i shtrire
me kurri'. -loji me i 'akonshem i mouse#it ka nj sfere gome brenda tij, qe del prpara
neprmjet nj "rime ne fund dhe rrotullohet ndersa mouse#i le"i' mbi nj siprfaqe t
ashpr. Ndersa sfera rrotullohet, ajo ferkohet me rollerat e ferkimit qe jane "endosur ne
boshtet ortogonale. -e"i'ja lindje#prendim shkakton boshtin paralel me aksin ] t
rrotullohet, le"i'ja "eri#jug shkakton boshtin paralel me aksin R t rrotullohet. Bdo
'h"endojs e mouse#it ose shtypje, ose lirmi i butona"e sa do minimale t jet, bn qe
kompjuterit ti $ohet gjithmone nj mesa'h. =istan$a minimale e le"i'jes sht 8.& mm
(ajo mund t pr$aktohet tek software). =isa njere' e quajne ket njsi # mickey. (ouse#t
mund t kene &, H ose 9 butona ne "aresi t "leresimit qe bejne disenjatoret ne se
prdoruesit jane t aft t mbajne dot gjurmet e & apo me shume butona"e.
(esa'hi qe shkon t kompjuteri ka 9 items, gR, g], butonat. 6tem#i i pare sht
ndryshimi i po'i$ionit R qe nga mesa'hi i fundit. (e pas, "jen ndryshimi i ] qe nga
mesa'hi i fundit. 1e fundmi prfshihet statusi/gjendja e butonit. /ormati i mesa'hit "aret
nga sistemi dhe nga numri i butona"e qe ka mouse#i. @akonisht, ai merr 9 byte.
>ini re qe mouse#i tregon "etm ndryshimin e po'i$ionit dhe jo po'i$ionin absolut t tij.
Ne qoft se mouse#i ngrihet sipr dhe ulet posht me kujdes pa e le"i'ur sferen, ne ket
rast kompjuterit nuk do ti $ohet mesa'h.
=isa 5+6 dallojne single $li$k nga dopjo $li$k t nj mouse#i. Ne qoftse dy $li$k jane
Wshume aferO ne hapesire (mi$keys) dhe ne kohe (milisekonda), athere sinjali'ohet nj
dopjo $li$k. (aksimumi i Wshume aferO sht ne "aresi t software#it, me t dyja
parametrat qe mund ti $aktoje "et prdoruesi.
-e t kthehmi t =isplay 2ardwareI !ajisjet e shfaqjes ne ekran (=isplay =e"i$es), mund
t ndahen ne dy kategori. !ajisjet me Vector Graphics (Grafike Vektoriale) t $ilat
mund t pranojne dhe t n%jerrin jasht $omanda si pr shembull, "i'atimi i pika"e, i
"ija"e, i figura"e gjeometrike dhe i tekste"e. Ne kontrast, pajisjet me Raster Graphics e
tregojne 'onen e daljes, si nj rrjet me pika t quajtura pixels, se$ili nga to ka nj "lere
t shkalles gri (gray s$ale "alue), ose nj ngjyre. Ne fillimet e kompjutera"e, pajisjet me
"e$tor graphi$s ishin t 'akonshme, por tani ploterat jane t "etmet pajisje me "e$tor
graphi$s. Bdo gje tjetr prdor raster graphi$s, shpesh e quajtur bitmap graphics.
=iplay me raster graphi$s jane t implementuara nga nj pajisje e quajtrur graphic
adapter. Nj graphi$ adapter prmban nj memorie spe$iale t quajtur video RAM, e
$ila formon pjesen e hapesires se adresa"e t kompjuterit dhe adresohet nga *!+#ja ne t
njjtn menyre si pjesa tjetr e memories (shih /ig. 7#9L).

Figure 5-38 Ne display me memomy mapped, driver shkruan ne menyre direkt tek
video RAMi i displayt
!amja e ekranit ruhet ketu, ose ne menyren karakter (character mode) ose ne menyren
bit (bit mode). Ne menyren karakter (character mode), do byte (ose H byte) i "ideo
.,(#it prmban nj karakter pr t shfaqur ne ekran. Ne menyre bitmap (bitmap
mode), do pi%el ne ekran ripre'antohet me "et ne "ideo .,(#in, me &bit/pi%el pr
llojin bardh e 'i t ekranit, dhe HMbit/pi%el ose me shume pr ekrane me $ilesi ngjyrash
me t lart. 5jithashtu video controller sht nj $hip qe bn pjese ne graphi$ adapter.
)y $hip n%jerr karakteret ose bitet jasht "ideo .,( dhe gjeneron nj "ideo sinjal i $ili
prdoret pr t drejtuar (dri"e) monitorin. Nj monitor gjeneron nj tufe elektronesh e $ila
skanon hori'ontalisht ekranin, duke lyer (paint) me linja ("ija) ne t. @akonisht nj ekran
ka nj ML8 K &8HM linja ("ija) nga sipr deri posht, dhe me DM8 K &H88 pi%el pr linj.
1injali i >ideo *ontrollerit modulon tufen e elektrone"e, duke pr$aktuar ne se nj pi%el i
dhene sht i ndritshem apo i erret. (onitoret me ngjyra kane 9 tufa (beam), pr t kuqen
(.ed), pr t gjelbertn (5reen), pr blune(;lu)I (.5;), t $ilat modulohen ne menyre t
pa"arur. kranet e shesht (/lat) prdorin pi%elat ne 9 ngjyra, por menyra se si punojne
keto ekrane shkon prtej qellimit t ketij libri.
>ideo *ontrollerat kane H menyraJ *hara$ter (ode (qe prdoret pr tekset e 'akonshme),
dhe ;it (ode (qe prdoret pr do gje tjetr). Ne $hara$ter mode, kontrolleri mund t
prshtas do karakter ne nj kuti prej G pi%el t gjere dhe &M pi%el t lart (duke prfshire
dhe hapesirat midis karaktere"e) dhe t ket H7 linja me L8 karaktere. kranit i duhet
athere t ket 978 linja skanimi me CH8 pi%el pr se$ilen linj. 1e$ila nga keto frame ri#
"i'atohet D8 K &88 here ne sekond, ne menyre qe t shmangen dridhjet.
!r t shfaqur te%tin ne ekran, "ideo $ontrolleri mund t trheqi/kapi (fet$h) L8 karakteret
e para nga "ideo .,(#i, dhe t gjeneroje &M linjat "ijuese dhe keshtu "a'hdon. Ne
menyre alternati"e, ai mund t trheqi/kapi do karakter, nj here pr do linj skanimi
pr t eleminuar ne"ojen e t paturit nj buffer ne $ontroller. G pr &M bit pattern pr
karakteret mbahet ne .:(, t $ilin e prdor "ideo $ontrolleri. (.,( mund t prdoret
gjithashtu pr support/ndihmuar fontet). .:(#i adresohet me &H bit adresa, L bits nga
kodi i karakterit dhe M bits pr t spe$ifikuar linjn e skanimit. L bitet ne do byte t
.:( kontrollojne L pi%elsI pi%eli i G#t qe ndodhet midis karaktere"e sht gjithmone
blank (bosh). )eshtu &M % L8 [ &&H8 referen$a memorjeje pr "ideo .,( ne"ojiten pr
linjn e teksit ne nj ekran. 6 njjti numer referen$ash behen pr gjeneratorin e
karaktere"e .:(.
Ne /ig. 7#9G(a) ne shikojme nj por$ion (pjese) t "ideo .,(#it pr nj ekran i $ili
punon ne $hara$ter mode. Bdo karakter ne ekranin e /ig. 7#9G (b) 'e H bytes ne .,(.
)arakteri i rendit t poshtm (low order) sht kodi ,1*66 pr shfaqjen e atij karakteri.
)arakteri i rendit t lart (high order) sht nj byte atributi, i $ili prdoret pr t
spe$ifikuar ngjyren, kthimin mbrapa t "ideos, blinking, etj... Nj ekran me (H7 me L8)
karaktere i ne"ojitet M888 bytes t "ideo .,( ne ket mode.
Figura 5-39. (a) Nj imazh i video RAM-it pr nj ekran monokrom t thjesht ne
character mode. (b) Ekrani korrespondues. -et jane bytet e atributeve.
!unimi ne bitmap mode prdor t njjtin prin$ip, pr"e$ se do pi%el ne ekran
kontrollohet indi"idualisht dhe paraqitet indi"idualisht neprmjet & ose disa bits ne "ideo
.,(. Ne konfigurimin me t thjesht pr nj monitor monokrom, do pi%el i ekranit ka
nj bit korrespondues ne "ideo .,(. Ne ekstremin tjetr, do pi%el i ekranit paraqitet
neprmjet nj numri HM bit ne "ideo .,(, me L bit pr se$ilen nga intensitetet .ed,
5reen, ;lue. .apre'antimi i .5;#se prdoret sepse e kuqja, e gjelberta dhe bluja jane
ngjyra primare shtese, nga t $ilat mund t prftohet do lloj ngjyre "etm duke mbledhur
intensitetet e ndryshme t ketyre ngjyra"e.
(adhesite e ekrane"e mund t "ariojne, nga DM8uML8(>5,), ne L88uD88(1>5,),
&8HMuCDL (R5,), &HL8u&8HM, dhe &D88u&H88. !r"e$ &HL8u&8HM, t gjithe t tjerat jane
raport MJ9, ky raport prshtatet me raportin e NN1* tele"ision dhe jep pi%el katrore.
&HL8u&8HM duhej t kishte qene &HL8uGD8, por joshja e &8HM ishte shume e madhe pr ti
re'istuar, edhe pse ajo shtremberon lehtsisht pi%elat dhe bn me t "eshtire shkalle'imet
ne madhesite e tjera. 1i per shembull, nj ekran me ngjyra CDL % &8HM me HM bits/pi%el
kerkon H.H7 (; .,( thjesht sa mban ima'hin. N qoft se full s$reen rifreskohet
(refresh) C7 here/se$, "ideo .,(#i duhe t jet i aft t dergoje te dhena ne menyre t
"a'hdueshme ne &DG (;/se$.
!r t shmangur mena%himin e ima'he"e t ekrane"e kaq t medha, disa sisteme jane t
afta t balan$ojne re'olu$ionin e ngjyres kundrejt madhesise se ima'hit. Ne skeme me t
thjesht, do pi%el paraqitet neprmjet nj numri L bit. )jo "lere sht nj indeks ne nj
tabele me H7D entries, ku se$ili entry mban nj "lere HM bit t .,5, ;. )jo tabele quhet
color palette dhe shpesh ruhet ne hardware, ajo lejon qe ekrani t mbaje nj numer
arbritrar ngjyrash H7D ne do $ast. =uke ndryshuar entry C ne paletn e ngjyra"e, kjo sjell
ndryshimin e ngjyres t t gjithe pi%ela"e ne ima'h me nj "lere C. =uke prdorur nj
palet ngjyrash me L bit pakesohet sasia e hapesires se ngjyra"e qe ne"ojitet pr t ruajtur
ima'hin e ekranit nga 9 byte/pi%el ne & byte/pi%el. *mimi qe paguhet sht "ra'hdesia ne
re'olu$ionin e ngjyra"e. 1kema e kompresimit 56/ punon me nj palete ngjyrash t tille.
?sht gjithashtu e mundur t prdoret nj palete ngjyrash me &D bit/pi%el. Ne ket rast
paleta e ngjyra"e prmban D7,79D entries keshtu qe mund t prdoren njeheresh D7,79D.
!or kursimi ne hapesire sht me i paket meqene se do pi%el tani kerkon H bytes ne
"ideo .,(. 5jithashtu, n qoft se paleta e ngjyra"e mbahet ne hardware (pr t
shmangur nj kerkim (lookup) ne do pi%el), ai duhet t jet dedikuar pr ruajtjen paletes.
5jithashtu sht e mundur qe t mena%hohen ngjyrat &D biteshe, duke ruajtur "lerat e
.5; si tre numra 7 biteshe, me & bit t lene pas (mbrapa) (ose ti jepet t gjelbres D bits,
meqe syri sht me i ndjeshem ndaj jeshiles sesa t kuqes dhe bluse). )y sistem sht i
njjti me at me HM bit $olor, pr"e$ se me me pak hije pr do ngjyre t mundshme.
5.7.2 Software i hyrjes (Input Software)
!asi tastiera e mori karakterin, ajo duhet t filloje ta proesoje (prpunoje) at. (eqe
tastiera dergon key numbers, sesa kodet e karaktere"e qe prdoren nga aplika$ionet,
dri"eri duhet t kon"ertoje kodet duke prdorur tabelen. Ao t gjitha pajisjet WkompatibelO
e 6;(#se prdorin key number standart, keshtu qe n qoft se dri"eri kerkon t
supportoje keto makina, ai duhet t kete map tastiera t ndryshme me tabela t ndryshme.
Nj arritje e thjesht sht kompilimi i nj tabele e $ila mapon kodet t ofruara nga
tastiera dhe kodet ,1*66 ne dri"erin e keyboard, por kjo nuk kenaqe prdoruesit e
gjuhe"e t ndryshme nga anglishtja. Nastierat jane t arran'huara ne menyre t ndryshme
ne shtete t ndryshme, dhe bashkesia e karaktere"e ,1*66 nuk sht adeguate as pr
pjesen me t madhe t njere'"e ne hemisferen e perendimit, ku folesit e 1panjishtes,
!ortugalishtes dhe /rengjishtes kerkonin, karakteret me shenjat theksit qe nuk prdoren
ne ,nglisht. !r tOju prgjigjur ne"ojes pr fleksibilitet ne layout#s e tastieres ne gjuhet e
ndryshme, shume sisteme operati"e ofrojne nj keymap ose code page, e $ila ben te
mundur 'gjedhjen e mapping midis keyboard $odes dhe $odes qe i dergohen aplika$ionit,
dhe ne rast kur sistemi sht i boot#uar tashme ose boot#oet me "one.
5.7.3 Programet e Daljes pr Dritaret (Windows)
1oftwari i daljes pr 5+6#t sht nj teme shume e madhe. 1hume libra &788 faqesh jane
shkruar pr nderfaqet grafike t dritare "etem nga (3indows 5+6). Ne ket seksion do t
shikohen disa kon$epte. !r ta bere diskutimin disi me konkret, ne do t prshkruajme
3in9H ,!6, e $ila suportohet nga t gjitha "ersionet 9H biteshe t windowsit. 1oftware i
daljes pr 5+6#t ka shume detaje t ndryshme.
6temi ba'e i ekranit sht nj 'one drejtkendore e quajtur dritare (window). !o'i$ioni
dhe madhesia e dritares jane t pr$aktuara ne menyre unike duke dhene kordinatat (ne
pi%el) e qoshe"e t kunderta. Nj dritare mund t mbaje nj title bar, nj menu bar, a
tool bar dhe nj horizontal scroll bar (shirit hori'ontal t le"i'shem). Nj dritare tipike
tregohet ne /ig. 7#M8. >ini re qe sistemi kordinati" 3indowsit, e "endos origjinin ne
skajin e majt t siprm dhe qe shtohet me y duke 'britur posht, e $ila sht e ndryshme
nga kordinatat )arte'iane qe prdoren ne matematike.
)ur krijohet nj dritare, parametrat spe$ifikojne ne se dritarja mund t le"i'et apo ti
ndryshohen prmasat, apo t s$roll (rreshqase/le"i' duke trhequr Nhumb ne s$roll bar)
nga useri. =ritarja kryesore qe prodhohet nga pjesa me e madhe e programe"e mund t
le"i'et, ti ndryshohet prmasat apo s$roll, dhe kjo gje ka shume pasoja pr menyren se si
progamet e 3indows#it jane shkruar.
Ne "e$anti, programet duhet t jene te informuara ne lidhje me ndryshimet e prmasa"e
t dritare"e t tyre dhe duhet t jene t prgatitura t ri#"i'atojne prmbajtjen e dritares
ne do $ast t kohes, edhe ne momentin me pak t pritshem.
Figure 5-40. Nj shembull dritarjeje (Window)
1i rrjedhoje, programet e 3indows jane t orientuara drejt mesa'he"e (massage
oriented). >eprimet e prdoruesit qe prfshijne tastieren dhe mousin, kapen nga dritaret
dhe kon"ertohen ne mesa'he drejt programe"e qe 'otron dritaren e adresuar. Bdo
program ka nj radhe (queue) ne t $ilen ndodhen mesa'het qe i dergohen dritares. -oop#
i kryesor i programit konsiston ne n%jerrjen jasht plotsisht t mesa'hit t ardhshem dhe
ne proesimin e tij duke thirrur nj pro$edure t brendeshme pr at tip mesa'hi. Ne disa
raste, "et 3indows mund t therrasin ne menyre direkte keto pro$edura, duke
anashkaluar radhen e mesa'he"e (message queue). )y model sht shume i ndryshem
nga modeli +N6R i kodit pro$edurial i $ili bn thirrjet e sistemit pr t nder"epruar me
sistemin operati".
!r ta bere me t qart ket model progamimi, do t shohim shembullin e /ig. 7#M&. )etu
ne shikojme skeletin e nj progami kryesor pr 3indows. Nuk sht i plot dhe nuk bn
kapje gabimesh, por ai tregon mjaft detaje pr qellimet tona. ,i fillon duke prfshire nj
file header, "in,o"s.h, qe prmban disa ma$ro, lloje datash, konstante, prototipe
funkionesh dhe informa$ione t tjera t ne"ojshme pr progamet 3indows.
ain$lude Ywindows.hX

int 36N,!6 3in(ain (26N1N,N* h, 26N1N,N* hpre", $har bs'*md, int
i*md1how)
c
3N=*-,11 wnd$lassI /b $lass obje$t pr ket dritare b/
(15 msgI /b mesa'het ardhes ruhen ketu b/
23N= hwndI /b handle (pointer) to the window obje$t b/

/b 6nitiali'e wnd$lass b/
wnd$lass.lpfn3nd!ro$ [ 3nd!ro$I /b tregon $ila pro$edure t therritet b/
wnd$lass.lps'*lassName [ \!rogram name\I /b Nekst pr title bar b/
wnd$lass.h6$on [ -oadl$on(N+--, 6=6`,!!-6*,N6:N)I /b ngarko ikonen e
programit b/
wnd$lass.h*ursor [ -oad*ursor(N+--, 6=*`,..:3)I /b ngarko kursorin e
mouse b/

.egister*lass(Swnd$lass)I /b tregon 3indows prreth wnd$lass b/
hwnd [ *reate3indow ( _ )I /b alokon storage pr dritaren b/
1how3indow(hwnd, i*md1how)I /b shfaq dritaren ne ekran b/
+pdate3indow(hwnd)I /b thuaji dritares t "i'atoje "et"etenb/

while (5et(essage (Smsg, N+--, 8, 8)) c /b merr mesa'hin nga rradha queue b/
Nranslatemessage (Smsg)I /b prkthe mesa'hin b/
=ispat$h(essage (Smsg)I /b dergo mesa'hin pro$edures se duhur b/
e
return(msg.w!aram)I
e

long *,--;,*) 3nd!ro$ (23N= hwnd, +6NN message, +6NN w!aram, long
6!aram)
c
/b =eklarimet "ihen ketu. b/

swit$h (message) c
$ase 3(`*.,NJ _ I return _ I /b krijo dritaren b/
$ase 3(`!,6NNJ _ I return _ I /b ri#"i'ato prmbajtjen e dritaresb/
$ase 3(`=1N.:]J _ J return _ I /b shkaterro dritaren b/
e
return(=ef3indow!ro$(hwnd, message, w!aram, l!aram))I /b default b/
e
Figure 5-41. Skeleti i program kryesor Windows.
!rogrami kryesor fillon me nj deklarim duke dhene emrin e tij dhe parametrat. 36N,!6
ma$ro sht nj instruksion pr kompilatorin qe t prdori nj parametr t $aktuar duke
kaluar $on"ention dhe nuk do t na shqetsoje me. !arametri i pare, h, sht nj instan$e
handle dhe prdoret pr ta identifikuar programin me pjesen tjetr t sistemit. 3in9H
sht nj obje$t oriented, qe do t thot qe sistemi prmban objekte (pr shembull
programet, files dhe dritaret) t $ilat kane nj gjendje dhe nj kod t asio$uar t quajtur
metoda t $ilat punojne ne at gjendje. :bjektet referohen duke prdorur handles dhe ne
ket rast, h#ja identifikon programin. !arametri i dyt shfaqet "etm pr arsyet e
ba$kward $ompability. !or nuk prdoret me tani. !arametri i tret, sB'm, sht nj string
qe mbaron me 'ero e $ila prmban $ommand line qe nisi programin, edhe n qoft se nuk
niset nga $ommand line. !arametri i katrt, i'm,Sho", tregon se $fare pjese t ekranit do
t okupoje ('eri) dritarja, t gjithe ekranin apo nj pjese t tij apo asnj pjese t tij ("etm
taskbar).
)y deklarim ilustron nj $on"etion qe ka prdorur (i$rosoft#i, t quajtur 2ungarian
Notation. mri sht nj loje fjalesh ne !olish Notation, sistemi postfi% u shpik pr
ripre'antimin e formula"e algjebrike duke mos prdorur prparesine ose kllapat.
2ungarian notation u shpik nga programuesi 2ungare' i (i$rosoftit, *harles 1imonyi,
dhe prdorte disa nga karakteret e para t nj identifikatori pr t spe$ifikuar tipin.
5ermat e lejuara dhe tipet prfshinin $ ($hara$ter), w (word, tani ka kuptimin e nj
integer &D bit pa shenj), i (integer 9H bit me shenj), s (string), s' (string qe prfundon ne
fund me byte 'ero), p (pointer), fn (fun$tion), dhe h (handle). )eshtu sB'm, sht nj
string qe mbaron me 'ero dhe i'm,Sho" sht nj integer. 1hume programues besojne
qe enkodimi i tipit te emrit t "ariablit ne ket menyre nuk ka shume "lere dhe bn kodin
e 3indows t "eshtire pr tu le%uar. )jo gje nuk shfaqet ne +N6R.
Bdo dritare duhet t ket t aso$iuar nj $lass obje$t e $ila pr$akton "etit e saj. Ne /ig.
7#M&, ajo $lass obje$t sht "n,class. Nj objekt i tipit 3N=*-,11 ka &8 fusha, M nga
t $ilat jane t ini$iali'uar ne /ig. 7#M&. Ne nj program aktual, D fushat e tjerat duhen t
ini$iali'ohet me se miri. /usha me e rendesishme esthe %pf)H)dPro&, e $ila sht nj
pointer i gjat (long 9H bit) i funksionit qe mena%hon (handles) mesa'het qe i drejtohen
kesaj dritareje. /ushat e tjera qe ini$iali'ohen ketu tregojne $ili emer dhe $ila ikon do
prdoret ne title bar, dhe $ili simbol do prdoret pr kursorin e mousit.
(basi ini$iali'ohet "n,class, therritet ;egister'lass pr tOju kaluar 3indows. Ne "e$anti
pas kesaj thirrjeje, 3indows e di $ilen pro$edure t therrase kur ndodhin ngjarje t
ndryshme qe nuk shkojne tek radha e mesa'he"e. Nhirrja tjetr, 'reate>in,o", alokon
memorjen pr strukturen e t dhena"e t dritares dhe kthen nj handle pr ta referen$uar
at me "one. !rogrami bn H thirrje t tjera rresht, pr ta "edosur konturin e dritares ne
ekran, dhe se fundemi ta mbushi at plotsisht.
Ne ket pike ne "ijme t loopi kryesor i programit, i $ili konsiston ne marrjen e
mesa'he"e, duke bere disa transferime (prkthime) t $aktuara, dhe duke ia kaluar
mbrapsht 3indows ne menyre qe 3indows t therrase >n,)roc pr ta proesuar at. !r
tOju prgjigjur pyetjes ne se mund t behej me i thjesht ky menakani'emI po mund t
behej, por keshtu sht bere kohe me pare dhe pr shkak t historise ne kemi ngelur me
ket.
Ne "ijim t programit sht pro$edura WndProc, e $ila mena%hon mesa'he t ndryshme
t $ilat mund ti dergohen dritares. !rdorimi i '@<<*@'3 ketu, si prdorimi i 36N,!6
sipr, spe$ifikon sekue$en thirrese pr t prdorur parametrat. !arametri i pare sht
mena%himi (handle) i dritares qe prdoret.
!arametri i dyt sht tipi i mesa'hit. !arametri i tret dhe i katrt mund t prdoren pr
t ofruar informa$ione shtese ne raste ne"oje.
Nipet e mesa'he"e >:';?@A? dhe >:/?SA;0= dergohen ne fillim dhe ne fund t
programit, respekti"isht. ,to i japin programit mundesine, pr shembull i alokimit t
memories pr strukturat e t dhena"e dhe t kthimit t tyre.
Nipi i tret i mesa'hit, >:)@1NA, sht nj instruksion pr programin, pr t plotsuar
(mbushur) dritaren. ,i nuk thirret "etm kur dritarja sht ne "i'atimin e pare, por shpesh
edhe gjat ek'ekutimit t programit. Ne dallim me sistemet e ba'uar mbi tekstet, ne
3indows nj program nuk mund pretendohet qe ajo $fare "i'atohet ne ekran, t qendroje
aty derisa dikush ta heqi at. =ritaret e tjera mund t trhiqen, menu#t mund t hapen,
tooltips mund t shfaqen. 3indows i tregon nj programi menyren si ai t ri#"i'atoje nj
dritaren, duke derguar nj mesa'h >:)@N1A. 5jithashtu ofrohet informa$ion se $ila
pjese e dritares sht mbishkruar, ne rast se sht me leht pr t ri#gjeneruar at pjese t
dritares ne "end qe t ri#"i'atohet e gjitha.
)a dy menyra qe 3indowsi mund ti thot nj programi ne menyre qe ai t kryeje di$ka.
(enyra e pare sht t postoje nj mesa'h ne radhen e tij t mesa'he"e (message queue).
)jo metode prdoret pr inputet e tastieres, pr inputet e mouse dhe timerat qe kane
skaduar. (enyra tjetr, sht dergimi i nj mesa'hi dritares, duke in"ol"uar 3indowsin
t therrasi direkt >n,)roc. )jo metode prdoret pr t gjitha ngjarjet e tjera. (eqe
3indows lajmerohet kur nj mesa'h sht plotsisht i proesuar, ai mund t shmangi nj
thirrje t re derisa thirrja e meparshme t mbaroje. Ne ket menyre kushtet e gares
menjanohen.
)a edhe tipe t tjera mesa'hesh. !r t menjanuar sjellje t gabuara duhet qe t "ije nj
mesa'h i papritur, gjeja me e mire sht t therritet /ef>in,o")roc ne fund t >n,)roc
pr t lene handlerin t kujdeset pr rastet e tjera.
!rmbledhura'i, nj program i 3indows 'akonisht krijon nj ose disa dritare me nj $lass
obje$t pr se$lin nga to. (e do program sht asio$uar nj radhe mesa'hesh (mes
queue) dhe nj bashkesi mes pro$edurash mena%himi (handler). 1e fundmi, sjellja e
programit drejtohet nga e"entet qe "ijne, t $ilt proesohen nga pro$edurat e mena%himit
(handler). )y sht nj model shume i ndryshem i bots sesa pamja pro$eduriale qe merr
+N6R.
>i'atimi i tanishem i ekranit mena%hohet nga nj paket me qindra pro$edura t $ilat jane
lidhur se bashku pr t formuar GDI (Graphics Device Interface). ,jo mund t
mena%hoje tekst dhe do lloj grafike dhe sht e disenjuar qe t jet e pa"arur nga
platforma dhe de"i$e. !rpara se nj program t "i'atoje brenda nj dritare, ai ka ne"oje
t siguroje nj device Context e $ila sht nj strukture t dhenash te brendeshme qe
prmban "etit e dirtares, si fonti i tanishem, ngjyra e tekstit, ngjyra e ba$kground, etj.
1hume thirrje t 5=6#s prdorin de"i$e $onte%t edhe pr "i'atim, ose pr
marrjen/"endojsen e "eti"e.
(enyra t ndryshme ek'istojne pr t siguruar ek'isten$n e nj de"i$e $onte%t. Nj
shembull i thjesht i sigurimit dhe i prdorimit shtJ
hd$ [ 5et=* (hwnd)I
Ne%t:ut (hd$, %, y, psNe%t, i-ength)I
.elease=* (hwnd, hd$)I
1tatement i pare merr nj handle pr nj de"i$e $ontent, h,c. dyta prdor de"i$e
$onte%t pr t shkruar nj rresht te%ti ne ekran, duke spe$ifikuar kordinatat (&-y) ku fillon
stringa, nj pointer pr "et stringen dhe gjatsine e saj. Nhirrja e tret liron de"i$e
$onte%t pr t indikuar qe programi po "i'aton ne ato momente. >ini re qe h,c sht
prdorur ne nj menyre analoge me prshkruesin e file#"e t +N6R. 5jithashtu "ini re qe
;elease/' prmban informa$ion t teprt (prdorimi i h,c ne menyre unike spe$ifikon
nj dritare). !rdorimi i informa$ionit t teprt qe nuk ka "lere akutale sht e 'akonshme
ne 3indows.
Nj tjetr gje interesante sht qe kur h,c#ja sigurohet ne ket menyre, programi mund t
shkruaje "etm ne 'onen e dritares t klientit dhe jo ne title bar, apo ne pjeset e tjera. Ne
brendesi, ne strukturen e t dhena"e t de"i$e $onte%t, mbahet nj 'one e le"i'shme. Bdo
"i'atim jasht kesaj 'one injorohet. )a nj tjetr menyre pr sigurimin e de"i$e $onte%t,
Pet>in,o"/', e $ila "endos 'onen e le"i'hme ne t gjithe dritaren. Nhirrjet e tjera
kufi'ojne 'onen e le"i'eshme ne menyra t ndryshme. Nj karakteristik tjetr e
3indows sht patja e thirrje"e t shumfishta t $ilat bejne t njjtn gje.
Nj trajtim i plot i 5=6 sht jasht "endit ketu. !r le%uesit e interesuar, referen$at e
$ituar me sipr ofrojne informa$ion shtese. (egjithat, disa fjale prreth 5=6 ia "len qe ti
prmendim pr t treguar rendesine e tij. 5=6 ka pro$edura thirrjeje t shumta pr t
marre dhe liruar de"i$e $onte%t, pr t prftuar informa$ion prreth de"i$e $onte%t, pr
marrjen dhe "endosjen e atribute"e t de"i$e $onte%t (pr shembull ngjyra e ba$kground),
manipulimi i obje$te"e 5=6, si pr shembull penat, fontet, fur$at, ku se$ila ka atributet e
saj. 1e fundmi, sigurisht ka nj numer t madh thirrjesh 5=6 pr t "i'atuar ne ekran.
!ro$edurat e "i'atimit bien ne M kategoriJ "i'atimi i "i'a"e dhe "ija"e t lakuara, "i'atimi
i 'ona"e t mbushura, mena'himi i bitmaps, shfaqja e tekstit. Ne pame nj shembull t
"i'atimit t tekstit me sipr, keshtu le te hedhim nj shikim t shpejt.
NhirrjaJ
.e$tangle (hd$, %left, ytop, %right, ybottom)I
>i'aton nj drejkendesh t mbushur skajet e t $ilit jane (&left, ytop) dhe (&right,
ybottom). !r shembull
.e$tangle (hd$, H, &, D, M)I
=o t "i'atoje nj drejtkendesh t treguar ne /ig. 7#MH. Nrashesia e "ijes, ngjyra dhe
mbushja e ngjyres merren nga de"i$e $onte%t. Nhirrjet e tjera t 5=6 jane t ngjashme ne
shije.
Figure 5-42.
Bitmap
!ro$eduart 5=6 jane shembuj t vector graphics. ,to prdoren pr t "endosur tekste
dhe figura gjeometrike ne ekran. )eto grafiqe mund t shkalle'ohen lehtsisht ne ekrane
me t medhenj ose me t "egjel (numri i pi%els ne ekran sht i njjt). 5jithashtu ato
jane relati"isht t pa"arura nga pajisjet.
Nj koleksion thirrjesh t pro$edura"e 5=6#se mund t asemblohet ne nj file t "etm qe
mund t prshkruaje nj "i'atim kompleks. Nj file i tille sht quajtur 3indows
metafile, dhe sht gjeresisht i prdorur pr t transmetuar "i'atime nga nj program i
3indows ne nj program tjetr. )eto lloj file kane prapashtesen ."mf.
1hume programe t 3indows lejojne prdoruesin t kopjoje nj pjese t nj pikture dhe
ta "endosi at ne $lipboard e 3indows#it. !rdoruesi mund t shkoje ne nj program
tjetr dhe t ngjisi prmbajtjen e $lipboardit ne nj do$ument tjetr. Nj menyre pr ta
bere ket sht qe programi i pare ta paraqesi pikturen si nj windows metafile dhe ta
"endosi at ne $lipboard ne formatin ."mf. 5jithashtu ek'istojne metoda t tjera.
Ao t gjitha ima'het qe kompjuterat manipulojne mund t gjenerohen duke prdorur
"e$tor graphi$s. !r shembull fotot dhe "ideot nuk i prdorin "e$tor graphi$s (grafiken
"ektoriale). )eto items skanohen duke mbi"endosur nj rrjet mbi ima'hin. (esatarja e
"lera"e t ngjyra"e t kuqe, jeshile dhe blu ne do kuadrat t kesaj rrjete kampionohen
dhe ruhen si "lere e nj pi%eli. Nj file i tille quhet bitmap. 3indows ofron lehtsira t
shumta pr ti manipuluar bitmaps.
Nj tjetr prdorim i bitmap sht pr tekste. Nj menyre pr t paraqitur nj karakter, nj
stil font sht si nj bitmap i "ogel. 1htimi i tekstit ne ekran behet nj $eshtje thjesht
le"i'jeje t bitmaps.
Nj menyre e prgjithshme e prdorimit t bitmap sht neprmjet nj pro$edure t
quajtur bitblt. ,jo therritet si me poshtJ
;itblt (dsthd$, d%, dy, wid, ht, sr$hd$, s%, sy, rasterop)I
Ne formen e tij me t thjesht, ajo kopjon nj bitmap nga nj drejtkendesh ne nj dritare,
t nj drejtkendeshi ne nj dritare tjetr (ose ne t njjtn). Nre parametrat e pare
spe$ifikojne dritaren e destin$aionit dhe po'i$ionin. (e pas "ijne gjeresia dhe gjatsia.
(e pas sht dritarja burim dhe po'i$ioni. >ereni qe do dritare ka sistemin e "et t
koordinata"e, me (8, 8) ne skajin e siprm#majtas t dritares. !arametri i fundit do t
prshkruhet si me poshtJ
fekti i ;it;lt (hd$H, &, H, 7, C, hd$&, H, H, 1.**:!])I
?sht treguar ne /ig. 7#M9. >ini re me kujdes qe 'ona e plot 7%C e shkronjs , sht
kopjuar duke prfshire dhe ngjyren e sfondit.
Figura 5-43. Kopjimi i bitmaps duke prdorur BitBlt. (a) Me Pare. (b) Me pas.
*it*l mund t beje me shume sesa thjesht kopjimin e bitmaps. !arametri i fundit jep
mundesine per t kryer "eprime ;oolean, pr t kombinuar bitmapin burim me at
destina$ion. !r shembull, burimi mund t jete :red, pr tu shkrire me pas ne
destina$ionin. 5jithashtu mund t jet )1)-+@6> :.ed ne t, e $ila ruan
karakteristikat si t burimit ashtu dhe t destina$ionit.
Nj nder problemet e bitmap sht qe ato nuk mund t shkalle'ohen. Nj karakter qe
ndodhet ne nj kuti L % &H, ne nj display me DM8 % ML8 do t dukej e arsyeshme.
(egjithat, ne qoft se ky bitmap do t kopjohet ne nj faqe t printuar me &H88
dots/in$h, e $ila sht &8H88 bit % &9H88 bit, gjeresia e karakterit (L pi%el) do t jet
L/&H88 in$h ose 8.&C mm e gjere. >e$ kesaj, kopjimi midis pajisje"e me "eti t ndryshme
ngjyrash ose midis mono$hrome dhe ngjyra"e nuk funksionon mire.
!r ket arsye, 3indows mbshtet informa$ionin ne strukturen e t dhena"e te
ashtuquajtur DIB (Device Independent Bitmap). /ile#at qe prdorin ket format
prdorin prapashtesen.bmp. )eto file#s kane file header dhe information headers dhe nj
tabele ngjyrash prpapara pi%ela"e. )y informa$ion e bn me t leht le"i'jen e bitmap
midis pajisje"e t ndryshme.
Fontet
Ne "ersionet paraardhese t 3indows 9.&, karakteret ishin t paraqitur si bitmaps dhe
kopjoheshin ne ekran ose printer duke prdorur *it*lt. !roblemi ne ket menyre ishte, si$
e pame dhe pak me lart, bitmapi qe ka kuptim pr ekranin sht shume i "ogel pr
printerin. 5jithashtu nj bitmap i ndryshem ne"ojitet pr do karakter, ne do madhesi t
tij. (e fjale t tjera, ne qoft se do t jepet bitmapi pr ,#ne me madhesi &8 point, nuk ka
asnj menyre pr ta llogaritur at pr madhesine &H point. 1epse do karakter i do lloj
fonti, pr madhesite qe "ariojne nga Mpoint deri ne &H8point, ka t ne"ojshme nj numer
t madh bitmaps. 6 gjithe sistemi ishte i pa"olitshem pr tekst.
@gjidhja ishte futja ne prdorim i NrueNype /onts t $ilat nuk jane bitmap, por thjesht
konture t shkronja"e. Bdo karakter NrueNype sht i pr$aktuar nga nj sekuen$e pikash
rreth perimetrit t tij. N gjitha pikat jane relati"e me origjinen (8, 8). =uke prdorur kt
sistem, sht e thjesht ti shkalle'osh karakteret. ,jo $fare duhet t behet sht t
shume'ohet do koordinat me t njjtin faktor shkalle'imi. Ne ket menyre nj NrueNype
karakter mund t shkalle'ohet ne do madhesi, gjithashtu madje edhe ne madhesi
thyesore. !asi t jet arritur madhesia e duhur, pikat mund t bashkohen duke prdorur
metoden e njohur si Endiq#pikatF e mesuar ne kopesht. !asi konturi t jet kompletuar
karakteri mund t mbushet. Nj shembull i disa karaktere"e t shkalle'uar ne 9 madhesi
t ndryshme sht treguar ne /ig. 7#MM.
Figura 5-44. Disa shembuj t kontureve t karaktereve ne prmasa t ndryshme.
!asi shkronja e mbushur t jet e gatshme ne formen matematikore, mund t rasteri'ohet,
qe do t thot t kon"ertohet ne nj bitmap ne $faredolloj re'olu$ioni t deshiruar. =uke e
shkalle'uar si fillim, dhe me pas duke rasteri'uar, ne mund t jemi t sigurt qe karakteret
e paraqitura ne ekran dhe ato qe do t shfaqen ne printer do t jene aq t praferta sa t
jet e mundur, duke ndryshuar "etm ne gabimin e kuanti'imit. !r ta prmiresuar
$ilesine akoma me shume, sht e mundur t prfshihet (embed) hints ne se$ilen shkronj
duke treguar menyren se si do behet rasteri'imi. !r shembull, t dyja (serifs)
shkalle'imet ne krye t shkronjs N duhet t jene identike, di$ka qe mund t mos jet e
"ertet si pasoje e gabimit gjat rrumbullakimit (round off).

5.8 TERMINALET E RR1ETIT
Nerminalet e rrjetit perdoren pr t lidhur nj prdorues kompjuteri ne distan$e ne nje
rrjet, si ne -,N ashtu dhe ne 3,N. Aane dy filo'ofi t ndryshme sesi terminalet e rrjetit
duhet t punojne. Ne njren ane, terminali duhet t ket nj fuqi te madhe llogaritjeje dhe
memorje me qellinm qe t kemi protokolle komplekse pr t kompresuar sasi t medha t
dhenash t derguara ne rrjet, (nj protokoll sht nj marre"eshje per nje bashkesi
kerkesash dhe prgjigjesh, qe nj dergues dhe marres te mund te komunikojne ne rrjet ose
nderfaqe t tjera.). Ne anen tjetr terminali duhet t jet jasht'akonisht i thjesht dhe ne
menyre qe ta bej ate shume t lire. Ne "a'hdimin e dy seksione"e ne do t diskutojmenga
nj shembull per se$ilen filo'ofi. 1e pari ne do t meremi me sistemin window R t
sofistikuar. (e pas ne do t shikojme pak terminalin 1-6(.
5.8.1 Sistemi Window X
Nerminalet 6nteligjent t prfunduar sht nj terminal qe prmban nj mikroproesor aq
t fuqishem sa nj kompjuter kyesor, me memorje megabytes, nj tastjere dhe nj mouse.
Nj terminal i ketij tipi sht terminali R, i $ili "epron ne sistemin window R, (shpesh e
quajme me nj fjale R). @h"illuar ne (.6.N, si pjese e projektit ,thine. Nj terminal R
sht nj kompjuter qe eg'ekuton software R dhe i $ili bashke"epron me programet duke
funksionuar ne nj kompjuter t larget.
!rogrami brenda terminalit R qe mbledh t dhena nga tastjera ose mouse#i, dhe pranon
komandat nga nj kompjuter i larget sht quajtur ser"er R. ,i duhet t mbaj trajektoren
ne t $ilen window#si sht aktualisht selektuar ( ku shenjuesi i mouse#it sht), keshtu qe
ai njeh $ili klient dergon ndonj fjale t re ne t. ,i komunikon ne rrjet me klient R duke
funksionuar ne disa host#e t largeta. ,i dergon atyre te dhena nepermjet mausit dhe
tastjeres dhe pranon shfaqen e komanda"e nga ata.
(und t duket pa kuptim t kesh nj ser"er R brenda nj terminali dhe klient ne host#in
ne largesi, por puna e ser"erit R sht t shfaqi bitet, keshtu qe ai ka kuptim t jet afer
prdoruesit nga pikepamja e programit, sepse eshte klienti qe i thote ser"erit $fare te bej,
si per shembull shfaqen e tekstit dhe figura"e gjeometrike. Nj marre"eshje midis klientit
dhe ser"er#it sht treguar ne fig.7#M7.
,i sht gjithashtu i mundeshem t funksionoj ne sistemin window R ne maje te tij ose
:N6R ose sisteme operati"e t tjera. Ne fakt, shume sisteme +N6R "eprojne ne sistemin
window R si standartet e sistemit windowing, madje dhe ne kompjutera te "e$ante per te
aksesuar nje kompjuter ne largesi nepermjet internetit. *fare ne t "ertet sistemi window
R pr$akton sht protokolli ndermjet klientit R dhe ser"erit R, t treguar ne fig.7#&7.
Nuk ka rendesi ne se klienti dhe ser"er#i jane ne t njjtn makine, t ndara nga &88
metra ne -,N, ose jane mijera kilometra larg dhe t lidhura nga interneti. !rotokolli dhe
sistemi operati"e sht identik ne t gjitha rastet.
R sht pikerisht nj sistem windowing. ,i nuk sht nj 5+6 komplet. N besh nj 5+6
t kompletuar, shtresat e tjera t software jane ne "eprim ne maje t tij. Nj shtrese sht
Rlib. e $ila sht nj bashkesi librarish qe "epron pr aksesimin dhe funksionalitetin e R.
)eto pro$edura formojne ba'at e sistemit window R dhe $fare ne do t kryejme me
posht, por ata jane shume primiti" pr aksesimin direkt per me te shumten e
perdorues"e. !r shembull, do klik e mouse#it raportohet i ndare, keshtu qe duke
llogaritur qe dy klikime t mouse#it realisht formojne nj klik t dyfisht duhet t merret
me Rlib.
per tab ere programimin me R me te thjeshte, nj kuti t dhenash qe konsiston ne
1ntrinsics sht shfaqur si pjese e R. )jo shtrese mena%hon butonat, s$roll bars dhe
elementet e tjere 5+6 t quajtura "i,gets. N besh nj nderfaqe t "ertet 5+6, me nj
pamje uniforme, ne"ojitet edhe nj shtrese tjetr. (e e populluara ose me shume e
prdorshme sht shtresa qe quhet otif. ,plika$ionet e shumta prdorin (otif.
5jithashtu duke i kushtuar "emendje qe administrimi window#s nuk sht pjese e "et R.
>endimi pr e"itimin e tij sht totalisht i qellimshem. Ne "end t, nj proesi te ndare
$lient R, i qujatur window menager, i $ili kontollon krijimin, fshirjen dhe le"i'jet e
window ne ekran. !er mena%himin e window#s, ai dergon komanda tek ser"er#i R duke i
treguara se $fare duhet t bej. ,i shpesh "epron ne t njjtn makine si klient R, por ne
teori mund t "eproje kudo.
)y modular i di'enjuar konsiston ne disa shtresa te ndryshme dhe ne shume programe,
kjo e bn R tepr te mena%hueshem dhe fleksibel. ,i ka qene drejtuar ne "ersionet e
shumta t +N6R duke prfshire 1olaris, ;1=, ,6R, -inu% dhe t tjera duke bere t
mundur qe 'h"illimi i aplikime"e te kete nje nderfaqe standarte pune per shume
platforma. ,i ka qene gjithashtu drejtuar ne sisteme te tjera operimi. Ne kontrast, ne
3indows, sistemet windowing dhe 5+6 jane nderthurur se bashku ne 5=6 dhe t
lokali'uara ne kernel (berthame ne qender), e $ila i bn ato me t "eshtira t
shfryt'ohen. !r shembull, windows GL 5+6 sht akoma krejtsisht &D bits, ku me
shume se nj dekade me pare proesoret 6ntel ishin 9H bits.
Nani le t hedhim nj shikim t shkurtr ne R duke e para nga ni"eli Rlib. )ur nj
program R fillon, ai hap lidhjen tek njri ose me shume ser"era R le ti quajme ato
sta$ione pune (worksta$ion), madje ata mund t jene ne t njjtn makine si programet e
"eta t R. R konsideron qe kjo lidhje eshte e sigurt, i besueshem, ne kuptimin qe humbja
dhe dublikimi i mesa'he"e jane kapur nga software i rrjetit dhe nuk duhen t shqetsohet
pr gabimet e komunikimit. @akonisht N*!/6! prdoret ndermjet $lient dhe ser"er.
)atr tipe mesa'hesh kaojne nepermjet kesaj lidhje.
&. N%jerrje komandash nga programi tek workstation.
H. !rgjigje nga worksta$ion tek pyetjet e programit.
9. Nastjera, mouse dhe ngjarje t tjera njoftohen.
M. (esa'het iNor.
)omandat e shumta jane derguar nga programi tek workstation si nj rruge kalimi e
mesa'he"e. Nuk kemi kthim prgjigje. 1hkaku pr ket sht qe kur proeset klient dhe
ser"er jane ne makina t ndryshme, mund t doje nj period kohe t konsiderueshme pr
komandat t arrijne ser"erin dhe t kryhen. =uke bllokuar programin aplikati" gjat kesaj
kohe mund ta uli ndjeshem at pa qene e ne"ojshme. Nga ana tjetr kur programi kerkon
informa$ion nga worksation ai thjesht duhet t presi deri sa prgjigjja t kthehet. 1i
windows, R sht tepr i goditur. Ngjarjet rrjedhin nga workstation tek programi,
'akonisht, ne prgjigje t disa "eprime"e njere'ore, si shtypja e tastjeres, le"i'jet e
mouse#it, ose nj window Kus duke qene i pa mbuluar. Bdo mesa'h sht 9H bytes, ku
bytet e pare japin tipin e ngjarjes dhe 9& bytes e tjere kane informa$ionin.
)on$epti i nj $elesi ne R sht nj burim. Nj burim sht nj strukture t dhenash qe
mbajne nj informa$ion t $aktuar. !rogramet aplikati"e krijojne burime ne workstation.
;urimet mund t jene ne prdorim t prbashket prgjat proese"e t shumta ne
worksation. ;urimet priren t jene t shkurtra dhe nuk mbijetojne reboot#"e t
workstation. ;urimet tipike prfshine windows, fonts, ngjyra paletesh, pi%maps dhe
kontekset grafike. N fundit jane prdorur t shoqerojne "etit ne windows dhe jane t
njjta ne kon$ept t "endosin kontekstet ne windows.
Nj strukture jo e plot e nj programi R sht treguar ne fig 7#MD. ,jo fillon duke
prfshire disa kerkesa ne fillim dhe me pas disa deklarime "ariablash. ,i me pas lidhet
me spe$ifikimet e ser"er#it R si parametra t XopenDisplay. (e pas alokohen burimet
window dhe rregjistrohen ne window. Ne praktike, disa in$iali'ime duhet t ndodhin
ketu. !as kesaj i tregon mena%herit window qe ek'iston nj window i ri, keshtu qe
mena%heri window mund ta mena%hoje at.
Nhirrja e Xcreate GC krijon nj kontekst grafik ne t $ilin "etit e window jane
rregjistruar. Ne nj program me t plot ato mund t in$iali'ohen ketu. 2api tjetr, thirrja
e XselectInputU i tregon ser"er#it R, $ili program sht prgatitur t mbahet. Ne ket
rast sht me interes ne klikimet e mouse#it, ne shtypjen e tasta"e ne tastjere, dhe window
duke qene i pa mbuluar ose i pa siguruar. Ne praktike, nj program real duhet t jet me
interes ne "eprime t tjera si goditja. =he se fundmi, thirrja e XmapRaised "endos
window#sin e ri ne ekran si window me i fuqishem. Ne ket pike window#si behet i
dukshem ne ekran.
-aku kryesor konsiston ne paraqitje dhe sht llogjikisht shume me i thjesht se laku
korrespondues ne windows. !araqitja e pare ketu jep nj ngjarje dhe i dyti jep goditjen e
fundit ne tipin e "eprime"e pr shqyrtim. )ur disa ngjarje tregojne qe programi ka
mbaruar, running "endoset ne 8 dhe laku prfundon. !rpara eg'ekutimit, programi liron
kontekstin grafik, window, dhe lidhjen. shte me interes te permendim, qe jo do njri
pelqen nj 5+6. 1hume programues prferojne nderfaqen e orjentuar t 'akonshme e tipit
t diskutuar ne seksionin 7.D.H.
5.8.2 Terminali i rrjetit SLIM
5jat "ite"e, modeli informatike kryesor ka "ariuar ndermjet $entarli'imit dhe
de$entrali'imit informatik. )ompjuterat e pare, si 6N,*, ishin ne fakt kompjutra
personal, megjithese ishte nj i madh, sepse "etm nj person mund ta prdori ne t
njjtn kohe. (e pas erdhi sistemi timesharing, ne t $ilin shume prdorues t larget ne
terminale t thjeshta ndanin nj kompjuter t madh qendror. (e pas erdhen !* para, ne t
$ilin prdoruesit kishin prseri kompjutrat e tyre personale.
Ndersa de$entrali'imi i modelit !* kishte a"an$uar, gjithashtu kishte disa disa"anta'he
qe jane pr tu pare serio'isht. (e sa duket problemi me i madh sht qe do !* ka nj
hard disk t madh dhe nj software kompleks qe duhet mirmbajtur. !r shembull, kur del
nj shkarkim i ri ne sistemin operati", nj pune e madhe duhet bere per perfomimin e
upgrade ne do makine me "et. Ne te shumten e korporata"e, kostua e punes qendron ne
mirmbajtjen e ketyre lloj hardware dhe softwaresh. !r prdoruesit shtpiak, puna sht
teknikisht e lire, por pak njere' jane t 'ot ta bejne at me korrektsi. (e sistemet e
$entarli'uara, "etm nj ose pak makina duhet t behen update dhe keto makina kane nj
staf ekspert qe bejne punen.
Nj problem i afert sht qe prdoruesit duhet t bejne ba$kup#e rregullisht t file#"e t
tyre t sistemit qe kane nj sasi t madhe t dhenash deri ne gigabyte, por "etm pak prej
tyre e bejne ket. )ur di$ka e keqe ndodh, sht nj problem shume i madh pr ti siguruar
ato file. (e sistem t $entarli'uar, ba$kup K et behen do nat automatikisht ne nj shirit
automatik.
Nj tjetr a"anta'h sht qe prdorimi i prbashket i burime"e sht me i leht me
sisteme t $entrali'uar. Nj sistem me DM prdorues t larget, se$ili me DM (; .,( do t
ket ket me te shumten e ketij .,(, ne shumi$en e kohes pa "ene ne funksionim. (e
nj sistem t $entrali'uar me M 5; .,(, nuk ndodh kurre qe disa prdorues
prkohesisht kane ne"oje me shume .,(, por nuk mund ta marin at sepse ndodhet ne
nj !* t nj personi tjetr. 6 njjti argument qendron dhe pr disqet e memorjes dhe
burimet e tjera.
?sht me sa duket nj konklu'ion i drejt t themi qe prdoruesit e shumt kerkojne
informatike trheqese me performan$e t lart, por nuk duan realisht t administrojne nj
kompjuter. )jo ka lejuar kerkuesit, t ri#eg'aminojne timesharing duke prdorur
terminalet dumb qe takojne terminalet modern. R ishte nj hap ne ket drejtim, por nj R
ser"er sht akoma nj sistem kompleks me nj software t madh megabytes qe duhet t
upgraded here pas here. 5rali i shenjt duhet t jet nj performan$e e lart ne t $ilin
makinat e prdoruesit nuk kane software pr shqetsim. (e posht ne do t prshkruajme
nj sistem, i 'h"illuar nga 'buluesit ne 1un (i$rosystems dhe 1tanford +ni"ersity.
1istemi quhet 1-6(, i $ili ngrihet nga 1tateless -ow K le"el 6nterfa$e (a$hine. 6dea
sht ba'uar ne timesharing e $entrali'uar t 'akonshem si$ tregohet ne figuren 7 K MC.
(akinat e klientit jane dumb &H18 % &8HM bitmap, me nj tastjere dhe mouse, por jo
software t instaluar nga prdorues. ,ta jane ne ndikimin e 6nteligjen$es se "jetr te
terminalet $hara$ter K oriented, qe kane pak kujdesje t interpretojne kode"e qe kane
shpetuar, por jo software t tjere. 1i tek terminalet $hara$ter K oriented t "jetr,
funksioni i "etm i prdoruesit sht fikja dhe nde'ja. Nerminalet e ketij tipi qe kane
kapa$itet pro$edimi t paket jane quajtur thin $lients.
(odeli me i thjesht qe ka ser"er ship bitmaps ne rrjet te klientt 1-6(, D8 here ne
sekond nuk punon. Ne"ojitet rreth H 5bps gjeresi bre'i t rrjetit, i $ili sht shume pr
rrjetin e tanishem t mano"rohet. (odeli tjetr i thjeshtuar duke regjistruar ima'he ne
ekran me prshtats frame brenda terminalit dhe duke rifreskuar D8 here ne sekond ne
"end t $aktuar sht me premtuese. Ne "e$anti ne qoft se ser"eri qendror ruan nj kopje
t do frame t terminalit dhe dergon "etm update sipas ne"ojes, kerkesat e gjeresise se
bre'it jane shume modeste. )jo sht se si punon nj 1-6( thin $lient.
Ndryshe nga protokolli R, i $ili ka qindra mesa'he komplekse pr mena%himin e
windows#it, figura"e me "i'atim gjeometrik, dhe shfaqja e tekste"e ne shume madhesi,
protokolli 1-6( ka "etm pese mesa'he shfaqjeje, t radhitura ne figuren /ig.7#ML (ka
gjithashtu nj numer t "ogel mesa'hesh kontrolli jo t radhitura). 6 pari, 1N,
'e"endeson nj drejtkendesh bufferin e frame#it me pik%'ela t rinj. Bdo pik%el i
'e"endesuar prmban 9 byte ne mesa'h pr t spe$ifikuar "leren e plot t ngjyra"e (HM#
bit). Neorikisht, ky mesa'h sht i mjaftueshem pr tha kryer ket detyre, t tjerat jane
"etm pr optimi'im.
(esa'hi /6-- mbush nj trekendesh plotsisht ne ekran me nj "lere t "etme pik%eli.
!rdoret Nor pr t mbushur nj ba$kground t njtrajtshm. (esa'hi ;6N(,! mbush
nj katrkendesh t plot duke prsritur nj moti" t prfshire ne mesa'h bitmap. )jo
komande sht e prdorshme pr t mbushur ba$kgroud#et me moti"e qe kane disa
ndertime dhe nuk jane nj ngjyre e njtrajtshme.
(esa'hi *:!] udhe'on terminalin pr t kopjuar nj katrkendesh brenda nj buffer
frame tek nj pjese tjetr e buffer frame#it. ?sht shume e dobishme pr t rrotulluar
ekranin dhe le"i'ur dritaren. 1e fundmi, mesa'hi *1*1 kon"erton sistemin e ngjyra"e
]+> t prdorur ne tele"i'ionet e 12.;.,#se (NN1*) qe "endosin sistemin .5; t
prdorur nga monitoret e kompjuterit, fillimisht prdoret kur nj frame "ideo e papunuar
ka kaluar tek nj terminal ne sistemet ]+> dhe duhet qe t kon"ertohet ne .5;, qe t
shfaqet. =uke diskutuar pr ket nga ana algoritmike sht e thjesht por har%hon kohe,
pra sht me mire t shkarkosh punen ne terminale. N qoft se terminalet nuk do t
prdoren pr t pare "ideon, ky mesa'h dhe funksionalitetet e tij mund t mos jene t
ne"ojshme.
6dea e prgjithshme e klient"e \thin\ .... Ne prototipin swit$he"e &88#(;!1 /ast
thernet sht prdorur ne t dyja segmentimet ser"er#to#swit$h dhe swit$h#to#terminals.
Nga fuqia, nj rrjet me gigabit duhet t prdoret midis ser"erit dhe swit$h sepse ai
segment sht lokal ne dhomen e komjuterit qendror. (adhesia e pare ndeshet me
karakteret qe prseriten ne ekran. Bdo karakter i shtypur dergohet ne ser"er, i $ili
prpunon se $ili piksel do t update#et pr t "endosur karakterin ne "endin e duhur ne
ekran, madhesine dhe ngjyren. (adhesite tregojne qe ajo merr 8.7 mse$ pr karaterin, pr
thu shfaur ne ekran. Ndryshe, ne nj workstation lokal koha e prseritjes sht 98 mse$
prgjat buferimit t kernelit.
!jesa tjetr e teste"e maste performan$en me prdorues qe po ek'ekutojne programe
aplikati"e, interakti"e moderne si ,dobe !hotoshop, ,dobe /rameworker dhe nets$ape.
Nga "rojtimi doli qe gjysma e komanda"e t prdoruese"e kerkonin update#m me t
"ogel se &8 888 piksel, e $ila sht 98888 byte e pakompresuar. Ne &88 (bps ajo merr
H.M mse$ pr t n%jerre &8888 piksela pr ne tel, pr nj kohe totale 7.& mse$ (por "aret
nga kushtet rrethanore). =erisa koha e reagimit t qenie"e njere'ore sht rreth &88
mse$, disa update duken si t $astit. Ndoshta update#et e medha ishin pothuajse t $astit.
5jithashtu, kur prdoret kompresimi, me tepr se L7Q e update#e"e jane nen 98888 byte.
ksperimentet ishin prseritur ne nj rrjet &8 (bps, nj rrjet &#(bps dhe nj rrjet &HL#
)bps. Nek &8 (bps sistemi ishte "irtualisht i $astit dhe & (bps ishte akoma mire. Ne &HL
)bps ajo ishte shume i ngadalt pr thu prdorur. -idhjet deri ne & (bps jane duke u bere
shume shpejt realitet duke prdorur rrjetin kabllor N> dhe ,=1-, duket qe kjo teknologji
mund t aplikohet ne prdorueses shtpiake ashtu si dhe ne prdorues bi'nesi.
5.9. Menaxhimi i fuqise
<ellimi i pare i pare i kompjutera"e elektronike, N6,* ka &L888 tuba "ajisjeje dhe
konsumon &M8888 wat fuqi. 1i re'ultat, kjo ngre lart faturen elektrike. !as 'bulimit t
transistorit prdorimi i fuqise ra dramatikisht dhe industria e kompjutera"e humbi
interesin ne kerkimet e fuqise.
1ado ne ditt tona mena%himi i fuqise sht kthyer ne projektor pr disa arsyeje dhe
sistemi operati" sht duke luajtur nj rol ketu.
-e t fillojme me desktop !*s. Nj desktop !* shpesh &H88 wat fuqi (L7Q sht
efi$ente, kurse &7Q humbet pr ngrohje). N qoft se &88 milion nga keto makina jane
hapur nj heresh ne t gjithe botn, se bashku ato prdorin H8.888 (egawat energji
elektrike. )y sht prfundimi total i H8 u'ina"e me fuqi nukleare.
N qoft se kerkimet e fuqise mund t lihen prgjysem, ne mund t shpetojme &8 u'ina
nukleare (ose ne krahasim t mbetje"e te karburante"e t u'ina"e) sht nj fitore e
madhe dhe nj kursim i "lefshem.
>endet e tjera ku fuqia sht nj prdorim i madh, sht ne fuqine e baterise t
kompjutera"e, prfshire notebooks, laptop#et, palmtops dhe wedpods midis t tjere"e.
Nhelbi i problemit sht qe baterit nuk mund t karikohen per te 'gjatur shume
perdorimi i tyre, e shumta disa ore. (egjithe kerkimet masi"e te perkrahura nga
kompanite e prodhimit t bateri"e, kompanit e kompjutera"e dhe kompanit elektronike
konsumatore, 'h"illimi sht i ngrire.
Ne nje industri e $ila eshte mesuar te permiresoje performan$en do &L muaj, mospatja e
nje progresi duket sikur po thyhen ligjet e fi'ikes, por kjo sht nj situata e tanishme.
1i rrjedhoje, te prodhosh kompjutera qe perdorin me pak energji, sjell per pasoje dhe
'gjatjen e perdorimit te baterise, qe eshte dhe qellimi i a%henda"e te te gjithe prodhues"e.
1istemi operati" luan nj rol kryesor ketu, qe ne do ta shohim me posht.
Aane dy perpjekje t prgjithshme pr t '"ogeluar konsumimin e energjise.
para sht qe sistemi operati" te fiki disa pajisje (me se shumti pajisje 6/:), sepse kur
nje pajisje eshte e fikur prdor pak ose aspak energji.
dyta sht qe programi aplikati" te perdori me pak energji, per te '"ogeluar kohen e
perdorimit te baterise, por me shume mundesi degradon $ilesia e eksperien$es se
prdoruese.
Ne do ti shikojme te dyja keto perpjekje me radhe, por fillimisht ne do t flasim pak rreth
ndertimit te hardware#t, duke respektuar prdorimin e fuqise.
Hardware issues
;ateri jane dy llojeshJ me nje perdorim dhe te rikarikueshme.
;aterite me nje perdorim (me shume ,,,, ,, dhe = qeli'at) mund t prdoren pr
pajisje te "ogla (handhandle), por nuk ka energji t mjaftueshme pr laptop t fuqishem
me ekran t ndritshem.
;aterite e rikarikueshme, ndryshe nga te parat, mund t ken energji t mjaftueshme pr
nj laptop pr disa ore.
;aterit me nikel dhe kadium kane dominuar ketu, por ato u hapen rruge bateri"e hibride
me metal nikeli, qe 'gjasin me shume dhe nuk e ndotin ambientin kur jane te shkarkuara.
;aterit prej hekuri dhe litiumi jane akoma me mire dhe mund t karikohen pa qene
plotesisht te thata, por kapa$iteti i tyre sht rreptsisht i limituar.
!er shitesit e kompjutera"e, 'gjidhja ne lidhje me baterite u gjet qe, *!+#ja, (emoria
dhe pajisjet 6/: te kene disa gjendjeJ on, sleeping, hebernating dhe off.
!er te perdorur pajisjen, ajo duhet te jete ne gjendjenI on. )ur pajisja nuk ne"ojitet per
nje kohe te shkurter ajo mund te kaloje ne gjendjenI sleep, e $ila sjell nje konsumim me te
"ogel te energjise. )ur pritet qe pajisja te mos perdoret per nje kohe me te gjate ajo kalon
ne gjendjenI hibernated, e $ila sjell nje kursim me te madh te energjise. !or problemi ketu
eshte qe duhet me shume energji per ta n%jerre pajisjen nga gjendja, hibernated, se nga
gjendja sleeping. !erfundimisht kur pajisja eshte e fikur ajo nuk har%hon energji. =uhet
te permendin qe te gjitha pajisjet i kane te kater gjendjet, por eshte detyra e sistemit
operati" te mena%hoje gjendjet e tran'i$ionit, ne nje moment te $aktuar.
=isa kompjutera kane H ose 9 butona te fuqise. Nje nga keto butona mund ta kaloje te
gjithe kompjuterin ne gjendje sleep, nga e $ila mund te dali menjehere duke shtypur nje
karakter ose duke le"i'ur mouse. Njetra e "e ne gjendjen 2ibernation, nga e $ila duhet nje
kohe me e gjate per te dale. Ne te dyja keto raste, ato nuk bejne gje tjeter "etem se i
dergojne nje sinjal sistemit operati", i $ili e pushon menjehere software#in. Ne disa shtete,
pajisjet elektrike, te detyruara me ligj, duhet te kene nje $eles mekanik, e $ila e fik
menjehere automatikisht pajisjen, per arsye sigurie.
(ena%himi i fuqise sjell nj sere pyetjesh me te $ilat sistemi operati" duhet te perballet.
,to jane si me poshteI $ila pajisje duhet te kontrollohetU Aane ato ne gjendje :n/:ff apo
jane ne gjendje te ndermjetmeU 1a energji eshte kursyer duke e mbajtur ne gjendjet e
uletaU , har%hohet energji kur sistemi ristartohetU )ursehet energji kur kalohet ne nje
gjendje me te uletU 1a kohe duket per tu kthyer ne gjendjen maksimaleU
1igurisht prgjigjet e ketyre pyetje ndryshojne nga pajisja ne pajisje dhe sistemi operati"
duhet te kete parasysh nje sere mundesish.
)erkues te ndryshem, kane eg'aminuar laptopet pr t pare kur iken korenti dhe kane
arritur ne konklu'ionet qe tregohen ne figuren 7.MG. ,ta thjesht konfirmuan qe pajisjet
fikeshin sipas kesaj radhe, ne fillim ekrani, hard disk dhe *!+#ja. !or keto parametra
nuk mund te pergjithesohen, sepse marka te ndryshme kompjuterash, kane kerkesa te
ndryshme per matjen e energjise. !or nga tabela me poshte duket qarte qe, ekrani, hard
disku dhe *!+#ja jane objektet kryesore per kursimin e energjise.
Operating system issues (Dalja ne qarkullim e sistemit operativ):
1istemi :perati" luan nj rol kryesor ne mena%himin e energjise. ,i kontrollon te gjitha
pajisjet, ai mund te "endosi ke pajisje duhet te fik dhe kur duhet ta bej ate. )ur fik nje
pajisje dhe ajo duhet pas pak kohe te perdoret, atehere mund te kemi nje "onese jo te
kendshme kur duhet ta ristartojme ate, nga ana tjeter neqoftese koha per fikjen e nje
pajisje eshte e gjate, atehere nuk kemi kursyer energji. 2ilja ketu qendron qe te gjenden
algoritmet e duhura, qe sistemi operati" te "endosi, $ilen pajisje duhet te fiki dhe kur.
Nj prdorues mund t pranoje qe pas 98 sekondash pa prdorim t kompjuterit ai t
marre H sekonda pr tu prgjigjur nj shtypje t butonit t tastieres. Nj prdorues tjetr
mund t mos ta pranoje kete 'gjidhje. Ne mungese t audio input#it kompjuteri nuk mund
ti "e$oje keta perdorues.
Ekrani
-e t shikojme tani shpen'uesit me te medhenj te energjise pr t pare se $fare mund t
bejme. )onsumuesi me i madhe i energjise eshte ekrani.
!r t patur nj ima'h t ndritshem ekrani duhet t riktheje dhe t japi energjine.
=isa sisteme operati" or"aten t shpetojne energjine nga mbyllja e paraqitjes kur nuk ka
akti"i'im per disa minuta.
1hpesh prdoruesi duhet t 'gjidhe se $fare inter"ali sht mbyllja, duke pushuar
tregimin midis boshllekut t ekranit dhe prdorimit t baterise mbrapsht. /ikja e ekranit
eshte gjendja sleep, sepse ai mund te kthehet pothuaj menjehere ne gjendjen e
meparshme, sapo nje nga karakteret te jete shtypur ose te le"i'i pajisja qe pointon.
Nj prmiresim i mundshem u tregua nga /linn S 1atyanarayanan. ,ta sygjeronin qe
ekrani te konsistonte ne nje numer 'onash, te $ilat mund te ndi'eshin ose fikeshin ne
menyre te pam"arur. Ne figuren 7.78 (a), jane paraqitur &D 'ona te $ilat jane ndare per tu
dalluar me "ija me te trasha. )ur kursori sht ne dritaren H, si$ tregohet edhe ne figure
"etm $ereku i 'ones eshte i ndri$uar, tjetra eshte ne erresire, si pasoje kursehet v e
energjise qe har%hon ekrani. )ur prdoruesi le"i' kursorin ne dritaren &, 'ona e dritares H
mund t jet erresuar dhe mbrapa saj mund t jene rinde'ur. (egjithate, dritarja & shtrihet
ne G 'ona dhe ne"ojitet me shume energji.
N qoft se mena%heri i windows, e kupton se $fare eshte duke ndodhur ai mund ta
'h"endosi 'onen H, ne menyre qe te shtrihet "etem ne kater 'ona, me nje lloj prerje te
shpejte te 'ones, si$ tregohet ne figuren 7.78 (b). !r t arritur ket ulje prej G/&8 t fuqise
se plot ne M/&D t fuqise totale, mena%heri i windows duhet te kuptoje si te mena%hoje
energjine ose sht i aft t pranoje instruksionet nga disa pjese t tjera t sistemit. (e
shume e sofistikuar mund t jet aftsia e ndri$imit t pjesshem t dritares qe nuk sht
tresisht ne perdorim.
HDD
Nj tjetr konsumator poten$ial i energjise sht edhe hard disku. ,i kerkon shume
energji per tu rrotulluar (spin) me shpejtesi te larte, edhe ne qofte se nuk ka akses. =isa
nga kompjuterat, "e$anerisht laptopet, arrijne te shuajne rrotullimet e diskut pas disa
minutash akti"itet, ne qofte se ai ne"ojitet prape, ai "ihet ne gjendje pune serish.
/atkeqesisht ndalimi i diskut sht ne gjendjen hibernating dhe jo ne gjendjen sleeping,
kjo do te thote qe per riakti"i'imi i tij do te duhen disa minuta, e $ila do te shkaktoje me
shume "onesa per perdoruesin.
!er me teper, restartimi i diskut shkakton har%him ekstra te energjise.si pasoje, ka nje
periode rrotullimi karakteristike, Nd, ne te shumten e raste"e me shpejtesi maksimale 7
rrotullime ne 7 se$. 1upo'ojme qe disku tjetr te aksesohet ne kohen t. N qoft se t YN
th
,
shpen'ohet me pak energji nese disku bahet ne pune, se sa ta fikim dhe ta nde'im prape
me "one. N qoft se tXN
th
, atehere kursehet me shume energji duke e fikur diskun dhe
rinde'ur me "one. Ne praktike shume sisteme jane konser"atore dhe e fikin diskun pas
disa munutash qendrimi ne qetesi (joakti").
(enyre tjetr pr t kursyer energji, eshte pajisja e .,(#it me nje $a$he te
konsiderueshme. Nese ne"ojitet blloku qe ndodhet ne $a$he, nuk eshte ne"oja te
restartohet disku i $ili eshte ne gjendjen 6=-, per te le%uar ne te. njejte eshte dhe kur
duam te shkruajme ne disk, ne qofte se "eprimin e kemi ruajtur ne $a$he, nuk eshte e
ne"ojshme te restartojme diskun per te shkruar ne te. =isku do te qendroje i fikur deri ne
rastin kur kemi nje miss $a$he.
(enyre tjeter per te menjanuar startimet e pane"ojshme te diskut, eshte qe sistemi
operati" te informoje programet qe jane duke u ek'ekutuar rreth gjendjes se diskut, duke i
derguar atij mesa'he ose sinjale. !er shembull, nje proesor word, mund te kerkoje te
shkruaje nje file, duke edituar diskun here pas here ne pak minuta. Ne qofte se proesori i
word#it do ta dije qe disku eshte ne gjendje te fikur per momentin, ai do ta menjanonte
"eprimin e shkrimit, duke e shtyre ate per momentin qe disku eshte serish ne pune.
CPU
*!+ mund te mena%hohet qe te kurseje energji, gjithashtu.
*!+ e laptopit mund t kalohet ne gjendjen sleep, duke e $uar konsumimin e energjise ne
'ero. "etmja gje qe ajo mund te beje pas kesaj gjendje, eshte te 'gjohet kur "jen nje
interrupt. !or edhe kur *!+#ja eshte idle ose ne pritje per 6/:, ajo kalon ne gjendje sleep.
Ne shume kompjutera, ka nje lidhje ndermjet tensionit te *!+#se, $iklit te $lo$k dhe
perdorimit te energjise. Nensioni i *!+#se shpesh mundet te reduktohet ne software, e
$ila sjell kursim te energjis, por gjithashtu dhe shkurtimin e $iklit te $lokut. =erisa
kursimi i energjise eshte ne perpjestim me tensionin ne katror, duke '"ogeluar tensionin
pergjysem, e ben *!+#ne edhe gjysem here me te shpejte, por kursen dhe w e energjise.
)jo "eti mund te perdoret tek programet me deadline te mire per$aktuar, te tilla si
multimedia "iewers, e $ila duhet te dekompresoje dhe te shfaqi nje ima'h do M8 mse$,
por kalon ne gjendjen idle kur duhet ta bej me shpejt. 1upo'ojme se nje *!+ perdor %
%haul energji derisa eshte duke "epruar me fuqi te plote me M8 mse$ dhe perdor w e %haul
energji, per te "epruar me gjysmen e shpejtesise. Ne qofte se nje multimedia "iewer
mund te dekompresoje dhe te shfaqi nje ima'h per H8 mse$, sistemi operati" mund te
"eproje me fuqi te plote per H8 mse$ dhe pastaj te fiket per H8 mse$ e mbetura, pra ne
total perdor x e %haul energji. ,lternati"isht, ai mund te "eproje me gjysmen e fuqise dhe
te arrije deadline#n, por ne te "ertete perdor "etem w %haul energji. Nje krahasim i
"eprimit me shpejtesi te plote dhe fuqi te plote per disa inter"ale, dhe ai i "eprimit me
gjysmen e shpejtesise dhe w e fuqise per dy, eshte treguar ne /ig. 7#7&. ne te dyja rastet
eshte kryer pune, por ne /ig 7#7 )(b) eshte konsumuar "etem gjysma e energjise.
Ne menyre te ngjashme, ne qofte se nje perdorues shtyp nje karakter ne sekonde, por
ne"ojitet qe karakteri i marre te proesohet ne &88 mse$, eshte me mire per sistemin
operati" te "endosi periudha me te gjata pau'e dhe te uli shpejtesine e proesorit, gati &8
fish. !ra, duke punuar ngadale kursen me shume energji sesa duke punuar shpejt.
Memorja
>etem dy opsione te mundshme eg'istojne per te kursyer energji ne memorie. para,
$a$he mund te 'bra'et dhe pastaj te fiket. !or, ajo gjithmone mund te ringarkohet nga
memorja kryesore, pa patur humbje te informa$ionit. .ingarkimi duhet bere ne menyre
dinamike dhe te shpejte, pra fikja e $a$he#s eshte pothuaj kalim ne gjendje sleep.
Nje opsion tjeter me drastik eshte qe te shkruhet e tere permbajtja ne memorien kryesore
te diskut, dhe pastaj te fiket eshte "ete memorja kryesore. )jo alternati"e eshte gjendja
hibernation, sepse ne menyre "irtuale e gjithe fuqia mund ti hiqet memorjes dhe pastaj te
har%hohet nje kohe e konsiderueshme per ringarkim, "e$anerisht ne qofte se edhe disku
eshte i fikur, gjithashtu. )ur memorja eshte $ut off, edhe *!+#ja ne gjendje qetesie duhet
te fiket gjithashtu ose te eg'ekutohet jashte .:(#it. Ne qofte se *!+#ja eshte e fikur,
interrupti qe e 'gjon ate, duhet te shkaktoje nje ker$im ne kodin e memorjes ne .om, ne
menyre qe memorja te mund te ringarkohet perpara se te perdoret. (egjithe keto qe
permendem, te nderpresesh memorjen per periudha te gjata kohe, mund te jete me le"erdi
ne qofte se ristartimi ne pak sekonda mund te konsiderohet me i deshirueshem sesa
rebooting, i sistemit operati" nga disku, i $ili 'akonisht merr nje ose disa minuta kohe.
Wireless Communication
(e rritjen e numrit te kompjutera"e portati", shume prej tyre perdorinin lidhjen wireless
me boten jashte. .adio transmetuesi dhe marresi jane shpesh har%huesit me te medhenj te
energjise. Ne "e$anti, radio marresi eshte gjithmone i nde'ur, ne menyre qe te degjoje per
e#mailet qe "ijne dhe bateria mund te thahet me shpejt. Ne anen tjeter, ne qofte se radio
fiket me "one, le te themi pas nje minute ne gjendje pau'e, mesa'het hyrese mund te
humbasin, e $ila eshte e padeshirueshme.
Nje 'gjidhje efekte e ketij problemi u dha nga )ra"ets dhe )rishan. Nhelbi i 'gjidhjes se
tyre ishte qe komjuterat portati"e te komunikojne me sta$ione ba'e fikse, qe kane disk
dhe memorje te madhe dhe te pakufi'uar ne fuqi. ,jo $fare ata propo'uan ishte qe
kompjuterat portati"e te dergojne nje mesa'h ne sta$ionin ba'e, kur ai eshte gati duke e
fikur radion. <e ne ate moment, bufferi i sta$ionit ba'e e $on mesa'hin qe mori ne disk.
)ur kompjuteri portati" e fik perseri radion, ai njofton sta$ionin ba'e. Ne ate pike, do
mesa'h i akumuluar mund ti dergohet atij.
(esa'het dalese qe jane gjeneruar ndersa radio eshte e fikur jane ne bufferin e
kompjuterit portati". Ne qofte se bufferi rre'ikon te mbushet plot, radio fiket dhe ja le
radhen per te transmetuar sta$ionit ba'e.
)ur duhet te fiket radioU Nje mundesi eshte qe ti lihet perdoruesit ose programit aplikati"
per ta "endosur. (undesi tjeter eshte qe te fiket pas disa sekonda"e ne gjendje pau'e. )ur
duhet nde'ur perseriU ,te e "endos perdoruesi ose programi, ose mund te ndi'et
periodikisht per te kontrolluar trafikun e brendshem dhe per transmetuar ndonje mesa'h
qe eshte duke pritur ne radhe. 1igurisht, ajo mund te ndi'et kur output buffer eshte i
mbushur plot. )a dhe plot mundesi te tjera.
Thermal menagment
(ena%himi termik, eshte pak me i ndryshem, por prape lidhet me $lirimin e energjise.
*!+#te moderne n%ehen jashte 'akonisht shume kur punojne me shpejtesi te madhe.
=esktopet e makina"e, kane normalisht nje "entilator te brendshem per te n%jerre ajrin e
n%ehte jashe kases. =erisa reduktimi i konsumimit te fuqise nuk ka nje ndikim te madhe
te desktopet e makina"e, "entilatori eshte 'akonisht i nde'ur gjate gjithe kohes.
Ne laptopet situata eshte ndryshe. 1istemi operati" duhet te monitoroj temperaturen ne
menyre konstante. )ur temperatura eshte afer maksimumit te lejueshem, sistemi operati"
ben nje 'gjedhje. ,i mund te nde'i "entilatorin, i $ili ben 'hurme dhe har%hon fuqi. Ne
menyre alternati"e, ai mund te reduktoje konsumimin e fuqise duke reduktuar ndri$imin
nga mbrapa te ekranit, duke ulur akti"itetin e *!+#se, duke qene me agresi" per te ulur
shpejtesine e rrotullimit te diskut dhe te tjera.
/utja e disa inpute"e nga perdoruesi mund te $ilesohen si guide. !er shembull, nje
perdorues mund ta per$aktoje qe me perpara qe 'hurma e "entilatorit eshte e
pakendshme, ne menyre qe sistemi operati" te mund te reduktoje konsumimin e fuqise.
Menaxhimi i baterise
Ne kohet e "jetra nj bateri furni'onte me rryme derisa te shkarkohej, kohe ne te $ilen ajo
ndalonte punen. Nani jo me. -aptopet perdorin bateri inteligjente, te $ilat mund te
komunikojne me sistemin operati". !er"e$ kerkesa"e, ato mund te raportojne dhe per
gjera si maksimumi i tensionit, tensoni aktual, maksimumi i karikimit, karikimi aktual,
maksimumi i shkalles se shkrakimit te baterise, shkalla aktuale e shkarkimit, etj. 1hume
kompjutera laptop kane programe qe punojne me ane te query (pyetje"e) dhe shfaqin ne
ekran te gjithe keto parametra. ;aterite inteligjente munden gjithashtu te instruktohen per
te ndryshuar parametra te ndryshem nen kontrollin e sistemit operati".
=isa laptope kane bateri te shumefishta. )ur sistemi operati" 'bulon se nje bateri eshte
afer fundit, ai duhet te per$aktoje se $ila do te jete bateria tjeter qe do te "a'hdoje te
funksionoje, pa shkaktuar ndonje dem gjate tran'i$ionit. )ur bateria e fundit eshte ne
perfundim te saj, eshte detyre e sistemit operati" te lajmeroje perdoruesin dhe pastaj te
bej nje dalje te rregullt, per shembull, te siguroje qe file system nuk eshte demtuar.
Driver Interface
1istemi 3indows, ka nje mekani'esh te 'h"illuar per te kryer mena%himin e fuqise, te
qujatu ACPI (,d"an$ed *onfiguration and !ower 6nterfa$e). 1istemi operati" mund te d
drejtoje komanda sipas perkatesise, duke pyetur pajisjet per te raportuar per kapa$itetin
dhe gjendjen aktuale te tyre. )y tipar eshte "e$anerisht i rendesishem kur kombinohet me
fik e ndi' (plug and play), sepse menjehere pas reboot#imit, sistemi operati" nuk e di $ilat
pajisje jane pre'ente, je me te dije "etite e tyre per te mena%huar konsumimin e fuqise
dhe te energjise.
,i mundet gjithashtu ti dergoje komanda dri"er#it per ta instruktuar per te ulu ni"elin e
fuqise (kjo ba'uar dhe ne mundesite qe ai ka patur fillimisht8. ne "e$anti, kur nje pajisje
si tastiera ose mouse "ihet ne funksionim pas nje periudhe pau'e, kjo eshte nje sinjal per
sistemin qe te kthehet mbrapsht, ne akti"itet normal.
Degraded Operation
(e siper ne pame se si sitemi operati" mund te kurseje energji nga perdorimi i pajisje"e
te ndryshme. !or ka dhe nje mundesi tjeter, ti thuash programit te perdori me pak energji,
edhe pse kjo do te thote me pak per"oje per perdoruesin. >e$anerisht, ky informa$ion
ne"ojitet kur bateria eshte poshte pragut te lejueshem te karikimit. !astaj i duhet
programit te "endosi ndermjet degradimit te performan$es duke e mbajtur baterine ne
pune ose te ruaje performan$en dhe te rre'ikoje ikjen e energjise.
Nje nga pyetjet qe lind ketu eshte si mundet nje program te degradoje performan$en per
te kursyer energjiU )jo pyetje u studiua nga /linn dhe 1atyanarayanan (&GGG). ,ta sollen
kater shembuj si degradimi i performan$es mund te kurseje energji. Ne do ti shikojme
shkurtimisht.
Ne kete studim, informa$ioni i paraqitet perdoruesit ne forma te ndryshme. )ur nuk kemi
degradim, na eshte paraqitur informa$ioni me i mire i mundshem. )ur degradimi eshte
present, besueshmeria e infroma$ionit qe eshte pre'ent per perdoruesin eshte me e keqja
qe mund te eg'istonte. Ne do shohim disa shembuj, shkurtimisht.
Ne menyre qe te masi perdorimin e energjise, /lin dhe 1atyanarayanan shpiku nje
software tool te quajtur !ower1$ope. ,jo $fare ajo ben, eshte qe te siguroje nje profil te
programit te perdorimit te energjise. !er ta perdorur ate, kompjuterit duhet ti jete montuar
nje pajisje e jashtme per fuqine, nepermjet nje multimeter digital sofiw'N$"ontro3ed.
=uke perdorur multimetrin, software mund te le%oje numrin e miliamper qe futen nga
pajisja e jashtme e fuqise, dhe ne kete menyre mund te per$aktoje ne moment fuqine qe
har%hon kompjuteri. ,jo $fare !ower1$ope ben, eshte qe periodikisht program $ounter
dhe perdoruesi i fuqise i shkruan keto te dhena ne nje file. !asi programi ka perfunduar
punen, file perdoret per tu anali'uar per te ditur energjine qe eshte perdorur nga do
pro$edure. )jo forme matje e ka ba'en tek obser"imi. (atjet per kursimin e energjise ne
hardware, jane perdorur dhe formojne ba'en per matjet per degradimin e performan$es.
!rogrami i pare qe jane kryes matjet ishte "ideo player. Ne menyre qe mos te kemi
degradim, ai luan 98 ima'he/se$ me re'olu$ion te plote dhe me ngjyra. Nje menyre
degradimi eshte qe te braktisim shfaqjen e informa$ionit me ngjyra dhe te shfaqi "idion
ne bardhe e 'i. Nje tjeter forme degradimi eshte te reduktojme shkallen e ima'hit, e $ila
do te $oje ne dridhje dhe filmi do te kete nje $ilesi jo te mire. Nje tjeter forme degradimi
eshte te reduktojme pi%el ne te gjitha drejtimet, kjo $on ne uljen e re'olu$ionit dhe e
'"ogelon madhesine e ekranit. (asat e ketij lloji $on ne kursimin e 98Q te energjise.
!rogrami i dyte ishte fjalimet ne publik. 1i shembull ketu mund te marrim "alen qe
formon mikrofoni. )jo "ale mund te anali'ohet dhe nga nje kompjuter laptop ose te $ohet
nepermjet nje linku te radios per tu transmetuar ne nje kompjuter fiks. =uke kryer kete
"eprim kursejme energji nga *!+#ja, por har%hojme energji per radion. =egradimi eshte
kur transmetojme nje fjalim te shkurter dhe perdorim nje model akustik te thjeshte. /itimi
ketu eshte 97Q.
1hembulli tjeter eshte nje map "iewer, i $ili e transmeton harten nepermjet nje linku te
radios. =egradimi qendron ne prerjen e harten ne dimensione me te "ogla ose i thote
ser"erit ne distan$e qe te lere jashte paraqitjes rruget e "ogla, meqe kjo kerkon dhe me
pak bit per tu transmetuar. /itimi ketu eshte perseri rreth 97Q.
ksperimenti i katert ishte transmetimi i ima'he"e A!5 ne nje web browser. 1tandartet
A!5 lejojne algoritma te ndryshem, marrjen e nje $ilesie ima'hi me te mire, por duke
abu'uar me madhesine, ketu fitojme rreth GQ. Nga te gjitha sa thame, pame se duke
pranuar degradimin e $ilesise, perdoruesi mund te perdori me gjate nje bateri.

.
KAPITULLI I G1ASHT
File-at Sistem
N gjithe aplika$ionet e kompjutera"e kane ne"oje t memori'ojne dhe t rin%jerin
informa$ion. =erisa nj proes t jet ne ek'ekutim, ai mund t memori'oje nj sasi t
limituar informa$ioni, ne hapesiren e "et te adreses. 5jithesesi kapa$iteti i memori'imit
eshte i kufi'uar nga madhesia e hapesires se adreses "irtuale. !r disa aplika$ione kjo
hapesire sht e mjaftueshme, por pr t tjere sht shume shume pak.
Nj problem i dyt ne mbajtjen e informa$ionit ne hapesiren e adreses se nje prose$i
eshte kur se kur ky pro$es mbaron, informa$ioni humbet. !er shume aplika$ione (per
shembull, database) ky informa$ion duhet te ruhet per disa ja"e, muaj apo dhe
pergjithmone. 2umbja e tij kur pro$esi mbaron eshte e papranueshme. 5jithashtu, nuk
duhet te 'hduket kur nje deshtim ne kompjuter "ret pro$esin.
Nj problem i tret qe shtrohet, sht qe 'akonisht ne"ojitet pr proese t shumefishta, t
aksesojne informa$ion ne te njjtn kohe. Ne se kemi nj telefon t lidhur ne linj dhe t
regjistruar drejprdrejt ne hapesiren e adresa"e t nj proesi t "etm, athere "etm ai
proes mund t aksesoje at informa$ion. (enyra pr ta 'gjidhur ket problem, sht qe
t mund t bejme "et ket informa$ion t paaksesueshem nga do proes tjetr.
)etu ne kemi tre kerkesa thelbesore pr te ruajtur informa$ionin per nje periudhe
afatgjate J
&. (und t jet e mundur t memori'ojme nj sasi t madhe informa$ioni.
H. 6nforma$ioni duhet t sur"ejoje mbarimin e pro$esit i $ili po e perdor.
9. !roeset e shumefisht duhet t jene t aft t aksesojne informa$ionin ne menyre
konkuruese.
@akonisht menyra e 'gjidhjes se problemit sht, memori'imi i informa$ionit ne ndonj
disk ose ne ndonj pajisje tjetr t jashteme, ne njesi qe quhen File. !roeset mund t
le%ojne dhe shkruajne nj informa$ion t ri, ne se sht ne"oja. 6nfoma$ionet e
memori'uara ne file, duhen t jene kembegules, qe t mos ndikohen nga krijimi dhe
mbarimi i nje pro$esi t $aktuar. Nj file duhet t 'hduket "etm ne se, "et prdoruesi i tij
do ta fshij at.
/ile#t mena%hohen nga "et sistemi operati". 1e si ata t jane strukturuar, emeruar,
aksesuar, prdorur, mbrojtur dhe implementuar nga pjesa me e madhe, jane $eshtjet
kryesore ne di'enjimin e nje sistemi operati". Ne pergjithesi ajo pjese e sistemit operati"
e $ila merret me filet, eshte quajtur file system dhe eshte objekt i ketij kapitulli.
Nga kend"eshtrimi i perdoruesit, aspekti kryqesor i nje file systemi eshte se si ai u
shfaqet atyre, qe do te thote ku konsiston file, si emerohet dhe ruhet, $fare opera$ionesh
lejohen te kryhen ne file, etj.. =etajet kur bitmap ose nje liste eshte duke ruajtur te dhena
ne nje hapesire te lire dhe ne sa sektore eshte i ndare nje bllok logjik, jane me pak interes
per ne, pa"aresisht se ato jane me nje rendesi te madhe per projektuesin e nje file system.
!r ket arsye, ne kemi strukturuar kapitullin ne nenkapituj. =y te paret trajtojne
respekti"isht, ndertimi i nderfaqes se perdoruesi me file#t dhe direktorite. !astaj jepet ne
menyre me te detajuar se si jane implementuar filet sistem. Ne fund, ne japim disa
shembuj te nje file sistem te "ertete.
6.1 FILES
Ne faqet ne "a'hdim do ti shohim filet nga ana e prdoruesit, kjo sht ajo se si ato do t
prdoren dhe se $fare "etish t brendeshme ata kane.
6.1.1 File Naming ( emertimi i tyre)
/ilet jane nj abstraksion i makines (kompjuterit). ,to sigurojne menyren e ruajtjes se
informa$ionit ne hard disk, i $ili mund te le%ohet dhe me pas. )jo mund t behet ne nj
menyre qe prdoruesi t mos t merret me detaje t tjera pr menyren e ruajtjes se
informa$ionit dhe si realisht punon edhe disku.
1hpesh karakteristika me e rendesishme e do abstraksioni mekanik, sht menyra e
mena%himit dhe emertimit te nje objekti, keshu qe ne do t fillojme ek'aminimin e file#"e
t sistemit me emerimin e nje file. )ur nj pro$es krijon nj file, i $akton atij file nj
emer. )ur proesi mbaron, file "a'hdon t ek'istoj dhe mund t aksesohet nga nj tjetr
proes qe lind dhe e prdor at file me t njjtin emer t meparshem.
=isa nga rregullat strikte t emertimit t file#"e, ndryshojne nga sistemi ne sistem, por te
gjithe sistemet operati"e te tanishme, lejojne nje string nga nje deri ne tete karaktere te
emerojne nje file. !r shembull keta emra si andrea, bru$e, and $athy, mund t jene emra
t nj file $faredo. 1hpesh shifra ose karaktere te "e$anta jane te lejueshme, keshtu dhe
emrat si H, urgenti, dhe t /ig.H#&M, jane te "lefshme. 1humi$a e file system mund t
suportojne emra deri ne H77 karaktere.
=isa file system arrijne te bejne ndryshimin midis karaktere"e me germe te madhe dhe
germe te "ogel, kurse t tjere jo. 5abimet e +N6R ne kategorine e pare me gabimet e
(1#=:1 ne kategorine e dyt. Nj sistem +N6R mund t ket t treja llojet e ndryshme
t file#"e siJ maria, (aria and (,.6,, kurse tek (1#=:1, te gjitha keto emra i
referohen te njejtit file.
Nj ane tjetr e file#"e t sistemit do ta themi taniJ 3indows G7 dhe 3indows GL t dy
sistemet e prdorin file t (1#=:1, dhe si rrjedhoje trashegon shume nga "etit e tij, per
shembull, si jane ndertuar emrat e file"e. Ne "a'hdim mund t themi se 3indows NN dhe
3indows H888 prmbajne file t (1#=:1, gjithashtu ato trashegojn "eti te tij.
(egjithate, mund te themi qe dy sistemet e fundit kane nje file te "eten, te lindur, file
NN/1, qe ka "eti te ndryshme ( per shembull, emri i file eshte unik). Ne ket kapitull kur
i referohemi, file sistem t 3indows#it, kuptojme file t (1#=:1#it, t $ilt jane t
"etmit file t sistemit t suportuar nga t gjitha "ersionet e 3iondows#it. Ne do t flasim
rreth file te lindur t sistemit t 3indows H888 ne kapitullin &&.
1hume sisteme operati"e suportojne dy pjese t emrit t file#it, me t dyja pjeset t ndara
ne kohe, si ne programin $.
!r pjeset ne "a'hdim kjo periudhe do t quhet file e%tension ('gjatja e file#"e), dhe
'akonisht tregon di$ka rreth file#it. Ne (1#=:1, pr shembull, emrat e file#"e jane t
gjat & deri ne L karaktere, plus nj 'gjatje optimale & deri ne 9 karaktere. Ne +N6R,
madhesia e 'gjatjes se file#it, nuk sht fikse, "aret nga prdoruesi, ai e $akton at dhe nj
file nuk mund t ket H ose me shume 'gjatje ose prapashtesa, si$ ndodh ne prog.$ .@,
ku .@ 'akonisht perdoret pr t treguar qe file (prog.$) sht komprimuar duke prdorur
algoritmin e komprimimit @i"#-empel .
!rapashtesa )uptimi
file.bak ;a$kup file
file.$ * sour$e program
file.gif *ompuser"e 5raphi$al 6nter$hange /ormat image
file.hlp 2elp file
file.html 3orld 3ide 3eb 2yperNe%t (arkup -anguage do$ument
file.jpg 1till pi$ture en$oded with the A!5 standard
file.mp9 (usi$ en$oded in (!5 layer 9 audio format
file.mpg (o"ie en$oded with the (!5 standard
file.o :bje$t file ($ompiler output, not yet linked)
file.pdf !ortable =o$ument /ormat file
file.ps !ost1$ript file
file.te% 6nput for the NR formatting program
file.t%t 5eneral te%t file
file.'ip *ompressed ar$hi"e
Figura 6-1. Disa nga prapashtesat tipike t file-ve.
Ne disa sisteme operati"e prfshire dhe +N6R prapashtesat e file#"e jane thjesht
kon"eksione dhe nuk jane t detyrueshme nga sistemi operati", por filet mund t ruhen
edhe me prapashtesa t tjera por qe ne fund t fundit nuk mund t njihen nga sistemi.
Nj file i emertur si file.t%t (te%t) mund t ket disa lloje t tjere, por ky emertim sht me
shume si pr t kujtuar prmbajtjen e file#it. Nga ana tjetr nj kompilator i gjuhes *,
insiston qe file qe ai duhet t kompiloje duhet t jet nj file.$ absolutisht dhe nuk mund
t kompiloje file.b t tjere.
)on"eksione t tilla jane "en$anrisht shume t prdorshme, kur disa programe mund t
kene ndryshime nga ato t file#it. )ompilatori i gjuhes *, pr shembull mund t ket nj
list t file#"e qe mund t kompiloje dhe linkoje, disa nga file#at e *#se me disa file te
assemblerit. !rapashtesat behen esen$ilale pr kompilatorin, per te kuptuar $ilat file jane
t *, $ilat assembler dhe $ilat t lloje"e t tjere.
Ne ndryshim, 3indowsi sht nj program i "etedijshme per prapashtesat, t $ilat i japin
file#"e nj kuptim. !rdoruesit mund t ruajne prapashtesat edhe si ato t sistemit dhe
mund te per$aktojne per se$ilen, se $ili program i 'oteron ato. )ur nj prdorues klikon
dy here mbi emrin e file#it, programi shenjon ne prapashtesen e programit qe do te
eg'ekutohet, bashke me file#n.
6.1.2 File Structure ( Struktura ose ndertimi i nj file)
/ile#t sht e mundur t strukturohen ne menyra t ndryshme. Nre menyrat me t
mundeshme jane t ilustruara ne figuren D#H. /ile#i ne figuren D#&(a) sht nj sekuen$e e
pastrukturuar bitesh. Ne fakt, sistemi operati" nuk njeh as nuk kujdeset se $fare prmban
file. 5jith$ka $fare ai shikon ose me sakt njeh, jane thjesht nj mori e madhe bitesh.
*faredo kuptimi qe mund ti japim file#"e, duhet t jet ne ni"elin e prdoruesit pr nj
kuptim me t mire psikologjik. N dy sistemet oproti"e si +N6R dhe 3indows Ksi kane
t njjta kon$eptimet.
/igura D#H. N tre llojet e file#"e. (a) 1ekuen$e bitesh. (b) 1ekuen$e regjistrimesh. ($)
!ema stru$ture.
N kesh kujdesjen e sistemit operati" mbi file, nuk sht asgje tjetr "e$se, nj sekuen$e e
$aktuar bitesh qe lejon nj fleksibilitet t madh. !rdoruesit e programe"e mund t
"endosin $faredo qe deshirojne ne file#t e tyre dhe ti emertojne ato ne do menyre t
deshiruar. 1istemi operati" nuk t ndihmon ne ket gje, por gjithashtu as nuk ta ndalon.
!r prdoruesit qe deshirojne t manipulojne di$ka, pjesa ne "a'hdim sht e
rendesishme.
2api i pare i strukturimit tregohet ne fig. D#H(b). Ne ket model, nj file trajtohet si nj
sekuen$e rekordesh me gjatsi fikse. <endra kryesore e ide"e pr fillimin e nj sekuen$e
rekordesh , sht ideja qe opera$ioni i le%imit kthen nj rekord dhe opera$ioni i shkrimit e
mbishkruan nj rekord.
1hume (mainframe), sisteme operati"e t ba'ohen ne file sistem, me file te n, dhe keto
file t ndertuara nga rekorde me nga L8 karaktere, qe ne fakt jane ima'he te karta"e. )eto
sisteme suportojne edhe file t ndertuara nga rekorde me &9H karaktere, qe jane t
destinuar pr printerin. !rogramet le%ojne ne hyrje, daljen e L8 karaktere"e dhe e shkruan
ne dalje me &9H karaktere, edhe pse 7H te fundit mund te jene hapesira boshe. !ra, sistemi
funksionon ne kete menyre.
Nipi i tret, tregohet e figuren.D#H($). Ne ket organi'em, nj file sht i ndare ne nj
peme rekoresh, jo domosdoshmerisht t gjithe t t njjts gjatsi, disa prej tyre
prmbajne nj fushe eles ne nj po'i$ion te fiksuar t rekordit. !ema sht e renditur ne
ba'e t fusha"e eles, ne menyre qe t ket nj kerkim t shpejt t nj elesi ne "e$anti.
/unksioni krysor ketu, nuk sht ai qe t kemi rekordin tjetr pasardhes, por qe sht dhe
shume e mundeshme, por funksioni sht qe t kemi rekordin me nj eles t "eant. !r
file#in 'oo t figures DH(*), mund ti drejtohemi sistemit pr t patur nj re$ord, $elsi i te
$ilit per shembull sht pony, pa u preukupuar pr "endodhjen e sakt t tij ne file.
5jithashtu, nj rekord i ri mund t shtohet ne file, nga "et sistemi operati", dhe nuk
eshte perdoruesi ai qe "endos se ku do te qendroje. )y tip file sht shume i ndryshem
nga ai i bite"e t pastrukturuar ne +N6R dhe ne 3indows, por sht shume i prdorur ne
kompjuterat mainframe.
6.1.3 File Types ( Tipat e File-ve)
1hume sisteme operati"e suportojne tipe te ndryshme file#ash. +N6R dhe 3indow, pr
shembull, kane file dhe direktori t rregullta, +N6R ka gjithashtu karaktere dhe blllokues
spe$ial pr file#t. /ilet e rregullt jane t "etmit qe prmbajne informa$ion pr prdoruesit.
N gjithe file#t e figures D#H jane t rregullt. =irektorit jane file sistem pr mirembajtjen
e struktures t file"e sistem. Ne do t studjojme direktorit e ndermjetme. )arateret
spe$iale t file#"e jane t reali'uar pr input/output dhe prdoren tek modeli serial 6/:
de"i$es ashtu si dhe terminalet, printerat dhe rrjeti. ;llokuesit spe$ial t file#"e prdoren
tek modelet e disqe"e.
/ilet e rregullt jane prgjithesisht ,1*66 ose binare. /ilet ,1*66 jane t ndertuar nga
rreshta karakteresh te%t. Ne disa sisteme se$ili rresht mbaron me nj karakter kthimi. Ne
t tjere prdoret nj rresht i ri. =isa sisteme i prdorin t dyja llojet. .rreshtat nuk duhen
t jene t gjithe ne t njejten gjatsi. ,"anta'hi i madh i file#"e ,1*66 sht qe mund t
jene t dukshem dhe t printueshem dhe mund t modifikohen me do lloj editori te%t.
5jithashtu, mund t sherbejne si input i ndonj programi.
/ilet binare ose numerike, qe nuk jane file me karaktere ,1*66, 'akonisht kane nj
strukture t brendeshme te dukshme pr programet qe i prdorin. !r shembull, ne
figuren D#9(a), shohim nj file binare t thjesht, t ek'ekutohet nga nj "ersion i +N6R.
dhe pse file sht nj sekun$e bitesh, sistemi operati" e ek'ekuton at file "etm ne se
jane t njohur nga sistemi si file t ndonj programi. )jo behet ne 7 seksioneJ koka, teksi,
data, rilokali'imi i bite"e dhe simboli tabelar.
)oka fillon me nj t ashtu quajtur numer magjik, i $ili e njeh at si nj file t
ek'ekutueshem pr t ndaluar aksidente ne ek'ekutim t nj file qe nuk sht i formatit t
duhur. !astaj kemi dimensionet e ndryshme t pjese"e t file, adresa e marre ne fillim, ne
t $ilen fillon ek'ekutimi i tij dhe pastaj disa nga flamujt e gjendje"e. )eta ngarkohen ne
memorje duke prdorur transferimin bit pr bit. 1imboli tabelar sht prdorur pr
testimin.
1hembulli jone i dyt i nj file binar sht nj arki"e, po nga +N6R. )onsiston ne nj
prmbledhje e pro$edura"e te librarise (module"e) t kompiluara, por jo t linkuara.
1e$ila prej tyre sht e prfaqesuar nga nga koka e $ila prmban emrin e tij, krijimin e t
dhena"e, kodin e sigurise dhe madhesine.
Bdo sistem operati" duhet t jet ne gjendje t njohe t paktn nj lloj file. !or disa
sistemi njohin shume lloje. 1istemet e "jetra si N:!1#H8, shkuan shume larg ne
ek'aminim e kohes se krijimit kur do file fillon ek'ekutimin. Ne se nuk do t ishte
keshtu, rikompilohet edhe njhere koka e filet. Ne +N6R programi sht i ndertuar ne
shell e%e$ute. !rapashtesat e file"e jane t detyrueshme pr tu shkruar, keshtu qe sistemi
operati" mund t interpretoje se $ili program eshte perftuar dhe nga $ili burim "jen.
=uke patur file pa gabime si ato t problema"e me lart, edhe sikur prdoruesi t mos t
dije asgje nga projektimi i sistemit operati", nuk gabon. =uke e konsideruar si nj
shembull, sistemi ne t $ilin nj program krijon nj file si output qe ka si prapashtese
b.dat
Ne se nj prdorues shkruan nj program qe mund t le%oje a.$, e kthen at ne indentitet
standart dhe shkruan filen e transformuar si output, output#i do t jet po prape b.dat. Ne
se prdorusi do ta kompiloje at, sistemi do ta refu'oje sepse file sht me prapashtesen e
gabuar. !r ta kopjuar nga file.dat ne file.$, do t trajtohet si e pasakt nga sistemi pr t
mos bere realitet gabimet logjike t prdorues"e.

Figura 6-3. (a) /ile i ek'ekutueshem. (b) /ile arki"e.
6.1.4 File Access (aksesimi i File-ve)
1istemet e para operati"e t siguronin "etem nj lloj aksesimi t file#"eJ akses sekuen$ial.
Ne keto sisteme, nj proes mund t le%oje t gjitha bitet ose rekordet t nj file t
rregullt, duke filluar nga koka, por nuk mund ti anash#kalonte pa i le%uar me rregull. /ilet
sekuen$ial mund t riorgani'ohen, keshtu qe ata mund t le%ohen sa here qe t jet e
ne"ojshme. /ilet sekuen$iale, jane t ne"ojshem kur kemi memori'im ne disket, sesa ne
disk.
=isku kur sht i "ene ne pune pr memori'imin e file#"e, sht e mundur t le%ohen
bitet ose rekordet t nj file jashte rregullit ose t aksesosh regjistrat me ane t elesit,
sesa nga po'i$ioni.
;itet ose file#at ne te $ilin rekordet mund t le%ohen sado i rregullt qoft file, jane t
quajtur t aksesueshem rastesisht. Aane t krkueshem nga shume aplika$ione. ,ksesimi
rastesor sht thelbesor pr shume aplika$ione, pr shembull, sistemet me ba'a t
dhenash. !r shembull, sikur ne nj aeroport t marre ne telefon nj klient pr t
prenotuar nj udhetim t $aktuar, ba'a e t dhena"e duhet ta kerkoje e te gjeje "etm
prenotimet pr ket udhetim t $aktuar, pa u dashur t shikoje me mijera regjistrime t
tjera qe nuk kane lidhje me udhetimin ne fjale.
=y jane metodat e prdorura pr t pr$aktuar se nga duhet t filloje le%imi. 6 pari, ne do
"eprim le%imi, kthen po'i$ionin e filet pr t filluar le%imin. 6 dyti, nj "eprim i "e$ant
sht parashikuar pr t fiksuar po'i$ionin e sakt. !as kerkimit, file mund t le%ohet ne
menyre sekuen$iale duke filluar nga po'i$ioni prkats. Ne disa sisteme operati"e te
mainframe"e t "jetr, file#t jane t klasifikuar nga sekuen$ialiteti ose nga aksesimi
rastesor, qe nga momenti qe jane krijuar. )jo gje e lejon sistemin t prdore teknika t
ndryshme pr memori'imin e se$iles klase t file#"e. 1istemet operati"e moderne nuk e
bejne ket klasifikim, t gjthe file#t e tyre jane automatikisht me aksesim rastesor.
6.1.5 File Attributes (atributet e file-ve)
Bdo file ka nj emer dhe t dhenat "etjake t tij. 5jithashtu, t gjithe sistemet operati"e
jane t familjari'uar me do informa$ion t file#"e, data dhe ora kur sht krijuar file dhe
prmasat e tij ne kujtese. Ne do ti quajme keto informa$ione ekstra t file, me nj emer t
"etm, atributet e tij. -ista e atribute"e "arion dhe ndryshon nga sistemi ne sistem. Nabela
e figures D#M, na tregon disa nga keto ndryshime. ,snj sistem operati" nuk i prmban t
gjitha ato, por se$ila prej tyre sht e pranishme ne nj sistem operati".
)ater atributet e para kane lidhje me mbrojtjen t file#t, dhe tregojne se sa i aksesueshem
sht ky file. N gjitha tipet e regjime"e jane t mundeshme, disa prej t $ile"e do ti
studjme me "one. Ne disa sisteme operati"e, prdoruesit duhet t ket nj fjale kalim pr
aksesimin e file#it, ne ket rast, fjale#kalimi duhet t jet nj nga atributet.
/lamujt e gjendje"e jane bite qe kontrollojne fusha t "e$anta t karakteristika"e. /ilet e
fshehur, pr shembull, nuk jane t dukshem nga prdoruesit. /lamujt e gjendje"e jane si
nj arki" t $ilt ruajne gjurme t nj ek'ekutimi t mundshem t file#t ne ba$kup.
!rogrami i ba$kup#it, pastron dhe sistemi operati" e kthen ate, pa"aresisht se kur eshte
ndryshuar file. Ne ket menyre programi i ba$kup mund te na tregoje se $ili file ka
ne"oje per ba$king up. /lamujt e prkohshem t nj file, lejon qe file te shenohet per
fshirje automatike kur proesi qe ke ka krijuar ka mbaruar. 5jatsia e rekordit, po'i$ioni i
$elesit, gjatsia e $elesit t fusha"e jane t pranishme "etm ne filet, rekordet e te $ila"e
mund t kerkohen nepermjet nje $elesi. )eta t fundit japin informa$ionin e duhur pr t
gjetur $elesat.
Ne te shumten e here"e ngelen gjurmet kur eshte krijuar file, kur eshte aksesuar per here
te fundit dhe kur eshte modifikuar. )eto jane t ne"ojshme pr qellime t ndryshme. !r
shembull, nj file burim, i $ili sht modifikuar pas krijimit t filet objekt korrespondues,
duhet t rikompilohet prseri.
=imensionet aktuale tregojne qe sesa i madh sht file aktualisht. =isa sisteme operati"e
ne mainframe t "jetr, kerkonin qe madhesia maksimale e filet te spe$ifikohej kur file
ishte duke u krijuar, ne menyre qe te lejonte sitemin operati", te krijonte qe ne fillim
hapesiren e duhur ne memorje. 1istemet operati"e te workstation dhe !* jane mjaft
inteligjnte pr ta bere ket gje "et, pa pasur ne"ojen e nj funksioni t tille.
,tributi )uptimi
1iguria )ush mund t aksesoje file dhe ne $Omenyre
/jale#kalimi /jale#kalim i ne"ojshem pr t aksesuar file#n
)rijuesi i $elesit *elesi i personit i $ili e ka krijuar file#n
!ronari !ronari aktual
.ead#only flag 8 pr le%im/shkrimI & "etm pr le%im
2idden flag 8 pr normalI & pr mos ta shfaqur ne list
1ystem flag 8 pr file normalI & pr file sistem
,r$hi"e flag 8 sht ek'ekutuar ba$kupI & duhet t ek'ekutohet
ba$kup
,1*66/binary flag 8 pr file ,1*66I & pr file binare
.andom a$$ess
flag
8 "etm pr aksesim sekuen$ialI & pr aksesim rastesor
Nmporary flag 8 pr normalI & pr file t fshire kur mbaron proesi
-o$k flags 8 pr t pa#ky$uritI jo#'ero pr t ky$urit
.e$ord length Numri i bite"e ne nj rekord
)ey position *elesi i brendshem i se$ilit rekord
)ey length Numri i bite"e ne fushen e $elesit
*reation time =ata dhe ora e krijimit t file#t
Nime of last a$$ess =ata dhe ora e aksesimit t fundit t file
Nime of last
$hange
=ata dhe ora e modifikimit t fundit t file
*urrent si'e Numri aktual i bite"e ne file
(a%imum si'e Numri maksimal i bite"e ne file
Figura 6-4. =isa atribute t mundeshme t nj file t $aktuar.
6.1.6 File Operations (Operacionet e Fileve)
/ilet ek'istojne pr t memori'uar informa$ion dhe qe mund t rikuperohet me "one.
1isteme t ndryshme prdorin opera$ione t ndryshme pr t memori'uar dhe rikuperuar
me "one informa$ionin. Nani do t japim shembuj t sisteme"e qe therrasin si proes
rikuperimin e nj file J
&. )rijimi. /ile krijohet pa asnj t dhene. <ellimi i therritjes se tij sht t
lajmeroje qe file sht ne ardhje dhe duhet t memori'ohen disa nga atributet
kryesore t tij.
H. /shirja. )ur file nuk ne"ejitet me, ai duhet t fshihet qe t liroje hapesiren e
memorjes. g'iston nj thirrje sistem pr ket qellim.
9. 2apja. !rpara se ta prdorim nj file, sht e domosdoshme qe nj proes ta
hapi at. <ellimi i hapjes prpara se ta prdorim sht qe sistemi t
memori'oje disa nga atributet e tij dhe t pr$aktoje se ku ndodhet fillimi i tij
ne memorje, dhe pr ta therritur at me "one pr ndonj "eprim t
mundeshem.
M. (byllja. )ur t gjitha aksesimet e file#it kane mbaruar, atributet e tij dhe
adresa ne disk nuk jane me t ne"ojshme si informa$ione, sepse file duhet t
mbyllet pr t liruar memorjen ne tabele. 1hume sisteme e reali'ojne kete
duke imponuar nje numer te $aktuar file#sh qe mund te hapen ne nje pro$es.
Nj disk sht i shkruar ne blloqe, dhe mbyllja e nje file, sjell dhe heqjen e te
dhena"e qe jane shkruar ne bllokun e fundit, edhe pse blloku mund t mos jet
i mbushur plot.
7. -e%imi. N dhenat le%ohet nga file#i. Natyrisht, bitet "ijne nga po'i$ione t
sakta aktuale. !roesi qe e therret filen duhet t pr$aktoje sasine e t dhena"e
dhe gjithashtu mund ti "endosi ato ne nje buffer.
D. 1hkrimi. N dhenat jane t shkruara ne file, 'akonisht ne po'i$ionin aktual. Ne
se po'i$ioni aktual sht ne fundin e file#it, madhesia e file#it rritet. Ne se
po'i$ioni aktual sht ne qender t file#it, t dhenat eg'istuese, mbi#shkruhen
dhe humbasin pergjithmone.
C. ,ppend. )y proes thirrje sht nj forme e t shkruajturit e limituar. (undet
"etm t shtosh t dhena ne fund t file#it. 1istemet qe t ofrojne nj sasi
thirrjesh t "ogel, 'akonisht nuk e perdorin ,ppend, por shume sisteme
ofrojne menyre te ndryshme per ta reali'uar ate, dhe keta sisteme ndonjehere
kane ,ppend.
L. )erkimi. !r t aksesuar file t rastesishem, sht nj metode e detyrueshme
pr t spe$ifikuar se nga do t meren keto t dhena. Nj metode e 'akonshem
sht nj therrje sistem, e $ila kerkon qe pointuesi i file#t te spe$ifikoje "endin
ne file. !as ketij "eprimi i kerkimit sht i kompletuar, dhe t dhenat mund t
le%ohen ose t shkruhen tek ai po'i$ion.
G. (arrja e atribute"e. !roeset shpesh kane ne"oje pr sa me pak atribute pr t
bere punen e tyre. !r shembull, programi qe bn +N6R sht gjeresisht i
prdorur pr t mena%huar projekte t 'h"illimit t programe"e, duke u ba'uar
ne shume burime file#ash. !er te reali'uar kete, duhet te shikoje atributet,
emrin dhe kohen e modifikimit.
&8. >endosja e atribute"e. =isa prej atribute"e jane t prdoruesit dhe mund t
ndryshohen "etm ne se file sht krijuar. )jo thirrje e sistemit qe bn t
mundur modulet e sigurise t t dhena"e t file#it sht nj shembull shume i
qart. !jesa me e madhe e flamuj"e hyjne ne ket kategori.
&&. .i#emertimi. 1hpesh ndodh qe prdoruesi duhet t ndryshoje emrin e nj file
qe sht krijuar me pare. )jo thirrje e sistemit qe e bn t mundur kete, nuk
sht gjithmon e ne"ojshme sepse 'akonisht mund t jet i kopjuar ne nje file
t ri me emer t ri dhe file i "jetr sht fshire.
6.1.7 Nj shembull programi i cili prdor thirrjet sistem.
Ne kete seksion, do te shqyrtejme, nje program te thjesht ne +N6R, qe kopjon nj file
nga ai burim ne nj file destina$ion. )jo sht e shprehur ne figuren D#7 . !rogrami ka
funksionet minimale dhe shume gabime, por jep nje ide te qarte sesi thirrjet sistem lidhen
me file qe jane ne pune. !rogrami sht nj E$opy#fileF, qe mund edhe t therritet edhe
nga linja e komanda"e si pr shembullJ
$opyfile ab$ %y' emri i filet burim, emri i filet destina$ion.
!r ta kopjuar file ab$ tek file %y', ne se ek'iston ky file ai do t mbishkruhet, ne rast t
kundert do t krijohet.
Eain$ludeF i katrt qe prdoret afer pjeses se lart t programit, reali'on nj numer t
madh pr$aktimesh dhe prototipe t funksione"e t ndryshme qe duhet te perfshihen ne
program. .eshti tjetr sht nj prototip pr nj funksion kryesor, qe eshte kerkuar nga
,N16 *, por nuk sht e rendesishme pr qellimet tona.
EadefineF i pare sht pr$aktimi i nj ma$ro qe pr$akton stringat ;+/`16@ si nje
ma$ro qe bn pjese ne numrin M8GD. !rogrami t lejon t le%osh dhe t shkruash ne blloqe
prej M8GD bitesh. =o t shfryt'oje emrat e konstante"e.
EadefineF i dyt mund t aksesoje file#n e hyrjes. !rogrami kryesor i thirrur ka dy
argumenta , arg$ dhe arg". )eto jane t dhene nga sistemi operati" kur programi thirritet.
6 pari tregon se sa stringa ka ne rreshtin e komanda"e qe ka thirrur programi, prfshire
ketu edhe emrin e programit. )urse i dyti sht nj matri$e pointer#ash nepr argumenta
t $ilt mund t kene keto "leraJ
arg"084 [ \$opyfile\
arg"Z&4 [ \emri i filet burim\
arg"0H4 [ \emri i filet destina$ion\
)emi deklaruar gjithesej pese "ariabla, dy t paret in`fd dhe out`fd mbajne t shtypur
prshkruesit t file#"e kur nj file hapet. .d`$ount dhe wt`$ount jane bite t kthyera nga
le%imi e shkrimi i thirrje"e t sistemit. ;uffer#6 i fundit sht prdorur pr t mbajtur t
dhenat e marra pr shkrim.
ain$lude Ysys/types.hX /b in$lude ne$essary header files b/
ain$lude Yf$ntl.hX
ain$lude Ystdlib.hX
ain$lude Yunistd.hX
int main(int arg$, $har barg"04)I /b ,N16 prototype b/
adefine ;+/`16@ M8GD /b use a buffer si'e of M8GD bytes b/
adefine :+N!+N`(:= 8C88 /b prote$tion bits for output file b/
int main(int arg$, $har barg"04)
c
int in`fd, out`fd, rd`$ount, wt`$ountI
$har buffer0;+/`16@4I
if(arg$ i[ 9) e%it(&)I /b synta% error if arg$ is not 9 b/
/b :pen the input file and $reate the output file b/
in`fd [ open(arg"0&4, :`.=:N-])I /b open the sour$e file b/
if(in`fd Y 8) e%it(H)I /b if it $annot be opened, e%it b/
out`fd [ $reat(arg"0H4, :+N!+N`(:=)I /b $reate the destination file b/
if (out`fd Y 8) e%it(9)I /b if it $annot be $reated, e%it b/
/b *opy loop b/
while(N.+) c
rd`$ount [ read(in`fd, buffer, ;+/`16@)I /b read a blo$k of data b/
if(rd`$ount Y[ 8) breakI /b if end of file or error, e%it loop b/
wt`$ount [ write(out`fd, buffer, rd`$ount)I /b write data b/
if (wt`$ount Y[ 8) e%it(M)I /b wt`$ount Y[ 8 is an error b/
e
/b *lose the files b/
$lose(in`fd)I
$lose(out`fd)I
if (rd`$ount [[ 8) /b no error on last read b/
e%it(8)I
else
e%it(7)I /b error on last read b/
Figura 6-5. Nj program i thjesht pr t kopjuar nj file.
,rg$ kerkon argumentat dhe shikon ne se sht 9 apo jo. Ne se jo athere ajo ek'iston ne
gjendje kodi baras me &. *do gjendje te kodit ndryshe nga 8, nenkupton qe ka ndodhur
nj gabim. )ur ne kerkojme t hapim file#in burim dhe krijojme filen destina$ion, athere
ne se file burim sht plotsisht i hapur, sistemi i bashkangjit nj numer t "ogel t plot
tek in`fd, pr t spe$ifikuar filen. Nenthirrjet mund ta inkludojne ket numer t plot
keshtu qe sistemi e di $ili eshte file qe ai kerkon. Ne menyre t ngjashme, ne se file
destina$ion sht plotsisht i krijuar, athere out`fd merr nj "lere pr ta spe$ifikuar at.
,rgumenti i dyt pr t krijuar, "endos modulin e sigurise. Ne se si ata t hapur ose t
krijuar deshtojne, athere file konrrespondues "endoset ne & dhe programi mbaron me nj
gabim ne kod.
Nani kemi $iklin e kopjimit. ,i fillon me le%imin ne M ); t t dhena"e t buffer#it.
Nhirret pro$edura le%o, e $ila in"okon thirrjen le%o t sistemit. !aramatri i pare
indetifikon filen, i dyti e $on ne buffer, dhe i treti tregon sa bite ka pr t le%uar. >lera qe
i bashkangjitet rd`$ount jep numrin e bite"e t le%uara aktualisht. Normalisht, do t jet
M8GD e pritur, ne se jane t "endosur t gjithe bitet ne file. )ur kemi fundin e filet do t
jet 8 ne se rd`$ount sht gjithmone 8 ose negati"e, athere kopjimi nuk mund t
"a'hdoje keshtu qe kemi nj break ne ek'ekutim.
Nhirja pr shkrim output#et nga buffer#i pr ne filen destina$ion, bn qe parametri i pare
t pr$aktoje filen, i dyti ta $oj ne buffer dhe i treti t tregoje se sa ka shkruar dhe le%uar
paralelisht. >eme re qe numerimi i bite"e sht numri aktual i bite"e t le%uara, jo
;+/`16@. )jo sht e rendesishme sepse le%imi i fundit nuk do t ktheje M8GD, por do
t shtohet me M);.
)ur file ne hyrje sht prdorur nga proesi, athere thirja e pare parashikon fundin 8 tek
rd`$ount, i $ili do ta beje programin t dale nga $ikli. Ne ket rast dy filet jane t mbyllur
dhe programi do t mbyllet normalisht.
6.1.8 Memory-Mapped Files
1isteme t ndryshme kane ofruar nj menyre pr t hart'uar filet ne hapesiren e adresa"e
t nj proesi ne ek'ekutim.
Nga ana kon$eptuale mund t imagjinojme pranine e dy thirrje"e t ndryshme t sistemit
operati", harte'ur dhe i joharte'uar. 6 pari jep nj emr t filet dhe nj adrese "irtuale qe
bn qe sistemi operati", harte'on nj file ne hapesiren e adresa"e "irtuale.
!r shembull, 1upo'ojme se nj file / qe ka gjatsine prej DM);, sht i hart'uar ne
adresa "irtuale duke filluar nga 7&H). )eshtu qe do instruksion makine qe le%on
prmbajtjen e bite"e ne 7&H), "ine 8 bit tek file#i. Ne t njjtn menyre nj adrese e
shkruar nga 7&H) T H&888 bite H&888 modifikon byte H&888 te file. )ur proesi mbaron,
file#i i modifikuar, lihet ne disk si t ishte i ndryshuar nga nj kobinim kerkim#shkrim nga
thirrjet e sistemit.
*fare ndodh ne te "ertete eshte se tabelat e brendeshme te sistemit jane ndryshuar pr ta
bere filen t behet suport pr t mbajtur memorjen 7&H) t lokali'uar ne 7CD). )eshtu
nje le'im prej 7&H), shkaton nje page fault, duke e $uar ne faqen 8 te filet. !o ashtu qe
nj le%im nga 7&H) T &&88 shkakton nje page fault, duke sjelle ne faqe permbajtjen e
asaj adrese, pas se $iles shkrimi ne memorie mund te ndodhi. Ne qofte se kjo faqe eshte
menjanuar nga algoritmat e 'e"endesimit te faqe"e, ajo eshte shkruar perseri, ne "endin e
duhur ne file. )ur proesi mbaron, t gjitha faqet e hart'uara, faqete modifikuara, u
kthehen file"e te tyre. 2art'imi i file"e, funksionon me mire ne nj sistem qe suporton
segmentimin.
Ne nj sistem t tille do file mund t hart'ohet ne segmentin e "et, ne menyre qe bitet e
file#it t jene edhe bitet e segmentit.
/igura D#D(a), na tregon nj proes qe ka dy segmente me tekst dhe te dhena. 1upo'ojme
se ky proes i kopimit t file#it si dhe programi i meparshem, hart'on me pare filen
burim ne nj segment, me pas krijohet nj boshllek segmentar dhe hart'imi i file#it
destina$ion "endoset aty.
Figure 6-6. (a) Nj proess segmentar prpara hartzimit t file-ve ne hapesiren e
adresave. (b) Proesi pas hartzimit ekziston nj file, brenda nj segmenti dhe
krijon nj segment t ri.
!roesi kopjon segmentin burim ne segmentin destina$ion duke prdorur nj $ikel t
'akonshem kopjimi. ,s thirrjet le%im dhe shkrim t sistemit nuk jane t ne"ojshme, dhe
kur gjith$ka eshte kryer, ai mund t ek'ekutoje thirrjen $Ohart'imin t sistemit t le"i'e
filen nga hapesira e adresa"e e pastaj t dali nga programi. /ile output jr#B nuk do t
ek'istoje deri sa t krijohet ne menyre t drejtprdrejt.
Neprmjet hart'imit t file#"e, eleminojme ne"ojen e 6/: dhe kjo mund ta beje
programin me t leht. )a disa probleme "etjakeJ
&. sht e "eshtire pr sistemin t njohe gjatsine e sakt t file#it output jr#B.
H. mund t na tregoje numrin maksimal t faqe"e t shkruara, por ne asnj menyre t
njohe se sa bite jane shkruar ne t.
9. supo'ojme se programi prdor faqen 8, por pas ek'ekutimit edhe bitet do t jene
8.
M. /ile hart'ohet nga nj proes por hapet per tu le%uar nga nj proese tjetr. Ne
qofte se pro$esi i pare ka modifikuar nje faqe, ky ndryshim nuk do te reflektohet
ne file qe eshe ne disk, deri sa faqja te jete hequr. 1istemi duhet te kete shume
kujdes per tu siguruar qe dy pro$eset nuk e shohin "ersionin kontrakditor te file.
7. file mund t jet me i gjat se segmenti ose me i gjat se hapesira e adresa"e
"irtuale. "etjma menyre e 'gjidhjes sht qe sistemi te harte'oje nje pjese te
file, sesa te gjithe file.
6.2 DIREKTORIT
!r t ruajtur ose mbajtur pjese nga skedare, sistemet e skedare"e kane direktori ose
foldera ( dosje ), t $ilat ne shume sisteme jane "et skedaret. Ne ket paragraf do t
diskutojme pr direktorit, organi'imin e tyre, karakteristikat dhe opera$ionet e ndryshme
qe mund t ek'ekutohen ne to.
6.2.1 Sistemet me nj nivel direktorie
/orma me e thjesht e sisteme"e t direktori"e sht ai me nj direktori qe prmban t
gjithe skedaret. Nganjhere quhet edhe direktoria rrenj, por meqenese sht e "etmja
direktori, emri nuk ka shume rendesi. Ne kompjuterat e hershem personal ky system ishte
i 'akonshem sepse prgjithesisht kishte "etm nj prdorues. (egjithat $uditrisht
superkompjuteri i pare ne bot *=* DD88 kishte nj direktori t "etme pr gjithe skedaret
edhe pse prdorej nga shume prdorues ne t njjtn kohe. )jo gje behej pa dyshim pr t
mbajtur di'ajnin e software#it sa me t thjesht.
Nj shembull i sistemit me nj direktori sht dhene ne figure D#C. )etu direktoria
prmban M skedare. QRotruesit Q e skedare"e jane treguar ne figure, jo emrat e skedare"e
(sepse na interesojne ato qe i prmbajne, gje pr at qe do flasim me posht). ,"anta'hi i
kesaj skeme qendron tek thjeshtsia e saj dhe tek aftsia pr t lokali'uar shpejt skedaret,
pasi ne fund t fundit ek'iston "etm nj "end pr t kerkuar.
Figura 6-7. 1istem me nj ni"el direktorie qe prban M skedare qe 'otrohen nga njere' t
ndryshem , , ;
!roblemi ne t pasurin "etm nj direktori ne nj sistem me shume perdorues, sht se
prdorues t ndryshem mund t prdorin aksidentalisht t njjtin emer pr skedaret e tyre.
!r shembull ne qoft se prdoruesi , krijon nj skedar t quajtur mailbo& dhe me pas
prdoruesi ; krijon gjithashtu nj skedar me t njjtin emer mailbo&, skedari i ;#se do t
mbishkruhet mbi at t ,#se. !r pasoje kjo skeme nuk prdoret me ne sistemet me
shume prdorues, por mund t prdoret pr nj sistem t "ogel pr shembull ne nj sistem
ne nj makine qe sht di'enjuar pr t ruajtur profilet pr nj numer t "ogel dri"ers.
6.2.2 Sistemet me dy nivele direktorish
!r t shmangur konfliktet t shkaktuara nga prdorues t ndryshem qe 'gjedhin t njjtin
emer pr skedaret e tyre, hapi i dyt sht ti japim do prdoruesi nj direktori pri"ate. Ne
ket menyre emrat e 'gjedhur prej nj prdoruesi nuk interferojne me emrat e 'gjedhur
nga nj prdorues tjetr dhe nuk ka problem, n qoft se i njjti emer mund t shfaqet ne
me shume se nj direktori. )y di'ajne $on tek sistemi i paraqitur ne figuren D.L. )y
di'ajn prdoret me shume ne kompjuterat me shume prdorues ose ne nj rrjet t thjesht
kompjuterash personal qe punojne me nj ser"er t prbashket ne nj rrjet lokal.
Root
directory
F
igura 6-8. Nj sistem direktorie me dy ni"ele. 1hkronjat tregojne 'otruesit e direktori"e
dhe skedare"e.
,jo $fare nenkuptohet ne ket di'ajn eshte qe, kur prdoruesi prpiqet t hape nj skedar
sistemi e di $ili prdorues sht, ne menyre qe t dije se ne $ilen direktori t kerkoje. !r
pasoje nj pro$edure hyrese sht e ne"ojshme, ne t $ilen prdoruesi spe$ifikon emrin
identifikues ose hyres, di$ka qe nuk kerkohet ne sistemet me nj ni"el direktorie.
)ur ky sistem 'batohet ne menyren e tij me themelore, prdoruesit kane t drejt hyrje
"etm ne skedaret e direktori"e t "eta. (egjithat nj shtese e "ogel sht qe i lejon
prdoruesit t hapin skedaret e prdorues"e t tjere duke dhene disa t dhena pr skedaret
e t $ilit po hap. )eshtu pr shembullJ
2ap (\ % \)
(und t jet komanda ose thirrja pr t hapur skedarin % t direktorise se prdoruesit dhe

2ap (\ nan$y / %\)
(und t jet thirrja pr t hapur direktorine e nj prdoruesi tjetr, Nan$y.
6.2.3.Sisteme me shume direktori (hierarkike)
2ierarkia me dy ni"ele shmang konfliktet e emra"e ndermjet prdorues"e, por nuk sht
e kenaqshme pr prdoruesit me nj numer shume t madh skedaresh. dhe kompjuterat
personal pr nj prdorues t "etm nuk sht i prshtatshem. 1hpesh prdorues t
ndryshem ndjejne ne"ojen apo kane deshire ti grupojne skedaret e tyre sipas nj logjike.
!r shembull, nj profesor deshiron t ket nj koleksion skedaresh qe t gjitha bashke t
formojne nj liber qe po shkruan pr nj kurs t "e$ant, nj koleksion t dyt skedaresh
qe prmbajne programet e student"e t pranuar pr nj kurs tjetr, nj grup t tret
skedaresh qe prmbajne kodet e nj sistemi t a"an$uar shkrues#kompilues qe ai po
nderton, nj grup t katrt skedaresh qe prmban projekt#propo'ime, si dhe nj skedar
tjetr pr postn elektonike, oraret e takime"e, letrat qe po shkruan, lojra e keshtu me
radhe. Ne nj fare menyre sht e ne"ojshme qe keto skedare t grupohen ne nj menyre
t thjesht, t 'gjedhur nga "et prdoruesi. !r ket "jen ne ndihme nj hierarki e
prgjithshme (nj peme direktorish). (e ket lloj prafrimi do prdorues mund t ket
aq direktori sa ka ne"oje ai, ne menyre qe skedaret t grupohen ne menyra sa me t
Root directory
User directory
natyrshme. )y lloj prafrimi sht dhene ne figuren D#G. )etu direktorit ,, ; dhe *, nen
direktorine rrenj i prkasin se$ila nj prdoruesi t ndryshem, dy prej t $ile"e kane
krijuar nendirektori pr projektet t ndryshme qe ato po punojne.
Figura 6-9. Nj sistem direktorish hierarkike
(undesia qe kane prdoruesit pr t krijuar nj numer arbitrar nendirektorish ofron nj
mjet strukture t fuqishem pr prdoruesit, ne menyre qe t organi'ojne punen e tyre. !r
ket arsye, afersisht t gjithe sistemet modern t skedare"e jane t organi'uara ne ket
menyre.
6.2.4 Emrat e path-it
)ur sistemi i skedare"e sht organi'uar si nj peme direktorish, ne nj fare menyre sht
e ne"ojshme t spe$ifikohen emrat e skedare"e. @akonisht dy lloj metodash prdoren. Ne
metoden e pare do skedari i sht dhene nj emer path-i, i quajtur path absolut qe
prmban path#in nga direktoria rrenj deri ne skedar. 1i pr shembull, path#
i /usr$ast$mailbo& nenkupton qe direktoria rrenj prmban nj nendirektori usr, e $ila
prmban nj tjetr nendirektori ast, e $ila nga ana e saj prmban skedarin mailbo&.
!ath#et absolut t emrit fillojne gjithmone nga direktoria rrenj dhe jane unike. Ne
+N6R komponentt e trajektores jane t ndara me /. Ne 3indows ndaresi sht V. Ne
(+-N6*1 ndaresi sht X. =omethene, i njjti path absolut i emrit mund t shkruhej ne
keto tre sisteme keshtuJ
3indows VusrVastVmailbo%
+N6R /usr/ast/mailbo%
(+-N6*1 XusrXastXmailbo%
Nuk ka rendesi se $fare karakteri prdor, mjafton, ne qoft se karakteri i pare i path#it t
emrit sht ndaresi athere kemi t bejme me path absolut.
Root directory
User directory
User file
User
subdirectories
-loji tjetr sht path-i relative i emrit. )y prdoret ne lidhje me kon$eptin e working
directory (direktoria e punes), e quajtur gjithashtu direktoria aktuale. Nj prdorues
mund t pr$aktoje nj direktori si working dire$tory aktuale ne t $ilen emrat e path#it qe
nuk fillojne nga dire$toria rrenj merren relati"isht ne workind dire$tory.
!r shembull, ne qoft se working dire$tory sht $usr$ast athere skedari path#i absolut
i t $ilit sht $usr$ast$mailbo& mund ti referohemi thjesht si mailbo&. (e fjale t tjera
komanda ne +N6R
$p/usr/ast/mailbo%/usr/ast/mailbo%.bak
dhe komanda
$p mailbo% mailbo%.bak
bejne ek'aktsisht t njjtn gje, ne qoft se working dire$tory sht /usr$ast. /orma
relati"e shpesh sht me i prshtatshem por bn t njjtn gje si forma absolute.
=isa programe kane ne"oje qe t kene hyrje ne disa skedare spe$ifike pa marre parasysh
se $fare working dire$tory sht. Ne ket rast duhet prdorur gjithmone path#i absolut i
emrit. !r shembull, nj spelling $he$ker mund t ket ne"oje qe t le%ohet
$usr$lib$,ictionary pr t punuar me t. =uhet t prdoret path#i absolut i emrit ne ket
rast, sepse nuk e di se $ila working dire$tory mund t jet kur t thirret komanda. !ath#i
absolut i emrit funksionon gjithmone pa"aresisht se $ila working dire$tory sht.
1igurisht ne qoft se spelling $he$ker ka ne"oje pr nj numer t madh skedaresh
nga /usr$lib- nj mundesi tjetr mund t ishte qe ne fillim t ndryshoje direktorine ku po
punon (working dire$tory), ne $usr$lib dhe pastaj t prdore thjesht ,ictionary- si
parametrin e pare pr ta hapur. !r thjeshtsi, ndryshimi i working dire$tory qe sigurisht
dihet se ku ndodhet ne pemen e direktori"e, mund t prdoret path#i relati"e.
Bdo proes ka working dire$tory e "et keshtu qe, kur nj proes ndryshon working
dire$tory dhe me "one kthehet prseri, asnj nga proeset e tjera nuk preken apo
demtohen, dhe asnj gjurme e ndryshime"e t bera nuk mbetet ne sistemin e skedarit. Ne
ket menyre sht gjithmone e sigurt ndryshimi i working dire$tory pr nj proes,
kurdohere qe sht e prshtatshme. Nga ana tjetr, ne qoft se library proce,ure
ndryshon working dire$tory e "et dhe nuk kthehet ne gjendje e "et fillestare kur mbaron
pune, pjesa tjetr e programit mund t mos punoje meqenese supo'imi se ku mund t
ndodhet tani mund t jet i pa"lefshem. !r ket arsye, pro$edurat library rralle
ndryshojne working dire$tory dhe kur ndodh e ndryshojne prseri prpara se t kthehen.
1humi$a e sisteme"e operati"e qe mbshtetin sistemet e direktori"e hierarkike kane dy
hyrje t "e$anta ne do direktori \.\ dhe \..\ t quajtura 'akonisht \dot\ dhe \dotdot\. =ot
i referohet direktorise aktualeI dotdot i referohet burimit t tij. !r t pare se si prdoren,
shikojme pemen e skedare"e t +N6R ne figuren D#&8. Nj proes $aktuar $usr$ast
working dire$tory e "et.
(und t prdoret, pr t shkuar tek pema. !r shembull mund t kopjohet skedari
$usr$lib$,ictionary ne "et direktorine e "et duke prdorur komandenI
$p ../lib/di$tionary.
!ath#i pare instrukton sistemin t shkoje lart (tek direktoria usr), pastaj t shkoje posht
ne direktorine lib pr t gjetur skedarin ,ictionary.
.oot
dire$tory

bin et$ lib usr tmp

ast lib jim
/usr/jim
Figura 6-10. Nj peme direktorish ne +N6R
,rgumenti i dyt (dot) emeron direktorine aktuale. )ur komanda cp kap nj emer
direktorie (duke prfshire edhe dot) si argumenti i tij i fundit, kopjon gjithe skedarin e
gjendur atje. 1igurisht nj menyre normale e t kopjuarit do t ishte duke shtypurI
*p/usr/lib/di$tionary.
)etu prdorimi i dot (pikes) i jep mundesi prdoruesit t mos shkruaje ,ictionary pr t
dytn here. dhe pse t shkruarit
$p/usr/lib/di$tionary di$tionary
bin
et$
lib
usr
tmp
ast
jim
lib
di$t
punon njlloj sikurse edhe
$p/usr/lib/di$tionary/usr/ast/di$tionary
N gjitha keto bejne ek'aktsisht t njjtn gje.
6.2.5 Operacionet e direktorive
Nhirrjet e sistemit t lejuar pr t mena%huar direktorit shfaq me shume "aria$ion nga
sistemi ne sistem se sa sistemi i thirrje"e pr skedaret. !r t dhene nj ilustrim se $fare
jane dhe punes qe bejne po japim nj shembull (marre nga +N6R)
&. *reate ()rijo). Nj direktori sht krijuar. ,jo sht boshe, pr"e$ dot (pikes) dhe
dotdot (pike pike) t $ilat "endosen aty automatikisht nga sistemi (ose ne disa
raste nga mik,ir program).
H. =elete (/shi). Nj direktori sht fshire. >etm nj direktori bosh mund t fshihet.
Nj direktori qe prmban "etm dot dhe dotdot konsiderohet boshe, pasi keto nuk
mund t fshihen 'akonisht.
9. :pendir. =irektoria mund t le%ohet. !r shembull, pr t listuar gjithe skedaret e
nj direktorie, nj program listues hap direktorine qe t le%oje emrat e gjithe
skedare"e qe ajo prmban. <e nj direktori t le%ohet ajo duhet me pare t hapet,
analoge me hapjen dhe le%imin e nj skedari.
M. *losedir. )ur nj direktori sht le%uar ajo duhet t mbyllet ne menyre qe t liroje
hapesiren e tabeles se brendshme.
7. .eaddir. )jo thirrje kthen hyrjen e ardhshme ne nj direktori t hapur. /ormalisht
ishte e mundur qe direktorit t le%oheshin duke prdorur sistemin e 'akonshem t
le%imit, por ky prafrim detyronte programuesin t dinte dhe t merrej me
strukuren e brendeshme t direktori"e. Ndersa readdir kthen nj hyrje ne formen
standarte, pa"aresisht se $ila strukture e mundshme e direktori"e po prdoret.
D. .ename(riemero). Ne shume referime direktorit jane njlloj si skedaret dhe
mund t riemerohen me t njjtn menyre sikurse dhe skedaret.
C. -ink (lidh). -inking (nderlidhja) sht nj teknike qe lejon, qe nj skedar t
shfaqet ne me shume se nj direktori. )y sistem thirres spe$ifikon nj skedar
ek'istues dhe nj path emri dhe krijon nj lidhje (link) nga skedari ek'istues tek
emri i spe$ifikuar nga path#i. Ne ket menyre i njjti skedar mund t shfaqet ne
shume direktori. Nj link sipas kesaj menyre qe shton numeruesit ne nyjet e
skedare"e ( nyjet e skedare"e sherbejne pr t ruajtur gjurmet e hyrje"e t shumta
t direktori"e qe prmbajne skedarin), 'akonisht quhet lidhje e "eshtire hard link.
L. +nlink (prish lidhjen ). Nj hyrje e direktorise sht hequr. Ne qoft se skedari qe
iu prish lidhja ndodhet "etm ne nj direktori (rasti i 'akonshem ), athere ai sht
hequr fare nga sistemi i skedare"e. Ne qoft se ndodhet ne shume direktori, "etm
pathi#i i spe$ifikuar i emrit sht hequr. N tjerat mbetn. Ne +N6R sistemi i
thirrje"e pr t fshire skedaret (i prmendur me lart ) sht ne fakt unlink.
-ista e dhene me lart jep disa nga thirrjet me t rendesishme, por ka edhe disa t tjera
gjithashtu t rendesishme si pr shembull, mena%himi i informa$ionit t proteksionit
shoqeruar me nj direktori.

6.3 IMPLEMENTIMI I FILE SYSTEM
Nani sht koha pr t kaluar nga kend"eshtrimi i prdoruesit, mbi file system, ne
kend"eshtrimin e implementuesit. !rdoruesit jane t interesuar t dine si emerohen file#
at, fare "eprimesh i lejohen atyre, si do t jene pemet e direktori"e, dhe eshtje t tjera t
nderfaqimit. 6mplementuesit jane t interesuar si ruhen file#t dhe direktorit, si behet
mena%himi i hapesires ne disk, dhe si t bejne qe do gje t funksionoje me efien$e dhe
qendrueshmeri. (e posht do t anali'ohen disa nga problemet e mesiprme pr t pare
kush jane kerkesat, problemet dhe t metat.
FILE SYSTEM LAYOUT (sistemimi i file-system)
/ile system#et ruhen ne disk. 1humi$a e disqe"e mund t ndahen ne nj ose me shume
parti$ione, me file#system t pa"arura nga nj parti$ion ne tjetrin. 1ektori 8 i diskut quhet
MBR (Master Boot Re$ord) dhe prdoret pr t boot#uar kompjuterin. /undi i MBR#s
prmban tabelen parti$ion (partition table). )jo tabele jep adresat e fillimit dhe t fundit
t do parti$ioni. Nj nga parti$ionet ne tabele shenohet si parti$ioni akti". )ur
kompjuteri boot#ohet, ;6:1#i le%on dhe ek'ekuton (;.#n. 5jeja e pare qe programi
(;. bn, sht t lokali'oje parti$ionin akti", t le%oje ne bllokun e tij t pare, t quajtur
boot block, dhe ta ek'ekutoje at. !rogrami ne boot blo$k ngarkon 1:, qe ndodhet ne at
parti$ion. !r t qene uniforme, do parti$ion fillon me nj boot blo$k, edhe pse ai mund
t mos prmbaje nj sistem operati" boot#imi. !or duhet ta ket nj t tille ne nj t
ardhme, prandaj re'er"imi i nj boot#blo$k sht nj ide e mire, gjithesesi.
!r"e startimit me nj boot blo$k, sistemimi i parti$ionit t nj disku "arion nga nj file#
system ne tjetrin. @akonisht file#system#et do t prmbajne nj nga objektet e meposhtme
t treguara ne fig. D.&&.
6 pari sht nj superblock. ,i prmban t gjithe parametrat ky mbi file system dhe
le%ohet ne memorje kur kompjuteri boot#ohet, ose kur file system prdoret pr here t
pare. Ne superblo$k, informa$ioni tipik qe prfshihet sht nj numer magjik qe
identifikon tipin e file system, numrin e blloqe"e ne file system dhe informa$ione t tjera
kye administrati"e.

(e pas mund t ket informa$ion mbi blloqet e lira ne file system, pr shembull ne
formen e nj bitmap#i ose nj liste pointer#ash. )y informa$ion mund t ndiqet nga nyje,
rreshta me strukturuara datash, nj pr file, qe tregojne do gje pr file#in. (bas kesaj
"jen direktoria root, qe prmban majen e pemes se file system#it. 1i prfundim, pjesa e
mbetur e diskut prmban t gjthe direktorit dhe file#t e tjera.

Fig. 6.11 Nj file system i mundshem
6.3.2 IMPLEMENTIMI I FILE-AVE

Beshtja me e rendesishme ne implementimin e file"e sht t dish pr do bllok disku,
kujt file i prket. Ne 1: t ndryshme prdoren metoda t ndryshme. )etu do t
anali'ojme disa prej tyre.
ALOKIMI I N1PASN1SHEM (CONTIGUOUS ALLOCATION)
1kema me e thjesht e alokimit, sht t ruash do file si nj ek'ekutim i njpasnjshem i
blloqe"e t diskut. )eshtu, ne nj disk me blloqe &);, nj file 78); do t "endoset ne
78 blloqe t njpasnjshme. (e blloqe H );, ai do t alokohet ne H7 blloqe t
njpasnjshme.
Ne fig. D.&H(a), tregohet nj shembull i alokimit t njpasnjshem, ku M8 blloqet e para
tregohen duke u nisur me bllokun 8 ne t majt. /illimisht, disku ishte bosh. (e pas nj
file ,, me gjatsi M blloqe shkruhet ne disk duke filluar nga blloku 8. (enjhere pas
mbarimit t ketij file shkruhet file ;, file prej D blloqesh. >ihet re qe do file fillon ne
fillim t nj blloku t ri, keshtu n qoft se , ishte ishte me t "ertet 9 blloqe, humbet
pak hapesire ne fund t bllokut t fundit. Ne figure, tregohen C file, se$ili fillon ne fillim e
bllokut pas fundit t bllokut para tij. 2ije'imi sht bere pr t bere me t qart idene e
ndarjes se file#"e.

Fig. 6.12 (a) ,lokimi i njpasnjshem i hapesires se diskut nga C file. (b) 5jendja e
diskut pasi file#t = e / jane fshire.
,lokimi i njpasnjshem ne disk ka H a"anta'he kryesore.
?sht me i thjesht implementimi, sepse duke ditur ku jane blloqet e nj file nuk ka me
ne"oje t mbahen mend H numraJ adresen ne disk t bllokut t pare dhe numrin e blloqe"e
ne file. =uke dhene numrin e bllokut t pare, numri i do blloku tjetr mund t behet
duke bere nj mbledhje shume t thjesht.
!erforman$a e t le%uarit sht shume e mire, sepse nj file i tr mund t le%ohet me nj
operim t "etm. >etm nj kerkim ne"ojitet (ne bllokun e pare). !as kesaj nuk ne"ojiten
me kerkime dhe te dhenat futen me t gjithe gjeresine e bre'it t ardhur nga disku.
!randaj thuhet se alokimi i njpasnjshem sht i thjesht pr tu implementuar dhe ka
nj performan$e t shkelqyer.
/atkeqesisht, alokimi i njpasnjshem ka nj t met t madheJ me kalimin e kohes disku
fragmentohet. !r t kuptuar ket anali'oni fig D.&H(b). )etu dy file#t = dhe / jane fshire.
)ur nj file fshihet, blloku i tij lirohet duke krijuar blloqe t lira pr ek'ekutim ne disk.
=isku nuk sht kompakt pr 'hdukur keto "rima, po t ndodhte kjo athere t gjithe
blloqet pas "rimes do t kopjoheshin (poten$ialisht miliona blloqe). 1i re'ultat, disku
prbehet nga file dhe "rima, si t tregohen ne figure.

/illimisht, fragmentimi nuk prbn nj problem pr sa kohe qe nj file i ri shkruhet ne
fund t diskut, duke ndjekur at para tij. (egjithat, disku do t mbushet dhe do t jet e
ne"ojshme t behet disku kompakt, gje qe sht shume e shtrenjt, ose t riprdoret
hapesira bosh e "rima"e.
.iprdorimi i hapesires bosh kerkon krijimin e nj liste t "rima"e. (egjithat kur nj
file i ri krijohet, sht e ne"ojshme t dihet madhesia e tij prfundimtare, pr t 'gjedhur
keshtu nj "rime me madhesine e duhur pr ta "endosur.
6magjinoni pasojat prfundimtare t nj di'enjimi t tille. !rdoruesi do t filloje t
prdori nj word proessor ose nj te%t editor pr t shkruar nj dokument. 5jeja e pare
qe pyet programi shtJ sa byte do t jet dokumenti prfundimtar. =uhet tOi prgjigjesh
kesaj pyetje qe t "a'hdoje programi, n qoft se nemri i dhene sht shume i "ogel,
programi do t prfundoje para kohe, sepse "rima sht plot dhe nuk ka ku t "endoset
pjesa tjetr e file#t. N qoft se prdoruesi jep nj numer shume t madh si madhesi
prfundimtare, pr shembull &88(;, editori nuk do t jet ne gjendje t gjeje nj "rime
kaq t madhe dhe lajmeron qe file nuk mund t krijohet. !rdoruesi mund ta ripro"oje
duke dhene nj madhesi t re me t "ogel, pr shembull 78 (; ose me shume derisa t
gjendet nj madhesi e prshtatshme. (egjithat, akoma kjo skeme nuk sht e
kenaqshme.
(egjithat ka nj situat, ku alokimi i njpasnjshem sht i mundshem dhe mjaft i
prdorurJ ne *=#.:(#et. )etu t gjithe madhesite e file#"e njihen ne a"an$e dhe nuk do
t ndryshojne kurre gjat prdorimit t here pas hershem t *=#.:( file system. (e
"one do t shqyrtohen *=#.:( file system#et.

,lokimi i njpasnjshem u prdor fillimisht ne disqe magnetike, kjo pr shkak t
lehtsise ne operim dhe performan$s se lart (athere nuk kishte shume rendesi qe nj
kompjuter t ishte i thjesht pr nj prdorues faredo, friendliness). (e pas kjo ide u
hodh posht pr shkak t ne"ojes qe lindi pr t njohur ne a"an$e madhesine e file#t. !or
me shpikjen e *=#.:(#e"e, =>=#"e dhe media"e t tjera optike qe shkruhen "etm nj
here, ideja e alokimit t njpasnjshem pati prseri sukses. !r ket sht e rendesishme
t studiohen sistemet dhe idet e "jetra, sepse ishin kon$eptualisht t lehta dhe t pastra,
dhe ato mund t aplikohen ne sisteme ne t ardhmen, ne forma nga me t ndryshmet.
ALOKIMI ME LINKED LIST
(enyra e dyt e ruajtjes se file#"e sht t ruash do file si linked list blloqesh t diskut,
si ne fig D.&9. fjala e pare e do blloku prdoret si nj pointer pr bllokun pasardhes.
!jesa tjetr e bllokut prdoret pr datat.
Ndryshe nga alokimi i njpasnjshem, do bllok i diskut mund t prdoret ne ket
metode. Nuk humbet aspak hapesire bosh nga fragmentimi i diskut (pr"e fragmentimit
t brendshem ne bllokun e fundit). 5jithashtu, sht e mjaftueshme pr hyrjen ne
direktori, t ruhet ne disk adresa e bllokut t pare. !astaj duke u nisur qe aty mund t
gjesh pjesen tjetr.
Nga ana tjetr, edhe pse le%imi sekuen$ial i file#"e sht i drejtprdrejt, aksesimi
random sht shume i ngadalt. !r t shkuar ne bllokun n, 1: duhet ta filloje le%imin
nga fillimi, domethene t le%oje n%1 blloqe para tij, nga nje per $do rast. ?sht e qart se
t gjitha keto le%ime jane shume t ngadalshme.

5jithashtu, sasia e te dhena"e t ruajtura ne nj bllok nuk jane me fuqi e H#it, sepse
pointeri prdor disa byte pr "et. Nuk sht pr tu shqetsuar, por fakti i t pasurit nj
madhesi t "eant sht me pak efient, sepse shume programe le%ojne dhe shkruajne
ne blloqe, madhesia e t $ila"e sht fuqi e H#it. !ak nga bytet e para t do blloku i 'e
pointeri i bllokut pasardhes. -e%imet e t gjithe madhesise se bllokut kerkojne
informa$ionin prkats dhe t grumbulluar nga H blloqet e disqe"e, qe gjenerojne tituj
nga kopjimi.



Fig. 6.13 .uajtja e file#"e si nj linked list e blloqe"e ne disk
LINKED LIST E ALOKIMIT DUKE PRDORUR N1 TABELE NE MEMOR1E
(Linked List Allocation Using a Table in Memory)
=y disa"anta'het e linked list t alokimit mund t eleminohen duke "endosur pointer
word nga do bllok ne nj tabele ne memorje. /ig. D.&M, tregon si sht e ndertuar tabela
pr rastin e fig. D.&9. ne t dy figurat. )emi dy file. /ile , prdor blloqet M, C, H, &8, &H
sipas kesaj rradhe dhe file ; prdor blloqet D, 9, &&, &M sipas kesaj rradhe. =uke prdorur
tabelen ne fig. D.&M, ne mund t fillojme me bllokun M dhe t ndjekim 'in%hirin deri ne
fund. njjta gje mund t behet duke filluar nga blloku D. N dy 'in%hiret shenohen me
nj shenj t "eant (pr shembull #& ), qe nuk sht nj numer blloku i "lefshem. Nj
tabele e tille ne memorien kryesore njihet si FAT ( File A$tion Table).


Fig. 6.14 (a) -inked list e alokimit, qe prdor nj file alo$ation table.
=uke prdorur ket organi'im, i gjithe blloku sht i "lefshem pr te dhenat. !r me
tepr, aksesimi i rastit sht me i leht. (egjithat duhet t ndiqet do hallke e 'in%hirit
pr t gjetur nj offset t dhene brenda nj file, 'in%hiri sht i tri ne memorie, keshtu ai
mund t ndiqet hallke pas hallke, pa bere ndonj referen$e adresimi. 1i metoda me
prpara, pr hyrjen ne direktori sht e mjaftueshme t ruhet nj integer i "etm (numri i
bllokut fillestar) pr t qene ne gjendje pr t lokali'uar t gjith blloqet e tjera,
pa"aresisht sa i madh sht file.

=isa"anta'hi i pare i kesaj metode sht se e gjithe etiketa duhet t jet ne memorje gjat
gjithe kohes se punimit. (e nj disk H8 5; me blloqe &);, tabeles i duhen H8 milion
hyrje (entry), nj pr do H8 milion blloqet. Bdo entry duhet t jet minimumi 9 byte. !r
shpejtsine e kerkimit duhet t jet M byte. !randaj tabela do t 'eje D8 ose L8(; t
memories kryesore gjat gjithe kohes, kjo "aret nga fakti n qoft se sistemi sht i
optimi'uar ne hapesire ose ne kohe. !r rrjedhoje, tabela mund t "endoset ne memorje t
faqueshme, por prseri do t 'j nj pjese t madhe t memorjes "irtuale dhe t diskut,
gjithashtu do t gjeneroje nj trafik t madh faqesh.
NY1ET-I (I- nodes)

(etoda e fundit mbi njohjen e do blloku t file# "e prkats, ka t beje me shoqerimin e
do file me nj strukture te dhenash t quajtur i-node ( index-node), e $ila liston $ilesite
dhe adresat e blloqe"e t file#"e. Nj shembull i thjesht paraqitet ne fig D.&7. =uke
njohur i#node mund t gjenden t gjithe blloqet e file#"e. ,"anta'hi i madh i kesaj
metode, mbi file#t e lidhura duke prdorur nj tabele brenda ne memorje sht se mjafton
t jet i#node ne memorje kur file prkats sht i hapur. N qoft se do i#node, 'e n#
byte dhe mund t hapen njheresh k file, memoria totale e 'ene nga i#node#t pr file#t e
hapura do t jet kn byte. >etm kaq hapesire duhet t re'er"ohet ne a"an$e. )jo hapesire
sht shume e "ogel e kahasuar me hapesiren e 'ene nga tabela e file#"e t prshkruar ne
metoden e meparshme. ,rsyeja sht e thjesht. Nabela pr listn e lidhur t t gjithe
blloqe"e sht propor$ionale me madhesine e diskut. N qoft se disku ka n# blloqe,
tabeles i duhen n entry. 1a me shume rritet disku, aq me shum rritet dhe tabela, ne
menyre lineare. Ne kontrast me i#node#t qe kerkojne ne memorje nj hapesire, qe t jet
propor$ionale me numrin maksimal t file#"e qe mund t hapen njheresh. Nuk "aren nga
madhesia e diskut, qe mund t jet &5;, &85;, &885;.
Nj problem me i#node#t sht se fare ndodh kur ka hapesire "etm pr nj numer fiks
adresash dhe file i ka prmasat me t medha se ky limitUi Nj 'gjidhje do t ishte t ruhej
adresa e fundit e diskut jo pr bllok te dhenash, por pr adresen e nj blloku ku ndodhen
adresa blloqesh t tjere, t treguara ne fig.D.&7. Nj 'gjidhje me e a"an$uar do t ishte qe
ne nj bllok t ruheshin dy apo me shume adresa blloqesh, t mbushur me adresa blloqesh
t tjetr. 6#node#t do t anali'ohen me mire ne +N6R.
Fig 6.15. Nj shembull i nj i#node
6.3.3 IMPLEMENTIMI I DIREKTORIVE
!ara se nj file t le%ohet ai duhet t hapet. )ur nj file hapet, 1: prdor path name t
futur nga prdoruesi pr t lokali'uar direktorine. =irektoria siguron informa$ionin e
ne"ojshem pr t gjetur blloqet. Ne "aresi t sistemit, ky informa$ion mund t jet adresa
ne disk t t gjith file#it (alokimi i njpasnjshem), numri i bllokut t pare (H skemat e
linked list), ose numrin e i#node#"e.
Ne t gjitha rastet, funksioni kryesor i direktorise sht t fusi emrin e file#it ne ,1*66,
tek informa$ioni i ne"ojshem pr t gjetur te dhenat.
Nj eshtje e rendesishme sht, se ku do t ruhen "eorit e blloqe"e t file#"e. Bdo file
system prmban $ilesite e "eta, si pr shembull, pronarin e do file, kohen e krijmit dhe t
gjitha keto duhet t ruhen diku. Nj mundesi do t ishte t ruheshin direkt ne direktori.
1humi$a e sisteme"e bejne keshtu. )jo menyre tregohet ne fig. D.&D(a). Ne ket di'enjim
t thjesht, direktoria prmban nj list me hyrje (entry) me madhesi fikse, nj pr do
file, prmban emrin e filet (me gjatsi fikse), nj strukture t "eori"e t file#it dhe nj,
apo me shume adresa ne disk, pr t treguar ku "endosen blloqet ne disk.
Fig. 6.16(a) Nj direktori e thjesht qe prmban entry me madhesi fikse, adresat ne disk
dhe $ilesite e direktorise.
(b) Nj direktori ku do entry i referohet nj i#node.
!r sistemet qe prdorin i#node, nj mundesi tjetr do t ishte ruajtja e $ilesi"e ne i#node.
Ne ket rast, hyrja ne direktori do t jet me e shkurtr, "etm nj emer file dhe nj
numer i#node. )jo tregohet ne fig. D.&D(b). 1i do shihet me "one kjo metode ka
a"anta'het e "eta mbi "endosjen e ketyre t dhena"e ne direktori. =y stukturat e
mesiprme i prkasin prkatsisht (1/=:1 3indows dhe +N6R.
1i thame me lart file#t kane emra me gjatsi fikse t shkurtr, file#t e (1/=:1 e kane
emrin ba'e &#L karaktere dhe nj shtese &#9 karaktere. Ne +N6R "ersioni C, emrat e file#
"e ishin &#M karaktere duke prfshire dhe shtesat. 1: moderne suportojne emra me t
gjat file#sh. 1i mund t implementohet kjoU
(enyra e e thjesht sht t "endoset nj limit i gjatsise se emrit t file#t, tipikisht H77
karaktere, dhe me pas, prdoret nj nga di'enjimet ne fig.D.&D, me H77 karaktere t
re'er"uara pr do file. )jo strukture sht e thjesht, por humbet nj sasi t madhe
hapesire t direktorise, me qene se pak file kane emra me gjatsi kaq t madhe. !r asye
efien$e sht me e preferueshme nj strukture tjetr.
Nj alternati"e do t ishte t mos prdorej ideja, qe t gjithe entry#t ne direktori t kene
madhesi t njjt. (e ket metode, do entry ne direktori do t ket nj pjese fikse, qe
fillon nga gjatsia e entry#it, me pas ndiqet nga te dhenat me nj format t $aktuar,
'akonisht prfshihet dhe pronari, data e krijimit, informa$ioni mbrojts dhe "eori t
tjera. )y titull me nj gjatsi fikse ndiqet nga emri aktual i file#t, sa do i gjat qe ai t
jet, si tregohet ne fig D.&C(a) ne formatin big#endian (pr shembull 1!,.*). Ne ket
shembull kemi tre file, project%bu,get- personnel- foo. Bdo emer file prfundon me nj
karakter t "eant ('akonisht 8), qe paraqitt ne figure nga nj kuti me nj kryq brenda.
Fig. 6.17 =y menyra pr t trajtuar emrat e gjat t file#"e ne nj direktori. (a)
ne rradhe (b) ne sti"e
Nj disa"anta'h sht, qe kur nj file fshihet, gjenerohet ne direktori nj gap me madhesi
qe "arion dhe file tjetr qe mund t futet aty mund t mos prshtatet, (si ne rastin e file"e
t njpasnjshem, "etm se ne ket rast kompaktimi i direktorise sht me i mundshem,
sepse ndodhet komplet ne memorie).
Nj problem tjetr sht, qe nj direktori e "etme mund t prfshije shume faqe, keshtu
mund t ndodhi ndonj gabim gjat le%imit t faqe"e.
Nj menyre tjetr pr t trajtuar "ariablin e gjatsise se emrit, sht duke i bere t gjithe
entry#t me gjatsi fikse dhe mbajtja e t gjithe emra"e t file#"e t bashkuara ne nj sti"e
ne fund t direktorise, si tregohet ne fig.D.&C(b). ,"anta'hi i kesaj metode sht se kur
nj file do t fshihet nga direktoria, file tjetr qe do t futet do t prshtatt gjithmone me
hapesiren e lene nga file# i fshire.
5jithashtu duhet qe sti"a t mena%hohet mire, sepse mund t ndodhin gabime gjat
le%imit. Nj fitim i "ogel ketu sht, se nuk sht me e ne"ojshme qe emri i file#t t filloje
ne kufinjt e fjales, keshtu qe nuk ne"ojiten karaktere t "eanta mbushes pas emrit t
file#t si ne fig D.&C(b) dhe qe jane t pranishme ne fig D.&C(a).
Ne t gjithe di'enjimet, pr t gjetur nj file, direktorit kerkohen linearisht nga fillimi
deri ne fund.
!r direktori shume t gjata, kerkimi linear mund t jet i ngadalt. Nj menyre pr t
rritur shpejtsine, sht neprmjet hash table, t prdorur ne do direktori. 1henojme me
n madhesine e tabeles. !r t futur emrit e nj file, emri do t shtrihet nga 8 # n%1, pr
shembull duke e pjestuar at me n prftohet mbetja. Ne menyre alternati"e, fjalet duke
prfshire dhe emrin e file#t mund t mblidhen dhe kjo sasi t pjesohet me n.
Ne ket metode entry e tabeles qe i korrespondon hash kodit anali'ohet. N qoft se ai
nuk sht prdorur, ne file entry "endoset pointeri. /ile entry#it ndjekin tabelen hush. N
qoft se ai sht prdorur, ndertohet nj list e lidhur, qe "endoset ne krye t tabeles dhe
mbledh t gjithe entry#t me t njjtn "lere t hush#it.
)erkimi i nj file ndjek t njjtn pro$edure. /utet emri i file#it pr t gjetur tabelen hash.
)ontrollen t gjithe titujt e hallka"e t 'in%hirit pr t pare ne se gjendet emri i file#it. N
qoft se emri nuk ndodhet ne 'in%hir do t thot qe ai nuk ndodhet as ne direktori.
!rdorimi i nj hash table, ka a"anta'hin e nj kerkimi me t shpejt, por ka dhe
disa"anta'hin e nj administrimi me kompleks. )y model sht nj kandidat i mire, pr
direktorit qe prmbajne qindra file.
Nj menyre komplet ndryshe pr t prshpejtuar kerkimin ne direktori shume t medha
sht kerkimi ne $a$he. !rpara se t filloje kerkimi ne nj direktorie, shikohet n qoft
se kjo direktori ndodhet ne $a$he. N qoft se po, lokali'imi behet shume shpejt.
1igurisht qe kerkimi ne $a$he sht i "lefshem pr nj numer t "ogel file#sh.
6.3.4 SHARED FILES
)ur shume prdorues punojne ne nj grup, ndodh shpesh qe ata t prdorin file t share#
uara. !r ket sht me e le"erdisshme, qe nj nj shared file t shfaqet "a'hdimisht ne
direktori t ndryshme qe i prkasin prdorues"e t ndryshem. Ne fig D.&L paraqitet file
sistemi i fig D.G me nj nga file e *#se pre'ente dhe ne direktorine e ;#s po ashtu. -idhja
midis direktorise se ;#s dhe nj shared file quhet nj link. /ile#i "et njihet si Direct
Acyclic Graph ose DAG, dhe nuk quhet me peme.
1harimi i file"e sht i le"erdisshem, por edhe ai ka disa probleme. )eshtu, n qoft se
direktorit prmbajne adresa ne disk, athere duhet bere dhe nj kopje ketyre adresa"e ne
direktorine e ;#s kur behet linkimi i file#it. N qoft se ; ose * i bashkangjiten ne
menyre t njpasnjshme file#it, blloqet e reja do t listohen "etm ne direktorine e
prdoruesit qe ka bere bashkangjitjen. Ne ket rast nuk "len ideja e share#imit, sepse
ndryshimet e bera nuk jane t dukshme pr prdoruesit e tjere.
)a dy menyra pr t 'gjidhur ket problemJ
Ne menyren e pare, blloqet nuk listohen ne direktori, por ne nj strukture t "ogel te
dhenash qe shoqeron file#in. )jo menyre prdoret ne +N6R (ku struktura e "ogel e te
dhena"e sht i#node).
Ne menyren e dyt, ;#ja lidhet me nj nga file#t e *#se duke krijuar nj file t ri ne
sistem, t tipit -6N), dhe e fut ket file ne direktorine e ;#se. /ile i ri prmban path name
t filet me t $ilin ai sht linkuar. )ur ;#ja le%on nga linked file, 1: kupton qe file qe po
le%ohet sht i tipit -6N), me pas kerkon emrin e file#it dhe e le%on at file. )jo metode
quhet symbolic linking.

Fig 6.18 /ile sistemi i kombinuar me nj shared file.

Bdo njra nga keto metoda ka t metat e "eta. Ne metoden e pare, ne momentin qe ;#ja
lidhet me shared file#in, i#node regjistron si pronar t file#it *#n. )rijimi i nj linku nuk e
ndryshon pronesine(fig D.&G), por rrit numrin e linke"e ne i#node#t, keshtu 1: e di sa
entry ne direktori pointojne ne file.
Fig. 6.19 (a) 1ituata para linkimit. (b) pasi krijohet linkimi ($) pas 'h"endosjes se file#it
nga pronari origjinal.
N qoft se *#ja kerkon t fshije file#in athere lind nj problem. N qoft se ai e fshin
file#in dhe fshin i#nodet, ;#ja do t kete nj entry ne direktori qe do t pointoje ne nj i#
node t pa"lefshem. N qoft se i#node rishenohet tek nj file tjetr i ;#s, linku do t
pointoje ne nj file t gabuar. 1istemi mund ta kuptoje nga numri i i Knode#it n qoft se
file sht akoma ne prdorim, por nuk sht e mundur t gjenden t gjithe entry#it e
direktorise pr file#in, me qellimin pr ti fshire ato.
!ointerat e direkori"e nuk mund t ruhen ne i#node sepse aty mund t ket nj numer t
limituar direktorish.
"etmja gje pr t bere sht fshirja e entry#t t direktorise se *#se, por e le i#node t
paprekur, t setuar me &, si tregohet ne fig D.&G($). Ne tani kemi nj situat ku ;#ja esht
i "etmi qe ka nj dire$tory entry ne *. N qoft se sistemi bn numerime, athere *#ja do
t "a'hdoje t jet strehe pr file#in, derisa ; t "endosi ta fshije at, "etm n qoft se ne
nj ast t $aktuar numri shkon ne 8 dhe file fshihet.
(e symboli$ links, ky problem nuk lind sepse "etm prdoruesi e ka pointerin ne i#node.
!rdoruesit qe kane linkuar ne file, "etm kane path name#in, jo pointerat tek i#node. )ur
pronari e fshin file#in, ai shkatrrohet. !rpjekjet pr t prdorur ket file neprmjet nj
symboli$ link do t deshtojne kur sistemi nuk do t jet ne gjendje t lokali'oje file#in.
/shirja e nj symboli$ link nuk ndikon fare tek file.
!roblemi me symboli$ links sht se ata kerkojne nj e%tra titull. /ile prmban path name
qe duhet t le%ohet, me pas ky path anali'ohet dhe ndiqet do komponent i tij ne menyre
t njpasnjshme, derisa t arrihet tek i#node. N gjtha keto "eprime mund t kerkojne nj
numer t madh aksesimesh. !r me tepr pr do symboli$ link, ne"ojitet nj e%tra i#
node, si sht ne rastin e nj e%tra blloku ku ruhet path#i, ku edhe pse emri i pathit sht
i shkurtr ai duhet te ruhet ne nj i#node pr nj optimi'im me t mire. 1ymboli$ links
kane a"anta'hin e t lidhurit (link) t file#"e kudo ne bot, "etm duke siguruar adresen e
network#ut t kompjuterit ku ndodhet file si dhe path#in e tij ne ket kompjuter.
1ymboli$ links ose linke t nj tipi tjetr kane edhe nj problem tjetr. )ur lejohet nj
link, filet mund t kene dy ose me shume path#e. !rogramet, qe fillojne ne nj direktori t
$aktuar dhe gjejne t gjithe filet ne at direktori dhe nendirektorit e saj, lokali'ojne nj
linked file shume here. !r shembull, nj program qe hedh t gjitha file#et ne nj direktori
dhe nendirektorit e tij ne nj disk, themi se ai mund t beje shume kopje t linked file#
"e. !r me tepr, n qoft se disku le%ohet ne nj makine tjetr, pa programin e kopjimit,
linked file do t kopjohet dy here ne disk, ne "end qe t linkohet.
6. 3. 5 MENAXHIMI I HAPESIRES NE DISK ( Disk Space Management)
/ile#t 'akonisht ruhen ne disk, keshtu mena%himi i hapesires ne disk sht nj problem
shqetsues pr di'enjatoret e sistemit. (und t prdoren dy strategji ne ruajtjen e nj file
prej n#byteJ alokohen n#byte t njpasnjshme ne disk, ose file ndahet ne nj numer (jo e
domosdoshme) blloqesh t njpasnjshme. 6 njjti problem paraqitet ne mena%himin e
sisteme"e t memories ndermjet segmentimit t pastr dhe faqosjes.
1i kemi pare, ruajtja e nj file ne nj sekuen$e t njpasnjshme byte#sh, ndeshet me
problemin e 'madhimit t file#it, dhe pr pasoje file duhet t "endoset ne disk. 6 njjti
problem haset me segmentimin ne memorie, pr"e rastit t 'h"endosjes se nj segmenti
ne memorie, qe sht nj opera$ion relati"isht i shpejt krahasuar me 'h"endosjen e nj
file nga nj po'i$ion i diskut ne nj tjetr. !r ket arsye, gati t gjithe file systemet i
$opetojne filet e tyre ne ne blloqe me madhesi fikse qe nuk duhen t jene t pr brinjt (t
afert).
Madhesia e Bllokut ( Block size)
)ur u "endos qe ruajtja e file"e t behej ne blloqe me madhesi fikse, lindi pyetja se sa i
madh duhet t ishte blloku. =uke ditur menyren e organi'imit t diskut, kandidae me t
mire pr njsi alokimi do t ishinJ sektoret, tra$k#u, $ilindri (por t gjitha keto jane t
"arura nga pajisja, gje qe prbn nj minus) ne sistemin me faqe, faqja do t ishte
'gjidhja me e mire.
!asja e nj njsie alokimi t madhe, si sht pr shembull $ilindri, do t thot qe nj file
edhe &byte t jet, do t 'eje t gjithe $ilindrin. 1tudimet kane treguar qe madhesia
mesatare ne +N6R sht &);, keshtu alokimi i nj blloku 9H ); pr do file do t
shkaktonte humbjen e 9&/9H ose GCQ t hapesires totale ne disk.
Nga ana tjetr, prdorimi i nj njsie alokimi t "ogel do t beje qe do file t prbehet
nga shume blloqe. -e%imi i tyre do t kerkonte kohe dhe "onesa rrotullimi, keshtu qe
le%imi i nj file t prbere nga disa blloqe do t ishte i ngadalt.
1i shembull po marrim nj disk me &9&.8CH byte pr tra$k, me nj kohe rrotullimi L.99
mse$, dhe nj kohe mesatare kerkimi &8mse$. )eshtu koha ne mse$ pr t le%uar nj file
do t ishte shuma e kohes se kerkimit, me "one se ne rrotullimit, me kohet e transferimit.
10+4.165+(k/131072) 8.33
5rafiku solid ne fig. D.H8, shpreh shpejtsine e te dhena"e pr nj disk t tille, ne "aresi t
madhesise se bllokut. !r t llogaritur efien$en e hapesires, duhet bere pr$aktimi i
mesatares se madhesise se file#it. !r thjeshtsi, le t pranojme si nj "lere mesatare t
filet H);.
=y grafiqet mund t shpjegohen si me posht. )oha e aksesimit t nj blloku dominohet
nga koha e kerkimit dhe nga "onesa e rrotullimit, keshtu koha pr aksesimin e nj blloku
do t jet &M mse$, sa me shume te dhena trhiqen, me mire sht. 1hpejtsia e
transferimit t te dhena"e rritet me rritjen e bllokut. (e blloqe t "ogla, fuqi t H#it, nuk
humbet hapesire ne blloqe. (egjithat, me file H); dhe blloqe M); ka humbje hapesire
ne bllok. Ne fakt, pak file jane shumefisha t madhesise se bllokut, keshtu gjithmone
humbet pak hapesire ne bllokun e fundit t nj file.
Fig 6.20. 5rafiku solid (ne t majt) paraqet shpejtsine e data"e t nj disku. 5rafiku me
pika (ne t djatht) jep efien$en e hapesires ne disk. N gjithe filet pranohen H );.
5rafiqet tregojne se prforman$a dhe shfryt'imi i diskut jane ne konflikt. ;lloqet e
"ogla jane t mire pr shfryt'imin e mire t hapesires ne disk, por t keqija pr
performan$en. !randaj ne"ojitet nj kompromis mbi madhesine e blloqe"e. !r keto te
dhena, blloqe M); do t ishin nj 'gjidhje e mire, por shumi$a e 1: e kane bere ket
'gjedhje para shume kohesh kur parametrat e kompjuterit ishin ndryshe. !r +N6R, me t
prdorurat jane blloqet &);. !r (1/=:1 prdoren blloqe me madhesi fuqi t H#it, nga
7&Hbyte K 9H);, por kjo madhesi pr$aktohet dhe nga madhesia e diskut (numri
maksimal i blloqe"e ne nj parti$ion t diskut sht H
&D
, qe bn t kemi blloqe t medha
ne disqe t medha).
+ be nj eksperiment nga >oges, pr t pare sa ndryshonte 3indows NN nga +NNR ne
prdorimin e file#"e. ,i "uri re se prdorimi i file#"e ne NN ishte me kompleks dhe
shkruajtiJ
3ur ne shkruajme ,isa karaktere ne nj notepa, te&t e,itor- ruajtja e tyre ,o t
gjeneronte 2H thirrje sistem- ,uke prfshire ,he 3 prpjekje t ,eshtuara hapje- 1 file
o#er"rite( t mbishkruar) ,he ! sekuenca hapje ,he mbyllje shtese.
,i "e'hgoi, file me madhesi mesatare (nga pesha e perdorimit), t le%uara si file & );,
file t shkruara si H.9); dhe file t le%uara dhe t shkruara si M.H );. =uke pasur
parasysh qe instituti *ornell kishte kompjutera shken$ore te nje shkalle me te larte se te
tjeter dhe diferen$en ne teknikat e matjes, re'ultatet konsistojne ne nje madhesi mesatare
te file#t rreth H );.
Analizimi i blloqeve t lira (Keeping Track of Free Blocks)
Nj eshtje tjetr e rendesishme pas eshtjes se madhesise se bllokut, sht si t
anali'ohet hapesira e nj blloku. !r ket prdoren H metoda, t treguara ne fig. D.H&.
&. para konsiston ne prdorimin e nj linked list t blloqe"e ne disk, ku do bllok
mban sa me shume numra blloqesh t jet e mundur. Bdo bllok ne list do t
prmbaje nj numer prej H77 blloqesh, n qoft se blloku sht & ); dhe ka
numer blloku 9H#bit (nj ndarje ne"ojitet pr pointerin ne bllokun tjetr).
Nj disk &D5; ka ne"oje pr nj list t lire me ma% &D,CGM blloqe, pr t mbajtur H
HM
numra blloqesh ne disk. !r t mbajtur listn e lire prdoren blloqe boshe.


Fig. 6.21 (a) ruajtja e nj free list ne nj linked list (b) Nj bitmap

H. Neknika tjetr e mena%himit t hapesires sht bitmap. Nj disk me n blloqe
kerkon nj bitmap me n bite. ;lloqet e lira paraqiten me & ne hartn e bite"e,
blloqet e alokuara me 8 (ose e anasjellta). Nj disk &D#5; ka H
HM
blloqe prej & );,
dhe prandaj duhen H
HM
bite pr hartn (map), qe kerkon H8ML blloqe. Nuk sht pr
tu uditur fakti, qe bitmap kerkon me pak hapesire, prderisa kjo metode prdor &
bit pr bllok, ndersa ne metoden linked list ne"ojiteshin 9H#bit. >etm kur disku
sht pothuajse bosh (pr shembull ka shume pak blloqe t lira) athere do t jet
metoda linked list ajo qe do t kerkoje me pak blloqe se metoda bitmap. Nga ana
tjetr, n qoft se ka blloqe t lira, disa prej tyre mund t merren bor%h pr t
mbajtur free listn pa pasur humbje ne kapa$ietin e diskut.
)ur prdoret metoda me free list, sht e ne"ojshme t ruhen ne memorie "etm nj bllok
pointerash. )ur krijohet nj file, blloqet qe duhen pr ta ruajtur merren nga blloqet e
pointera"e. )ur file ek'ekutohet, le%ohet nj bllok i ri pointerash nga disku. Ne menyre t
ngjashme, kur fshihet nj file, blloqet e tij mbeten t lira dhe i shtohen blloqe"e t
pointera"e ne memorien kryesore. )ur ky bllok mbushet, ai shkruhet ne disk.

Ne situata t tilla, disk 6/: jane t pa"lefshme. (arrim ne konsiderate situatn e fig.
D.HH(a), ku blloku i pointera"e ne memorien kryesore ka "end "etm pr dy entry t tjera.
N qoft se nj file prej 9 blloqesh lirohet, ndodh nj o"erflow ne bllokun e pointerit dhe
duhet t shkruhet ne disk, gje qe on ne situatn e figures D.HH(b). N qoft se file prej 9
blloqesh shkruhet, i gjithe blloku duhet t le%ohet prseri, duke na kthyer tek fig.D.HH(a).
N qoft se file prej 9 blloqesh qe u shkruajt sht nj file temporal, kur ai lirohet, nj
tjetr shkrim ne disk ne"ojitet, pr t shkruar komplet bllokun e pointera"e mbrapsht ne
disk. 1hkurt, kur blloku i pointera"e sht pothuajse bosh, shkrimi i nj serie file#sh
temporale me jetgjatsi t shkurtr mund t shkaktoje shume disk 6/:.
Fig 6.22. (a) Nj bllok pointerash pothuajse plot pr t liruar blloqet ne memorien
kryesore dhe tre blloqe t pointerit ne disk. (b) .e'ultati i lirimit t nj file me tre blloqe.
($) Nj strategji alternati"e pr t trajtuar tre blloqet e lira, entry#it e "ije'uara paraqesin
pointerat ne blloqet e liruara.
Nj menyre pr t e"ituar shumi$en e disk 6/:, sht ndarja e t gjithe bllokut t
pointera"e. <e do t thot se kur blloqet lirohen, nuk kalohet me nga fig. D.HH(a) ne
D.HH(b), por kalohet nga D.HH(a) ne D.HH($), pr t bere ket lidhje. Ne ket menyre,
sisteme mund t trajtoje serine e file"e tmporale pa ne"ojen e disk 6/:. N qoft se
blloku ne memorie mbushet, ai shkruhet ne disk dhe blloku gyjsem i mbushur le%ohet.
6deja, ketu sht qe shumi$a e blloqe"e t pointera"e ne disk, t mbahen t mbushura(pr
t minimi'uar prdorimin e diskut) dhe mbajtja e atyre gjysem t mbushur ne memorie,
keshtu ai mund trajtoje si krijimin e file#"e dhe fshirjen e tyre pa disk 6/: ne freelistn.
(e nj bitmap, sht e mundur t mbahet "etm nj bllok ne memorie, qe shkon ne disk
"etm kur mbushet ose boshatiset. Nj prfitim i kesaj metode shtJ berja e t gjithe
alokimit nga nj bllok i "etm i bitmap#it, blloqet ne disk do t mbyllen se bashku, duke
minimi'uar punen e diskut. (eqenese bitmap sht nj strukture te dhenash me madhesi
fikse, ne rastin kur kerneli sht i faqosur, bitmapi mund t "endoset ne memorien
"irtuale dhe 'e faqe prej saj, t faqosura sipas ne"ojes.
Kuotat e Diskut ( disc quotas)
!r t ndaluar njere'it t WkeqtrajtojneO hapesiren e diskut, 1: multiuser 'akonisht
sigurojne nj mekani'em pr t mbrojtur hapesiren e diskut (kuotat e diskut). 6deja ne
ket rast sht qe sistemi administrator tOi lejoje pr prdorim do useri pjese filesh dhe
blloqesh, duke u siguruar ne ket menyre qe do prdorues mos t kape$eje kuotat e tij.
Nj mekani'em i tille prshkruhet me posht.
)ur nj user hap nj file, atributet dhe adresat ne disk alokohen dhe "endosen ne nj
tabele t file#it t hapur ne memorien kryesore. Ndermjet atribute"e (karakteristika"e),
sht nj entry qe tregon se kush sht pronari. @madhimi i madhesise se do file, i
ngarkohet kuota"e t diskut.
Nj tabele e dyt paraqet t gjitha kuotat pr do prdorues me nj file t hapur, edhe kur
file mund t jet hapur nga dikush tjetr. Nabela tregohet ne fig. D.H9, kur t githe filet
jane t mbyllur, t dhenat e filet shkruhen ne file#in e kuota"e.
Fig. 6.23. )uotat anali'ohen ne nj ba'e pr user#at ne nj tabele kuotash.
)ur behet nj entry e re ne tabelen e file#"e t hapur, ne t dhenat e kuota"e t pronarit
futet nj pointer pr t lehtsuar gjetjen e limete"e t "eant.
1a here qe nj file#i i shtohet nj bllok, numri total i blloqe"e qe i jane ngarkuar pronarit
inkrementohet, dhe i behet nj kontroll kunder limit"e hardware#ik ose software#ik.
-imitet soft mund t kapr$ehen, por ato hard, joi !rpjekjet pr tOiu bashkangjitur nj
file kur sht arritur limiti hard sjell gjenerimin e nj errori )ontrolle analoge, gjithashtu
ek'istojne edhe pr numrin e file#"e.
)ur nj user prpiqet t hyje, sistemi kontrollon filen e kuota"e, pr t pare n qoft se
useri e ka kaluar limitin soft t "endosur pr numrin e file"e ose pr numrinr e blloqe"e.
N qoft se ky limit sht shkelur, shfaqet nj paralajmerim, dhe numri i paralajmerime"e
t mbetura '"ogelohet me &. N qoft se numri i paralajmerime"e shkon ne 8, do t thot
qe prdoruesi e ka injoruar parlajmerimin disa here, dhe nuk sht lejuar t hyje. -ejimi
pr t hyre serish, do t diskutohet nga sistemi administrator.
)jo metode ka karakteristikn qe usera#t mund ta kalojne limitin soft, gjat nj sesioni.
)jo sOmund t ndodhi me limitet hard.
6.3.6 Besueshmeria e File system
1hkatrrimi i nj file system sht ndonjhere, nj shkatrim me i madh se shkatrrimi i
nj kompjuteri. =o t ishte e mer'itshme, n qoft se nj kompjuter shkatrrohet nga
'jarri, nga nj shkendije elektrike, ose nga disa kafe t derdhura mbi tastjere, dhe nj gje
e tille do t kushtont disa lek, por t gjitha keto mund t 'e"endesohen me lehtsi. !* jo
t shtrenjta mund dhe t 'e"endesohen duke shkuar tek nj tregetar.
N qoft se nj file i nj kompjuteri humbet ne menyre t parikthyeshme, prshkak t
nj defekti hardware#ik ose software#ik, rikthimi i t gjithe informa$ionit ne gjendjen e
meparshme do t ishte shume e "eshtire, do t kerkonte me shume kohe dhe ndonjhere e
pamundur. !r disa njere' humbja e disa programe"e, dokumente"e, databasa#"e, plane"e
t marketingut, etj do t ishte me pasoja katastrofike. /ile system#i nuk mund t siguroje
mbrojtjen fi'ike t sistemit nga shkatrrimi, por mund t siguroje mbrojtjen e sistemit. Ne
ket pjese do t anali'ohen disa nga menyrat pr mbajtjen e sigurt t file system#it.
/loppy disqet jane 'akonisht prfekte pr ket pune, por kjo "etm kur dalin nga fabrika,
sepse shpesh ato prodhojne blloqe t keqia, gjat prdorimit. dhe 2==, 'akonisht kane
blloqe t keqia duke filluar qe nga startimi. =o t ishte shume e shtrenjt n qoft se ato
do t prodhoheshin pa asnj defekt. 1i pame ne kapitullin 7, blloqet e keqija mund t
trajtohen nga nj kontroller, i $ili i 'e"endeson sektoret e keqinj me pjese t re'er"uara,
pikerisht pr ket pune. !r"e kesaj teknike, ka dhe menyra t tjera t besueshme qe do
t trajtohen me posht.
Backup-et
1humi$a e njere'"e mendojne se berja e ba$kup#e"e sht dika e pa"lefshme, "etm kur
ne menyre t papritur disku i tyre W"desO. )ompanit ia dine "leren te dhena"e t tyre dhe
pr ket i bejne ba$kup atyre do dit, 'akonisht ne nj tape. Nape#t moderne sot "ariojne
nga disa dhjetra 5; deri ne qindra 5;, dhe mimi i tyre pr$aktohet P/5;. !or berja e
ba$kup#e"e nuk sht aq e padobishme sa duket.
;a$kup#et prdoren pr t trajtuar nj nga problemet e meposhtmeJ
.iprtritja nga nj shkatrrim
.iprtritja nga nj gabim njere'or.
para mbulon rastet kur kompjuteri ndodh t shkatrrohet nga nj 'jarr, shkendije
elektrike, ose nj katastrofe natyrore. Ne praktike, keto gjera nuk ndodhin shume shpesh,
prandaj shume njere' nuk i kushtojne rendesi ba$kup#it. N tille njere', nuk kane as
sigurimin nga 'jarri ne shtpit e tyre, pr t njjtn arsye.

,rsyeja e dyt, sht qe prdoruesit, aksidentalisht, ndodh t fshijne nj file, qe me "one
mund tOi ne"ojitet prseri. )y problem ndodh shume shpesh, prandaj 3indows prdor nj
direktori t "eant t quajtur recycle bin, qe ruan filet e fshira, dhe nga ku prdoruesi
mund tOi marri pr tOi prdorur kur tOi ne"ojiten. ;a$kup#et ne nj tape mund t rikthejne
file qe jane fshire para nj kohe t gjat.
;erja e nj ba$kup#i kerkon shume kohe dhe shume hapesire, prandaj sht e
rendesishme qe ky proes t behet me efien$e dhe ne menyre t le"erdisshme. )eto
probleme ngrejne ket eshtjeJ se pari, a duhet bere ba$kup t gjithe file system#it apo
"etm nj pjese t tijUi
1humi$a e instala$ione"e dhe te programe"e t ek'ekutueshme (ne kod binary) ruhen ne
pjese t limituara t pemes se file system#it. Nuk sht e ne"ojshme ti behet ba$kup file#
"e, qe mund tOi behet instalimi nga *=#.:(#i i prodhimit. 5jithashtu, shumi$a e 1:,
kane direktori pr file temporale, t $ilat prdoren edhe keto pr qellimin e ba$kup#it. Ne
+N6R, t gjithe file#t e "eant (t pajisje"e 6/:), ruhen ne direktorine /,e". Ne ket
direktori ba$kup#i, jo "etm qe nuk sht i ne"ojshem, por do t ishte dhe i rre'ikshem,
sepse ba$kup# programi do t priste pafundesisht qe ky proes t prfundoje.
!rfundimisht, sht e pelqyeshme tOi behet ba$kup "etm direktori"e t "eanta dhe do
gjeje brenda tyre, pr"e komplet file system#it.
1e dyti, sht e kot tOi besh ba$kup file"e qe nuk kane ndryshuar nga ba$kup#i fundit,
kjo na on ne idene e inkrementimit t Wdepo'ita"eO. (e e thjeshta pr keto Wdepo'itaO
sht tOi behet ne menyre periodike nj ba$kup i plot (ja"ore ose mujore), dhe tOi behet
nj ba$kup ditor atyre file#"e qe kane ndryshuar nga ba$kup#i i fundit. ,koma me mire
sht tOi behet ba$kup, "etm atyre file"e, qe kane ndryshuar. )jo skeme minimi'on
kohen e ba$kup#it, por e bn riprtritjen me komplekse.
)jo sepse si fillim behet riprtritje e ba$kup#it t plot, i $ili me pas ndiqet nga
Wdepo'itatO inkrementuese t rradhitura ne kah t kundert. !r nj riprtritje me t
thjesht prdoren metoda me t sofistikuara, ketu prfshihen dhe skemat me Wdepo'itatO
inkrementuese.
1e treti, sasia e madhe e te dhena"e seleksionohet ne grupe, dhe do t ishte e pelqyeshme
t behet me pare kompresimi i te dhena"e, e me pas t shkruhen ne tape. !or, ne shume
algoritma kompresimi, mund t ndodhi qe nj boshllek i "etm ne tape#in e ba$kup#it, ta
beje tape#in t pa le%ueshem. !randaj duhet t mendohet me kujdes ideja e kompresimit
t ba$kup#stream#it.
1e katrti, sht e "eshtire tOi besh nj ba$kup nj file system#i akti". N qoft se file ose
direktori shtohen, fshihen ose modifikohen gjat proesit t ba$kup#it, ba$kup#i
prfundimtar nuk sht i qendrueshem. (eqenese proesi ba$kup sht nj proes qe
kerkon kohe, do t ishte e ne"ojshme, qe sistemi t mbahej jasht prdorimit pr nj nat,
por nj gje e tille sht e papranueshme. !r ket arsye, algoritmat jane ndertuar ne at
menyre, qe t bejne Wnj fotografiOt astit t struktura"e kritike t te dhena"e t file
system#it, dhe me pas t kerkojne ndryshime t metejshme t file#"e dhe direktori"e duke
i kopjuar ato, ne "end qe tOi update#oje ato. Ne ket metode, ne momentin e kopjimit t
gjendjes se astit t sistemit, sistemi sht i ngrire.
1e pesti dhe se fundmi, berja e ba$kup#e"e sjell shume probleme joteknike brenda nj
organi'imi. 1istemi me i mire i sigurimit, mund t behet i pa"lefshem, n qoft se sistemi
administrator i mban t gjithe file#et ba$kup ne 'yren e tij dhe e le at t hapur pr t
'britur ne salle pr t marre disa printime. ,jo, qe mund t bnte nj spiun do t ishte tOi
hidhte t gjithe t dhenat ne nj disk dhe t 'brist posht me delikatese. Ne ket rastJ
(irupafshim sigurimi 5jithashtu nj ba$kup ditor nuk do t funksiononte ne rastin e nj
'jarri qe po djeg kompjuterin, ose qe po djeg disqet ku ai sht ruajtur. !randaj disqet
duhet t mbahen ne "ende ku jane me pak t rre'ikuara, por edhe kjo ka anet e "eta
negati"e. (e posht do t trajtohen "etm eshtje teknologjike, qe kane t bejne me
ba$kup#in e sistemit.
!rdoren dy strategji pr t bere nj ba$kup t nj disku ne nj tapeJ nj backup fizik ose
nj backup logjik. Nj ba$kup fi'ik starton ne adresen 8 t diskut, shkruan t gjithe
blloqet e diskut ne tape#in output sipas rradhes, dhe ndalon kur sht kopjuar blloku i
fundit. Nj program i tille sht i thjesht, gje qe nuk mund t thuhet pr programet e
tjera t prdorshme.
?sht e rendesishme t behen disa komente pr ba$kup#in fi'ik.
Nga nj ane nuk ka "lere tOi besh ba$kup blloqe"e t paprdorura. )eshtu, n qoft se nj
program ba$kup#i ka akses ne struktura te dhenash t "endosura ne blloqe t lira, ai mund
t menjanoje ba$kup#in e blloqe"e t paprdorura. (egjithat, kapr$imi i blloqe"e t
paprdorura kerkon shkrimin e numrit t do blloku para do blloku (ose ekui"alentin),
meqenese nuk sht gjithmone i "ertet fakti qe blloku k ne tape t jet blloku k ne disk.
Nj shqetsim tjetr sht ba$kup#i i blloqe"e t keqia. N qoft se t gjithe blloqet e
keqia riadresohen nga kontolleri i diskut dhe i fshihen 1: (si u prshkrua ne kapitullin
7.M.M), ba$kup#i fi'ik do t funksiononte shume mire. !or n qoft se ato jane t dukshme
pr 1: dhe mbahen ne Wbishtin e blloqe"e t keqiaO ose ne bitmap#e, sht shume e
rendesishme, qe programi i ba$kup#it t marri te drejtn pr t hyre ne ket informa$ion
dhe t shmangi ba$kup#in e tyre, pr t parandaluar erroret e pafundme t le%imit t
diskut gjat ketij proesi.
,"anta'het kryesore t ba$kup#it fi'ik janeJ thjeshtsia dhe shpejtsia e madhe (mund t
arrije shpejtsine e diskut).
=isa"anta'het kryesore t ba$kup#it fi'ik janeJ paaftsia pr t kapr$yer direktorit e
'gjedhura, pr t bere inkrementimin e Wdepo'ita"eO dhe ruajtja e file#"e indi"iduale sipas
kerkeses.
Nj ba$kup logjik fillon ne nj ose me shume direktori spe$ifike dhe grumbullon ne
menyre rekursi"e t gjithe file#t dhe direktorit e gjetura qe kane pesuar ndryshime nga
nj database i meparshem ( pr shembull, nj ba$kup pr nj Wdepo'itO inkrementuese,
ose nj sistem instalimi pr nj ba$kup t plot). !r ket ne nj ba$kup logjik, tape i
Wdepo'ita"eO ka nj nj seri direktorish dhe filesh t identifikuara me kujdes, qe e bejne
me t thjesht riprtritjen e nj file t "etm ose direktorie, sipas kerkeses.
(eqenese ba$kup#i logjik sht forma me e prdorur, le t anali'ojme ne detaje nj
algoritem t 'akonshem duke prdorur shembullin e fig D.HM. 1humi$a e sisteme"e +N6R
e prdorin ket algoritem. Ne figure shikohet nj peme filesh me direktori (katroret) dhe
file (rrathet). :bjektet e hije'uara jane modifikuar qe nga ba'a e t dhena"e dhe prandaj
duhet t behet ba$kup#i. :bjektet e hije'uara nuk kane ne"oje tOi behet ba$kup#i.
Fig. 6.24. Nj file system qe do tOi behet ba$kup#i. )atroret jane direktori kurse rrathet
jane file. :bjektet e hije'uara jane te dhenat e modifikuar nga ba$kup#i i fundit. Bdo
direktori dhe file etiketohet me numrin e i#node#it prkats.
)y algoritem, i bn ba$kup t gjithe direktori"e (madje dhe atyre t modifikuara) qe kane
t njjtin rrugekalim me nj file ose direktori t modifikuar pr dy arsyeJ
1e pari, pr t bere t mundur riprtritjen e file#"e dhe direktori"e ne nj file system t ri
ne nj kompjuter tjetr. Ne ket menyre ba$kup#i mund t prdoret pr t transportuar nj
file system t tre midis kompjutera"e.
,rsyeja e dyt e berjes ba$kup direktori"e t pamodifikuara sht, pr reali'imin e nj
riprtritje inkrementuese t nj file t "etm ('akonisht sht riprtritje nga nj gabim
njere'or). 1upo'ojme se nj ba$kup i plot sht bere mbasditen e se djeles dhe nj
ba$kup tjetr mbasditn e se henes. N martn, direktoria $usr$jhs$pmj$nr3 fshihet, me t
gjithe direktorit dhe file#t qe mbulonte. N merkuren ne mengjes, prdoruesi do t doje
t riprtrije file#in $usr$jhs$pro$nr3$plans$summary. !or nuk sht e mundur qe tOi behet
riprtritje "etm file#it summary, sepse nuk ka "end ku ai t "endoset.
=uhet, qe ne fillim, tOi behet riprtritje direktori"e numer 3 dhe plans. !r t marre
informa$ion mbi pronarin e tyre, kohen, etj, keto direktori duhet t jene ne tape#in e
ba$kup#it, edhe pse ato mund t mos kene ndryshuar nga ba$kup#i i fundit i bere.
,lgoritmi i ba$kup#it mban nj indeks t bitmap#it, me disa bite pr nj i#node. )y
algoritem operon ne katr fa'a.
/a'a & fillon ne direktorine e startimit (pr shembull ne root) dhe ek'aminon t gjithe
hyrjet ne t. !r do file t modifikuar, i#node prkats sht i shkruar ne bitmap. Bdo
direktorie i "endoset nj i#node ne bitmap, sht apo jo modifikuar ai dhe me pas behet
inspektimi ne menyre rekursi"e. Ne fund t fa'es se pare, t githe filet e direktorit e
modifikuara kane t shkruar ne bitmap#in e tyre i#node#in prkats, si tregohet ne fig
D.H7(a), (pjesa e hije'uar).
Ne fa'en H, po ne menyre rekursi"e anali'ohet pema pr t dalluar file#et e direktorit e
pamodifikuara, t $ila"e u hiqen i#node#t nga bitmap#i. )jo fa'e e le direktorine si
tregohet ne fig. D.H7(b). >ihet re se direktorit &8, &&, &H, HC, HG, 98, jane tani t
pashenuara, sepse ato nuk prmbajne ndonj gje qe t jet modifikuar. ,tyre nuk do tOi
behet ba$kup. )urse direkori"e 7, D do tOi behet ba$kup edhe pse ato "et nuk jane
modifikuar, kjo sepse ato do t duhen pr t riprtrire ndryshimet ne nj makine tjetr.
!randaj & dhe H jane t kombinuara ne nj drejtim t "etm t pemes.
Fig. 6.25. ;itmap#et e prdorura nga algoritmi i ba$kup#it logjik.
Ne ket pike, njihen direktorit dhe file#et, t $ila"e do tOi behet ba$kup. Aane ato t
shenuara ne fig. D.H7(b).
/a'a 9 konsiston ne skanimin e t gjithe i#node#"e sipas rradhes numerike dhe ne berjen
ba$kup t t gjithe direktori"e t shenuara pr ba$kup. )eto tregohen ne fig D.H7($). Bdo
direktorie i "endoset nj prefiks nga karakteristikat e direktorise (pronari, koha ,etj), ne
ket menyre ato mund t riprtrihen.
!rfundimisht, ne fa'en M, file#e"e t treguar ne fig.D.H7(d), i behet gjithashtu ba$kup.
!rseri atyre i "endoset nj prefiks nga karakteristikat e tyre. )jo prfundon komplet
ba$kup#in.
dhe pse riprtritja e file system#it nga tape#et e ba$kup#it behet ne menyre t
drejteprdrejt, ka disa eshtje problematike. (eqenese lista e blloqe"e t lira nuk sht
nj file, asaj nuk i behet ba$kup dhe keshtu ajo duhet t rindertohet pas fshirjes, pasi
behet riprtritja. Nj gje e tille sht e mundur t behet mqs bashkesia e blloqe"e t lira
sht komplementi i bashkesise se file#"e qe ruhen ne t gjithe file#et e kombinuara.
Nj tjetr eshtje sht linkimi (lidhja). N qoft se nj file sht i lidhur me dy ose me
shume direktori, sht e rendesishme qe file t riprtrihet "etm nj here, dhe po keshtu
t bejne dhe direktorit e lidhura me t.
Nj tjetr eshtje sht fakti qe shumi$a e file#"e ne +N6R mund t prmbajne "rima.
?sht e lejueshme, qe t hapet nj file, t shkruhen disa bit ne t, dhe t largohesh nj fare
distan$e nga offseti i file#it dhe t shkruhen disa bite t tjera. ;lloqet ndermjet nuk jane
pjese t file#it dhe nuk i duhet bere ba$kup, e akoma me tepr riprtritje. /ile#t e *ore#s
kane nj "rime t madhe mes segmentit t data"e dhe sta$k#ut. N qoft se kjo nuk
trajtohet ashtu si duhet, do file i *ore#s i ruajtur, do ta mbushi ket hapesire me 'ero
me t njjtn madhesi t adreses "irtuale t hapesires (pr shembull H
9H
dhe akoma me
keq H
DM
byte).
/ile spe$iale t quajtura pipe, nuk i duhet bere ba$kup, pa"aresisht se ne $ilen direktori
ndodhen (ato nuk duhet t kufi'ohen ne direktorine $,e# ).
Qendrueshmeria e File System-it
;esueshmeria e file system#it sht e lidhur ngusht dhe me qendrueshmerine e file
system#it. 1hume file system#e le%ojne blloqe, i modifikojne ato dhe i shkruajne ato me
"one. N qoft se sistemi shkatrrohet prpara se t gjithe file#"e t modifikuara tOi behet
ba$kup, file sistemi futet ne nj gjendje t paqendrueshme. )y problem sht "eanerisht
shume kritik, n qoft se disa nga blloqet qe nuk jane shkruar jane blloqe i#node, blloqe
direktorish, ose blloqe qe prmbajne nj free list.
!r t menjanuar problemin e paqendrueshmerise, shumi$a e kompjutera"e, kane nj
program qe kontrollon qendrueshmerine e file system#it. !r shembull, +N6R ka fsck,
kurse 3indows ka scan,isk. !rogrami mund t ek'ekutohet ne do moment qe boot#ohet
sistemi, "eanerisht pas nj shkatrrimi. !rshkrimi me posht tregon si funksionon fsck.
scan,isk sht dika ndryshe sepse ai operon ne nj file system ndryshe, por kane t
njjtin prin$ip prdorimi dhe riparimi t file system. Bdo kontrollues i file system,
"erifikon do file system (do parti$ion disku) ne menyre t pa"arur nga t tjeret.
(und t behen dy tipe kontrollesh t qendrueshmeriseJ t blloqeve dhe t file-ve.
!r t bere kontrollin e qendrueshmerise se nj blloku, programi nderton dy tabela, do
njra prmban nj numerues pr do bllok, qe ini$iali'ohet me 8.
Numeruesi ne tabelen e pare numeron se sa here, prdoret nj bllok ne nj fileI
numeruesi ne tabelen tjetr rregjstron se sa here sht prdorur nj bllok ne free listn
(ose ne nj bitmap me blloqe t lire).
!rogrami me pas le%on t githe i#node#et. =uke filluar nga nj i#node, mund t ndertohet
nj list t t gjithe numra"e t blloqe"e t prdorura ne nj file t $aktuar. Nderkohe qe
le%ohet nj numer blloku, numeruesi i tij ne tabelen e pare inkrementohet. (e pas
programi anali'on free listn ose bitmap#in, pr t gjetur t gjithe blloqet qe nuk jane ne
prdorim. Bdo pre'en$e e nj blloku ne free list, bn qe numeruesi ne tabelen e dyt t
inkrementohet.
N qoft se file system sht i qendrueshem, do bllok do t ket nj &, ne nj nga tabelat,
si tregohet ne fig. D.HD (a). !as nj shkatrrimit t file system, tabelat do t duken si ne
fig. D.HD(b), ku blloku H nuk sht pre'ent ne asnj nga tabelat. ,i do t raportohet si nj
bllok i humbur (missing block). dhe pse blloqet e humbura nuk shkaktojne ndonj
demtim t madh, ato 'ene shume hapesire, duke '"ogeluar ne ket menyre kapa$itetin e
Fig. 6.26 5jengjet e sistemit. (a) 6 qendrueshem (b) (issing blo$k ($) bllok i duplikuar ne
free list (d) bllok me data i duplikuar.
diskut. @gjidhja pr missing block sht e drejteprdrejtJ kontrolluesi i file system#it,
thjesht i shton ato ne free list.
Nj situat tjetr mund t jet ajo e fig. D.HD($). )u dallohet nj bllok (me numrin M) qe
paraqitt dy here ne free list (duplikimi mund t behet "etm n qoft se free list sht me
t "ertet nj list, me bitmap nj gje e tille sht e pamundur). @gjidhja ne ket rast sht
e thjeshtJ t rindertohet lista.
5jeja me e keqe, qe mund t ndodhi sht qe i njjti bllok te dhenash t shfaqet ne dy ose
me shume file, si ka ndodhur ne figuren D.HD(d), me bllokun 7. N qoft se, ndonj nga
file#et fshihet, blloku 7 do t "endoset ne free list, duke na uar ne nj situata, ku i njjti
bllok sht dhe ne prdorim, por edhe i lire ne t njjtn kohe. >eprimi i duhur qe duhet
t beje kontrolluesi i file system#it, sht t alokoje nj bllok t lire, t kopjoje
prmbajtjen e bllokut 7 ne t, dhe ta fusi kopjen ne nj nga file#et.

Ne ket menyre, prmbajtja e informa$ionit nuk ndryshon, por struktura e file system#it,
sht t paktn e qendrueshme. 5abimi duhet t raportohet me qellim qe prdoruesi t
insepektoje dhe ta korigjoje at. !r"e kontrollimit pr t pare, qe do bllok numerohet
si duhet, kontrolluesi i file system#it, kontrollon gjithashtu dhe sistemin e direktori"e.
,i, gjithashtu prdor nj tabele pr numeratoret, por keto jane numeratore pr file dhe jo
pr blloqe. ,i fillon ne direktorine e root#imit, dhe 'bret ne menyre rekursi"e ne peme,
duke inspektuar do direktori ne file system. !r do file ne do direktori, ajo
inkrementon nj numerues pr numrin e prdorime"e t atij file. )ujtojme, qe prshkak t
linke#"e hard, nj file mund t paraqitet ne dy a me shume direktori. 1ymboli$ links nuk
numerojne dhe as nuk shkaktojne inkrementimin e numeruesit t file#it.
)ur e gjithe kjo prfundon, krijohet nj list, e indeksuar nga i#node#t, qe tregon sa
direktori prmban do file. (e pas behet krahasimi i ketyre numra"e me numrin e
linke"e t ruajtura ne "et i Knodet. )y numerim fillon tek &#ishi, kur krijohet nj file dhe
behet inkrementimi i tyre sa here qe behet nj (hard) link me file#in, ne nj file sistem t
qendrueshem, t dy numerimet do t bien dakort. (egjithat, mund t ndodhin dy
gabimeJ numri i linkut ne i#node mund t jet shume i "ogel ose shume i madh.
N qoft se numri i linkut sht me i madh se numri i hyrje"e ne direktori, athere edhe
pse mund t behet e gjithe fshirja e file#"e ne direktori, numri pas fshirjes do t jet nj
numer jo 'ero, dhe i#node nuk do t fshihet.
)y gabim nuk sht dhe kaq serio', por humbet hapesire ne disk me file qe nuk jane ne
ndonj direktori. (und t rregullohet duke "endosur numrin e linkut dhe t i#node#it ne
"leren e duhur.
5abimi tjetr sht pothuajse katastrofik. N qoft se dy entry ne direktori jane t lidhura
me nj file, nderkohe qe i#node tregon qe ka "etm nj, kur ne fakt nuk sht fshire asnj
entry e direktorise, por numri i i#node shkon ne 8. )ur nj numer i i#node shkon ne 8, file
system e shenon at si jo t prdorshem dhe i liron t gjithe blloqet e tij. )y "eprim mund
t ndikoje ne nj nga direktorit qe do t pointoje tek i#node jo me i prdorshem, blloqet,
e t $ilit mund ti prkasin file#"e t tjere. !rseri 'gjidhja do t ishte marrja "esh mes
numrit t i#node me numrin e entry#"e t direktori"e.
)eto dy operimeJ kontrolli i direktori"e, kontrolli i blloqe"e, jane t integruara pr arsye
efien$e. ;ehen dhe ekime t tjera. !r shembull direktorit kane nj format t
pr$aktuar, me numrin i#node dhe me emra ,1*66. N qoft se, nj numer i#node sht
me i madh se numrat e i#node ne disk, athere thuhet se direktoria sht demtuar.
!r me tepr, do i#node ka nj gjendje, disa prej t $ila"e jane t lejueshme, por t
uditshme, si pr shembull 888C, qe nuk i jep as pronarit as grupit t tij t drejt hyrje,
por lejon t jashtmit t le%ojne, t shkruajne, dhe t ek'ekutojne file. =o t ishte me
le"erdi, qe t paktn t reportoheshin file, qe i japin me shume t drejta t jashtme"e se sa
"et pronarit. =isa direktori, t themi rreth &888 entry, dyshohen t jene t tilla. /ile t
lokali'uara ne direktorit e user#a"e, por qe gjithashtu 'otrohen dhe nga superuser#i i
tyre dhe qe kane bit#in e 1N+6=, jane probleme t sigurimit, sepse file t tille kerkojne
"eprimimin e superuser#it kur ato ek'ekutohen nga ndonj user.
Ne paragrafet e meparshem, u diskutua mbi mbrojtjen e prdoruesit nga shkatrrimi i
sistemit. =isa file system Ke, shqetsohen gjithashtu dhe pr mbrojtjen e userit nga "et
sistemi. )eshtu, n qoft se user#i shtypJ
rm` , o pr t fshire t gjithe file#t a qe mbarojne me- o, por aksidentalisht shtypet

rm` -o kjo komande do t fshije t gjithe file#t ne direktorine prkatse, dhe me
pas do t ankohet qe nuk gjen dot -o. Ne (1/=:1 dhe ne disa sisteme t tjera, kur file#et
fshihen, ajo qe ndodh shtJ nj bit "endoset ne direktorine ose ne i#node#in e file#it t
fshire pr ta shenuar at si nj file t fshire. Nek nj free list, nuk kthehen blloqet e liruara
nga fshirja e file#it, sepse ndodhe qe ato mund t ne"ojiten. N qoft se, prdoruesi e
'bulon shpejt gabimin, sht e mundur t ek'ekutohet nj program ndihmes, qe riprtrin
file#t e fshira.
6.3.7 Performanca e File System

,ksesimi ne disk sht shume me i ngadalt se aksesimi ne memorie. -e%imi i nj fjale
ne memorie mund t 'gjasi &8 nse$. -e%imi nga disku mund t behet me nj shpejtsi
&8(b/se$, qe sht M8 here me i ngadalt se le%imi i fjales 9Hbit, kesaj i shtohen 7#&8
mse$ pr kohen e kerkimit ne disk dhe t pritjes derisa t "ije sektori i duhur posht
kokes le%uese. N qoft se ne"ojitet nj file i "etm, aksesimi ne memorie sht ne rendin
e miliona here"e me t shpejt se aksesimi ne disk. 1i re'ultat i kesaj diferen$e ne kohen e
aksesimit, shume file system jane di'enjuar me nj "aria$ion optimi'imesh, pr t
prmiresuar performan$en. Ne ket pjese do t trajtohen tre prej tyre.
Cashing
(etoda me e 'akonshme e prdorur pr t '"ogeluar kohen e aksesimit t ne disk sht
blloku $a$he, ose buffer $a$he. Ne kontekst, $a$he#ja sht nj bashkesi blloqesh, qe
logjikisht duhet tOi prkasin diskut, por mbahet ne memorie pr arsye performan$e.
,lgoritma t ndryshem prdoren pr mena%himin e $a$he#s, por nj i 'akonshme do t
ishte kontrolli i t gjithe kerkesa"e t le%uara, pr t pare n qoft se blloku i kerkuar
ndodhet ne $a$he.
N qoft se ai sht, kerkesa pr le%im mund t behet pa ne"ojen e aksesimit ne disk. N
qoft se, blloku nuk ndodhet ne $a$he, fillimisht kerkohet ne $a$he, e me pas kopjohet aty
ku sht e ne"ojshme.

:perimi ne $a$he tregohet ne fig. D.HC. (eqenese ka shume blloqe ne $a$he, duhet qe
proesi t prfundoje shpejt n qoft se nj bllok i dhene sht pre'ent. (enyra e
'akonshme sht t ngatrrosh pajisjet me adresat dhe t shikosh re'ultatet ne tabelen
hash. N gjithe blloqet me me t njjtn "lere hash#i "endosen 'in%hir ne nj linked list,
ne menyre qe t mund t ndiqet njpasnjshmeria ne 'in%hir.
Fig. 6.27 1truktura data ne bufferin e $a$he#es.
)ur nj bllok duhet t ruhet ne nj $a$he t mbushur, disa blloqe duhet t largohen prej
saj( dhe t rishkruhen ne disk, n qoft se jane modifikuar qe kur jane marre heren e
fundit). 1ituata sht pak a shume si faqosja (paging), dhe jane t "lefshme t gjithe
algoritmat e diskutuara ne kapitullin 9.
Nj ndryshim interesant mes faqosjes dhe $a$hing, sht se referen$at e $a$hes jane
relati"isht jo t rradhitura, prandaj sht e ne"ojshme qe blloqet t ruhen t gjitha sipas
rradhes se -.+#se, me linked lista.
Ne fig D.HC, ne shikojme qe 'in%hire, qe startojne ne tabelen hash, ka gjithashtu, nj list
dy drejtimeshe qe ek'ekutohet sipas rradhes se ek'ekutimit, me bllokun me shume t
prdorur ne fillim t lists dhe me bllokun me pak t prdorur ne fund t lists.
)ur i referohemi nj blloku, ai 'h"endoset nga po'i$ioni i tij ne list dhe "endoset ne fund
t saj, ne kete menyre ruhet rradha sipas -.+. !or, fatkeqsisht ndodh nj kurth. Nani, qe
kemi situatn me -.+#ne e mundur, shfaqet -.+ jo e deshirueshme. )y problem sht i
lidhur me shkatrrimet e file system#it, qe u diskutua me pare.

N qoft se nj bllok kritik, si sht pr shembull nj bllok i#node, le%ohet ne $a$he dhe
modifikohet, por nuk rishkruhet ne disk, ky proes e fut sistemin ne nj gjendje jo t
qendrueshme. N qoft se blloku i#node, "endoset ne fund t 'in%hirit t -.+#se,
atrehere do t duhet shume kohe t shkoje ne fillim t tij dhe me pas t rishkruhet ne
disk. !r me tepr referimi dy here i t njjtit bllok brenda nj inter"ali t shkurtr sht e
rradhe. )eto eshtje, na ojne ne nj skeme -.+ t modifikuar, duke marre parasysh dy
faktoreJ
, do t duhet blloku prseri shume shpejtU
, sht blloku thelbesor ne qendrueshmerine e sistemitU
!r t dyja pyetjet, blloqet mund t ndahen ne kategori siJ blloqet i#node, blloqet
indirekt, blloqe direktorish, blloqe plot me data dhe blloqe pjeserisht t mbushur me
data.
;lloqet qe nuk ne"ojiten me shkojne ne fillim t lists, keshtu buffer#at e tyre do t
prdoren shume shpejt. ;lloqe qe mund t ne"ojiten prseri, si jane blloqet pjeserisht t
mbushura me data, shkojne ne fund t lists dhe do t rrine aty pr nj kohe t gjat.
!yetja e dyt sht e pa"arur nga e para. N qoft se blloku sht i rendesishem ne
qendueshmerine e sistemit (do gje pr"e blloqe"e t data"e), dhe ai sht modifikuar,
ai duhet t shkruhet menjhere ne disk. =uke i shkruar blloqet kritike shpejt ne disk, ne
'"ogelojme propabilitetin qe t ndodhe nj prplasje ne sistem.
?sht e qart qe blloqet me data mbahen ne $a$he pr nj kohe t gjat derisa t shkruhen
ne disk.
(endoni dike, qe sht duke shkruar nj liber ne nj kompjuter. dhe pse shkruesi ne
menyre periodike jep komanden pr te ruajtur materialin ne disk, por ndodh qe i gjithe
materiali t jet ne $a$he dhe ne disk mos te kte asnje gje. N qoft se ndodh nje
prplasje e sistemit, struktura e file system#it nuk nderpritet, por e gjithe puna do t
humbasi.
)jo situat nuk para ndodh shume shpesh. 1istemet kane dy menyra pr t 'gjidhur ket
problemJ
&. sipas +N6RJ ek'iston nj thirrje system, sync, qe i detyron t gjithe blloqet e
modifikuara t shkruhen ne menyre t menjhershme ne disk. )ur sistemi
startohet, nj program up,ate, startohet ne sfond pr tu futur ne nj loop t
pafundme, dhe qendron mes thirrje"e sistem pr 98 se$. 1i prfundim, jo me
shume se 98 se$ pune humbasin, prshkak t ndonj prplasje.
H. 1ipas (1/=:1#itJ do bllok i modifikuar duhet t shkruhet ne disk, aq shpejt sa
sht shkruar. *a$he#t ne t $ilat, blloqet e modifikuara, shkruhen ne disk ne
menyre t menjhershme quhen write-through cache. ,to kerkojne me shume
disk 6/: se $a$he#t jo write through. =iferen$a mes ketyre dy $a$he#"e mund t
shikohet kur nj program shkruan ne nj bllok &);, nj karakter pr nj ast
kohe. +N6R do tOi mbledhi t gjitha karakteret ne $a$he dhe do ta shkruaje
bllokun ne disk do 98 se$ ose kurdo qe blloku t 'h"endoset nga $a$he#ja. (1#
=:1 do t beje nj aksesim ne disk pr do karakter t shkruar. 1humi$a e
programe"e bejne nj bufferim t brendshem, keshtu qe normalisht ata nuk
shkruajne "etm nj karakter, por nj rresht ose nj njsi t madhe t thirrjes
system write.
1i pasoje e kesaj diferen$e ne strategjine e $a$hing, "etm heqja e nj floppy disk nga
sistemi +N6R pa bere nj sync do t shkaktoje humbje te dhenash, dhe nj file system t
nderprere gjithashtu. (e (1/=:1#in nuk re'ultojne probleme t tilla. )eto strategji t
ndryshme, u 'gjodhen sepse +N6R#i u 'h"illua ne nj ambjent ku t gjithe disqet ishin
2== dhe jo remo"able disk, kurse (1/=:1#i startoi ne nj floppy disk. Nderkohe qe
2==#et u bne model, parimet e +N6R me efien$e me t madhe, u bne gjithashtu
model dhe u prdoren dhe ne 3indows pr 2==#t.
Leximi i Parakoheshem i Blloqeve (Block Read Ahead)
Nj teknike e dyt e prdorur pr t prmiresuar performan$en e file system#it sht t
marresh &8 blloqe ne $a$he, me pare se ato t ne"ojiten pr t rritur ne ket menyre
shpejtsine e gjetjes (hit rate). Nj rast i "eant sht le%imi i file#"e ne menyre
sekuen$iale. )ur nj file sistem i kerkohet t prodhoje nj bllok k ne nj file, ai e bn ket
gje, por kur mbaron bn nj kontroll t shpejt $a$he pr t pare n qoft se blloku kC1
sht aty. N qoft se jo, ai skedulon nj komande read pr bllokun kC1 , me shpresen qe
kur ai t ne"ojitet t ket mberritur ne $a$he.
)jo strategji sht e "lefshme "etm pr file qe le%ohen ne menyre sekuen$iale, n qoft
se nj file aksesohet ne menyre t rastesishme, kjo strategji nuk funksionon me. !r t
pare n qoft se kjo strategji sht e "lefshme, file sistem#i anali'on aksesimin pr do
model file#esh t hapur. !r shembull, nj bit i shoqeruar me do file, anali'on n qoft se
nj file sht aksesuar ne menyre sekuen$iale, apo ne menyre t rastesishme. /illimisht,
file#it i jepet e drejta pr t dyshuar dhe ta "endosi bitin ne menyren e aksesimit
sekuen$ial. !or kur behet kontrolli, biti fshihet. N qoft se le%imi sekuen$ial fillon t
behet prseri, bit setohet prseri. )eshtu file sistem merr nj "endim t arsyeshem, n
qoft se ai duhet t "a'hdoje t le%oje ne menyre t parakoheshme apo jo. N qoft se
"endos gabim, nuk ndodh gje me sistemin "etm sa humbet pak gjeresi bre'i i diskut.
Reduktimi i Levizjes se Krahut t Diskut.

*a$hing dhe le%imi i parakohshem, nuk jane menyrat e "etme t rritjes se performan$s
se file system#it. Nj teknike tjetr e rendesishme sht reduktimi i le"i'jes se krahut t
diskut, duke "endosur blloqe, qe mund t aksesohen pothuajse ne menyre sekuen$iale,
afer njri#tjetrit, e preferueshme ne t njjtin $ilinder. )ur nj file output shkruhet, file
system#i duhet t alokoje blloqet do ast kohe, sa here qe sht e ne"ojshme. N qoft se
blloqet e lira jane t rregjistruara ne nj bitmap, dhe bitmapi sht i ruajtur ne memorien
kryesore, do t ishte shume e thjesht, pr t 'gjedhur nj bllok t lire sa me afer bllokut
t meparshem. (e nj free list, nj pjese e se $iles ndodhet ne disk, do t ishte shume e
"eshtire pr t alokuar blloqet afer njri#tjetrit.
(egjithat dhe me nj free list mund t behen disa klasa blloqesh, por ne grupe blloqesh
t njpasnjshme. N qoft se sektoret konsistojne ne 7&H byte, sistemi mund t prdori
blloqe &); (H sektore), por t alokoje t dhenat e ruajtura ne disk ne njsi prej H
blloqesh(M sektore). )jo nuk sht njsoj si t kemi nj bllok ne disk prej H );, nderkohe
$a$he#ja prdor akoma blloqe &); dhe transferimet ne disk behen me blloqe & );.
-e%imi i nj file ne menyre sekuen$iale, do t '"ogeloje numrin e kerkime"e me nj
faktor H, duke prmiresuar ne menyre t konsiderueshme performan$en. Nj "aria$ion i
kesaj metode do t ishte numerimi i po'i$ione"e t rrotullime"e. )ur behet alokimi i
blloqe"e, sistemi mundohet t "endosi blloqet e njpasnjshme ne nj file, ne t njjtin
$ilinder.
Nj tjetr performan$e e qafes se shishes, ne sisteme qe prdorin i#node ose do gje tjetr
ekui"alente me i#node#t, sht fakti qe le%imi i nj file t shkurtr kerkon dy aksesime ne
diskJ nj pr i#node#t dhe nj pr blloqet. >endosja e i#node#"e t 'akonshme tregohet ne
fig D.HL(a). )etu t gjithe i#node#t jane afer fillimit t diskut, keshtu qe distan$a mesatare
mes nj i#node dhe bllokut t tij do t jet sa gjysma e numrit t $ilindra"e, duke kerkuar
kohe t gjat kerkimi.
Fig. 6.28 (a) 6#node#t t "endosura ne fillim t diskut. (b) disku i ndare ne grupe
$ilindrash, se$ili ne blloqet dhe i#node#t prkatse.

Nj prmiresim i thjesht i performan$s, sht tOi "endosesh me mire i#node#t ne mes t
diskut, dhe jo ne fillim, duke shkurtuar keshtu mesataren e kerkimit mes i#node#"e dhe
blloqe"e t tyre me nj faktor ose dy. Nj tjetr ide, do t ishte ndarja e diskut ne grupe
$ilindrash, se$ili me i#nodet, free listn dhe blloqet prkatse. )ur krijohet nj file i ri,
mund t 'gjidhet do i#node. N qoft se asnj nuk sht i "lefshem, athere prdoret nj
bllok ne nj grup $ilindrash t afert.
6.3.8 Log-Structered File System
Ndryshimet ne teknologji, jane duke ushtruar presion ne file system#et ek'istuese. Ne
"eanti, *!+#t po prpiqen t behen me t shpejta, disqet po behen me t medha dhe me
t lira (por jo shume t shpejta) dhe memoriet po 'madhohen ne menyre eksponen$iale.
!arametri qe nuk sht prmiresuar, sht koha e kerkimit ne disk. )ombinimi i ketyre
faktore"e tregon qe prforman$a e Wqafes se shishesO sht duke u rritur ne disa file
sistem. Ne ket pjese do t shpjegohet shkurt si funksionon LFS (Log-structured File
System).
6deja qe solli -/1#n, sht qe *!+#t t behen me t shpejta dhe memoria .,( me e
madhe, gjithashtu dhe $a$he#t jane duke u 'madhuar me shpejtsi. .rjedhimisht, tani do
t jet e mundur t behet le%imi direkt ne $a$he, pa kerkuar akses ne disk. )eshtu, ne t
ardhmen, shumi$a e aksesime"e ne disk do t jene "etm pr t shkruar, pra mekani'mi i
le%imit t parakohshem t blloqe"e nuk do t duhet me pr t prmiresuar performan$en.
(arrim rastin me t keq, kur ne shumi$en e file system#e"e, shkruajtja behet ne pjese t
"ogla.
1hkrime shume t shkurtra, jane jo shume efient, sepse nj shkrim ne disk prej 78
mse$, ndiqet nga nj kerkim &8 mse$ dhe nga nj kohe rroullimi M mse$. (e keto
parametra, efien$a e diskut '"ogelohet & Q.

!r t pare nga "ijne, t gjithe shkrimet e shkurtra, krijohet nj file ne +N6R. !r t
shkruajtur ket file duhet t shkruhen me pare, i#node pr direktorine, bllokun e
direktorise, i#node#in pr file#in dhe "et file#in. Nderkohe qe keto shkrime mund t
"onohen, i gjithe ky proes bn qe sistemi t haset me probleme serio'e qendrueshmerie
n qoft se ndodh nj prplasje e sistemit para se t behet shkruajtja. !randaj shkruajtja e
i#node"e sht prgjithesisht me imediate. !r ket arsye, di'enjuesit e -/1, "endosen t
ri#implementojne file system#in e +N6R#it, ne at menyre qe t shfryt'ohet e gjithe
gjeresia e bre'it ne disk, edhe ne rastet e aksesimit t shkrime"e t shkurtra t rastit. 6deja
ba'e sht t strukturohet i gjithe disku si nj log (si nj trup i "etm). (e pas kur ka
ne"oje pr t, t gjithe shkrimet ne pritje t "endosura ne nj buffer t memories,
grumbullohen ne nj segment t "etm dhe shkruhen ne disk si nj segment i
"a'hdueshem ne fund t log#ut. Nj segment i "etm mund t prmbaje i#node, blloqe
direktorish, dhe blloqe datash, t gjitha t pr'iera bashke. Ne fillim t do segmenti ka
nj prmbledhje t segmentit, qe tregon se fare mund t gjendet ne ket segment. N
qoft se segmenti mesatar mund t jet rreth & (;, pothuajse i gjithe bre'i i diskut mund
t prdoret.
Ne ket di'enjim, i node#t akoma ek'istojne dhe kane t njjtn strukture si ne +N6R, por
tani ato jane t shprdara ne t gjithe log#un ne "end qe t kene nj po'i$ion fiks ne disk.
(egjithat, kur nj i node lokali'ohet, lokali'imi i blloqe"e behet ne t njjtn menyre.
5jetja e nj i node sht shume me e "eshtire, sepse adresa e saj nuk mund t llogaritet
thjesht nga i numrat e saj, si ne +N6R. !r t thjeshtsuar gjetjen e tyre prdoret nj hart
i node#sh, me indekset e i node#"e.
2yrja e i#t ne ket hart pointon ne i node#in e i#t ne disk. )jo hart ruhet ne disk, por
gjithashtu mund t ruhet dhe ne $a$he, keshtu pjesa me e madhe e saj do t jet ne
memorie shumi$en e kohes. )ur i node lokali'ohet, prej saj mund t gjendet adresa e
blloqe"e. >et blloqet do t jene ne segmentt, diku ne log.
N qoft se disqet do t ishin pafundesisht t medha, do t "lente prseri prshkrimi i
mesiprm. (egjithat, disqet reale jane t fundem, keshtu qe log#u do t 'j komplet
diskun, ne ket kohe nuk mund t shkruhen segmente t reja ne log. /atmiresisht, shume
segmente ek'istuese mund t kene blloqe qe nuk ne"ojiten me, pr shembullJ n qoft se
nj file mbishkruhet, i node i tij do t pointoje tani ne blloqet e reja, por t "jetrat akoma
do t 'ene "end ne segmentet e shkruara me pare. !r t 'gjidhur ket problem -/1 ka
nj thread pastrues, qe e kalon kohen duke skanuar log#un ne menyre $iklike, pr ta
kompaktesuar at. ,i fillon t le%oje prmbledhjen ne segmentin e pare ne log, pr t
pare $ilat i node dhe file ndodhen aty. (e pas kontrollon hartn e i node#"e ek'istuese,
pr t pare n qoft se i node#t dhe filet jane akoma ne prdorim. N qoft se jo
informa$ioni injorohet. 1 nodet dhe blloqet qe jane ne prdorim, shkojne ne memorie pr
tu shkruar ne segmentin tjetr. 1egmenti origjinal shenohet si i lire, keshtu log#u mund ta
prdori at pr te dhena t reja. Ne ket menyre pastruesi kalon t gjithe log#un, duke
fshire segmente t "jetra dhe duke "endosur ne to te dhena ne prdorim ne memorie, pr
tOi rishkruar ato ne segmentet e ardhshme. !rfundimisht disku sht nj buffer i madh ne
forme $iklike, me thead#in shkrues, qe shton segmente t reja ne fillim dhe thread#in
pastrues qe fshin segmentt e "jetrat nga e kaluara.
(bajtja e llogarise ne ket rast sht e pa"lefshme, meqenese kur nj bllok shkruhet ne
nj segment t ri, i node i file#it (diku ne log), duhet t lokali'ohet, dhe t "endoset ne
memorie pr tu shkruar ne nj segmentin e ardhshem. 2arta e i node#"e duhet t update#
ohet pr t pointuar ne kopjen e re. (egjithat sht e mundur t behet administrimi, dhe
i gjithe ky kompli$itet tregon qe ja "len. (atjet e dhena ne ket pjese tregojne qe -/1
performon nga jasht +N6R#in, pr disa shkrime t shkurtra, nderkohe ka nj
perforaman$e po aq te mire ne le%im dhe ne shkrimet e gjata, si t +N6R#it.
KAPITULLI I SHTAT
Sistemet Operative Multimedial
/ilmat digital, "ideo klipet, dhe mu'ika po behen gjithnj e me shume nj menyre pr t
paraqitur informa$ionin dhe argetimin neprmjet kompjuterit. ,udio dhe "ideo files
mund t ruen ne nj disk dhe mund t luhen (play) serisht kur di$ka e tille kerkohet (on
demand). (irepo, karakteristikat e tyre jane shume t ndryshme nga te%t file#at
tradi$ional. 1i rrjedhim, ne"ojiten file system t rinj ne menyre qe ti menana%hojne ato.
5jithashtu, ruajta (store) dhe luajta (play) e audio dhe "ideo n%orri ne pah kerkesa t reja
ne s$hedulerin si dhe ne pjeset e tjera t sistemit operati". Ne paragrafet qe do "ijne, ne
do t studiojme disa nga keto $eshtje dhe implikimet e tyre pr sisteme operati"e qe jane
disenjuar pr mena%huar multimedia.
@akonisht, pr filmat digital prdoret emri multimedia, qe ne kuptim letrar do t thot
me shume se nj mjet (medium). 1ipas t ketij prkufi'imi, "et ky liber sht nj pune
(detyre) multimediale. -ibri, prmban H tipe mediashJ tekst dhe ima'he (figurat).
(egjithat, pjesa me e madhe e njere'"e prdorin termin EmultimediaF pr t nenkuptuar
nj dokument qe prmban dy ose me shume media t "ijueshme ($ontinuous media), qe
do thot media qe duhet t luhet serisht pas nj inter"ali kohor. Ne ket liber, termin
multimedia do ta prdorim ne ket sens.
Nj term tjetr qe sht ka kuptim disi i erret (i dykuptueshem) sht EvideoF. Ne sensin
teknik, sht thjesht por$ioni i ima'hit t nj filmi (mo"ie) (ne t kundert pjeses se
'erit)..... Ne fakt, regjistruesit kamera ($am$orders) dhe tle"i'ionet shpesh kan dy
connectors- njri i etiketuar E"ideoF dhe tjetri EaudioF, meqene se sinjalet jane t ndare
nga njri tjetri. (irepo, termi Edigital "ideoF 'akonisht i referohet produktit t plot,
bashke me ima'het dhe sound. Ne "ijim termi EfilmF (mo"ie) do t prdoret ne sensin e
produktit t plot. >ini re qe ne ket sens nj film nuk ka ne"oje t jet Hore i gjat dhe t
jet i prodhuar nga studiot e 2ollywood#it me nj kosto qe kalon dhe at t ;oeing CMC.
Nj klip prej 98#se$ me lajme, qe mund t download#ohet nga faqja e *NN, sht
gjithashtu nj EfilmF (mo"ie) sipas prkufi'imit tone. )eto do ti quajme E"ideo $lipsF kur
i referohemi filma"e shume t shkurtr.
C.& 2yjre ne (ultimedia (!arathenie)
!ara se t hyjme ne teknologjine e multimedias, do t ishte e dobishme t themi disa fjale
pr prdorimet e tanishme dhe t se ardhmes t saj. Ne nj kompjuter t "etm,
multimedia shpesh ka kuptimin e nj luajtjes t nj filmi t pararegjistruar nga nj DVD
(Digital Versatile Disk). =>=#t jane disqe optike qe prdorin po t njjtn &H8#mm
boshllek polikarbonat (poly$arbonat plasti$ blanks), ashtu si$ prdor dhe *=#.:(, por
ato jane t regjistuar ne nj densitet me t lart, duke dhene nj kapa$itet nga 7 5; deri
&C 5;, ne "aresi t formatit.
Nj tjetr prdorim i multimedia sht ai i downloadimit t "ideo klipe"e nga interneti.
1hume faqe 3eb kane items qe sapo i klikon, fillon downloadimi i filma"e t shkurtr.
Ne nj shpejtsi 7D)bps, edhe downloadimi i "ideo klipe"e t shkurtr kerkon nj kohe
t gjat, por teknologjit e shprndarjes t shpjet (si pr shembull cable TV dhe ADSL -
Asymetric Digital Subscriber Loop) mbi'otrojne, dhe prania e "ideo klipe"e ne
internet do t rritet tejmase.
Nj tjetr sfere ne t $ilin multimedia duhet t prkrahet sht krijimi i "ideo"e. 1istemet
e editimit multimedial ek'istojne dhe pr prforma$a sa me t larta ato kane ne"oje t
ek'ekutohen ne nj sistem operati" qe mbshtt (supports) multimedian aq mire sa nj
detyre t 'akonshme.
5jithashtu nj sfere tjetr ku multimedia po behet e rendesishme sht ajo e lojra"e
kompjuterike. -ojrat shpesh ek'ekutojne "ideo klipe t shkurtra pr t prshkruar disa
lloj "erpimesh. )lipet 'akonisht jane t shkurtra, por ka shume si ato dhe klipi i duhur
selektohet ne menyre dinamike, ne "aresi t "eprime"e qe kryen prdoruesi. )eto jane
shume t sofistikuara.
!rfundimisht, $eshtja thelbesore e bots se multimedia sht video on demand (video
me kerkese), me t $ilen njere'it do t 'gjedhin nj filmin qe deshirojne "etm duke
prdorur tlekomanden (ose mouse), dhe ne at $ast do t shfaqet filmi ne ekranin e N>
ose monitorin e kompjuterit. !r t mundesuar "ideo on demamd ("ideo me kerkese),
ne"ojitet nj infrastukture e "e$ant. Ne /ig. C#& ne shohim dy infrastruktura t
mundshme me "ideo on demand. 1e$ila prmban tre komponent esen$ialeJ nj ose ,isa
#i,eo ser#ers, nj /istribution Net"ork (;rjet t shprn,are)- dhe nj kuti (set%top bo&)
ne do shtpi pr t dekoduar sinjalin. Video server sht nj kompjuter shume i
fuqishem qe mban shume filma ne file sistemin e tij dhe i luan serisht kur ato kerkohen
(on demand). Ndonjehere mainframes prdoren si "ideo ser"ers, sepse lidhja e &888
disqe"e tek nj mainframe sht me e hapur/efikase, sesa lidhja e tyre tek !*. 1hume nga
materiali qe "ijon do t jet prreth "ideo ser"ers dhe sisteme"e operati"e t tyre.
Figura 7-1. >ideo on demand duke prdorur teknlogji shprndarje t ndryshme lokale.
(a) ,=1-. (b) *able N>.
.rjeti i shprndarjes (distribution network) midis user#it dhe "ideo ser"erit duhet t jet i
aft t transmetoje t dhena me shpjetsi t madhe dhe ne kohe reale. =isenjimi i ketyre
rrjeta"e sht intresant dhe kompleks, por del jasht qellimit t ketij libri. Ne nuk do t
themi asgje tjetr prreth tyre pr"e$ se t "eme ne dukje qe keto network prdorim
gjithmone fibrat optike nga "ideo ser"eri deri t kutia e bashkimit (junction bo&) t 'ones
ku jetojne klientt. Ne sistemet e ,=1-#se, t $ilat ofrohen nga kompanit telefonike,
linja ek'istuese e tlefonit (twistd pair K $ift i prdredhur) ofron kilometrin e fundit t
transmetimit. Ne sitemet kabllore, t $ilat ofrohen nga operatoret kabllor, tlat ek'istues
t N> kabllor prdoren pr shprndarjen lokale (lo$al distribution). ,=1- ka a"anta'hin
sepse i jep do prdoruesi nj kanal t dedikuar, keshtu qe garaton bandwidth, por
bandwidth sht i "oglet disa (megabit/se$) pr shkak t kufi'ime"e t tla"e tlefonik.
N> kabllor prdor kabllin $o#a%ial me bandwidth t madh disa (gigabit/se$), por shume
klient prdorin se bashku (ndajne K share) t njjtin kabell, keshtu bandwidthi nuk sht
i garantuar pr se$ilin nga klientt.
!jesa e fundit e sistemit sht kutia set-top box, ne t $ilen prfundon ,=1-#ja ose N>
kabllor. )jo pajisje sht nj kompjuter i 'akonshem, me nj $hip spe$ial pr de#$odim
dhe de#$ompresimin e "ideo"e. )ompjuteri prmban minimalisht *!+, .,(, .:(, dhe
nj nderfaqe pr ,=1- ose pr N> kabllor.
1i alternati"e e kutise set#top bo%, mund t prdoret !* ek'istuese e klientit dhe t
shfaqet filmi ne monitorin, set#top bo% merret parasysh nga fakti qe njere'it duan t
shohin "ideo on demand ne dhomen e tyre t ndenjs dhe nuk kane kompjuter aty. Nga
nj prspekti"e teknike, prdorimi i nj kompjuteri ne "end t set#top bo%, merr me tepr
kuptim, sepse kompjuteri sht me i fuqishem, ka nj disk t madh, dhe re'olu$ioni i
ekranit sht i madh. 5jithashtu, ne do t bejme dallimin midis "ideo ser"er dhe proesit
t klientit ne skajin e prdoruesit qe dekodon dhe shfaq ne ekran filmin. Ne termat e
disenjimit t sisteme"e, nuk ka shume rendesi ne se proesi i klienti ek'ekutohet ne
kutine set#top bo%, apo ne !*. !r nj sistem "ideo#editimi desktop, t gjitha proeset
ek'ekutohen ne t njjtn makine, por ne do t "a'hdojme t prdorim terminologjine
ser"er dhe $lient, ne menyre qe t jet e qart se $fare bn nj proes i $aktuar.
=uke u kthyer tek multimedia, ajo ka dy karakteristika ky$e qe duhen t kuptohen mireJ
(ultimedia prdor Data Rates K jasht'akonisht t larta.
(ultimedia ka ne"oje pr ri#luajtje ne kohe reale (real time playback).
Ni"eli i lart i =ata .ates "jen nga natyra e informa$ionit akustik e "i'ual. 1yt dhe
"eshet mund t proesojne sasira shume t medhaja informa$ioni ne sekonde, dhe duhen
t ushqehen ne at .ate pr t prodhuar pamje t pranueshme. Ne /ig. C#H sht paraqitur
=ata rate i disa burime"e multimediale dhe i disa pajisje"e hardwarike. Ne do t
diskutojme pr disa nga keto format en$odimi ne "one ne ket kapitull. ,jo qe duhet t
theksohet sht, meqe data rate multimedia"e sht i lart, ai ka ne"oje pr kompressim
dhe pr nj "end ku t ruhet. !r shembull nj film H#ore 2=N> i pa#kompresuar sht
nj file prej 7C8 5;. Nj "ideo ser"er ruan &888 file t tille, pra ka ne"oje pr 7C8 N;
hapesire, qe do t thot nj sasi jo e parendesishme pr standartet e sotme. ,jo qe duhet
t theksohet tjetr sht, pa kompresimin e t dhena"e, hardware e tanishme nuk mund t
e$in (prballojne) me data rate qe prodhohen. )ompresimin e "ideo"e do ta shohim me
"one ne ket kapitull.
)erkesa e dyt qe multimedia "endos ne nj sistem, sht ne"oja e shprndarjes t t
dhena"e ne kohe reale. !or$ioni i "ideos t nj filmi digital konsiston ne disa numra
frames pr sekonde. 1istemi NN1* qe prdoret ne ,merike dhe Aaponi, ek'ekutohet ne
98 frames/se$ (HG.GC ek'aktsisht), ndersa sistemet !,- dhe 1*,( qe prdor pjesa
tjetr e bots, ek'ekutohet ne H7 frame/se$ (H7frame/se ek'aktsisht). /ramet duhet t
shprndahen ne inter"ale pre$i'e 99mse$ ose M8mse$, respekti"isht, ose prndryshe filmi
do duket me ndryshime t shpeshta ($opetuar).
1our$e (bps 5;/hr =e"i$e (bps
Nlephone (!*() 8.8DM 8.89 /ast thernet &88
(!9 musi$ 8.&M 8.8D 6= disk &99
,udio *= &.M 8.DH ,N( :*#9 network &7D
(!5#H mo"ie (DM8 % ML8) M &.CD 1*16 +ltra3ide disk 9H8
=igital $am$order (CH8 % ML8) H7 && 6 &9GM (/ire3ire) M88
+n$ompressed N> (DM8 % ML8) HH& GC 5igabit thernet &888
+n$ompressed 2=N> (&HL8 %
CH8)
DML HLL 1*16 +ltra#&D8 disk &HL8
Figura 7-2. =isa data rates pr multimedia dhe pr pajisje 6/: me performan$e t lart.
>ini re qe & (bps sht &8
D
bits/se$ por & 5; sht H
98
bytes.
@yrtarisht NN1* do t thot National Nle"ision 1tandards *ommite, por kur hyri ne
skene tle"i'ori me ngjyra, doli nj shaka pr industrine, Ne"er Nwi$e the 1ame *olor.
!,- K !hase ,ltrnating -ine. Neknikisht sht sistemi me i mire. 1*,( K 1equentiel
*oleur ,"e$ (emoire, prdoret ne /ran$e (dhe u shpik pr t mbrojtur prodhuesit e
Nle"i'ione"e fran$e'e nga kompeti$ioni me t huajt. 1*,( prdoret gjithashtu ne
europen lindore, sepse kur u shfaq tle"i'oni ne ket "ende, qe"erit komunist t
athershme nuk donin qe njere'it t shikon tle"i'onin 5jerman keshtu qe 'gjodhen nj
sistem jo#kompatibel.
>eshi sht me i ndieshem sesa syri, keshtu qe nj ndryshim ("arian$e) edhe ne rendin e
milise$onda"e ne kohen e shprndarjes do t ishte e ndieshme. Nryshueshmeria
("arian$a) ne ratet e shprndarjesJ quhet jittr dhe duhet qe ti "endosen kufijt ne menyre
strikt pr prforman$a e mira. >ini re qe jittr nuk sht e njjta gje si "onesa (delay).
N qoft se rrjeti shprndares /ig. C#& "onen ne menyre uniforme se$ilin bit me 7.888
se$, filmi do t filloje pak me "one, por do t duket i qart. Ndersa n qoft se "onohen
ne menyre rastesore frames me &88#H88mse$, filmi do t duket si nj film i "jetr i
*harlie *haplin.
>etit ne kohe reale qe kerkohen pr ri#luajtur serisht (playba$k) multimediat, shpesh ato
prshkruen nga parametrat e cilesise t sherbimit (<o1 # quality of ser"i$e). !arametrat
prfshijne bandwidthin mesatar t disponueshem, pikun e bandwidth, "onesat minimale
dhe maksimale (t $ilat se bashku "endosin kufijt e jittr), dhe nj probalilitt i humbjes
se bite"e. !r shembull, nj operator rrjeti mund t ofroje nj sherbim duke garantuar nj
bandwidth M (bps, GGQ e transmetimit i ka "onesat ne inter"alin &87 K &&8 mse$, dhe
rate e humbjes se bite"e &8
#&8
, qe do t ishte mese ok pr filmat me (!5#H. :peratori
gjithashtu mundet t ofroje, nj sherbim me ni"el disi me t ulet, me t lire, me nj
bandwidth & (bps (sh. ,=1-), ne ket rast pr $ilesine duhet t biem ne nj kompromis,
mund t ndryshojme resolu$ionin, duke ulur ndjeshem frame rate, ose t heqim dore nga
gjyrat dhe ta shohim filmin ne bardh e 'i.
(enyra me e 'akonshme pr t ofruar garan$it pr $ilesine sherbimit sht t
re'er"ojme nj $apa$itt prpara ne kohe (in ad"an$e), pr se$ilin nga klientt. ;urimet e
re'er"uara prfshijne nj por$ion t *!+, bufferat e memories, $apa$ittin e transferimit
t diskut, bandwidth e rrjetit. Ne qoftse nj klient i ri kerkon t shikoje nj film, por
"ideo ser"eri ose rrjeti nuk ka kapa$itet t mjaftueshem pr nj klient tjetr, ai duhet t
refu'oje klientin e ri ne menyre qe t shmangi degradimin e sherbimit klient"e aktual. 1i
rrjedhim, ser"erat multimedial kane ne"oje pr skema re'er"imi t burime"e, dhe pr
algoritmin e kontrolli t pranime"e (admission $ontrol algorithm) ne menyre qe t
"endosin se kur ata mundet t mena%hojne me shume detyra.

7.2 SKEDARET MULTIMEDIA
Ne shumi$en e sisteme"e, nj skedar tekst prbehet nga nj sekuen$e byte#sh pa ndonj
strukture qe sistemi operati" njeh apo i intreson t njohe. (e skedaret multimedia,
situata sht pak me e komplikuar. 1i fillim, "ideo dhe audio jane krejtsisht t
ndryshme. ,to kapen nga paisje t ndryshme (**= $hip "ersus mi$rophone), kane
strukture t brendshme t ndryshme ("ideo ka H7#98 frame/sekI audio ka MM,&88
kampjone/se$), dhe ato prdoren nga paisje t ndryshme (monitor "s altoparlant).
(e tej, shumi$a e filma"e t hollywood#it i drejtohen nj audien$e mbare botrore,
shumi$a e t $iles nuk flet ,nglisht. )jo pike 'gjidhet ne nj ose dy menyra. !r disa
shtt, nj kolone 'anore shtese prodhohet, me 'era t dubluar ne gjuhen lokale (por jo
efektt 'anore). Ne japoni, t gjitha tle"i'ionet kane dy kanale 'eri pr ti lejuar shikuesit
t degjojne filmat e huaj ne gjuhen origjinale apo at japone'e. Nj buton ne pult prdoret
pr 'gjedhjen e gjuhes. Ne disa "ende t tjera prdoret kolona 'anore origjinale me titra
ne gjuhen lokale.
=isa filma tle"i'i" ofrojne $losed#$aption titra ne anglisht gjithashtu, pr t lejuar folesit
,nglisht por me degjim t kufi'uar t shohin filmat. 1i re'ultat filmi di%hital mund t
konsistoje nga disa skedareJ nj "ideo, disa audio, disa titra tekst ne gjuhe t ndryshme.
=>= Kt kane aftsine t ruajne deri ne 9H gjuhe dhe titra te%t. Nj bashkesi skedaresh
multimedia tregohet ne /ig. C#9. Ne do t shpjegojme kuptimin e Efast forwordF dhe Efast
ba$kwardF me "one ne ket kapitull.
1i rrjedhoje, nj Efile systemF ka ne"oje t pr$aktoje disa nen skedare pr skedare. Nj
skenar i mundshem sht t mena%hoje do nen skedar si nj skedar tradi$ional (pr
shembull., duke prdorur nj nyje i pr t dalluar blloqet) dhe t mbaje nj strukture t
dhenash qe liston t gjitha nen skedaret pr do skedar multimedia. Nj metode tjetr
sht t prdorim nj tip nyjesh dy#dimensionale, me do kolone duke listuar t gjitha
blloqet pr nen skedae. Ne prgjithesi, organi'imi duhet t jet i tille qe shikuesi ne
menyre dinamike t 'gjedhe $ilin skedar audio apo titre t prdore ne momentin qe shihet
filmi.
Ne do rast, ndonj menyre pr t sinkroni'uar nen skedared duhet ne menyre qe kur
audio e 'gjedhur t luhet t jet e sinkroni'uar me "idjon. Ne se audjon dhe "idjo dalin
sado pak nga sinkroni'imi, shikuesi degjon fjalet e aktorit para ose pas le"i'jes se bu'e"e,
gje qe dallohet leht dhe sht shume a$aruese.
Figure 7-3. Nj film mund t konsistoje nga disa skedar.
!r t kuptuar me mire si skedared multimedia organi'ohen, sht e ne"ojshme t
kuptojme si funksionon audjo dhe "idjo di%hitale ne detaje. Ne tani do japim nj
pre'antim t ketyre $eshtje"e.
7.2.1 Enkodimi Audio
Nj "ale audio ('anore) sht nj "ale nj dimensionale akustike (presioni). )ur nj "ale
akustike hyn ne "esh, daullja e "eshit dridhet, duke shkaktuar qe pjeset e brendshme t
"eshit t dridhen bashke me t, dhe duke derguar impulse ne tru. )eto pulse pr$eptohen
si 'e nga degjuesi. Ne menyre t ngjashme, kur nj "ale akustike godet mikrofonin, ai
gjeneron sinjale elekrik, qe prfaqesojne amplituden e 'erit si funksion i kohes.
;re'i i frekuen$a"e t "eshit t njriut "arion nga H8 2' deri H8,888 2', megjithese disa
kafshe, sidomos qent, mund t degjojne edhe ne frekuen$a me t larta. >eshi degjon ne
menyre logaritmike, keshtu qe raporti i dy 'era"e me amplituda , dhe ; mund t
shprehet kon"en$ionalisht ne d; (de$ibels) sipas formulesJ
) / ( log H8
&8
* @ ,* =
Ne se ne pr$aktojme limitin e poshtm t degjimit (nj presion rreth 8.8889 dyne/$m
H
)
pr nj "ale sinusoide &k2' si 8 d;, nj bashkebisedim i 'akonshem 'h"illohet ne 78d;
dhe dhimbjet e "eshit fillojne ne &H8 d; , nj bre' dinamik me nj faktor & milion. !r t
shmangur konfu'ionin, , dhe ; lart jane amplitu,a. Ne se ne do t prdorim fuqit, qe
jane propo$ionale me katrorin e amlitudes, koefi$ienti i algoritmit do ishte &8, dhe jo H8.
>alet audio mund t kon"ertohen ne di%hitale nga nj ,=* (,nalog =igital *on"ertr).
Nj ,=* merr nj "olta'h elektrik ne hyrje dhe gjeneron nj numer binar ne dalje. Ne
fig. C#M(a) ne shohim nj shembull t nj sinusoide. !r t prfaquar sinjalin di%hital, ne
mund ta kampionojme do N sekonda, si$ tregohet nga gjatsia e "ija"e ne fig.C#M(b). Ne
se "ala 'anore nuk sht puro sinusoidale, por nj superpo'im i "ale"e sinusoidale ku
komponentja me frekuen$e me t lart prfaqesohet nga f, athere sht e mjaftueshme t
bejme kampionime me frekuen$e Hf. )y re'ultat sht pro"uar matmatikisht nga 2.
Nyquist ne &GHM. )ampionimi me i shpesht nuk ka "lere meqene se frekuen$at me t
larta qe do merreshin nuk jane pre'ent.
Figure 7-4.(a) Nj "ale sinusoidale. (b) )ampionimi i "ales sinusoidale. ($) )uanti'imi
me Mbit.
)ampionet di%hitale nuk jane asnjehere ek'akt. )ampionet e /ig. C#M($) lejojne "etm
nent "lera, nga #&.88 deri t T&.88 ne shkalle prej 8.H7. .rjedhimisht, M bit ne"ojiten pr
t prfaqesuar t gjitha ato. (e L#bit kampione lejohen H7D "lera t ndryshme. (e &D bit
kampione mund t marrim D7,79D "lera t ndryshme. 5abimi i futur nga numri i fundem i
bite"e pr kampion quhet 'hurme kuanti'imi. Ne se sht shume e lart, "eshi do e
dalloje at.
=y shembuj t mirenjohur t 'erit t kampionuar jane tlefoni dhe audio $ompakt disqet.
E!ulse $ode modulationF prdoret brenda sistemit tlefonik dhe prdor C#bit (,merika
>eriore dhe Aaponia) ose L bit (uropa) kampione L888 here ne sekonde. )y sistem jep
nj data rate prej 7D.888 bps ose DM.888 bps. (e "etm L888 kampione/sek, frekuen$at
mbi Mk2' humbasin.
*=#t ,udio jane di%hitale me nj kampionim MM.&88 kampione/sek, e mjaftueshme pr
t kapur frekuen$a deri ne HH.878 2', qe sht e mire pr njere'it por e keqe pr qent.
)ampionet jane &D bit se$ila, dhe jane lineare mbi bre'in e amplituda"e. >ini re se &D#bit
kampione lejojne "etm D7.79D "lera t ndryshme, megjithese bre'i dinamik i "eshit
sht rreth & million kur matt me hapa degjimi me t "ogjel t mundshem. !ra duke
prdorur "etm &D bit pr kampion shkakton 'hurme kuanti'imi (megjithese i gjithe bre'i
dinamik nuk mbulohet). (e MM.&88 kampione/se$ nga &D bit, nj audio *= ka ne"oje pr
EbandwidthF prej C87.D )bps pr EmonoF dhe &.M&& (bps pr streo (shih fig C#H).
)ompresimi i audios sht i mundur duke u ba'uar ne modelet psikoakustik sipas t
$ila"e punon "eshi i njriut. Nj kompresim me &8% sht i mundur duke prdorur
sistemin (!9 ((!5 layer 9). !layer#at e mu'ikes portabel pr ket format kane qene
shume t 'akonshem "itet e fundit.
@eri di%hital mund t proesohet lehtsisht nga kompjuteri me anen e software#it. 1hume
programe ek'istojne pr !* qe lejojne prdoruesit t regjistrojne, shfaqin, editojne,
miksojne dhe t regjistrojne "alet 'anore nga disa burime. !othuajse gjithe editimi
profesional i 'erit sht di%hital ditt e sotme.
7.2.2 Enkodimi Video
1yri i njriut ka "etine qe kur nj ima'h i shfaqet mbi retine, fiksohet pr disa
milisekonda prpara se t ndryshohet. Ne se nj sekuen$e ima'hes shfaqen do 78 ose me
shume ima'he pr sekonde, syri nuk "eren qe po shikon ima'he diskret. N gjithe filmat
"ideo dhe filmat e animuar shfryt'ojne ket kon$ept pr t prodhuar pamje t le"i'shme.
!r t kuptuar sistemet "ideo, sht me mire t fillojme me nj tle"i'or t thjesht t
stilit t "jetr bardh e 'i. !r t formuar ima'hin dy#dimensional ne ekran, kamera skanon
me shpejtsi nj rre'e elektronike nj#dimensionale si "olta'h ne funksion t kohes, duke
regjistruar intnsitetin e drits gjat rruges. Ne fund t skanimit t quajtur EframeF, rre'ja
ri"endoset. 6ntnsiteti si funksion i kohes transmetohet, dhe re$eptoret prserisin
proesin e skanimit pr t riformuar figuren. !roesi i skanimit i prdorur nga kamera dhe
marresi tregohen ne /ig. C#7. ((egjithat disa kamera **= intgrojne ne "end qe t
skanojne, disa t tjera si dhe monitoret *.N skanojne.)
!arametrat e skanimit "ariojne nga shtti ne shtt. NN1* ka 7H7 "ija skanimi, nj raport
hori'ontal me "ertikal MJ9, dhe 98 frame/sek. 1istemi uropian !,- dhe 1*,( kane
DH7 "ija dhe raport MJ9 me H7 frame/sek. Ne t dy sistemet "ijat me t siprme dhe me t
poshtme nuk shfaqen (pr t afersuar nj ima'h sa me katror ne nj *.N t rrumbullaket).
>etm ML9 nga 7H7 NN1* linja skanimi (dhe 7CD nga DH7 !,-/1*,() shfaqen.
Ndersa H7 frame/sek jane t mjaftueshme pr t kapur le"i'je t rrjedhshme, ne at frame
rate shume njere' sidomos t "jetrit, do pr$eptojne ima'hin t nderpritet (sepse ima'het
e "jetra jane shuar nga retina para se t rinjt t shfaqen). Ne "end qe rritet frame rate, qe
do t kerkonte prdorimin e me shume bandwidth#i, merrent nj rruge tjetr. Ne "end qe
t shfaqen "ijat e skanimit nga lart posht, ne fillim t gjithe "ijat shfaqen tek, pastaj "ijat
$ift. Bdo njra prej ketyre gjysem frame"e quhet nj fushe. ksprimentt kane treguar
qe megjithese njere'it dallojne nderprerje ne H7 frame/sek, ata nuk e dallojne ne se ka t
78 frame/se$. )jo teknike quhet intrla$ing. Nle"i'ioni nonintrla$ing ose "ideo thuhet
se sht progresi"e.
Figura 7-5. 1kanimi i prdorur pr NN1* "ideo dhe N>.
>ideo me ngjyra prdor t njjtin kon$ept si ajo monokrome, pr"e$ se prdor tre rre'e.
1e$ila prdoret pr njren nga njyrat primareJ e kuqe, jeshile dhe blu (.5;). )jo teknike
funksionon sepse do ngjyre mund t formohet nga superpo'imi i ngjyres se kuqe,
jeshile dhe blue me intnsitet prkatse. (egjithat, pr t transmetuar nj kanal t
"etm, t tre ngjyrat mund t kombinohen ne nj sinjal t "etm.
!r t lejuar transmetimet me ngjyra pr tu shfaqur ne marres bardh e 'i, t tre sistemet
.5; kombinohen linearisht ne nj si sinjal i "etm luminishent (bardhesie), dhe dy
krominan$e (ngjyre), megjithese t gjithe prdorin koefi$ient t ndryshem pr t
ndertuar keto sinjale nga sinjalet .5;. 6ntresant sht fakti qe syri sht me i ndjeshem
ndaj sinjalit luminan$e se atij krominan$e, keshtu qe i fundit mund t mos transmetohet
me saktsi. 5jithashtu sinjali luminan$e mund t transmetohet ne t njjen frekuen$e si ai
i "jetri bardh e 'i keshtu qe mund t kapet nga tle"i'oret bardh e 'i. N dy sinjalet
krominan$e mund t transmetohen ne bre'a t ngusht ne frekuen$a t larta. =isa
tle"i'ore kane butona pr kontrollin e Ebritghness, hue dhe saturation. )uptimi i
luminan$es dhe kroman$es sht i ne"ojshem pr t kuptuar si funksionon kompresimi i
"ideos.
=eri tani kemi pare "ideo analoge. Nani le t kthehemi t "ideo di%hitale. !rfaqesimi
me i thjesht i "ideos di%hitale sht nj sekuen$e framesh, se$ili i prbere nga nj rrjet
katroresh prej element figurash, ose pi%el. !r "ideo me ngjyra, L bit pr pi%el prdoren
pr do njyre .5;, duke dhene &D million ngjyra, qe sht mese mjaftueshem. 1yri i
njriut as nuk mund ti dalloje kaq shume ngjyra.
!r t prodhuar nj le"i'je t rrjedhshme, "idjo di%hitale, ashtu si ajo analoge, duhet t
shfaqe H7 frame/sek. (egjithat, gjersa $ilesia e mire e monitorit t kompjuterit mund ta
riskanoje ekranin pr ima'het ne "ideo .,( deri C7 here ne sekonde apo me shume.
intra$ing nuk sht e ne"ojshme. !ra, t gjithe monitoret e kompjutera"e prdorin
skanimin progresi". Nhjesht duke ri"i'atuar t njjtn frame tre here rresht mjafton pr t
menjanuar nderprerjet.
(e fjale t tjera, rrjedhshmeria e le"i'jes pr$aktohet nga nj numer i ndryshem ima'hes
pr sekonde, ndersa nderprerja pr$aktohet nga numri i "i'atime"e t ekranit ne sekonde.
)eto dy parametra jane t ndryshem. Nj ima'h i pale"i'shem i "i'atuar me H8 frame/sek
nuk do t prodhohe nj le"i'je aritmike por do t nderpritet sepse nj frame do t shuhet
nga retina para se t shfaqet tjetra. Nj film me H8 frame t ndryshme pr sekonde, se$ila
e "i'atuar M here rresht me L82', nuk do t nderpritet, por le"i'ja do t shfaqet aritmike.
.endesia e ketyre parametra"e behet e qart kur marrim ne konsiderate bandwidth#in e
ne"ojshem pr t transmetuar "idjo di%hitale ne nj rrjet. (onitoret e sotm prdorin t
gjithe raportin MJ9 keshtu qe mund t prdorin tuba katodik t prodhuar ne seri t
di'enjuar pr tle"i'oret. )onfigurimet me t 'akonshme jane DM8%ML8 (>5,), L88%D88
(1>5,), dhe &8HM%CDL (R5,). Nj R5, shfaq HM bit pr pi%el dhe H7 frame/sek, i
ne"ojitet nj ushqim me MCH (bps. =yfishimi i ratet pr t menjanuar nderprerjet nuk
sht shume trheqes. Nj 'gjidhje me e mire sht transmetimi me H7 frame/sek dhe
ruajtja ne komputr e do frame dhe shfaqja dy here. Nransmetimet tle"i'i"e nuk
prdorin ket teknike sepse tle"i'oret nuk kane memorie, dhe do t kerkohej kon"ertimi
njehere ne di%hital qe kerkon hardware shtese. 1i rrjedhoje, intrla$ing prdoret pr
transmetimet tle"i'i"e dhe jo pr "idjo di%hitale.
7.3 Kompresimi Video
=uhet t jet e qart qe manipulimi i matrjalit multimedia ne forme t pa konpresuar
sht jasht do diskutimi K sht shume e madhe. "etmja shprese sht kompresimi
masi", i $ili sht i mundur. /atmiresisht, nj trupe e madhe kerkimi gjat ketyre
de$ada"e t fundit ka $uar ne shume teknika dhe algoritma kompresimi t $ilat e bejne
transmetimin multimedia t pranueshem. Ne ket pjese ne do t studiojme disa metoda
pr kompresimin e t dhena"e multimediale, sidomos ima'he"e.
N gjitha sistemet e kompresimit kerkojne dy algoritmaJ nj pr kompresimin e burimit t
t dhena"e, dhe nj pr dekompresimin t tij ne destina$ion. Ne ket litrature, ketyre
algoritma"e i referohemi si algoritma enkodimi (en$oding) dhe dekodimi (de$oding).
)et terminologji do ta prdorim ketu, gjithashtu.
)eto algoritma kane disa asimetri qe jane t rendesishme pr tu kuptuar. Ne fillim, pr
shume aplika$ione, nj dokument multimedia, le t themi, nj film do t enkodohet "etm
njehere ( kur ruhet ne ser"er#in multimedia) por do t de$odohet mijera here ( kur t
shihet nga klientt). )jo asimetri do t thot qe sht e pranueshme qe algoritmi i
en$odimit t jet i ngadalt dhe t kerkoje hardware shtese duke lejuar qe algoritmi i
dekodimit t jet i shpejt dhe t mos kerkoje hardware t shtrenjt. Nga ana tjetr, ne
multimedia realtime, si prshembull "ideo konferen$a, nj enkodimi i ngadalt sht i pa
pranueshem. n$odimi duhet t behet ne EajerF ne sistemet real time.
Nj asimetri tjetr sht qe proesi enkodim/dekodim t mos jet i kthyshem. <e do t
thot, kur kompresojme nj file, transmetojme at dhe dekompresojme, prdoruesi pret t
marre origjinalin mbrapr shembull, t sakt deri ne bitin e fundit. (e multimedia, kjo
kerkese nuk qendron. Ne prgjithesi sht e pranueshme t kemi sinjal "ideo pas
enkodimit dhe dekodimit paksa ndryshe nga origjinali. )ur dalja e dekodimit nuk sht
ek'akt si inputi origjinal themi se sistemi sht me humbje (lossy). N gjithe sistemet e
kompresimit t prdorur pr multimedia jane EloosyF sepse japin me shume kompresim.
7.3.1 Standarti 1PEG
1tandarti A!5 (Aoint !hotographi$ %prts 5roup) pr kompresimin e figura"e fikse me
ton t "a'hdueshem (pr shembull., fotografit) u 'h"illua nga eksprtt e fotografise me
bashkpunimin e 6N+, 61: dhe 6*. ?sht i rendesishem pr multimedia sepse, me nj
prafrim, standarti pr figurat e le"i'hme (!5 sht thjesht A!5 pr do frame
"e$ant, plus disa "eti shtese pr kompresimin nder frame"e dhe konpesimin e le"i'jes.
A!5 pr$aktohet ne 1tandartin Nderkombetar &8G&L. )a katr gjendje dhe shume
opsione, por ne do merremi "etm me menyren e prdorimit pr "ideo HM#bit .5; dhe
do t leme jasht shume nga detajet.
2api i pare i enkodimit t ima'hi me A!5 sht ndarja e blloqe"e. !r arsye thjeshtsie,
le t supo'ojme qe A!5 merr ne hyrje nj ima'h DM8%ML8 .5; me HMbit/pi%el, si$
tregohet ne /ig. C#D(a). (eqe prdorimi i luminan$es dhe kromoinan$es jep re'ultat me
t mire kompresimi, luminan$a dhe dy sinjalet e kroman$es llogaritn nga "lerat .5;.
!r NN1* ata quhen ], 6 dhe <, respekti"isht. !r !,- ata quhen ], + dhe > dhe
formulat jane t ndryshme. (e posht ne do t prdorim emrat NN1*, por algoritmi i
kompresimit sht i njjt.
(atri$a t ndryshme ndertohen pr ], 6 dhe <, se$ila me elementet qe "arjojne nga 8 ne
H77. (e pas, blloqe katrore prej katr pikselash mesatari'ohen ne matri$at 6 dhe < pr ti
ulur ne 9H8%HM8. )y reduktim sht me humbje, por syri 'or se dallon at, meqe ai
reagon me shume ndaj luminan$es se krominan$es.
(egjithese, i kompreson t dhenat me nj faktor dy. Nani &HL i 'britt nga do element i
tre matri$a"e pr t "endosur 8 ne mes t bre'it. Ne fund, do matri$e ndahet ne blloqe
L%L. (atri$a ] ka ML88 blloqeI dy t tjerat kane &H88 blloqe se$ila, si$ tregohet ne /ig. C#
D(b).
F
igura 7-6. (a) .5; input data. (b) ,ftr blo$k preparation.
2api i dyt i A!5 sht ti aplikojme nj =*N (=is$ret *osine Nransformation) se$iles
nga CH88 blloqet "e$onte. =alja e se$iles =*N sht nj matri$e L%L me koefi$ientt
=*N. lementet =*N (8,8) sht nj mesatare e bllokut. lementet e tjere tregojne sa
shume fuqi spektrale sht pre'ent ne do frekuen$e. Ne tori, nj =*N sht pa humbje
(lossless), por ne praktike prdorimi i numra"e me presje t le"i'hme dhe funksione"e
transhenden$ial gjithmone shfaq disa gabime rrumbullakimesh qe $ojne ne humbje
informa$ioni. Normalisht, keto element shuhen shpejt me distan$en nga origjina, (8,8),
si$ sugjerohet nga /ig. C#C(b).
Figura 7-7.(a) Nj bllok i matri$es ], (b) )oefi$ientt =*N.
)ur =*N kompletohet, A!5 le"i' ne hapin 9, i $ili quhet kuanti'im, ne t $ilin
koefi$ientt me pak t rendesishem =*N shuhen. )y transformim (me humbje) behet
duke pjesetuar se$ilen nga koefi$ientt ne matri$en L%L =*N nga elementi prkats ne
tabelen e kuanti'imit. >lerat e "leres se kuanti'imit nuk jane pjese e standartit A!5. Bdo
aplika$ion duhet t ofroje tabelen e "et t kuanti'imit, duke i dhene atij mundesine pr t
kontrolluar raportin humbje#kompresim.
F
igura 7-8. -logaritja e koefi$ient"e t kuanti'uar =*N.
2api M sht reduktimi "leres (8,8) ne do bllok (i atij ne $epin lart majtas) duke
'e"endesuar at me "leren qe ndryshon nga blloku paraardhes. (eqe keto element jane
mesataret e bllokut respekti", ata duhet t ndryshojne gradualisht, keshtu qe duke marre
"lera diferen$iale duhet t reduktoje shumi$en e "lera"e t "ogla. ,snj diferen$ial nuk
llogaritet nga "lerat e tjera. >lerat (8,8) i referohemi si komponentt =*I dhe t tjera"e si
komponent ,*.
2api 7 lineari'on DM elementet dhe aplikon enkodim t lists. =uke skanuar bllokun nga
e majta ne t djatht dhe nga lart posht nuk do t prqendroje 'erot bashke, keshtu qe
skanimi 'ig#'ag prdoret, si$ tregohet ne /ig. C#G. Ne ket shembull, kalimi 'ig# 'ag
prodhon 9L 'ero rresht ne fund t matri$es. )y string mund t reduktohet ne nj $ount t
"etm duke thene se jane 9L 'ero.
Figura 7-9. .radha ne t $ilen "lerat e kuanti'uara transmetohen.
Nani kemi nj list numrash qe prfaqesojne ima'hin (ne hapesiren e transformuar). 2api
D 2uffman enkodon numrat e ruajtjes ose transmetimit.
A!5 mund t duket e komplikuar, por kjo ndodh sepse sht "ertet i komplikuar.
(egjithat, derisa shpesh prodhon nj kompresim H8J& ose me mire, sht shume i
prhapur. =ekodimi i A!5 kerkon ek'ekutimin e algoritmit mbrapr shembull. A!5
sht thuajse simetrikJ kerkon po aq pr dekodimin sa pr enkodimin.
7.3.2 Standarti MPEG
(e ne fund arritem ne 'emren e $eshtjesJ standarti (!5 ((otion !i$ture %prts
5rounp). )eto jane algoritmat kryesore pr kompresimin e "ideos dhe kane standarte
nderkombetare qe ne &GG9. (!5#& (1tandarti Nderkombetar &&&CH) u di'enjua pr
$ilesi "ideo regjistruesi (97H % HM8 pr NN1*) duke prdorur bit rate prej &.H (bps.
(!5#H (1tandarti Nderkombetar &9L&L) u di'enjua pr kompresimin e "idjos me $ilesi
broad$ast me M ose D (bps, keshtu qe mund t prfshihej ne kanalet e transmetimit
NN1* dhe !,-.
N dy "ersionet prfitojne nga dy lloj redundan$ies pane"ojshme qe ek'istojne ne filmaJ
hapesinore dhe kohore. redundan$y hapesinore mund t prdoret thjesht duke koduar do
frame "e$ e "e$ me A!5. )ompresim shtese mund t arrihet duke marren ne konsiderate
faktin qe frame t njpasnjshme jane pothuaj identike (redunan$y kohore). 1istemi =>
(=igital >ideo) i prdorur nga "idjo kamerat di%hitale prdor "etm nj skeme t
ngjashme me A!5 sepse enkodimi duhet t behet ne kohe reale dhe sht shume me i
shpejt se enkodimi i se$iles frame "e$ e "e$. .rjedhoja e ketij "endimi mund t shihet ne
/ig. C#HJ megjithese "idjo kamerat di%hitale kane nj data rate me t "ogel se "ideo e
pakompresuar, ata nuk jane aq t mira sa (!5#H. (!r t bere krahasimin t sinqert,
"ideo kamerat => kampjonojne luminan$en me Lbit dhe do $hroman$e me H bit, por
qendron prseri nj faktor pese pr kompresimin duke prdor en$odim A!5 t
ngjashem.)
!r skenat ku kamera dhe sfondi jane t pale"i'shem dhe nj ose dy aktore po le"i'in
rrotull me ngadale, afersisht t gjitha pi%elat do t jene identike nga frame ne frame.
)etu, thjesht duke 'britur do frame nga e para dhe duke ek'ekutuar A!5 ne do
diferen$e do ishte mese e mjaftuehsme. (egjithat ne ato skena ku kamera po EpanningF
ose 'madhon, kjo teknike deshton keq. ,jo $fare ne"ojitet sht ndonj menyre pr t
kompesuar le"i'jen. )jo sht ajo $ka bn (!5 saktsishtI ne fakt, kjo sht diferena$
kryesore ndermjet (!5 dhe A!5.
=alja e (!5#H konsiston nga tre tipe t ndryshme framesh qe duhen proesuar nga
programi shfaqeshJ
6 (6ntra$oded) framesJ 1
!(!redi$ti"e) framesJ
;(;idire$tional) framesJ
/ramet 6 jane po figura t koduara me A!5, duke prdorur luminan$e me re'olu$ion t
plot dhe kroman$e me gjysem re'olu$ioni gjat se$ilit bosht. ?sht e ne"ojshme t kemi
frame 6 t shfaqen priodikisht pr tre arsye. para, (!5 mund t prdoret pr
transmetimet tle"i'i"e, ku shikuesit qe 'gjedhin me deshire. Ne se t gjitha framet "aren
nga paraadheset duke shkuar deri t e para, ne se dikush ka humbur framin e pare nuk
mund ta dekodoje asnjehere framen pasardhese. )jo do t bnte t pamundur qe shikuesit
t lidhen edhe ne se filmi ka filluar. dyta, ne se ndonj nga framet do t merrej gabim,
dekodimi i metejshem do t ishte i pamundur. treta, pa framet 6, kur bejme nej fast
forwoard ose rewind, dekoderi duhet t llogarise do frame qe ka kaluar qe t ishte ne
gjedje t dint "leren e frames du do t ndale. (e framet 6, sht e mundur qe kalimi
fast forward ose ba$kward deri t nj frame 6 t gjendet dhe t filloje shikimi aty. !r keto
arsye framet 6 jane t futura ne output do nj dy here ne sekonde.
/ramet !, prkundra'i kodojne diferen$at nder frame"e. ,to ba'ohen ne idene e
ma$robloqe"e, qe mbulojne &D % &D pi%ela ne hapesire luminan$e dhe L%L ne hapesire
$hroman$e. Nj bllok ma$ro enkodohet duke kerkuar framen paraardhes ose di$ka pak t
ndryshme nga ajo.
Nj shembull ku framet ! mund t jene t prdorshme jepet ne /ig. C#&8. )etu shohim tre
frame t nj pas njshem qe kane t njjtin sfond, por ndryshojne ne po'i$ionin e
personit. ;lloqet ma$ro qe prmbajne sfondin do t prputhen ek'aktsisht, por ato qe
prmbajne personin do t 'h"endosen me nj "lere dhe duhet t gjurmohen.
F
igura 7-10. Nre frame "ideo t njpasnjshme.
1tandarti (!5 nuk spe$ifikon si t kerkojme, sa larg t kerkojme, ose sa i mire duhet t
jet prputhja qe t ket rendesi. )jo "aret nga do implementim. !r shembull, nj
implementim mund t kerkoje nj bllok ma$ro ne po'i$ionin aktual t frames
paraardhese, dhe t gjithe po'i$ionet si 'h"endosje T# % ne drejtim % dhe T# y ne drejtim
y. !r do po'i$ion, numri i prputhje"e ne matri$en e luminan$es mund t llogaritet.
!o'i$ione me me shume pike mund t deklarohet fitues, duke supo'uar se ishte mbi nj
threshold t parapr$aktuar. !rndryshe, blloku ma$ro thuhet se mungon. ,lgoritme
shume me t komplikuar ek'istojne, sigurisht.
Ne se nj bllok makro gjendet, ai enkodohet duke marre diferen$en e "lera"e t tij me
framen paraardhese ( pr luminan$en dhe $roman$en). )eto matri$a t diferen$es me pas
jane objekt i enkodimit A!5. >lera e makro bllokut ne rrjedhen daljes sht "ektori i
le"i'jes (sa larg blloku ma$ro u 'h"endos nga po'i$ioni meparshem ne se$ilin drejtim),
duke u ndjekur nga diferen$at e enkodimit A!5 me at ne framen paraardhese. Ne se
blloku makro nuk ndodhet ne framen paraardhese, "lera aktuale enkodohet me A!5, si
ne framet 6.
/ramet ; jane t ngjashme me !, pr"e$ qe le ato lejojne referen$a ne framen
paraardhese dhe pasardhese, edhe ne frame 6 apo !. )jo liri shtese lejon prmirsimin e
kompesimit t le"i'jes, dhe sht gjithashtu e prdorshme kur objektt kalojne prpara
ose pas objekt"e t tjera. !r shembull, ne nj loje baseboll kur EbasemenF i tret gjuan
topin ne ba'en e pare, mund t jet ndonj frame ku topi mbulon koken e basemen t edyt
qe po le"i', ne sfond. Ne framen pasardhese koka ku mund pjeserisht e dukshme ne t
majt t topit, me prafersine qe koka rrjedh nga frame qe "jen ku topi ka kaluar koken.
/ramet ; lejojne t ba'ohen ne nj frame t pasuese.
!r t enkoduar nj frame ;, enkoduesi ka ne"oje t mbaje tre frame t dekoduara ne
memorie njkohesishtI t kaluaren, pre'entn dhe t ardhmen. !r t thjeshtuar
dekodimin, framet duhet t jene pre'ent ne rrjedhen (!5 ne rradhe "aresie, se ne
radhe shfaqje. !ra ehde me kohe'im prfekt, kur nj "ideo shfaqet ne nj rrjet, buferimi
kerkohet ne makinen e userit pr t rirenditur framet pr shfaqje korrekte. Ne saj t kesaj
diferen$e ndermjet rradhes se "aresise, t prpiqesh t luash nj film mbrapr shembull
nuk do t punoj pa marre ne konsiderate bufferimin dhe algoritma kompleks.
SKEDULIMI I PROESEVE MULTIMEDIA
1istemet operati"e q mbshtsin multimediat ndryshojn nga ato tradi$ionalet n tre
aspekteJ skedulimi proese"e, sistemi i skedar"e (file) dhe skedulimi i diskut. Ne do t
fillojm ktu me skedulimin e proese"e dhe do "a'hdojm me t tjerat n "ijim.
Skedulimi i Proeseve Homogjene
-loj m i thjesht i ser"er"e "idio sht ai q mund t suportoj paraqitjen e nj numri
t $aktuar filmash, t gjith duke prdorur t njjtin shkall frame, re'olu$ion "idio, data
rate dhe parametra t tjer. !osht ktyre kushte"e, por nj algoritem skedulimi efekti"
sht si nj shoqrues. !r do film, ka nj proes t "eant ( ose thread) puna e t $ilit
sht t le%oj filmin nga disku frame pas frame dhe m pas ta transmetoj tek
prdoruesi. (eq t gjith proeset jan njsoj t rndsishm, duhet t bhet e njjta sasi
pune pr do frame, dhe ti bllokosh kur ka ato kan prfunduar prpunimin e frame
aktual, skedulimi round#robin e bn kt pun shum mir. "etmja gj q duhet t
shtojm sht standardi'imi i algoritme"e skeduluese q sht nj mekani'm kohe pr
tOu siguruar se do proes ek'ekutohet n frekuen$n korrekte.
Nj mnyr pr t reali'uar kohn e duhur sht duke patur nj mastr $lo$k q shnjon,
le t themi, 98 her n sekond ( pr NN1*). N do shnjim, t gjitha proeset
ek'ekutohen n mnyr sekuen$iale, n t njjtin rend. )ur nj proes ka mbaruar punn
e tij, t gjitha proeset ek'ekutohen prsri n njjtin rend. !r sa koh q numri i
proese"e sht mjaftueshm i "ogl sa t gjith punt mund t bhen nj koh frame,
skedulimi round#robin sht efient.
Skedulimet e Prgjithshme n Koh-Reale
/atkeqsisht, ky model 'batohet pak n realitet. Numri i prdoruese"e q ndryshojn si
shikues "ijn e shkojn, madhsia e frame#it "arion n natyrn e kompresimit t "idios
( frame# 6 jan m t mdha se frame K! ose K;) dhe filmat e ndryshm mund t ken
re'olu$ion t ndryshm. 1i rrjedhoj, proese t ndryshme duhet t ek'ekutohen n
frekuen$a t ndryshme, me nj sasi pun t ndryshme, dhe me deadline ( afati i
prfundimit) t ndryshme n "arsi t puns q duhet t prfundoj.
)to konsiderata ojn n nj model t ndryshmJ proese t shumta konkurrojn pr
*!+, se$ili me punn dhe deadline#in e tij. N modelet pasuese, ne do t supo'ojm se
sistemi e njeh frekuen$n q duhet t ek'ekutohet se$ili proes, dhe $ili sht deadline
pasues. 1kedulimi i proese"e t shumt konkurrues, disa ose t gjith q kan nj
deadline (afati i prfundimit) q duhet t plotsohet sht quajtur skedulim n koh-
reale.
1i nj shembull t ambientit puns s skedulerit multimedia n koh#reale, konsiderojm
tre proese @- * dhe ' si tregohet n /ig. C#&&. !roesi , ek'ekutohet do 98mse$
( afrsisht shpejtsia e NN1*). Bdo frame krkon &8mse$ t kohs *!+. N munges t
konkurren$s, duhet t ek'ekutohet n ho"et (bursts) @1- @2- @3- etj., donjri fillon
98mse$ pas t parit. Bdo ho" (burst) i *!+ kap nj frame dhe ka nj deadlineI duhet t
mbaroj prpara se tjetri t filloj.
5jithashtu n /ig. C#&& tregohen dhe dy proese * dhe '. !roesi * ek'ekutohet H7
her/se$ ( per shembull,., !,-) dhe proesi * ek'ekutohet H8 her/se$. )oha e llogaritur
pr frame sht treguar si &7 mse$ dhe 7 mse$ respekti"isht pr ; dhe *, "etm pr ta
br problemin e skedulimit m t prgjithshm se sa t pasurit t njjtn t gjith.

Figure 7-11. Nre proese periodik, se$ili paraqet nj film . /rame rate dhe prpunimi i
krkuar pr do proes sht i ndryshm pr se$ilin film.
!roblemi i skedulimit tani sht se si t skedulohen @- *- dhe * pr tOu siguruar se ato do
t takohen me deadline#et e tyre respekti"e. !rpara se t shohim nj algoritem
skedulimi, ne duhet t shohim n se ky set instruksionesh jan t skedulueshm gjithsesi.
.eferuar seksionit H.7.M, q n se proesi i ka priodn !
i
mse$ dhe krkesa *
i
mse$ koh
*!+ pr frame, sistemi sht i skedulueshm "etm dhe "etm n qoft se

&
&

=
m
i
)i
'i
)u m sht numri i proese"e, n kt rast, 9. >ini re q !
i
/*
i
sht "etm nj pjes e
*!+ q prdoret nga proesi i . !er shembull,., n /ig. C#&&, @ sht duke ngrn 7/78 t
*!+. 1 bashku kto pjes shkojn n 8.L8L t *!+, kshtu q sistemi i proese"e sht
i skedulueshm
=eri tani ne supo'uam se ka nj proes pr stream. N t "rtt, duhet t jen dy ( ose
m shum proese) pr stream. !er shembull,., nj pr audio dhe nj pr "idio. ,to duhet
t ek'ekutohet n shkall (rate) t ndryshme dhe duhet t konsumojn sasi t ndryshme
kohe *!+.
N disa sisteme koh#reale, proeset jan t '"endsueshme dhe n disa t tjera nuk
jan. N sistemet multimedia, proeset jan prgjithsisht t '"endsueshm, q do t
thot se nj proes q sht n rre'ik t humbjes s deadline#it tij mund n ndrpres
proesin n ek'ekutim prpara se ai t mbaroj me frame#in e tij. )ur kjo mbaron, proes
i mparshm "a'hdon. )jo sjellje sht "etm multiprogramim, si e kemi shikuar m
par. Ne do t studiojm algoritmet skeduluese n koh#reale preemptable
('"endsuese) sepse nuk ka kundrshtime t tyre n sistemet multimedia dhe ato japin
nj prfoman$ m t mir se sa ato nonpreemptable. 6 "etmi problem sht se n se nj
bufer transmetues sht mbushur n pak burst#e (ho"e), buferi sht mbushur nga
deadline#et kshtu q ai mund t drgohet tek prdoruesi m nj opra$ion t "etm.
,lgoritmet koh#reale mund t jen statik dhe dinamik. ,lgoritmet statik i $aktojn do
proesi nj prioritet fiks dhe ather i jep prparsi skedulimit '"endsues duke prdorur
ato prioritete. ,lgoritmet dinamike nuk kan prioritet t fiksuar. ( posht ne do t
shohim nga nj shembull pr se$ilin.
Skedulimi n Shkall Uniforme
,lgoritmi statik klasik i skedulimit '"endsues n koh#reale pr , proeset periodik
sht RMS ( Rate Monotonic Scheduling). ,i mund t prdoret pr proeset q
plotson kushtet e mposhtmeJ
Bdo proes priodik duhet t mbaroj brenda priods tij.
!roeset nuk "aren nga njri tjetri.
Bdo proes i ne"ojitet e njjta sasi kohe *!+ n do burst (ho")
Bdo proes jopriodik nuk ka deadline (afat prfundimi)
!roeset '"endsues ndodhin menjeher dhe pa o"erhead.
)atr kushtet e para jan t arsyeshme (t pranueshme). fundit nuk sht, sigurisht, por
e bn modelin m t leht. .(1 funksionon duke i pr$aktuar do proesi nj prioritet
fiks t nj"lershme me frekuen$n e 'h"illimit t ngjarjes triggering. !er shembull,., nj
proes q duhet t ek'ekutohet do 98 mse$ ( 99 her/se$) merr prioritetin 99, nj proes
q duhet t ek'ekutohet do M8 mse$ (H7 her/se$) merr prioritetin H7 dhe nj proes q
duhet t ek'ekutohet do 78 mse$ (H8her/se$) merr prioritetin H8. !rioritetet jan kshtu
lineare me shkalln ( rate) ( numrin e her"e/se$ q proesi ek'ekutohet). )jo sht
arsyeja pse quhet shkall uniforme. N kohn e ek'ekutimit, skeduleri gjithmon
ek'ekuton proesin me prioritetin m t lart q sht gati duke '"endsuar proesin n
ek'ekutim n se sht e ne"ojshme. -iu dhe -ayland pro"uan se .(1 sht optimale
prgjat klass s algoritme"e statik t skedulimit.
/igura C#&H tregon se skedulimi n shkall uniforme funksionon n shembullin e /ig. C#
&&. !roeset @- * dhe ' kan prioritet statik, prkatsisht 99, H7 dhe H8, q do t thot se
kurdo q , ka ne"oj t ek'ekutohet, ai ek'ekutohet, duke '"endsuar do proes tjetr
q aktualisht po prdor *!+. !roesi ; mund t '"endsoj * por jo ,. !roesi duhet t
pres gjersa *!+ nuk sht i 'n q t ek'ekutohet.
N /ig. C#&H, fillimisht t tre proeset jan gati t ek'ekutohen. ,i me prioritet m t
lart, ,, sht i 'gjedhuri dhe lejohet t ek'ekutohet gjersa t prfundojn n &7 mse$, si
tregohet n rreshtin .(1. !asi prfundon, ; dhe * ek'ekutohen n at rend. 1 bashku,
kto proese marrin 98 mse$ pr tOu ek'ekutuar, kshtu q kur * mbaron, sht koha e ,
pr t filluar srish. )y rota$ion (altrnim) "a'hdon derisa sistemi bhet i lir pr t9S(.
Figure 7-12. Nj shembull i skedulimit n koh#reale t .(1 dhe =/
!r t[L8 ; bhet i gatshm dhe ek'ekutohet. (egjithat, pr t[G8, nj proes me prioritet
m t lart, ,, bhet gati, kshtu q ai '"endson ; dhe ek'ekutohet deri sa mbaron, pr
t[&88. n kt pik sistemi mund t 'gjedh t mbaroj ; ose t filloj * por ai 'gjedh
proesin me prioritet m t lart, ;
7.4.4. Skedulimi n fillim i deadline-eve m t hershm
Nj tjetr algoritem popullor skedulues n koh#reale sht Earliest Deadline First. =/
sht nj algoritem dinamik q nuk krkon proese (prpunim) pr t qen priodik, si
krkont algoritmi me shkalle uniforme. (adje nuk krkon as t njjtn koh ek'ekutimi
pr do ho" (burst) t *!+, si bnte .(1. )urdo q nj proes i ne"ojitet koh *!+, ai
bn t ditur pre'en$n dhe deadline#in e tij. 1keduleri ruan nj list t proese"e t
ek'ekutueshm. ,lgoritmi ek'ekuton proesin e par n list, at q sht m afr me
deadline#in. )urdo q nj proes bhet gati, sistemi kontrollon n se deadline tij ndodhet
prpara ek'ekutimit t proesit aktual. N se po, proesi i ri '"endson aktualin.
Nj shembull i =/ sht dhn n /ig. C#&H. /illimisht t gjith proeset jan gati. ,ta
ek'ekutohen n rendin e deadline#e"e t tyre, , duhet t mbaroj pr t[98, ; duhet t
mbaroj pr t[M8 dhe * duhet t mbaroj pr t[78, kshtu q , ka deadline#in m t
hershm kshtu q duhet t filloj e para. =eri pr t[G8 pengesat jan t njjta si tek
.(1. !r t[G8, , bhet srish gati, dhe deadline tij sht t[&H8, i njjt me deadline e ;#
s. 1keduleri logjikisht mund t 'gjedh se$ilin prej t dy"e pr tOu ek'ekutuar, por n
praktik, '"endsimi i ; ka disa kosto lidhur me t, kshtu sht m mir q ; t
"a'hdoj t ek'ekutohet.
!r t larguar iden se .(1 dhe =/ gjithmon japin t njjtn re'ultat, le t shohim tani
nj tjetr shembull, q jepet n figurn e mposhtme. N kt shembull perioda e ,, ;
dhe * jan t njjt si m par, por , tani ka ne"oj pr &7 mse$ koh *!+ pr do ho"
(burst) n "end t &8 mse$. 1kedulshmria teston llogaritjen e prdorimit t *!+ si
8.788 T 8.9C7 T 8.&88[8.GC7. >etm H7Q e *!+ lihet, por n tori *!+ nuk sht e
mbishkrueshme dhe do t ishte e mundur t siguroje nj skeduleri legal.
Figure 7-13. Nj tjetr shembull i skedulimit me .(1 dhe =/
(e .(1, prioritet e tre proese"e jan ende 99, H7, dhe H8 "etm si shtje period, jo si
koh ek'ekutimi. )saj here, ;& nuk mbaron derisa t[98, n t $iln , sht gati prsri.
5jithashtu , mbaron pr t[M7 dhe ; sht prsri gati kshtu ka nj prioritet m t lart
se *, ai ek'ekutohet dhe * humbet deadline#in e tij, .(1 dshton.
=he tani shiko se si =/ e 'gjidh kt problem. !r t[98, ka nj E'nkF midis ,H dhe
*&, sepse deadline i *#s sht 78 dhe i ,H sht D8, * skedulohet. )jo sht e ndryshme
nga .(1, ku , ishte fituesi me prioritet m t lart.
!r t[G8 , rikthehet gati pr t katrtn her. =eadline i ,#s sht i njjt m at t
proesit aktual (&H8), kshtu q skeduleri ka nj 'gjidhje pr '"endsim ose jo. 1i m
par, sht m mir q t mos ket '"endsim n se nuk sht e ne"ojshme, kshtu q
;9 lejohet t mbaroj.
N shembullin e /ig. C#&9 *!+ sht e 'n &88Q deri n t[&788. (egjithat,
prfundimisht nj hapsir do t prftohet sepse *!+ sht "etm GC.7Q e shfryt'uar.
=erisa koha e fillimit dhe mbarimit jan shumfish t 7 mse$, hapsira do t jet 7 mse$.
!r t reali'uar dhe H.7Q e kohs n t $iln *!+ nuk sht e 'n, hapsira prej 7 mse$
do t merret pr do H88 mse$, e $ila nuk tregohet n /ig. C#&9.
Nj pyetje interesante sht pse .(1 dshton. !arimisht, prdorimi i prioritete"e statik
punon "etm n se prdorimi i *!+ nuk sht shum i lart. -iu dhe -ayland (&GC9)
pro"uan se pr do sistem t proese"e periodik, n se

) & H (
/ &
&

=
m
m
i
m
)i
'i
ather .(1 sht e garantuar se do t punoj. !r 9, M, 7, &8, H8 dhe &88, maksimumet
e prdorimit t lejuar jan 8.CL8, 8.C7C, 8.CM9, 8.C&L, 8.C87 dhe 8.DGD. )ur mmo,
maksimumi i prdorimit sht nj asimptot lnH. (e fjal t tjera, -iu dhe -ayland
pro"uan q pr tre proese, .(1 gjithmon punon n se prdorimi i *!+ sht e
barabart ose m pak se 8.C8L. N shembullin e par ishte 8.L8L dhe .(1 punoi, por
"etm sa ishim me fat. (e perioda dhe koh ek'ekutimi t ndryshme, prdorimi i 8.L8L
do t dshtoj. N shembullin e dyt, prdorimi i *!+ ishte aq i lart ( 8.GC7 ) sa nuk
kishte shpres se .(1 do t punonte.
N kontrast, =/ gjithmon punonte pr do set proesesh t skedulueshme. (und t
arrij t prdor &88Q t *!+#s. Bmimi q do t paguhet sht nj algoritem m
kompleks. )shtu q n ser"erat "idio n se prdorimi i *!+#s sht posht limitit t
.(1, ather .(1 mund t prdoret, n t kundrt duhet t 'gjidhet =/.
),!6N+--6 6 NN
MULTIPROCESORET
Nje multipro$esor me kujtese te ndare (shared#memory multipro$essor) eshte nje sistem
kompjuterik ne te $ilin dy ose me shume *!+ ndajne akses te plote ne nje .,( te
perbashket. Nje program qe ek'ekutohet ne nje nga *!+#te duket si nje hapesire adrese
"irtuale normale. )arakteristika e "etme, jo e 'akonshme qe ky sistem ka eshte qe *!+
mund te shkruaje disa "lera ne nje fjale memorje (memory word), dhe me pas le%on
fjalen perseri dhe jep nje "lere te ndryshme (sepse nje tjeter *!+ e ka ndryshuar ate). )ur
organi'imi eshte korrekt, kjo karakteristike formon ba'en e komunikimit interpro$esorJ
nje *!+ shkruan disa te dhena ne memorje dhe nje *!+ tjeter le%on te dhenen jashte.
!er pjesen me te madhe, sistemet e operimit multipro$esore jane tamam sisteme operimi
te rregullta. ,to merren me thirrjet sistem, bejne mena%himin e memorjes, mundesojne
nje file system dhe mena%hojne pajisjet 6/:. (egjithate, ndodhen disa 'ona ne te $ilat ato
kane tipare unike. )eto perfshijne sinkroni'imin e pro$ese"e, mena%himin e burime"e
dhe skedulimin. (e poshte, si fillim do bejme nje "eshtrim te permbledhur te hardware#
it te multipro$esorit dhe pastaj shkojme ne funksionet e sisteme"e operati".
8.1.1 Multiprocessor Hardware
Ndone se te gjithe multipro$esoret kane karakteristike qe $do *!+ mund te adresoje te
gjitha fjalet e memorjes, disa multipro$esore kane tipar shtese ku $do fjale memorje
mund te le%ohet aq shpejt sa $do fjale tjeter memorje. )eto makina jane quajtur
multipro$esore +(, (+niform (emory ,$$ess). Ne kontrast, multipro$esoret N+(,
(Non+niform (emory ,$$ess) nuk e kane kete tipar. ,rsyeja pse ek'iston kjo diferen$e
do te tregohet me "one. 1i fillim, ne do te ek'aminojme multipro$esoret +(, dhe me
pas do shkojme te multipro$esoret N+(,.
UMA Bus-Based SMP Architectures
(ultipro$esoret e thjeshte jane ba'uar ne nje single#bus, si$ eshte ilustruar ne fig.L#H(a).
=y ose me shume *!+ dhe nje ose me shume module memorje, te gjitha perdorin te
njejtin bus per komunikim. )ur nje *!+ do te le%oje nje fjale memorje, ne fillim ajo
kontrollon n qofte se bus#i eshte i 'ene apo jo. N qofte se bus#i eshte bosh, *!+ "endos
adresen e fjales qe do ne bus, kerkon disa sinjale kontrolli dhe pret derisa memorja te
"endose fjalen e deshiruar ne bus. N qofte se bus#i eshte i 'ene kur nje *!+ do te le%oje
ose shkruaje ne memorje, *!+ pret pikerisht derisa bus#i te jete bosh. Ne kete menyre
'gjidhet problemi me kete projekt. (e dy ose me tre *!+, lufta per bus#in behet e
mena%hueshme, me 9H ose DM ajo behet e pa perballueshme. 1istemi do te jete totalisht i
limituar nga bandwidth#i i bus#it dhe shume nga *!+#te do te jene pa pune shumi$en e
kohes. @gjidhja e ketij problemi eshte qe te shtohet nje $a$he ne $do *!+, si$
pershkruhet ne fig.L#H(b). *a$he#ja mund te ndodhet brenda $hipit te *!+, afer $hipit te
*!+, ne bordin e pro$esorit ose ne disa kombinime te ketyre.
Ne pergjithesi, $a$hing nuk i referohet nje fjale indi"iduale ba'e por nje blloku prej 9H#DM
byte. )ur nje fjale adresohet, i gjithe blloku i saj shkon te marre ate (fjalen) ne $a$he#ne e
*!+#se.
*do bllok $a$he#je eshte etiketuar sikur $do bllok te ishte read#only (ne kete rast ai mund
te jete pre'ent ne multiple $a$he ne te njejten kohe) ose si read#write (ne kete rast blloku
nuk mund te jete pre'ent ne ndonje $a$he tjeter). N qofte se, nje *!+ perpiqet te
shkruaje dhe ndodhet ne nje ose me shume remote $a$he, bus#i hardware detekton
shkrimin dhe "endos nje sinjal ne bus per te informuar te gjitha $a$he#te e tjera mbi
shkrimin. N qofte se, $a$he#te e tjera kane nje F$leanF $opy qe mund te jete nje kopje
ek'akte e asaj $fare eshte ne memorje, ato pikerisht mund te hedhin kopjet e tyre dhe te
lejojne shkruesin (writer) te kape bllokun e $a$he#se nga memorja perpara se ai te
modifikohet.
N qofte se ne disa $a$he te tjera ndodhet nje FdirtyF $opy, kjo duhet patjeter te shkruhet
perseri ne memorje para se te "a'hdoje shkrimi ose kjo te transferohet direkt te shkruesi
prane bus#it. =isa $a$he transferojne protokolle ek'istues. Nje mundesi tjeter eshte
pershkrimi i fig.L#H($), ne te $ilen $do *!+ nuk ka "etem nje $a$he, por gjithashtu ka nje
memorje lokale, pri"ate ne te $ilen ajo akseson mbi nje bus te dedikuar (pri"at). !er ta
perdorur kete konfigura$ion ne menyre optimale, kompiluesi duhet te "endose te gjithe
tekstin e progaramit, stringat, konstantet dhe te dhenat e tjera "etem te le%ueshme, sta$ks
dhe "ariablat lokale ne memorien pri"ate.
/igura L#H. (emorja shared perdoret "etem per te shkruajtur "ariabla shared.
Ne shumi$en e raste"e, kjo "endosje e kujdesshme do te '"ogelonte shume trafikun ne
bus, por kjo do te kerkonte bashkepunim akti" nga kompiluesi.
UMA Multiprocessors Using Crossbar Switches
(egjithe perdorimin e $a$hing me te mire, perdorimi i nje single bus e limiton madhesine
e nje multipro$esori +(, me rreth &D ose 9H *!+. !er te shkuar me tej, ne"ojitet nje lloj
tjeter nderlidhjeje rrjeti. <arku me i thjeshte per te lidhur n *!+ me k memorje eshte
crossbar switch, i treguar ne fig.L#9. *rossbar swit$hes jane perdorur per dekada brenda
$entrale"e te linja"e telefonike per te lidhur nje grup linjash hyrese me nje grup linjash
dalese ne nje rruge arbitrare. Ne $do interseksion te nje linje hori'ontale (hyrese) dhe
"ertikale (dalese) ndodhet nje crosspoint. Nje $rosspoint eshte nje $eles (swit$h) i "ogel
qe mund te hapet ose te mbyllet elektrikisht, i "arur ne se linjat hori'ontale dhe "ertikale
jane te lidhura ose jo.
Ne fig.L#9(a) ne shohim tre $rosspoints te mbyllura njeheresh, duke lejuar lidhjet (*!+,
memorje) ndermjet $ifte"e (88-, 888), (&8&, &8&) dhe (&&8, +&8) ne te njejten kohe.
1hume kombinime te tjera jane gjithashtu te mundshme. Ne fakt numri i kombinime"e
eshte i barabarte me numrin e rruge"e te ndryshme qe tete torrra mund te "endosen pa
problem ne nje fushe shahu.
Nje nga karakteristikat me te mira te $rossbar swit$h eshte qe kjo eshte nje nonlocking
network (rrjet jo i mbyllur), qe do te thote se gjithmone asnje *!+ nuk do pranoje
lidhjen qe i ne"ojitet sepse disa $rosspoint ose linja eshte tashme e 'ene (supo'ojme se
"ete moduli i memorjes eshte i perdorshem, i lire). 5jithashtu asnje planifikim i a"an$uar
nuk ne"ojitet. (adje n qofte se ngrihen shtate lidhje arbitrimi, eshte gjithmone e
mundshme te lidhen pjesa e *!+ me pjesen e memorjes. .
Nje nga karakteristikat me te keqia te $rossbar swit$h qendron ne faktin se numri i
$rosspoints rritet me n
H
. =uke patur &888 *!+#s dhe &888 module memorje, na duhen &
milion $rosspoints. Nje $rossbar swit$h kaq i madh nuk eshte i reali'ueshem, pra nuk
eshte i mundshem. (egjithate, per sistemet medium#si'e, nje $rossbar swit$h eshte i
reali'ueshem, i 'batueshem.
UMA Multiprocessors Using Multistage Switching Networks
Nje multipro$esor komplet i ndryshem i ba'uar ne nje swit$h H%H te thjeshte tregohet ne
fig.L#M(a). )y swit$h ka H hyrje dhe H dalje. (esa'het e arritura ne $do linje hyrese mund
te transferohen ne $do linje dalese. !er qellimet tona, mesa'het do te perbehen nga M
pjese, si$ tregohet ne fig.L#M(b). /usha o,ule tregon se $ila memorje perdoret. @,,ress
spe$ifikon nje adrese brenda nje moduli. 0pco,e jep opera$ionet, si$ jane .,= ose
3.6N. Ne fund, fusha jo e detyrueshme Ialue mund te permbaje nje operand, si$ eshte
nje fjale 9H#bit e $ila shkruhet me ane te nje 3.6N. 1wit$h kontrollon fushen o,ule
dhe e perdor ate per te "endosur n qofte se mesa'hi do te dergohet ne R ose ne ].
1wit$h#i jone H%H mund te rregullohet ne disa rruge per te ndertuar nje multistage
switching networks.

Nje mundesi eshte klasa ekonomike omega network e ilustruar ne fig.L#7. )etu kemi
lidhur L *!+, ne L memorje duke perdorur &H swit$hes. Ne pergjithesi, per n *!+ dhe n
memorje ne do na duhen log
H
/C fa'a (stages), me n$2 swit$hes ($elesa) per fa'e, me nje
total prej (XX/H)log
H
YY swit$hes, e $ila eshte me e mire se n
H
$rosspoints, kryesisht per
"lera te medha te tij .
(odeli elektrik i rrjetit network (omega network) shpesh quhet perfect shuffle, pasi
miksimi i sinjale"e ne $do fa'e riasemblon nje pako letrash te prera pergjysem, me pas
per'ihen leter per leter. !er te pare se si punon omega network, supo'ojme se *!+ 8& 6
do te le%oje nje fjale nga moduli memorjes 6 &8. *!+ dergon nje mesa'h .,= per te
transferuar permbajtjen 6=&&8 ne fushen o,ule. 1wit$h merr bitin e pare (nga e majta)
te 6 &8 dhe e perdor ate per routing. Nje 8 $ohet ne daljen e siperme dhe nje & $ohet ne
daljen e poshtme. !er sa kohe ky bit eshte &, mesa'hi kalon neper daljen e poshtme te H=.
Ne gjithe swit$hes e fa'es sekondare, perfishre H=, perdorin bitin e dyte per routim. )jo,
gjithashtu, eshte nje A, keshtu qe mesa'hi tani a"an$ohet ne daljen e poshtme te 9=. )etu
biti i trete testohet dhe duhet te jete 8. 1i pasoje, mesa'hi shkon ne daljen e siperme dhe
arrin ne memorjen &&8, si$ u deshirua. .ruga e ndjekur nga ky mesa'h tregohet ne fig.L#7
nga letra a.
1i mesa'h qe le"i' permes swit$hing network, bitet ne te majte te numrit te modulit jane
jo shume te ne"ojshme. !er rrugen a, linjat hyrese jane 8 (upper input to 6=), & (lower
input to H=) dhe 6 (lower input to 9=), respekti"isht. !ergjigja routohet perseri mbrapsht,
duke perdorur 8&&, "etem duke le%uar kete nga e majta ne te djathte. Ne te njejten kohe,
*!+ 88& kerkon te shkruaje nje fjale ne modulin e memorjes 88&. Nje pro$es analog
ndodh ketu, me mesa'he qe routohen neper daljet e siperme dhe te poshtme,
respekti"isht, te etiketuar nga letra b. )ur kjo arrin, fusha o,ule e saj le%on =:6, duke
treguar rrugen qe duhet te ndjeke. !er sa kohe keto dy kerkesa nuk perdorin swit$hes,
linja ose module memorje te njejta, ato mund te "a'hdojne ne paralel.
Nani te shohim se $ymund te ndodhe n qofte se *!+ 888 kerkon te aksesoje direkt
modulin e memorjes 88. )jo kerkese do te bjere ne konflikt me kerkesen e *!+ 88& ne
swit$h 9,. Nje nga keto mund te kete luhatje. Ndryshe nga $rossbar swit$h, omega
network eshte nje blocking network (rrjet i blllokuar). Ao $do bashkesi kerkesash mund
te plotesohet menjehere. )onfliktet mund te ndodhin gjate perdorimit te nje per$jellesi
ose nje swit$h, aq mire sa ndermjet kerkesa"e ne memorje dhe pergjigje"e nga memorja.


shte forte e pershtatshme te perhapesh referen$at e memorjes uniformisht permes
module"e. Nje teknike e 'akonshme eshte perdorimi i bite"e low#order si numra te
modulit. )onsiderojme, pr shembull, nje hapesire adrese te orientuar byte#i, 'akonisht H
bitet low#order do jene 88, por 9 bitet e tjera do jene uniformisht te shperndare. =uke
perdorur keto 9 bite si numer moduli, adresat e fjale"e te njepasnjeshme do jene ne
modulet e njepasnjeshme. Nje sistem memorje ne te $ilin fjalet e njepasnjeshme jane ne
module te ndryshme do te quhet interleaved (i bere ne shtresa). (emorjet interlea"ed
rrisin paraleli'min sepse shumi$a e referen$a"e te memorjes ndodhen ne adresat e
njepasnjeshme. 5jthashtu eshte e mundur te projektohen swit$hing networks te $ilat jane
nonlo$king dhe qe ofrojne rruge te shumta nga $do *!+ ne $do modul memorje, te $ilat
lehtesojne dhe trafikun.
NUMA Multiprocessors
(ultipro$esoret +(, me nje bus te "etem (single#bus +(, multipro$essors) jane
pergjithesisht te limituar ne jo me shume se disa *!+ dhe $rossbar ose swit$hed
multipro$essors. )eto perdorin pajisje hardware te shtrenjta dhe nuk jane shume te
medhenj. !er te marre me shume se &88 *!+, di$ka duhet te jepet. @akonisht, ajo qe
jepet eshte idea se te gjitha modulet e memorjes kane kohe te njejte akse simi. )y
kon$ension $on ne idene e multipro$esore"e N+(,, si$ tregohet me poshte. Ne
ngjashmeri me multipro$esoret +(,, N+(, kane nje hapesire te "etme adrese gjate
gjithe *!+#"e, por ne ndryshim nga makinat +(,, akse si per ne modulet e memorjes
lokale eshte me i shpejte se akse simi ne largesi. Ne kete menyre te gjitha programet
+(, do te ek'ekutohen pa problem ne makinat N+(,, por performan$a ne keto
makina do te jete me e dobet se ne nje makine +(, me te njejten shpejtesi ore.
(akinat N+(, kane 9 karakteristika kryesore te $ilat edhe i dallojne keto nga
multipro$esoret e tjere.

&. )eto kane nje hapesire te "etme adrese e dallueshme ne te gjithe *!+#te.
H. ,kse simi i memorjes ne distan$e (remote memory) behet nga instruksionet -:,= S
1N:..
9. ,kse simi i memorjes ne distan$e (remote memory) eshte me i ngadalte se akse simi
ne memorje lokale.
)ur koha e akse sit te memorjes ne distan$e nuk eshte e fshehur (sepse ketu nuk ndodh
$a$hing), sistemi quhet NC-NUMA. )ur $a$he#te koherente jane te pranishme, sistemi
quhet CC-NUMA (CACHE COHERENT NUMA). .
.ruga me e perhapur per ndertimin e multipro$esore"e te medhenj **#N+(, aktualisht
eshte directory-based multiprocessor. 6deja eshte qe te kete nje database e $ila te
tregoje se ku ndodhet $do linje $a$he#je dhe $fare statusi ka ajo. )ur referohet nje linje
$a$he#je, database mundohet te gjeje se ku ndodhet kjo linje dhe ne se kjo linje eshte
$lean ose dirty (modified).
!er te patur nje ide me konkrete rreth nje multipro$esori dire$tory#based, le te shohim
nje shembull te thjeshteJ nje sistem me H7D nyje (a H7D Knode system), $do nyje (node)
perbehet nga nje *!+ dhe &D (; .,( te lidhura te *!+ permes nje bus#i lokal.
(emorja totale eshte H
9H
byte, e ndare ne H
HD
linja $a$he#je me DM byte se$ila. (emorja
eshte e shperndare ne menyre statike midis nyja"e (nodes), me 8#&D( ne nyjen 8, &D#
9H( ne nyjen & dhe keshtu me rradhe. Nyjet lidhen me ane te nje rrjeti nderlidhjeje
(inter$onne$tion network) si$ tregohet ne fig.L#D(a). *do nyje gjithashtu mban dire$tory
entries per H
&
b DM#byte linjat e $a$he#se duke perfshire dhe H
HM
byte memorje. !er
momentin, ne do supo'ojme se nje linje mund te mbahet ne te shumten nje $a$he.
!er te pare se si punon direktoria, le te marrim nje instruksion -:,= nga *!+ H8 e $ila i
referohet nje linje te $a$he#se. Ne fillim *!+ $on instruksionin pre'ent per ne ((+ e
saj, e $ila perkthen ate ne adrese fi'ike, domethn, 8%HM888&8L. ((+#ja e ndan kete
adrese ne tre pjese si$ tregohet ne fig.L#D(b).
Ne de$imale, tre pjeset perbehen ngaJ nyja 9D, linja M dhe offset L bit. ((+ sheh se fjala
e referuar ne memorje eshte nga nyja 9D, dhe jo nga nyja H8, keshtu qe ajo dergon nje
mesa'h kerkese nepermjet rrjetit te nderlidhjes ne linjen e "ete nyjes (node) 9D, duke
pyetur ne se linja M e saj eshte $ashed dhe n qofte se po, ku.
)ur kerkesa mberrin ne nyjen 9D gjate rrjetit te nderlidhjes, ajo routohet ne direktorine
hardware.
2ardware fut ne tabelen e "et prej H
&L
entries (hyrje), nje nga linjat e saj te $a$he#se dhe
ekstrakton hyrjen M (entry M).
Ne fig.L#D($) ne shohim se linja nuk eshte $a$hed, keshtu qe hardware terheq linjen M
nga .,( lokal, e dergon ate mbrapsht tek nyja H8 dhe update#on direktorine e entry M
per te treguar se tani linja eshte $a$hed ne nyjen (node) H8.


Nani le te shohim nje kerkese te dyte, kete here duke pyetur rreth nyjes 9DVs linja H. Nga
fig.L#D($) shohim se kjo linje eshte $a$hed ne nyjen LH. Ne kete pike hardware mund te
update#oje direktorine entry 9 qe do te thote se linja tani eshte ne nyjen H8 dhe me pas te
dergoje nje mesa'h ne nyjen LH, duke njoftuar kete te kaloje linjen ne nyjen H8 dhe te
shfuqi'oje $a$he#ne e saj.
-e te llogarisim se sa memorje 'ihet nga direktorite. *do nyje ka &D (; .,( dhe H
&L
G#
bit entries per te mbajtur gjurmet e .,(#it. !ra direktoria e siperme ka rreth G%H
&L
bite te
ndara nga &D (; ose rreth &.CDQ, e $ila eshte pergjithesisht e pranueshme (ndone se ajo
duhet te jete memorje me shpejtesi te larte, gje qe rrit koston e saj). (adje me linje
$a$he#je 9H#byte o"erhead#i duhet te jete MQ. )urse me &HL#byte linje $a$he#je, ajo duhet
te jete poshte &Q.
Nje kufi'im i qarte i ketij projekti eshte se nje linje (line) mund te jete $a$hed ne nje nyje
(node) te "etme. !er te lejuar linjat qe te jene $a$hed ne shume nyje, ne na duhen disa
rruge per po'i$ionimin e gjithe kztyre, pr shembull te 'h"leresoje ose te update#oje ato
ne nje shkrim. k'istojne opsione te ndryshme per te lejuar $a$hing ne nyje te ndryshme
ne te njejten kohe, por nje diskutim i ketyre mund te trajtohet jashte ketij libri.
L.&.H Llojet e Sistemeve Operativ ne Multiprocesore (Multiprocessor Operating
System Types)
Nani le te shkojme nga multipro$esoret hardware ne multipro$esoret software, ne menyre
te "e$ante, ne sistemet e operimit multipro$esore. Aane te mundshme disa "ariante. (e
poshte ne do te studiojme tre prej tyre.
Cdo CPU Ka Sistemin e Vet Operativ
.ruga me e thjeshte e mundshme per te organi'uar nje sistem operimi multipro$esore
eshte qe ne menyre statike te ndahet memorja ne aq parti$ione sa pro$esore ka dhe $do
*!+ te kete memorjen e "et pri"ate, si dhe kopjen e "et pri"ate te sistemit operati". Ne
fakt, n *!+#te me pas do te operojne si n kompjutera te pa"arur. Nje optimi'im i qarte
eshte qe te lejojme te gjitha *!+ te ndajne kodin e sistemit operati" dhe te bejne "etem
kopje pri"ate te te dhena"e si$ tregohet ne fig L#C.

)jo skeme eshte akoma me e mire se duke patur n kompjutera te ndara, sepse kjo i lejon
te gjitha makina"e te ndajne nje bashkesi disqesh dhe pajisjet e tjera 6/: dhe gjithashtu
kjo skeme lejon memorjen te ndahet (shared) ne menyre fleksibel. !r shembull, n qofte
se nje dite nje program i madh i paperdorur do te ek'ekutohet, nje nga *!+ do 'inte nje
pjese e%tra te madhe te memorjes per kohe'gjatjen e ketij programi.>e$ kesaj, pro$eset
mund te komunikojne ne menyre efi$iente me nje pro$es tjeter duke patur, le te themi nje
prodhues (produ$er), i $ili te jete ne gjendje te shkruaje te dhenat ne memorje dhe nje
konsumator per te terhequr te dhenat nga "endi ku prodhuesi i shkruan ato.
shte nje referen$e e hollesishme, shume e "lefshme e kater aspekte"e te projektit e $ila
nuk mund te jete shume e qarte.
para, kur nje pro$es kryen nje thirrje sistemi, kjo thirrje eshte e 'ene dhe merret me
*!+#ne e "et duke perdorur strukturat e te dhena"e ne tabelat e sistemit te "et operati".
dyta, per sa kohe $do sistem operati" ka tabelat e "eta, ai gjithashtu ka edhe bashkesine
e "et te pro$ese"e qe ky sistem i skedulon "ete. )etu nuk ndodh ndarja e pro$ese"e.
N qofte se nje user logon ne *!+ &, te gjitha pro$eset e tij ek'ekutohen ne *!+ &. 1i
rrjedhoje, mund te ndodhe qe *!+ & te jete bosh ndersa *!+ H te jete e mbushur me
pune.
treta, nuk ndodh ndarja e faqe"e. (und te ndodhe qe *!+ & te kete faqe per te ruajtur
ndersa *!+ H te jete duke faqosur (paging) ne menyre te "a'hdueshme.
Nuk ka asnje rruge qe *!+ H te marre hua disa faqe nga *!+ & derisa shperndarja e
memorjes eshte fikse.
katerta, dhe me e keqja, n qofte se sistemi operati" mban nje buffer $a$he te blloqe"e
te diskut te perdorur se fundi, $do sistem operati" e ben kete ne menyre te pa"arur nga nje
tjeter. )eshtu qe mund te ndodhe qe nje bllok disku te jete present ose dirty ne shume
buffer $a$he ne te njejten kohe, duke nga dhene nje re'ultat te gabuar. (enyra e "etme
per te 'gjidhur kete problem eshte qe te eleminohen blloqet e $a$he#se. !er ta bere kete
nuk eshte e "eshtire por kjo ul shume performan$en.
Master-Slave Multiprocessors
!er keto arsye, ky model eshte jo shume i perdorur ndone se ky eshte perdorur ne
fillimet e multipro$esore"e, kur qellimi ishte pershtatja e disa multipro$esore"e te rinj sa
me shpejt te ishte e mundur. Nje model i dyte tregohet ne fig.L#L. )etu, nje kopje e
sistemit operati" dhe tabelat e saj jane pre'ente ne *!+ &dhe jo ne ndonje *!+ tjeter. Ne
gjitha thirrjet sistem jane per te *!+ & qe te perpunohen atje. 5jithashtu *!+ & mund te
ek'ekutoje pro$eset user n qofte se ka *!+ time te mbetur. )y model quhet master-
slave ku *!+ & eshte master dhe gjithe te tjeret jane sla"es.
.

(odeli master#sla"e 'gjidh shumi$en e probleme"e te modelit te pare. )a nje strukture te
"etme te dhenash qe mban gjurmen e pro$ese"e ready (gati).
)ur nje *!+ punon bosh, ajo therret sistemin operati" per nje pro$es qe te ek'ekutohet
dhe per$akton njerin. )eshtu qe asnjehere nuk mund te ndodhe qe nje *!+ te jete bosh
ndersa nje tjeter te jete e mbingarkur ose plot.
Ne menyre te ngjashme, faqet mund te shperndahen pergjate gjithe pro$ese"e ne menyre
dinamike dhe ndodhet "etem nje buffer $a$he, keshtu qe nuk mund te kete mosperputhje.
!roblemi ne kete model eshte se me disa *!+, master#i do jete si nje Fgryke shishejeF.
(egjithate, ai mund te merret me te gjitha thirrjet sistem nga te gjitha *!+#te.
N qofte se, le te themi, &8Q e gjithe kohes eshte har%huar duke u marre me thirrjet
sistem, atehere &8 *!+ do te mbushin shume master#in, dhe me H8 *!+ ai do jete
plotesisht i mbingarkuar.
)eshtu qe ky model eshte i thjeshte dhe i 'batueshem per mikropro$esoret e "egjel,
ndersa per te medhenjte ai deshton.
Symmetric Multiprocessors

(odeli yne i trete, SMP ((ultipro$esoret 1imetrike) eliminon asimetrite. )y eshte nje
kopje e sistemit operati" ne memorje por edhe ndonje *!+ mund ta ek'ekutoje ate. )ur
behet nje thirrje e sistemit, *!+#ja ne te $ilen eshte kryer thirrja e sistemit bie ne )ernel
dhe pro$eson thirrjen e sistemit. (odeli 1(! eshte ilustruar ne figuren L.G.
)y model balan$on pro$eset dhe memorjen ne menyre dinamike, perderisa ka nje set
tabelash te sistemit operati". ,i gjithashtu eleminon *!+ master bottlene$k pasi nuk ka
master. !or ai 'oteron te tjera probleme. Ne "e$anti, ne qofte se dy ose me shume *!+
ek'ekutojne kodin e sistemit operati" ne te njejten kohe, re'ultati do te jete shkaterrues.
6magjinoni dy *!+ qe punojne njekohesisht duke 'gjedhur te njejtin pro$es per ta
ek'ekutuar ose ti drejtohen te njejtes faqe te lire te memorjes. (enyra me e mire per te
'gjidhur keto problem eshte bashkimi i nje mute% (pr shembull, lo$k) me sistemin
operati", duke e bere te gjithe sistemin nje 'one te madhe kritike. )ur nje *!+ do te
ek'ekutoje kodin e sistemit, duhet fillimisht te marre ne 'oterim mute%#in. N qofte se
mute%#i eshte i ky$ur, i duhet te prese. Ne kete menyre, $do *!+ mund te ek'ekutoje
sistemin operati", por ne nje kohe te $aktuar.
)y model funksionon, por ka disa"anta'he po aq sa modeli master#sla"e. 1erish
supo'ojme qe &8Q e kohes totale eshte shpen'uar brenda sistemit operati". (e H8 *!+
do te kete nje rradhe te gjate te *!+#"e qe presin te hyjne ne sistem. !er fat te mire, eshte
e thjeshte te permiresohet. 1hume pjese te sistemit operati" jane te pa"arura nga njera#
tjetra. !er shembull, nuk ka asnje problem me nje *!+ qe ek'ekuton skedulerin nderkohe
qe nje *!+ tjeter po mban nje thirrje te sistemit file dhe nje *!+ e trete pro$eson nje
page fault.
)y rregull $on ne ndarjen e sistemit operati" ne rajone kritike te pa"arura qe nuk
nder"eprojne me njera#tjetren. *do rajon kritik mbrohet nga mute i tij personal, keshtu qe
ne nje kohe te $aktuar "etem nje *!+ mund ta ek'ekutoje ate. Ne kete menyre arrihet me
shume paraleli'em.
5jithese si fare mire mund te ndodhe qe disa tabela, si tabelat e pro$esit te perdoren nga
shume 'ona kritike. !er shembull, nje tabele pro$esi ne"ojitet per skedulim, por
gjithashtu per thirrjen e sistemit te ndare dhe gjithashtu permbajtjen e sinjalit. *do tabele
qe mund te perdoret nga shume 'ona kritike i ne"ojitet mute%#i i tij personal. Ne kete
menyre nje 'one kritike mund te ek'ekutohet nga nje *!+ e "etme ne nje kohe te $aktuar
dhe nje tabele kritike eshte e aksesueshme nga nje *!+ e "etme ne nje kohe te $aktuar.
1humi$a e multipro$esore"e moderne perdorin kete organi'im. !jese me e "eshtire ne
shkrimin e sistemit operati" nga nje makine, nuk eshte se kodi aktual eshte shume i
ndryshem nga nje sistem i rregullt operati". !jesa me e "eshtire eshte ndarja ne 'ona qe
ek'ekutohen njekohesisht nga *!+ te ndryshme pa nderhyre te njera#tjetra jo "etem ne
menyra te "eshtira, indirekte, por per me teper $do tabele e perdorur nga dy ose me
shume 'ona kritike duhet te mbrohet e ndare nga nje mute% dhe te gjitha kodet qe
perdorin tabelen duhet te perdorin mute%#in ne menyre korrekte.
!er me teper, duhet treguar kujdes i madh per te shmangur bllokimet. Ne qofte se dy 'ona
kritike kane ne"oje per tabelen @ dhe tabelen ;, dhe njera prej tyre kerkon , te paren dhe
tjetra kerkon ; te paren, heret a "one nje bllokim do te ndodhe dhe askush sOdo ta dije
pse. Neorikisht, te gjitha tabelat mund te kerkojne "lera integrale dhe 'ona"e kritike
mund tOju kerkohet te perfshije tabela ne rend rrites. )jo strategji shmang bllokimet, por i
kerkon programuesit te mendoje me shume kujdes $ilat tabela i ne"ojiten se$iles 'one
kritike per te bere kerkesat sipas rradhes se duhur.
Neksa kodi 'h"illohet me kalimin e kohes, nje 'one kritike mund te kete ne"oje per nje
tabele qe nuk i ne"ojitej me pare. Ne qofte se programuesi eshte i ri dhe nuk e kupton
logjiken e plote te sistemit, do te tundohet me pas ne marrjen e mute%#it ne tabele ne
piken qe ne"ojitet dhe e $lirojne ate kur nuk ne"ojitet me. 5jithese si, logjikisht kjo mund
te ndodhe duke $uar ne bllokime, per te $ilat perdoruesi "ihet ne dijeni teksa sistemi
behet i qendrueshem. (arrja e sakte nuk eshte e thjeshte dhe mbajtja per nje periudhe te
gjate kohore ne ndryshimin e "a'hdueshem te programues"e eshte shume e "eshtire.
8.1.3 Sinkronizimi Multiprocesor (Multiprocessor Synchronization)
*!+#te ne nje multipro$esor 'akonisht kane ne"oje te sinkroni'ohen. 1apo pame rastin
ne te $ilin 'onat kritike te kernelit dhe tabelat duhet te jene te mbrojtura nga mute%et. -e
te shikojme tani shkurt se si punon aktualisht ky sinkroni'im ne nje multipro$esor.
!er te filluar, primiti"at e duhura te sinkroni'imit jane "ertet te ne"ojshme. Ne se nje
pro$es ne nje multipro$esor ben nje thirrje sistem qe kerkon akse simin e disa tabela"e
kritike ne kernel, kodi i kernelit "etem mund te hakti"i'oje interruptet perpara se ta kape
tabelen. ,i me pas mund te beje punen e tij duke ditur qe ai do te jete i afte te perfundoje
pa "jedhur ndonje pro$es tjeter dhe duke kapur tabelen perpara se te perfundoje. Ne nje
multipro$esor, hakti"i'imi i interrupte"e ndikon "etem tek *!+ qe po bente
hakti"i'imin. *!+#te e tjera mund te "a'hdojne te ek'ekutojne dhe tashme mund te
kapin tabelen kritike.
1i pasoje, nje protokoll i pershtatshem mute% duhet te perdoret dhe te respektohet nga te
gjitha *!+#te per te garantuar qe mutual e%$lusion te punoje.
!jesa kryesore e nje protokolli praktik mute% eshte nje instruksion qe lejon nje fjale
memorje te inspektohet dhe te "endoset ne nje opera$ion te pandashem. !ame se si N1-
(Nest and 1et -o$k) ishte perdorur ne fig. H#HH per te implementuar 'onat kritike. 1i
diskutuam edhe me pare, ajo fare ben ky instruksion eshte qe le%on nje fjale memorje
dhe e ruan ate ne nje regjister. (enjehere, ai shkruan nje & (ose disa "lera te tjera jo'ero)
ne fjalen e memorjes. 1igurisht, ai merr dy $ikle busesh te ndara per te treguar le%imin
dhe shkrimin e memorjes. Ne nje multipro$esor, per sa kohe qe nje instruksion nuk mund
te ndahet pergjysme, N1- punon gjithmone si u supo'ua.
Nani le mendojme se fare mund te ndodhe ne nje multipro$esor. Ne figuren L#&8 shohim
rastin me te keq te kohe'imit, ne te $ilin fjala &888 e memorjes, po perdoret si nje
bllokues (lo$k) qe fillimisht eshte 8. Ne hapin &, *!+ & le%on fjalen dhe merr nje 8. Ne
hapin H, perpara se *!+ & te kete mundesine te rishkruaje fjalen ne &, *!+ H e merr
fjalen dhe gjithashtu e le%on si 8. Ne hapin 9, *!+ & shkruan nje & tek fjala. Ne hapin M,
*!+ H gjithashtu shkruan nje & tek fjala. Ne dyja *!+#te marrin mbrapsht nje 8 nga
instruksioni N1-, keshtu qe te dyja tani kane akses tek 'ona kritike dhe mutual e%$lusion
deshton.

6nstruksioni N1- mund te bllokohet ndersa busi nuk mund te bllokohet.)eto M hapa
tregojne sekuen$en e ngjarje"e ku demonstrohet nje deshtim.
!er te ndaluar kete problem, instruksioni N1- se pari duhet te bllokoje busin duke
ndaluar *!+#te e tjera qe ta aksesojne, te beje te dy akse simet e memorjes, dhe me pas te
'hbllokoje busin. @akonisht, bllokimi i busit behet duke kerkuar busin me ane te
protokollit kerkese te perdorimit te busit, me pas duke kerkuar disa linja busi spe$iale
derisa te ,y $iklet te jene kompletuar. !er sa kohe qe kjo linje spe$iale kerkohet, asnje
*!+#je tjeter nuk do ti jepet akse simi i busit. )y instruksion mund te implementohet
"etem ne nje bus qe ka linjat e ne"ojshme dhe protokollin (hardware) per perdorimin e
tyre. ;uset moderne i kane keto lehtesira, por me perpara ato nuk i kishin keto dhe ishte e
pamundur te implementoje nje instruksion N1- ne menyre korrekte. )jo eshte arsyeja
pse protokolli i petersonit ishte shpikur, per te sinkroni'uar teresisht nje software.
Ne se N1- implementohet dhe perdoret korrektesisht, ajo mund ta beje mutual e%$lusion
te punoje. (egjithate, kjo metode mutual e%$lusion perdor nje spin lock sepse *!+ e
kerkuar "etem "endoset ne nje $ikel duke testuar shpejtesine e lo$k. Ao "etem qe
shperdoron kohen e *!+ (ose *!+#"e) te kerkuara, por ai mund te "endose nje ngarkese
te madhe ne bus ose memorje, duke ngadalesuar punen e gjithe *!+#"e te tjera qe
perpiqen te bejne normalisht punen e tyre.
Ne pamje te pare, mund te duket se pre'en$a e $a$hing duhet te eleminoje problemin e
permbajtjes se busit, por nuk eshte e "ertete. Ne teori, kur *!+ e kerkuar ka le%uar fjalen
lo$k (blloko), ajo duhet te marre nje kopje ne $a$he#ne e saj. !er sa kohe qe asnje *!+
tjeter nuk tenton te perdore lo$k, *!+ e kerkuar duhet te jete e afte te ek'ekutoje jashte
$a$hese se saj. )ur *!+ 'oteron lo$k, ajo shkruan nje & per ta lene ate, protokolli i
$a$hese automatikisht 'h"lereson te gjitha kopjet e tij ne ato pak $a$he duke kerkuar
"lerat korrekte per tu marre perseri.
!roblemi eshte qe $a$he#ja "epron ne blloqe 9H ose DM byte. @akonisht, fjalet perreth lo$k
ne"ojiten per *!+ qe po mban lo$k. (eqene se instruksioni N1- eshte nje shkrim (sepse
modifikon lo$k), atij i duhet nje akses esklu'i" ne bllokimin e $a$hese duke permbajtur
lo$k. !randaj, do N1- shfuqi'on bllokimin e mbajtesit te lo$k ne $a$he dhe merr nje
kopje pri"ate, ekslu'i"e per *!+ e kerkuar. 1apo mbajtesi i lo$k has nje fjale te perafert
me lo$k, blloku i $a$hese 'h"endoset ne makine. 1i pasoje, i gjithe blloku i $a$hese qe
permban edhe lo$k ne menyre konstante shkon dhe "jen midis mbajtesit te lo$k dhe
kerkuesit te lo$k, duke gjeneruar edhe me shume trafik ne bus sesa le%imi i nje fjale te
"etme lo$k.
Ne se ne mund te lirohemi nga te gjitha N1- e shkaktuara te shkruara ne anen e kerkuar,
ne mund te reduktojme shperdorimin e $a$hese ndjeshem. )y synim mund te arrihet duke
bere qe *!+ e kerkuar se pari te beje nje le%im te paster per te pare ne se lo$k eshte i lire.
>etem ne se lo$k duket te jete i lire duhet te beje nje N1- per ta siguruar ate. .e'ultati i
ketij ndryshimi te "ogel eshte qe shumi$a e 'gjedhje"e tani eshte le%im ne "end te
shkrimit. Ne se *!+ qe po mban lo$k "etem po le%on "ariablat ne te njejtin bllok
$a$heje, se$ili prej tyre mund te kene nje kopje te bllokut te $a$hese ne menyren e
sharuar read#only, duke eleminuar te gjitha transferimet e bllokut te $a$hese. )ur lo$k
perfundimisht lirohet, 'oteruesi ben nje shkrim, i $ili kerkon nje akses ekslu'i", keshtu
shfuqi'ojme te gjitha kopjet e $a$he"e te mbetura. Ne le%imin tjeter nga *!+ e kerkuar,
blloku i $a$hese do te ringarkohet. Nheksojme se ne se dy apo me shume *!+ po
pretendojne per te njejtin lo$k, mund te ndodhe qe te dy shikojne qe eshte i lire
menjehere, te dy bejne nje N1- per ta marre ate. >etem njera prej tyre do te kryhet me
sukses, dhe keshtuqe ketu shkemi kushte shpejtesie sepse detyra e "ertete eshte bere nga
instruksioni N1-, dhe ky instruksion eshte atomik. =uke pare qe lo$k eshte i lire dhe
duke u perpjekur per ta marre ate menjehere me nje *R u N1- nuk na garanton qe mund
ta marrim. Ndonje tjeter mund te fitoje.
Nje rruge tjeter per te reduktuar trafikun e busit eshte perdorimi i algoritmit thernet
binary e%ponential ba$koff (,nderson, &GG8). Ne "end qe te 'gjedhe "a'hdimisht, si ne
fig. H#HH, mund te futet nje $ikel "one se midis 'gjedhje"e. /illimisht "onesa eshte nje
instruksion. Ne se lo$k eshte ende i bllokuar, "onesa dyfishohet ne dy instruksione, ne
kater dhe keshtu me radhe deri ne disa maksimume. Nje maksimum i ulet jep nje
pergjigje te shpejte kur lo$k eshte lene, por shperdoron me shume $ikle busesh ne $a$he.
Nje maksimum i larte redukton shperdorimin e $a$hese por me mimin qe nuk njofton
shpejt qe lo$k eshte i lire. )y algoritem mund te perdoret me ose pa le%imet e pastra duke
na paraprire instruksioni N1-.
Nje tjeter ide me e mire eshte qe ti japim do *!+ deshiren per te siguruar mute%
"ariablen e tij pri"at lo$k per ta testuar, si tregohet ne figuren L#&&. >ariabla duhet te
rrije ne nje bllok $a$heje te ndryshem per te ndaluar konfliktin. ,lgoritmi punon duke
pasur nje *!+ qe deshton per te siguruar alokimin e lo$k, dhe e "endos "eten ne fund te
listes se *!+#"e duke pritur per lo$k. )ur mbajtesi aktual i *!+ del nga 'ona kritike, ai
liron lo$k pri"at qe *!+ e pare ne liste po testonte (ne $a$hene e tij). )jo *!+ me pas
hyn ne 'onen e tij kritike. )ur mbaron pune, ajo liron lo$k pasues qe eshte duke u
perdorur, dhe keshtu me rradhe. (egjithese protokolli eshte disi i komplikuar (per te
e"ituar "endosjen e dy *!+#"e ne fund te listes njekohesisht), ai eshte efient dhe i lire
nga star"a$ioni.

Figura 8-11. !erdorimi i multiple lo$ks per te e"ituar shperdorimin e $a$hese.
Spinning kundrejt Switching
(e pare ne kemi supo'uar qe nje *!+ qe i ne"ojitet nje mute% lo$k "etem pret per te, per
me teper duke 'gjedhur "a'hdimisht, ne menyre te nderprere ose duke e "endosur "eten
ne nje liste pritese te *!+#"e. Ne disa raste, nuk ka nje 'gjedhje reale per ti kerkuar *!+
"etem te prese. !r shembull. supo'ojme se disa *!+ jane pa pune dhe iu duhet te
aksesojne listen e sharuar ready per te 'gjedhur nje pro$es per ta ek'ekutuar. Ne se lista
ready eshte e bllokuar, *!+ nuk mund te nderprese ate fare ajo po ben dhe te ek'ekutoje
nje pro$es tjeter, sepse qe te bejme kete duhet te kemi akses tek lista ready. /uhet pritur
derisa te mund te sigurohet lista ready.
(egjithate, ne raste te tjera ka nje alternati"e. !r shembull. ne se disa threade"e ne nje
*!+ iu duhet te aksesojne buferin e file#"e sistem te $a$hese dhe ai eshte aktualisht i
bllokuar, *!+ mund te "endose te komutohet (swit$h) ne nje tjeter thread ne "end qe te
prese. Beshtja se kur te bejme nje spin (rrotullim) dhe kur te bejme nje komutim threadi
ka qene nje eshtje e shume kerkime"e, disa prej te $ile"e do te diskutohen me poshte.
Nheksojme se kjo nuk ndodh ne sistemet me nje pro$esor sepse spinning nuk ka shume
kuptim kur nuk ka *!+ tjeter per te lene te lire lo$k. Ne se nje thread perpiqet te siguroje
nje thread dhe deshton, ai eshte gjithmone i bllokuar per ti dhene 'oteruesit te lo$k nje
mundesi per ta ek'ekutuar dhe per ta lene te lire lo$k.
=uke supo'uar qe spinning dhe komutimi i threadit jane te dyja opsione te mundshme,
eshtja eshte si me poshte. 1pinning shperdoron direkt $iklet e *!+. Nestimi i nje lo$k
"a'hdimisht nuk eshte nje pune produkti"e. )omutimi, megjithate, shperdoron gjithashtu
$iklet e *!+, meqene se gjendja aktuale e threadit duhet te ruhet, duhet te sigurohet lo$k
ne listen ready, duhet te 'gjidhet nje thread, gjendja e tij duhet te ngarkohet, dhe duhet te
startoje. 5jithashtu, $a$heja e *!+ do te permbaje te gjithe blloqet gabim, keshtu qe
shume deshtime $a$heje te kushtueshme do te ndodhin kur threadi i ri starton
ek'ekutimin. =eshtimet e N-; jane gjithashtu te ngjashme.
!erfundimisht, duhet te behet nje komuntim tek threadi origjinal, me shume deshtime
$a$heje qe e shoqerojne. *iklet e shpen'uara duke bere keto dy komutime plus dhe
deshtimet e $a$hese shperdorohen.
Ne se dihet qe mute%et pergjithesisht mbahen pr shembull. per 78qsek dhe duhet & msek
per te komutuar nga threadi aktual dhe & msek per komutimin mbrapsht, eshte me
efi$ente qe "etem te bejme spin mbi mute%. Nga ana tjeter, ne se mesatarja e mute%
mbahet per &8msek, eshte problem i rendesishem berja e dy komutime"e. !roblemi eshte
qe 'onat kritike mund te "ariojne konsiderueshem ne kohe'gjatjen e tyre, keshtu qe $ila
eshte rruga me e mireU
8.1.4 SCHEDULIMI MULTIPROCESOR
Ne nje pro$esor te "etem s$hedulimi eshte nje dimensional. !yetja e "etme qe i duhet
pergjigjur me doemos eshteJ E*ili pro$es do te ek'ekutohet me "oneUF Ne sistemet me
shume pro$esor s$hedulimi eshte dy dimensional. 1$heduleri duhet te 'gjedhe se $ilin
pro$es te ek'ekutoje dhe ne $ilen *!+ ta ek'ekutoje. )y dimension shtese e komplikon
shume pro$esin e s$hedulimit.
Nje tjeter faktor komplikues eshte se ne disa sisteme, pro$eset nuk kane lidhje me njeri
tjetrin ndersa ne disa te tjre ato grupohen ne grupe. Nje shembull i kesaj situate eshte nje
sistem timesharing ne te $ilin user te "e$ante ini$iali'ojne pro$ese te "e$ante. !ro$eset
jane te palidhur me njeri tjetrin dhe mund te per'gjidhen pan"arsisht nga pro$eset e tjere.
)jo situate ndodh shpesh ne ambjemtet per 'h"illimin e programe"e. 1isteme te medha
'akonisht konsistojene ne nje numer te $aktuar file header qe permbajne ma$ros,
per$aktimet e tipe"e dhe deklarime "ariablash qe perdoret nga kodi i file. )ur nje file
header ndryshon, i gjithe kodi i tij duhet et rikompilohet. !rogrami make perdoret
gjeresisht per te mena%huar 'h"illimin. )ur thirret make, ai fillon kompilimin e atyre
kode"e te file qe duhet rikompiluar. /ile objekt qe jane akoma te "lefshem nuk
ndryshojne.
>ersioni origjinal i make bente punen e tij ne menyre sekuen$iale, por "ersionet e reja te
di'enjuara per shume pro$esore mund te fillojne te gjithe kompilimin njeheresh. Ne se
duhen &8 kompilime, nuk ka kuptim te 'gjedhesh G prej tyre shpejt dhe ta lesh te fundit
per me "one, kjo do te sjelle nje performan$e te ulet pasi puna e kerkuar nga useri nuk do
te perfundonte. Ne kete rast pro$eset duhet te per'gjidhen si grup.
TIMESHARING
-e te shohim rastin e per'gjedhjes se pro$ese"e te pa"arura nga njeri tjetriJ me "one do te
shohim si te per'gjedhim pro$ese te lidhur midis tyre. ,lgoritmi me i thjeshte
per'gjedhes qe merret me pro$eset e pa"arur midis tyre eshte qe te kesh nje sistem te
madh strukture te dhenash per pro$eset gati, ndoshta "etem nje liste, por me shume
mundesi nje bashkesi listash per pro$eset me priorite te ndryshem si$ jepet ne /ig. L#
&H(a)
)etu te &D *!+#te jane te 'ena, dhe nje set pro$esesh te $ilet kane priorite te ndryshem
pret qe te ek'ekutohet. *!+#ja e pare q mbaron punen e saj eshte *!+ M, qe me pas merr
rradhet nga te $ilet per'gjidhen pro$eset dhe selekton pro$esin me prioritet me te larte qe
eshte ne kete rast ,, si$ tregohet ne /ig.L#&H(b). (e pas *!+ &H eshte pa pune dhe
'gjedh pro$esin ;, si$ tregohet ne /ig.L#&H($). !er sa kohe pro$eset nuk kane lidhje midis
tyre, berja e s$hedulimit ne kete menyre eshte shume e arsyeshme.
=uke pasur nje strukture te "etme s$hedulimi te perdorur nga te gjithe *!+#te, kjo ben qe
*!+#te te ndajne kohen e perdorimit (timeshare).
=y disa"anta'het e kesaj menyre janeJ konfliktet per perdorimin e kesaj strukture duke
pasur parasyshe se numri i *!+#"e do te rritet dhe o"erhead#i qe krijohet kur kemi nje
nderrim midis pro$ese"e kur nje pro$es bllokohet per 6/:.
Figura 8-12. !erdorimi i nje strukture te dhenash per s$hedulim tek nje multipro$esor.
5jithashtu eshte e mundur qe nje kontekst swit$h te ndodhe kur nje pro$es yquantumy
mbaron. Ne nje multipro$esor, qe ka karakteristika te $aktuara jo pre'ente ne nje
unipro$esor, supo'ojme qe pro$esi ka nje spin lo$k, jo i 'akonshem ne nje unipro$esor,
si$ do e tregojme me poshte. Ne nje unipro$esor, spin lo$ks jane jo shume te perdorshem
keshtu qe, n qofte se nje pro$es nderpritet ndone se ka nje mute%, atehere edhe pro$esi
tjeter starton dhe perpiqet te marre mute%#in. )y do te bllokohet menjehere, keshtu qe ajo
pak kohe do te humbase.

!er te rreguluar kete anomali, disa sisteme perdorin smart scheduling, ne te $ilen nje
pro$ess qe ka siguruar nje spin lo$k "endos nje pro$ess#wide flag, pra nje flamur qe te
tregoje se ky pro$es tashme ka nje spin lo$k. )ur pro$esi liron bra"en, the lo$k, ai
pastron flag#un. (e pas s$heduler#i nuk nderpret nje pro$ess duke mbajtur nje spin lo$k,
por me mire merr ate pak kohe per te kompletuar 'onen e tij kritike dhe liron bra"en.
Nje tjeter $eshtje qe luan rol ne s$heduling eshte fakti qe ndersa gjithe *!+#te jane te
njejta, disa *!+ jane akoma me te njejta. Ne menyre te "e$ante, kur pro$esi ,
ek'ekutohet per nje kohe te gjate ne *!+ b, $a$he#ja *!+ >b do te jene plot me blloqet e
,#se.
N qofte se pro$esi , kerkon te ek'ekutohet serish se shpejti, ai do bej mire te
ek'ekutohet ne *!+ - sepse $a$he#ja mund te permbaje akoma blloqe te ,#se. !rania e
blloqe"e te $a$he#se do sjelle rritjen e $a$he hit rate dhe si rrjedhim rritjen e shpejtesise
se pro$esit.
>e$ kesaj, N-1 gjithashtu mund te permbaje faqet e duhura, duke reduktuar gabimet e
N-;#se.
=isa multipro$esore perdorin ate qe quhet affinity scheduling (lidhje skedulimi).
)etu ideja kryesore eshte qe te behet nje perpjekje serio'e per te patur nje pro$ess te
ek'ekutueshem ne *!+#te e njejta.Nje menyre per te krijuar kete arritje eshte qe te
perdoret nje algoritem skedulimi me dy ni"ele (two-level scheduling algorithm). )ur
nje pro$es eshte krijuar, ai ngarkohet ne nje *!+. Ngarkimi i pro$ese"e ne *!+ eshte
ni"eli i siperm i algoritmit. 1i re'ultat, $do *!+ merr koleksionin e "et te pro$ese"e.
1kedulimi aktual i pro$ese"e eshte ni"eli i fundit te algoritmit. )jo behet nga $do
kompjuter ne menyre te "e$ante, duke perdorur karakteristikat ose disa arsye te
tjera.=uke u perpjekur te mbajme nje pro$es ne te njejten *!+, terheqja e $a$he#se rritet.
(egjithate, n qofte se nje *!+ nuk ka pro$ese per te ek'ekutuar, ai merr nje pro$es nga
nje *!+ tjeter duke bere qe te mos punoje bosh.
1kedulimi me dy ni"ele ka tre te mira. para, ky shperndan rregullisht ngarkimin
barabar ne *!+#te e perdorshme. dyta, a"anta'hi qendron ne lidhjen e $a$he#se kur
eshte e mundur. treta, duke patur $do *!+ listen e saj gati, lufta per kete liste
minimi'ohet sepse perpjekjet per te perdorur listat e *!+#"e te tjera jane relati"isht jane
te rralla.
1pa$e 1haring
Nje tjeter metode per skedulimin e multipro$esorit, mund te jete kur pro$esoret jane te
lidhur me njeri#tjetrin ne ndonje lloj menyre. (e perpara ne permendem shembullim e
lidhjes ne paralel si nje nga rastet. 5jithashtu mund te ndodhi qe nje pro$es i "etem mund
te lindi shume threads, te $ilat punojne sebashku. !er qellimin tone, nje pune qe konsiston
ne shume pro$ese te lidhura me njeri#tjetrin, ose nje pro$es qe konsiston ne shume kernel
threads, jane e njejta gje. Ne ketu do ti referohemi threads, si lloj te skedulimit, por
materiali mund te perdoret dhe per pro$eset gjithashtu. 1kedulimi i shume threads ne te
njejten kohe, nepermjet shume *!+#"e eshte quajtur spa$e sharing (ndarje e hapesires).
,lgoritmat me te thjeshte per spa$e sharing punojne ne kete menyre. 1upo'ojme se nje
grup i tere qe ka lidhje me threads eshte krijuar njekohesisht. Ne kohen qe krijohet,
skeduleri kontrollon ne qofte se ka po aq *!+ te lira sa threads jane. Ne qofte se jane,
$do thread#i i jepet *!+#ja e "et (dedikuar) dhe ata fillojne startimin, ne qofte se nuk ka
*!+ te mjaftueshme, asnje nga thread#et nuk fillon startimin derisa te kemi *!+ te
mjaftueshme. *do thread qendron ne *!+#ne e tij deri sa te perfundoje pro$esin, ne te
njejten kohe *!+#te e lira kthehen mbrapsht ne "endin e *!+#"e te lira. Ne qofte se nje
thread bllokohet nga 6/:, ai "a'hdon ta mbaje *!+#ne te 'ene, e $ila eshte thjesht ne
gjendje idle derisa thread te 'gjohet. )ur shfaqet thread i radhes aplikohet e njejta
pro$edure.
Ne nje moment kohe te $aktuar, nga ana sturkturore *!+#ja ndahet ne nje numer pjesesh,
ne se$ilen prej tyre "epron threads i nje pro$esi. Ne /ig.L#&9, per shembull, ne kemi
ndarjet te madhesise M, D, S dhe &9 te *!u#se, dhe H *!+ te pashenuara. (e kalimin e
kohes, numri dhe madhesia e $do parti$ioni do te ndryshoje ne "aresi te pro$esit qe eshte
apo qe u ek'ekutua.
!eriodikisht, duhet te kryhen dhe "endimet mbi skedulimin. Ne nje sistem me nje
pro$esor, kryerja e punes me te "ogel eshte algoritmi me i njohur per skedulimet qe jane
ne radhe. Ne menyre analoge algoritmat per multipro$esorin duhet te 'gjedhin pro$esin
qe i ne"ojitet numri me i "ogel i $ikle"e te *!+#se, i $ili eshte ai qe ka *!+#$ount b run#
time me te "ogel. (egjithate, ne praktike ky informa$ion disponohet rralle, keshtu qe
algoritmat jane te "eshtire per tu kryer. Ne fakt, studimet kane treguar qe, ti sherbesh te
parit qe "jen eshte e "eshtire.
Ne kete model te thjesht ndarjesh, nje pro$esh "etem pyet per disa numra *!+#she, dhe i
merr ato te gjitha ose pret sa te jene te lira. Nje menyre tjeter eshte qe pro$eset ne menyre
akti"e te mena%hojne shkallen e paraleli'mit. Nje menyre per te mena%huar paraleli'min
eshte qe te kemi nje ser"er qendror qe mban gjurmet se $ili pro$ess eshte duke u
eg'ekutuar dhe $ili do te eg'ekutohet, dhe sa eshte minimumi dhe maksimumi i *!+#"e
qe kerkohen. !eriodikisht, se$ila *!+ pyet ser"erin qendror se sa *!+ mund te perdori.
!astaj rregullon numrin e pro$ese"e duke i shtuar ose pakesuar, per ti njehsuar me ato qe
jane te lira. !er shembull, nje 3eb ser"er mund te kete 6, H, 7, &8, H8 ose nje numer tjeter
threadesh qe jane duke "epruar ne paralel. Ne qofte se aktualisht jane duke "epruar &8
threads dhe papritur ka nje kerkese me te madhe per *!+ dhe u eshte thene qe te
leshohen "etem 7, kur 7 threads e tjere mbarojne punen e tyre aktuale, atyre u thuhet qe te
dalin jashte ne "end qe tu jepet pune e re. )jo skeme lejon qe ndarja me pjese ne menyre
dinamike te perballoje punen qe ngarkohet me mire se nje sistem fiks, si$ eshte treguar ne
/ig.L#&9.
Gang Scheduling
Nje a"anta'h i qarte i spa$e sharing eshte eleminimi i multiprogramimit, i $ili eleminon
ne kontekst "artesine nga swit$hing. (egjithate, nje disa"anta'h po i njellojte eshte koha
qe humbet *!+#ja kur bllokohet dhe nuk ka asnje pune tjeter per te bere, derisa te jete
gati perseri. >a'hdimisht, njere'it kane bere perpjekje per te gjetur algoritma qe te
skedulojne menjehere, dhe kohen dhe hapesiren, "e$anerisht per pro$ese qe krijojne
multiple threads, te $ilet 'akonisht duhet te komunikojne me njeri#tjetrin.
!er te pare se $fare problemesh mund te dalin kur thread#et e nje pro$esi skedulohen ne
menyre te pa"arur, marrim ne shqyrtim nje sistem me threads ,
f
dhe ,, qe i perkasin
pro$esit ,, dhe threads ;
8
dhe ;, qe i perkasin pro$esit ;. thread#et ,
<
dhe ;
8
, jane
timeshared ne *!+{ne 8. Nhread#et , dhe ; jane timeshared ne *!+#ne &. Nhread#et
,
8
dhe , ne"ojitet qe te komunikojne shpesh. (enyra e komunikimit eshte qe ,
8
i $on
nje mesa'h ,
y
, nepermjet ,
t
, pastaj kthen mbrapsh nje pergjigje tek ,
8
, duke u ndjekur
nga nje tjeter sekuen$e e tille. -e te supo'ojme se, ,
a
dhe ;
%
fillojne te paret, si$ eshte
treguar ne /ig. L#&M.
Ne pjesen e kohes 8, ,
8
i dergon ,
l
nje kerkese, por ,
y
nuk e gjen ate derisa ai te "eproje
ne pjesen e kohes & duke startuar me &88 mse$. ,i dergon menjehere nje pergjigje, por
,
8
nuk merr pergjigje derisa ai te filloje te "eproje perseri me H88 mse$. .e'ultati tjeter
eshte nje sekuen$e pyetje#pergjigjesh ne $do H88 mse$, gje e $ila nuk eshte e mire.
@gjidhja e ketij problemi eshte gang s$heduling, i $ili eshte nje "ete rritje e $o#
s$heduling, 5ang s$heduling perbehet nga tre pjeseJ
&. 5rupet e threade#"e qe kane lidhje skedulohen si nje pjese e tere, nje gang.
H. Ne gjithe pjesetaret e nje gang#u "eprojne njeheresh, ne *!+ te ndryshme
timeshared.
9. Ne gjithe pjesetaret e gang fillojne dhe mbarojne ne te njejten kohe sebashku.
Nruku per te bere gang te skeduloje te gjithe punen eshte se te gjithe *!+#te jane
skeduluar ne menyre sinkrone. )jo do te thote qe koha eshte ndare ne quante diskrete si$
eshte treguar ne /ig. L#&M. ne fillim te $do kunati , te gjitha *!+#te jane riskeduluar dhe
nga nje thread i ri starton ne se$ilen prej tyre. (e startimin e quantumit qe pason, ndodh
nje tjeter skedulim. Nderkohe, asnje skedulim nuk ka perfunduar. Ne se nje thread
bllokohet, *!+#ja e tij qendron idle deri ne perfundim te quantiumit,
Nje shembull se si punon nje skedulim gang eshte dhene ne /ig. L#&7. ,ty ne kemi nje
multi pro$essor me gjashte *!+, te $ilat perdoren nga pese pro$esore, nga , tek , me
nje numer total prej HM threads te gatshem. 5jate kohes se slotit 8, threads ,
i
deri tek ,,
jane skeduluar dhe ek'ekutuar. 5jate kohes se slotit &, threads tf
8
, ; L
C
, *
o
, t#> dhe *
H
,
jane skeduluar dhe ek'ekutuar. 5jate kohes se slotit H, @Xs, pese threads dhe lF8 fillojne
te eg'ekutohen. 5jashte threads qe kane mbetur i perkasin pro$$esit , i $ili "epron ne
slotin 9. (e pas $ikli perseritet, fillon me slotin M, njesoj si sloti 8 dhe keshtu me rradhe.
6deja e skedulimit gang eshte qe te gjithe threads e nje pro$esi te "eprojne njekohesisht,
keshtu ne se nje nga ata $on nje kerkese tek nje tjeter, do te marri nje mesa'h pothuaj
menjehere dhe gjithashtu do te jete ne gjendje te pergjigje po menjehere. Ne /ig L#&7,
derisa te gjitha threads , "eprojne njekohesisht, gjate nje quantiumi, ato mund te $ojne
dhe te marrin nje numer te madhe mesa'hesh ne nje quantium, gje qe eleminon
problemin e /ig. L#&M.

8.2 MULTIKOMP1UTERAT
(ultipro$esoret jan shum te prhapur dhe shum EtrheqsF n faktin q ata ofrojne nj
model t thjesht komunikimiJ t gjitha *!+#te ndajn nj memorje t perbashkt.
!roeset mund t shkruajn mesa'h drejt memorjes i $ili mund te le%ohet nga proese t
tjera. 1inkroni'imi mund t bhet duke perdorur mute%#et, semaforet, monitored dhe
teknika te tjera te mir per$aktuara. =isa"anta'hi i tyre me i madh sht q
multiproesoret e medhenj paraqesin "shtirsi t medha ne ndertim, e $ila rrit dhe
koston e tyre.
!er t perballuar keto probleme sht br nj kerkim shume i madh ne multi
komjuterat, te $ilet jane *!+ tightly%couple, qe nuk ndajne memorje. 1e$ili prej tyre ka
memorjen e "et si$ shihet edhe ne fig. L.&(b). )eto sisteme njihen edhe me emra te tjere
si kompjutera cluster dhe COWS (Clusters of Workstations).
(ultikomjuterat jan shum t thjesht per tu ndertuar, sepse komponenti ba'e eshte
thjesht nj !* stripped#down me adi$ionin e nj karte t nderfaqes se rrjetit. 1igurisht,
sekreti per te arritur nje performan$e t larte eshte t projektosh nje rrjet nderlidhes dhe
nj karte nderfaqeje ne nje mnyre shum efi$ente. )jo situate eshte analoge me
ndertimin e nj memorjeje qe ndahet ose si$ quhet ndryshe memorje e Eshare#uarF ne nje
multiproesor. 1idoqofte, qellimi eshte t dergosh mesa'he ne nje rend prej
milisekondash, sesa te aksesosh memorjen ne nj kohe te rendit nanosec, pra kjo gje
eshte me thjeshte dhe me lire per tu arritur.
Ne leksionet qe "ijojne, ne do t hedhim nj "eshtrim te shkurter persa i perket hardware
te multikompjutera"e, "e$anerisht hardware te nderlidhjes ose interkoneksionit. (e pas
ne do te shohim software, duke filluar me software e rendit te ulet te komunikimit, per te
"a'hduar me tej me at t rendit t larte. =o t hedhim "eshtrimin gjithashtu edhe se si
memorja e share#uar mund te kapet edhe nga sisteme qe nuk e 'oterojne ate. !er ta
mbyllur ne do ek'aminojme skedulimin dhe balan$imin e ngarkeses (load balan$ing).
8.2.1 HARDWARE I MULTIKOMP1UTERAVE
Nyja ba'e e nje multikompjuteri konsiston neJ *!+, memorja, nderfaqe rrjeti dhe
ndonjehere perfshihet edhe hard disku. Nyja mund te paketohet ne nje !* standarte, por
pershtatesi grafik (adapteri), tastiera dhe mausi mungojne ne kt rast. Ne disa raste, !*
permban nje multiproesor board H#way ose M#way ne "end te nje *!+#je t "etme. !or
per thjeshtesi ne do te supo'ojme se do nyje ka "etm nje *!+. (ultikompjuteri
formohet nga organi'imi i qindra ose mijera nyje"e s bashku. (e poshte do te
permendim menyren se si hardware eshte organi'uar.
TEKNOLOG1IA E NDERLIDH1ES
*do nyje ka nje karte nderfaqeje rrjeti e shoqeruar me nj ose dy kabllo (fibra) qe dalin
jashte saj. )eto kabllo lidhin nyjet me swit$het. Ne nje sistem t "ogel mund te kete nje
swit$h ku jane lidhur t gjitha nyjet sipas topologjise 1N,. si ne /ig L#&D(a). )jo e
fundit aplikohet ne rrjetet thernet.
1i alternati"e e nje projektimi swit$h single, nyjet mund te formojne nj una'e, me dy
kabllo qe dalin jashte kartes se nderfaqes se rrjetit, ku njera del nga e majta dhe tjetra nga
e djathta, si$ shihet ne /ig L#&D(b). Ne ket lloj topologjie nuk ne"ojiten swit$h#e dhe kjo
eshte arsyeja pse nuk jane paraqitur ne figure.
Figure 8-16. Nopologji te ndryshme nderlidhjeje.(a) Nje swit$h i "etem(single
swit$h).(b) +na'a.(d) Nje torus double.(e) )ubi.(f) Nje hyper$ube M=.
Grid ose mesh sht nje projektim dydimensional i $ili perdoret ne shume sisteme
komer$iale, /ig L#&D($). )arakteri'ohet nga nj rregullsi shume e lart dhe nje lehtesi
shume e madhe per tu rritur n permasa. )a nje diameter q nenkupton rrugen me te
gjate ndermjet dy nyje"e dhe rritja e te $ilit eshte ne rela$ion me numrin e nyje"e si "ijonJ
rrenja katrore e numri te nyje"e. Nje "ariant i grid eshte double torus si ne /ig L.&D(d), i
$ili eshte nj grid me ane te lidhura. Ao "etem qe eshte me tolerant ndaj gabime"e se
gridi, por edhe diametri eshte m i shkurter sepse qoshet e kunderta mund te
komunikojne "etem n dy ker$ime.
)ubi i /ig L.&D(e) eshte nje topologji e rregullt tre#dimensionale. Ne kemi ilustruar nj
kub te permasa"e H%H%H, por ne pergjithesi ajo mund te jete e permasa"e k%k%k. Ne fig L#
&D(f), ne kemi nje kub kater#dimensional i $ili rrjedh nga ai tre#dimensional me nyjet
koresponduese t lidhura. Ne mund te bejme nj te permasa"e pese#dimensionale duke
klonuar strukturen e /ig L#&D(f) dhe te lidhim nyjet korresponduese per te formuar nje
bllok prej kater kubesh. !r t arritur ne dimensionin e gjashte, ne mund te replikonim
bllokun e kater kube"e dhe te nderlidhim nyjet koresponduese, dhe keshtu me rradhe. Nje
kub n#dimensional i formuar ne kt menyre sht quajtur hyper$ube. 1hume kompjutera
paralele e perdorin kete topologji sepse diametri rritet ne menyre lineare me
dimensionalitetin. (e fjale te tjera diametri eshte logaritmi me ba'e H i numrit te nyje"e,
pr shembull nje hyper$ube &8#dimensional ka &8HM nyje, por diametrin "etem &8 duke
shkaktuar "onesa t medha.
N multikompjutera perdoren dy skema swit$hing. Ne te paren do mesa'h ndahet
fillimisht (ose nga perdoruesi i software ose nga nderfaqja e rrjetit) ne nj EmaseFme
permasa maksimale e quajtur pakete. 1kema e swit$hing, e quajtur store-and-forward
packet switching, konsiston n dergimin ose injektimin e paketes ne swit$hin e pare nga
nyja burim e bordit te nderfaqes se rrjetit, si$ e shohim ne /ig L#&C(a). ;itet "ijne
njeheresh t gjith dhe kur ka ardhur e gjithe paketa, ajo kopjohet ne swit$hin e rradhes
gjate rruges si$ tregohet ne /ig L#&C(b). )ur paketa "jen ne swit$hin e po'i$ionuar ne
nyjen destina$ion, si ne /ig L#&C($), paketa kopjohet n ate nyjen e nderfaqes se rrjetit
dhe aktualisht ne .,(#in e tij.
Figura 8-17. 1tore#and#forward pa$ket swit$hing.
!a"arsisht nga fakti qe store#forward swit$hing sht fleksibel dhe efi$ente, ajo ka
disa"anta'hin kryesor te rritjes se "onesa"e gjate rrjetit nderlidhes. 1upo'ojme qe koha
qe na duhet pr te le"i'ur nje pakete ne nj ker$im eshte N nse$.>onesa pergjate ketij
rrjeti koneksioni sht MN sepse paketa duhet te kopjohet kater here pr te kaluar nga
*!+ & ne *!+ H (drejt ,#se, *#se, =#se dhe drejt destian$ionit qe eshte *!+#ja), dhe per
m teper nuk mund te behet asnje kopje derisa paketa e meparshme te kete perfunduar.
Nje rruge eshte projektimi i nje rrjeti hibrid, duke adaptuar disa nga $ilesite e $ir$uit T
pa$ket swit$hing. !er shembull, do pakete mund te ndahet logjikisht ne njesi me te
"ogla. 1a me shpejt qe njesia e pare te arrije te swit$hi, ajo mund te le"i'i drejt swit$hit
tjeter, madje edhe me shpejt se mberritja e EbishtitF (tail) te paketes.
,lternati"a tjeter swit$hing, circuit switching, konsiston n para"endosjen e rruges
(path) ndermjet swit$hit te pare dhe atij destina$ion. !ra me tu "endosur rruga (path) bitet
EfluturojneF nga burimi te destina$ioni pa nderprerje. Nuk ka buffera ndermjetes ne
swit$het nderpreres me njeri tjetrin. Circuit switching kerkon fa'n setup, e $ila kerkon
pak kohe, por me perfundimin e kesaj fa'e shpejtesia fillon e rritet. (e dergimin e
paketes rruga qe ishte e para$ktuar per te, tashme prishet.>aria$ioni i circuit switching, i
quajtur wormhole routing, $opeton do pakete ne subpaketa dhe lejon injektimin e
subpaketes se pare, perpara ndertimit t plote t rruges (path).
NDERFAQET E RR1ETIT
Ne gjitha nyjet ne nje multikompjuter kane nj bord, t quajtur plug#in, i $ili permban
lidhjen e nyje"e ne rrjetin nderlidhes ku puna e te $ilit eshte te EmbajeF nje
multikompjuter kompakt. (enyra se si keto borde jane ndertuar dhe se si ato lidhen ne
*!+#ne qendrore dhe .am#in paraqesin implika$ione te medha per sistemin operati". Ne
do te japim nje "eshtrim t shkurter te ketyre eshtje"e me poshte.
>irtualisht i gjithe bordi i nderfaqes se multikomjutera"e permban .,(#in i $ili ruan
paketat hyrese dhe dalese. @akonisht, nje pakete dalese duhet te kopjohet ne bordin e
nderfaqes se .am#it perpara se ajo te dergohet ne swit$hin e pare. ,rsyeja pse eshte
projektuar ne kt menyre eshte per shkak se rrjetet nderlidhese ge'ojne "etine e
sinkroni'imit, domethn sapo te kete filluar transmetimi i paketes fluturimi i bite"e
behet me nje shpejtesi konstante. N qofte se paketa eshte ne memorjen kryesore,
shpejtesia konsante e fluturimit te elektrone"e nuk garantohet per shkak te trafikut t t
dhena"e ne busin e memorjes. )t problem mund ta eliminojme duke perdorur nje .,(
te dedikuar per kt pune. )y projektim paraqitet ne /ig L#&L.
Figura 8-18.!o'i$ioni i bordit te nderfaqes se rrjetit.
6 njejti problem ndodh edhe me paketat hyrese. ;itet EfluturojneF ne rrjet me nje shpejtesi
konstante dhe t larte. N qofte se se bordi i nderfaqes se rrjetit nuk mund ti ruaje paketat
ne kohe reale ndodh qe te dhenat mund te humbasin. 1erish ketu paraqitet rre'ikshmeria
ne kalimin nga busi i sistemit (pr shembull busi i !*6) ne memorjen kryesore. !erderisa
bordi i rrjetit eshte "endosur ne menyre tipike brenda busit te *!+#se, kjo eshte lidhja e
"etme qe ajo ka me me meorjen kryesore, keshtu qe konkurimi qe lind midis busit, diskut
dhe $do pajisjeje tjeter 6/: eshte i pashmangshem. shte me e sigurte te ruash paketat qe
"ijne ne .,(#in pri"at te bordit te nderfaqes, se sa ti kopjosh me "one ato ne memorjen
kryesore ose .,(#in kryesor.
;ordi i nderfaqes mund te kete nje ose me shume kanale te =(,#se ose nje *!+
komplete ne bord. )analet =(, mund te kopjojne paketa ndermjet bordit te nderfaqes
dhe memorjes kryesore ne nje shpejtesi te larte duke kerkuar transferimin e blloqe"e ne
busin e sistemit, $fare i thjeshton punet ne transferimin e disa fjale"e pa i kerkuar busit te
beje nje gje te tille per do fjale te marre "emas. =isa borde nderfaqesh kane nje *!+ te
"etme dhe te plote ne to, duke perfshire edhe nje ose me shume kanale =(,. )y
projektim do ti sjelle shume lehtesi bordit te rrjetit nga *!+#ja pasi ajo kryen mjaft
detyra siJ
Ne reali'oje nje transmetim te qendrueshem (reliable), domethn te mos lejoje humbjen
e paketa"e.
(ulti$asting (te degjoje nje pakete ne me shume se nje drejtim). Ne kujdeset per nje
mbrojtje sa me te mire ne nje sistem me multiproese. 1idoqofte te pasurit dy *!+ do te
thote qe ne"ojitet sinkroni'imi per te shmangur kushtet e nje gare, domethn shtohet
puna per sistemin operati".
8.2.2 Low-level communication Software
,rmiku me i madh ne performan$en e komunikimit ne sistemet me multikomjutera eshte
kopjimi i paketa"e. Ne rastim me te mire, do te kete "etem nje kopje nga .,(#i te bordi
i nderfaqes n nyjen burim, nje kopje nga bordi i nderfaqes burim te ai destina$ion dhe
nje kopje nga atje ne .,(#in destina$ion, pra ne total kemi tre kopje. 1idoqofte ne
shume sisteme gjendja eshte edhe me keq. Ne "e$anti ne se bordi i nderfaqes eshte
prkthyer (mapped) ne hapesiren "iruale te adresa"e te kernelit dhe jo ne hapesiren
"irtuale te adresa"e te userit, pro$esi user mund te dergoje nje pakete duke perdorur
"etem nje thirrje sistemi, qe i kalon kontrollin kernelit. )erneli nga ana e tij mund te
kopjoje paketat ne memorjen e tyre perkatese ne 6/:, pr shembull, te shmange page
faults gjate transmetimit ne rrjet. Nga ana tjeter kerneli ne destina$ion nuk di ku te
"endose paketen pasi i duhet ta ek'aminoje njehere ate. Ne /ig L#&L jane paraqitur pese
hapat e kopjimit.
N qofte se, performan$a dominohet nga kopjet qe behen nga dhe drejt .,(#it, kopjet
ekstra nga dhe drejt kernelit mund te dyfishojne "one sen e tipit end#to#end dhe te presin
bandwidth#in ne mes. !er te shmangur kete problem te performan$es shume
multikompjutera perkthejne bordin e nderfaqes ne menyre direkte ne hapesiren user per te
lejuar pro$esin te "endose paketat direkt ne bord pa ndermjetesimin e kernelit. dhe pse
kjo perqasje ndihmon ne performan$e paraqet dy probleme.
1e pari, Ondodh ne se disa pro$ese po ek'ekutohen ne nyje dhe kerkojne te aksesojne
rrjetin per dergimin e paketa"eU *ila prej tyre e merr bordin e nderfaqes ne hapesiren e e
tij te adresimitU Ne se "etem nje pro$es e merr bordin po te tjerat si i dergojne paketatU
*Ofare ndodh ne se bordi eshte perkthyer (mapped) ne hapesiren "irtuale te adresimit te
,#se dhe nje pakete "jen per ;#ne, "e$anerisht ne rastin kur ,#ja dhe ;#ja kane posesues
te ndryshem ku asnjeri prej tyre nuk do te "ije ne ndihme te njeri tjetritU
Nje 'gjidhje eshte te perkthyerit (mapping) ne t gjitha pro$eset qe kane ne"oje per te,
por duhet mbajtur parasysh shmangia e kushte"e te konkuren$es. !r shembull ne se ,#ja
dhe ;#ja kerkojne te njejtin buffer ne bordin e nderfaqes, ndodh nje perplasje apo joU
)etu ne"ojitet nje mekani'em sinkroni'imi, pr shembull mute%et, por keto funksionojne
"etem ne rastet kur pro$eset bashke"eprojne me njeri tjetrin. 1i perfundim mund te themi
qe perkthimi i bordit te nderfaqes ne hapesiren user funksionon "etem ne rastin kur
ek'ekutohet "etem nje proes ne $do nyje, perkundra'i merren masa paraprake.
1e dyti eshte qe kerneli mund te kerkoje "ete aksesin e rrjetit nderlidhes per "ete, pr
shembull, te aksesoje sistemin e file#"e ne nje nyje te larget. <e kerneli te aksesoje edhe
nderfaqen e rrjetit, ku kjo e fundit perdoret nga $do perdorues nuk eshte nje ide e mire,
madje edhe ne sistemet timesharing. 1upo'ojme qe ndersa bordi eshte perkthyer ne
hapesiren user, "jen nje pakete e tipit kernel. :se marrim rastin tjeter kur proesi user ka
derguar nje pakete ne nje makine te larget duke pretenduar se eshte e tipit kernel. 1i
perfundim themi se projektimi me i thjeshte duhet te kete dy borde nderfaqesh te rrjetit,
nje e perkthyer ne hapesiren user per te dhena aplikati"e dhe tjetra sht e perkthyer ne
kernel ku perdoret nga sistemi operati". 1hume multikompjutera aplikojne kt lloj
modeli.
Nyja ne nderfaqen e komunikimit te rrjetit
Nje eshtje tjeter eshte menyra se si ti $ojme paketat ne bordin e nderfaqes. (enyra me e
shpejte eshte te perdoresh ipin e =(,#se ne bord per te kopjuar paketat nga .,(#i.
!roblemi qe ek'iston me kete lloj perqasjeje lidhet me dy "e$orite e =(,#se, domethn
ajo perdor adresa fi'ike dhe ek'ekutohet ne menyre te pa"arur nga *!+#ja. !er me teper,
edhe pse nje pro$es user mund ta dije me siguri adresen "irtuale te $do pakete qe ajo
mund te dergoje, por ne pergjithesi ajo nuk e di adresen fi'ike. Ne besh nje thirrje sistemi
per te bere perkthimin "irtual#fi'ik eshte jo shume e deshirueshme pasi qellimi yne ishte
t shmangnim thirrjet e sistemit per do pakete te derguar.
Ne se sistemi operati" "endos te 'e"endesoje nje faqe, ndersa $ipi i =(,#se kopjon nje
pakete nga kjo e fundit, do te ndodhe transmetimi i te dhena"e te gabuara. !er me teper
ne se sistemi operati" 'e"endeson nje faqe, ndersa $ipi i =(,#se po kopjon nje pakete
hyrese ne te, ne kete rast jo "etem qe paketa hyrese do te humbase por edhe faqja e
memorjes do te shkaterrohet.
)eto probleme mund te shmangen duke pasur thirrjet e sistemit per pin dhe unpin te
faqe"e ne memorje. 1idoqofte, ne"oja per te akti"i'uar thirrjet e sistemit per pin#in dhe
unpin#in e faqe"e qe permbajne paketat dalese, kushton shume. N qofte se paketat jane
te "ogla, pr shembull DM bytes ose me pak, ngarkesa per pin#in dhe unpin#in e do
bufferi eshte e ndaluar. !er paketa te medha, & ); ose me shume, mund te bejme
tolerime. !er permasa te ndermjetme ajo $fare mund te themi eshte qe kemi "artesi ndaj
hardware.
Neorikisht, ndodh i njejti problem me =(,#ne nga disku ose pajisje t tjera, por duke
pasur parasysh faktin qe keto te fundit "endosen nga sistemi operati" ne bufferat e
kernelit, eshte shume e thjeshte per sistemin te shmange paging e buffera"e. !roblemi qe
qendron ketu eshte qe perdoruesi "endos dhe mena%hon =(,#ne, dhe nderkohe sistemi
operati" nuk e di qe 'h"endosja e faqes mund te jete fatale, ndersa per pajisjet 6/: ai
eshte ne dijeni t kesaj gjeje pasi ato sigurojne "ete fillesen e tyre. ,rsyeja pse perdorim
bufferat e kernelit per diskun 6/: dhe jo per komunikimin e multipro$esore"e, eshte qe
nje "onese prej H8 microsec eshte e tolerueshme ne rastin e nje disku por jo te nje
komunikimi proes#proes.
!roblemi i =(,#se mund te shmanget duke e qene pro$esi user ai qe starton pin e pare
ne faqe dhe pyet per adresen e tij fi'ike. !aketat dalese kopjohen nje here atje dhe me pas
ne nderfaqen e rrjetit, por kjo kopje ekstra eshte po aq e keqe si te kopjosh ne kernel.
=uke pasur parasysh keto arsye, te pedoresh 6/: te programuar nga dhe drejt boardit te
nderfaqes eshte rruga m e sigurte, perderisa $do page fault e hasur konsiderohet thjesht
si page fault e *!+#se dhe mena%hohet me menyren e 'akonshme nga sistemi operati".
)ur ndodh nje page fault, $ikli i kopjimit ndepritet menjehere dhe "a'hdon ne gjendjen e
pritjes derisa sistemi operati" te merret me kt problem. Nje skeme me e sofistikuar
eshte t perdoresh 6/: e programuar per paketat e "ogla dhe =(,#ne ne pin#in dhe
unpin#in per paketa me te medha.
N qofte se se boardet e nderfaqes se rrjetit kane *!+#ne e tyre keto te fundit e rritin
shume shpejtesine. 1idoqofte, duhet pasur kujdes ne shmangien e kushte"e te
konkuren$es midis *!+#se qendrore dhe *!+#"e on#board. Nje rruge per te shmangur
keto probleme ilustrohet ne /ig L#&G, ne te $ilen fokusohemi ne nyjen & qe dergon paketa
dhe nyja H qe i merr ato, por jo domosdoshmerisht te kene lidhje midis tyre. *elesi i
sinkroni'imit te struktures se te dhena"e per derguesin eshte send ring (una'a e dergeses)I
per marresin eshte re$ei"e ring (una'a marrese). Ne gjitha nyjet jane te pajisura me te
dyja llojet e una'a"e duke pasur parasysh faktin qe ato edhe dergojne edhe marrin. *do
pakete ka hapesire per n#paketa. 5jithashtu, kemi edhe nje bitmap per $do una'e me n#
bite, te $ilat mund te jene ose te ndara ose te integruara ne una'a, ku japin informa$ion se
kush slote te una'es jane te "lefshme.
Figura 8-19. !erdorimi i una'a"e sendSre$ei"e per te koordinuar *!+#ne kryesore me
*!+#ne onboard.
)ur derguesi ka nje pakete te re per te derguar ai kontrollon njehere per te pare ne se ka
ndonje slot te disponueshem ne una'en derguese. Ne se nuk ka te tille, atehere ai duhet te
prese ne menyre qe te parandaloje mbi"endosjen. Ne se ka nje slot te lire, ai e kopjon
paketen ne slotin tjeter te disponueshem, pasi kjo pune ka perfunduar ai "endos bitin
korespondues ne bitmap. )ur *!+ on#board eshte e lire, ajo kontrollon una'en derguese.
N qofte se ajo permban paketa, merr paketen me te gjate dhe e transmeton. )ur kjo gje
behet ai pastron bitin korrespondues ne bitmap. *!+#ja qendrore eshte ajo qe "endos
bitet dhe *!+#ja on#board ajo qe i fshin. Ne kt rast nuk kemi kushte konkuren$e.
+na'a marrese punon ne nje menyre tjeter, me nje *!+ on#board qe "endos nje bit per te
lajmeruar ardhjen e paketes dhe *!+#ne qendrore, qe fshin bitin per te lajmeruar
kopjimin e paketes dhe lirimin e bufferit.
)jo skeme mund te funksionoje edhe pa pasur ne"ojen e programimit te 6/: nga ana e
*!+#se qendrore. Ne kete rast una'a derguese nuk permban paketen por nje pointer te
paketes ne memorjen kryesore (.,(#in kryesor). )ur *!+ on#board eshte gati te
transmetoje paketen, ai e ngarkon paketen ne bordin e nderfaqes duke perdorur 6/: e
programuar ose =(,#ne. Ne te dyja rastet kjo perqasje funksionon "etem kur faqja qe
permban paketen eshte e njohur per tu pinuar.
8.2.3 Software i komunikimit te nivelit te ulet

!ro$eset ne *!+ te ndryshme ne nje multikompjuter komunikojne duke derguar mesa'he
njeri tjetrit. Ne pamje te pare ky kalim mesa'hesh ndermjet proese"e eshte i ekspo'uar
ndaj pro$ese"e user. (e fjale te tjera sistemi operati" siguron dergimin dhe marrjen e
ketyre mesa'he"e dhe ato qe reali'ojne thirrjet perkatese jane pro$edurat e librarise. Ne
nje forme me te sofistikuar mesa'hi aktual dergohet ne nje menyre te fshehte per
perdoruesin duke krijuar idene e nje thirrjeje pro$edure, ne "end te nje komunikimi ne
largesi. Ne do ti shohim keto dy metoda me poshte.
Dergo dhe merr
Ne menyre te permbledhur sherbimet e siguruara te komunikimit mund te reduktohen ne
dy thirrje librarish (library $all), nje per dergimin e mesa'he"e dhe nje per marrjen e tyre.
Nhirrja per dergimin e mesa'hit eshteJ
sen, (,est- Tmptr)J
dhe ajo per marrjen e mesa'hitJ
recei#e (a,,r- Tmptr)J
/ormeri (6 meparshmi), dergon mesa'hin e pointuar nga mptr drejt nje pro$esi i
identifikuar nga ,est dhe shkakton bllokimin e thirresit derisa mesa'hi te dergohet.
-atteri (6 dyti) shkakton bllokimin e thirresit derisa te "ije mesa'hi. )ur ndodh kjo
mesa'hi kopjohet ne buferin e e pointuar nga mptr dhe ne kete rast thirresi del nga
gjendja e bllokuar. !arametri a,,r spe$ifikon adresen ne te $ilen marresi po degjon.
5jithesesi ka mjaft "ariante te ketyre dy pro$edura"e dhe parametra"e te tyre.
Nje $eshtje ka te beje me menyren se si kryhet adresimi. !erderisa multikompjuterat jane
statike me nje numer fiks *!+#sh, menyra me e lehte per te bere adresimin, eshte te besh
nje a,,r me dy pjese, nje per numrin e *!+#se dhe tjetra per numrin e pro$esit ne *!+#
ne e adresuar. Ne kete menyre $do *!+ mund te mena%hoje adresat e "eta pa pasur
konflikte.
Thirrjet bllokuese kundrejt thirrjeve jo bllokuese
Nhirrjet e pershkruara me siper quhen thirrje bllokuese (ndonjehere quhen edhe thirrje
sinkroni'uese). )ur nje pro$es therret send, ai spe$ifikon destina$ionin dhe nje buffer per
ta derguar ne ate destina$ion. 5jate kohes qe dergohet mesa'hi, pro$esi dergues qendron
ne gjendje te bllokuar. 6nstruksioni qe pason thirrjen send nuk ek'ekutohet derisa ka
perfunduar komplet dergimi i mesa'hit, si$ shihet ne /ig L#H8 (a).Ne njejten gje themi
edhe per thirrjen re$ei"e e $ila nuk kthen kontroll derisa mesa'hi te jete marre dhe eshte
futur ne bufferin e mesa'hit, i pointuar nga parametri. dhe ne kete rast pro$esi qendron
ne gjendjen e pe'ulluar derisa mesa'hi mberrin, edhe pse mund te "a'hdoje per ore te
tera. Ne disa sisteme marresi mund te spe$ifikoje edhe derguesin qe deshiron.
Figura 8-20.(a) Nje thirrje send bllokuese.(b) Nje thirrje send jo bllokuese.
Nje alternati"e e thirrje"e bllokuese jane thirrjet jo bllokuese (nonblo$king ose
asyn$hronus $alls). !ra ne se send eshte jo bllokuese, ajo i kalon kontrollin thirresit
menjehere, perpara dergimit te mesa'hit. ,"anta'hi i kesaj skeme eshte se proesi
dergues mund te "a'hdoje llogaritjet ne paralel me transmetimin e mesa'he"e. @gjidhja
ndermjet primiti"a"e bllokuese dhe atyre jo bllokuese behet nga projektuesit e sistemit,
pam"aresisht se ne disa sisteme te dyja llojet jane te disponueshem dhe perdoruesit jane
te lire te 'gjedhin.
1idoqofte a"anta'hi qe kemi me primiti"at jo bllokuese ne lidhje me performan$en
permbyset nga nje disa"anta'h i madhJ derguesi nuk mund te modifikoje bufferin e
mesa'hit derisa mesa'hi te jete derguar. (und te kete pasoja te renda ne rastin kur
pro$esi mbishkruan mesa'hin gjate transmetimit. (e keq akoma, pro$esi dergues nuk e
ka idene se kur kryhet transmetimi, ne kete menyre ai nuk e di se kur eshte me i sigurte
riperdorimi i bufferit.
)etu mund te permendim tre 'gjidhje. para ka te beje me kernelin, pra ai kopjon
mesa'hin ne nje buffer te tij te brendshem dhe me pas lejon pro$esin te "a'hdoje, si$
tregohet ne /ig L#H8(b). Nga pikepamja e derguesit kjo eshte njesoj si thirrja bllokueseJ
sa me shpejt derguesi te marre kontrollin ai eshte i lire te riperdore bufferin. =isa"anta'hi
i kesaj metode eshte se prape derguesi nuk mund te beje gje derisa mesa'hi te jete
derguar perfundimisht. Ne shume nderfaqe rrjeti, mesa'hi duhet te kopjohet ne nje buffer
transmetimi hardware#rik ne $do rast, keshtu qe kopja e pare shperdorohet. =he kopja qe
behet me "one mund te ndikoje ne uljen e performan$es.
@gjidhja e dyte ka te beje me nderprerjen e derguesit kur dergimi i mesa'hit ka
perfunduar, duke lajmeruar ate se bufferi tashme eshte i disponueshem. )etu nuk
ne"ojitet asnje kopje, $Oka redukton kohen. !or interruptet e ni"elit te ulet e bejne
programimin e "eshtire dhe subjekt kushtesh konkuren$e fare i ben ata jo shume
produkti" dhe te pamundur per tOiu nenshtruar debugger#it.
@gjidhja e trete ka te beje me per$aktimin e bufferit si read#only derisa te perfundoje
dergimi i mesa'hit. Ne rast se bufferi eshte riperdorur perpara se mesa'hi te dergohet,
behet nje kopje. !roblemi qe lind me kete lloj 'gjidhje eshte se, edhe pse buferi eshte
i'oluar ne faqen e tij, kopjimi do te ndodhe edhe ne se shkruhet ne "ariablat me te aferta.
5jithashtu ketu duhet edhe pak administrim pasi dergimi i mesa'hit tani perfshin edhe
statusin read/write te faqes. !erfundimisht mund te themi se faqja duhet rishkruar prape.
!ersa i perket anes se dergimit kemi keto 'gjidhjeJ
;lo$king send (*!+ eshte e disponueshme gjate transmetimit te mesa'hit).
Nonblo$king send with $opy (koha e *!+#se shperodrohet per kopjet ekstra).
Non blo$king send with interrupt (programimi eshte shume i "eshtire).
*opy on write (lind ne"oja e kopje"e ekstra).
Ne kushte normale preferohet me shume 'gjidhja e pare, sidomos ne rastin kur kemi
shume threade, ku ne $do rast ndersa nje thread eshte i bllokuar gjate dergimit, "a'hdon
puna e threade"e te tjere. 5jithashtu nuk lind ne"oja e mena%himit te ndonje bufferi te
kernelit. 1i$ mund ta shohim nga krahasimi qe mund ti bejme dy /ig L#H8(a) dhe L#H8(b)
=ergimi i mesa'hit mund te behet me shpejt n qofte se nuk ka ne"oje per kopje.
=uke pasur parasysh qe send mund te jete bllokuese ose jo, te njejten gje mund te themi
edhe per re$ei"e. Nje thirrje bllokuese mund te pe'ulloje thirresin derisa te perfundoje
dergimi i mesa'hit. !er shume threade te disponueshem kjo eshte nje perqasje e thjeshte.
Nje menyre tjeter do te ishte, nje re$ei"e jo bllokuese qe thjesht i tregon bufferit
"endodhjen e bufferit dhe i kthen kontrollin derguesit menjehere. Nje interrupt perdoret
per te sinjali'uar mberritjen e mesa'hit. !or interruptet jane shume te "eshtire per tu
programuar dhe shume te ngadalte, keshtu qe do ishte me mire te mendonim nje menyre
tjeter per te sinjali'uar mberritjen e mesa'hit. 1i alternati"e permendim pro$eduren poll e
$ila jep informa$ion ne lidhje me mesa'het qe jane ne pritje. N qofte se kemi kete
gjendje, atehere thirresi therret get%message e $ila kthen mesa'hin e pare te kthyer.
Nje opsion tjeter eshte skema ne te $ilin mberritja e nje mesa'hi shkakton krijimin
spontan te nje threadi te ri ne hapesiren e adresimit te pro$esit marres. Nje thread i ri i
krijuar ne kete menyre quhet pop#up. ,i ek'ekuton nje pro$edure te spe$ifikuar me pare
dhe parametri i tij eshte nje pointer te mesa'hi pasardhes. Ne perfundim te pro$esimit te
mesa'hit, ai shkaterrohet automatikisht.
Nje "ariant i kesaj skeme eshte te ek'ekutosh kodin e marresit me interruptet pa pasur
ne"ojen e krijimit te threade"e pop#up. !er ta bere kete skeme me te thjeshte, mesa'hi
nga ana e tij permban adresen e mena%huesit te interrupte"e, pra kur "jen mesa'hi
mena%huesi (handler) mund te thirret me pak instruksione. /itorja me e madhe ketu
qendron se tashme nuk ka ne"oje me per kopjime. (ena%huesi e merr mesa'hin nga
bordi i nderfaqes dhe e pro$eson ate me nje shpejtesi marramendese. )jo skeme njihet
me emrin active messages, e $ila funksionon "etem atehere kur derguesi dhe marresi
kane besim te njeri tjetri plotesisht.
8.2.4 Remote procedure call
1kema e siperpermendur ka nje te mete te madheJ modeli ba'e mbi te $ilin eshte ndertuar
i gjithe komunikimi eshte 6/:. !roedurat send dhe re$ei"e perfshijne 6/: dhe shumi$a e
njere'"e besojne se 6/: eshte modeli i gabuar i programimit.
;irrel dhe Nelson sygjeruan se mund te lejohej thirrja e pro$edura"e te lokali'uara ne
*!+ te tjera. )ur nje pro$es ne makinen & therret nje pro$edure ne makinen H, pro$esi
thirres ne makinen & eshte i pe'ulluar dhe ne makinen H fillon ek'ekitimi i pro$edures
perkatese. 6nforma$ioni nga thirresi te marresi, mund te transmetohet ne parametra dhe
kthehet si nje re'ultat pro$edure. Nderkohe per programuesin i gjithe pro$esi i
transmetimit te mesa'hit dhe pajisjet 6/: jane te padukshme. )jo teknike eshte quajtur
RPC (.emote !ro$edure *all) dhe eshte ba'a e software ne shume multikompjutera.
Nradi$ionalisht pro$edura thirrese quhet client ndersa ajo e thirrur quhet ser#er.
6deja e .!*#se eshte qe te beje qe nje thirrje e larget pro$edure te duket si lokale. Ne
formen me te thjeshte, programi klient qe te beje nje thirrje te larget duhet te jete i pajisur
me nje pro$edure librarie e quajtur client stub, qe perfaqeson pro$eduren e ser"erit ne
hapesiren e adresimit te klientit. Ne menyre te ngjashme mund te themi edhe per ser"erin
i $ili eshte i pajisur me pro$eduren e quajtur ser#er stub. )eto pro$edura e fshehin faktin
qe thirrja e pro$edures nga klienti te ser"eri eshte jo lokale.
2apat qe e kryejne .!* tregohen ne /ig L#H&. 2api & eshte thirrja e $lient stub nga ana e
klientit. )jo thirrje eshte nje thirrje lokale pro$edure ku parametrat jane te ruajtur ne stak
si normalisht. 2api H eshte paketimi i parametra"e ne mesa'h dhe akti"i'imi i thirrjes se
sistemit per dergimin e mesa'hit nga $lient stub. !aketimi i paketa"e quhet marshaling.
2api 9 ka te beje me dergimin e mesa'hit nga makina $lient drejt asaj ser"er, nepermjet
kernelit. 2api M ka te beje me kalimin e paketes hyrese ne ser"er stub nepermjet ser"erit.
2api 7 eshte thirrja e pro$edures se ser"erit nga ser"er stub.
/igura L#H&.2apat qe ndiqen ne berjen e remote pro$edure $all.
,jo ka do te dallojme ketu eshte se pro$edura e klientit, e shkruar nga perdoruesi,
thjesht ben nje thirrje normale pro$edure te $lient stub e $ila ka te njejten emer si te
pro$edures se ser"erit. !erderisa pro$edura e klientit dhe $lient stub jane ne njejten
hapesire adresimi atehere kalimi i parametra"e behet ne menyren e 'akonshme. Ne kete
menyre ne reali'ojme komunikimim thjesht duke bere nje thirrje pro$edure ne "end te
perdorimit te 6/: dhe sendSre$ei"e.
Ceshtjet e implementimit
!a"arsisht fa"ore"e te .!* ajo bart edhe mjaft te meta, ku me e madhja eshte perdorimi i
parametra"e pointer. Normalisht kalimi i pointerit ne nje pro$edure nuk paraqet ndonje
"eshtiresi. !ro$edura e thirrur mund te perdore pointerin ne te njejten menyre si thirresi,
pasi te dyja ndajne te njejten hapesire adresimi. Ne .!* perdorimi i pointera"e eshte i
pamundur pasi klienti dhe ser"eri ndajne hapesira te ndryshme adresimi.
!roblemi i dyte qe haset eshte qe ne gjuhet e programimit si *, ne mund te lejojme te
shkruajme nje pro$edure e $ila llogarit produktin e brendshem te dy "ektore"e pa
spe$ifikuar gjatesine e se$ilit. 1e$ili prej tyre mund te perfundoje nepermjet nje "lere
spe$iale e $ila njihet "etem nga pro$edura thirrese dhe ajo e thirrur. Ne keto kushte eshte
gati e pamundur per $lient stub te spe$ifikoje parametra si pr shembull, gjatesia e
"ektore"e.
!roblemi i trete eshte pamundesia per te gjetur gjithmone tipet e parametra"e, madje edhe
kur na jepet nje spe$ifikim formal ose kodi "ete. Nje shembull do te ishte funks printf i
$ili mund te kete nje "aria$ion tipesh, numrash dhe gjatesish te parametra"e. Ne
therrasesh printf si pro$edure te larget (remote pro$edure) eshte e pamundur pasi gjuha *
eshte permisi"e.
)eto probleme qe u permenden me siper nuk do te thone qe .!* eshte jo e perdorshme,
por ato u permenden per te marre masat e duhura ne shmangien e probleme"e ne rastin
kur ajo gjen aplikim.
8.2.5 Distributed Shared Memory
1hume programues akoma preferojne nje model te memorjes se share#uar ne
multikompjuterat. (adje mund te krijohet ilu'ioni i shared memory kur ajo nuk ek'iston
realisht duke perdorur nje teknike te quajtur DSM (Distributed Shared Memory). Ne
kete model do faqe eshte lokali'uar ne nje nga memorjet e /ig L#&.*do makine ka
memorjen "irtuale dhe !N e "et. )ur *!+#ja ben nje -:,= ose 1N:. ne nje faqe qe
nuk e ka atehere ajo ek'ekuton nje instruksion trap te sistemi operati". 1istemi operati"
me pas lokali'on faqen dhe i kerkon *!+#se te $Oharte'oj faqen dhe ta dergoje ate ne
rrjetin nderlidhes. )ur faqja mberrin ajo perkthehet dhe instruksioni qe kishte ndaluar
tani mund te filloje. Ne fakt ajo $Oka ben sistemi operati" eshte te ngarkoje faqet nga nje
.,( me i larget sesa nga disku lokal. !ra te perdoruesi krijohet ilu'ioni se kemi shared
memory ose memorje te share#uar.
=iferen$a qe eksiston midis shared memory aktuale dhe =1( ilustrohet ne /ig L#HH. Ne
/ig L#HH (a) shohim nje multipro$essor te "ertete me shared memory fi'ike e $ila eshte
implementuar nga hardware#ri. Ne /ig L#HH(b) shohim =1(, e implementuar nga sistemi
operati". Ne /ig L#HH ($) shohim nje forme tjeter te shared memory e implementuar nga
shtresa te larta te software.
Figura 8-22.1htresa te ndryshme ku mund te implementohet memorja e sharuar.(a)
2ardueri.(b) 1istemi operati".($) 1oftueri i ni"elit user.
-e te shohim me ne detaje se si funksionon =1(. Ne sistemet e ketij tipi, hapesira e
adresimit eshte e ndare ne faqe te $ilat jane shperndare ne te gjitha nyjet e sistemit. )ur
*!+#ja i referohet nje adrese jo lokale, ndodh nje trap dhe software#i i =1( merr faqen
qe permban adresen, dhe ben te rifilloje instruksioni qe kishte ndaluar, i $ili pritet te
perfundoje me sukses. )y kon$ept ilustrohet ne /ig L#H9(a), per nje hapesire adresimi me
&D faqe dhe M nyje ku se$ila mund te mbaje M faqe.


Figura 8-23.(a) /aqet e hapesires se adresimit te shperndara ndermjet kater makina"e.(b)
1ituata pasi *!+#ja referon faqen &8.($) 1ituata kur faqja &8 eshte read#only dhe perdoret
replikimi.
Ne kete shembull, ne se *!+#ja, 6/: referohet instruksione"e ose te dhena"e ne faqen 8,
H, 7 ose G, atehere ky referim behet ne menyre lokale. .eferen$at ne faqet e tjera
shkaktojne trape. !r shembull, referen$a te nje adrese ne faqen &8 do te shkaktoje nje
trap ne software e =1(, i $ili do te shkaktoje le"i'jen e faqes &8 nga nyja 9 ne 8, si$ e
shohim ne /ig L#H9(b).
Replikimi

Nje permiresim qe i behet sistemit ba'e qe mund te permiresoje performan$en ne menyre
te ndjeshme eshte replikimi i faqe"e, programe"e tekst, konstante"e ose struktura"e te
tjera te te dhena"e qe jane "etem te le%ueshme (read#only). !r shembull ne faqen &8 ne
/ig L#H9($), eshte nje seksion i programit tekst, perdorimi i tij nga *!+ 8 re'ulton nga
kopja qe i eshte derguar asaj, pa ndikuar fare ne kopjen origjianale qe eshte ne *!+#ne &,
si$ e shohim edhe ne /ig L#H9 ($). Ne kete menyre *!+#ja 8 dhe & mund ti referohen
faqes &8 sa here te kene ne"oje pa pasur ne"ojen e trape"e per te ngarkuar faqen e
memorjes qe mungon.
Nje mundesi tjeter eshte te mos replikojme "etem faqet read#only por te gjitha llojet e
faqe"e. !er sa kohe qe behen "eprime le%imi, nuk ka ndonje diferen$e persa i perket
replikimit te faqe"e read#only apo atyre read#write.
False sharing
1istemet =1( jane te ngjashem me multipro$esoret ne disa aspekte. Ne te dyja sistemet,
kur referohen nje fjale jo lokale te memorjes, pjesa e memorjes qe permban fjalen
ngarkohet nga po'i$ioni i saj lokal dhe "endoset ne makine duke reali'uar referen$en
(memorja kryesore ose $a$he#ja). Nje eshtje shume e rendesishme eshte madhesia e
njesise se memorjes. Ne multipro$esoret, permasat e bllokut te $a$hes "ariojne nga 9H#DM
bytes. Ne sistemet =1(, gjatesia e njesise duhet te jete shumefishi i permases se faqes
(((+ punon "etem me faqe), por gjithsesi ajo mund te jete &, H, M ose me shume faqe.
Ne pasurit permasa te medha te faqes te =1( ka a"ana'het dhe disa"anta'het e "eta.
,"anta'hi me i madh eshte se koha startup per transferimet e rrjetit eshte shume e
rendesishme, pr shembull te transferosh &8HM dhe M8GD bytes kerkojne pak a shume te
njejten kohe. )ur eshte ne"oja te le"i'im nje pjese te madhe te hapesires se adresimit,
numri i transferime"e mund te reduktohet duke transferuar te dhena ne njesi te medha.
)jo $ilesi eshte shume e rendesishme pasi shume programe duan qe pasi te bejne
referen$en te nje fjale ne nje faqe, ata mund te bejne referime te shume faqe"e te tjera ne
te ardhmen.
!or ne anen tjeter, rrjeti do te jete i 'ene per nje kohe te gjate me transferime te medha,
dhe bllokon faulte te tjera te shkaktuara nga pro$ese te tjera. Ne /ig L#HM paraqitet nje
problem tjeter i quajtur false sharing. )etu paraqitet nje faqe qe permban dy "ariabla te
share#uar te palidhura me njera tjetren, , dhe ;. !ro$esi & perdor ,#ne ndersa pro$esi H
;#ne. Ne keto kushte, faqja qe permban te dyja "ariablat EudhetonF midis dy makina"e.
/igura L#HM./alse sharing e faqes qe permban dy "ariabla te palidhura.
!roblemi qe haset ketu eshte se, edhe pse "ariablat jane te palidhura me njera tjetren, ato
do te ndodhen aksidentalisht ne te njejten faqe dhe kur pro$esi perdor njeren prej tyre, ai
perdor edhe tjetren. 1a me e madhe te jete permasa e faqes efekti"e aq me shume false
sharing do te ndodhin dhe e kunderta. Ne sistemet e 'akonshme te memorjes "irtuale nuk
ndodh asnje fenomen analog me false sharing.
)y problem mund te reduktohet duke perdorur kompilatore te E'gjuarF qe "endosin
"ariablat respekti"isht ne hapsirat e tyre te adresimit. !or deri tani flasim "etem
teorikisht.
Arritja e nje konsistence sekuenciale
Ne se faqet qe shkruhen nuk jane te replikueshme, atehere arritja e konsisten$es nuk eshte
problem. ,tje kemi "etem nje kopje te $do faqeje te shkrueshme dhe ajo le"i' ne te dyja
drejtimet ne menyre dinamike. !erderisa nuk eshte gjithmone e mundur te parashikosh se
$ilat faqe jane te shkrueshme, ne shume sisteme =1(, kur nje proes perpiqet te le%oje
nje faqe te larget, behet nje kopje lokale dhe keto dy kopje, ajo lokale dhe ajo e larget
"endosen respekti"isht ne ((+#te e tyre me "etine read#only. *do gje eshte ne rregull
per sa kohe qe te gjitha referen$at jane "etem te le%ueshme.
1idoqofte, ne se nje pro$ess perpiqet te shkruaje ne nje faqe te replikuar, ngrihet problemi
i konsisten$es, sepse te ndryshosh nje kopje dhe te lesh te tjerat eshte e papranueshme.
)jo situate eshte analoge me ate $Oka ndodh ne nje multipro$essor kur nje *!+ perpiqet
te ndryshoje nje faqe qe eshte presente ne shume $a$he. @gjidhja per *!+#ne eshte qe,
perpara se te beje shkrimin ne faqen perkatese, te sinjali'oje ne bus duke i treguar *!+#
"e te tjera te injorojne kopjet e tyre te bllokut te $a$hes. 1istemet =1( punojne ne te
njejten menyre. !erpara se nje faqe e share#uar te shkruhet, dergohet nje mesa'h te te
gjitha *!+#te qe mbajne nje kopje te faqes, per ti treguar atyre qe duhet te mos
perkthejne dhe te injorojne faqen. !asi te gjitha *!+#te jane pergjigjur qe $Oharte'imi ka
perfunduar, *!+#ja origjinale mund t filloj shkrimin.
5jithsesi eshte e mundur te tolerojme shume kopje te faqe"e te shkrueshme ne rrethana t
$aktuara. Nje menyre eshte te lejojme proesin te kerkoje nje lo$k ne por$ionin e
hapesires se adresimit "irtual, dhe me pas te performoje opera$ionet e le%imit dhe te
shkrimit ne memorjen e lo$k#uar. Ne kohen kur eshte liruar lo$k, ndryshimet mund te
kapin edhe kopjet e tjera. !er sa kohe qe "etem nje *!+ mund te lo$k nje faqe ne nje
moment te dhene, arrijme ne perfundimin qe kjo skeme e arrin konsisten$en.
8.2.6 Skedulimi ne Multikompjutera
Ne nje multiproesor, te gjitha pro$eset ruhen ne te njejten memorje. )ur *!+#ja
perfundon punen qe ka ne dore, ajo merr nje proes tjetr dhe fillon e ek'ekuton. Ne
multikompjuterat situata paraqitet ndryshe. *do nyje ka memorjen e "et dhe setin e saj te
proese"e, pr shembull *!+#ja & nuk mund te ek'ekutoje pro$esin e nyjes M pa bere
njehere kompromis per ate. )jo diferen$e do t thote qe skedulimi ne multikompjutera
eshte me i thjeshte, por alokimi i pro$ese"e ne nyjet perkatese eshte me i rendesishm.
1kedulimi i multikompjutera"e eshte pak a shume i ngjashem me skedulimin e
multipro$esore"e por jo te gjitha algoritmat e multipro$esore"e aplikohen te
multikompjuterat. ,lgoritmi me i thjeshte ne multipro$esoretJ mirembajtaja e nje liste te
"etme te pro$ese"e gati, nuk funksionon pasi $do pro$es ek'ekutohet nga *!+#ja "etem
ne se ai eshte i lokali'uar ne kete te fundit. 1idoqofte, kur krijohet nje proes i ri, duhet
gjetur "endi se ku do te "endoset.
=uke qene se $do nyje ka pro$eset e "eta, mund t perdoret do algoritem skedulimi
lokal. 1idoqofte, eshte e mundur te perdoret skedulimi gang, ne te njejten menyre qe
perdoret ne multipro$esoret. !arimi eshte i njejte, te "endosesh nje marre"eshje fillestare
ne lidhje me per$aktimin e slote"e te kohes se ku do te ek'ekutohen proeset dhe nje
menyre se si te kordinojme fillesen e slote"e t kohes.


8.2.7 Load Balancing
!ra per skedulimin ne multikompjutera me "endosjen e proesit n nyje, mund te
perdorim do algoritem skedulimi, ne rast te kundert mund te perdorim skedulimin gang.
!or eshte shume e rendesishme menyra se si $aktohen proeset per do nyje. )jo eshte ne
kontrast me sistemet e multiproesore"e ku te gjitha proeset jane n te njejten memorje
dhe mund t skedulohen me deshire nga $do *!+. !r t per$aktuar "endosjen e
proese"e ne nyjet perkatese perdoren algoritmat e njohur si processor allocation
algorithms (algoritmat e alokimit te pro$esorit). Nder qellimet e tyre mund te
permendim, mini'imi i shperdorimit te $ikle"e te *!+#"e dhe i bandwidthit total te
komunikimit dhe te qenit i drejte me perdoruesitSproeset.
Algoritmi Graph-Theoritic Deterministic
Nje klase shume e perhapur e algoritme"e aplikohet ne sistemet qe kane te njohur *!+#
ne dhe spe$ifikimet e memorjes dhe nje matri$e e $ila jep informa$ion pr te dhenat
mesatare midis dy proese"e. Ne se numri i pro$ese"e eshte me i madh se numri i *!+#
"e, atehere do *!+#je i $aktohen disa pro$ese. Ne kete menyre ne mini'ojme trafikun ne
rrjet.
1istemi mund te perfaqsohet si nj graf i peshuar, ku do rreth perfaqeson nj proes dhe
shigjeta perfaqeson rrjedhjen e mesa'he"e midis dy proese"e. (atematikisht problemi
shtrohet ne gjetjen e rruge"e per $opetimin e grafit ne k subgrafe, te $ilat i nenshtrohen
spe$ifikime"e perkatese. 1higjetat qe lidhin dy subgrafe perfaqesojne te dhenat e rrjetit.
<ellimi ne kete rast do t ishte te gjesh parti$ionin e duhur, qe minimi'on trafikun e te
dhena"e ne rrjet gjithmone duke ju pershtatur spe$ifikime"e. Ne /ig L#H7 shohim nje
sistem prej nente pro$esesh.
Figura 8-25. =y menyrat e alokimit te G pro$ese"e ne 9 nyje.
Ne /ig L#H7(a) kemi $opetuar grafin me pro$eset ,, dhe 5 ne nyjen &, ;, /, 2 ne nyjen
H dhe *, =, 6 ne nyjen 9. Ne /ig L#H7 kemi nje parti$ion tjeter i $ili ka "etem HL njesi te
dhenash te rrjetit. )jo 'gjidhje kerkon me pak komunikim.
Algoritmi Sender-Initiated Distributed Heuristic
Ne shohim tani disa algoritma te shperndare. !r shembull, nje algoritem thote qe kur nje
proes krijohet, ai ek'ekutohet ne nyjen qe e krijoi perndryshe ajo nyje mbingarkohet. Ne
se ndodh kjo, nyja 'gjedh nje nyje tjeter ne menyren random dhe e pyet ate per ngarkesen
qe ka. Ne se ngarkesa e kesaj nyje eshte me poshte se "lera threshold, atehere dergojme
pro$esin atje, ne se jo, atehere 'gjedhim nje makine tjeter per te anali'uar. )y i fundit
nuk 'gjat pergjithmone. Ne se nuk gjendet nje host i pershtatshem brenda N kontrolle"e,
algoritmi perfundon dhe pro$esi ek'ekutohet ne makinen origjine, si$ tregohet ne /ig L#
HD.
Figura 8-26. Nje nyje e mbingarkuare e $ila eshte ne kerkim te nje nyje tjeter per
ndihme.
6deja eshte qe nyjet e superngarkuara te mos marrin pune tjeter persiper. =uhet nen"i'uar
fakti qe, ne kushte te nje ngarkese te madhe, te gjitha makinat do te fillojne kontrollet ne
makinat e tjera duke gjetur nje menyre per ti lene atyre pak pune. !or shume pak proese
e reali'ojne kete gje dhe mund te themi qe, 'akonisht mbi'oteron mbingarkesa.
Algoritmi Receiver-Initialed Distributed Heuristic
!arimi i punes se ketij algoritmi eshte, kur nje pro$es perfundon, sistemi kontrollon ne se
ai ka pune mjaftueshem. Ne se jo, ai kerkon nje makine tjeter ne menyren random dhe i
kerkon atij pune. Ne se ai nuk gjen serish pune ne makinat e kontrolluara N, atehere nyja
pushon se pyeturi perkohesisht, ben do pune qe ka ne dore dhe perpiqet serish kur
pro$esi tjeter perfundon. Ne se serish nuk ka pune te disponueshme, makina kalon ne
gjendjen idle. !as nje inter"ali fiks, ai fillon serish anali'en ose kontrollin. !ra ky
algoritem ini$iali'ohet nga nje marres un,erloa,e,, domethn pa ngarkese.
,"anta'hi i ketij algoritmi eshte se ai nuk "endos ngarkese ekstra ne sistem ne kohe
kritike. ,lgoritmi sender#initiaded ben nje numer te madh anali'ash, kur sistemi mund ti
toleroje ato, kur eshte go%ha i ngarkuar. (e kete algoritem, me sistemin shume te
ngarkuar, shansi qe makina te kete pune jo te mjaftueshme eshte shume e "ogel.
1idoqofte kur kjo ndodh, do ishte shume e lehte per te marre me shume pune persiper.
1igurisht, kur ka pak pune per te bere, algoritmi .#6 krijon nje trafik te konsiderueshem
anali'ash kur makinat ne menyre te EdeshperuarF kerkojne pune. !ra eshte me mire te
kemi nje rritje te ngarkeses ne kushtet e nje nen#ngarkese sesa ne rastin e nje
mbingarkese. Ne mund ti kombinojme keto dy algoritma, domethn makinat do te heqin
qafe nje pjese te punes kur ka shume dhe do te kerkojne me shume kur nuk ka pune
mjaftueshem.
Algoritmi Bidding
Nje klase tjeter algoritmash perpiqet ta ktheje sistemin kompjuterik ne nje ekonomi
miniature, me shites, bleres sherbimesh dhe mime te "endosura nga ngarkesa dhe
kerkesa. !rotagonistet me te rendesishem ne ekonomi jane pro$eset, te $ilet duhet te
blejne kohen e *!+#se per te bere punen e tyre dhe nyjet te $ilat n%jerrin ne ankand $iklet
e tyre per ofruesin me te larte.
*do nyje lajmeron $mimin e "et ne nje file publik te le%ueshem. )y $mim nuk eshte i
garantuar por eshte nje indika$ion per "leren e sherbimit. Nyje te ndryshme kane $mime
te ndryshme ne "aresi te shpejtesise, permasa"e te memorjes, pre'en$es se hardware#it te
shpejte floating#point dhe tipare"e te tjera. Nyja mund te publikoje edhe sherbime te tjera
si koha e pergjigjes.
)ur nje proes do te krijoje nje proes femije, ai shikon se kush ofron sherbimin qe ai
kerkon. (e pas ai per$akton setin e nyje"e me sherbimet perkatese. Nga ky set ai 'gjedh
kandidatin me te EmireF, domethn ate me te shpejten, me performan$e me te mire, ate
qe i pershtatet me mire aplika$ionit te tij. ,i gjeneron $mimin i $ili mund te jete me i
larte ose me i ulet se $mimi i publikuar.
KAPITULLI I NNT
SECURITY (Siguria e Sistemit)
9.1 Ambjenti i Sigurise
1hume "eta i prdorin termat EsiguriF dhe EmbrojtjeF t pandashme. )jo do t hapte
gjithmone debat pr problemet kryesore ne administrimin e file#"e dhe mirembajtjen e
tyre. !r ti shmangur keto keqkuptime, ne prgjithesi prdorim termin ~siguri, pr ti
prfshire t gjithe problemet dhe prdorim termin ~mbrojtje e mekanizmit pr ti
referuar mekani'mit spe$ifi$ t sistemit operati" e prdorur kjo pr t mbikqyrur
informa$ionin ne kompjuter. 1iguria ka tre aspekte qe duhen pare, te $ilat janeJ threats,
intruders, a$$idental data loss.
9.1.1 Threats
!r nj prespekti"e t sigurt sistemet kompjuterike kane tre objekti"a kryesore, pr
ker$enimet e ndryshme si ne figuren G#&. para sht t dhenat e besueshme, qe ka si
qellim te dhenat qe i kemi te fsheta te mbeten te tilla. (e e spe$ifikuar, ne qofte se
'oteruesi i disa te dhena"e, ka "endosur qe keto te dhena te shfaqen per nje numer te
$aktuar njere'ish, sistemi duhet te garantoje qe mos te ndodhi, qe leja tu jepet njere'"e te
paautori'uar nga ai. !or minimalisht 'oteruesi i ketyre te dhena"e duhet te per$aktoje
kush do ti shikoje keto te dhena dhe sistemi e perfor$on ate.
:bjekti"at Nhreat
N dhenat e besueshme kspo'imi i t dhena"e
6ntegriteti i t dhena"e Nampering with data
=isponueshmeria e sistemit =enial of ser"i$e
Figura 9-1. :bjekti"at e sigurise dhe thretet.
:bjekti"i e dyt sht integriteti t dhenave, nenkupton qe prdoruesit e paautori'uar
nuk duhet t jene ne gjendje t modifikojne asnj t dhene pa leje. (odifikimi i t
dhena"e nenkupton jo "etm ndryshimin e tyre por edhe fshirjen e tyre ose t shtimit t t
dhena"e fall$o. Ne se nj sistem nuk garanton qe keto te dhena te mbeten te
pandryshueshme derisa "ete 'oteruesi i tyre te "endosi ti ndryshoje, qellimi mund t
re'ultoje i pa"lefshem.
:bjekti"i e tret, sht Disponueshmeria e sistemit, nenkukpton qe asnjri nuk mund t
nderhyje ne sistem pr ta bere at t paprdorshem. )eto sulme t Denial of service "ijne
gjithmone duke u rritut. !r shembull, ne se nj kompjuter sht nj 6nternet 1er"er,
dergimi i i nje fluksi te madh kerkesash nga ana e klient"e mund ta ngrije sistemin,
sepse *!+#ja anga'hohet plotesish per eg'aminimin e tyre dhe berjen e tyre te
pa"lefshme. (und te themi se ne qofte se koha per te perpunuar nje kerkese per le%imin e
nje faqe 3eb, eshte &88 q se$, atehere dokush qe do te dergonte &8.888 kerkesa ne
sekonde do ta ngrinte sistemin.
Nj tjetr akspekt i sigurise sht problem i pri"atesiseJ ti mbrosh personat nga nj
keqperdorim i informa$ionit qe eg'iston per ta. )jo shkurtimisht ka te beje me problem
morale dhe legale. Nj detyre e rendesishme i paraqitet dhe shtetit pr t parandaluar ose
pr t marre masat e ndryshme pr persona qe krijojne difekte ne sisteme t ndryshme.
9.1.2 Intruders (Sulmuesit e sistemit)
1hume njere' jane t respektueshem ndaj ligjit dhe pr keta nuk mund t kemi
preoukupime t thyerjes se sigurise, shume t tjere jane t prirur t thyejne rregullat dhe
ligjet dhe shumi$a e bejne pr qejf ose ana finan$iare. Ne letrsine e sigurise , thuhet qe
njere'it qe "ijne rrotull bisnese"e qe nuk kane t bejne me to, quhen intruders ose
'akonisht thuhet ad"ersaries. ,ktet e sulmues"e ndahen ne dy kategori, kjo pr$akton dhe
natyren e sulmuesit t sistemit. 1ulmuesit pasi"e, thjesht kerkojne te le%ojne
informa$ionin e file"e. 1ulmuesit akti"e jane me t keqinjte, ata synojne t modifikojne
informa$ionin e file"e. )ur eshte duke u programuar nje sistem per te qene te sigurte ndaj
sulme"e, sht e rendesishme t parashikohet lloji i sulmit dhe detaje t tij. =isa kategori
jane J
&&. !rishjet rastesore nga prdorues t paaft. 1hume njere' disponojne kompjutera ne
ta"olinat e tyre, t $ilt jane t lidhur me nj ser"er ku informa$ioni i tyre ndahet
(share) midis klient"e t ndryshem, keshtu qe se paku ata do t behen kurio' dhe do
t deshirojne t le%ojne e#mailet e te tjere"e, ne qofte se nuk jane "endosur barriera
per ta ndaluar kete fenomen. !r shembull, shume sisteme +N6R, e ka default qe
file#t e rinj qe jane krijuar mund te jene te le%ueshem nga te gjithe.
HH. Nderhyrje nga te brendshmit. 1tudentet, programuesit e sisteme"e, operatoret dhe
personeli tjeter teknik shpesh konsiderohen si persona, qe e marrin si sfide thyerjen e
sisteme"e te sigurise. ,ta shpesh jane persona shume te kualifikuar dhe shpen'ojne
shume kohe pr ta arritur ate.
99. >eprime t ndryshme pr t patur fitime finan$iare. =isa programues bankash
sulmojne banken ne te $ilen ata kane punuar, ne menyre qe t mbajne prej klient"e
disa t dhjetrat e $ent"e por qe ne shume "et ato arrijne shifra t medha.
MM. 1piunime ushtarake ose tregetare. 1piunimi ne ket rast "jen shume i prgatitur se
sht me nj pikesynim t per$aktuar nga nje kundershtar, re'ulton ne "jedhje
programesh t huaja, transferta bankare, plane bisnesi, projekte nderkombetare, etj..
)eto nderhyrje kane te bejne me nderhyrjet e fshehta ne sistem ose me "endosjen e
antena"e per thithjen e "ale"e elektromanjetike.
=uhet te jete e qarte qe eshte komplet ndryshe te ruhesh nga sulmet e nje shteti per te
"jedhur sekretet ushatarake dhe te ruhesh nga studentat te $ilet perpiqen te fusin nje
mesa'h per te qeshur ne sistem. Ne tjeter lloj nderhyrje qe eshte shfaqur ne "itet e fundit
jane "iruset. Ne parim nje "irus eshte nje pjese kodi qe 'e"endeson "et"eten dhe sjell
demtime. Ne kete kuptim, programuesi i nje "irusi eshte nje intruder, shpesh me aftesi
shume te medha. Ndryshimi ndermjet nje intruder dhe nje "irusi eshte se i pari eshte nje
person qe po perpiqet te hyj ne sistem dhe ta demtoje ate, ndersa i dyti eshte nje program
i shkruar nga nje person dhe pastaj i lan$uar me shpresen per te bere deme, pra ne qofte
se intruder perpiqet te shkaterroj nje gje spe$ifike, "irusi ben deme me te pergjitheshme.
9.1.3 Humbja aksidentale e t dhenave
Ne shtim t threat#"e, kur sistemi sulmohet, mund t kemi humbje t t dhena"e. =isa
nga rastet me tipike t humbjes se t dhena"e ne menyre aksidentale janeJ
&&. ,ksidentet natyrore si 'jarri, prmbytjet, lufta qe mund t shkaktoje deme ne
kompjuterat qe ndodhen ne at ambjent.
HH. 5abimet hardware#rike ose 1oftware#rikeJ keqfunksionimi i *!+, disqet e
pale%ueshem pr shkak t demtime"e siprfaqesore, gabimet ne nderlidhje...etj
99. 5abimet njere'oreJ deklarime t pasakta t t dhena"e, kerkimi i file"e ne disqe t
gabuar, ek'ekutim i gabuar i programit, humbja e disqe"e ose disketa"e, etj..
=isa nga keto gabime mund t shmangen ne se kemi nj mirembajtje t t dhena"e, t
dyfishuara (ba$kup), t mbajtura ne kushte t tjera nga ato qe mbahen t dhenat
origjinale. (brojtja e t dhena"e nga humbja aksidentale e tyre, mund t re'ultoje me e
lodhshme se sa mbrojta kunder sulmues"e t sistemit.
9.2 BAZAT E KRIPTOGRAFISE
=isa njohuri rreth kriptografise mund t ne"ojiten pr t kuptuar disa pjese t ketij
kapitulli dhe t disa t tjere"e "ijues. 5jithsesi ky liber nuk ka pr qellim t kryeje nj
diskutim serio' rreth kesaj eshtje. !r t interesuarit rreth kesaj teme, ek'istojne shume
libra t tjere qe diskutojne me hollesisht (si )aufman et al,&GG7I apo !fleeger,&GGC). (e
posht do t 'h"illojme nj diskutim t shpejt rreth kriptografise, pr le%ues qe nuk jane
shume t familiari'uar me t.
<ellimi i )riptografise sht qe t marre nj mesa'h ose file, t quajtur plaintext (tekst i
thjesht) dhe ta enkriptoje at ne nj ciphertext (tekst t koduar), pra ta kodoje, ne
menyre qe "etm persona t autori'uar t dine ta kon"ertojne kodin ne mesa'hin fillestar,
pra t kuptojne prmbajtjen e mesa'hit. )urse pr t gjithe t tjeret ciphertext #i sht
thjesht nj grumbull i pakuptueshem bitesh. (egjithese, pr fillestaret ne ket fushe,
mund t duket e uditshme, algoritmet enkriptues dhe dekriptues duhet qe gjithmone t
jene publike (t njohura). !rpjekjet pr ti mbajtur t fshehta keto algoritme gjithmone
deshtojne, dhe s|bejne asgje tjetr "ese i japin njere'"e qe prpiqen ti mbajne t fsheht
nj ndjesi sigurie t rreme. Ne ket fushe (kriptografi), kjo taktike quhet Security By
Obscurity (siguri nga paqartsia) dhe prdoret "etm nga amatoret. Buditrisht ne ket
kategori hyjne dhe shume korporata t medha multina$ionale qe duhet t jene me t
"etdishme (qe taktika sht e kot).
Ne t "ertet, fshehtsia "aret nga parametrat e algoritmit t quajtur keys (eles). Ne
qoft se ! sht file plainte%t, )

sht key i enkriptimit, * sht $ipherte%t dhe sht


algoritmi enkriptues, athere J
C E (P, K
E
)
)y sht prkufi'imi i enkriptimit, qe tregon se *ipherte%t#i merret duke prdorur
algoritmin enkriptues , me plainte%t ! dhe key e enkriptimit )

si parametra.
Ne analogji me sa thame me sipr kemi dheJ P D (C. K
D
), ku = sht algoritmi i
dekriptimit dhe )
=
sht key (elesi) dekriptues. )jo domethene qe pr t marre
plainte%t#in ! nga $ipherte%t#i * dhe key )
=
t dekriptimit, duhet prdorur algoritmi =
me * dhe )
=
si parametra. -idhja ndermjet pjese"e t ndryshme tregohet ne figuren G.H.
Figura 9-2. -idhja ndermjet plainte%t#it dhe $ipherte%t#it.
G.H.& Driptografia 6e&ret,Dey "me e%es t fsheht#
!r t qene sa me t qart, mendojme pr nj algoritem enkriptues ne t $ilin do
shkronj 'e"endesohet me shkronj tjetr t ndryshme, pr shembull t gjitha ,#t
'e"endesohen nga <#t, t gjitha ;#t 'e"endesohen nga 3#t, t gjitha *#t
'e"endesohen nga #t dhe keshtu me rradheJ
plainte%tJ ,;*=/526A)-(N:!<.1N+>3R]@
$ipherte%tJ <3.N]+6:!,1=/52A)-@R*>;N(
)y sistem i prgjithshem quhet nj 'e"endesim monoalfabetik ku eles sht stringa me
HD germa qe i korrespondon gjithe alfabetit. Belesi i enkriptimit sht
U>?;A=E10)@S/FPVW3<R2'I*N. !r elesin e mesiprm, plainte%t#i ,NN,*)
do t transformohej ne $ipherte%t#in <@@<,. Belesi i dekriptimit na tregon se si behet
kthimi nga $ipherte%t ne plainte%t. Ne ket shembull elesi i dekriptimit sht
32I'N0)VU;SR=E@/<?P>*EFA sepse nja , ne $ipherte%t sht nj ) ne
plainte%t, nj ; ne $ipherte%t sht nj R ne plainte%t e keshtu me rradhe.
Ne pamje t pare ky sistem mund t duket i sigurt, pasi megjithese kriptanalisti e njeh
sistemin e prgjithshem ('e"endesimet germe pr germe), ai nuk e di se $ili nga HDi r M u
&8
HD
elesat e mundur sht ne prdorim. (egjithat, n qoft se uditrisht jepet nj
$ipherte%t me gjatsi t "ogel, kodi mund t thyhet lehtsisht. 1ulmi ba'e (kryesor) ndaj
kodit, prfiton nga "etit statistike t gjuhe"e natyrale. Ne ,nglisht pr shembull e sht
shkronja me e prdorshme e $ila ndiqet nga t, o, a, n, i etj. )ombinimet me t
prdorshme me dy shkronja, t $ilat quhen digrams, jane th, in, er, re, etj. =uke
prdorur ket lloj informa$ioni, thyerja e kodit behet me e leht.
1hume sisteme kriptografike, si ky i mesiprmi, kane "etine qe kur elesi i enkriptimit
sht i dhene, lehtsisht gjendet ai i dekriptimit dhe anasjelltas. 1isteme t tille quhen
Secret-Key Cryptography ose Symmetric-Key Cryptography. (egjithese kodet
monoalfabetike me 'e"endesime jane t padobishme, njihen t tjere algoritme me elesa
simetrik qe jane relati"isht t sigurt, n qoft se elesat kane gjatsi t mjaftueshme. !r
nj siguri t madhe (serio'e) duhet t prdoren elesa &8HM bitesh, t $ilt japin nj
hapesire kerkimi prej H
&8HM
[ H % &8
98L
elesash. Belesa me t shkurtr mund t pengojne
amatoret, por jo autoritetet e spe$iali'uara ne fushen e )riptografise.
0.2.2 Driptografia Pu'%i&,Dey "me e%es pu'%ik#
1istemet 1e$ret#)ey jane shume efient pasi sasia e llogaritje"e t ne"ojshme pr t
enkriptuar ose dekriptuar nj mesa'h sht e mena%hueshme, por ato kane nj t dobesi t
madheJ <e si derguesi ashtu dhe marresi duhet t 'otrojne se$ret#key#n qe prdorin.
(adje mund t duhet edhe t takohen fi'ikisht ne menyre qe prdoruesit t shkembejne
ket se$ret#key. !r t anashkaluar ket problem prdoret Kriptografia Public-Key
(=iffie dhe 2ellman,&GCD). )y sistem ka "etine qe prdor elesa t ndryshem pr
enkriptimin dhe dekriptimin, dhe kur jepet nj eles enkriptimi i 'gjedhur mire, sht
"irtualisht e pamundur t 'bulohet elesi i dekriptimit korrespondues. Ne keto kushte
elesi i enkriptimit mund t behet publik dhe "etm elesi pri"at i dekriptimit mbahet i
fsheht.
1a pr t dhene nj prshtypje rreth kriptografise publi$#key, shqyrtojme dy pyetjet e
meposhtme J
!yetja &J 1a bejne 9&M&7GHD797LGCG u 9&M&7GHD797LGCGU
!yetja HJ 1a sht rrenja katrore e 9G&H7C&78DM&G9LC8G87GMLHL78LHM&U
Ne prgjithesi nj n%enesi t klases se gjasht po ti japesh nj laps dhe nj letr, dhe po ti
premtosh nj akullore t madhe si shprblim pr prgjigjen e sakt, pr &#H ore e 'gjidh
pyetjen e pare. Ndersa shumi$es se t rritur"e po tu japesh nj laps, letr dhe premtimin
pr prgjysmimin e taksa"e pr gjithe jetn, mund ta kene t pamundur t 'gjidhin
pyetjen e dyt pa prdorur makine llogaritse, kompjuter apo ndihma t tjera t jashtme.
(egjithese ngritja ne katror dhe rrenja katrore jane "eprime in"erse t njra#tjetres ato
ndryshojne shume ne kompleksitetin e llogaritjes. )jo lloj asimetrie formon ba'en e
)riptografise !ubli$#)ey. nkriptimi kryen "eprimin e thjesht kurse dekriptimi pa
elesin (e njohur) na bn t kryejme "eprimin e "eshtire.
Nj sistem !ubli$#)ey i quajtur RSA, shfryt'on faktin qe shume'imi i numra"e t
medhenj sht me i thjesht se faktori'imi i tyre, "eanerisht kur gjithe "eprimet
arithmetike behen duke prdorur module arithmetike dhe t gjithe numrat e prfshire
kane qindra shifra. )y sistem prdoret gjeresisht ne botn e kriptografise. !rdoren
gjithashtu edhe sisteme qe ba'ohen ne algoritma diskret. !roblemi kryesor i
kriptografise publi$#key sht fakti qe ai sht me mijera here me i ngadalt se
kriptografia simetrike.
)riptografia publi$#key punon ne menyre t tille qe se$ili 'gjedh nj ift elesash (publi$
key, pri"ate key) dhe publikon elesin e tij publik. Belesi publik sht elesi i enkriptimit,
kurse elesi pri"at sht ai i dekriptimit. @akonisht elesi gjenerohet ne menyre
automatike, mundesisht me nj password qe 'gjidhet nga prdoruesi i $ili futet ne
algoritem. !r ti derguar nj prdoruesi nj mesa'h t fsheht, enkriptohet mesa'hi me
publi$#key e marresit. (eqe "etm marresi ka pri"ate key, athere ai mund t dekriptoje
mesa'hin.
G.H.9 u)ksio)et A)e,Hay "me )j drejtim#
k'istojne situata t ndryshme, t $ilat do ti shohim me tej, ne t $ilat na ne"ojitet t kemi
nj funksion f, i $ili ka "etine qe kur jepet f dhe parametri i tij %, llogaritja e ][ f(%)
behet lehtsisht, por kur jepet "etm f(%) llogaritja e % behet e pamundur. Nj funksion i
tille i ndryshon bitet ne nj menyre t nderlikuar. )y ndryshim mund t filloje qe nga
ini$iali'imi i y ne % (y[%). (e pas mund t kemi nj $ikel qe prsritet sa here qe kemi
bit & ne %, ku ne do prseritje ndryshohet rradha e bite"e y ne nj menyre qe "aret nga
prseritja, duke i shtuar nj konstante t ndryshme ne do prseritje, dhe prgjithesisht
duke i miksuar (pr'ier) bitet rrenjsisht. (biti i pare behet i fundit etj)
0.2.( Ne)shkrimet Di9hita%e
1hpesh sht e ne"ojshme qe nj dokument t nenshkruhet ne menyre di%hitale. !r
shembull mendojme pr nj klient banke qe neprmjet nj email#i, i kerkon bankes t
bleje disa aksione pr t. Nj ore pasi porosia sht derguar dhe ek'ekutuar, mimi i
aksione"e bie. Nani klienti mohon t ket bere nj porosi me email. ;anka mund ta
printoje email#in por klienti mund t ankohet se banka e ka falsifikuar email#in me qellim
prfitimi. 1i mundet nj gjykats t dij se kush po thot t "ertetnU
Nenshkrimet di%hitale na mundesojne nenshkrimin apo firmosjen e mesa'he"e email dhe
dokumente"e t tjera di%hitale ne nj menyre qe nuk mund t mohohet me pas nga
derguesi. Nj menyre e 'akonshme sht qe fillimisht ta prpunojme dokumentin e marre
me anen e nj algoritmi hashing (prpunues, ndares) me nj drejtim. (!ra nga fillimi i
dokumentit ne fund t tij). )y funksion prpunues prodhon nj re'ultat me gjatsi t
rregullueshme, t pa"arur nga madhesia e dokumentit origjinal. /unksionet prpunuese
me t prhapura qe jane sot ne prdorim jane MD5 (Message Digest) i $ili prodhon nj
re'ultat prej &D#bytesh (.i"est &GGH), dhe SHA (Security Hash Algorithmn) i $ili
prodhon nj re'ultat prej H8#bytesh (N61N &GG7)
2api tjetr sht ai i prdorimit t kriptografise publi$#key si u prshkrua me lart. (e
pas derguesi, aplikon mbi hash elesin e tij pri"at ne menyre qe t marre = (hash). )jo
"lere e quajtur signature block, (blloku i nenshkrimit/firmes) i shtohet dokumentit dhe i
dergohet marresit, si tregohet ne /ig. G#9. ,plikimi i = ne hash shpesh referohet si
dekriptimii hash por ne fakt nuk sht e "ertet nj dekriptim pasi hash#i nuk sht
enkriptuar me pare. ?sht "etm nj trasformim matematik i tij.
Figura 9-3. (a) )ryerja e nenshkrimit t bllokut. (b) ,jo fare marresi merr
)ur dokumenti dhe hash#i arrijne ne destina$ion, ne fillim marresi kryen $ope'imin
(hashing) e dokumentit duke prdorur MD5 ose SHA, si folem me sipr. (arresi me pas
prdor mbi bllokun e nenshkrimit, elesin publik t derguesit me qellim qe t marre (=
(hash)). !r pasoje, ai enkripton hash#in e dekriptuar, duke fshire dekriptimin dhe duke
marre serish hash#in. N qoft se hash#i i llogaritur nuk prputhet me hash#in e bllokut t
nenshkrimit, athere dokumenti, blloku i nenshkrimit ose t dy njkohesisht jane
falsifikuar ose ndryshuar aksidentalisht. >lera e kesaj skeme qendron ne faktin se
kriptografia publi$#key i aplikohet "etm nj pjese relati"isht t "ogel t dhenash, hash#
it. >ereni me kujdes se kjo metode punon "etm ne se pr t gjithe RJ
? (/ (&)) [ &
Nuk mund t sigurohet qe t gjithe funksionet enkriptuese do ta kene ket "eti, prderisa
gjithka qe ne kerkojme nga Kriptografia shtJ
/ (? (&)) [ &
)u sht funksioni enkriptues dhe = sht funksioni dekriptues. Ne prfundim, qe t
prfitojme "etine e nenshkrimit, rradha e "eprime"e nuk duhet t ket rendesi, domethene
qe si = dhe duhet t jene funksione nderrues. /atmiresisht algoritmi RSA e ka ket
"eti.
!r t prdorur ket skeme nenshkrimi, marresi duhet t njohe elesin publik t derguesit.
=isa prdorues i publikojne elesat e tyre publik nepr faqet e tyre web. N tjere jo, pasi
kane frike se mos ndonj nderhyres futet dhe fshehtsisht ndryshon elesin e tyre. !r ta
ne"ojitet nj mekani'em alternati" pr shprndarjen e elesa"e t tyre publik. Nj metode
e 'akonshme sht qe derguesit ti ngjisin nj ertifikat mesa'hit. )jo ertifikat do t
ket emrin e prdoruesit, elesin e tij publik si dhe nenshkrimin e nj pale t tret t
besueshme. !asi marresi t marre elesin publik t pales se tret t besueshme, ai mund t
pranoje ertifikata nga t gjithe derguesit qe prdorin ket pale t tret t besueshme pr
t gjeneruar ertifikatat e tyre.
(e sipr treguam sesi kriptografia publi$#key mund t prdoret pr nenshkrimin di%hital.
5jithesesi ja "len qe t theksohet se ek'istojne dhe skema t tjera qe nuk prfshijne ket
kriptografi.
9.3 Vertetimi i prdoruesit
Nani qe kemi nj formim t pastr, le t shikojme kriteret e sigurise ne sistemet
operati"e. )ur nj prdorues log#ohet ne nj kompjuter, sistemi operati" mundohet t
pr$aktoje $ili prdorues sht. )y proes quhet "ertetimi i prdoruesit. (ainframe#et e
pare si N6,* nuk kishin system operati", prandaj e linin t lire pro$eduren login.
(ainframe#et e mepassheem bal$h dhe sistemet timesharing 'akonisht kane nj
pro$edure log#in pr "ertetimin e prdoruesit. (inikompjuterat e pare (!=!#& dhe !=!#
L) nuk kishin pro$edure log#in por me prhapjen e +N6R ne minikompiuterin !=!M& kjo
pro$edure ne"ojitej prseri. )ompjuterat e pare personale(,pple && dhe 6;( !*) nuk e
kishin ket pro$edure por ata me sistem operati" me t sofistikuar si 3indows H888
prfshinin nj log#in t sigurt. )ur prdorim nj kompjuter personal pr t aksesuar ne
-,N gjithmone prfshihet nj log#in. *eshtja e nj log#in t sigurt kalon nepr disa $ikle
dhe sht nj $eshtje me rendesi. =uke pasur t pr$aktuar hapin e "ertetimit, hapi tjetr
sht t gjejme nj rruge t thjesht pr t arritur tek "ertetimi.
1hume metoda "ertetimi ba'ohen ne nj nga tre prin$ipet e meposhtmeJ
&. =i$ka qe prdoruesi di
H. =i$ka qe prdoruesi ka
9. =i$ka qe prdoruesi sht
)eto prin$ipe shoqerojne skema t ndryshme "ertetimi me kompleksitet dhe siguri
t ndryshme. !ersona t $ilt kerkojne t shkaktojne probleme ne nj sistem, me pare
duhet t log#ohen ne ket sistem. )eta persona quhen ha$ker, pr nder t programues"e t
medhenj. Ne dallim nga ha$ker#at e "ertet do t prdorim termin $ra$kers, ne sensin
orgjinal dhe do t quajme ata njere' qe mundohen t thyejne sistemet kompjuterike .
0.!.1 7ertetimi duke prdorur pass1ord
/orma me e prdorshme e "ertetimit sht t lejoje prdoruesin t shkruaje nj emer
log#in dhe nj password. (brojtja me pagese sht e leht pr tu kuptuar dhe pr tu
implementuar. 6mplementimi me i thjesht mban nj list $ift t log#in name dhe
password. mri log#in i shkruar shikohet ne list dhe password i shkruar krahasohet me
password#in e "endosur. Ne qoft se prputhen, log#in pranohet, ne t kundert log#in
refu'ohet. )uptohet qe kur shkruhet password#i, kompjuteri nuk i tregon karakteret.
Ne 3indows H888, karakteret e shkruar tregohen ne forme ylli, ndersa ne +N6R,
nuk tregohet asgje. )eto skema kane $ilesi t ndryshme. Ne skemen e 3indows H888
sht me leht pr prdoruesit qe harrojne, pasi ata shikojne sa karaktere kane shtypur por
kjo 'bulon gjatsine e password#it, e $ila sherben pr prgjuesit. Ne figuren G#M (a)
tregohet nj log#in i suksesshem. Ne figuren G#M (b) tregohet nj deshtim nga nj $ra$ker
pr tu log#uar ne sistemin ,. Ne figuren G#M ($) tregohet nj deshtim i nj $ra$ker pr tu
loguar ne sistemin ;.
Figura 9-4. (a)-og#in i suksesshem, (b)-ogin refu'ohet pasi futet emri
($)-ogin refu'ohet pasi futet emri dhe passwordi.
Ne figuren G#M(b), sistemi ankohet kur shkruajme nj emer log#in t pa"lefshem. )y
gabim bn qe $ra$ker#at t pro"ojne emra t tjere log#in derisa t gjejne at t "lefshmin.
Ne fig. G#M($), $ra$ker#i gjithmone pyetet pr password dhe nuk merr feedba$k derisa
emri log#in t jet i "lefshem.
8e)yra si hyj)e )e sistem &ra&kers
1hume $ra$kers hyjne ne sistem duke prdorur shume kombime t emrit log#in
dhe passwordit, derisa gjejne kombinimin e "lefshem. 1hume persona, ne nj forme apo
ne nj tjetr, "endosin emrin e tyre si emer log#in. N pajisur me nj liber me emra pr
femijen qe do t linde dhe me nj numerator telefoni, $ra$kers mund t kompilojne nj
list me emra log#in tepr t "lefshem pr 'onen ku ndodhen. !or sigurimi i emrit log#in
nuk sht i mjaftushem. =uhet t gjendet dhe password#i. 1htrohet pyetjaJ 1a e "eshtire
sht kjoU
!una klasike pr sigurine e password#e"e u be nga (orris dhe Nhompson (&GCG) ne
sistemet +N6R. ,ta kompiluan nj list me password#e siJ emer#mbiemer, emer#rruge,
emer#qyteti, etj. (e pas i krahasuan listn e tyre ne qoft se kishte prputhje. Ne mbi
LDQ t raste"e kishin prputhje. Nj re'ultat i ngjashem me ket u morr edhe nga
)lein(&GG8). Nj sur"ejim ne &GGC ne distriktin finan$iar t -ondres tregoi se LHQ e
password#e"e mund t 'buloheshin lehtsisht. !assword#et me t prdorshem ishin terma
seksuale, shprehje abu'i"e, emra njer'ish. Ne ket menyre nj $ra$ker mund t
komplioje nj list me password#e dhe emra log#in pa ndonj pune t lodhshme.
Nj $ra$ker ,ustralian ka shkruar nj program i $ili sistematikisht kryen thirrje ne t
gjithe numrat e telefonit dhe me pas mundohet t hyje ne sistem duke prdorur 'bulues
password#i. )ur puna reali'ohet me sukses programi informon prdoruesin. (idis shume
sisteme"e qe theu ky $ra$ker ishte dhe nj kompjuter ne ,rabine 1audit, i $ili i lejoi atij
t prfitonte numra kartash krediti. Nj alternati"e sht dhe lidhja e kompjutera"e ne
internet. Bdo kompjuter ne internet ka nj 6! adrese 9H bit t gjat e $ila prdoret pr t
identifikuar prdoruesit e ndryshem.
Njer'it 'akonisht i shkruajne keto adresa ne forme de$imale si ". & y. B. ku se$ila prej
katr komponent"e t 6! adrese sht nj integer nga 8 ne H77. Nj $ra$ker mund t
testojne lehtsisht ne qoft se disa kompjutera kane nj 6! adrese t $aktuar duke shkruarJ

ping ". &. y. B.
Ne qoft se kompjuteri sht ne pune, ai do t prgjigjet dhe programi ping do t tregoje
se sa i gjat ishte inter"ali i kohes ne milisekonda "ajtje#ardhje. ?sht e leht t shkruhet
nj program pr t reali'uar ping ne nj numer t madh 6! adresash.
Ne qoft se kompjuteri sht ne pune, $ra$ker mund t hyje ne t duke shkruarJ
telnet ". & .y. B.
Ne qoft se lidhja e kerkuar "endoset, $ra$ker mund t filloje me shkrimin e emra"e log#
in dhe password#e"e nga lista e tij. (egjithat $ra$keri mund t jet ne gjendje t hyje ne
system dhe t kape password#in i $ili ndodhet ne $etc$pass",. (e pas ai do t mbledhe
informa$ione statistike rreth emra"e log#in t prdorur me shpesh dhe kt informa$ion e
prdor pr t siguruar emra log#in ne te ardhmen.
1hume telnet deamons hyjne ne lidhjet N*! pas disa prpjekje"e t deshtuara pr log#in,
kjo pr t "onuar $ra$kers. *ra$kers reagojne duke startuar ne paralel shume threads, t
$ilt punojne ne makina t ndryshme ne t njjtn kohe. <ellimi i tyre sht t bejne sa
me shume prpjekje ne sekonde. Ne "end qe t kryejne ping ne makina sipas 6! adresa"e
t rregullta, $ra$kers mund t kapin nj kompani spe$ifike.
!r t gjetur se $ilen 6! adrese prdor pr shembull +ni"ersity of /oobar ne foobar.e,u
duhet t shkruajeJ
,ns4uery foobar.e,u
dhe me pas ai do t marre nj list me 6! adresat e tyre. =uke pasur D7,79D 6! adresa dhe
duke njohur H byte#et e pare t nj 6! adrese t nj kompanie sht e leht t kryesh ping
ne te gjithe D7,79D adresat pr t pare se $ila prgjigjet dhe $ila pranon lidhje. Nj $ra$ker
me nj linj t shpejt ,=1- mund t programoje programe pr t thyer sisteme qe
punojne pa nderprerje.
Ao "etm password#et e prdorues"e jane t thyeshme por edhe root password mund t
thyhen leht. Ne "e$anti disa instalime nuk shqetsohen pr t ndryshuar password#in
default me t $ilin sistemet jane pajisur. Nj astronom nga ;erkeley, *liff 1toll, "e'hgoi
parregullsi ne sistemin e tij dhe ngriti nj kurth pr $ra$ker#in i $ili u mundua t thyente
sistemin e tij. ,i "e'hgoi nj skeme t $ilen $ra$ker#i e kishte shkruar. (e ket skeme
$ra$ker#i kishte thyer sistemin e -awren$e ;erkeley -aboratory (-;-) dhe po e prdorte
pr t thyer sisteme t tjera si ai i departamentit t energjise ne +.1.
-;-X telnet el%si
-R16 ,N -;-
-:56NJ root
!,113:.=J root
6N*:..*N !,113:.=, N.] ,5,6N
-:56NJ guest
!,113:.=J guest
6N*:..*N !,113:.=, N.] ,5,6N
-:56NJ uu$p
!,113:.=J uu$p
3-*:( N: N2 -R16 *:(!+N. ,N -;-
Figura 0,+5 1kema si $ra$ker theu sistemin e dep.t energjise +.1.
?sht e mundur qe t prdoret nj software i $ili quhet, !a$ket sniffer i $ili mbikeqyr t
gjitha paketat hyrese dhe dalese ne rrjet pr t kerkuar rreth nj modeli t "e$ant. Nj
model interesant dhe spe$ial sht kerkimi pr persona t $ilt reali'ojne log#in ne
makina ne distan$e.)y informa$ion mund t dergohet ne nj file ku $ra$ker#i e pr'gjedh
me "one.Ne ket menyre nj $ra$ker i $ili thyen nj sistem me siguri t dobet mund ta
prdore ket ne thyerjen e sisteme"e me siguri me t lart. 1hume thyerje reali'ohen nga
prdorues t $ilt prdorin s$ript#e qe gjenden ne internet. )eto s$ript#e prdorin sulme t
forta ose prdorin bug#e t njohur ne programe spe$ifike. 2a$kers#at e "ertet u referohen
si s$ript kiddies.
@akonisht nj s$ript kiddy nuk ka ndonj plan. ,i "etm kontrollon pr makina t $ilat
jane t lehta pr tu thyer. =isa s$ript#e 'gjedhin rastesisht nj rrjet pr ta sulmuar, duke
prdorur nj numer rrjeti t rastesishem (ne pjesen me t siprme t 6! adress). (e pas
kontrollojne t gjitha makinat e rrjetit pr t pare se $ila mund t prgjigjet.
4N;? Pass1ord 6e&urity
=isa sisteme t "jetr operati"e i mbajne filet password ne disk ne nj forme jo te
enkriptuar, por te mbrojtur nga nj sistem mbrojts me mekani'em t 'akonshem. =uke i
pasur keto password#e ne disk ne forme jo te enkriptuar prbn nj rre'ik sepse shume
persona kane akses mbi to. )jo mund t prfshije administratoret e sisemit, operatoret e
makina"e, personelin, mena%heret dhe madje dhe sekretaret. Nj 'gjidhje e mire e $ila
prdoret ne +N6R punon si me posht. !rogrami log#in pyet prdoruesin pr t shkruar
emrin dhe password#in. !assword#i menjehere enkriptohet duke e prdorur at pr t
enkriptuar nj bllok t dhenash. (e pas programi log#in le%on password file i $ili sht
nj seri linjash ,1*66, nj, pr nj prdorues, derisa gjen linjn qe i prket emrit t
prdoruesit. Ne qoft se password#i i enkriptuar prmban ne linj password#in e sapo
llogaritur, log#in pranohet. Ne t kundert ajo refu'ohet. )jo skeme ka nj a"anta'h sepse
askush, qoft dhe super prdorues, nuk mund t shoh password#in e ndonj prdoruesi
pasi keto nuk regjistrohen ne nj form jo te enkriptuar ne sistem. (egjithat dhe kjo
skeme mund t sulmohet. Nj $ra$ker ka ndertuar nj fjalor password#esh t ngjashem me
at t (orris dhe Nhompson. )eto password#e mund t enkriptohen duke prdorur
algoritma t njohur. Nuk ka rendesi se sa 'gjat ky proes sepse ai kryhet gjat thyerjes se
sistemit. Nani t pajisur me nj list t $iftit password, password i enkriptuar, $ra$kers
sulmojne. ,i le%on password file dhe n%jerr t gjitha password#et e enkriptuar. )eto
krahasohen me password#et e enkriptuara me pare nga $ra$ker dhe keshtu emri log#in
dhe password#i i enkriptuar tashme jane t njohur. Nj shell s$ript i thjesht mund t
automati'oje ket proes. =uke njohur ket mundesi (orris dhe Nhompson prshkruan
nj teknike e $ila e bnte sulmin pothuajse t pa prdorshem. 6deja e tyre ishte qe t
bashkonin nj numer t rastesishem prej n#bit, i quajtur salt, me password#in. )y numer i
rastesishem ndryshon sa here qe ndryshon password#i.
)y numer "endoset ne file#in password ne forme t enkriptuar, keshtu qe kushdo mund ta
le%oje at. Ne "end t "endosjes se password#it t enkriptuar ne file#in password,
password#i dhe numri i rastesishem me pare lidhen pastaj enkriptohen se bashku.
.e'ultati i enkriptimit ruhet ne file#in password, si ne fig G#D. 1e$ili prdorues ka nj
linj ne file, me tre hyrje t ndara me presjeJ emri log#in, salt dhe passwordTsalt i
enkriptuar. e=ogMH9L paraqet re'ultatin e password#it t lidhur t ;obb. )y sht
re'ultati i enkriptuar dhe qe ruhet ne fushen e tret t ;oob entry. Nani marim ne
konsiderate rastin kur nj $ra$ker kerkon t ndertoje nj list me password#e, ti enkriptoje
dhe ti ruajne ato ne nj lloj file, keshtu qe do password i enkriptuar mind t shihet
lehtsisht.


Figura 9-6, !rdorimi i salt pr t mbrojtur implikimin e password#e"e t enkriptuar.
Prmirsimi i sigurise se pass1ord,it
dhe pse pajisja e password#it me salt mbronte sistemet nga $ra$ker, kjo nuk
funksinonte pr =a"id i $ili kishte si paswword =a"id. Nj $ra$ker mund t pro"oje si
mundesi pikerisht emrin dhe ta gjeje menjehere password#in. =isa kompjutera kane nj
program qe gjeneron fjale t $ilat shqiptohen leht por nuk kane kuptim t $ilat mund t
prdoren si password. )riteret qe plotson nj password i mireJ
&.!assword duhet t ket minimumi shtat karaktere
H.!assword duhet t ket shkronja t medha dhe t "ogla
9.!assword duhet t ket t paktn nj shifer ose nj karakter spe$ial.
M.!assword nuk duhet t ket fjale direkrorish, emra njere'ish, etj.

A)e,2ime Pass1ord
/orma me ekstreme per ndryshimin e passwordit eshte, one-time password.
)ur prdoren one#time password prdoruesi merr nj liber i $ili prmban nj list me
password#e. 1e$ili log#in prdor password#in pasardhes ne list. Ne qoft se 'bulohet nj
password, nuk ka ndonj problem pasi heres tjetr duhet t prdoret nj password tjetr.
1ugjerohet qe prdoruesi nuk duhet ta humbase librin e password#e"e. )y liber nuk
ne"ojitet ne skemen e propo'uar nga -eslie -amport, e $ila lejonte nj prdorues t log#
ohej ne nj rrjet t sigurt duke prdorur one#time password. )jo metode prdoret pr t
lejuar prdoruesit t logohen ne nj ser"er ne internet edhe pse keqberesit mund t shohin
dhe kopjojne trafikun.
,lgoritmi ba'ohet ne nj funksion y [ f(&) i $ili ka "e$orine qe kur jepet % mund t
gjendet leht y por dhenia e y nuk bn t mundur gjetjen e %. 2yrja dhe dalja duhet t
jene t t njjts gjatsi, pr shembull &HL bit. !rdoruesi 'gjedh nj password sekret t
$ilin e memori'on. ,i gjithashtu 'gjedh dhe nj integer n, i $ili tregon se sa one#time
passwords sht i aft t gjeneroje algoritmi.

Shembull:
)onsiderojme n [ M, ne qoft se passwordi sekret sht sV, passwordi i pare jepet duke
perdorur funksionin n hereJ )
&
[ f(f(f(f(s))))
!assword#i i dyt jepet duke prdorur funksionin n#& hereJ )
H
[ f(f(f(s)))
,jo qe "len t theksohet ketu sht se duke dhene do password si nj sekuen$e, sht e
leht t llogarisesh nj password t meparshem ne nj sekuen$e numerike por sht e
pamundur t llogarisesh password#in e ardhshem. )ur prdoruesi deshiron t logohet pr
here t pare, ai dergon emrin log#in ne ser"er, i $ili i prgjigjet duke i derguar nj integer
ne file#in password -. (akina e prdruesit prgjigjet me !i, i $ili llogaritet lokalisht se
nga $ila shtypet ne spot. (e pas ser"eri llogarit ,}i dhe e krahason me "leren e "endosur
ne file#in password.
N qoft se "lerat prputhen,l og#in pranohet, integeri rritet ne H, /& kalon ! ne file#in
password. Ne logimin tjetr ser"eri i dergon prdoruesit integerin H dhe makina e
prdoruesit llogarit >. 1er"eri llogarit !i dhe e krahason me hyrjen ne file#in password.
N qoft se "lerat prputhen logimi pranohet , integeri kalon ne 9 dhe /H kalon ! ne file#
in password, e keshtu me rradhe.
)ur t gjitha n password#et jane prdorur, ser"eri i ri ini$iali'on nj se$ret key t ri.
7ertetimi Cha%%e)ge,3espo)se
Nj "ariant ne idene e passworde"e sht qe t mundesosh nj list t gjat pyetjesh dhe
prgjigjesh t $ilat gjenerohen nga prdoruesit dhe "endosen ne ser"er ne forme t
enkriptuar. !yetjet duhet t 'gjidhen keshtu qe prdoruesit nuk kane pse ti shkruajne ato.
!yetje t mundeshme janeJ
&. )ush sht motra e (arjoleinU
H. Ne $ilen rruge ndodhej shkolla jote filloreU
9. *ilen lende jepte 3oroboffU
5jat log#in ser"eri pyet njren prej tyre rastesisht dhe kontrollon prgjigjen. !r ta bere
me praktike ne"ojiten shume pyetje#prgjigje. Nj "ariant tjetr sht challenge-
response. )ur prdoret kjo metode, gjat lidhjes prdoruesi 'gjedh nj algoritem, pr
shembull %
H
. )ur prdoruesi logohet, ser"eri i dergon prdoruesit nj argument, pr
shembull C, prdoruesi shtyp MG. ,lgoritmi mund t jet i ndryshem ne mengjes apo ne
darke, ne dit t ndryshme t ja"es, e keshtu me rradhe.
Ne qoft se terminali i prdoruesit ka fuqi llogaritse, si !*, mund t prdoret nj forme
me e fuqishme $hallenge#response. !rdoruesi 'gjedh nj se$ret key , k, i $ili sillet nga
sistemi i ser"erit. Nj kopje e tij $ohet ne kompjuterin e prdoruesit. Ne momentin e
logimit, ser"eri dergon nj numer t rastesishem ne kompjuterin e prdoruesit i $ili
llogarit fXrtk) dhe e kthen mbrapa at. (e pas ser"eri e bn "et llogaritjen dhe kontrollon
n qoft se re'ultati i kthyer prputhet me llogaritjet. ,"anta'h i kesaj skeme sht se n
qoft se nj prgjues shikon dhe regjistron t gjithe trafikun ne t dy drejtimet, ai nuk do
t mesoje gje e $ila mund ta ndihmoje heren tjetr.
0.!.2 7erifikimi duke prdorur )j o'jekt fi$ik
(etoda e dyt pr "erifikimin e prdoruesit sht t kontrollosh pr objekt fi'ik
t $iin prdoruesit e kane,me mire se sa di$ka qe ata dine.*elsa e dyer"e jane prdorur
pr shekuj pr ket qellim. Ne ditt e sotme objekti fi'ik i $ili prdoret shpesh sht karta
plastike. )jo kart "endoset ne nj le%ues i $ili shoqerohet me nj terminal ose
kompjuter. !rdoruesi jo "etm qe duhet t "endose kartn por duhet t shtype dhe
password#in. )jo behet pr t shmangur prdorimin e karts kur ajo humbet ose "idhet.
Nga ky kend"eshtrim, prdorimi i nj ,N(#je fillon me logimin e prdoruesit ne
kompjuterin e bankes neprmjet nj terminali duke prrdorur nj kart dhe nj password .

)artat plastike ndahen ne dy kategoriJ
&.kartat me shirita magnetik
H.kartat me $hip
)artat me shirita magnetike mbajne deri ne &M8 byte informa$ion, i $ili shkruhet ne nj
shirit magnetik i mbyllur nga mbrapa karts. )y informa$ion mund t le%ohet nga nj
terminal dhe t dergohet ne kompjuterin qendror. 6nforma$ioni prmban password#in e
prdoruesit duke bere t mundur qe terminali t identifikoje prdoruesin edhe ne qoft se
lidhja me kompjuterin qendror nuk eg'iston.
)artat magnetike nuk jane tepr t sigurta sepse pajisjet pr le%im/shkrimin e tyre jane t
lira dhe t prhapura.
)artat me $hip prmbajne nj qark t integruar ($hip). )eto karta mund t ndahen ne dy
nenkategoriJ
H. a) kartat e ruajtjes se "leres
H. b) smart kard
)artat e ruajtjes se "leres permbajne nj sasi t kufi'uar memorieje (me pak se &k;) duke
prdorur teknologjine !.:(, e $ila lejon t ruhet nj "lere kur karta hiqet nga le%uesi.
Nuk kemi *!+ ne kart keshtu qe "lera e regjistruar mund t ndryshohet nga nj *!+ e
jashtme e $ila ndodhet ne le%ues. )eto karta 'akonisht prdoren si karta telefonike me
parapagese. )ur nj thirrje kryhet, telefoni dekrementon "leren e karts. !r ket arsye
keto karta prodhohen nga nj kompani pr tu prdorur "etm ne makinat e asaj.
Ne ditt e sotme pune me e sigurt sht reali'uar me smart $ards t $ilat kane nj *!+ L
bit M(2', &D ); .:(, M);!.:(, 7&H ; .,( dhe nj kanal komunikimi me
le%uesin GD88 bps. 1mart $ards prdoren pr t mbajtur parate si kartat e ruajtjes se
"leres, por me siguri me t lart. )artat mund t mbushen me leke ne ,N( ose ne shtpi
duke prdorur nj le%ues t apro"uar nga banka.
)ur futet karta ne nj tip le%uesi, prdoruesi mund t "ertetoje kartn pr t trhequr nj
sasi parash nga karta duke detyruar kartn t dergoje nj mesa'h t enkriptuar .
)y tip le%uesi kthen ket mesa'h ne banke pr t kredituar sasine e para"e t paguara.
Nj a"anta'h i madh pr smart $ards sht se nuk kerkojne nj lidhje on line me banken.
)eto karta jane prhapur kudo. ,to kane dhe prdorime t tjera poten$iale. 6nteresi jone
ketu esht se si ato prdoren pr "ertetim t logimit t sigurt. )on$epti ba'e sht i
thjeshtI smart $ard sht nj kompjuter i "ogel, i sigurt i $ili mund t komunikoje me
kompjuterin qendror. >ariante t ndryshme "ertetimi prdoren pr smart $ards. Nj
$hallenge#response i thjesht mund t punojeJ ser"eri dergon nje numer t rastesishem
7&H bit ne smart $ard, e $ila shton dhe password#in e prdoruesit 7&H bit qe ndodhet ne
!.:(. 1huma me pas ngrihet ne katror dhe 7&H bitet e mesit dergohen mbrapsht ne
ser"er, i $ili di password#in e prdoruesit dhe mund t llogarise kur re'ultati sht i sakt
dhe kur jo.
1ekuen$a tregohet ne /ig. G#C. Ne qoft se nj prgjues shikon t dy mesa'het, ai nuk
sht ne gjendje t kuptoje apo t regjistroje informa$ion pr t ardhmen sepse heres
tjetr nj numer i rastesishem dhe i ndryshem 7&Hbit do t dergohet. Nj disa"anta'h i
protokollit kriptografik (i fshehur grafikisht) fiks sht se pas nj fare kohe ai mund t
thyhet, duke riprodhuar karat e paprdorshme. Nj rruge pr t anashkaluar ket
disa"anta'h sht prdorimi i .:( ne kart jo pr protokoll krptografik por pr
interpretuesin Aa"a. !rotokolli real i kriptogrofuar me pas shkarkohet ne kart si nj
program Aa"a dhe "e ne pune interpretuesin.
Figura 9-7, !rdoruesi i smart $ard pr "ertetim.
Ne ket menyre sapo t thyet nj protokoll, nj protokoll i ri mund t instalohet kudo ne
bot menjehere. Nj disa"anta'h i kesaj prqasje sht se kartat behen me t ngadalshme,
por me rritjen e teknologjise kjo metode sht fleksible. Nj disa"anta'h tjetr i smart
$ard sht se humbja apo "jedhja behet subjekt pr anali'a sulmi.
0.!.! 7ertetimi duke prdorur Biometri&s
(etoda e tret e "ertetimit mat karakteristikat fi'ike t prdoruesit, t $ilat jane t
"eshtira e imitohen. )eto karakteristika quhen biometric (!ankanti et al., H888). !er
shembull, nj le%ues fingerprint ose "oi$eprint ne nj terminal mund t "ertetoje
identitetin e prdoruesit .
Nj sistem biometrik ka dy pjeseJ regjistruesin dhe identifikuesin. 5jat regjistrimit
karakteristikat e prdoruesit maten dhe re'ultati di%hitali'ohet. (e pas tiparet e
rendesishme regjistrohen ne nj rekord i $ili i bashkangjitet prdoruesit. .ekordi mund t
mbahet ne nj data ba'e qendrore ose mund t ruhet ne nj smart $ard. !jesa tjetr sht
identifikuesi. !rdoruesi del ne pah dhe gjeneron nj emer log#in. (e pas sistemi bn
llogaritjet prseri. N qoft se prputhen "lerat, logimi pranohet ne t kundert ai
refu'ohet. mri log#in ne"ojitet sepse llogaritjet nuk jane ek'akte keshtu qe sht e
"eshtire ti indeksosh prdoruesit pastaj t kerkosh indeksin.
)arakteristikat e 'gjedhura duhet t kene ndryshueshmeri t mjaftueshme qe sistemi t
dalloje midis shume persona"e pa bere gabime. 5jithashtu karakteristikat nuk duhet t
ndryshojne "a'hdimisht. -e t shikojme disa karakteristika biometrike qe prdoren sot.
,nali'a e gjatsise se gishtit sht tepr praktike. )ur prdoret kjo teknike se$ili terminal
ka nj pajisje si ne /ig. G#L. !rdoruesi "endos doren e tij ne t dhe gjatsia e gishta"e t
tij matet dhe kontrollohet ne data ba'e.
Figura 9-8, Nj pajisje pr matjen e gjatsise se gishta"e.
dhe gjatsia e gishta"e nuk sht prfekte. 1istemi mund t sulmohet duke prdorur
modele duarsh prej all$ie. Nj karakteristik tjetr biometrike sht anali'a e retines se
syrit. Bdo person ka nj model t ndryshem t ene"e retinale t gjakut, madje dhe pr
binjaket. ,ta mund t fotografohen nga nj kamera & metr larg subjekti. 1asia e
informa$ionit ne skanimin retinal sht me i madh se ne fingerprint dhe mund t kodohet
ne H7D byte.
Nj teknike disi ndryshe sht dhe ajo e anali'es se firmes (nenshkrimit). !rdoruesi
firmos emrin e tij me nj stilolaps spe$ial t lidhur me terminalin dhe kompjuteri e
krahason at me nj model t njohur qe ruhet ne nj smart $ard online.
Nuk sht me rendesi krahasimi i firmes, por krahasohet le"i'ja e stilolapsit dhe shtypja
qe kryhet gjat shkrimit. Nj falsifikues i mire mund t jet ne gjendje t kopjoje firmen,
por nuk mund t ket te dhena pr shtypjet qe behen apo pr shpejtsine e shtypjes.
Nj metode qe mbshtet ne minimun nj hardware spe$ial sht 'eri. 5jithshka qe
ne"ojitet sht nj mikrofon dhe pjesa tjetr sht software. Ne kontrast me sistemin e
identifikimit t 'erit, i $ili prpiqet t 'buloje $fare po thot prdoruesi, ky sistem
prpiqet t pr$akoje $ili sht ai qe po flet. =isa sisteme mbshtesin qe prdoruesi t
thot nj password sekret, por kjo mund t anullohet nga nj prgjues i $ili regjistron
password#et dhe i prdor me "one ato. =isa sisteme t a"an$uara thone di$ka dhe i
kerkojne prdoruesit ta prserise, duke prdorur tekste t ndryshem pr do log#in.
0.!.( Du)dermasat
6nstalimet kompjuterike qe kane ne"oje pr siguri, 'akonisht ndjekin hapa pr t kryer
"ertetimin. !r shembull nj kompani duhet t ket nj linj "eprimi e $ila lejon
punonjsit t logohen nga ora L ,.( deri ne oren 7 !.(, nga e hena ne t premte. Nj
pro"e pr tu loguar ne ndonj orar tjetr do t konsiderohet si prpjekje pr t thyer
sistemin. -injat telefonike =ail#up mund t behen t sigurta duke ndjekur rrugen me
poshtJ
)ushdo mund t telefonoje dhe t logohet, por pas nj logimi t suksesshem, sistemi
menjehere nderpret lidhjen dhe therret prdoruesin ne nj numer t rene dakort. )jo mase
tregon se nj sulmues nuk mund t pro"oje t thyeje sistemin nga nj linj telefonike.
5jat ngjarje"e me apo pa thirrje, sistemi kerkon t paktn 7 sekonda t kontrolloje
password#in e shkruar ne linjn dail#up dhe duhet ta rrise ket inter"al pas disa
prpjekje"e t njpasnjshme t pasuksesshme pr log#in.
N gjithe log#in duhet t regjistrohen. )ur nj prdorues logohet, sistemi duhet t njoftoje
kohen dhe terminalin e logimit t meparshem, keshtu qe sistemi mund t 'buloje thyerjet
e mundshme. 2api tjetr sht joshja drejt gra$kes pr t kapur ata qe nderhyjne.
Nj metode sht t prdoresh nj emer log#in spe$ial dhe nj password t thjesht. 1a
here qe dikush logohet duke prdorur keto t dhena, njoftohen spe$ialistt e sigurise se
sistemit. N gjitha komandat e shkruara nga thyesi jepen ne nj monitor t sigurt dhe
shohim ek'aktsisht se $fare sht duke bere thyesi.
9.4 SULMET NGA BRENDA SISTEMIT
Nj $ra$ker i logg#uar ne nj kompjuter mund t shkaktoje demtime. Ne qoft se
kompjuteri ka nj siguri t mire ai "etm mund t demtoje prdoruesin sistemi i t $ilit u
thye. !or kjo thyerje mund t sjelle thyerje t tjera.
9.4.1 Trojan Horses
Nj sulm i brendshem jane dhe kuajt e trojes (Nrojan 2orses), t $ilt pajisin programet
me kode t $ilt kryejne pune t pa pritshme dhe t pa deshiruaa nga ne. )y funksion
mund t jet modifikim, shuarje ose enkriptim i file#e"e t perdoruesit. !r t "ene ne
pune nj trojan programuesi i tij duhet t ket programin qe do t ek'ekutohet. Nj rruge
e shperndarjes se trojan sht interneti ku ka lojra, mp9, etj. )ur "epron nj trojan, thirret
mje pro$edure e $ila mund t beje do gje qe bn edhe prdoruesi siJ fshin file, hap lidhjet
e rrjetit, etj.
)y marifet nuk prfshin autorin e trojanit i $ili thyen sistemin. )a rruge t tjera pr t
dredhuar "iktimen ne nj trojan t ek'ekutueshem. 1hume prdorues +N6R kane nj
"ariabel, P!,N2, i $ili kontrollon se $ilat direktori jane kerkuar pr nj komande. )jo
mund t shfaqet duke dhene ne shell komanden J
echo $PATH
Nj setting i mundshem pr prdoruesin ast ne nj sistem t "e$ant konsiston ne
direktorit J
J/usr/ast/binJ/usr/lo$ai/binJ/usr/binJ/binJ/usr/binyR && J/usr/u$bJ/usr/manV
J/usr/ja"a/binJ/usr/ja"a/libJ/usr/lo~al/manJ/usr/open win/man
!rdoruesit e tjere kane rruge t ndryshme kerkimi. )ur prdoruesi shkruan prog ne
shell, shell#i ne fillim shikon ne qoft se ka ndonj program t emertuar
$usr$ast$bin$prog. Ne qoft se po ai ek'ekutohet. Ne qoft se jo shell#i pro"on
$usr$local$bin$prog- $usr$bin$prog- $bin$prog- e keshtu me radhe, duke pro"uar t gjitha
direktorit. 1upo'ojme sikur njra nga direktorit t jet e pambrojtur. *ra$ker ka
mundesi qe t "endose programin e tij ne ket direktori. Ne qoft se kjo sht ndodhja e
pare e programit ne list, ai do t ek'ekutohet dhe trojan#i do t "eproje. !rogramet me t
'akonshem ndodhen ne $bin ose $usr$bin, keshtu "endosja e trojan#it ne $usr$bin$2V$ls
nuk sjell demtim pr nj program pasi ne fillim duhet t gjendet programi spe$ifik.
(egjitht supo'ojme se nj $ra$ker "endos la ne $usr$bin$21<. Ne qoft se prdoruesi
shkruan la ne "end t ls tani fillon t "eproje trojan#i duke kryer korruptim t sistemit dhe
me pas shfaq mesa'hin se la nuk ek'iston. =uke futur trojan ne direktori t komplikuara,
t $ilat 'or se shihen nga prdoruesit dhe duke u dhene atyre emra qe mund t pre'antojne
gabime shkrimi t 'akonshme, prbn nj shans t fa"orshem qe dikush ti therrase ato
heret a "one. )y dikush mund t jet super prdorues duke bere qe trojanet t kene
mundesine t 'e"endesojne n$h me nj "ersion qe prmban nj kale troje. Nj prdorues
keqberes por legal, (ai, mund t instaloje nj trap pr nj super prdorues, si me posht.
,i "endos nj "ersion t h i $ili prmban nj trojan ne direktorine e tij dhe bn di$ka
t dyshimt e $ila sht e sigurt qe do t sulmoje super prdoruesin, di$ka si fillimi i &88
$ompute#bound proese"e ne t njjtn kohe. 1hanset jane qe super prdoruesi do ta
'gjedhe trojanin, pr t pare $fare (ai ka ne direktorine e tij duke shkruarJ
$d /usr/mal
6s#6
=isa shell pro"ojne direktorine lokale prpara se t punojne ne Y)@AV. 1uper
prdoruesi mund t prfshije trojan#in e (ai#it me fuqit e super prdoruesit. Nrojnan#i
mund t kryeje $usr$mal$bin$sh 1N+6= root. ,jo qe i ne"ojitet jane dy thirrje sistemJ
$hown pr t ndryshuar prkatsine e $tj&r$mal$bin$sh ne root dhe $hmo$l pr t "endosur
bitin e tij 1N+6=. Nani (ai mund t behet super prdorues. Ne qoft se (ai gjen "eten
frequently short of $ash, ai mund t prdore nj nga trojan#et pr t ndihmuar his liquidity
position. Nrojani kerkon pr t pare ne se "iktima ka nj program bankar online t
instaluar, si Uuicken.
Ne qoft se po, trojan#i drejton programin t transferoje shuma t hollash nga
llogaria e "iktimes ne nj llogari false. (e pas trojan#i ul 'erin e modemit, telefonon nj
numer pagese. Ne qoft se prdoruesi sht online kur trojan#i filloi, prdoruesi nuk do t
kuptoje dhe mund t qendroje ne linj pr ore t tra.

9.4.2 Login i rreme
=i$ka qe mbshttt nga trojanet sht login spoofing. )jo metode punon si "ijonJ
Normalisht kur askush nuk logohet ne nj terminal +N6R ose ne -,N, shfaqet pamja si
ne /iguren G#G(a). )ur nj prdorues shkruan emrin login sistemi e pyet pr password#in.
N qoft se esht korrekt, prdoruesi logohet dhe fillon punen shell#i. 1upo'ojme se (ai
shkruan nj program pr t shfaqur pamjen e /ig. G#G(b). ,jo duket si pamja ne /ig. G#
G(a), pr"e$ se nuk sht nj program logimi ne "eprim por nj program i rreme.
Figura 9-9, (a) -ogim korrekt, (b) logim i rreme
)ur prdoruesi shkruan emrin login, programi i prgjigjet duke e pyetur pr password#in
dhe $akti"i'on prseritjen. !as mbledhjes se emrit login dhe password#it, ato shkruhen ne
nj file dhe programi i rreme dergon nj sinjal pr t "rare shell#in e tij.
)y "eprim logon out (ai dhe 'h"endos programin real pr t filluar dhe shfaqet pamja si
ne /ig. G#G(a). !rdoruesi supo'on se (ai ka bere nj gabim drejtshkrimor dhe logohet
prseri. )et rradhe do t funksionoje. !or nderkohe (ai merr nj $ift t ri emer logimi,
password. =uke u loguar ne shume terminale dhe duke startuar login spoofer ne t gjithe
terminalet ai mund t mbledhe t gjithe password#et. "etmja menyre e "ertet pr tu
mbrojtur nga kjo sht t nj sekuen$e logimi e $ila fillon me nj $eles kombinimi t
$ilin prdoruesit nuk e arrijne dot. 3indows H888 prdor *N.-#,-N#=- pr ket
qellim. Ne qoft se nj prdorues jep ne terminal komanden *N.-#,-N#=-,
prdoruesi korrent logg#out dhe programi sistem i logimit fillon punen. Nuk ka asnj
menyre qe t kalohet ky mekani'em.
0.(.! Bombat logjike
Nj tjetr sulm nga brenda sistemit ne ket kohe sht dhe bomba logjike. )jo
pajisje sht nj pjese kodi e shkruar nga nj programues i nj kompanie dhe i "endosur
ne menyre t fsheht ne sistemin operati" t prodhuar. !r aq kohe sa programuesi e
ushqen me daily password, kodi nuk bn asgje.
(egjithat, ne qoft se programuesi n%ehet dhe heq dore nga premisat e kodit pa e
"rare mendjen, ditn tjetr apo ja"en tjetr bomba logjike humbet rre'ikshmerine e saj.
1hume "ariante t kesaj skeme jane t mundshme. Nj $eshtje e famshme e bomba"e
logjike lidhet me pagat. Ne qoft se numri personal nuk shfaqet ne t pr dy perioda
pagash t njpasnjshme, bomba went off. 5oing off mund t prfshije pastrimin e
diskut, shuarjen e file#e"e t rastesishem.
Ne $eshtjen tjetr kompania kryen nj 'gjidhje t ashpr rreth thirrjes se poli$e#s (6 $ili
mund ose jo t re'ultoje shume muaj me "one por nuk i ri"endos file#at e humbur).
0.(.( Trap Doors
Nj tjetr boshllek ne siguri i $ili shkaktohet nga brenda sht dhe trap door. )y
problem krijohet nga futja e kodit ne sistem nga nj programues sistemi pr t
anashkaluar disa kontrolle. !r shembull, nj programues mund t shtoje kod ne
programin e logimit pr t pranuar dike t logohet me emrin OO'''''OO dhe sOkemi
probleme me password#in. )odi normal ne programin e logimit mund t jet si ne fig. G#
&8(a). Nrap door do t jet si ne fig. G#&8(b).
Nhirrja e stremp kontrollon n qoft se emri i logimit sht '''''. N qoft se po
logimi sht i suksesshem. N qoft se kodi i trap door futet nga nj programues i $ili
punon pr nj fabrike kompjuterash, programuesi mund t logohet ne t gjithe
kompjuterat e prodhuar nga ajo kompani. Nrap door anashkalon t gjithe proesin e
"ertetimit.
Figura 9-10. (a) )od normal (b) )od me trap door
Nj menyre me t $ilen kompanit parandalojne trap doors sht t kesh code
review. (e ket teknike programuesi mbaron se shkruari kodin dhe testimin e module"e,
modulet kontrollohen nga nj kod database. !eriodikisht programuesit ne skuader
paraqesin kodet qe kane shkruar duke treguar dhe funksionet qe kryejne keto kode, rresht
pas rreshti. )jo rrit mundesine e kapjes se rreshta"e ku mund t kemi trap door.
9.4.5 Buffer Overflow
)apja e burime"e nga sulmet lidhet me faktin qe "irtualisht t gjithe sistemet
operati"e dhe shumi$a e programe"e sistem shkruhen ne gjuhen *. /atkeqsisht asnj
kompilues * does array bounds $he$king. 1ekuen$a e kodit nuk sht illegal, nuk
kontrollohet.
int iI
$har $0&8HM4I
i [ &H888I
$0i4 [ 8I
Ne figuren G#&l(a), shohim nj program ne funksionim, me "ariabla lokale ne
sta$k. Ne disa pika programi therret pro$eduren ,, si ne figuren G#& l(b). 1ekuen$a
standarte e thirrjes nderpritet duke kthyer adresen ne sta$k. (e pas kontrolli transferohet
ne ,, i $ili dekrementon sta$k pointerin pr t lokali'uar "ariablat lokale.
Figura 9-11. (a) !rogrami ne funksionim, (b) !asi thirret pro$edura ,,($) ;uffer
o"erflow

1upo'ojme se puna , prfshin file path#in e plot dhe me pas hapet ose mund t
modifikohet. , ka nj buffer me madhesi fikse ;, pr t mbajtur emrin e file#it, si ne
fig.G#&&(b). =uke prdorur nj buffer me madhesi fikse pr t mbajtur file name sht me
e thjesht pr tu programuar sesa t pr$aktohet pr here t pare madhesia aktuale dhe me
pas t alokohet dinamikisht memoria e mjaftueshme. )ur pro$edura kopjon file name ne
buffer, emri tejkalon bufferin dhe mbishkruan memorien ne 'onen gri si ne fig.G#&&($).
N qoft se file name sht i mjaftueshem, ai gjithashtu mbishkruan adresen e kthimit,
keshtu qe kur kthehet ,, adresa e kthimit meret nga mesi i file name. N qoft se adresa
sht random, programi do t ker$eje ne adresen random dhe mund t krijoje konflikt me
disa instruksione.
!o n qoft se file name nuk prmbajne adresa t rastesishmeU !o ne qoft se
prmban nj program binarU
,jo qe mund t ndodhe sht se kur !rogrami kthen ,, tani ; fillon ek'ekutimin. Nj
mashtrim i njjt punon jo "etm me file name. ,jo punon me stringa shume t gjata,
user input ose me di$ka ku programuesi ka krijuar nj buffer me madhesi fikse. /unksioni
gets i librarise * le%on nj stringe nga nj buffer por pa kontroll o"erflow duke u bere
subjekt sulmesh.
=isa kompilues pr$aktojne prdorimin e gets dhe shqetsohen pr t. Nani "jen
pjesa me e keqe. 1upo'ojme qe programi qe do te sulmohet sht 1N+6= root ne +N6R.
)odi i futur mund t beje nj $ift thirrjes sistem pr t kon"ertuar shell#in e sulmuesit ne
disk ne 1N+6= root, keshtu qe kur t ek'kutohet ai do t ket fuqi superuser. Nani mund
t reali'ohet map ne nj file spe$ial t prgatitur ne nj librari shared e $ila mund t
kryeje do lloj demi. :se mund t ek'ekutoje nj thirrje sistem pr mbuluar programin
korent me shell, duke krijuar nj shell me fuqi superuser. Nj fraksion substan$ial i
probleme"e t sigurise lidhen me ket gje dhe sht e "eshtire t fiksosh keto gabime
sepse jane shume programe * ne prdorim. !r$aktimi se nj program ka probleme buffer
o"erflow sht i thjesht. N qoft se kodi burim sht i "lefshem sulmi sht gjithmone
i thjesht sepse layout#i i sta$k#ut njihet gjat e$urise. Nga sulmi mund t mbrohemi duke
duke fiksuar kodin.
9.4.6 Sulmet e prgjithshem ndaj sigurise
.ruga e sotme e testimit t sigurise se sistemit sht punesosh nj grup eksprtsh
t $ilt njihen si tiger teams pr t pare n qoft se thyejne dot sistemin. Ne shume "ite
pune keto skuadra kane 'buluar nj numer fushash ne t $ilat sistemet jane t dobeta. (e
posht jepet nj list sulmesh t 'akonshme t $ilat shpesh re'ultojne t sigurta ne
thyerjen e sisteme"e.
&. )erkesa e faqe"e ne memorie, hapesira e diskut dhe le%imi i tyre. 1hume sisteme
nuk i shuajne ato prpara se ti lokali'ojne. )eto mund t kene shume informa$ion
me interes t shkruar nga dikush qe i 'otronte me prpara.
H. )ryerja e thirrje"e sistem ilegale ose legale me parametra ilegale apo thirrjet
sistem legale me parametra legale por t pa arsyeshem. 1hume sisteme mund t
behen konfu'e.
9. 1tartimi i logimit dhe shtypja e =-, .+;:+N ose ;.,) gjate sekuen$es se
logimit. Ne disa sisteme programi i kontrollit t passwordit do t "ritet dhe logimi
mund t konsiderohet i suksesshem.
M. !ro"a pr t modifikuar stuktura komplekse t sisteme"e operati"e t $ilat
mbahen ne user spa$e. Ne disa sisteme pr t hapur nj file, programi nderton nj
strukture t madhe t dhenash qe prmban emrin e file#it dhe parametrat e tjere t
$ilt ja kalon sistemit. 5jat kohes kur file#i le%ohet apo shkruhet, sistemi
ndonjehere update#on "et strukturen. Ndryshimi i ketyre fusha"e mund t
shkatrroje sigurine.
7. 1hiko pr manuale qe thoneE (os e bej R gje F. !ro"o sa me shume "ariante t R
qe t jet e mundur.
D. ;ind programuesin e sistemit t shtoje nj trap door duke anashkaluar kontrollet e
sigurise pr prdoruesit me emrin tuaj t logimit.
C. =eprtuesi mund t gjeje sekretarine e administratorit t sistemit dhe t paraqitet
si nj prdorues i dobet i $ili ka harruar password#in dhe i duhet shpejt. 1ekretaria
ka nj akses mbi t gjitha llojet e informa$ionit.
9.4.7 T metat e famshme t sigurise
,shtu si industria e transportit kishte deshtimin ne Nitani$ dhe ndertuesit e
sisteme"e operati"e, gjithashtu kane disa gjera t $ilat nuk i marrin parasysh.
T meta e famshme ne UNIX
1herbimi 1pr- ne EN12 , i $ili printon nj file ne printer ka si mundesi t le"i'e file#
in pas printimit. Ne "ersionet e para ishte e mundur qe 1pr t prdorej nga t gjithe dhe
me pas sistemi le"i' file#in password. Nj menyre tjetr pr t hyre ne +N6R ishte lidhja
e nj file ne direktorine e punes t quajtur core. 1ulmuesi me pas nderhyn me for$e ne
berthamen e programit 1N+6=, program te $ilin sistemi e shkruajti ne file $ore, i $ili
ndodhet ne maje te filet password. Ne kete menyre, nje user mund te 'e"endesoje nje /ile
password me permbajtjen e disa stinga"e sipas 'gjedhjes se tij. (e.g., $ommand
arguments).
Nj tjetr e met ne +N6R prfshin komanden
mkdir foo
k,ir i $ili sht nj 1N+6= program ne "aresi t root, si fillim krijohet nj nyje i
pr direktorine foo neprmjet thirrjes sistem mknod dhe ndr'shon prkatsine ne foo nga
ajo efekti"ja +6=.
)ur sistemi ishte i ngadalshem ishte e mundshem pr prdoruesit t le"i'in shpejt
direktorine i#node dhe t krijojne nj lidhje me file#in password nen emrin foo pas mknod
por para $hown. )ur mkdir kryen $hown, ai pajis prdoruesin me prkatsine e file#it
password.
T metat e famshme ne TENEX
1istemi operati" NNR ishte i prdorur ne kompjuterat =*#&8. Nuk u prdor
gjat. NNR suportonte paging. !r t lejuar prdoruesit t monitoronin sjelljen e
programe"e t tyre ishte e mundur t udhe'ohej sistemi t therriste nj funksion
prdoruesi se here qe kishim page fault.NNR prdorte password pr t mbrojtur file#at.
!r t aksesuar nj file programi duhet t paraqiste password#in e posa$em ne sistemin
operati" ne momentin qe hapej file#i. 1istemi operati" kontrollon password#in, shkronj
me shkronj, duke ndaluar aty ku kemi gabim. !r t thyer NNR nderhyresi duhet ta
po'i$ionoje mire password#in.
Figura 9-12. !roblem ne password#in e NNR
2api tjetr sht t sigurohesh qe faqja e dyt nuk sht ne memorie ,pr shembull
duke iu referuar shume faqe"e t tjera duke bere qe faqja e dyt t largohet duke hapur
"end pr ato. Nani programi prpiqet t hape file#in e "iktimes duke prdorur me kujdes
password#in qe i bashkangjitet. Ne qoft se karakteri i pare i password#it t "ertet nuk
prkon me at qe shkruan nderhyresi, sistemi ndalon kontrollin e password#it dhe jep
mesa'hin 6--5,- !,113:.=. N qoft se shkronja e pare e password#it real prkon
me at t shkruar, sistemi "a'hdon me le%imin dhe ndodh nj page fault, pr t $ilin
nderhyresi lajmerohet. N qoft se shkronjat e para nuk prkojne nderhyresi ndryshon
password.
T metat e famshme t sigurise ne OS/360
!rshkrimi qe jepet sht i thjesht por paraqet esen$en e t meta"e. Ne ket
sistem ishte e mundur t startoje le%imin ne nj tape dhe me pas t "a'hdoje me llogaritje
gjat kohes qe dri"eri transferonte data pr ne user spa$e. (ashtrimi ketu ishte qe t
startoje me kujdes le%imin e tape#it dhe me pas t kryeje nj thirrje sistem e $ila
prmbante strukturen e t dhena"e t prdoruesit. 1istemi operati" ne fillim "erifikonte se
a ishte me t "ertet password#i i sakt. (e pas le%ohej prseri emri i file#it pr aksesim
aktual. /atkeqsisht kur sistemi shkonte t merrte emrin e file#it pr here t dyt, emri i
file#it mbishkruhej nga tape dri"e. 1istemi me pas le%onte file#in e ri pr t $ilin nuk kemi
password pre'ent.
9.4.8 Principet e dizenjimit t sigurise
Nani sht e qart se di'enjimi i nj sistemi operati" t sigurt nuk sht nj problem
i "ogel. Ne ket problem sht punuar pr shume dekada por me pak sukses. )erkuesit
kane pr$aktuar disa prin$ipe t prgjithshme t $ilat mund t prdoren si guide pr
ndertimin e sisteme"e operati"e t sigurt.
&. =i'enjimi i sistemit duhet t jet publik. =uke pretenduar se nderhyresit nuk e
dine se si funksionon sistemi, ky eshte "etem nje ilu'ion per di'enjuesit e tij.
1ulmuesit e sistemit heret apo "one do ta 'bulojne dhe mbrojtja e sistemit eshte e
kompromentuar ne kete moment.
H. =efault#i nuk duhet aksesuar. 5abimet ne t $ilt refu'ohet aksesimi do t
raportohen me shpejt se sa ne at qe lejohet aksesimi.
9. )ontrollo pr $urrent authority. 1istemi nuk duhet kontrolloje pr leje, duke
llogaritur qe aksesimi eshte i lejuar, pasi e ka marre informa$ionin ai e kryen kete
"eprim. 1hume sisteme kontrollojne pr leje kur nj file hapet. )jo do t thot se
nj prdorues i $ili hap nj file dhe e mban t hapur pr ja"e t tra do t ket
akses edhe mbasi 'oteruesi i file e ka ndryshuar mbrojten e filet ose e ka fshire
ate.
M. Ni jepet se$ilit proes pri"ilegjet me t paket t mundshem. N qoft se nj editor
ka "etm autoritetin pr aksesim file#ash pr ti edituar, editoret me Nrojan nuk do
t jene ne gjendje t bejne shume deme. )y prin$ip implikon nj skeme mbrojtjeje
t mire.
7. (ekani'mi i mbrojtjes duhet t jet i thjesht, uniform dhe i ndertuar ne numrin
me t "ogel t mundshem t shtresa"e. 1iguria si ajo e korrigjimit nuk sht nj
"e$ori shtese.
D. 1kema e 'gjedhur duhet t jet psikologjikisht e pranueshme. N qoft se
prdoruesit ndiejne qe mbrojtja e file#e"e t tyre sht nj pune e madhe, ata nuk
do ta kryejne ket pune.
Ne ket list do t shtojme dhe nj prin$ip tjetr J
baje ,iBenjimin t thjesht.
Ne qoft se sistemi sht elegant dhe i thjesht, i di'enjuar nga nj arkitekt dhe ka pak
prin$ipe udhe'imi, ka nj shans pr t qene i sigurt. (und t di'enjohet nj sistem me
shume "e$ori por ky sht nj system i madh. 1istemet e medha jane poten$ialisht t
pasigurt.

9.5 SULMET NGA 1ASHT SISTEMIT
)r$nimet e diskutuara n seksionin e mparshm ishin kryesisht t shkaktuara nga
brenda, domethene t bra nga user#i i loguar tashm n sistem. (egjithat, pr makinat
t lidhura n 6nternet ose n ndonj rrjet tjetr, ka nj rritje t kr$nime"e nga jasht. Nj
kompjuter n rrjet mund t sulmohet nga nj tjetr kompjuter n distan$ i $ili ndodhet po
n kt rrjet. !othuajse n t gjitha rastet, nj sulm i till konsiston n disa kode t
transmetuara prgjat rrjetit drejt makins objekti" dhe i ek'ekutuar atje shkakton
dmtim. 1a m shum kompjutera tOi bashkohen 6nternetit, aq m i madh sht mundsia
pr dme. ( posht ne do t shohim disa aspekte t sisteme"e operati"e pr kto
kr$nime nga jasht, duke u fokusuar s pari tek "iruset, deprtimet (worms), kodet
mobile (mobile $ode) dhe applet#et e Aa"a#s.
?sht e "shtir t hapsh nj ga'et n kto dit, pa le%uar rreth nj tjetr "irus
kompjuteri ose deprtimi (worm) duke sulmuar botn e kompjutera"e. ,ta jan qarta'i
nj problem madhore sigurie pr indi"idt dhe kompanit e ngjashme. N seksionin
pasues ne do t "rejm se si ato punojn dhe far mund t bhet rreth tyre.
=o t he'itoja t shkruaja kt paragraf n shum detaje, q t mos i jap disa njr'"e
mendime t pa "lera, por ek'istojn libra q japin m shum hollsi duke prfshir madje
dhe kode reale (per shembull -udwig, &GGL). 5jithashtu 6nterneti sht i tejmbushur me
informa$ion rreth "iruse"e, kshtu q Egjeniu sht tashm jasht shishesF. >e ksaj,
sht e "shtir pr njer'it q t mbrojn "eten e tyre kundr "iruse"e ne qofte se ata
nuk din se si ata punojn. !rfundimisht, ka shum mendime t gabuara rreth "iruse"e
q qarkullojn, q ne"ojitet t korrigjohen.
Ndryshe nga sa po themi, programues lojrash, autort e "iruse"e t suksesshme, nuk
priren drejt publi$ittit, mbasi produkti i tyre e bn debutimin. =uke u ba'uar n t
dhnat e pakta q ka, duket se m s shumti jan student t shkolla"e t larta ose
kolegje"e ose t sapo diplomuarit q shkruajn kto "iruse si nj sfid teknike, duke mos
imagjinuar se nj sulm "irusi mund t shkaktoj po aq "iktima t mbledhura s bashku, sa
nj uragan ose nj termet. -e ta quajm antihero#in ton >irgil, shkruesin (autorin) e
"iruse"e. Ne qofte se >irgil sht tipik, synimi tij sht q t krijoj nj "irus q prhapet
shpejt, sht e "shtir t 'bulohet dhe ta heqsh qafe sapo t 'bulohet.
5jithsesi, far sht nj "irusU 1hkurtimisht, nj "irus sht nj program q mund t
riprodhoj "et"eten duke "n kodin e tij n nj tjetr program, i ngjashm me
riprodhimin e "iruse"e biologjik. >e ksaj, "irusi mund t bj dhe gjra t tjera "e
riprodhimit t "et"etes. =eprtimet (worm) jan si "iruset por "et#prsriten (kopjohen).
)y ndryshim nuk do t na interesoj tani ktu, kshtu q do t prdorim termin E"irusF
prfshir t dyja, pr momentin. =o t shohim rreth worm#e"e n seksionin G.7.7.
9.5.1 SKENARI I DMIT Q SHKAKTON VIRUSI
!r sa koh q nj "irus sht nj program, mund t bj do gj q bn nj program. !er
shembull, mund t shtyp nj mesa'h, t shfaq nj ima'h n monitor, t luaj nj mu'ik
ose dika tjetr t padmshm. /atkeqsisht, mundet gjithashtu t fshij, modifikoj,
shkatrroj ose t "jedh skedar (duke i drguar diku tjetr). )r$nimi (shanta'hi) sht
gjithashtu nj mundsi. 6magjinoni nj "irus q inkripton (en$rypt) t gjitha fluturimet n
hard disk#un e "iktima"e, m pas shfaq mesa'hin e mposhtmJ
!?.12?N=NA N5, 6N).6!N6(6 ).]1:.

!?. N? ;-.? B-?16N =).!N6(6N !?. 2,.= =61)#un N+,A, A+ -+N(
=?.5:N6 P&88 N? N? 2:--,, /,N+. N? !, 12?N+,. N? )+N6N? H&7M,
!,N,(, *6N], !,N,(,. A+ /,-(6N=.6N. >-.?1:A(? ,)N6>6NN6N
N+,A.
Njetr gj q mund t bj nj "irus sht ta shndrroj kompjuterin tuaj t paprdorshm
pr aq koh sa "irusi sht akti" (n funksionim). )jo sht quajtur mohim i sulmit t
shrbimit (denial of service attack). .ruga m e 'akonshme sht konsumimi i
burime"e n mnyr jo t kujdesshme, t till si *!+ ose mbushja e disk#ut me
hedhurina. )tu sht nj program nj#rresht i prdorur pr t fikur do sistemi +N6RJ
main () c while (&) fork ()Ie
)y program krijon proese derisa proesi tabel (table) sht plot, duke parandaluar do
proes tjetr nga fillimi. Nani imagjinoni nj "irus q infekton do program n sistem me
kt kod. N mbrohesh kundr ktij problemi, shum sisteme moderne +N6R limitojn
numrin e fmij"e q nj proes mund t ket njehersh .
(adje dhe m keq, nj "irus mundet pr nj koh t gjat t dmtoj hardware#in e
kompjuterit. 1hum kompjutera modern e mbajn ;6:1#in n flash .:(, n t $ilin
mund t rishkruhet nn kontrollin e nj programi. Nj "irus mund t shkruaj rastesisht
hedhurina n flash .:( kshtu q kompjuteri tashm nuk do t boot#ohet. Ne qofte se
$hip#i i flash .:( sht n nj so$ket, 'gjidhja e problemit krkon hapjen e kompjuterit
dhe '"endsimin e $hip#it. Ne qofte se $hip#i i flash .:( sht i lidhur me bordin
prind, mundet q i tr bordi duhet t '"endsohet. !adyshim jo nj eksperien$ e
dshirueshme.
Nj "irus gjithashtu n%irret me nj synim t $aktuar. Nj kompani mund t lshoj nj
"irus q t kontrolloj ne qofte se sht duke operuar n nj fabrik konkurrente dhe jo me
nj administrator sistemi t loguar tashm n t. Ne qofte se, lshimi ishte i lir, do t
ndrhyj n proesin e prodhimit, duke reduktuar kualitetin e produktit, si rrjedhim
shkakton probleme pr konkurrentin. N t gjith rastet e tjera nuk do t bnte asgj,
duke e br t "shtir pr tOu 'buluar.
9.5.2 SI FUNKSIONO1N VIRUSET.
(jaftueshm pr nj skenar poten$ial dmtimi. Nani le t shohim se si "iruset punojn.
>irgil shkruajti "irusin e tij, ka t ngjar n gjuhn assembler, dhe m pas me kujdes e
futi n nj program n kompjuterin e tij duke prdorur nj mjet (tool) t quajtur droppr.
)y program i infektuar m pas shprndahet, ndoshta duke e postuar at n nj bord
buletini ose n nj koleksion software pa pages n 6nternet. !rogrami mund t jet nj
loj e re interesante, "ersione pirate t disa software#"e komer$iale, ose do gj t tjetr
q mund t konsiderohet e dshirueshme. Njer'it m pas fillojn t transferojn
(download#ojn) programin e infektuar n kompjuterin e tyre.
1apo t instalohet n makinn E"iktimF, "irusi qndron n gjum derisa programi i
infektuar ek'ekutohet. 1apo t filloj, ai 'akonisht fillon duke infektuar programet e tjera
n makin dhe pastaj ek'ekuton payload#in e tij. N shum raste, payload#i mund t mos
bj asgj derisa nj dat e $aktuar ka kaluar pr tOu siguruar se "irusi sht prhapur
gjersisht prpara se njer'it fillojn t njoftohen pr t. N datn e 'gjedhur mund edhe
t drgohet nj mesa'h politik.
N diskutimin e mposhtm, ne do t "rejm C lloje "irusesh ba'uar n at far
infektojn. )to jan "iruse shoqrues, programe t ek'ekutueshme, memorie, sektor
boot, de"i$e dri"er, ma$ro dhe kod burim. Nuk ka dyshim q tipe t tjera do t shfaqen n
t ardhmen.
Companion Viruses ( "iruset shoqrues ).
Nj #irus companion n t "rtt nuk infekton nj program, por nis t operoj kur
programi sht i supo'uar t filloj. )on$epti sht i thjesht, le t shpjegohet m nj
shembull. N (1#=:1, kur prdoruesi shtypI

)rog
(1#=:1#i n fillim krkon pr nj program t quajtur prog.com. Ne qofte se, nuk
gjendet nj i till, shikon pr nj program t quajtur prog.e&e. N 3indows, kur
prdoruesi klikon n 1tart dhe m pas .un, ndodh e njjta gj. N ditt tona, shumi$a e
programe"e jan skedar .e&eJ skedart .com jan shum t pakt.
1upo'oni se >irgil e di se shume njr' ek'ekutojn prog.e&e nga nj promt (1#=:1#i
ose nga .+N#i i 3indows#it. ,i m pas mund t lshoj lehtsisht nj "irus t quajtur
prog.com i $ili do t ek'ekutohet kur do kush do t pro"oj t ek'ekutoj prog ("e n
se ai shtyp emrin e plotJ prog.e&e). )ur prog.com ka mbaruar detyrn e tij, ai m pas
"etm sa ek'ekuton prog.e&e.
Nj sulm disi i lidhur me desktop 3indows, i $ili prmban short$ut#et ( linke simbolike )
e programe"e. Nj "irus mund t ndryshoj qllimin e nj short$ut#it pr ta br argument
pr "irusin. )ur prdoruesi klikon dy her n nj ikon, "irusi sht ek'ekutuar. )ur kjo
sht br, "irusi "etm ek'ekuton qllimin origjinal t programit.
Program viruset e ekzekutueshm.
Nj hap m lart drejt kompleksitetit jan "iruset q infektojn programet e
ek'ekutueshm. ( t thjeshtit e ktyre "iruse"e, "etm sa mbishkruanjn programet e
ek'ekutueshm me "eten e tyre. )ta jan quajtur #iruse t mbishkruajtshm. 6nfektimi
logjik t nj "irusi t till sht dhn n Fig. D%13.
ain$lude Ysys/types.hX /b kok !:16R standarte b/
ain$lude Ysys/stat.hX
ain$lude Ydirent.hX
ain$lude Yf$ntl.hX
ain$lude Yunistd.hX
stru$t stat sbufI /b pr thirrjet lstat pr t par n se skedari
sht symlink b/
sear$h ($har bdir` name)
c /b kontrolli rekursi" (prsrits) pr t
ek'ekutueshmet b/
=6. bdirpI /b pointer drejt nj stream direktorie t hapur b/
stru$t dirent bdpI /b pointer n hyrje t nj direktorieb/

dirp [ opendir(dir`name)I /b hap kt direktori b/
if (dirp [[ N+--) returnI /b dir nuk mund t hapetI harroje b/
hile (N.+) c
dp [ readdir(dirp)I /b le%o hyrjen e direktoris pasuese b/
if (dp [[ N+--) c /b N+-- do t thot ne mbaruam b/
$hdir (\..\)I /b ktheu mbrapa tek direktoria prind b/
breakI /b dil nga $ikli b/
e
if (dp#Xd`name084 [[ h.h) $ontinueI /b kalo . dhe .. direktorit b/
lstatcdp#Xd`name, Ssbuf)I /b a sht hyrja nj link simbolikU b/
if (1`61-N)(sbuf.st`mode)) $ontinueI /b kapr$e link#un simbolik b/
if ($hdircdp#Xd`name) [[ 8) c /b n se $hdir arrihet me sukses,duhet t
ket nj dir b/
sear$h(\.\)I /b po, hyr dhe kontrolloje at b/
e else c /b jo (file), infektoje at b/
if (a$$ess(dp#Xd`name,R`:)) [[ 8) /b n se sht i ek'ekutueshm,
infektoje at b/
infe$t(dp#Xd`name)I
e
$losedir(dirp)I /b dir i prpunuarI prfundo dhe kthehu b/
e
e
Figure 9-13. Nj proedur rekursi"e q gjen skedar t ek'ekutueshm n nj
sistem +N6R
!rogrami kryesor i ktij "irusi do t kopjoj n fillim programin binar t tij n nj rresht
duke hapur arg# 084 dhe duke e le%uar at pr nj ruajtje t sigurt. ( pas i duhet t
prshkuaj t tr file#in sistem duke filluar nga direktoria root (rrnj) duke ndryshuar
direktorin root dhe duke thirrur search me direktorin root si parametr.
!ro$edura rekursi"e search shqyrton nj direktori duke e hapur at, m pas le%on hyrjen
nj her n koh duke prdorur rea,,ir derisa nj N+-- sht prgjigjur duke treguar q
nuk ka porta. N se porta (hyrja) sht nj direktori, proesohet duke e ndryshuar at dhe
m pas thirret rekursi"isht searchJ n se sht nj file i ek'ekutueshm, infektohet duke
thirrur infect me emrin e skedarit pr ta infektuar si parametr. 1kedart q fillojn me E.F
kapr$ehen pr t shmangur problemet me direktorit me . dhe .. 5jithashtu, link#et
simbolike kapr$ehen sepse programi supo'on q ai mund t hyj n nj direktori duke
prdorur thirrjen e sistemit ch,ir dhe m pas t kthehet atje ku ishte duke shkuar sipas .. ,
dika q mban si nj link t fort por jo link simbolik. Nj program amator mund t
mbaj gjithashtu me raste link#e simbolike.
!ro$edura aktuale e infektimit, infect, "etm sa hap skedarin e emruar n parametrat e
tij, kopjon "irusin e ruajtur n nj rresht (grup) mbi skedar dhe m pas mbyll skedarin.
)y "irus mund t prmisohet n mnyra t ndryshme. 1 pari, nj test mund t futet
brenda infect pr t gjeneruar nj numr t rastit dhe m pas t kthehet n rastet m t
shumta pa br asgj. N, le t themi, nj thirrje nga &HL, infektimi do t 'inte "end, n
kt mnyr do t reduktonte shanset pr nj detektim ('bulim) t hershm, prpara se
"irusi t ket patur nj shans t mir pr tu prhapur. >iruset biologjike kan t njjtat
tipareJ ata q "rasin shpejt "iktimat e tyre, nuk prhapen aq shpejt sa ata q prodhojn nj
ngadalsi, "dekje t ngadalt, duke i dhn "iktima"e shanse t shumta pr t prhapur
"irusin. Nj plan alternati" do t ishte nj norm e lart infektimi (le t themi, H7Q) por
nj ndrprerje n numrin e skedar"e t infektuar n t njjtn koh pr t reduktuar
"eprimtarin e diskut dhe si rrjedhoj do t ishte m pak e dukshme.
1 dyti, infect (infektimi) mund t kontrolloj n se skedari sht tashm i infektuar.
6nfektimi i t njjtit skedar pr s dyti "etm sa do t humbt koh. 1 treti, shkalla mund
t merret pr t mbajtur kohn e modifikimit t fundit dhe madhsin e skedarit n t
njjtn mnyr sikur do t ndihmoj t fshehje infektimin. !r programet m t mdha se
"irusi, madhsia do t mbetet e pandryshuar, por pr programet m t "ogla se "irusi,
programi tani do t 'madhohej. (eqen se shumi$a e "iruse"e jan m t "egjl se
shumi$a e programe"e, ky nuk sht nj problem.
Ndon se ky program nuk sht shum i gjat (programi i plot sht m pak se nj faqe
* dhe programi burim kompilohet n m pak se H);), nj "ersion i kodit assembler i tij
mund edhe t shkurtohet. -udwig (&GGL) shkroi nj program n kod assembler pr (1#
=:1 q infektonte t gjith skedart n direktorin e tij dhe ishte "etm MM byte kur
assemblohej.
( "on n kt kapitull do t studiojm programin anti"irus, q sht nj program q
kap dhe fshin "iruset. (egjithat, sht e rndsishme t prmendet logjika e /ig. G#&9, e
$ila prdor nj "irus q t gjej t gjith skedart e ek'ekutueshm pr tOi infektuar ato,
gjithashtu mund t prdoret nga nj program anti"irus pr t kapur t gjith programet e
infektuar pr t fshir kto "iruse. Neknologjia e infektimit dhe disinfektimit shkojn krah
pr krah, kjo sht arsyeja pse sht e ne"ojshme pr tOi kuptuar n detaje se si "iruset
funksionojn pr t qen t aft q tOi luftojm ato efekti"isht.
Nga knd"shtrimi i >irgil, problemi i mbishkrimit t nj "irusi sht, se sht shum e
leht pr tOi 'buluar. N fund t fundit, kur nj program i infektuar ek'ekutohet, mund t
prhap "irusin m shum, por nuk bn at q duhet t bj dhe prdoruesi do ta "rej
kt menjeher. 1i pasoj, shum "iruse sulmojn "eten e tyre n program dhe bjn
punn e tyre, por lejojn q programi t punoj normalisht m pas. )to "iruse njihen si
viruse parazit.
>iruset para'it mund t sulmojn "eten e tyre n fillim, n fund ose n mes t programit
t ek'ekutueshm. N se nj "irus sulmon "eten e tij para programit, ai duhet t kopjoj
s pari programin n .,(, ta shkruaj "eten e tij n fillim t skedarit, dhe m pas t
kopjoj programin nga .,(#i duke ndjekur "eten e tij, si tregohet n /ig. G#&M(b).
/atkeqsisht, programi nuk do t ek'ekutohet n adresn "irtuale t tij t re, kshtu q
dhe "irusi duhet t 'h"endos programin meq ai ka l"i'ur, ose ta fus fshehtas prapa n
adresn "irtuale 8 pasi ka mbaruar ek'ekutimin e tij.
Figure 9-14. (a) Nj program i ek'ekutueshm. (b) me nj "irus n fillim. ($) me nj
"irus n fund. (d) me nj "irus t prhapur n hapsirn e lir brenda programit.
!r t shmangur kompleksitetin e teprm t opsione"e krkuar nga ky ngarkim i
prparm, shum "iruse jan ngarkues t fundm, duke sulmuar "eten e tyre n
prfundim t ek'ekutimit t programit, duke ndryshuar fillimin e fushs s adresa"e n
header pr t shnjuar fillimin e "irusit, si tregohet n /ig. G#&M($). >irusi tani do t
ek'ekutohet n nj adres "irtuale t ndryshme i "arur nga programi i $ili po ek'ekutohet,
por e gjitha kjo do t thot q >irgil duhet t siguroj "irusin e tij po'i$ionim t pa"arur.
)jo nuk sht e "shtir pr nj programues me eksperien$.
/ormati kompleks i programit t ek'ekutueshm, i till si skedart, e&e n 3indows dhe
pothuajse n t gjith formatet binar +ni% modern, lejojn q nj program t ket tekst t
shumfisht (prbrs) dhe segmentet data...
Viruset Rezident n Memorie
=eri tani ne kemi supo'uar se kur nj program i infektuar sht ek'ekutuar, "irusi
proedon, kalon kontrollin n programin real dhe del. N kundrshtim, nj "irus me
qndrim n memorie qndron n memorie gjith kohn, pr m tepr duke u fshehur n
fillim t memories ose ndoshta posht, prgjat "ektor"e interrupt, n &88 bytet e fundit
t $ilt 'akonisht nuk jan n prdorim. Nj "irus i E'gjuarF mundet madje dhe t
modifikoj bitmap#in e .,(#it t sistemit operati", pr ta br sistemin t mendoj se
memoria e "irusit sht e 'n, pr t shmangur "shtirsin i t qnit i mbishkruajtshm.
Nj "irus tipik re'ident#memorie kap nj nga trap#et ose "ektort e interrupt#e"e duke
kopjuar prmbajtjen e piknisjes s "ariabla"e dhe duke "endosur adresn e tij atje, duke
e drejtuar kshtu at trap ose duke e penguar at. @gjidhja m e mir sht q sistemi t
thrras trap#et. N kt mnyr, "irusi merr ek'ekutimin (n mnyrn kernel) n do
thirrje t sistemit. )ur kjo kryhet, ai "etm sa i krkon sistemit real t thirrur nga
kr$imet n adresn e ruajtur t trap#it.
!se nj "irus duhet t ek'ekutohet n do thirrje t sistemitU
!r t infektuar programin, natyrisht. >irusi "etm sa pret deri sa nj thirrje sistemi e&ec
"jen dhe ather, duke ditur q skedari n krah sht nj binar i ek'ekutueshm, e
infekton at. )y proes nuk krkon akti"itet masi" t diskut t /ig. G#&9 kshtu q sht
m pak e dukshme. N kapurit e gjith thirrje"e t sistemit gjithashtu i jep "irusit mundsi
t mdha pr t prgjuar n data dhe kryen t gjitha dmet e mundshme.
Viruset e Sektorit Boot
1ikurse e diskutuam n )apitullin 7, kur shumi$a e kompjutera"e jan t nde'ur, ;6:1#i
le%on t dhnat (diskun, regjistrimin, pllakn) e master boot nga fillimi i diskut t boot#it
brenda .,(#it dhe e ek'ekuton at. )y program pr$akton $ili parti$ion sht akti" dhe
e le%on n sektorin e par, sektorin boot nga ai parti$ion dhe e ek'ekuton at. ,t
program q pr m tepr ngarkon sistemin operati" ose sjell n loader (ngarkim) pr t
ngarkuar sistemin operati". /atkeqsisht, nj nga shokt e >irgil hodhi iden e krijimit t
nj "irusi q mund t mbishkruante master boot rekord ose sektorin boot, me nj re'ultat
shkatrrues. )to "iruse, t quajtur boot sektor viruses, jan shum t 'akonshm.
@akonisht, nj "irus sektor boot#i cq prfshin "iruset (;. ((aster ;oot .e$ord)e, n
fillim kopjon sektorin boot t "rtet n nj "end t sigurt t diskut kshtu q ai mund t
boot#oj sistemin operati" kur ai t ket mbaruar. !rogrami (i$rosoft i formatimit t
diskut, f,isk - kapr$en tra$k#un (pistn) e par, kshtu q ai sht nj "end i fsheht i
mir n makinat 3indows. Nj opsion tjetr sht t prdor do sektor t lir t diskut
dhe m pas t freskoj (update) listn e sektorit t keq q t shnoj EstrofullnF si t
dmtuar. N fakt, n se "irusi sht i madh, ai mundet gjithashtu t maskoj pjesn tjetr
t tij si nj sektor t keq. N se direktoria root sht mjaftueshm e madhe dhe n nj
"end t fiksuar, si sht n 3indows GL, fundi i direktoris root (rrnj) sht gjithashtu
nj mundsi. Nj "irus "rtet agresi" mundet madje t $aktoj nj hapsir normale t
diskut pr sektorin e "rtet t boot#it dhe "eten e tij dhe t freskoj (update) bitmap#in e
diskut ose n prputhje me listn e lir. N bsh kt krkon njohuri t strukturs s
data"e n brendsi t sistemit operati", por >irgil kishte nj profesor shum t mir pr
kursin e tij t sisteme"e operati"e dhe studionte shume.
)ur kompjuteri sht boot#uar, "irusi kopjon "eten e tij n .,(, n fillim ose ndrmjet
"ektor"e t interrupt#e"e. N kt pik makina sht n formn kernel (mode kernel),
me ((+ off, jo sistem operati" dhe jo me nj program anti"irus n "eprim. N koht e
pjeseshme (t pritjes) pr "iruset. )ur sht gati, boot#on sistemin operati", 'akonisht
duke qndruar re'ident n memorie.
Nj problem, gjithesesi, sht se si t merret kontrolli prsri m "on. (nyra e
'akonshme sht t shfryt'ohen njohurit spe$ifike se si sistemi operati" mena%hon
"ektort e interrupt#e"e. !r shembull, 3indows nuk i mbishkruan t gjith "ektort e
interrupt#e"e n nj goditje (blow). N "end t ksaj, ai ngarkon dri"er#at e njsi"e nj
her n koh dhe se$ila kap "ektorin e interrupt#it q ka ne"oj. )y proes mund t marre
nj minut.
)y projektim i jep "irusit mano"rimin q i ne"ojitet. ,i fillon me kapjen e t gjith
"ektor"e t interrupt#e"e si tregohet n /ig. G#&7 (a). 1apo dri"er#i ngarkohet, disa nga
"ektort mbishkruhen, por n se ora e dri"er#it sht ngarkuar m par, pasi te nisi "irusi
do t jet plot me interrupt#e $lo$k#u. 2umbja e interrup#it t printerit sht treguar n
/ig. G#&7(b). 1apo "irusi t "rej q nj nga "ektort e tij t interrupt#it sht
mbishkruar, ai mund ta mbishkruaj at "ektor prsri, duke e ditur q tani sht e
sigurt. .ikapja e printerit sht treguar n /ig. G#&7($). )ur do gj sht ngarkuar,
"irusi kthen t gjith "ektort e interrupt#e"e dhe mban "etm trap#in e thirrjes s sistemit
pr "eten e tij. N fund t fundit, t pasurit kontroll n do thirrje t sistemit sht m
mir se sa t paturit kontroll pas do prdorimi t floppy disk#ut, por gjat boot#imit, ai
nuk mund t marr riskun e humbjes s kontrollit prgjithmon. N kt pik ne kemi nj
"irus re'ident n memorie n kontroll t thirrje"e t sistemit. N fakt, kjo sht mnyra si
"ijn n jet shumi$a e "iruse"e re'ident n memorie.
Figure 9-15. (a) !asi "irusi ka kapur t gjith "ektort e interrupt#e"e dhe t trap#e"e. (b)
!asi sistemi operati" ka rimarr "ektorin e interrupt#it t printerit. ($) !asi "irusi ka
"rejtur humbjen e "ektorit interrupt t printerit dhe e ka rikapur at.
Viruset e Driver Divice
N hysh n memorie n kt mnyr sht si t eksplorosh nj shpell, ju duhet t kaloni
ndrmjet gjarprime"e dhe kujdes rreth dikaje q mund t bjer posht ne toke dhe ne
kokn tnde njekohesisht. =o t ishte shum m e leht ne qofte se sistemi operati" do t
ngarkonte "irusin 'yrtarisht. (e pak pun, ky qllim mund t reali'ohej. (arifeti sht
t infektosh dri"er#in e nj pajisje (de"i$e dri"er), duke t drejtuar n nj virus device
driver. N 3indows dhe n disa sisteme +ni%, de"i$e dri"er jan pikrisht programe t
ek'ekutueshme q qndrojn n disk dhe ngarkohen n kohn e boot#imit. N se njri nga
ata infektohet duke prdorur "iruset para'it, "irusi gjithmon do t jet 'yrtarisht i
ngarkuar n kohn e boot#imit. =ri"er#at punojn n formn kernel dhe pasi nj dri"er
sht ngarkuar, ai sht thirrur, duke i dhn "irusit nj mundsi pr t kapur "ektorin e
trap#e"e t thirrjes s sistemit.
Viruset Makro
1hum programe, si 3ord dhe %$el, e lejojn prdoruesin t shkruaj ma$ro pr t
grupuar disa komanda q m "on mund t ek'ekutohen "etm me nj tast t "etm.
(akrot mundet gjithashtu t lidhen n njsin menu, kshtu q kur nj nga ato sht
selektuar, makro#ja ek'ekutohet. N icrosoft 0ffice, makrot mund t prmbajn nj
program t tr n >isual ;asi$, i $ili sht nj gjuh programimi i plot. (akrot jan
interpretuar madje dhe si t kompiluara, por kjo "etm sa ndikon n shpejtsin e
ek'ekutimit, jo n at far ato bjn. (eqn se makrot mund t jen dokumente
spe$ifik, :ffi$e i ruan makrot pr do dokument me "et dokumentin.
Nani "jen problemi. >irgili shkruan nj dokument n 3ord dhe krijon nj makro q e lidh
n funksionin :!N /6-. (akro#ja prmban nj "irus makro. ( pas ai e poston (e#
mail) dokumentin tek "iktima, i $ili natyrisht e hap at (duke pranuar se programi i
posts, e#mail nuk e ka br tashm kt gj pr t). 2apja e dokumentit shkakton
ek'ekutimin e makros :!N /6-. (eqen se makro#ja mund t prmbaj nj program
arbitrar ( t diktuar), ai mund t bj do gj, si infektimi i dokumente"e t tjera 3ord, t
fshij skedar dhe m tepr. N t gjitha paansite e (i$rosoft#it, 3ord jep nj shenj
paralajmruese kur hap nj skedar me ma$ro, por shum prdorues nuk e kuptojn se
far do t thot kjo dhe "a'hdojn gjithsesi ta hapin. >e ksaj, sht e pranueshme q
dokumentet mund t prshijn gjithashtu edhe makro. =he ka t tjera programe q nuk e
japin kt sinjal (paralajmrim), duke e br dhe m t "shtir pr t 'buluar "irusin.
(e rritjen e email#it, drgimi i "iruse"e t futur n makro sht nj problem i madh. N
till "iruse e kan m t leht te shkrujan se sa t fshehin sektorin e "rtet t boot#it
diku n nj bllok list t dobt, duke fshehur "irusin midis "ektor"e t interrupt#e"e, dhe
t kapin "ektorin e trap#e"e t thirrje"e t sistemit. )jo do t thot q gjithnj e m shum
njr' me aftsi t pakta mund t shkruajn tani "iruse, duke 'britur kualitetin e
prgjithshm t produktit dhe dhnien e programues"e t "iruse"e nj emr t keq.
Viruset e Kodeve Burim
>iruset para'it dhe t sektor"e boot, kan nj platform t lart spe$ifikI "iruset e
dokumente"e jan disi m t pakt kshtu q (3ord punon n 3indows dhe n
(a$intosh, por jo n +ni%). >iruset m shum t mbartshm nga t gjith jan "iruset e
kode"e burim (1our$e *ode >iruses). 6magjino "irusin e /ig. G#&9, por me nj modifikim
q n "end t krkimit t skedar"e t ek'ekutueshm binar, krkon pr nj program n
*, nj ndryshim "etm n nj rresht (thirrja n ,$$ess). !ro$edura e infektimit duhet t
ndryshoj pr te futur rreshtin
ain$lude Y"irus.hX
n fillim t do programi burim n *. Nj tjetr ndrhyrje sht e ne"ojshme, rreshti
run`"irus()I
pr t akti"i'uar "irusin. N "endossh se ku duhet "n ky rresht krkon disa aftsi pr
t anali'uar kodin *, meqen se ai duhet t jet n nj "end q lejon pro$edurat e
thirrje"e dhe gjithashtu jo n nj "end ku kodi mund t "des. >endosja n mes t nj
komenti pr m tepr nuk punon, dhe t "endosurit brenda n $ikel mund t jet nj gj
shum e mir. Nhirrja e supo'uar mund t jet nj "endosje e prshtatshme (per shemull,
pikrisht prpara fundit t main ose prpara gjendjes return n se ka nj t till), kur
programi sht kompiluar, ai tani prmban "irusin, t marr nga #irus.h.
)ur programi ek'ekutohet, "irusi do t thirret. >irusi mund t bj do gj q ai mund t
doj, per shembull t krkoj pr programe t tjera n * q tOi infektoj. N se gjen nj t
till, ai "etm sa prfshin dy rreshtat e dhn m sipr, por kjo do t funksionoj "etm
n nj makin lokale, ku #irus.h sht supo'uar t jet instaluar tashm. )jo arrihet duke
prfshir kodin burim t "irusit si nj ini$iali'im string karakteresh, m mir si nj list e
9H#bit integer he%ade$imal pr t parandaluar ndonj nga figurimet jasht asaj q ai bn.
)y string ndoshta do t jet pr shum koh i qart, por sot me kode multimegalin,
duhet t jet lehtsisht i kalueshm.
9.5.3 Si Prhapen Viruset
)a disa skenar t mundshm pr prhapjen. -e t fillojm m modelin klasik. >irgil
shkruajti "irusin e tij, e "endosi at n disa programe q i ka shkruajtur (ose "jedhur), dhe
m pas fillon shprndarjen e programit, per shembull, duke e "endosur n nj 3eb site
shareware. !rfundimisht, dikush e download#on programin dhe m pas e ek'ekuton at.
N kt pik, ja disa mundsi. !r ta filluar, "irusi ndoshta ka infektuar m shum
skedar n hard disk, pikrisht n rastin kur "iktima ka "endosur te ndaj disa nga kto
m "on me shok. ,i gjithashtu mund t pro"oj t infektoj sektorin e boot#it t hard
disk#ut. 1apo sektori boot sht infektuar, sht e leht t fillosh nj "irus re'ident#
memorie, model#kernel n boot#in pasues.
>e ksaj, "irusi mund t kontrolloj pr t par n se ka ndonj floppy disk n dri"e, dhe
n se sht kshtu, infekton skedart e tij dhe sektorin boot. /loppy disqet jan nj
objekti" i mir, sepse ata l"i'in nga nj makin n tjetrn m shum se sa nj hard disk.
N se n nj sektor boot t floppy disk sht i infektuar dhe m pas ai disk sht prdorur
n nj boot t ndryshm n nj makin tjetr, ai mund t filloj t infektoj skedar dhe
sektorin boot t hard diskut n at makin. N t shkuarn, kur floppy disqet ishin mjedisi
kryesor transmetimi mesatare pr programet, ky mekani'm ishte rruga kryesore e
prhapjes s "iruse"e.
N ditt tona, metoda t tjera jan t "lefshme pr >irgilin. >irusi mund t shkruhet pr
t "erifikuar, n se makina e infektuar sht n -,N. )y infektim nuk do t 'gjatet me
mbrojtjen e skedar"e, por kjo mund t pjes, duke br q programet e infektuar t sillen
n mnyr pa'akonte. Nj prdorues q prdor nj program t till do t pyeste
administratorin e sistemit pr ndihm. ,dministratori ather do t pro"onte programin
me probleme pr t par se Opo ndodh. N se administratori e bn kt ndrsa logohet si
nj superuser, "irusi tashm mund t infektoj sistemet binare, de"i$e dri"er, sistemin
operati" dhe sektort e boot#e"e. N gjith e marrin nj gabim t till dhe t gjitha
makinat n -,N jan t rre'ikuar.
@akonisht makinat n -,N kan autori'im pr tOu loguar n nj makin t largt
nprmjet 6nternetit ose nj korporate pri"ate ose madje, dhe autori'im pr t ek'ekutuar
komanda t largta pa u loguar. )jo aftsi siguron m tepr mundsi pr t prhapur
"iruset. 1i rrjedhim nj gabim i pa"etdijshm (i pa te keq) mund t infektoj t tr
kompanin. !r t parandaluar kt skenar, t gjitha kompanit duhet t ken nj politik
(linj "eprimi) t prgjithshme duke treguar administratorit pr t mos br kurr gabime.
Nj rrug tjetr pr t prhapur "iruset sht t postosh nj program t infektuar n nj
newsgroup n +1NN ose n bordin e buletinit n t $ilin postohen rregullisht
programet. 5jithashtu sht e mundur t krijosh nj faqe 3eb#i q krkon nj browser
spe$ial reklamimi pr ta shfaqur dhe m pas t sigurohesh, q jan t infektuar.
Nj sulm i ndryshm sht t infektosh nj dokument dhe m pas t drgosh me e#mail
tek shum njer' ose newsgroup +1NN, 'akonisht si nj atta$hment. dhe pse njer'it
q kurr nuk do t ndrronin n ek'ekutimin e nj programi t disa t huaj"e, drgimi i
tyre nuk mund t reali'oj at klikim n atta$hment pr t hapur at, mund t ojn n nj
"irus n makinn e tyre. !r ta prkeqsuar, "irusi mund t shikoj pr librin e adresa"e
t prdoruese"e dhe m pas ta postoj at "et tek donjri n librin e adresa"e, 'akonisht
me nj rresht 1ubjekti q duket e pranueshme ose interesante, siI
1ubje$tJ *hange of plans (ndryshimi i plane"e)
1ubje$tJ .eJ that last email (le%o email e fundit)
1ubje$tJ Nhe dog died last night (qeni ngordhi mbrm)
1ubje$tJ 6 am seriously ill (jam shum smur)
1ubje$tJ 6 lo"e you (t dua)
)ur mbrrin e#mail#i, marrsi e sheh se drguesi sht nj shok ose nj koleg, kshtu nuk
dyshon n ndonj shqetsim. 1apo e#mail hapet, sht tepr "on. >irusi EN? =+,F q u
prhap anemban bots n <ershor t H888 funksioni n kt mnyr dhe shkaktoi nj
dm me "ler biliona dollar.
=ika e ngjashme me prhapjen e tanishme t "iruse"e akti"e sht prhapja e "iruse"e
teknologjik. Aan grupe autorsh "irusesh t $ilt komunikojn nprmjet 6nternetit dhe
ndihmojn njri#tjetrin pr t 'h"illuar teknologji t reja, tools#e dhe "iruse.
Ndoshta shumi$a e ktyre jan hobist (i bjn pr qejf) se sa EkriminelF profesionist, por
efekti mund t jet shkatrrues. Nj kategori tjetr e shkruajts"e t (autor"e) "iruse"e
sht ushtria, t $ilt e shohin "irusin si nj arm lufte, e aft ta bj t pafunksionueshm
kompjuterin e armikut.
Nj tjetr shtje referuar prhapjes s "iruse"e sht shmangia e 'bulimit. ;urgu ka
famn e keqe pr sa i takon lehtsira"e t informatiks, kshtu q >irgil do preferonte ti
shmangte ata. N se ai e poston "irusin e par, nga makina e tij e shtpis, ai po merr
prsipr nj risk t sigurt. N se sulmi sht i suksesshm, poli$ia mund ta kap duke par
mesa'hin e "irusit me gjurmn e kohs (timestamp) m t hershm, sepse kjo sht
ndoshta m e aferta me burimin e sulmit.
!r t '"ogluar ekspo'imin e tij, >irgil duhet t shkoj n nj 6nternet kafe n nj qytet
t largt dhe t logohet atje. ,i mund ta mbart "irusin n nj floppy disk dhe ta le%oj at
"et ose ne qofte se makinat nuk kan t gjitha floppy disk dri"ers, pyet punonjsen pr
t le%uar n skedarin book.,oc kshtu q ai mund ta printoj at. 1apo t jet n hard
disk#un e tij, ai i riemrton skedarin n #irus.e&e dhe e ek'ekuton at, duke infektuar t
tr -,N#in me nj "irus q sulmon dy ja" m "on, pikrisht n rastin kur poli$ia
"endos pr tOi krkuar linjs ajrore nj list t t gjith njr'"e t $ilt kan fluturuar n
at ja". Nj alternati" sht t harrosh floppy disk#un dhe t marrsh "irusin nga nj
site /N! (/ile Nransfer !roto$ol) t largt. :se t sjellsh nj laptop dhe ta "sh n pri'
n nj thernet ose port +1; q 6nternet )afe ka siguruar pr turistt me laptop q duan
t le%ojn e#mail#et e tyre do dit.
9.5.4 Teknikat Antivirus dhe Anti-Antivirus
>iruset tentojn t fshihen dhe prdoruesit tentojn ti gjejn ato, e $ila on drejt nj loje
si ma$ja me miun. -e t shohim tani ktu disa nga kto probleme. !r t shmangur
shfaqjen e nj liste dosjesh, nj "iruse shoqrues, kodin burim t "irusit, ose skedar t
tjer q nuk do t jen, mund t kthehen n nj bit t fshehur n 3indows ose t prdor
emr skedari filluar me karakterin n +ni%. ( tepr e sofistikuar do t ishte t
modifikoje e%plorer e 3in,o"s ose ls e +ni% pr tu shmangur nga listimi i skedar"e
emri i t $ilit fillon me Iirgil%. >iruset mundet gjthashtu t fshihen n nj "end t
pa'akonte dhe t padyshimt, t till si n nj sektor t dmtuar n disk ose n regjistrin
3indows. .:( prdoret pr t mbajtur ;6:1 dhe memoria *(:1 jan gjithashtu t
mundeshme, ndonse formuesi e ka t "shtir t shkruaj dhe m i fundit sht shum i
"ogl.
Skaneri i viruseve
?sht e qart, "arieteti i prdorues"e mesatar nuk sht per te gjetur "iruset qe mundohen
te fshihen, kshtu q tregu eshte 'h"illuar ne drejtimin e antivirus software. !osht ne
do t shohim se si punojn kto software. )ompanit e e software#"e kan laborator n
t $iln shken$tar t prkushtuar punojn me or t gjata pr t kapur dhe kuptuar
"iruset e rinj. 2api i par sht t kesh nj "irus q infekton nj program q nuk bn
asgj, shpesh njihen si goat file, pr t marr nj kopje t "irusit n formn e tij m t
sakt. 2api tjetr sht t bsh nj listim t sakt t kodit t "irusit dhe t futsh at
brenda database t "iruse"e t njohur. )ompanit konkurrojn n madhsin e database#it
t tyre. 1hpikja e "iruse"e t rinj "etm pr t fryr database#in tnd nuk konsiderohet
argtim.
(enjeher sapo nj anti"irus instalohet n makinn e klientit, gjja e par q bn sht
skanimi i t gjith skedar"e t ek'ekutueshm n disk duke par pr ndonj "irus n
database#in e "iruse"e t njohur. 1humi$a e kompani"e anti"irus ka nj 3eb site prej t
$ilit klientt mund t download#ojn llojin e 'bulimit t "iruse"e t rinj n database#in e
tyre. N se prdoruesi ka &8.888 skedar dhe database#i ka &8.888 "iruse, disa programe
6nteligjent jan t ne"ojshme pr ta br t e$ m shpejt.
(eqense "ariantet minor (t "egjl) e njohjes s "iruse"e shfaqen n t gjith kohn,
ne"ojitet nj krkim fu''y, kshtu nj 9#bytesh ndryshim n nj "irus nuk e lejon t ik
'bulimi. 5jithesesi, krkimet fu''y nuk jan "etm m t ngadalt se krkimet ek'akte,
por mund t dal nj alarm i pa"rtet, kjo sht, paralajmrim pr skedart legjitim q
ndodh t prmbaj disa kode paksa t ngjashm me nj "irus t raportuar n !akistan, C
"jet m par. Bfar supo'ohet t bj prdoruesi me mesa'hinJ
3EW/?SZ Ske,ari &yB.e&e mun, t prmbaj #irusin lahore%D&. Fshije[
1a m shum "iruse n database dhe sa m i gjer kriteri pr deklarimin e nj sulmi, m
shum alarme false do t ket. N se ka "ertet shume, prdoruesi nuk do t ket durim
dhe do t dor'ohet. !or n se skaneri i "iruse"e insiston n nj ballafaqim t ngusht, ai
mund t humbas disa "iruse t modifikuar. (arrja e t sakts sht nj balan$
ndihmuese delikate. 6dealja, laboratori duhet t pro"oj t gjej t identifikoj disa kode
brthame (pjes qndrore#$ore) n "irus q nuk ndryshojne dhe e prdor kt si nj
nnshkrim "irusi pr ta krkuar (skanuar).
N se disku ishte deklaruar i lir nga "iruset ja"n q shkoi nuk do t thot se sht ende i
till, kshtu q skaneri i "iruse"e duhet t jet akti" her pas here. N se skanimi sht i
ngadalt, sht m efient t kontrollosh "etm ato skedar q kan ndryshuar q nga
data e fundit e skanimit. 1hqetsimi sht, nj "irus i 'gjuar do t ri"endos datn e nj
skedari t infektuar n datn origjinale t tij pr t shmangur 'bulimin. !rgjigjja e
programit anti"irus ndaj ksaj sht t kontrolloj datn e mbylljes s direktoris se
ndryshimit m t fundit. !rgjigjja e "irusit ndaj ksaj sht ri"endosja e dats s
direktoris po aq mir. )y sht fillimi i lojs ma$ja#me#miun referuar sa m sipr.
Nj tjetr rrug pr programet anti"irus pr t 'buluar skedart e infektuar sht t
regjistroj dhe t ruaj n disk gjatsin e t gjith skedar"e. N se skedari sht
'madhuar q nga kontrolli i fundit, mundet t jet infektuar, si tregohet n /ig. G#&D(a#
b). 1idoqoft, nj "irus 6nteligjent mund t shmang 'bulimin duke ngjeshur ($ompress)
programin dhe duke e mbushur skedarin n gjatsin origjinale t tij. < t funksionoj
kjo skem, "irusi duhet tOi ket t dyja proedurat e kompresimit dhe dekompresimit, si
tregohet n /ig. G#&D($).
Figure 9-16. (a) Nj program. (b) Nj program i infektuar. ($) Nj program i infektuar i
kompresuar. (d) Nj "irus i inkriptuar. (e) Nj "irus i kompresuar me nj kod t
kompresuar t inkriptuar.
Nj tjetr mnyr pr "iruset q t pro"ojn tOi shmangen 'bulimit sht ta bjn t
sigurt paraqitjen e tyre n disk duke mos u shfaqur aspak si prfaqsim i tij n database#
in e software#it t anti"irusit. Nj rrug pr t reali'uar kt EgolF sht t einkriptoj
"t"eten me nga nje els ('gjidhje) t ndryshm pr do skedar t infektuar. !rpara se
t bj nj kopje t re, "irsui gjeneron nj els enkriptimi prej 9H# bit te rastit, per
shembull, sipas R:.#ing koha aktuale me prmbajtje t hequr, le t themi, fjal memorie
CH.88L dhe 9&G.GGH. ( pas R:.#s eshte i koduar me kt els, fjal pas fjale pr t
prodhuar "irusin e en$rypt#uar t ruajtur n skedarin e infektuar, si ilustrohet ne /ig. G#
&D(d). Belsi ruhet n skedar. !r nj destina$ion t fsheht, "endosja e elsit n skedar
nuk sht idealja, por EgoliF ktu sht t pengoj skanimin e "irusit. 1igurisht, pr ta
ek'ekutuar, "irusi m par duhet t de$rypt#oj "eten e tij, kshtu q ne"ojitet nj
proedur dekriptimi n skedar.
)jo skem nuk sht ende perfekte sepse proedurat e kompresimit, dekompresimit,
enkriptimit dhe dekreptimit jan t njjt n t gjitha kopjet, kshtu q programi anti"irus
"etm sa i prdor si shenja (nnshkrim) t "irusit pr ta krkuar. /shehja e kompresimit,
dekompresimit dhe enkriptimit sht e leht, mjafton t enkriptohen gjat pjess tjetr t
"irusit si tregohet n /ig. G#&D(e). (egjithat kodi i dekriptimit nuk mund t
enkriptohet. 6 duhet t ek'ekutohet n t "rtt n hardware pr t dekreptuar pjesn
tjetr t "irusit kshtu q duhet t jet pre'ent n formn t kuptueshme tekst. !rogramet
anti"irus e din kt gj, kshtu q ata krkojn pr proedurn e dekriptimit.
5jithesesi, >irgil argtohet duke pasur fjaln e fundit, kshtu q ai proedon si "ijon.
1upo'ojm se proedura e dekreptimit ka ne"oj t kryej kt llogaritje.
R [ (, T ; T * K M)
)odi i assemblimit i hapur pr kt kalkulim pr dy#adresa t prgjithshme kompjuteri
tregohet n /ig. G#&C(a). ,dresa e par sht burimi, adresa e dyt sht destina$ioni,
kshtu q 0I @- ;1 'h"endos "ariablin @ n regjistrin ;1. kodi n /ig. G#&C(b) bn t
njjtn gj, "etm se sht m pak efient pr shkak t instruksionit N:! (no operation) i
shprndar me kodin real.
Figure 9-17. 1hembull i nj "irusi polimerfik.
!or nuk kemi mbaruar ende. ?sht gjithashtu e mundur t maskosh kodin e dekreptimit.
)a shum mnyr pr t shfaqur N:!. !er 1hembull, shtimi i 8 n nj regjistr,
'h"endosja e bitit t tij t majt 8 dhe kapr$imi n instruksionit tjetr pa br asgj. N
kt mnyr programi n /ig. G#&C($) sht funksionalisht i njjt me at t /ig. G#&C(a).
)ur kopjon "eten e tij, "irusi mund t prdor /ig. G#&C($) n "end t /ig. G#&C(a) dhe t
punoj m pas kur ek'ekutohet. Nj "irus q ndryshon form n se$ilin kopje sht
quajtur virus polimorfik.
Nani supo'ojm q ;G nuk ne"ojitet gjat ksaj pjese t kodit. ,ther /ig. G#&C(d) sht
ekui"alente me /ig. G#&C(a). !rfundimisht, n shum raste sht e mundur t shkmbesh
(swap) instruksionet pa ndryshuar qllimin e programit, kshtu q ne prfundojm me
/ig. G#&C(e), si nj tjetr fragment kodi q sht logjikisht ekui"alent me /ig. G#&C(a). Nj
pjes kodi q mund t ndryshoj formn e nj sekuen$e t nj instruksioni makine pa
ndryshuar funksionalitetin e tij sht quajtur mutation engine, dhe "iruse t sofistikuar i
prmbajn ato pr t tOi ndryshuar formn dekreptorit nga kopja n kopje. (utation
engine "et mund fshihet duke u enkriptuar prgjat trupit t "irusit.
N pyessh nj software anti"irusi t E"arfrF pr t reali'uar (pro"uar) q /ig. G#&C(a)
deri /ig. G#&C(b) jan t gjith funksionalisht ekiu"alent sht e teprt. 1oftware
anti"irus mund t anali'oj kodin pr t par se far bn, dhe madje mund t pro"oj t
stimuloj funksionimin e kodit, por t kujtoj at mund t ket mijra "iruse dhe mijra
skedar pr t anali'uar, kshtu q ai nuk ka shum koh pr testin ose do t operoj
jasht'akonisht shum ngadal.
( tutje, ruajtja brenda "ariablit = ishte br pikrisht pr ta br m t "shtir faktin se
kodi referuar ;G sht nj kod i "dekur, kshtu q nuk bn asgj. N se fragmente t tjera
kodesh le%ojn dhe shkruajn =, kodi do dukej fare mir i pranueshm. Nj mutation
engine i shkruajtur mir q gjeneron kode t mira polimorfike mund t jap nj shkruajts
software anti"irusi nightmare. ,na e "etme e ndritshm e sht se nj motorr (engine) i
till sht e "shtir t shkruhet, kshtu shokt e >irgil e prdorin t gjith kodin e tij, q
do t thot se nuk jan shum t ndryshm njehersh n qarkullim Kakoma.
=eri tani kemi pro"uar t njohim "iruset n skedart e ek'ekutueshm t infektuar. >e
ksaj, skaneri i anti"irusit duhet t kontrolloj (;., sektorin boot, listn e sektorit t
dmtuar, .:(, memorien *(:1, etj, por far ndodh, n se nje "irus re'ident n
memorie eshte aktualisht duke "epruarU ,i nuk do t 'bulohet. ,koma m keq,
supo'ojm q "irusi n pun sht duke monitoruar t gjitha thirrjet e sistemit. ,i
lehtsisht mund t 'buloj se programi anti"irus sht duke le%uar sektorin boot (pr t
kontrolluar pr "irus). >irusi nuk bn thirrje sistemi. N "end t saj ai "etm sa rikthen
sektorin e "rtet t boot nga "endi i tij i fsheht n bllok listn e dmtuar. 5jithashtu ai
bn nj shnim mendor pr t riinfektuar t gjith skedart kur ka mbaruar skanimi i
"irusit.
!r t parandaluar t qnit i mashtruar nga nj "irus, programi anti"irus mund t bj
le%im t fort n disk, duke shmangur sistemin operati". (egjithat kjo krkes ka
ndrtuar dei"$e dri"er pr 6=, 1*16 dhe pr disqe t 'akonshm, duke e br programin
anti"irus m pak t t mbartshm (portati") dhe subjekti t dshtoj n kompjutera me
disqe jo t 'akonshm.
Mnjanimi i Viruseve.
(enjanimi i "iruse"e eshte me i lehte se te mundohesh ti kapesh ato pasi te kene
infektuar nj kompjuter. ( posht jan disa direkti"a pr prdoruesit indi"idual, por
gjithashtu disa gjra q industrit n trsi mund t bjn pr t reduktuar problemin e
shumt.
Bfar mund t bj nj prdorues pr t shmangur nj infektim "irusiU
1 par t 'gjedh t nj sistem operati" q ofron nj shkall t lart sigurie dhe ndan
prdoruesit e ndryshm me password logimi, si dhe administratorin e sistemit. 1ipas
ktyre kushte"e, nj "irus q hyn disi "jedhura'i nuk mund t infektoj sistemin binar.
1 dyti, instalo "etm software t bler nga fabrikant (prodhues) t besueshm.
=ownloadimi i software#e"e nga faqet 3eb sht nj sjellje e rre'ikshme.
1 treti, ble nj paket t mir software anti"irusi dhe prdore sipas udh'ime"e.
1igurohu t marrsh nj update t rregullt nga 3eb site i prodhuesit.
1 katrti, mos kliko n atta$hment e e#mail#e"e dhe thuaji njr'"e qe mos tOi drgojn
ato. #mail#et q drgohen si tekste t dukshme t qarta ,1*66 jan gjithmon t sigurta
por atta$hment mund t ini$iali'ojn nj "irus kur hapen.
1 pesti, bj nj ba$kup t "a'hdueshm skedar"e ky n nj mjedis t jashtm, si
floppy disk, *= ose tape. )shtu ne qofte se 'buloni nj "irus ju keni nj mundsi pr t
kthyer skedart ashtu si ishin para se ato t infektoheshin.
Rikthimi nga nj sulm virusi.

)ur 'bulohet nj "irus duhet menjeher t ndalet puna n kompjuter. )ompjuteri duhet t
riboot#ohet nga nj *=#.:( ose floppy disk q ka qen gjithmon i mbrojtur nga
shkrimet dhe q mban t tr sistemin operati" pr t kaluar n sektorin boot, kopjimi n
hard disk t sistemit operati", dhe njsia disk, t gjitha kto tani mund t jen t
infektuara. ( pas nj program anti"irus duhet t ek'ekutohet nga origjinali i tij *=#
.:(, meq hard disku gjithashtu mund t jet infektuar.
!rogrami anti"irus mund t 'buloj disa "iruse dhe mund t jet n gjendje tOi eliminoj
ato, por nuk mund t siguroj nj mbrojtje t plot. )shtu q mnyra m e mir pr tOu
mbrojtur n t kt pik sht ruajtja e t gjith skedar"e q nuk mund t prmbajn
"iruse (si skedart ,1*66 dhe A!5). ,to skedar q prmbajn "iruse (si skedart
3ord) duhet t kon"ertohen n nj format tjetr q nuk mund t prfshijn, t till si
teksti ,1*66. )to skedar duhet t ruhen n nj mjedis t jashtm. ( pas hard disku
duhet t riformatohet. ?sht shum e rndsishme q (;. dhe sektori boot t jen
plotsisht t fshir. ( pas sistemi operati" duhet t riinstalohet nga nj *=#.:(
origjinal.
9.5.5 Deprtimet (worm) n Internet

3orm#i konsiston n dy programe, bootstrap (shiriti boot) dhe 3orm#i i duhur.
;ootstrapi ishte GG rreshta n * i quajtur ll.$. ,i ishte kompiluar dhe i ek'ekutuar n
sistem qe poi nenshtrohej nj sulmi. Ndersa eg'ekutohet, ai lidhet me makinn nga i $ili
erdhi, ngarkon worm kryesor dhe e ek'ekuton at. !asi kalon disa shqetsime pr t
fshehur ek'isten$n e tij, worm m pas kontrollon hostin e ri duke rrmuar n tabelat pr
t par far makine ishte lidhur hosti dhe tenton t prhap bootstrap#in n ato makina.
Nre metoda ishin pro"uar pr t infektuar makinn e re. (etoda e par ishte t pro"oj t
ek'elutoj nj shell t largt duke prdorur komandn rsh pa nj "rttim t mtejshm.
N se kjo funksionon, shell#i largt ngarkon programin worm dhe "a'hdon t infektoj
makinat e reja nga aty ku ndodhet.
(etoda e dyt bn t prdor nj program pre'ent n t gjitha sistemet ;1= t quajtur
finger q lejon nj prdorues kudo n internet t shkruaj,
finger nametsite
pr t shfaqur informa$ion rreth nj personi n nj instalim t "eant, t hollsishm.
(etoda e tret "aret nga nj EbugF n sistemin email, sen,email, i $ili lejon worm t
postoj nj kopje t bootsrap dhe ta ek'ekutoj.
1apo "endoset, worm pro"on t thyej password#in e prdoruesit. Bdo password i thyer
lejon worm#in t logohet n do makin q i 'oti i password#it e kishte n llogari.
1a her q nj worm fiton akses n nj makin t re, ai kontrollon pr t par n se ndonj
tjetr kopje worm#i ishte e akti"i'uar tashm atje. N se po, kopja e re hiqet n t shumtat
e raste"e.
9.5.6 Mobile Code
>iruset dhe worm#et jan programe q futen n nj kompjuter pa dijenin e t 'otit dhe
kundr "ullnetit tij. Ndonjeher, megjithat, me ose pa qllim importojn dhe
ek'ekutojn kode t huaja n makinat e tyre. @akonisht ndodh kshtu. N t shkuarn (q,
n botn e 6nternetit, do t thot "itin q shkoi) t shumtat e faqe"e 3eb ishin "etm
skedar statik 2N(- me pak ima'he t bashkuar. N ditt tona, gjithnj e m shum,
shum faqe 3eb prmbajn programe t "ogla t quajtura applet-e. )ur nj faqe 3eb q
prmban aplete sht shkarkuar (downloaded), apletet jane terhequr dhe eg'ekutuar. !er
shembull, nje mund t prmbajn nj forme q duhet plotesuar, plus ndihm
bashk"epruese n plotesimin e saj. )ur forma plotesohet, mund t drgohet diku prmes
6nternetit pr tu ek'ekutuar.
Nj tjetr shembull n t $iln programet jan t transportuar nga nj makin n tjetrn
pr ek'ekutim n makinn destina$ion jan agents (agjent, spiun). )to jan programe
q jan lshuar nga prdoruesi pr t prmbushur disa detyra dhe m pas t raportojn.
!er shembull, nj agjent mund t pyetet pr t kontrolluar disa faqe"e 3eb t udhtim pr
t gjetur udhtimin m t lir nga ,msterdami n 1an /ran$isko. 1apo mbrrin n se$ilin
site, agjenti ek'ekutohet atje, merr informa$ionin q i ne"ojitet, m pas l"i' n 3eb site#
in tjetr. (basi ka mbaruar n t gjitha, ai mund t kthehet n shtpi dhe t raportoj pr
at ka msuar.
1hembulli i tret i kode"e mobile sht nj skedar !ost1$ript q duhet t printohet n nj
printer !ost1$ript. Nj skedar !ost1$ript sht n fakt nj program n gjuhn e
programimit !ost1$ript q sht i ek'ekutuar brenda printerit. ,i normalisht i tregon
printerit pr t hartuar, "i'atuar grafik dhe m pas tOi mbush ato, por mund t bj fare
mire do gj tjetr q do.
Nga keto diskutime t gjat pr "iruset dhe worm, bhet e qart se kodet e huaja po t
ek'ekutohen n makinn tuaj mund t prbjn nj rre'ik. (egjithat, disa njr'
dshirojn gjithsesi tOi ek'ekutojn kto programe t huaja, kshtu q lind pyetjaJ
E(undet q kodet mobile t ek'ekutohen t sigurtaUF pyetja e shkurtr shtJ E!o, por jo
lehtsisht.F. !roblemi m thelbsor sht se kur nj proes importon nj applet ose kode
t tjera mobile ne hapsiren e tij te adresa"e dhe i eg'ekuton ato, ky kode eshte duke u
ek'ekutuar si nj pjes e nj proesi prdoruesi t mirqn dhe ka t gjith fuqin q
prdoruesi ka, duke pfshir aftsin e t le%uarit, t shkruarit, fshirjes ose enkriptimit e
skedar"e n diskun e prdoruesit dhe m shum.
)oh m par, sistemet operati"e krijonin kon$epte proesesh q ngrinin mure midis
prdorues"e. 6deja ishte q se$ili proes kishte hapsirn e adresa"e mbrojtse t tij dhe
+6= e tij, duke lejuar t prekej skedari dhe burime t tjera prmes tij, por jo nj
prdoruesi tjetr. !r t siguruar mbrojtjen prsri nj pjes e proesit (appleti) dhe pjesa
tjetr, konspekti i proesit nuk ndihmonin. Nhread#et lejojn deprtime t shumfishta t
kontrollit brenda nj proesi, por nuk bn asgj pr t mbrojtur nj thread kundr nj
tjetri.
Neorikisht, ek'ekutimi i se$ilit applet si nj proes i ndar ndihmon paksa por sht
shpesh jo efikas. !er shembull, nj web page mund t prmbaj dy ose m shum applete
q bashk"eprojn njri me tjetrin dhe me t dhnat n web page. ;rowseri i web#it mund
t ket ne"oj t bashk"eproj m applete, t nis dhe tOi ndaloj, ti ushqej data e tyre
dhe kshtu me radh. N se se$ili applet sht "endosur n proesin e tij, e gjith gjja
nuk do t funksionoj. !r m tepr, t "endosurit e nj appleti n hapsirn e adresa"e t
tij nuk e bn m t "shtir pr appletin pr t "jedhur ose dmtuar datat. ?sht edhe m e
leht n se asnj nuk po sheh atje.
(etoda t reja t ndryshme e sjellje"e me aplett ( dhe me kodet mobile n prgjithsi)
sht propo'uar dhe implementuar. ( posht do t shohim tre nga kto metodatJ
sandbo%ing, interpretimi (interpretation) dhe $ode signing ( nnshkrimi i kodit). Bdonjra
ka t a"anta'het dhe disa"anta'het e tij.
Sandboxing
(etoda e par, e quajtur sandboxing, tenton t kufi'oj do applet drejt nj "argu t
kufi'uar adresash "irtuale n nj koh ek'ekutimi (run time). ,i punon duke ndar
hapsirn e adresa"e "irtuale n shtresa ('ona) m madhsi t barabart, t $ilt ne do tOi
quajm sandbo%es. Bdo sandbo% mund t ket tipar q t gjitha adresat e tij ndajn disa
stringe t bite"e high#order. !r nj hapsir adrese 9H bit, ne mund ta ndajm at deri n
H7D sandbo%es n &D#(; "ij kufiri, kshtu t gjitha adresat brenda nj sandbo% ka nj L
bit#sh t siprm unik . nj"lershme me te, ne mund t kemi 7&H sandbo%es n L#(;
kufi, me do sandbo% q ka nj G#bit prefi% adrese. (adhsia e sandbo%#it duhet t
'gjidhet aq e madhe sa t mbaj applet#in m t madh pa humbur shum hapsir adrese
"irtuale. (emoria fi'ike nuk sht nj problem n se faqja e krkuar sht pre'ente, si
sht 'akonisht. Bdo applet i jepen dy sandbo%, nj pr kodin dhe nj pr datat, si
tregohet pr rastin e &D sandbo%#e"e t &D#(; se$ila, /ig. G.&L(a).
Figure 9-18. (a) (emoria e ndar n &D(; sandbo%es. (b) Nj mnyr e kontrollimit t
nj instruksioni pr "lefshmri.
6deja kryesore q fshihet mbrapa nj sandbo%#i sht t garantoj q nj applet nuk mund
t kr$ej n nj kod jasht kodit tij sandbo% ose data"e referen$ jasht t dhna"e t tij
sandbo%. ,rsyeja e t pasurit e dy sandbo%#e"e sht te parandaloj nj applet nga
modifikimi i kodit t tij gjat ek'ekutimit pr t marr kt frenim. =uke parandaluar t
gjitha prfshirjet brenda kodit sandbo%, ne eliminojm rre'ikun e "et#modifikimit t
kodit. !r sa koh nj applet sht i mbyllur n kt rrug, nuk mund t dmtoj browser
ose applet#et e tjera, "iruset plant (Ee mbjellF) n memorie, ose dme t ndryshme n
memorie.
Nj problem q duhet t 'gjidhet sht se far ndodh kur nj applet pro"on t bj nj
system $allU @gjidhja ktu do t ishte e qart. 6nstruksioni i thirrjes s sistemit
'"endsohet nga nj thirrje t nj moduli spe$ial i quajtur nj kshilltar (vzhgues)
referenc ( referen$e monitor) n t njjtn mnyr sikur kontrolli i adresa"e dinamike t
ishte shtes. Nj tjetr rrug, referen$e monitor ek'aminon do tentati" thirrje dhe
"endos n se sht e sigurt t kryhet. N se thirrja mendohet e pranueshme, thirrja lejohet
t proedoj. N se thirrja shihet si e rre'ikshme ose referen$e monitor nuk mund ta
tregoj, appleti "ritet. N se referen$e monitori mund t tregoj $ili applet e thirri at, nj
referen$e monitor i "etm diku n memorie mund t perballoje te gjithe kerkesat nga te
gjithe aplletet. Normalisht nj referen$e monitori mson rreth leje"e nga nj skedar
konfigurimi.
Interpretimi
.ruga e dyt e ek'ekutimit t applet#e"e t pasigurta sht ek'ekutimi i tyre n mnyr
interpreti"e dhe ti lejosh t ken kontroll n hardware. )jo sht nj rrug e prdorur nga
web browser. ,ppletet web page 'akonisht shkruhen n Aa"a ose n nj gjuh skripti"e e
ni"elit t lart si nj N*- e sigurt ose Aa"as$ript. ,pletet ja"a n fillim kompilohen n
nj gjuh makine sta$k#oriented "irtuale e quajtur 1VM ( 1ava Virtual Machine). Aan
kto applete A>( q "endosen n web page. )ur ato download#hen, ato futen brenda nj
interpretuesi A>( brenda browser#it si tregohet n /ig. G#&G.

Figure 9-19. ,ppletet mund t interpretohen nga nj 3eb browser.
,"anta'hi i ek'ekutimit t kode"e t interpretuara mbi kodet e kompiluara, sht se do
instruksion sht i ek'aminuar nga interpretuesi prpara se t ek'ekutohet. )jo i jep
mundsi interpretusit t kontrolloj n se adresa sht e "lefshme. >e ksaj, thirrjet e
sistemit jan gjithashtu t 'na dhe t interpretuara. 1e si mano"rohet me kto thirrje
sht detyr e politiks s sigurimit. !er shembull, n se nj applet nuk sht i
besueshm (ato q "ijn nga 6nterneti) ai mund t "endoset n nj sandbo% pr t kufi'uar
sjelljen e tij.
Code signing ( kodet e nnshkruara)
Nj rrug tjetr lidhur me sigurin applet#e"e sht t dish nga "ijn ato dhe t pranosh
"etm applete nga burime t besueshme. ( kt or"atje, nj prdorues mund t mbroj
nj list applet#esh t besueshme tregtare dhe t ek'ekutosh "etm kto applete nga kta
shitsa. N kt or"atje, asnj mekani'm aktual sigurie nuk sht pre'ent n kohn e
ek'ekutimit. ,ppletet nga shits t besueshm, ek'ekutohen si t till dhe kodet nga nj
tjetr shits nuk ek'ekutohet si i plot ose n rrug t kufi'uar.
< ta bjm kt skem q t funksionoj, duhet t ket nj rrug pr prdoruesin pr t
pr$aktuar q nj applet sht shkruajtur nga nj shits i besueshm dhe nuk sht
modifikuar nga askush pasi sht prodhuar. )jo bhet duke prdorur nj nnshkrim
di%hital, i $ili i lejon tregtar"e t nnshkruajn (firmosin) applet#in n nj mnyr t till
q modifikime t ardhshme mund t 'bulohen.
)odi i nnshkruar (i firmosur) ba'ohet n nj kriptograf els#publik. Nj applet nga nj
shits, n mnyr tipike nj kompani software#sh, gjeneron nj els (els pri"at), duke
br publik t mparshmin dhe duke e ruajtur me 'ell t fundit. !r t nnshkruar nj
applet, pr t marr nj numr &HL#bit ose &D8#bit, "aret se ku prdoret n (=7 ose
12;,. ( pas ai nnshkruan "lern ngatrruese (hash) duke e inkriptuar at me kodin e
tij pri"at. )y nnshkrim shoqron appletin kudo q ai shkon.
)ur prdoruesi merr appletin, browseri llogarit funksionin hash n mnyrn e tij. ( pas
ai dekripton nnshkrimin shoqrues duke prdorur kodin publik t shitsit dhe m pas
krahason "lern e funksionimit hash t deklaruar nga tregetari me at q "et browseri ka
llogaritur. N se ato prputhen, appleti pranohet si i "rtt. !rndryshe refu'ohet si
falsifikim. !rfshirja e matematiks e bn at s teprmi t "shtir pr doknd pr tu
ngatrruar m appletin, n nj mnyr t till q funksioni hash i tij do t llogaris
funksionin hash q prmban duke dekriptuar nnshkrimin e "rtt. ?sht po ashtu e
"shtir pr t gjeneruar nj nnshkrim t ri false, q llogaritet pas elsit pri"at. !roesi i
nnshkrimit dhe "erifikimit sht ilustruar n /ig. G#H8.
Figure 9-20. 1i funksionoj kodet e nnshkruar.
KAPITULLI I DH1ET
UNIX DHE LINUX
10.2 N1 VESHTRIM MBI UNIX
N kt seksion do t japim nj hyrje t prgjithshme mbi +N6R dhe mnyrn e
prdorimit t tij, pr ato prdorues q nuk jan familjari'uar akoma me t. (egjithse
"ersione t ndryshme t +N6R ndryshojn n mnyr t leht, materiali i pre'antuar ktu
prdoret n t gjitha "ersionet. )tu do t fokusohemi n at se si duket +N6R n
terminal. N seksionet pasardhse do t fokusohemi n thirrjet sistem dhe mnyrn se si
ato punojn n brendsi.
10.2.1 Synimet e UNIX
+N6R sht nj sistem interakti" i projektuar pr t mbajtur shum proese dhe
shum prdorues n t njjtn koh. ,i ishte projektuar nga programuesit, pr
programuesit, pr tu prdorur n nj mjedis n t $ilin shumi$a e prdorues"e jan
relati"isht t sofistikuar dhe t anga'huar n projektt e 'h"illimit t software#"e. N
shumi$n e raste"e, nj numr i madh programuesish jan akti" n bashk"eprim pr t
prodhuar nj sistem t "etm, kshtu q +N6R ka lehtsira t mdha pr t lejuar njer'it
t punojn s bashku dhe t ndajn informa$ionin n mnyr t kontrolluar. (odeli i nj
grupi programuesish me eksprien$ duke punuar s bashku t mbyllur, pr t prodhuar
software t a"an$uara sht shum ndryshe nga modeli i kompjutera"e personal me nj
fillestar q punon i "etm me nj word proesor, dhe kjo diferen$ dallohet qart kudo n
+N6R nga fillimi n fund.
Bfar sht ajo q nj prdorues i mir do n nj sistemU
=uke filluar me m t preferuarn, q ai t jet sa m i thjesht, elegant dhe i
qndrueshm. !r shembull, n ni"elin m t ult, nj file duhet t jet nj bashksi byte#
sh. =uke pasur klasa t ndryshme file#ash pr aksesim t "a'hdueshm, t rastesishm, t
akorduar, t largt etj.. (si bjn mainframe) ato "etm na pengojn. N mnyr t
ngjashme n se komanda
6s ,b
do t thot listo t gjith file#t duke filluar nga \,\, rrjedh q komanda
rm ,b
duhet t 'h"endos t gjith file#t duke filluar nga \,\ dhe t mos 'h"endos nj file emri
i s $ils prmban nj \,\ dhe nj astriks(b). )jo karakteristik shpesh quhet edhe
parimi i t paktn nj surpri'e (prin$iple of least surprise).
Nj tjetr gj q programuesit me eksprien$ duan sht fuqia dhe fleksibilitti.
)jo do t thot q nj sistem duhet t ket nj numr t "ogl elementsh ba' n mnur
q t kombinohen n nj pafundsi mnyrash pr t prmbushur krkesat e aplika$ionit.
Nj nga parimet e +N6R sht q do program duhet t kryej "etm nj pun, por kt
pun ta bj shum mir. )shtu q kompilatort nuk prodhojn lista sepse programe t
tjera mund ta bjn m mir kt pun.
!rfundimisht, shumi$s s programues"e nuk ju plqejn tpri$at e padobishme.
!se shtypim copy kur cp mjaftonU !r t n%jerr t gjith rreshtat q prmban stringa
\ard\ nga nj file, programuesi n +N6R shkruanJ
grep ard f
.ruga tjetr sht q programuesi n fillim duhet t 'gjedh programin grep (pa
argument), dhe m pas grep duhet t pre'antoj "eten. ( pas, grep krkon menjeher
pr emrin e file#s. !astaj pyet n se ka ndonj emr tjetr file. !rfundimisht, ai
prmbledh shkurt se far do t bj dhe pyet n se do gj sht n rregull. Ndrsa kjo
lloj ndrfaqe prdoruesi mund t jet ose jo e prshtatshme pr njer'it e thjesht
fillestar, ajo sht irrituese pr programuesit ekspert.
10.2.2 Ndrfaqet n UNIX
Nj sistem +N6R mund t shikohet si nj lloj piramide, si ilustrohet n figurn &8#&. N
fund sht hardware, i $ili konsiston n *!+, memorje, disqe, terminale dhe paisje t
tjera. =uke "a'hduar m lart kemi sistemin operati" +N6R. /unksioni i tij sht q t
kontrolloj hardware dhe t ofroj nj ndrfaqe pr thirrjet sistem pr t gjith programet.
)to thirrje sistem i lejojn programet user t krijojn dhe mena%hojn proeset, file#at
dhe burime t tjera.
Figura 10-1. 1htresat n nj sistem +N6R
!rogramet i bjn thirrjet sistem duke "endosur argumentat n regjistra (ose
ndonjeher n sta$k), duke lshuar nj trap instru$tion pr t kaluar nga mnyra user n
mnyrn kernel pr t startuar +N6R. (eqn se nuk ka ndonj mnyr pr t shkruar nj
trap instru$tion n *, ofrohet nj librari, me nj pro$edur pr do thirrje sistem. )to
pro$edura jan t shkruara n gjuhn asembler, por mund t thirren nga *. Bdo pro$edur
fillimisht "endos argumentat n "endin e duhur, dhe m pas ek'ekuton trap instru$tion.
)shtu q pr t br nj thirrje sistem rea,- nj program n * mund t thrres librarin
e pro$edurs rea,. !ra, sht ndrfaqja e libraris dhe jo ndrfaqja e thirrjes sistem, q
spe$ifikohet nga !:16R. (e fjal t tjera, !:16R tregon se $ila librari pro$edurash duhet
t ofrohet pr thiu prshtatur sistemit, far jan parametrat e tyre, far duhet t bjn dhe
far re'ultati duhet t kthejn. ,i nuk i referohet njlloj thirrjes aktuale sistem.
>e sistemit operati" dhe libraris s thirrje"e sistem, t gjitha "ersionet e +N6R
ofrojn nj numr t madh programesh standarte, disa prej t $il"e spe$ifikohen nga
standarti &889.H i !:16R, dhe disa prej t $il"e ndryshojn mes "ersione"e t +N6R.
)to prfshijn komand proesorin (shell#in), kompilatort, editort, editort tekst si dhe
shrbimet e manipulimit t file#"e. Aan kto programe q nj prdorues krkon n nj
terminal.
)shtu q mund t flasim pr tre ndrfaqe t ndryshme n +N6RJ ndrfaqja e
thirrje"e t "rteta sistem, ndrfaqja e librari"e si dhe ndrfaqja e formuar nga nj
bashksi standartesh programesh. (egjithse e dyta ka t bj me at se far mendon
nj user i rastesishm mbi \+N6R\, n fakt, ai nuk ka pothuajse asgj pr t br me
sistemin operati" dhe mund t '"endsohet lehtsisht.
=isa "ersione t +N6R pr shembull, kan '"endsuar ndrfaqen e tastiers me
ndrfaqe mausi duke mos ndryshuar sistemin operati" n trsi. sht pikrisht ky
fleksibilitt q e bn +N6R kaq popullor, dhe e ka lejuar at tOju mbijetoj shum mir
ndryshime"e thelbsore n teknologji.
10.2.3 Shelli i UNIX
1hum sisteme +N6R kan nj ndrfaqe grafike me prdoruesin, q u prhap dhe
tek (a$intosh si dhe m "on tek 3indows. (egjithat, programuesit e "rtet ende
preferojn nj ndrfaqe comman, line t quajtur shell. )jo ndrfaqe sht shum e
shpejt pr tu prdorur, m shum e fuqishme, lehtsisht e 'gjatshme, si dhe nuk e bn
prdoruesin t prdor mausin gjat gjith kohs. ( posht do t prshkruhet
shkurtimisht ;ourne shell (sh). <kur, shum shell#e t rinj kan qen shkruar (fe"/i,
bash, etj. ). (egjithse +N6R mbshtet plotsisht nj mjedis grafik (R 3indows), prsri
shum programues bjn panele komandimi (3indows $onsole) dhe "eprojn si t ken
nj gjysm du'ine me terminale ,1*66, se$ili duke u ek'ekutuar n shell.
)ur shell#i startohet, ai ini$iali'on "eten, m pas shtyp nj karakter prompt,
shpesh nj \Q\ ose \P\, dhe pret q prdoruesi t shtyp n ekran nj komand.
)ur prdoruesi formon komandn, shell#i n%jerr fjaln e par prej saj, duke
supo'uar q sht emri i nj programi pr tu ek'ekutuar, krkon pr kt program, dhe n
se e gjen, e ek'ekuton. 1hell#i pastaj ndrpret "et"eten derisa programi t prfundoj,
koh n t $iln ai pro"on pr t le%uar komandn pasardhse. ,jo far sht e
rndsishme ktu sht thjesht "rojtimi q shell#i sht nj program user i 'akonshm.
5jithka q i duhet sht t le%oj dhe shkruaj n terminal, dhe fuqia pr t ek'ekutuar
programet e tjera.
)omandat mund t marrin argumente, t $ilat i kalohen programit t thirrur si
karaktere string. !r shembull, komanda
$p sre dest
thrrit programin cp me dy argument, sre dhe ,est. )y program interpretohet q, e para,
(sre) t jet emri i nj file ek'istues. ;n nj kopje t ktij file dhe thrret kopjen ,est.
Ao t gjith argumentat jan emra file#sh. N
head #H8 file
argumenti i par #H8, i tregon hea, q t printoj H8 rreshtat e par t file#it, n "end t
numrit t 'akonshm &8, t rreshta"e. ,rgumentat q kontrollojn opera$ionet e
komands, ose spe$ifikojn nj "ler t mundshme quhen flag-e, dhe me marr"eshje
shnohen me t trash. )jo trashsi prdoret pr t e"ituar dykuptimsite, sepse komanda
head H8 file
sht e lejueshme, dhe i tregon hea, q t printoj &8 rreshtat e par t file#s t quajtur
2(, dhe m pas t printoj &8 rreshtat e file#s s dyt t quajtur file. 1hum komanda t
+N6R pranojn shum flage dhe argument.
!r ta br m t leht pr t spe$ifikuar shum emra file#sh, shelli pranon
karakteret magjike, shpesh t quajtura wild cards. Nj asteriks pr shembull, prfshin
t gjitha stringat e mundshme, kshtu q
6s b.$
i tregon ls t listoj t gjith file#t emri i t $ila"e mbaron me .$. N se emrtimet e file#"e
%.$, y.$ dhe '.$ ek'istojn t gjitha, komanda e msiprme sht ekui"alente me
6s %.$ y.$ '.$
Nj tjetr wild $ard sht shtja e emrtimit, q prputhet me ndonj karakter. Nj list
karakteresh brenda nj kutie mbajtse 'gjedh nj prej tyre, kshtu q
6s 0ape4b
liston t gjith file#t q fillojn me \a\, \p\, ose \e\.
Nj programi si shelli nuk i duhet t hap terminalin n rregull pr t shkruar apo
le%uar nga ai. ( mir, kur ai (ose ndonj program tjetr) t startohet, ai ka automatikisht
akses n nj file t quajtur standart input (pr le%im), nj file t quajtur standart output
(pr t shkruar dalje normale), dhe nj file t quajtur standart error (pr t shkruar
mesa'het gabim). Normalisht, t treja nuk paraqiten n terminal, kshtu q le%imi nga
standart inputi "jen nga tastjera dhe shkrimi i standart output dhe standart error dalin n
ekran. 1hum programe n +N6R le%ojn nga standart inputi dhe shkruajn n standart
output n mnyr default. !r shembull.
sort
thirr nj program sort, q le%on reshtat nga terminali (derisa user#i t shtyp *N.-#=, pr
t treguar fundin e file#s) i rendit ato nga ana alfabetike dhe shkruan re'ultatin n ekran.
5jithashtu sht e mundur q t riadresojm standart inputin ,he standart
outputin, q shpesh sht e dobishme. 1intaksa pr riadresimin e standart inputit prdor
shenjn (Y) t shoqruar nga emri i file#s hyrse. N mnyr t ngjashme, standart outputi
adresohet duke prdorur shenjn m e madhe(X). sht i ndaluar adresimi i t dyja"e me
t njjtn komand. !r shembull. komanda
sort YinXout
e bn sort t marr nj input nga file in, dhe t shkruaj outputin e tij tek file out. (eqen
se standart errori nuk u riadresua, n ekran shfaqet ndonj mesa'h gabimi. Nj program
q le%on inputin e tij nga standart inputi, bn disa prpunime n t, dhe shkrimi i ouputit
n standart ouput sht quajtur filtr.
)onsideroni komandn e mposhtme e $ila konsiston n 9 komanda t ndaraJ
sort YinXtempI head #98 YtempI rm temp
para ek'ekuton sort#in, duke marr inputin nga in dhe duke e shkruar outputin n temp.
)ur kjo ka mbaruar, shelli ek'ekuton hea,, duke i treguar atij q t printoj 98 rreshtat e
par t temp dhe ti printoj ato n standart output. N fund file e prkohshme temp sht
'h"endosur.
Ndodh shpesh q programi i par n panelin e komands ($ommand line) t
prdor outputin q sht prdorur si input n programin pasardhs. N shembullin e
msiprm, ne prdorm file#n temp pr t mbajtur kt output. (egjithat, +N6R ofron
nj ndrtim t thjesht pr t br t njjtn gj. N komandn
sort Ym Z head #98
"ija "ertikale, e quajtur pipe symbol, do t thot merr outputin nga sort dhe prdore at si
input tek hea,, duke eleminuar kshtu ne"ojn pr krijimin, prdorimin dhe 'h"endosjen
e file#s s prkoheshme. Nj grupim komandash t lidhura nga pipe symbol, quhet
pipeline, dhe mund t mbaj arbitrarisht shum komanda. Nj pipeline me katr
komponent tregohet nga shembulli i mposhtmJ
grep ter b.t Z sort Z head #H8 Z tail # 7 Xfoo
)tu t gjith rreshtat prmbajn stringn \ter\ dhe t gjitha file#t q mbarojn me t jan
shkruar n standart output, aty ku edhe jan ruajtur. H8 rreshtat e par selektohen nga
head, i $ili m pas ia kalon tail, i $ili shkruan 7 t fundit (rreshtat &D#H8 n listn ku
ruhen) n foo. )y sht nj shembull q tregon se si +N6R ofron blloqe t 'akonshme
ndrtimi, donjri prej t $il"e bn nj pun.
+N6R sht nj sistem multiprogramimi me qllim t prgjithshm. Nj user i
"etm mund t ek'ekutoj disa programe njehersh, se$ilin si nj proes t ndar.
1intaksa e shellit pr ek'ekutimin e nj proesi n ba$kground sht t ndjek me imtsi
komandn e tij. )shtu q
w$ #Z Ya Xb S
ek'ekuton programin e numrimit t fjal"e, w$, pr t numruar numrin e rreshta"e (#l
flaget n inputin a), duke shkruar re'ultatin n b, por duke i br kto n ba$kground.
1apo komanda shtypet, shelli shtyp promptin dhe sht gati pr t pranuar dhe mbajtur
komandn pasardhse. !ipeline gjithashtu mund t "endoset n ba$kground, pr
shembull, me an t komands
sort Y% Z head S
1hum pipeline mund t ek'ekutohen n ba$kground n t njjtn koh.
sht e mundur t "endosim nj list me komandat e shellit n nj file dhe m pas
t starojm shellin me kt file si nj standart input. 1helli (i dyt) i shqyrton ato me
qetsi, sikur t ishin shtypur komandat nga tastjera. /ile#t q prmbajn komandat e
shellit quhen skripte shelli (shell s$ripts). 1kriptet e shellit mund t $aktojn "lerat e
"ariabla"e t shellit dhe m pas ti le%ojn ato m "on. ,to mund t ken gjithashtu
parametra, dhe ti prdorin if- for- "hile dhe konstrukte t rastit. )shtu q nj skript shelli
sht nj program i shkruar n gjuhn shell. 1helli ;erkley * sht nj alternati" shelli
q ka qen di'enjuar pr t br skripte shelli (dhe gjuhn e prgjithshme t komanda"e)
e ngjashme me programet e * n shum aspekte. (eqen se shelli sht nj program user
i dyt, shum njr' t tjer kan shkruar dhe shprndar "ersione t tjera t shelle"e.
10.2.4 Programet e dobishme n UNIX
Ndrfaqja me prdoruesin n +N6R konsiston jo "etm tek shelli, por dhe n nj numr
t madh programesh standarte t dobishme. ,frsisht kto programe mund t ndahen n D
kategori si m poshtJ
)omandat e manipulimit t file#"e dhe direktori"e.
/iltrat.
(jetet (tools) e 'h"illimit t programit si jan editort dhe kompilatort.
!rpunuesit e tekstit.
,dministrimi i sistemit.
N tjera.
1tandarti &889.H i !:16R spe$ifikon sintaksn dhe semantikat e &88 prej tyre, kryesisht
n tre kategorit e para. 6deja e standarti'imit t tyre sht q donjri t mund t
shkruaj skripte n shell, ti prdor kto programe dhe ato t punojn n t gjitha sistemet
+N6R. !r"e ktyre standarte"e t dobishme, ka edhe shum programe (aplika$ione) si
janJ 3eb browsers, image "iewers, etj.
-e t konsiderojm disa shembuj t ktyre programe"e, duke filluar me manipulimin e
file#"e dhe direktori"eJ
$p a b
kopjon file#n a tek b, duke ln file#n origjinal t padmtuar. N kontrast me t,
m" a b
kopjon a tek b por 'h"endos "lern origjinale. ( mir t themi kjo komand 'h"endos
file#n sesa bn nj kopje t saj n kuptimin e 'akonshm. =isa file mund t jen t lidhura
duke prdorur cat, e $ila le%on do input t file#"e dhe i kopjon ato n standart output,
njra pas tjetrs. /ile#t mund t 'h"endosen me an t komands rm. )omanda chmo,
lejon prdoruesit t ndryshoj renditjen e bite"e pr t modifikuar t drejtat e aksesimit.
=irektorit mund t krijohen me mk,ir dhe mund t 'h"endosen me rm,ir. !r t par
listn e file#"e n nj direktori, mund t prdoret komanda ls. ,jo ka nj numr t madh
flagesh pr t kontrolluar sa m shum detaje rreth file#"e t shfaqur (pr shembull,
madhsia, grupi, data e krijimit, etj.), pr t pr$aktuar rregullat e renditjes (pr shembull,
nga alfabeti, hera e fundit e modifikimit, ndryshimi,etj.), pr t spe$ifikuar paraqitjen n
ekran dhe shum t tjera.
Ne kemi par tashm disa filtraJ grep n%jerr rreshtat e prmbajtur nga nj struktur e
dhn nga standart inputi ose nj apo m shum file inputI sort rendit inputin dhe shkruan
outputin n standart outputI hea, n%jerr rreshtat e par t inputit t tijI tail n%jerr rreshtat
e fundit t inputit t tij. /iltra t tjer t pr$aktuar nga standarti &889.H jan cut dhe
paste, t $ilat lejojn kolonat e tekstit t priten dhe t ngjiten n fileI o, e $ila kon"erton
inputin e saj n tekst ,1*66, oktal, de$imal apo hek'ade$imalI tr, e $ila bn prkthimin e
karaktere"e (pr shembull, nga shkronj e "ogl n t madhe)I dhe pr q formaton
outputin pr printerin, duke pasur mundsin pr t printuar kokat e faqe"e, numrin e tyre
dhe kshtu me rradh.
)ompiluesit dhe mjetet e programimit prfshijn cc, q thrret kompilatorin e * dhe ar, e
$ila grumbullon pro$edurat e libraris n file t arki"uara.
Nj tjetr mjet i rndsishm sht make, e $ila prdoret pr t mirmbajtur programet e
mdha, kodet burim t t $ila"e konsistojn n shum file. @akonisht, disa prej tyre jan
file-t header, t $ilat prmbajn tipin, "ariablin, dhe deklarime t tjera. /ile#t burim
shpesh i prmbajn kto duke prdorur nj direkti" t "eant inclu,e. N kt mnyr,
dy ose m shum file burim mund t share#ojn t njjtat deklarime. (egjithat n se nj
file header sht i modifikuar, sht e ne"ojshme t gjejm t gjitha file#t burim q "aren
nga ai, dhe m pas ta rikompilojm. /unksioni i make sht q t mbaj gjurmn e do
file q "aret nga headeri, dhe t bj t mundur q t gjitha kompilimet e ne"ojshme t
bhen automatikisht. !othuajse t gjitha programet n +N6R, duke prjashtuar ato t
"oglat, bhen q t kompilohen me komandn make.
Nj pr'gjedhje e programe"e t dobishme n !:16R tregohet n figurn &8#H, me nj
prshkrim t shkurtr pr se$ilin. N gjitha sistemet +N6R i kan kto programe dhe
shum t tjera.
Programi Prdorimi i zakonshm
$at -idh shum file n standart output
$hmod Ndryshon mnyrn e mbrojtjes (prote$t) s file#s
$p )opjon nj ose m shum file
$ut !ret rreshtat e tekstit nga nj file
grep )rkon nj file nga nj paket (struktur)
head N%jerr rreshtat e par t nj file
ls -ista e direktoris
make )ompilon file#t pr t ndrtuar nj binar
mkdir )rijon nj direktori
od )on"erton inputin n oktal, binar, he%ade$imal etj.
past Ngjit rreshtat e tekstit n nj file
pr /ormaton nj file pr printim
rm @h"endos nj ose m shum file
rmdir @h"endos nj direktori
sort .endit sipas alfabetit rreshtat e nj file
tail N%jerr rreshtat e fundit t nj file
tr 1hpjegimi midis karaktere"e t "endosura
Figura 10-2. =isa nga komandat e prbashkta t programe"e n +N6R t
spe$ifikuara nga !:16R

10.2.5 Struktura e Kernel-it
N figurn &8#& shohim strukturn e prgjithshme t nj sistemi +N6R. Nani le t shohim
kernelin prpara se t shohim pjest tjera. !araqitja e strukturs s kernelit sht pak e
"shtir meqn se kemi "ersione t ndryshme t +N6R, por megjithse diagrama e
figurs &8#9 prshkruan M.M;1=, ajo mund t prdoret n shum "ersione t tjera me disa
ndryshime t "ogla ktu dhe atje.
Figura 10-3. 1truktura e kernelit M.M;1=
1htresa ba' e kernelit konsiston n dri"erat e paisje"e dhe drguesin (dispat$h) e
proese"e. N gjith dri"erat e +N6R klasifikohen se$ili si dri"er i nj paisje ose t nj
blloku paisjesh, me ndryshimin kryesor q krkojn t njihen si nj bllok paisjesh dhe jo
si nj paisje e "etme. Neknikisht, paisjet e rrjetit jan paisje t "eanta, por ato sillen aq
ndryshe saq ek'iston mundsia q ti ndajm ato, si sht br n figur. =rgimi i
proese"e (proess dispat$hing) ndodh "etm kur ndodh nj interrupt. )odi i ni"elit t
ult ktu, ndalon proesin n ek'ekutim, ruan gjendjen e tij n tabeln e proese"e t
kernelit dhe starton dri"erin e duhur. =rgimi i proese"e gjithashtu ndodh kur kerneli
mbaron pun dhe sht koha pr t filluar nj proes user prsri. =rgimi (dispat$hing) i
kodit bhet n asembler dhe sht plotsisht i dallueshm nga skedulimi.
(bi ni"elin ba', kodi sht i ndryshm n t katr kolonat n figurn &8#9. N t majt
kemi paisjet karakter. ,to prdoren n dy mnyra. =isa programe, si jan editort
"i'ual si emacs dhe #i, duan do els sa her q ato ndeshen. Nerminali raw (tty) i 6/: e
bn kt t mundur. 1oftware tjetr, si sht shelli (sh), sht me rresht t orientuar dhe i
lejon prdorues"e t modifikojn rreshtin aktual, prpara se t shtypin NN. dhe thia
drgojn at programit. )y software prdor mnyrn cooke, dhe rregullat e rreshtit.
1oftware i network#ut sht shpesh modular, me suport t ndryshm pr paisjet dhe
protokollet. 1htresa mbi dri"erat e network#ut ka nj lloj funksioni rutimi, duke br q
nj paket e $aktuar t shkoj n paisjen e duhur ose n mbajtsin e protokollit. 1humi$a
e sisteme"e +N6R prmbajn n mnyr t plot funksionin e nj ruteri brenda kernelit,
megjithse prforman$a sht m e "ogl se n rastin e nj ruteri hardware. (bi kodin e
ruterit ndodhet sta$k#u i protokollit aktual, gjithnj duke prfshir 6! dhe N*!, por
ndonjeher edhe protokolle shtes. (bi gjith network#un ndodhet ndrfaqja so$ket, e
$ila i lejon programet t krijojn so$ket pr protokolle dhe network#e t posame, duke
marr mbrapa nj fd (file des$riptor) pr do so$ket pr ta prdorur m "on.
N krye t disk dri"era"e sht bufferi i $a$he#s s file#"e sistem dhe page $a$he#ja. N
sistemet e hershme +N6R, bufferi i $a$he#s ishte nj pjes fikse e memorjes, me gjith
pjesn e memorjes pr faqet user. N shum sisteme moderne +N6R, nuk ka nj kufi t
$aktuar, dhe ndonj faqe e memorjes mund t prdoret pr do funksion, n "arsi se
kush ne"ojitet m shum.
N krye bufferit t $a$he#s jan file#t sistem. 1humi$a e sisteme"e +N6R suportojn
shum file sistem, duke prfshir edhe *erkley fast file system, file#t sistem me struktur
logaritmike, si dhe file sistem t lloje"e t ndryshme t sisteme"e. N gjitha kto file
sistem share#ojn t njjtin buffer $a$he#je. N krye t file#"e sistem sht emrtimi i file#
"e, mena%himi i direktoris, mena%himi i linke"e t rnda dhe simbolike dhe
karakteristika t tjera t file#"e sistem q jan t njjta pr t gjitha file#t sistem.
N krye t page $a$he#s sht sistemi i memorjes "irtuale. gjith faqosja logjike sht
ktu, si sht edhe algoritmi i '"endsimit t faqe"e. N krye t saj sht kodi pr
planifikimin (mapping) e file#"e n memorjen "irtuale dhe kodi pr mena%himin e page#
fault#e"e t ni"elit t lart. )y sht kodi q kupton se far duhet br kur ndodh nj
page fault. ,i fillimisht kontrollon n se referen$a n memorje sht e "lefshme, dhe n
se po, ku sht "endosur faqja e krkuar dhe si mund t merret ajo.
)olona e fundit merret me mena%himin e proese"e. (bi dispat$her#in sht skeduleri i
proese"e, i $ili 'gjedh proesin pasardhs q do ek'ekutohet. N se proeset
mena%hohen n kernel, edhe thread#et gjithashtu mena%hohen ktu, megjithse thread#et
n disa sisteme +N6R mena%hohen n hapsirn user. (bi skedulerin sht kodi pr
prpunimin e sinjale"e dhe drgimin e tyre n destina$ionin e duhur, ashtu si kodi i
krijimit dhe prfundimit t proese"e.
N krye t shtress sht ndrfaqja n sistem. N t majt sht ndrfaqja e thirrje"e
sistem. N gjitha thirrjet sistem "ijn ktu dhe drejtohen n nj nga modulet m posht,
n "arsi nga natyra e thirrjes. N t djatht sht hyrja pr interruptet dhe instruksionet
trap, duke prfshir sinjalet, page fault#et, prjashtimet e proesorit t t gjitha lloje"e,
dhe interruptet 6/:.
10.3 PROESET NE UNIX
N seksionin paraardhs, pam +N6R nga pikpamja e tastiers, q do t thot se si e
shikonte useri n terminal. =ham shembuj mbi komandat e shellit si dhe programet q
prdoren m shpesh. N fund dham nj paraqitje t shkurtr t strukturs s sistemit.
Nani sht koha q shikojm m thell n kernel dhe t "shtrojm m nga afr kon$eptet
ba' q suportojn +N6R, domethn proeset, memorjen, file#t sistem dhe input/output.
)to no$ione jan t rndsishme sepse thirrjet sistem # ndrfaqja me sistemin operati" e
programe"e user # i manipulojn ato. !r shembull, thirrjet sistem ek'istojn pr t
krijuar proese, pr t alokuar memorjen dhe pr t br 6/:. /atkeqsisht, me kaq shum
"ersione ek'istuese t +N6R, prsri ka disa ndryshime midis tyre. N kt kapitull, ne
do t fokusohemi m shum tek ato "eti q jan t prbashkta pr t gjith "ersionet,
sesa n "eti spe$ifike t ndonj "ersioni. )shtu q n disa seksione ("eanrisht n
seksionet e implementimit), shqyrtimi mund t mos iu prshtatet njlloj t gjitha
"ersione"e.
10.3.1 Konceptet kryesore
ntitetet e "etme akti"e n nj sistem +N6R jan proeset. !roeset n +N6R jan shum
t ngjashm me proeset q studiuam n )apitullin H. Bdo proes ek'ekuton nj program
t "etm dhe fillimisht ka "etm nj thread kontrolli. (e fjal t tjera, ai ka nj !*
(!rogram *ounter), i $ili ruan gjurmn e instruksionit pasardhs q do ek'ekutohet.
1humi$a e "ersione"e n +N6R i lejojn proesit t krijoj threade shtes n t njjtn
koh q ai fillon ek'ekutimin.
+N6R sht nj sistem me multiprogramim, kshtu q shum proese t pa"arura mund
t ek'ekutohen n t njjtn koh. Bdo user mund t ket disa proese akti"e n t njjtn
koh, kshtu q n nj sistem t madh, mund t ket me qindra apo edhe mijra proese
n ek'ekutim. N fakt, n shumi$n e workstation#a"e me nj prdorues, edhe kur
prdoruesi mungon shum proese ba$kground, t quajtura daemon, ek'ekutohen. )to
startohen automatikisht kur sistemi butohet.
Nj daemon tipik sht cron ,aemon. ,i 'gjohet nj her n minut pr t par n se ka
ndonj pun pr t br. N se ka, ai e bn kt pun. ( pas ai kthehet prsri n
gjendjen e mparshme derisa ti "ij koha pr t br kontrollin tjetr.
)y daemon sht i ne"ojshm sepse sht i ne"ojshm n +N6R skedulimi i akti"itete"e
n minuta, or, dit ose edhe muaj n t ardhmen. !r shembull, supo'oni se nj
prdorues ka $aktuar nj orar me dentistin n orn 9 t martn e ardhshme. ,i mund t
bj nj shnim n ba'n e t dhna"e t $ron daemon duke i thn daemonit q ta
sinjali'oj at, le t themi n orn HJ98. )ur dita dhe ora e $aktuar "jen, $ron daemoni
shikon q ai ka pun pr t br dhe programi i sinjali'imit startohet si nj proes i ri.
5jithashtu $ron daemoni prdoret pr t skanuar akti"itetet periodik, si pr shembull,
brja e ba$kup#e"e do dit n orn M mbasdite. Njetr rast i daemone"e jan posta
elektronike (mail), mena%himi i rreshta"e q presin n rradh pr tu printuar, kontrolli n
se ka mjaftueshm faqe t lira n memorje, etj. =aemonet mund t implementohen mir
n +N6R sepse donjri prej tyre sht nj proes i ndar, i pa"arur nga t gjitha proeset
e tjera.
!roeset n +N6R krijohen n nj mnyr shum t thjesht. Nhirrja sistem fork krijon
nj kopje ek'akte t proesit origjinal. !roesi origjinal quhet proesi prind, ndrsa
proesi tjetr i lindur nga fork quhet proesi fmij. 1e$ili prej proese"e prind dhe
fmij kan memorjen e tyre. N se prindi m pas ndryshon ndonj nga "ariablat e tij,
kto ndryshime nuk shfaqen tek fmija dhe e anasjellta.
/ile#t e hapur jan t share#uar midis prindit dhe fmijs. )shtu, n se disa file ishin
hapur tek prindi prpara fork, ato do t "a'hdojn t jen t hapura tek prindi dhe fmija
edhe m pas. Ndryshimet e bra ne nj file nga donjri (prindi ose fmija) do t shfaqen
tek tjetri. )jo sjellje sht e arsyeshme, sepse kto ndryshime shfaqen edhe n ndonj
proes q ska lidhje me to dhe q hap kt file.
/akti q pasqyrimi i memorjes, "ariablat, regjistrat dhe do gj tjetr jan identike tek
proeset prind dhe fmij, na on n nj "shtirsi t "oglJ 1i duhet ta kuptojn proeset
se kush duhet t ek'ekutojn kodin e prindit dhe kush t fmijsU 1ekreti sht q thirrjet
sistem fork kthejn nj "ler 8 fmijs dhe nj "ler jo 8, PID (Proess IDentifier) e
fmijs i jepet prindit. N dy proeset normalisht kontrollojn "lern e kthyer dhe
"eprojn njlloj si tregohet n figurn &8#M.
pid [ fork ( ) I /b n se fork arrihet, pid X 8 tek prindib/
if (pid Y 8) c
handle`error ( ) I /b fork dshton (pr shembull. memorja ose
disa tabela jan plotb/
e else if (pid X 8) c
/b kodi i prindit shkon ktu. /b/
e else c
/b kodi i fmijs shkon ktu. /b/
e
Figura 10-4. )rijimi i proesit n +N6R.
!roeset emrtohen nga !6=#ja e tyre. )ur krijohet nj proes, prindit i jepet !6= e
fmijs, si u tha m lart. N se fmija do t dij !6= e tij, sht nj thirrje sistem, getpi,,
q e mundson kt. !6= prdoren n rrug t ndryshme. !r shembull. kur nj proes
fmij mbaron, prindit i sht dhn !6= e nj fmije q sapo mbaroi. )jo mund t jet e
rndsishme sepse nj prind mund t ket disa fmij. (eqn se femija mund t ket
fmij t tjer, nj proes origjinal mund t formoj tre fmij t tjer, si dhe m pas
pasardhs t tjer.
!roeset n +N6R mund t komunikojn me njri#tjetrin duke prdorur kalimin e
mesa'he"e. sht e mundur t krijohet nj kanal midis dy proese"e, ku njri proes
mund t shkruaj nj stream byte#sh pr ti le%uar kanali tjetr. )to kanale quhen pipes.
1inkroni'imi sht i mundur sepse kur nj proes prpiqet t le%oj nga nj pipe bosh ai
bllokohet derisa t ket t dhna t disponueshme pr t le%uar.
1hell pipelines jan implementuar me pipe. )ur shelli shikon nj rresht si
sort Yf Z head
ai krijon dy proese, sort dhe hea,, dhe "endos nj pipe mes tyre, n nj mnyr t till
sikur standart outputi i sort sht i lidhur me standart inputin e hea,. N kt mnyr, t
gjitha t dhnat q shkruhen nga sort shkojn direkt tek hea,, n "end q t shkonin n
nj file. N se pipe mbushet plot, sistemi ndalon ek'ekutimin e sort derisa hea, t
'h"endos disa t dhna nga pipe.
!roeset mund t komunikojn edhe n nj rrug t tjetrJ interruptet software. Nj
proes mund ti drgoj at q quhet sinjal proesit tjetr. !roeset mund ti tregojn
sistemit se far ata duan t ndodh kur "jen nj sinjal. @gjedhjet e sistemit janJ ti
injoroj, ti kap, ose ta ler sinjalin ta "ras proesin ('gjedhja default pr shumi$n e
sinjale"e). N se nj proes preferon ta kap sinjalin e drguar, ai duhet t spe$ifikoj
proedurn e kapjes s sinjalit. )ur sinjali "jen, kontrolli i kalon menjeher mbajtsit.
)ur mbajtsi mbaron pun, kontrolli kthehet mbrapa andej nga erdhi, n mnyr t
ngjashme me interruptet hardware t 6/:. Nj proes mund ti drgoj "etm nj sinjal
element"e t tjer t grupit t proesit, q konsiston n prindin e tij, motrat dhe
"lle'rit, dhe fmijt (dhe pasardhsit e tjer). )jo mund t arrihet edhe me an t nj
thirrje t "etme sistem.
1injalet prdoren gjithashtu edhe pr qllime t tjera. !r shembull. n se nj proes sht
duke br nj "eprim aritmetik me numra me presje, dhe pa qllim pjeston me 8, ai merr
nj sinjal 165/! (prjashtim pr numrat me presje). 1injalet q krkohen nga !:16R
tregohen n figurn &8#7. 1hum sisteme +N6R kan sinjale t tjera shtes, por
programet q i prdorin ato mund t mos jen t prshtatshme me "ersionet e tjera +N6R.
Sinjali Shkaku
165,;.N =rgohet pr t ndrprer nj proes
165,-.( ,larmi i ors pushon
165/! Nj gabim me nr me presje ka ndodhur (pr shembull.
pjestimi me 8)
1652+! -inja e tlefonit q proesi po prdort ka qen duke pritur
1656-- +seri ka shtypur tastin =- pr t ndrprer nj proes
165<+6N +seri ka shtypur butonin pr t 'bra'ur ekranin
165)6-- =rgohet pr t "rar nj proes (nuk mund t injorohet)
165!6! !roesi ka shkruar n nj pipe q ska le%ues
16515> !roesi i referohet nj adrese in"alide n memorje
165N.( !rdoret pr t krkuar q nj proes t prfundoj mir
165+1.& 6 disponueshm pr qllimet e aplika$ione"e t $aktuara
165+1.H 6 disponueshm pr qllimet e aplika$ione"e t $aktuara

Figura 10-5. 1injalet e spe$ifikuara nga !:16R
10.3.2 Menaxhimi i thirrjeve sistem n UNIX
-e t shohim tani thirrjet sistem n +N6R shoqruar me mena%himin e proesit. (
kryesoret prej tyre tregohen n figurn &8#D. /ork sht nj "end i mir pr t filluar
diskutimin. /ork sht e "etmja rrug pr t krijuar nj proes t ri n sistemet +N6R.
,jo krijon nj kopje ek'akte t proesit origjinal, duke prfshir t gjith file deskriptor#
t, regjistrat dhe do gj tjetr. !as fork, proesi origjinal dhe kopja (prindi dhe fmija),
shkojn n rrugt e tyre t ndara. N gjith "ariablat kan "ler identike n kohn e fork,
por meq prindi pasqyrohet i tri tek fmija, m pas ndryshimet n njrin prej tyre nuk
pasqyrohen tek tjetri. Nhirrja fork kthen nj "ler, e $ila sht 8 pr fmijn dhe e
barabart me !6= e fmijs n rastin e prindit. =uke prdorur !6= e kthyer, dy proeset
mund t dallohen se kush sht prindi dhe kush fmija.
N shumi$n e raste"e, pas fork, fmijs do ti duhet t ek'ekutoj nj kod t ndryshm
nga prindi. )onsiderojm rastin e shellit. ,i le%on nj komand nga terminali, ndalon
proesin e lindjes, pret fmijn pr t ek'ekutuar komandn, dhe m pas le%on komandn
e ardhshme kur fmija prfundon. !r t pritur q fmija t prfundoj, prindi ek'ekuton
nj thirrje sistem waitpid, e $ila pret derisa fmija (fmijt) t prfundojn. 3aitpid ka tre
parametra. 6 pari lejon thirrsin t pres pr nj fmij spe$ifik. N se sht #&, $ilido
fmij i "jetr do ta bj. !arametri i dyt sht adresa e nj "ariabli q do "endoset n
gjendjen e daljes s fmijs (prfundimi normal ose jo normal dhe dalja). !arametri i tret
pr$akton n se thirrsi bllokohet ose kthehet n se asnj fmij nuk ka mbaruar akoma.
N rastin e shellit, proesi fmij duhet t ek'ekutoj komandn e shtypur nga
prdoruesi. ,i e bn kt duke prdorur thirrjen sistem e%e$, e $ila bn q kopja e plot e
tij t '"endsohet nga file i emrtuar n parametrin e tij t par. Nj shell shum i
thjeshtuar i $ili ilustron prdorimin e fork, waitpid dhe e%e$ tregohet n figurn &8#C.
Thirrja sistem Prshkrimi
pid [ fork( ) )rijon nj proes fmij identik me prindin
pid [ waitpid(pid, Sstatlo$, opts) !ret q nj proes fmij t prfundoj
s [ e%e$"e(name, arg", en"p) @"endson pasqyrimin e nj proesi
e%it(status) (baron ek'ekutimin e proesit dhe kthen gjendjen
s [ siga$tion(sig, Sa$t, Solda$t) !r$akton "eprimin q ndrmerret mbi sinjalet
s [ sigreturn(S$onte%t) )thim nga nj sinjal
s [ sigpro$mask(how, Sset, Sold) )ontrollon ose ndryshon maskn e sinjalit
s [ sigpending(set) (err bashksin e sinjale"e t bllokuara
s [ sigsuspend(sigmask) .i"endos maskn e sinjalit dhe pe'ullon proesin
s [ kill(pid, sig) =rgon nj sinjal nj proesi
residual [ alarm(se$onds) >endos alarmin e ors
s [ pause( ) !e'ullon thirrsin deri n sinjalin pasardhs
Figura 10-6. =isa thirrje sistem n lidhje me proeset. )odi i kthyer s sht #& n se
ndodh nj gabim, pi, sht 6= e proesit, dhe resi,ual sht koha e mbetur pr alarmin e
mparshm. !arametrat jan sipas propo'imit t emra"e.
while(N.+) c /b prsrit prgjithmon /b/
type`prompt()I /b shfaq prompt n ekran b/
read`$ommand($ommand, params)I /b le%on rreshtin e futur nga tastiera b/
pid [ fork()I /b 6 lir pr t krijuar nj proes fmij b/
if(pid Y 8) c
printf(\+nable to fork\)I /b kushti i gabimit b/
$ontinueI /b prsrit $iklin b/
e

if(pid i[ 8) c
waitpid (#&, Sstatus, 8)I /b prindi pret pr fmijn b/
e else c
e%e$"e($ommand, params, 8)I /b fmija bn punn b/
e
e
Figura 10-7. Nj shell shum i thjeshtuar
N shumi$n e raste"e, e%e$ ka tre parametraJ emrin e file#s pr tu ek'ekutuar, nj pointer
n rreshtin e argumente"e, dhe nj pointer n rreshtin e ambjentit. )to do t prshkruhen
shkurt. -ibrari pro$edurash t ndryshme, duke prfshir e&ecl- e&ec#- e&ecle- ,he e&ec#e-
kujdesen pr t ln parametrat jasht ose t spe$ifikuar n rrug t ndryshme. 1e$ila prej
ktyre proedura"e krkon t njjtn thirrje sistem. (eq thirrja sistem sht e%e$, nuk
ka asnj proedur librarie me kt emrI nj nga proedurat tjera duhet prdorur.
-e t konsiderojm rastin e shtypjes s nj komande n shell si pr shembullJ
$p file& fileH
e prdorur pr t kopjuar file1 tek file2. !asi shelli bn fork, fmija "endoset dhe
ek'ekuton file#n cp dhe i kalon informa$ionin atij (shellit) rreth file#s pr tu kopjuar.
!rogrami main i cp (dhe shum programe t tjera) prmbajn deklarimin e funksionit
main (arg$, arg", en"p)
ku argc sht nj numrues i gjra"e n $ommand line, prfshir edhe emrin e programit.
N shembullin m lart, argc sht 9.
!arametri i dyt, arg#, sht nj pointer rreshti. lementi i i nj rreshti sht nj pointer i
strings s i#t n $ommand line. N shembullin ton, arg#084 mund t pointoj tek
stringa \$p\. Njlloj, arg#0&4 mund t pointoj tek karakteri i 7#t i strings \file&\ dhe
arg#0H4 mund t pointoj tek karakteri i 7#t i strings \fileH\.
!arametri i tret i main- en#p, sht nj pointer ambjenti, nj rresht stringash q
prmbajn pr$aktime t trajts emr 9 #ler, t prdorura pr t kaluar informa$ionin si
pr shembull. nga tipi i terminalit dhe emri i direktoris home n nj program. N figurn
&8#C, asnj ambjent nuk i kalohet fmijs, kshtu q parametri i tret i e&ec#e sht 'ero
n kt rast.
N se e%e$ ju duket e komplikuar, mos u dshproniI ajo sht thirrja sistem m
komplekse. N gjitha t tjerat jan shum m t thjeshta. !r shembull, nj e thjesht
konsiderohet e%it, t $iln proeset duhet ta prdorin kur prfundojn ek'ekutimin. ,jo
ka nj parametr, statusin e%it (8#H77), si spe$ifikohet n thirrjen e%it t fmijs. !r
shembull. n se nj proes prind ek'ekuton kt rreshtJ
n [ waitpid (#&, Sstatus, 8) I
ai do t pe'ullohet derisa disa proese fmij t prfundojn. N se fmija del, le t themi
me M, si sht parametri i e&it, prindi do t \'gjohet\ me "lern n t "endosur tek !6= e
fmijs, dhe status t "endosur tek 8%8M88 (8% tregon he%ade$imal n *). ;yte i fundit i
status ka t bj me sinjaletI pas tij sht "lera q kthehet ndaj thirrjes e&it t fmijs. N
se nj proes del dhe prindi i tij nuk ka pritur akoma pr t, proesi hyn n nj lloj
pe'ullimi t quajtur zombie state. )ur prindi n fund pret pr t, proesi prfundon.
=isa thirrje sistem lidhen me sinjalet, t $ilt prdoren n rrug t ndryshme. !r
shembull, n se nj user aksidentalisht i thot nj editori teksti t shfaq t tr
prmbajtjen e nj file shum t madhe, dhe m pas reali'on nj gabim, duhet q ta
ndrpresim editorin. @gjidhja m e prdorshme pr prdoruesin sht shtypja e disa
butona"e (pr shembull, =- ose *N.-#*), t $ilat i drgojn nj sinjal editorit. ditori
kap sinjalin dhe ndalon shfaqjen n ekran t prmbajtjes s file#t.
!r t treguar kt gatishmri pr t kapur kt (apo ndonj tjetr) sinjal, proesi mund t
prdor thirrjen sistem siga$tion. !arametri i par sht pr t 'n sinjalin (shih fig. &8#
7). 6 dyti sht pointeri n nj struktur, duke i dhn nj pointer proedurs s mbajtjes
s sinjalit, si pr shembull, disa bite dhe flage t tjer. 6 treti pointon n nj struktur ku
sistemi kthen informa$ion rreth mbajtsit aktual t sinjalit, n rast se ai duhet t ruhet m
"on.
(bajtsi i sinjalit mund t ek'ekutohet pr sa koh t doj. N praktik, sidoqoft,
mbajtsit e sinjalit jan mjaft t shkurtr. )ur proedura e mbajtjes s sinjalit prfundon,
ajo kthehet tek pika nga e $ila ishte ndrprer. Nhirrja sistem siga$tion mund t prdoret
gjithashtu pr t refu'uar sinjalin, ose pr t ruajtur "eprimin default, q sht "rasja e
proesit.
1htypja e butonit =- nuk sht e "etmja rrug pr t drguar nj sinjal. Nhirrja sistem
kill i lejon proesit t sinjali'oj nj proes tjetr q ka t bj me t. @gjedhja e fjals
\kill\ pr thirrjen sistem nuk sht m e mira, meqen se shumi$a e proese"e iu drgojn
sinjale proese"e t tjer duke menduar se ato jan kapur.
!r shum aplika$ione n koh reale, nj proes ka ne"oj t ndrpritet pr nj inter"al
spe$ifik kohe pr t br dika, si pr shembull, ritransmetimi i nj pakete t humbur
prmes nj linje komunikimi jo t sigurt. !r t mbajtur kt situat, jepet thirrja sistem
alarm. !arametri spe$ifikon nj inter"al, n sekonda, pas t $ilit, nj sinjal 165,-.( i
sht drguar proesit. Nj proes mund t ket "etm nj alarm n nj moment t
$aktuar. N se nj thirrje alarm sht br me nj parametr prej &8 sekondash, dhe m
pas 9 sekonda m "on nj tjetr thirrje alarm sht br me nj parametr prej H8
sekondash, "etm nj sinjal do t gjenerohet, H8 sekonda pas thirrjes s dyt. 1injali i
par eleminohet nga thirrja e dyt alarm. N se parametri tek alarm sht 8, ndonj sinjal
alarmi i mbetur pe'ull eleminohet. N se nj sinjal alarm nuk sht kapur, ndrmerret
"eprimi default dhe proesi i sinjali'uar sht "rar. Neknikisht, sinjalet alarm mund t
injorohen, por sht e kot ta bjm kt gj.
Ndonjeher ndodh q nj proes nuk ka asgj pr t br derisa t "ij nj sinjal. !r
shembull, konsideroni nj program me instruksion $omputer#aided q po teston
shpejtsin e le%imit dhe t kuptuarit. ,i shfaq disa fjal tekst n ekran dhe m pas thrret
alarm pr ta sinjali'uar at pas 98 sekondash. Ndrsa studenti po le%on tekstin, programi
shka asgj pr t br. ,i mund t "endoset n nj $ikl duke mos br asgj, por q mund
t shfryt'oj kohn e *!+ q nj proesi ba$kground ose nj useri mund ti ne"ojitet.
Nj 'gjidhje m e mir sht prdorimi i thirrjes sistem pause, e $ila i thot +N6R q t
pe'ulloj proesin derisa nj sinjal tjetr t "ij.
Thirrjet sistem pr menaxhimin e thread-eve
>ersionet e para +N6R nuk kishin threade. )jo "eti u shtua disa "jet m "on. /illimisht
ishin shum paketa threadesh n prdorim, por shtimi i paketa"e t threade"e e bri t
"shtir shkrimin e kode"e t l"i'shme. !rfundimisht, thirrjet sistem t prdorura pr
mena%himin e threade"e ishin standarti'uar si pjes e !:16R (!&889.&$).
1pe$ifikimet e !:16R nuk ishin n gjendje t tregonin n se threadi duhet t
implementohej n hapsirn user apo kernel. ,"anta'hi q t kesh threade n hapsirn
user sht q ato mund t implementohen pa qen ne"oja q t kalojm n kernel. meta
e threade"e n hapsirn user sht q n se nj thread bllokohet (pr shembull. nj 6/:,
nj semafor, apo nj page fault), t gjith threadet e proesit bllokohen sepse kerneli
mendon se sht "etm nj thread dhe nuk e skedulon proesin derisa threadi i bllokuar t
lirohet. )shtu q thirrjet e pr$aktuara n !&889.&$ ishin t 'gjedhura me kujdes pr t
qen t implementueshme n t gjitha mnyrat. ,shtu si programet user mbshteten me
kujdes tek semantika e !&889.&$, t dyja implementimet duhet t punojn n mnyr
korrekte. Nhreadet m t prdorshme tregohen n figurn &8#L. )ur prdoren threadet e
kernelit, kto thirrje jan thirrje t "rteta sistem, kur prdoren threadet user, kto thirrje
implementohen trsisht n librarin runtime t hapsirs user.
Thirrjet thread Prshkrimi
pthread`$reate )rijon nj thread t ri n hapsirn e adress s
thirrsit
pthread`e%it !rfundon thirrjen e threadit
pthread`join !ret q nj thread t prfundoj
pthread`mute%`init )rijon nj mute% t ri
pthread`mute%`destroy 1hkatrron nj mute%
pthread`mute%`lo$k ;llokon nj mute%
pthread`mute%`unlo$k @hbllokon nj mute%
pthread`$ond`init )rijon nj "ariabl kushte'imi
pthread`$ond`destroy 1hkatrron nj "ariabl kushte'imi
pthread`$ond`wait !ret nj "ariabl kushte'imi
pthread`$ond`signal - nj thread duke pritur nj "ariabl kushte'imi
Figura 10-8. Nhirrjet thread kryesore n !:16R
-e t shikojm shkurt thirrjet thread t treguara n figurn &8#L. Nhirrja e par,
pthread`$reate, krijon nj thread t ri. ,jo thirret ngaJ
err [ pthread`$reate (Stid, attr, fun$tion, arg) I
)jo thirrje krijon nj thread t ri n proesin aktual q po ek'ekuton kodi function me
arg t kaluar si parametr. 6= e threadit t ri "endoset n memorje n "endodhjen e
pointuar nga parametrat e par. !arametri attr mund t prdoret pr t spe$ifikuar disa
"eti pr threadin e ri, si pr shembull. prioriteti i skedulimit t tij.
Nj thread q ka br punn e tij dhe do t prfundoj ek'ekutimin, thrret pthread`e%it.
Nj thread mund t pres pr nj thread tjetr pr t prfunduar duke thirrur pthread`join.
N se threadi i pritur ka prfunduar tashm, pthread`join prfundon menjeher.
!rndryshe ajo bllokohet.
Nhreadet mund t sinkroni'ohen duke prdorur thirrjet bllokuese mutex. @akonisht nj
mute% ruan disa burime, si sht bufferi i share#uar nga dy threade. !r t qen t sigurt
q "etm nj thread n nj moment kohe akseson burimin e share#uar, threadet supo'ohet
se e bllokojn mute% prpara komunikimit me burimin dhe e 'hbllokojn at kur
mbarojn pun. ,shtu si t gjith threadet i binden ktij protokolli, kushtet e shpejtsis
mund t mnjanohen. (ute%#et jan si semafort binar, q jan semafor q marrin
"etm dy "lera, 8 dhe &. mri \mute%\ "jen nga fakti q mute%#et jan prdorur pr t
siguruar mutual e%$lusion mbi disa burime.
(ute%#et mund t krijohen dhe t shkatrrohen respekti"isht me an t thirrje"e
pthread`mute%`init dhe pthread`mute%`destroy. Nj mute% mund t jet n nj nga dy
gjendjetJ bllokuar ose 'hbllokuar. )ur nj threadi i duhet t bllokoj nj thread t
'hbllokuar (duke prdorur pthread`mute%`lo$k), bhet bllokimi dhe threadi "a'hdon.
(egjithat, kur nj thread prpiqet t bllokoj nj mute% t bllokuar tashm, ai bllokohet.
)ur threadi bllokues mbaron pun me burimin e share#uar, pritet 'hbllokimi i mute%#it
korrespondues duke thirrur pthread`mute%`unlo$k.
(ute%#et nnkuptojn nj bllokim pr nj afat t shkurtr, si sht pr shembull,
mbrojtja e nj "ariable t share#uar. ,to nuk nnkuptojn sinkroni'im pr nj koh t
gjat, si pr shembull, pritja e nj tape dri"e q t lirohet. 1inkroni'imi pr nj koh t
gjat sigurohet nga "ariablat e kushte'imit. ,to krijohen dhe shkatrrohen me an t
thirrje"e respekti"e, pthread`$ond`init dhe pthread`$ond`destroy.
Nj "ariabl kushte'imi prdoret duke pasur nj thread q pret pr t dhe nj tjetr thread
sinjali'ues. !r shembull, duke 'buluar q nj tape dri"e q asaj i duhet sht e 'n, nj
thread duhet t bj nj pthread`$ond`wait mbi nj "ariabl kushte'imi q t gjith t
prshtaten me kushtin e tape dri"e. )ur threadi q po prdorte tape dri"e mbaron pun me
t (ndoshta mbas disa orsh), ai prdor pthread`$ond`signal pr t ln "etm nj thread
duke pritur mbi kt "ariabl kushte'imi (n se ka threade). N se nuk ka threade duke
pritur, sinjali humbet. (e fjal t tjera, "ariablat e kushte'imit nuk numrojn si
semafort. )a edhe disa pr$aktime t tjera mbi "eprimet e threade"e, mute%#e"e dhe
"ariabla"e t kushte'imit.
&8.9.9 Implentimi i proeseve n UNIX
Nj proes n +N6R sht si nj i$ebergI ajo far shihni sht pjesa mbi uj, por sht
gjithashtu nj pjes e rndsishme nn uj. Bdo proes ka nj pjes user q ek'ekuton
programet user. (egjithat, kur nj nga threadet e tij bn nj thirrje sistem, ai kalon n
kernel mode, dhe fillon ek'ekutimin n kontekstin e kernelit, me nj hart memorje t
ndryshme dhe me nj akses t plot mbi t gjitha burimet e makins. sht akoma i njjti
thread, por tani me m shum fuqi dhe me sta$k#un dhe program $ounter#in e tij t
kernelit. )to jan t rndsishme sepse thirrja sistem mund t bllokoj disa rrug, si pr
shembull, pritja pr prfundimin e nj "eprimi t diskut. !$ dhe regjistrat ruhen, kshtu
q threadi mund t rifilloj m "on n kernel mode.
)erneli mirmban dy struktura kryesore t dhnash t lidhura me proeset, tabeln e
proesit dhe strukturn e prdoruesit. Nabela e proesit sht kudo gjat gjith kohs dhe
mban informa$ionin e ne"ojshm pr t gjitha proeset, edhe pr ato q aktualisht nuk
jan n memorje. 1truktura e prdoruesit 'h"endoset (swapped ose paged) jasht kur i
shoqrohen proese q shjan n memorje, n mnyr q t mos shprdorohet memorja
me informa$ione q nuk ne"ojiten.
6nforma$ioni i tabels s proesit prbhet nga kategorit e mposhtmeJ
Parametrat e skedulimit. !rioriteti i proesit, sasia e kohs s *!+ t konsumuar s
fundemi, sasia e kohs s shpen'uar n gjendje pushimi. N gjitha kto s bashku,
prdoren pr t pr$aktuar proesin pasardhs q do ek'ekutohet.
Pasqyrimi i memorjes. !ointerat e tekstit, t dhnat, dhe segmentet e sta$k#ut, ose n se
faqosja sht prdorur, tek faqet e tabels s tyre. N se segmenti i tekstit sht i share#
uar, pointeri i tekstit pointon tek tabela tekst e share#uar. )ur proesi nuk sht n
memorje, informa$ioni mbi "endodhjen e tij n disk sht ktu.
Sinjalet. (askimet tregojn se $ilt sinjale injorohen, $ilt kapen, $ilt jan prkohsisht
t bllokuar, dhe $ilt jan n proeset e drguara.
T tjera. 5jendja aktuale e proesit, ngjarja pr t $iln pritet, n se ka, koha derisa t
prfundoj alarmi i ors, !6=, !6= e proesit prind dhe useri, dhe elementet identifikues.
1truktura e prdoruesit prmban informa$ionin q nuk ne"ojitet kur proesi nuk sht
fi'ikisht n memorje dhe nuk sht i ek'ekutueshm. !r shembull, megjithse sht e
mundur pr nj proes t drgoj nj sinjal ndrsa 'h"endoset jasht, nuk sht e mundur
pr t t le%oj nj file. !r kt arsye, informa$ioni rreth sinjale"e duhet t jet n
tabeln e proesit, kshtu q ato jan n memorje gjat gjith kohs, edhe kur proesi nuk
sht n memorje. Nga ana tjetr, informa$ioni rreth file deskriptor"e mund t mbahet
n strukturn e prdoruesit dhe mund t paraqitet "etm kur proesi sht n memorje
dhe sht i ek'ekutueshm.
6nforma$ioni q ndodhet n strukturn e prdoruesit prfshinJ
Regjistrat makin. )ur ndodh nj instruksion trap n kernel, regjistrat makin (duke
prfshir edhe ato t nr me presje, n se prdoren) ruhen ktu.
Gjendja e thirrjes sistem. 6nforma$ioni rreth thirrjes aktuale sistem, duke prfshir edhe
parametrat dhe re'ultatet.
Tabela e file deskriptor. )ur krkohet nj thirrje sistem duke prfshir nj file
deskriptor, file deskriptori prdoret si nj indek% n kt tabel pr t pr$aktuar
"endodhjen e strukturs s t dhna"e q i korrespondon ksaj file.
Llogaritsi. !ointer n nj tabel q mban gjurmn e prdoruesit dhe kohn e *!+ t
prdorur nga proesi. =isa sisteme mbajn kufi'ime ktu pr sa i takon kohs s *!+ q
mund t prdor proesi, madhsin e sta$k#ut, numrin e page frame#"e q mund t
konsumoj, etj.
Stack-u i kernelit. Nj sta$k i fiksuar pr tu prdorur nga proeset e kernelit.
=uke mbajtur n mendje prdorimin e ktyre tabela"e, tani sht m e leht t shpjegohet
se si krijohen proeset n +N6R. )ur ek'ekutohet nj thirrje sistem fork, proesi thirrs
kalon n kernel dhe shikon pr nj slot t lir pr tu prdorur nga fmija, n tabeln e
proese"e. N se e gjen kt slot, ai kopjon t gjith informa$ionin nga tabela e proesit
prind tek fmija. ( pas pr$akton memorjen pr t dhnat e fmijs dhe segmentin e
sta$k#ut, dhe e drgon kopjen e t dhna"e dhe sta$k#ut t prindit pikrisht ktu. 1truktura
e prdoruesit (q shpesh rri pran segmentit t sta$k#ut), kopjohet prpara me sta$k#un.
1egmenti i tekstit mund t kopjohet ose share#ohet i tri meq sht "etm i le%ueshm.
N kt moment, fmija sht gati pr tu ek'ekutuar.
)ur nj user shtyp nj komand, pr shembull, ls, shelli krijon nj proes t ri duke br
nj klon t "etes. 1helli i ri m pas therret e%e$ pr t mbuluar memorjen e tij me
prmbajtjen e file#s s ek'ekutueshme ls. 2apat e prfshira tregohen n figurn &8#G.
(ekani'mi pr krijimin e proese"e t reja aktualisht tepr i \ndershm\. Nj slot i ri i
tabels s proesit dhe hapsira user krijohen pr proesin fmij dhe mbushen larg
prindit. /mijs i jepet nj !6=, strukturohet harta e memorjes s tij, dhe i jepet nj akses
i share#uar tek file#t e prindit. ( pas regjistrat e tij strukturohen dhe bhen gati pr tu
ek'ekutuar.
N parim nj kopje e hapsirs s adress duhet br, meqn se semantikat e fork
tregojn q shka memorje t share#uar mes prindit dhe fmijs. (egjithat, kopjimi i
memorjes sht i kushtueshm, kshtu q t gjitha sistemet moderne +N6R gnjejn. ,to
i japin fmijs page table#in e tij, por iu duhet t shnjojn tek page#t e prindit, duke i
etiketuar ato si "etm t le%ueshme. 1a her q fmija prpiqet t shkruaj mbi nj page,
ai merr nj dshtim kalimi. )erneli e shikon kt dhe m pas i alokon nj kopje t re t
page#it tek fmija dhe e etiketon at si t le%ueshme dhe t shkrueshme. N kt mnyr,
"etm page#t q aktualisht jan shkruar duhet t kopjohen. )y mekani'm quhet copy-
on-write. ,i ka t mirn q nuk krkon dy kopje t programit n memorje, kshtu q
kursen memorjen .,(.
Figura 10-9. 2apat e ek'ekutimit t komands ls t shtypur n shell
!asi proesi fmij fillon ek'ekutimin, kodi q ek'ekutohet atje (nj kopje e shellit) bn
nj thirrje sistem e%e$, duke i dhn si parametr emrin e komands. )erneli tani gjen
dhe "erifikon file#n e ek'ekutueshm, kopjon argumentat dhe rrethon stringat tek kerneli,
dhe l hapsirn e "jetr t adresa"e dhe page table#in.
Nani hapsira e re e adresa"e duhet t krijohet dhe t mbushet. N se sistemi suporton
mapped files, si bjn 1istemi >, ;1=, dhe shum sisteme t tjera +N6R, page table e
reja organi'ohen pr t treguar q shka faqe n memorje, pr"e ndoshta t nj sta$k page,
por q hapsira e adresa"e kthehet mbrapa nga file#a e ek'ekutueshme n disk. )ur
proesi i ri fillon ek'ekutimin, ai menjeher do t marr nj page fault, e $ila do ti
shkaktoj faqes s par t kodit t thirret nga file e ek'ekutueshme. N kt mnyr, asgj
nuk do jet ngarkuar prpara, kshtu q programet mund t startojn shpejt dhe t
dshtojn "etm ato faqe, q duhen dhe jo m shum. !rfundimisht, argumentat dhe
stringat jan kopjuar tek sta$k#u i ri, sinjalet jan reset#uar dhe regjistrat jan ini$iali'uar
t gjith me 'ero. N kt moment komanda e re mund t filloj t ek'ekutohet.
Threadet n UNIX
6mplementimi i threade"e "aret n se ato suportohen n kernel apo jo. N se jo, si sht
rasti i M;1=, implementimi sht i tri n hapsirn e prdoruesit. N se suportohen, si n
rastin e 1istem > dhe 1olaris, kerneli ka disa pun pr t br. Ne i diskutuam threadet n
mnyr t prgjithshme n )apitullin H. )tu do t hedhim nj "shtrim mbi threadet e
kernelit n +N6R.
!roblemi kryesor tek threadet sht mirmbajtja e semantiks korrekte tradi$ionale t
+N6R. 1 pari konsideroni fork. 1upo'oni q nj proes me shum threade (n kernel)
bn nj thirrje sistem fork. , duhet q t gjitha threadet e tjera t krijohen n proesin e
riU !r momentin le t prgjigjemi me po. 1upo'ojm q nj nga threadet e tjer sht
bllokuar pr t le%uar nga tastjera. , duhet q edhe threadi korespondues n proesin e ri
gjithashtu t jet i bllokuar pr t le%uar nga tastjeraU N se po, $ili prej tyre e merr
rreshtin pasardhsU N se jo, far duhet t bj threadi q t jet n proesin e riU 6 njjti
problem mbetet edhe pr shum gjra t tjera q threadet mund t bjn. N nj proes
me nj thread t "etm, problemi nuk duket, sepse ky thread i "etm nuk mund t
bllokohet kur thirret fork. Nani konsiderojm rastin q threadet e tjera nuk jan krijuar tek
proesi fmij. 1upo'ojm q nj nga kto threade mban nj mute% q threadi i "etm n
proesin e ri prpiqet ta marr pasi t bj fork. (ute% nuk do t lirohet asnjeher dhe
threadi i "etm do t ek'ekutohet prgjithmon. 5jithashtu ek'istojn edhe disa probleme
t tjera. Nuk ka 'gjidhje t thjeshta t ktyre probleme"e.
2apsira e file#"e 6/: sht nj tjetr problem. 1upo'ojm q nj thread sht i bllokuar
pr t le%uar nga nj file dhe threadi tjetr mbyll file#n ose bn nj 6seek pr t ndryshuar
pointerin aktual t file#s. Bfar ndodh pastajU )ush e diU
Nrajtimi i sinjalit sht nj tjetr problem. , duhet sinjalet t drejtohen tek nj thread
spe$ifik apo tek nj proes n prgjithsiU Nj 165/! (prjashto floating#point) duhet
mundsisht t kapet nga threadi q e shkaktoi at. Bfar ndodh n se nuk e kap aiU ,
duhet t "ritet ky thread apo t gjith threadetU Nani supo'ojm nj sinjal 165N6N t
gjeneruar nga prdoruesi n tastier. *ili thread duhet ta kap atU , duhet q t gjith
threadet t share#ojn nj bashksi t prbashkt sinjalesh maskimiU N gjitha 'gjidhjet
pr kt dhe problemet e tjera 'akonisht bjn q dika t prishet diku. (arrja e drejt e
semantika"e t threade"e sht nj pun e parndsishme.
Threadet n Linux
-inu%i suporton threadet e kernelit n nj mnyr interesante q ia "len ta shikojm.
6mplementimi sht ba'uar n idet e M.M;1=, por threadet e kernelit nuk mundsoheshin
n kt sistem sepse ;erkley i derdhi parate prpara se libraria e * mund t rishkruhej pr
t 'gjidhur problemet e diskutuara m lart.
6mplentimi i threade"e n -inu% bhet me an t nj thirrje sistem t "eant, $lone, e $ila
nuk sht n asnj "ersion tjetr t +N6R. ,jo thirret si m poshtJ
pid [ $lone (fun$tion, sta$k`ptr, sharing`flags, arg) I
Nhirrja krijon nj thread t ri, n proesin aktual ose n nj proes t ri, n "arsi t
sharing:flags. N se threadi i ri sht n proesin aktual, ai share#on hapsirn e adresa"e
me threadet ek'istues dhe do shkrim m pas i ndonj byte n hapsirn e adresa"e nga
ndonj thread shfaqet menjeher tek t gjith threadet e proesit. Nga ana tjetr, n se
hapsira e adresa"e nuk sht share#uar, threadi i ri merr nj kopje ek'akte t hapsirs s
adresa"e, por m pas shkrimi nga threadi i ri nuk iu shfaqet t tjer"e. )to semantika
jan t njjta si fork.
N t dyja rastet, threadi i ri fillon ek'ekutimin tek function, i $ili sht thirrur me arg si
t "etmin parametr. 5jithashtu n t dyja rastet, threadi i ri merr sta$k#un e tij pri"at, me
sta$k pointerin t ini$iali'uar tek stack:ptr.
!arametri sharing:flags sht nj bitmap q lejon nj struktur me fine t share#imit sesa
n sistemet tradi$ionale +N6R. !r$aktohen pes bite, si n figurn &8#&8. Bdo bit
kontrollon disa aspekte t share#imit, dhe se$ili prej bite"e mund t konsiderohet si i
pa"arur nga njri#tjetri. ;iti '<0N?:I pr$akton n se memorja "irtuale (pr
shembull, hapsira e adresa"e) sht share#uar me threadet e "jetra apo kopjet. N se ky
bit "endoset, threadi i ri futet menjeher tek ato ek'istues, kshtu q thirrja $lone
efekti"isht krijon nj thread t ri n proesin ek'istues, n se biti fshihet, threadi i ri merr
hapsirn e tij t adresa"e. =uke pasur hapsirn e tij t adresa"e do t thot q ndikimi i
instruksionit t tij 1N:. nuk shfaqet tek threadet ek'istues. )jo sjellje sht e ngjashme
me fork, me prjashtimin e mposhtm. )rijimi i nj hapsire t re adresash efekti"isht
do t thot pr$aktimi i nj proesi t ri.
Flagu Domethnia kur vendoset Dmth. kur fshihet
*-:N`>( )rijon nj thread t ri )rijon nj proes t ri
*-:N`/1 1hare#on umask, root, dhe dir e
puns
Nuk i share#on ato
*-:N`/6-1 1hare#on file deskriptort )opjon file deskriptort
*-:N`1652,N= 1hare#on tabelne mbajtjes s
sinjalit
)opjon tabeln
*-:N`!6= Nhreadi i ri merr !6= e "jetr Nhreadi i ri merr !6= e tij
Figura 10-10. ;itet n sharing`flags bitmap.
;iti '<0N?:FS kontrollon share#imin e root, direktori"e t puns dhe t umask flag.
dhe n se threadi i ri ka hapsirn e tij t adresa"e, n se ky bit "endoset, threadet e rinj
dhe t "jetr share#ojn direktort e puns. )jo do t thot q thirrja $hdir nga nj thread
ndryshon direktorin e puns s nj threadi tjetr, megjithse threadi tjetr mund t ket
hapsirn e tij t adresa"e. N +N6R, nj thirrje $hdir nga nj thread gjithmon ndryshon
direktorin e puns pr threadet e tjer n t njjtin proes, por asnjeher n proeset
tjera. )shtu q ky bit mundson nj lloj share#imi t pamundur n +N6R.
;iti '<0N?:F1<?S sht i ngjashm me bitin '<0N?:FS. N se ky bit "endoset,
threadi i ri share#on file deskriptort e tij me threadet e "jetr, kshtu q thirrja e 6seek
nga nj thread shfaqet tek t tjert, gjithnj pr threadet n nj proes dhe jo n proese t
tjer. N mnyr t ngjashme, '<0N?:S1PV@N/ mundson ose jo shae#imin e tabels
s mbajtjes s sinjalit midis threade"e t rinj dhe t "jetr. N se tabela sht share#uar,
edhe midis threade"e n hapsira t ndryshme adresash, ndryshimi i mbajtsit t nj
sinjali ndikon tek mbajtsit e sinjale"e t tjer. 1 fundi, *-:N`!6= kontrollon n se
threadi i ri merr !6= e tij apo share#on !6= e prindit. )jo "eti ne"ojitet gjat butimit t
sistemit. !roeset user nuk lejohen pr ta mundsuar kt gj.
)jo struktur fine e share#imit sht e mundur sepse -inu%i mirmban struktura t ndara
t dhnash pr gjra t ndryshme t treguara n fillim t seksionit &8.9.9 (parametrat e
skedulimit, pasqyrimi i memorjes, etj.). Nabela e proesit dhe struktura e prdoruesit
"etm pointojn tek kto struktura t dhnash, kshtu q sht e leht pr t br nj entry
t re t tabels s proesit pr do thread t klonuar dhe pr m tepr duhet t pointojn
tek skedulimet e threade"e t "jetra, memorja dhe struktura t tjera t dhnash, apo kopje
t tyre. /akti q struktura fine e share#imit sht e mundur nuk do t thot q ajo sht e
prdorshme gjithnj, "eanrisht n se +N6R nuk e ofron kt funksion. Nj program n
-inu% q i ka kto a"anta'he nuk mund t transferohet n +N6R.
Skedulimi n UNIX
Nani le t shohim algoritmin e skedulimit n +N6R. !r shkak se +N6R gjithmon ka
qen nj sistem me multiprogramim, algoritmi i tij i skedulimit ishte projektuar nga
fillimi pr tu dhn nj prgjigje po'iti"e proese"e interakti"e. sht nj algoritem me
dy ni"ele. ,lgoritmi i ni"elit t ult 'gjedh proeset pasardhse q do ek'ekutohen nga
bashksia e proese"e n memorje dhe q jan gati pr ek'ekutim. ,lgoritmi i ni"elit t
lart 'h"endos proeset ndrmjet memorjes dhe diskut, kshtu q t gjith proeset kan
mundsin pr t qen n memorje dhe pr tu ek'ekutuar.
Bdo "ersion i +N6R ka nj "ersion pak t ndryshueshm t algoritmit t skedulimit t
ni"elit t ult, por shumi$a e tyre jan t mbyllur ndaj ktij q do t prshkruajm ktu.
,lgoritmi i ni"elit t ult prdor shum queue (rradh). Bdo queue shoqrohet me nj
hapsir "lerash prioriteti. !roeset q ek'ekutohen n user mode (maja e i$eberg#ut)
kan "lera po'iti"e. >lerat negati"e kan prioritet maksimal ndrsa "lerat po'iti"e t
mdha kan prioritetin m t ult, si tregohet n figurn &8#&&. >etm proeset q jan
n memorje dhe q jan gati pr tu ek'ekutuar "endosen n queue, meqn se 'gjedhja
duhet br nga kjo bashksi proesesh.
)ur skeduleri (i ni"elit t ult) ek'ekutohet, ai krkon queue duke filluar nga prioriteti i
lart ("lerat m negati"e) derisa t gjej nj queue q sht 'n. !roesi i par n kt
queue 'gjedhja dhe fillimi. ,i lejohet t ek'ekutohet pr pr nj kuant maksimal,
'akonisht &88 msek, ose derisa t bllokohet. N se nj proes e shfryt'on kuantin e tij, ai
"endoset n fund t queue dhe algoritmi i skedulimit ek'ekutohet prsri. )shtu q
proeset me t njjtin prioritet share#ojn *!+ duke prdorur algoritmin round#robin.
Ndonjeher, prioriteti i do proesi rillogaritet me an t formuls q prfshin tre
komponentJ
priority 9 ')E:usage C nice C base
;a'uar n prioritetin e tij t ri, do proes "endoset n queue e treguar n figurn &8#&&,
'akonisht duke e pjestuar prioritetin me nj konstante pr t n%jerr numrin e queue. -e t
shikojm shkurt tre komponentt e formuls s prioritetit.

Figura 10-11. 1keduleri i +N6R ba'uar n nj struktur me multiqueue
')E:usage, paraqet numrin mesatar t tike"e t ors pr sekond q proesi ka pasur
gjat sekonda"e t kaluara. N do tik ore, numeratori i *!+`usage n tabeln e proesit
n ek'ekutim inkrementohet me &. )y numerator s fundi do ti shtohet prioritetit t
proesit duke i dhn atij nj "ler numerike t madhe, duke e "endosur kshtu n nj
queue me prioritet t ult.
(egjithat, +N6R nuk e ndshkon prgjithnj nj proes pr t prdorur *!+, kshtu q
')E:usage prishet me kalimin e kohs. >ersione t ndryshme t +N6R e bjn kt
paksa ndryshe. Nj mnyr q ka qen prdorur sht shtimi i "lers aktuale t
')E:usage numrit t tike"e t marra n t kaluarn \A- dhe re'ultati t pjestohet me dy.
)y algoritem "lerson m shum gN e fundit me x sesa at me w, e kshtu me rradh.
)y algoritem "lersimi sht shum i shpejt sepse ai ka pr t br "etm nj mbledhje
dhe nj 'h"endosje, por dhe skema t tjera "lersimi kan qen prdorur gjithashtu.
Bdo proes ka nj "ler nice t shoqruar me t. >lera default sht 8, por kufiri i lejuar
n prgjithsi sht nga #H8 n TH8. Nj proes mund ta "endos nice n nj "ler n
hapsirn 8 deri H8 me an t thirrjes sistem ni$e. >etm administratori i sistemit mund t
krkoj nj shrbim m t mir se normali (domethene "lerat nga #H8 n #&).
)ur nj proes kalon nga user n kernel pr t br nj thirrje sistem, sht plotsisht e
mundur q proesi duhet t bllokohet para se t prfundoj komplet thirrja sistem dhe t
kthehet n user mode. !r shembull. ai mund t ket br nj thirrje sistem waitpid dhe i
duhet t pres q nj nga fmijt e tij t prfundoj (t dal). ,tij gjithashtu mund ti duhet
pr t pritur pr inputin e terminalit ose q nj disk 6/: t kompletohet, duke thn kshtu
"etm pak nga mundsite e shumta. )ur bllokohet, ai 'h"endoset nga struktura e queue,
meq nuk mund t ek'ekutohet.
(egjithat, kur ngjarja pr t $iln ai po pret ndodh, ai "endoset n queue me nj "ler
negati"e. @gjedhja e queue pr$aktohet nga ngjarja pr t $iln ai po priste. N figurn
&8#&&, disk 6/: sht treguar sikur ka prioritetin maksimal, kshtu q nj proes q sapo
ka le%uar apo shkruar n disk do ta marr *!+ pr ndoshta &88 msek. !rioriteti prkats i
disk 6/:, terminal 6/:, etj. lidhen ngusht me sistemin operati", dhe mund t modifikohen
duke ndryshuar disa konstante n kodin burim dhe duke rikompiluar sistemin. )to "lera
(negati"e) paraqiten nga baBa (base) e formuls s dhn m lart dhe jan t ndara
"emas q proeset e ristartuara pr arsye t ndryshme t jen qartsisht t ndara n
queue t ndryshme.
6deja pas ksaj skeme sht q t marrim shpejt proeset jasht kernelit. N se nj proes
po prpiqet t le%oj nj file n disk, duke e br at t pres nga nj sekond ndrmjet
thirrje"e read do ta ngadalsoj at jasht'akonisht. sht shum m mir ta lem at t
ek'ekutohet menjeher pasi do krkes prmbushet, kshtu q ai mund ta bj hern
tjetr kt m shpejt. N mnyr t ngjashme, n se nj proes sht bllokuar duke pritur
pr nj terminal input, ai sht qart nj proes interakti", dhe si i till duhet ti jepet nj
prioritet i lart sapo sht gati t siguroj q proesi interakti" mori nj shrbim t mir.
N kt aspekt, proeset *!+ bound (ato n queue po'iti"e) marrin nj shrbim t
mbetur kur t gjith 6/: bound dhe proeset interakti"e jan t bllokuara.
Skedulimi n Linux
1kedulimi sht nj nga t paktat aspekte n t $ilat -inu%i prdor nj algoritem t
ndryshm nga +N6R. 1apo kemi par algoritmin e skedulimit n +N6R, kshtu q tani do
t shohim algoritmin n -inu%. !r t filluar, threadet e -inu%#it jan threade kerneli
kshtu q skedulimi ba'ohet tek threadet, dhe jo proeset. -inu%i dallon tre klasa thread#
esh pr qllime skedulimiJ
.eal#time /6/:.
.eal#time round#robin.
Nimesharing
Nhreadet .eal#time /6/: jan me prioritet maksimal dhe nuk jan preemptible me
prjashtim t threade"e .eal#time /6/: t le%uar s fundi. Nhreadet .eal#time round#
robin jan t njjta me threadet .eal#time /6/: me prjashtim q ato jan preemptible
nga ora. N se shum threade .eal#time round#robin jan gati, se$ili ek'ekutohet pr
kuantin e tij, pas t $ilit ato shkojn n fund t lists s threade"e real#time round#robin.
,snjra nga kto klasa aktualisht nuk sht real#time n do kuptim. )to klasa jan
thjesht me prioritet m t lart sesa threadet n klasat standarte n timesharing. ,rsyeja
pse -inu%i i thrret ato n koh reale i pershtatet standartit !&889.M (prapashtesat \real#
time\ n +N6R) i $ili i prdor kto emra.
Bdo thread ka nj prioritet skedulimi. >lera default sht H8, por kjo mund t ndryshohet
duke prdorur thirrjen sistem ni$e ("alue) n nj "ler tek H8 # #alue. (eqn se "alue
duhet t jet n kufinjt nga #H8 n T&G, prioritetet gjithnj "ariojnJ & priority M8.
<llimi sht q $ilsia e shrbimit t jet afrsisht propor$ionale me prioritetin, me
threadet me prioritet t lart q marrin nj prgjigje t shpejt n koh dhe threadet me
prioritet t ult m pas me nj fraksion t madh t kohs s *!+.
!r"e prioritetit, do thread ka nj kuant t shoqruar me t. )uanti sht numri i tike"e
t ors pr t $ilat threadi mund t "a'hdoj ek'ekutimin. 1upo'ojm se ora ($lo$k) ka
shpejtsi &88 2', kshtu q do tik sht &8 msek, i $ili quhet jiffy. 1keduleri i prdor
prioritetin dhe kuantet si m posht. ,i fillimisht llogarit mirsin e do threadi gati duke
ndjekur rregullat e mposhtmJ
if ($lass [ [ real#time) goodness [ &888 T priority I
if ($lass [ [ timesharing SS quantum X 8) goodness [ quantum T priority I
if ($lass [ [ timesharing SS quantum [ [ 8) goodness [ 8 I
N dyja klasat real#time prfshihen tek rregulla e par. N gjitha etiketimet e nj threadi si
real#time e bjn at t ket nj mirsi m t lart sesa threadet timesharing. ,lgoritmi ka
nj "eti t "eantJ n se proesi q u ek'ekutua i fundit ka ende nj sasi kuanti, ai merr
nj pik bonus, kshtu q ai fiton ndonj detyr. 6deja ktu sht q t gjith gjrat do
jen t nj"lershme, sht m shum efiente q t ek'ekutojm proesin paraardhs,
meq faqet e tij dhe blloqet e $a$hes jan m t prshtatshme pr tu ngarkuar.
(e dhnien e ksaj pamje, algoritmi i skedulimit sht shum i thjeshtI kur nj "endim
skedulimi sht br, 'gjidhet threadi me mirsin m t lart. Ndrsa threadi i 'gjedhur
ek'ekutohet, n do tik ore, kuanti i tij inkrementohet me &. *!+ largohet nga threadi n
se nj nga kushtet e mposhtme ndodhJ
)uanti i tij "endoset n 8.
Nhreadi bllokon nj 6/:, semafor ose dika tjetr.
Nj thread me mirsi t lart i bllokuar para bhet gati pr ek'ekutim.
(eqn se kuanti numron pr posht, shpejt apo "on do thread gati do ta har%hoj
kuantin e tij n terren derisa t shkojn t gjith n 8. (egjithat, threadet 6/: bound q
aktualisht jan t bllokuar mund t ken disa kuante. N kt moment skeduleri reset#on
kuantet e t gjith threade"e, gati dhe bllokuar, duke prdorur rregullnJ
kuanti 9 (kuant$2) C prioritet
ku kuanti i ri sht n jiffies. Nj thread q sht shum i kufi'uar n llogaritje 'akonisht
do t mbaroj shpejt kuantin e tij dhe duhet t jet 8 kur kuanti t reset#ohet, duke i dhn
atij nj kuant t njjt me prioritetin e tij. Nj thread 6/:#bound mund t ket nj kuant t
konsiderueshm bosh dhe kshtu merr nj sasi m t madhe kuanti hern tjetr. N se
ni$e nuk sht prdorur, prioriteti do jet H8, kshtu q kuanti tjetr i ardhshm do jet H8
jiffies ose H88 msek. Nga ana tjetr, nj thread 6/: bound me prioritet t lart, mund t
ket nj kuant bosh prej H8 kur kuanti reset#ohet, kshtu q n se prioriteti i tij sht H8,
kuanti i tij i ri do jet H8/H T H8 [ 98 jiffies. >lera asimptotike n jiffies sht sa dy her
prioriteti. 1i pasoj e ktij algoritmi, threadet 6/:#bound marrin kuante t mdha dhe
kshtu mirsia sht m e madhe n threadet $ompute#bound. )jo i bn threadet 6/:#
bound t preferueshme n skedulim.
)arakteristik tjetr e ktij algoritmi sht q kur threadet $ompute#bound po konkurojn
pr *!+, ai q ka prioritet m t lart merr nj sasi m t madhe t saj. !r ta par kt
marrim dy threade $ompute#bound, @, me prioritet H8 dhe, *, me prioritet 7. @ shkon e
para dhe H8 tike m "on e shfryt'on kuantin e tij. ( pas * ek'ekutohet pr 7 kuante.
N kt pik kuantet reset#ohen. @ merr H8 dhe * merr 7. )jo bhet prgjithmon, kshtu
q @ po merr L8Q t *!+ dhe * po merr H8 Q t saj.
10.3.4 Butimi n UNIX
=etajet ek'akte se si +N6R butohet "ariojn nga nj sistem n tjetrin. ( posht do t
shohim shkurt se si butohet M.M;1=, por idet jan pothuajse t ngjashme me t gjitha
"ersionet e tjera. )ur kompjuteri ndi'et, sektori i par i butueshm i diskut (master boot
re$ord) le%ohet n memorje dhe ek'ekutohet. )y sektor prmban nj program t "ogl
(7&H#byte) q ngarkon nj program standalone t quajtur boot nga paisja e butueshme,
'akonisht nj 6= ose 1*16 disk. !rogrami boot fillimisht kopjon "et"eten n nj adres
t lart fikse t memorjes pr t liruar pjesn e poshtme t memorjes pr sistemin
operati".
5jat 'h"endosjes, boot le%on direktorin root t paisjes s butueshme. !r ta br kt,
ai duhet t kuptoj formatin e direktoris dhe file#s sistem, e $ila e bn kt gj. ( pas ai
le%on n kernelin e sistemit operati" dhe kr$en tek ai. N kt moment, boot ka
prfunduar punn e tij dhe kerneli po ek'ekutohet.
)odi fillestar n kernel sht i shkruar n gjuh asembler dhe sht shum i "arur nga
makina. !una tipike prfshin organi'imin e sta$k#ut t kernelit, identifikimin e tipit t
*!+, llogaritja e sasis s .,(#it pre'ent, hakti"i'imi i interrupte"e, akti"i'imi i ((+,
dhe n fund thirrja n gjuhn * e proedurs main pr t startuar pjesn kryesore t
sistemit operati".
)odi n * ka gjithashtu ne"oj pr t br ini$iali'imin, por kjo sht m tepr logjike
sesa fi'ike. ,i starton jasht duke alokuar nj buffer mesa'hi pr t ndihmuar n
eleminimin (debug) e probleme"e n butim. ,shtu si bhet ini$iali'imi, mesa'het
shkruhen ktu pr at se far po ndodh, kshtu q ato mund t n%irren pas nj dshtimi
n butim me an t nj programi t "eant diagnostikues.
!astaj strukturat e t dhna"e n kernel jan alokuar. 1humi$a jan me madhsi fikse, por
paki$a, si sht bufferi i $a$hes dhe disa struktura page table, "aren nga sasia e
disponueshme e .,(#it.
N kt moment sistemi fillon autokonfigurimin. =uke prdorur file#t e konfigurimit q
tregojn far lloj paisjesh periferike mund t jen pre'ent, sistemi fillon kontrollin e
paisje"e pr t par se $ila prej tyre sht aktualisht pre'ent. N se nj paisje e kontrolluar
i prgjigjet kontrollit, ajo i shtohet nj tabele me disa paisje t $aktuara. N se prgjigja
dshton, supo'ohet se paisja mungon dhe q tani e tutje injorohet.
< kur lista e paisje"e ka qen pr$aktuar, dri"erat e paisje"e duhet t jen "endosur. )jo
sht nj pik n t $iln sistemet +N6R ndryshojn disi. N "eanti, M.M;1= nuk mund
t ngarkoj dri"erat e paisje"e dinamikisht, kshtu q ndonj paisje periferike dri"eri i s
$ils nuk sht lidhur statikisht me kernelin nuk mund t prdoret. N kontrast me t, disa
"ersione t tjera +N6R, si sht -inu%, mund ti ngarkoj dri"erat dinamikisht (ashtu si t
gjitha "ersionet (1#=:1 dhe 3indows).
,rgumentat pro dhe kundr pr ngarkimin dinamik t dri"era"e jan interesant dhe t
rndsishm pr tu konstatuar shkurt. ,rgumenti kryesor pr ngarkimin dinamik sht q
"etm nj binar mund t drgohet tek klientt me konfigurime t ndryshme dhe dri"erat
duhet t ngarkohen automatikisht sipas ne"ojs, mundsisht prmes nj rrjeti. ,rgumenti
kryesor kundr ngarkimit dinamik sht siguria. N se ti po punon n nj site t sigurt
si sht ba'a e t dhna"e t nj banke apo nj 3eb ser"er i prbashkt, ju doni ndoshta
ta bni at t pamundur pr t futur kode t rastesishme n kernel. ,dministratori i
sistemit mund ti mbaj burimin e sistemit operati" dhe file#t objekt n nj makin t
sigurt, ku t mbshteten t gjitha sistemet, dhe t transportoj kernelin tek makinat e
tjera prmes nj -,N. N se dri"eri nuk mund t ngarkohet dinamikisht, kjo gj i ndalon
operatort makin dhe t tjert q din passwordin t fusin gjra t rre'ikshme n kernel.
5jithashtu, n site t mdha, konfigurimi hardware njihet tamam n kohn n t $iln
sistemi kompilohet dhe linkohet. Ndryshimet jan jasht'akonisht t mjaftueshme q t
rilinkohet sistemi kur shtohet nj paisje hardware.
Ndonjeher t gjitha hardware#t kan qen konfiguruar, dhe gjja tjetr pr t br sht
pr t ndjekur me kujdes proesin 8, pr t organi'uar sta$k#un e tij, dhe pr ta
ek'ekutuar. !roesi 8 "a'hdon ini$iali'imin, duke br gjra si programimi n koh reale
i ors, montimi i file#"e sistem root, dhe duke krijuar init (proess &) dhe page daemon
(proess H).
1nit kontrollon flagun e tij pr t par n se sht supo'uar t dal nj user apo shum
usera. N rastin e par, ai lejon lindjen (fork off) e nj proesi q ek'ekuton shellin dhe
pret pr kt proes t prfundoj. N rastin e dyt, ai lejon lindjen e nj proesi q
ek'ekuton skriptin e shellit q ini$iali'on sistemin, $etc$rc- t $ilat mund t bjn
kontrollet e lidhjes logjike t file#s sistem, montim t file#"e sistem shtes, t startojn
proese daemon, e kshtu me radh. ( pas ai le%on $etc$ttys, e $ila liston terminalet dhe
disa nga karakteristikat e tyre. !r do terminal akti", ai bn nj kopje t "et"etes, e $ila
bn disa administrime dhe m pas ek'ekuton nj program t quajtur getty.
Petty "endos shpejtsin e rreshtit dhe karakteristika t tjera pr do rresht, dhe m pas
shtypJ
loginJ
n ekranin e terminalit, dhe prpiqet t le%oj emrin e userit nga tastjera. )ur dikush ulet
n terminal dhe formon nj emr tek login, getty prfundon duke ek'ekutuar $bin$login,
programin login. <ogin m pas krkon nj password, e enkripton at, dhe e "erifikon at
prkundrejt passwordit t ruajtur n file, $etc$pass",. N se sht korrekt, login e
'"endson "eten me userin e shellit, i $ili m pas pret pr komandn e par. N se nuk
sht korrekt, login "etm pyet pr nj emr tjetr useri. )y mekani'm ilustrohet n
figurn &8#&H pr nj sistem me tre terminale.
N figur, proesi getty q po punon pr terminalin 8 po pret ende pr nj input. N
terminalin &, nj user ka shtypur nj emr tek login, kshtu q getty ka mbishkruar "eten
me login, i $ili po krkon passwordin. Nj login i suksesshm tashm ka ndodhur n
terminalin H, duke br shellin t shtyp prompt (Q).
Figura 10-12. 1ekuen$a e proese"e pr butimin e disa sisteme"e -6N+R.
+seri m pas shtypJ
$p f& fH
e $ila e bn shellin t bj nj proes fmij dhe ky proes duhet t ek'ekutoj programin
cp. 1helli sht i bllokuar, duke pritur fmijn t prfundoj, koh n t $iln shelli do t
shtyp promptin tjetr dhe ta le%oj nga tastjera. N se useri n terminalin H ka shtypur cc
n "end t cp, programi kryesor i kompilatorit t * duhet t k ishte filluar, q t mund t
kishte br shum proese pr t ek'ekutuar hapa t ndryshm t kompilimit.

You might also like