sisteme shfrytezimi moderne

550
KAPITULLI I HYRJE Një sistem modern kompjuteri përbehet nga një ose me shume proçesore, memorje qendrore, disqe, printera, një tastjere, një monitor, nderfaqe network dhe pajisje të tjera hyrese/dalese (input/output). E thene ndryshe një sistem është shume i komplikuar. Për të shkruar programe qe ndjekin dhe përdorin të gjitha keto komponentë është vertet një pune shume e veshtire. Për ketë arsye komjuterat jane të pajisur me një shtrese software-i qe quhet sistem operativ, detyra e të cilit është të menaxhoje të gjitha keto pajisje (device) dhe të siguroj programeve të përdoruesit një nderfaqe me të thjeshtë me hardware-in. Pra subjekti i ketij libri jane pikerisht keto sisteme. Ne fig.1.1 tregohet menyra e vendosjes ne një sistem operativ. Ne fund kemi hardware- in, i cili ne shumicen e rasteve ka dy ose me shume nivele (shtresa). Ne nivelin me të ulet jane pajisjet fizike, të cilat përbehen nga qarqe të integruara chip-esh, tela (wires), tuba me reze katodike dhe pajisje të tjera të ngjashme me keto. Menyra e konstruktimit dhe e punimit të tyre është pune e inxhinierit elektrik. Ne nivelin pasardhes kemi mikro arkitekturen, ne të cilen pajisjet fizike grupohen për të formuar njësi funksionale. Ky nivel përmban disa regjistra brenda ne CPU dhe një rruge kalimi të dhenash (data path) qe përfshin një njësi arithmetike llogjike (ALU- Arithmetic Logic Unit). Ne çdo cikel clock-u merren dy operanda nga regjistrat dhe me to kryhen veprime ne ALU. Rezultati ruhet ne një ose me shume regjistra. Ne disa makina, menyra e operimit të data path-it kontrollohet nga një software i quajtur mikroprogram. Ne makina të tjera kontrollohet nga qarqe hardware-ike. ( Figure 1.1.Një system llogaritës) Pajisjet Fizike MikroArkitektura(Rregjistrat dhe data path)[Sw and HW controller] Gjuha Makine-ISA level (50 - 300 instr-special device register) Sistemi Operativ(kernel mode) Kompiluesi Editori Inter. komand.(shell) Sist.Bankar Sist.Kontroll Web Browser (Mikrochip,power supply,tel etj) User mode User mode User mode A p lik im e t Programet Sistem Hardware

Upload: blandius

Post on 24-Oct-2015

1.704 views

Category:

Documents


3 download

DESCRIPTION

Modern Operating Systems Shqip

TRANSCRIPT

  • KAPITULLI I

    HYRJE

    Nj sistem modern kompjuteri prbehet nga nj ose me shume proesore, memorje

    qendrore, disqe, printera, nj tastjere, nj monitor, nderfaqe network dhe pajisje t tjera

    hyrese/dalese (input/output). E thene ndryshe nj sistem sht shume i komplikuar. Pr t

    shkruar programe qe ndjekin dhe prdorin t gjitha keto komponent sht vertet nj

    pune shume e veshtire. Pr ket arsye komjuterat jane t pajisur me nj shtrese software-i

    qe quhet sistem operativ, detyra e t cilit sht t menaxhoje t gjitha keto pajisje (device)

    dhe t siguroj programeve t prdoruesit nj nderfaqe me t thjesht me hardware-in. Pra

    subjekti i ketij libri jane pikerisht keto sisteme.

    Ne fig.1.1 tregohet menyra e vendosjes ne nj sistem operativ. Ne fund kemi hardware-

    in, i cili ne shumicen e rasteve ka dy ose me shume nivele (shtresa). Ne nivelin me t ulet

    jane pajisjet fizike, t cilat prbehen nga qarqe t integruara chip-esh, tela (wires), tuba

    me reze katodike dhe pajisje t tjera t ngjashme me keto. Menyra e konstruktimit dhe e

    punimit t tyre sht pune e inxhinierit elektrik.

    Ne nivelin pasardhes kemi mikro arkitekturen, ne t cilen pajisjet fizike grupohen

    pr t formuar njsi funksionale. Ky nivel prmban disa regjistra brenda ne CPU dhe nj

    rruge kalimi t dhenash (data path) qe prfshin nj njsi arithmetike llogjike (ALU-

    Arithmetic Logic Unit). Ne do cikel clock-u merren dy operanda nga regjistrat dhe me

    to kryhen veprime ne ALU. Rezultati ruhet ne nj ose me shume regjistra. Ne disa

    makina, menyra e operimit t data path-it kontrollohet nga nj software i quajtur

    mikroprogram. Ne makina t tjera kontrollohet nga qarqe hardware-ike.

    ( Figure 1.1.Nj system llogarits)

    P ajis jet F izike

    M ikro A rkitektura(R regjis trat d he d ata p ath)[S w and H W c o ntro ller]

    G juha M akine-IS A level (50 - 300 ins tr-s p ec ial d evic e regis ter)

    S is tem i O p erativ(kernel m o d e)

    K o m p ilues i Ed ito ri Inter. ko m and .(s hell)

    S is t.Bankar S is t.K o ntro ll W eb Bro w s er

    (M ikro c hip ,p o w er s up p ly,tel etj)

    U s er m o d eU s er m o d e U s er m o d e

    A p likim et

    P ro gram et

    S is tem

    H ard w are

  • Qellimi i data path-it sht t ekzekutoje disa bashkesi instruksionesh. Disa nga

    keto mund t behen ne nj cikel t vetm data path, t tjerat kerkojne me shume cikle data

    -path. Keto instruksione mund t prdorin regjistrat ose pajisje t tjera hardware-ike.

    Hardware-i dhe instruksionet t para sebashku nga nj programues i gjuhes assembler

    formojne nivelin ISA (Instruction Set Architecture). Shpesh ky nivel quhet gjuhe makine.

    Gjuha makine ka 50 deri ne 300 instruksione, shumica prdoren pr levizur t

    dhena ne makine, pr veprime arithmetike dhe pr t krahasuar vlera. Ne ket nivel

    pajisjet I/O kontrollohen duke ngarkuar vlera ne regjistra special t pajisjeve (device

    register). Pr shembull, nj disk mund t komandohet t lexoje duke ngarkuar ne

    regjistrat e tij vlerat e adreses se diskut, adreses se memories qendrore, numrin e byte-ve

    dhe veprimin (lexim ose shkrim). Praktikisht nevojiten me shume parametra dhe statusi

    qe kthehet nga drive-ri pas nj operacioni t caktuar sht vertet shume kompleks. Vec

    kesaj, ne shume pajisje I/O kohezimi (timing) luan nj rol t rendsishem ne programim.

    Pr t mos patur kete kompleksitet sigurohet nj sistem operativ. Ky prbehet nga

    nj shtrese software qe pjeserisht fsheh hardware-n dhe i jep programuesit pr t punuar

    me nj bashkesi instruksionesh me t prshtatshem.

    Ne krye t sistemit operativ kemi software-t e sistemeve. Ketu kemi interpretuesin

    e komandave (shell), sistemet dritare (window systems), kompiluesit, editoret dhe

    programe t varura nga aplikacione t tilla. sht e rendesishme t kuptojme se keto

    programe nuk jane pjese e sistemit operativ, edhe pse ato sigurohen nga prodhuesit e

    kompjuterave. Kjo sht nj ceshtje kritike dhe delikate. Zakonisht sistemi operativ sht

    ajo pjese e software-it qe vepron ne kernel mode ose supervisor mode. Ky mbrohet nga

    nderhyrjet e prdoruesit neprmjet hardware-it (duke injoruar pr momentin disa

    mikroproesore qe nuk kane fare mbrojtje hardware-ike). Kompiluesit dhe editoret

    veprojne ne user mode. Ne qoft se nj prdorues nuk pelqen nj kompilues, ai mund t

    shkruaje vet nj tjetr t tille, por ai nuk mund t shkruaje nj manovrues clocku t

    interrupteve (clock interrupt handler), i cili sht pjese e sistemit operativ dhe qe

    normalisht mbrohet nga hardware ne menyre qe prdoruesi t mos e modifikoje at.

    Disa here, ky dallim ne sistemet e futura (mund t mos kene kernel mode) apo ne

    sistemet e interpretuara (sistemet operuese t bazuar ne Java t cilt prdorin

    interpretimin pr t ndare komponentt dhe jo hardware-in) mund t zbehet. Pr

    kompjuterat tradicional sistemi operativ sht akoma ai qe vepron ne kernel mode.

    Ne shume sisteme ka programe t cilt veprojne ne user mode, por qe ndihmojne

    sistemin operativ ose prformojne funksione t privilegjuara. Pr shembull, shpesh kemi

    nj program qe i lejon prdoruesit t ndryshoje fjalekalimin. Ky program nuk vepron ne

    kernel mode dhe nuk sht pjese e sistemit operativ, por kryen nj funksion t tille qe ne

    nj fare menyre duhet jet i mbrojtur.

    Ne disa sisteme, kjo ide merret ne nj forme shume ekstreme dhe pjeset e atij qe

    tradicionalisht quhet sistem operativ veprojne ne nj hapesire pr prdoruesin (user

    space). Ne sisteme t tilla sht shume e veshtire t vendosesh nj kufi t qart. do gje

    qe vepron ne kernel mode sht qartsisht pjese e sistemit operativ, por disa programe qe

    veprojne jasht kesaj jane pjese t diskutueshme t tij, ose t paktn jane t lidhur ngusht

    me t.

    Me ne fund, sipr programeve sistem kemi programet aplikative. Keto programe

    jane marre ose jane shkruar nga prdoruesi pr t bere t mundur zgjidhjen e problemeve

  • t ndryshme, si operim me fjalet, llogaritjet inxhinierike apo grumbullimin e

    informacionit ne nj database.

    1.1. CFARE SHT NJ SISTEM OPERATIV?

    Shumica e prdoruesve t kompjuterit kane pasur eksperience me ndonj sistem

    operativ, por sht shume e veshtire t fiksosh se cfare bn saktsisht nj sistem operativ.

    Pjese e problemit sht edhe fakti qe sistemi operativ kryen dy funksione qe rrenjsisht

    nuk kane lidhje me njri tjetrin, zgjerimin e makines (extending the machine) dhe

    menaxhimin e burimeve (managing the recourses). Prgjithesisht duhet t keni degjuar

    vetm pr njren nga keto dy funksione. Le ti shohim t dy funksionet me ne detaje.

    1.1.1. SISTEMI OPERATIV SI NJ EXTENDED MACHINE

    Sic kemi prmendur, arkitektura (bashkesia e instruksioneve, organizimi i

    memorjes, I/O dhe struktura e bus-eve) e shume kompjuterave ne nivelin e gjuhes makine

    sht e thjesht dhe e njohur nga programi, vecanerisht pr pajisjet I/O. Pr ta

    konkretizuar me shume ket le t shohim se si behet nj floppy disc I/O duke prdorur

    chips kontrollues t prshtatshem NEC PD765, t cilt prdoren ne shumicen e

    kompjuterave personal Intel-based.(Prgjat librit ne do t prdorim termat floppy disk dhe diskret ne vend t njri-tjetrit). PD765 ka 16 komanda, secila e specifikuar me nj ngarkese mes 1 dhe 9 byte-sh ne nj device regjistr. Keto komanda jane pr t lexuar

    dhe shkruajtur t dhena, pr t levizur krahun e diskut (disc arm) dhe pr t formatuar

    track-et, si dhe pr t filluar, ndjere, rifilluar, rikalibruar kontrolluesin dhe drive-rat.

    Komandat me themelore jane lexim dhe shkrim, secila prej tyre kerkon 13

    parametra, t paketuar ne 9 bite. Keto parametra specifikojne terma t tille si adresa e

    bllokut t diskut pr tu lexuar, numri i sektoreve pr track, menyra e regjistrimit ne

    mediumin fizik dhe cfare t beje me shenjn e adreses se t dhenave t fshira (deleted-

    data-address-mark). Mos u merzisni ne se nuke kuptoni ket ngatrrese fjalesh, kjo sht

    pikerisht ceshtja paksa konfidenciale. Kur operacioni prmbushet, chip-i kontrollues

    rikthen 23 statuse dhe fusha gabimi t paketuara ne 7 byte. Sikur kjo t mos mjaftonte

    programuesi i floppy diskut duhet gjithashtu t jet vazhdimisht i vemendshem ne se

    motori sht i ndezur apo i fikur. Ne se motori sht i fikur, ai duhet t ndizet (me nj

    vonese t gjat startup-i) para se t dhenat t mund t lexohen apo t shkruhen. Motori

    nuk duhet lene ndezur pr nj kohe t gjat sepse floppy disk demtohet. Ne ket menyre

    programuesit i duhet t merret me kombinimin me t mire t vonesave t gjata t startup-

    it kundrejt demtimit t floppy disk-ut (dhe t humbase t dhena ne to).

    Duke mos u futur ne detaje, duhet t jet e qart se nj pjese e mire e

    programueseve nuk pelqejne t futen thelle ne programimin e floppy disqeve ( ose hard

    disks, t cilt jane po aq kompleks dhe shume t ndryshem). Ajo cfare do nj programues

    sht e thjesht, t merret me abstraktsion t nivelit t lart. Ne rastin e disqeve,

    abstraksion tipik do t ishte prmbajtja e nj bashkesie file-sh me emra ne disk. Secila

    file hapet pr lexim ose shkrim, pastaj lexohet ose shkruhet dhe ne fund mbyllet.

    Programi, i cili fsheh t vertetn e hardware-it nga programuesi dhe shfaq nj

    paraqitje t kendshme dhe t thjesht t file-ve t emeruara, t cilat mund t lexohen apo t

  • shkruhen sht sistemi operativ. Sistemi operativ ashtu sic fsheh hardware-in nga

    programuesi dhe jep nj paraqitje t thjesht t orientuar nga file-t, gjithashtu zhduk

    shume problem si; interrupt-et, kohezusat, menaxhimin e memorjes dhe dukuri t tjera t

    nivelit t ulet. Ne raste t tilla, sistemi operativ ofron nj abstraksion me t thjesht dhe

    me t leht pr tu prdoruar se sa ai i ofruar nga hardware-i prkats.

    Ne ket kendveshtrim, funksioni i nj sistemi operativ sht t prezantoje

    programuesin me ekulivalenten e nj extended machine ose nj makine virtuale qe

    sht me e leht pr tu programuar se hardware-i prkats. Menyra se si sistemi operativ

    arrin ket qellim sht nj histori e gjat, t cilen do ta shohim ne detaja ne vazhdimin e

    librit. Sa pr ta prmbledhur, sistemi operativ siguron nj shumellojshmeri sherbimesh t

    cilt merren nga programet duke prdorur instruksione speciale t quajtura thirrje t

    sistemit (system calls). Me tej ne ket kapitull do t shohim disa nga thirrjet e sistemeve

    me t zakonshme.

    1.1.2. SISTEMI OPERATIV SI NJ RECOURSE MANAGER

    Koncepti i sistemit operativ si nj sigurim t nj nderfaqeje t thjesht pr

    prdoruesit e tij sht nj veshtrim top-down. Nj alternative, veshtrimi bottom-up

    konsiston ne faktin qe sistemi operativ sht pr t menaxhuar t gjitha pjeset e nj

    sistemi kompleks. Kompjuterat modem prbehen nga proesoret, memoriet, kohuesat,

    disqet, mous-et, nderfaqesit e network-ut, printerat dhe nj shumllojshmeri e njsive t

    tjera. Ne pamjen alternative, puna e sistemit operativ sht pr t siguruar nj lokalizim t

    kontrolluar dhe t rradhitur t proesoreve, memorieve dhe njsive I/O prgjat njsive t

    programeve t ndryshem konkurues me ta.

    Imagjinoni se cfare do t ndodhte ne se 3 programe qe veprojne (running) ne t

    njjtin kompjuter t mund t printonim outputin e tyre ne menyre t njpasnjshme ne t

    njjtin printer. Rreshtat e pare mund t ishin nga programi i pare, pasardhesit nga

    program i dyt, pr t vazhduar me ato t programit t tret e keshtu me rradhe.Rezultati

    do t ishte nj kaos. Sistemi operativ mund t sjelle rregull ne t tilla raste duke cuar t

    gjithe outputin e destinuar pr ne printer, ne buffer. Kur nj program mbaron, sistemi

    operativ mund t kopjoje outputin e tij nga disku ku ai ishte ruajtur pr ne printer,

    nderkohe qe ne t njjtn kohe programi tjetr mund t vazhdoje t gjeneroje me shume

    output, duke mos marre ne konsiderate faktin qe output nuk po shkon realisht ne printer

    (akoma).

    Kur nj kompjuter (ose network) ka prdorues t shumfisht, nevoja pr t

    menaxhuar dhe mbrojtur memorien, njsite I/O dhe burimet e tjera sht akoma me e

    madhe, prderisa prdoruesit mund t interferojne t njri-tjetri. Pr me tepr, prdoruesit

    shpesh kane nevoje t ndajne jo vetm hardware-in por edhe informacionin (file-t,

    database, etj), gjithashtu. Ne menyre t prmbledhur kjo pamje e sistemit operativ tregon

    qe detyra e tij kryesore sht t ruaj gjurmet e atij qe po prdor secilin burim, t plotsoj

    kerkesat e burimeve dhe t nderhyje ne kerkesat konfliktuale nga programe dhe prdorues

    t ndryshem.

    Menaxhimi i burimeve prfshin burimet e multipleksuara (sharing) ne dy menyra:

    ne kohe dhe ne hapesire. Kur nj burim sht i multipleksuar ne kohe programe ose

    prdorues t ndryshem zene rradhe ne prdorimin e tij. Fillimisht nj prej tyre e prdor

    burimin, pastaj nj tjetr, e keshtu me rradhe. Pr shembull, vetm me nj CPU dhe

  • programe qe duan t veprojne, sistemi operativ fillimisht lokalizon CPU ne nj program,

    dhe pasi ai t ket vepruar pr nj kohe t gjat, nj tjetr merr prdorimin e CPU, pastaj

    nj tjetr dhe me vone prseri i pari. Prcaktimi se si burimi sht i multipleksuar ne

    kohe, kush e ka rradhen dhe sa do t zgjase sht detyra e sistemit operativ. Nj shembull

    tjetr i multipleksimit ne kohe sht ndarja e printerit. Kur pune shumefishe t printerit

    rradhiten pr nj printer t vetm, duhet marre nj vendim se cfare do t printohet pastaj.

    Lloji tjetr i multipleksimit sht multipleksimi ne hapesire, ne vend qe

    konsumatoret t zene rradhe, secili merr nj pjese t burimit. Pr shembull, memorja

    kryesore normalisht ndahet ndermjet disa programeve vepruese ne menyre qe secili t

    jet resident ne t njjtn kohe (pr shembull, ne menyre qe t zene rradhe pr prdorimin

    e CPU). Duke supozuar qe ka memorje t mjaftueshme pr t mbajtur programe t

    shumefishta sht me eficente t mbash disa programe ne memorie njeheresh se sa nj

    prej tyre, vecanerisht ne se ai ka nevoje vetm pr nj sasi t vogel t totalit. Sigurisht qe

    kjo i rrit principet e ndershmerise, mbrojtjes e keshtu me rradhe, gje e cila sht ne dore

    t sistemit operativ pr ti zgjidhur. Nj burim tjetr i multipleksuar ne hapesire sht hard

    disku. Ne shume sisteme nj disk i vetm mund t mbaje file nga shume prdorues ne t

    njjtn kohe. Lokalizimi i hapesires se diskut dhe ruajtja e gjurmeve t atij qe po prdor

    secilin disk sht nj detyre tipike e menaxhimit t burimeve nga sistemi operativ.

    1.2. HISTORIA E SISTEMEVE OPERATIVE

    Sistemet operative kane qene ne zhvillim prgjat ketyre viteve. Ne seksionet e

    meposhtme do t shohim shkurtimisht disa nga me kryesoret. Meqe sistemet operative

    historikisht kane qene t lidhur ngusht me arkitekturen e kompjuterit ne t cilin

    veprojne, ne do t shohim ne gjeneratat e sukseshme t kompjuterave, ne menyre qe t

    shohim se si kane qene sistemet operative. Menyra e t parit t gjeneratave t sistemit

    operativ ne gjeneratat e kompjuterit sht e patakt, por gjithsesi na krijon disa struktura

    ku prndryshe nuk do t kishim asnj.

    Kompjuteri i pare dixhital sht dizenjuar nga matematicieni anglez Charles

    Babbage (1792 1871). Edhe pse Babbage harxhoi shumicen e jets se tij duke u munduar t ndertoje motorrin analitik (analytical engine) ai nuk mundi kurre t punoje ne t pasi ky ishte shume i varfer mekanikisht dhe teknologjia e ditve t tij nuk mund

    t prodhonte gomat, mekanizmat dhe rrotat e nivelit qe ai kishte nevoje. E panevojshme

    t thuhet, motorri analitik nuk k ishte nj sistem operativ.

    Si nj ane interesante historike, Babbage kuptoi qe do t mund ti duhej nj

    software pr motorrin e tij analitik, keshtu ai pajtoi ne pune nj grua t re qe quhej Ada

    Lovelace, e cila ishte e bija e poetit t madh anglez Lord Byron, si programuesen e pare

    ne bot. Gjuha e programimt Ada, quhet keshtu ne respekt t emrit t saj.

    1.2.1. GJENERATA E PARE. VACCUM TUBES DHE PLUGBOARDS

    Pas prpjekjeve pa sukses t Babbage, sht bere nj progres shume i vogel pr

    konstruktimin e kompjuterave dixhital deri pas lufts se dyt botrore. Rreth viteve 1940,

    Howard Aiken ne Harvard, John von Neumann ne institutin e studimeve t avancuar ne

    Princeton, J. Prespr Eckert dhe William Mauehley ne universitetin e Pennsylvannia dhe

    Konrad Zuse ne gjermani, ndryshe nga t tjeret t gjithe patn sukses ne ndertimin e

  • makinave llogaritse. T parat prdoren prforcues mekanike por ishin shume t

    ngadalta, me cikle kohe t matur ne sekonda. Prforcuesit me vone u zevendesuan me

    vaccum tubes. Keto makina ishin t medha, duke mbushur dhoma t tra me dhjetra

    mijera vaccum tubes, por ato ishin akoma miliona here me t ngadalt se kompjuterat

    personal me t lire ne ditt e sotme.

    Ne ato dit, nj grup i vetm njerzish dizenjuan, ndertuan, programuan, operuan

    dhe ruajtn secilen makine. do programim behej ne gjuhe makine, shpesh duke lidhur

    plugboard-e pr t kontrolluar funksionet kryesore t makines. Gjuhet e programimit

    ishin t panjohura (edhe gjuha assembly ishte e tille). Sistemet operative ishin t

    padegjuar. Operimi i zakonshem nga nj prdorues ishte t hynt pr block t kohes,

    pastaj shkon posht ne dhomen e makines, vendos plugboard-in tij ne kompjuter dhe

    kalon disa ore duke shpresuar qe asnj nga 20000 apo dicka e tille vaccum tubes t mos

    digjen gjat veprimit. Virtualisht t gjithe problemet ishin t drejtuara nga llogaritje

    numerike si studimi i tabelave t sinusit, kosinusit dhe logaritmeve.

    Ne fillimet e para t 1950, rutina kishte zbuluar dicka me prezantimin epunched

    cards. Tani ishte e mundur t shkruaje programe ne card dhe t lexoje ato ne vend t

    prdorimit t plugboard-eve, prndryshe procedura ishte e njjt.

    1.2.2. GJENERATA E DYT (1955-65). TRANZISTORET DHE BATCH SYSTEMS

    Prezantimi i tranzistoreve ne mes t viteve 1950 ndryshoi pamjen rrenjsisht.

    Kompjuterat u bne t besueshem aq sa mund t prodhoheshin dhe tu shiteshin klientve

    duke pritur qe t punonin aq gjat sa t kryenin nj pune ne menyre t suksesshme.

    Fillimisht k ishte nj ndarje shume t qart midis dizenjuesve, ndertuesve, operuesve,

    programueseve dhe personelitt mirembajts.

    Keto makina, tani t quajtura mainframe, ishin t mbyllura ne dhoma

    kompjuterash me ajer t kondicionuar, me staf operatoresh profesional qe i drejtonin.

    Vetm koorporata t medha si agjensite qeveritare ose universitetet mund t prballonin

    cmimin multimilion dollaresh. Pr t bere nj pune (job), (pr shembull, nj program ose

    nj bashkesi programesh), nj programuesi i duhet fillimisht ta shkruaje programin ne nj

    letr (ne FORTRAN ose ne assembler), pastaj ta shenoje (punch) at ne card. Pastaj ai

    duhet t sjelle card deck-un ne dhomen e inputeve dhe tia dorezoje nj operatori dhe t shkoje t pije nj kafe derisa outputi t jet gati.

    Kur kompjuteri mbaron cfaredo lloj pune pr t cilen ishte aktualisht duke

    punuar, nj operator duhet t shkoje t printeri dhe t nxjerre outputin dhe ta coj at ne

    dhomen e outputeve, keshtu qe programuesi mund ti mbledh me vone. Pastaj ai duhet t

    marre nj nga deck cards qe i jane cuar nga dhoma e inputeve dhe t lexoje ne t. Ne

    qoft se duhet kompiluesi FORTRAN, operatorit i duhet ta marre at ne nj kabinet filesh

    dhe t lexoje ne t. Shumica e kohes harxhohet nga operatoret duke levizur ne dhomat e

    makines.

    Duke patur parasysh cmimin e lart t pajisjes, nuk sht pr tu cuditur qe shume

    shpejt njerezit kerkuan menyra pr t ulur (zevendesuar) kohen e humbur. Zakonisht

    zgjidhja me e pranueshme ishte Batch systems. Ideja e kesaj ishte t mblidheshin

    shume pune ne dhomen e inputeve dhe pastaj t lexoheshin ne nj tape magnetik duke

    prdorur kompjuter relativisht t vogel, t pakushtueshem, si IBM 1401, i cili ishte shume

  • i mire ne leximin e cards, ne t kopjuarin e tape-ve dhe ne printimine outputeve, por jo aq

    i mire ne llogaritjet numerike. T tjera makina me t kushtueshme, si IBM 7094,

    prdoreshin pr llogaritjet reale. Kjo situat tregohet ne figuren 1.2.

    fig 1.2 (nj batch sistem i hershem)

    Pas nj ore apo dicka e tille grumbullimi punesh, tape-i kthehet ne fillim dhe

    cohet ne dhomen e makines, ku vendoset ne nj tape drive. Me pas operatori merre nj

    program special (strgjyshi i sistemit t sotm operativ), i cili lexonte nga tape punen e

    pare dhe e kryente at. Outputi ne vend qe t printohej shkruhej ne nj tape t dyt. Pas

    do pune t mbaruar, sistemi operativ lexonte automatikisht punen tjetr nga tape dhe

    fillonte ta kryente at. Kur t gjithe punet e grumbulluara mbaroheshin, operatori hiqte

    tape-t input dhe output, ne tape-in input vendoste punet e reja dhe tape-in output e conte

    ne nj 1401 pr printim offline (jo i lidhur me kompjuterin qendror).

    Struktura e nj pune tipike input tregohet ne figuren 1.3. Filloi me SJOB card, qe

    specifikont maksimumin e kohes se veprimit (max run time) ne minuta, numrin qe duhej

    ngarkuar dhe emrin e programuesit. Pastaj vjen $FORTRAN card, qe i tregon sistemit

    operativ t marre kompiluesin FORTRAN nga tape-i. Me pas vijonte programi qe duhej

    t kompilohej dhe pastaj nj SLOAD card, qe drejtonte sistemin operativ t merrte

    programin objekt t sapo kompiluar.(Programet e kompiluara shpesh shkruheshin ne tape

    t gervishtura dhe duhet t merreshin sakt). Me pas vjen $RUN card, qe i tregon sistemit

    operativ t veproje (run) ne program t ndjekur nga t dhenat. Ne fund, $END card

    shenjon fundin e punes. Keto cards primitive kontrolli ishin paraprijesit e gjuheve

    moderne t kontrollit t puneve dhe interpretuesve t komandave.

    Shume kompjutera t gjenerates se dyt prdoreshim shume pr llogarritje

    inxhinierike dhe shkencore, si zgjidhja e ekuacioneve diferenciale me pjese qe shpesh

    gjenden ne fizike dhe inxhinieri. Ato programoheshin shume ne FORTRAN dhe ne

    gjuhen assembly. T tille sisteme operative ishin FMS (The Fortran Monitor System),

    Sistemi operativ IMB pr 7094.

  • fig.1.3. Struktura e nj pune tipike FMS

    1.2.3. GJENERATA E TRET (1965-1980). ICs DHE MULTIPROGRAMIMI

    Ne fillim t viteve 1960, shumica e kompjuterave prodhoheshin ne dy linja

    prodhimi t vecuara dhe t papajtueshme. Ne njren ane kishim kompjutera shkencore t

    nj shkalle t lart dhe word-oriented, sic sht 7094, t cilt prdoreshin pr llogaritje

    numerike ne shkence dhe inxhinieri. Ne anen tjetr, kishim kompjuterat komercial,

    character-oriented, sic sht 1401, t cilt ishin gjeresisht t prdorur pr klasifikimin e

    tape-ve (shiritit) dhe pr printimin nga bankat dhe kompanit e sigurimit.

    Zhvillimi dhe mirembajtja e dy linjave plotsisht t ndryshme t prodhimi t ishte

    shume e kushtueshme pr prodhuesit. Pr me tepr, shume klient t rinj t kompjuterave

    fillimisht donin nj makine t vogel por me vone kerkonin nj makine me t madhe ne t

    cilen t mund t vepronin t gjithe programet e meparshem por me shpejt.

    IBM tentoi ti zgjidhte t dy problemet ne nj t vetm duke prezantuar keshtu

    System/360. 360 ishte nj seri makinash t pajtueshme ne software duke filluar nga ato

    ne madhesi 1401 deri ne ato me t fuqishem se 7094. Makinat ndryshonin ne cmim dhe

    ne performance (memorje maksimale, shpejtsi proesori, numri i pajisjeve I/O t lejuara

    dhe keshtu). Teorikisht, prderisa shumica e makinave kane t njjtn arkitekture dhe

    bashkesi instruksionesh, programet e shkruara pr nj makine duhet t veprojne edhe ne

    makinat e tjera. Vec kesaj, 360 sht dizenjuar ne menyre qe t merret me t dy llogaritjet

    shkencore dhe komerciale. Nj familje e vetme makinash mund t kenaqe nevojat e t

    gjithe klientve. Ne vitet ne vazhdim, duke prdorur teknologji me moderne IBM pati

    sukses t pajtueshme me at t linjs 360, t njohur si serit 370, 4300, 3080 dhe 3090.

    360 ishte linja e pare kompjuterike e madhe qe prdori qarqe t integruara (JCs),

    keshtu qe krijon nj avantazh ne cmim dhe ne performance kundrejt makinave t

    gjenerates se dyt, t cilt ishin t ndertuar nga transistore individuale. Kjo ishte nj

    sukses i menjehershem dhe shume shpejt ndertues t tjere t fuqishem adoptuan idene e

    krijimit t nj familjeje kompjuterash t tille. Pasardhesit e ketyre kompjuterave jane

    akoma ne ditt e sotme ne prdorim nepr qendra t kompjuterit. Ne ditt e sotme jane

  • shume t prdorur pr menaxhimin e database-ve t medha (pr shembull, sistemet e

    rezervimit t linjave ajrore) ose prdoren si servera faqet World Wide Web qe duhet t

    veprojne me mijera kerkesa pr sekonde.

    Fuqia me e madhe e idese nj familje papritur u be dobesia me e madhe e tij. Qelimi ishte qe t gjithe software-t, duke prfshire ketu edhe sistemin operativ, OS/360

    duhet t punonin ne t gjitha modelet. Duhet t vepronte ne sisteme t vogla, qe shpesh

    zevendesonin 1401 pr kopjimin e card-ave ne tape dhe ne sisteme t medha, qe shpesh

    zevendesonte 7094 pr parashikimin e motit dhe llogaritje t tjera t medha. Duhet t

    ishte mire ne sistemet me pak pjese periferike dhe ne sistemet me shume pjese periferike.

    Duhej t punonte ne mjedise komerciale dhe shkencore. Mbi t gjitha, duhet t ishte

    eficente pr gjithe keto prdorime t ndyshme.

    Nuk k ishte asnj lloj menyre qe IBM (apo ndonj tjetr) t mund t shkruanin

    nj software pr rrefimin e t gjithe ketyre nevojave konfliktuale. Rezultati ishte nj

    sistem operativ jashtzakonisht shume kompleks dhe gjigand, me shume mundesi 2 ose 3

    here magnitude (madhesi) me t madhe se FMS. Prbehej nga miliona rreshta t shkruar

    ne gjuhe assembly nga mijera programues dhe prmbante mijera viruse nga mijera lloje

    t ndryshme virusesh, t cilt kishin nevoje pr nj rrjedhe t vazhdueshme t

    shkarkimeve t reja ne nj prpjekje pr ti korrigjuar ato. do shkarkim i ri korrigjonte

    disa viruse dhe sillte t tjere t rinj, keshtu qe numri me shume mundesi qendronte po i

    njjt.

    Nj nga dizenjuesit e OS/360, Fred Brooks, me pas shkroi nj liber t mpreht

    (Brooks, 1996) qe prshkruante eksperiencat e tij me OS/360. Meqe do t ishte e

    pamundur t prmblidhnim librin ketu, t mjaftohemi duke thene qe kapaku tregon nj

    tufe bishash kryelarta prehistorike n nj grope t erret.

    Vec madhesise dhe problemeve gjigant t tij, OS/360 dhe sisteme operative t

    prodhuar nga prodhues kompjuterash t tjere t ngjashem me keto aktualisht, prmbushen

    nevojat e arsyeshme t shumices se bleresve. Ato gjithashtu popullarizuan mungesa

    teknike primare ne sistemet operative t gjenerates se dyt. Me shum mundesi, me e

    rendesishme nga keto ishte multiprogramimi. Ne 7094, kur puna nderpritej pr t pritur

    pr kompletimin e operimit t nj tape apo pajisjeve I/O, CPU rri kot deri kur I/O t

    mbaroje. Me llogaritjet e medha shkencore t lidhura me CPU, I/O sht e rralle, keshtu

    qe kjo marreveshje e humbur nuk sht domethene se. Me proesimin e t dhenave

    komerciale, koha e pritjes se I/O shpesh mund t jet 80% ose 90% e kohes totale, keshtu

    qe duhet t behej dicka qe t shmangt t ndenjurit kot t CPU.

    Zgjidhje e gjetur ishte ndarja e memories ne disa pjese me nj pune t ndryshme

    pr secilen pjese, sic tregohet ne figuren 1.4. Nderkohe qe nj pune po pret qe t mbaroje

    I/O, nj tjetr pune mund t prdore CPU. Ne qoft se mund t mbaheshin pune

    mjaftueshem ne memorien kryesore ne t njjtn kohe, CPU mund t qendronte e zene

    pothuajse 100% t kohes. Pr t ruajtur ne memorie shume pune menjehere, kerkon

    hardware special pr t mbrojtur do pune nga nderhyrjet dhe demtimet e t tjereve, por

    360 dhe sisteme t tjere t gjenerates se tret ishin pajisur me ket hardware.

  • Fig.1.4. nj sistem multiprogramming me tre pune ne memorie.

    Nj vecori tjetr e rendesishme e sistemeve operative t gjenerates se tret ishte

    aftsia e leximit t puneve nga karta ne disk sapo ato t arrinin ne dhomen e

    kompjuterave. Sapo t mbaronte se vepruari nj pune, sistemi operativ mund t marre nj

    pune t re nga disku ne pjesen qe tani sht bosh dhe kjo pune mund t filloje veprimin.

    Kjo teknike njihet si spooling (nga operimi i menjehershem periferik ne linj) dhe ishte

    e prdorur pr output, gjithashtu. Me spooling, 1401 nuk nevojiteshin me dhe mbajtja e

    tape-ve pothuajse u zhduk.

    Megjithat sistemet operative t gjenerates se tret ishin t prshtatshem pr

    llogaritje t medha shkencore dhe veprime me t dhenat komerciale masive, thellesisht

    ato akoma ishin sisteme batch. Shume prdorues kerkonin akoma ditt e gjenerates se

    pare kur ato e kishin t gjithe makinen pr vet pr disa ore dhe mund t rregullonin

    programet e tyre shume shpejt. Me sistemet e gjenerates se tret, koha mes paraqitjes se

    punes dhe marrjes me pas t outputit ishte disa ore, keshtu vendosja keq e nj presjeje t

    vetme mund t shkaktoje nj komplikim t tille sa mund t deshtoje dhe programuesi t

    humbase nj gjysem dit.

    Kjo deshire pr kohe t shpejt responce (prgjigjeje) hapi rrugen pr timesharing

    (ndarje kohe), variant i multiprogramimit, ku do prdorues ka nj terminal online. Ne

    nj sistem timesharing, ne qoft se jane 20 prdorues logged in dhe 17 prej tyre po

    mendojne, flasin apo po pijne kafe, CPU mund t alokohet vetm pr tre punet qe duan

    sherbim. Pr derisa njerezit pr rregullimin e programeve zakonisht prdorin komanda t

    shkurtra (pr shembull, kompilimi i nj procedure pese faqeshe) me shume se komandat e

    gjata (pr shembull, renditja e nj file me miliona rekorde), kompjuteri mund t siguroje

    sherbim t shpejt dhe interaktiv (bashkepunues) nj numri prdoruesish dhe mbase

    mund t punoje ne pune grupi (batch job) ne background kur CPU po rri kot. Sistemi i

    pare serioz timesharing, CTSS (Compatible Time Sharing System), u zhvillua ne

    M.I.T. ne nj 7094 t modifikuar. Megjithat timesharing nuk u be vertet e popullarizuar

    derisa nevojat pr mbrojtje hardware u prhapen shume gjat gjenerates se tret.

    Pas suksesit t sistemit CTSS, MIT, Bell Labs dhe elektrikut t prgjithshem,

    pastaj nj prodhues i madh kompjuterash vendosi t nise me zhvillimin e computer utility (leverdi e kompjuterit), nj makine qe do t prballonte qindra prdorues timesharing t menjehershem. Modeli i tyre ishte sistemi elektrik i shprndare, kur

    nevojitet fuqi elektrike, vendoset nj prize ne mur dhe ne t do t gjendet aq fuqi sa t

    nevojitet. Dizenjuesit e ketij sistemi, t njohur si MULTICS (Multiplexed Information

  • and Computing Service), parashikuan nj makine super t madhe qe siguronte fuqi

    llogaritse pr do kend ne zonen Boston. Ideja qe makinat shume me t fuqishme se

    mainframe GE-645 do t shiteshin pr mijera dollare, 30 vjet me vone ishte nj trillim

    shkencor.

    MULTICS ishte nj sukses i vogel. Kjo ishte e dizenjuar pr t suportuar qindra

    prdorues ne nj makine pak me shume t fuqishme se nj Intel 386-based PC, ndone se

    grumbullont shume me shume kapacitet I/O. Kjo nuk sht aq e cmendur sa mund t

    duket, prderisa njerezit e asaj kohe dinin t shkruanin programe t vogla dhe eficente,

    aftsi qe me pas sht humbur. Kishte shume arsye qe MULTICS nuk pushtuan botn,

    arsye jo pak e vogel ishte se ishte shkruar ne PL/1, dhe kompiluesi PL/1 ishte shume

    vite vone dhe kur ne fund arrinte mezi punonte. Pr me tepr, MULTICS ishte

    jashtzakonisht ambicioz pr kohen e tij, me shume si motorri analitik i Charles Babbage

    ne shekullin e nentmbedhjet.

    Pr t bere t shkurtr nj histori t gjat, MULTICS prezantoi shume ide baze ne

    literaturen kompjuterike, por kthimi i saj ne nj produkt serioz dhe ne nj sukses

    komercial ishte shume me e veshtire nga cmund ta priste donjri. Laboratori Bell braktisi projektin dhe elektriku i prgjithshem la tresisht biznesin e kompjuterave.

    Megjithat, M.I.T. kembnguli dhe prfundimisht mori MULTICS pr t punuar. Ne fund

    u shit si nj produkt komercial nga kompania qe bleu biznesin e kompjuterave t GEs dhe

    e instaloi ne rreth 80 kompani t medha dhe universitete ne t gjithe botn. Nderkohe qe

    numrat e tyre ishin t vegjel, prdoruesat MULTICS ishin shume besnik. Pr shembull,

    General Motors, Ford dhe agjensia nacionale e sigurimit t shteteve t bashkuara, ne

    fund t viteve 1990 vetm fiknin sistemet MULTICS, 30 vjet pasi MULTICS ishte

    shkarkuar (released)

    Pr momentin, koncepti i nj utiliteti kompjuteri ka deshtuar por ai shume mire

    mund t kthehet ne formen e servera interneti masivisht t centralizuar me t cilt jane

    lidhur makinat user dumb (memec, t heshtur), me shumicen e punes qe ndodh ne

    serverat e medhenj. Motivimi ketu sht qe shumica e njerezve nuk duan t administrojne

    nj sistem kompjuterik nazeli dhe me nj kompleksitet rrits dhe do t preferonin qe at

    pune t behej nga nj skuader profesionistsh pr kompanine qe drejton serverin. E-

    commerce akoma po zhvillohet ne ket drejtim, me kompani t ndryshme qe drejtojne e-

    maile ne servera mikroproesore me t cilat lidhen makinat e thjeshta t klientve.

    Prvec mungeses se suksesit komercial, MULTICS pati nj influence t madhe ne

    sistemet operativ pasues. Ajo sht prshkruar ne (Corbato, 1972; Corbato and

    Vyssotsky,1965; Daley and Dennis, 1968; Organick, 1972; dhe Saltzer,1974). Ajo akoma

    ka nj faqe Web aktive www.mulriciaris.org ne t cilen ka shume informacion pr

    sistemin, dizenjuesit e tij dhe pr prdoruesit e tij.

    Nj zhvillim tjetr i madhe gjat gjenerates se tret ishte rritje e jashtzakonshme

    e minikompjuterave, duke filluar me DEC PDP-1 ne 1961.PDP-1 kishte 4K fjale 18-

    biteshe, por pr 5120000 pr makine (me pak se pese prqind e cmimit t nj 7094)

    shiteshin si hotcakes (shiteshin shume). Pr lloje t vecanta punesh jonumerike, ky ishte

    pothuaj aq i shpejt sa 7094 dhe i dha fillimin nj industrie t plot t re. Ajo shume shpejt

    u ndoq nga nj seri PDP-sh t tjera (ndryshe nga familja IBJvTs) duke arritur kulmin ne

    PDP-11.

    Nj nga shkencetaret e kompjuterave ne laboratorin Bell qe kishte punuar ne

    projektin MULTICS.Ken Thompson, me pas gjeti nj minikompjuter PDP-7 qe nuk po

  • prdorej nga asnj dhe kishte si qellim t shkruant nj version t MULTICS stripped-

    down dhe me nj prdorues. Kjo pune me vone u zhvillua ne sistemin operativ UNIX, i

    cili u be i populluar ne botn akademike, me agjensite qeveritare dhe me shume kompani.

    Historia e UNIX tregohet tjetrkund (pr shembull, Salus, 1994).Ne kapitullin 10

    do t japim pjese nga kjo histori.Tani mjaftohuni duke ju thene se ngaqe kodi burim ishte

    gjeresisht i prdorshem, organizata t ndryshme zhvilluan versionet e tyre t

    pakonkurueshem qe t conin ne nj kaos. Dy nga versionet e medha t zhvilluara jane

    System V nga AT&T dhe BSD (Berkeley Software Distribution) nga universiteti i

    Californise ne Berkeley. Keto gjithashtu kishin variante t vegjel t tyre. Pr t bere t

    mundur shkrimin e nj programi qe mund t veproje ne do sistem UNIX, IEEE zhvilloi

    nj standart pr UNIX, t quajtur POSIX, qe suportohet nga shumica e versioneve UNIX.

    POSIX prcakton nj nderhyrje minimale t thirrjeve sistem qe duhet t prkrahet nga

    sistemet UNIX konformant. Ne fakt, edhe disa sisteme t tjere operativ tashme suportojne

    (prkrahin) nderhyrjen POSIX.

    Si me tutje, sht mire t prmendet qe ne 1987, autori leshoi nj klonim t vogel

    t UNIX, t quajtur MINIX, qe prfshint suportimin e POSIX. sht i prdorshem nj

    liber i cili prshkruan oprimet e brendeshme t tij dhe liston kodet burim ne nj

    appendix (Tanenbaum and Woodhull, 1997), MINIX gjendet free (duke prfshire kodet

    burim) ne internet ne URL www.cs.vu.nl/-ast/minix.html

    Deshira pr prodhimin e nj versioni free t MINIX beri qe studenti Finlandez,

    Linus Torvalds, t shkruant LINUX. Ky sistem u zhvillua ne MINIX dhe fillimisht

    suportont disa dukuri t ndryshme t MINIX (pr shembull, sistemi i filave

    MINIX).Edhe pse pas shume shtrirjesh ne shume menyra ai akoma ruan nj pjese t

    madhe t struktures themelore si MINIX dhe UNIX. Shumica e atyre cfare do t thuhet

    pr UNIX, prgjigjet edhe pr System V, BSD, MINIX, Linux dhe versioneve t tjera,

    gjithashtu edhe klonimeve t UNIX.

    1.2.4. GJENERATA E KATRT (1980-SOT) PERSONAL COMPUTERS

    Me zhvillimin e qarqeve LSI (Large Scale Intgratin), chipe qe prmbajne

    mijera tranzistore ne nj centimetr katror silikoni, linden PC (personal computers). Ne

    terma arkitekturore, personal computers (fillimisht t quajtur microcomputers), nuk ishin

    shume t ndryshem nga minikompjuterat e klases PDP-11, por ne terma t cmimit ishin

    plotsisht t ndryshem. Ne nj departament, ne nj kompani apo universitet ku mundesia

    pr t pasur nj minikompjuter sht h, chipi mikroproesor beri t mundur qe pr n

    individ t kishin h prej tyre nj personal computer t tyrin.

    Ne vitin 1974, kur doli Intel me 8080, CPU i pare 8-bitesh pr qellime t

    prgjithshme, duhej nj sistem operativ pr 8080 ne menyre qe t jet i mundur testimi i

    tij. Intel ia kerkoi qe t shkruant nj t tille, njrit prej konsulentve t tij, Gary

    Kildall.Fillimisht Kildall dhe nj shok i tij ndertuan nj kontrollues pr floppy disqet e

    rinj, Shugarl Associats 8-inch dhe bashkuan floppy disk-un me 8080, duke krijuar

    keshtu mikrokompjuterin e pare me disk. Me pas Kildall shkroi pr t nj sistem operativ

    disk-based t quajtur CP/M (Control Program for Microcomputers). Intel duke mos

    menduar se keta mikrokompjutera kishin shume t ardhme, kur Kildall kerkoi pr t

  • drejtat e CP/M, Intel pranoi kerkesen e tij. Me pas Kildall formoi nj kompani t tijen

    pr t ndihmuar pr zhvillimin dhe shitjen e CP/M, Digital research.

    Ne 1977, Digital Research rishkruan CP/M t tille qe ishte e prshtatshme t

    vepronte (run) ne shume minikompjutera qe prdornin 8080, Zilog Z80h dhe t tjere chipe

    CPU. Shume programe aplikative u shkruan qe t vepronin ne CP/M duke bere keshtu t

    dominont botn mikrollogaritse pr rreth 5 vjet.

    Ne fillim t viteve 1980, IBM dizenjoi PC IMB dhe kerkoi pr software qe t

    vepronte ne t. Njerez t IBM kontaktuan Bill Gats pr licensen e interpretuesit BASIC

    t tij. Gjithashtu i kerkuan atij ne se njiht ndonj sistem operativ qe t vepronte ne PC,

    Bill Gats u sugjeroi atyre t kontaktonin Digital Research, kompanine dominuese t

    sistemeve operative t asaj kohe. Kildall, duke bere sigurisht qe t ishte vendimi me i

    gabuar ne biznes qe njihet ne histori, refuzoi t takohej me IBM duke i derguar nj varts

    madje. Pr me keq, avokati i tij nuk pranoi as t firmost marreveshjen e mbyllur t IBM,

    duke mbuluar PC akoma t paprezantuar. Si pasoje, IBM i kerkoi prseri Gats ne se ai

    mund ti siguronte nj sistem operativ.

    Ne kohen qe IBM u kthye prseri tek Bill Gats, ky i fundit mori vesh qe nj

    ndertues lokal kompjuterash, Seattle Computer Products, kishte nj sistem operativ t

    prshtatshem, DOS (Disk Operating System). Ai iu drejtua atyre dhe u kerkoi ta blint

    (gjoja 50000 $), t cilen ata e pranuan leht. Pastaj Gats i ofroi IBM paketn

    DOS/BASIC t cilen IBM e pranoi. IBM dont disa modifikime t caktuara, keshtu Gats

    punesoi personin qe shkroi DOS, Tim Palerson si nj nenpunes t ri t kompanise t tij,

    Microsoft, qe ti bnte keto modifikime. Sistemi i korrigjuar mori emer tjetr, MS-DOS

    (Microsoft Disk Operating System) dhe shume shpejt dominoi tregun e PC IBM. Nj

    faktor kryesor ishte vendimi i Gats (ne prapaveshtrim, shume i zgjuar) pr t shitur MS-

    DOS kompanive kompjuterike pr tu lidhur me hardware-in e tyre, krahasuar kjo me

    prpjekjen e Kildall pr t shitur CP/M prdoruesve t fundit (end users).

    Ne vitin 1983 IBM PC/AT doli me CPU Intel 80286. MS-DOS ishte prhapur

    tashme dhe CP/M ishte ne ditt e fundit. Me vone MS-DOS u prdor gjeresisht ne 80386

    dhe 80486. Megjithese versioni fillestar i MS-DOS ishte i thjesht, versionet pasues

    prfshine dukuri me t avancuara duke prfshire shume t marra nga UNIX. (Microsoft

    ishte i informuar pr UNIX, madje gjat viteve t para t kompanise shist versione t tij

    pr mikrokompjutera, t quajtura XENI).

    CP/M, MS-DOS dhe sisteme t tjera operative pr mikrokompjuterat e hershem

    ishin t gjithe t bazuar ne shtypjen e komandave nga tastjera. Kjo prfundimish ndryshoi

    ne saj t kerkimit t bere nga Doug Engelbart, ne institutin e kerkimeve ne Stanford ne

    vitet 1960. Engelbart krijoi GUI (Graphical User Inteface), qe plotsoi me windows,

    icons, menus dhe mouse. Keto ide ishin t adoptuara nga kerkues ne Xerox PARC dhe t

    prfshira ne makinat qe ndertonin.

    Nj dit, Steve Jobs qe shpiku kompjuterin Apple ne garazhin e tij, vizitoi PARC,

    pa nj GUI, dhe menjehere kuptoi vlerat e tij potnciale, dicka qe menaxhimi i famshem i

    Xerox se beri (Smith dhe Alexander, 1988). Pastaj Jobs bashkoi nj GUI me nj Apple.

    Ky projekt na coi tek Lisa, qe ishte shume e shtrenjt dhe nga ana tregetare deshtoi.

    Prpjekja e dyt e Jobs, Macintosh i Apple-it, ishte nj sukses i madh jo vetm se ishte

    me i lire se Lisa, por ishte gjithashtu nj user shoqeror (user friendly), qe do t thot qe

    ishte jo vetm pr prdorues qe nuk dinin fare rreth kompjuterave, por edhe pr ata qe

    nuk kishin ndermend t mesonin dicka.

  • Kur Microsoft vendosi t ndertont nj pasues t MS-DOS, u influencua shume

    nga suksesi i Macintosh-it. Ai prodhoi nj sistem t GUI-based t quajtur Windows, qe

    fillimisht veproi ne deget e MS-DOS. Pr rreth 10 vjet, nga 1985-1993, windows ishte

    nj mjedis grafik ne krye t MS-DOS. Sidoqoft, duke filluar qe ne 1995 doli nj version

    i lire (freestanding) i Windows, Windows 95, qe prfshint shume dukuri t sistemit

    operativ ne t, duke prdorur bazat e sistemit MS-DOS vetm qe programet e vjetra MS-

    DOS t boot-oheshin dhe t vepronin (run). Ne 1998 doli nj version pak i modifikuar i

    ketij sistemi, i quajtur Windows 98. Sidoqoft, Windows 95 dhe Windows 98 se bashku,

    akoma prmbajne nj sasi t madhe t Intel 16-bit gjuhe assembly.

    Nj sistem tjetr operativ Microsoft sht Windows NT (New tchnology), i cili

    sht i pajtueshem me Windows 95 ne nj nivel t caktuar. Dizenjuesi kryesor i Windows

    NT ishte David Cuttr, qe ishte gjithashtu nj prej dizenjuesve t sistemit operativ

    VAX/VMS, keshtu qe disa ide t VMS jane t pranishme edhe ne NT. Microsoft priste

    qe versioni i pare i NT t shfarost MS-DOS dhe t gjitha versionet e tjera t Windows

    meqe ai ishte nj sistem superior me rendesi, por nuk e beri nj gje t tille.Vetm me

    Windows NT 4.0 me ne fund ia doli ne nj menyre t mire, vecanerisht ne network-un e

    koorporatave.Versioni i 5 i Windows NT u quajt Windows 2000, i cili doli ne fillim t

    vitit 1999.U krijua me qellimin qe t ishte pasuesi i Windows 98 dhe Windows NT 4.0.

    Ky gjithashtu nuk ia doli mbane plotsisht keshtu qe Microsoft doli akoma me nj

    version tjetr t Windows 98 t quajtur Windows Me (Millenium edition).

    Nj tjetr pretndues kryesor ne botn e personal computers ishte UNIX (dhe

    derivatt e tij t ndryshme). Unix sht me i fuqishmi ne workstations dhe ne kompjuterat

    e tjere high-end si network servers. Ky sht popullarizuar vecanerisht ne makinat e

    fuqizuara nga chip-e RISC me performance t lart. Ne kompjuterat pentium-based,

    Linux po behet nj alternative e populluar e Windows pr studentat dhe pr shume

    prdorues korporatash. (Prgjat librit do t prdorim termin Pentium pr tiu referuar Pentium I, II, III dhe IV).

    Megjithese shume prdorues UNIX, vecanerisht programues me eksperience,

    preferojne nj nderfaqe command-based se nj GUI, pothuajse t gjithe sistemet UNIX

    suporojne sistem me n window i quajtur sistem X Windows, i prodhuar nga MIT. Ky

    sistem trajton menaxhimin baze window, duke lejuar prdoruesit t krijojne, fshijne,

    levizin dhe t rivendose dritaret (windows) me nj mouse. Shpesh nj GUI i kompletuar,

    sic sht Motif, sht i prdorshem pr veprimin e tij ne krye t sistemit X Windows

    duke i dhene UNIX nj paraqitje pak a shume si Machintosh apo Microsoft Windows, pr

    ata prdorues t tij qe duan nj gje t tille.

    Nj zhvillim intresant qe filloi ne mes t viteve 1980 ishte rritja e network-eve

    (rrjetve) t personal computers ku vepronte sistemi operativ, network operating

    systems dhe ai distributed systems (sistemet e shprndara) (Tanenbaum dhe Van

    Sten, 2002). Ne nj sistem operativ network, prdoruesit jane ne dijeni pr ekzistencn e

    shume kompjuterave dhe mund t futen (log in) pr t levizur dhe kopjuar file-t nga njra

    makine t tjetra. Ne nj grup makinash vepron nj sistem operativ lokal i ketij grupi dhe

    ka gjithashtu prdoruesin (prdoruesat) e vet lokal.

    Sistemet operativ network thellesisht nuk jane t ndryshem nga sistemet operativ

    single - proessor (proesor t vetm). Duket qart qe ato kane nevoje pr nj kontrollues

    t nderfaqes se networkut dhe disa software t nivelit t ulet qe ta drejtojne at, aq mire sa

  • programet t arrijne login dhe aksesimin e fileve, por keto gjera shtese nuk e ndryshojne

    strukturen baze t sistemit operativ.

    Nj sistem operativ i shprndare, ne dallim sht i tille qe shfaqet t prdoruesit e

    tij si nj sistem tradicional uniproessor, edhe pse ai aktualisht sht i prbere nga shume

    proesore.Prdoruesit nuk kane pse t jene ne dijeni se ku veprojne (run) programet e

    tyre dhe se ku jane t vendosur file e tyre, t gjitha keto do t behen automatikisht dhe ne

    menyre eficente nga sistemi operativ.

    Sistemet operative e verteta t shprndara kerkojne me shume se thjesht shtimin e

    nj kodi t vogel ne sistemin operativ uniproessor, sepse sistemet e shprndara dhe t

    centralizuara ndyshojne ne rruge kritike. Sistemet e shprndare, pr shembull, shpesh

    lejojne aplikime qe t veprojne ne disa proesor ne t njjtn kohe, keshtu duke kerkuar

    algoritma skedulimi proesoresh me shume kompleks, ne menyre qe t optimizojne

    masen e paralelizmit.

    Vonesat e komunikimit ne network shpesh do t thone qe keto (dhe t tjere)

    algoritma duhet t veprojne me informacion t pakompletuar, t vjetruar madje dhe

    jokorrekt. Kjo situat thellesisht sht e ndryshme nga nj sistem single-proessor ne t

    cilin sitemi operativ ka informacion t kompletuar pr gjendjen e sistemin.

    1.2.5 ONTOGENY RECAPITULATES PHYLOGENY

    Pas botimit t librit t Charles Darvin Origjina e Specieve, zoologjisti gjerman Ernst Haeckel konstatoi se Ontogeny rikapitulon Phylogeny. Me ket ai dont t thosht se zhvillimi i nj embrioni (ontogeny) prserit (recapitulats) evoluimin e species

    (phylogeny). Me fjele t tjera, pas fertilizimit, nj veze njriu shkon nepr etapa pr tu

    bere peshk, nj derr dhe keshtu me rradhe prpara se t kthehet ne nj bebe njri. Biologe

    modern e konsideruan ket si nj simplifikim t madh, por ajo akoma ka nj fare t

    vertet ne t.

    Dicka analoge me ket ka ndodhur edhe ne industrine kompjuterike. do specie e

    re (mainframe, minicompjutr, personal computer, embedded computers, smart cards etj)

    duket sikur po shkon drejt zhvillimit qe kane bere paraardhesit e tyre. Mainframet e pare

    ishin programuar plotsisht ne gjuhe assembly. Edhe programet shume komplekse, sic

    jane kompilatoret dhe sistemet operative, ishin shkruar ne assembler. Ne at kohe dolen

    ne skene minikompjuterat. FORTRAN, COBOL dhe gjuhe t tjera programimi t nivelit

    t lart zakonisht prdoreshin nepr mainframe, por asnj nga minikompjuterat e rinj nuk

    programoheshin ne assembler (pr shkak t memories). Fillimisht kur u shpiken

    mikrokompjuterat (personal computers t hershem), ato gjithashtu programoheshin ne

    assembler edhe pse ne at kohe minikompjuterat programoheshin ne gjuhe programimi t

    nivelit t lart. Edhe kompjuterat palmtop gjithashtu filluan me kode assembly por shume

    shpejt levizen ne gjuhe programimi t nivelit t lart (prgjithesisht sepse punet

    zhvilluese beheshin ne makina t medha). E njjta gje sht e vertet pr smart cards.

    Tani le t shohim sistemet operative. Mainframet e pare nuk kishin mbrojtje

    hardware-ike dhe nuk suportonin multiprogramimin, keshtu qe ne to vepronin sisteme

    operative t thjesht qe merrej vetm me nj program manualisht t ngarkuar ne nj kohe

    t caktuar. Me vone me sigurimin e hardware-it, sistemet operative suportonin t

    merreshin me shume programe njeheresh, dhe me vone kishin aftsi t plota timesharing.

  • Ne fillimet e shfaqjes se minikompjuterave, ato gjithashtu nuk kishin mbrojtje

    hardware-ike dhe ne to vepronte nj program manualisht i ngarkuar ne nj kohe t

    caktuar, edhe pse ne at kohe multiprogramimi ishte i vendosur mire ne botn e

    mainframeve. Gradualisht ato siguruan mbrojtje hardware-ike dhe aftsi qe dy ose me

    shume programe t vepronin ne t njjtn kohe.

    Gjithashtu edhe mikrokompjuterat e pare ishin t aft qe ne to t vepronte nj program i

    vetm ne nj kohe t caktuar, por me vone edhe keto siguruan aftsi t multiprogramimit.

    Ne t njjtn menyre ndodhi edhe me smart cards dhe kompjuterat palmtop.

    Disqet fillimisht u shfaqen ne mainframet e medha, pastaj ne minikompjutera,

    mikrokompjutera dhe keshtu me rradhe. Edhe ne ditt e sotme smart cards nuk kane

    harddisk, por me ardhjen e flash ROM, ato se shpejti do t kene t njjtn ekuivalence me

    t. Kur u shfaqen disqet ne fillim u zhvilluan shpejt sistemet e thjeshta file. Ne CDC

    6600, mainframe me i fuqishem ne bot gjat viteve 1960, userat e sistemeve file kane

    aftsi pr krijimin e fileve dhe me pas e deklarojne at t prhershme, qe do t thot qe ai

    qendron ne disk edhe pas mbylljes se programit t krijuar. Pr aksesimin e nj file t tille

    me vone, nj program duhet t lidhet me nj komande speciale dhe t jape passwordin e

    tij (e plotsuar kur file u be i prheshem). Ne fakt, ishte nj direktori e vetme e ndare nga

    t gjithe prdoruesit. Kjo ishte pr t evituar konfliktet e emrave t fileve. Sistemet e

    fileve t minikompjuterave t hershem kishin nj direktori t vetme t ndare nga t gjithe

    prdoruesit dhe keshtu edhe me sistemet file t hershem mikrokompjuter.

    Memorja virtuale (aftsia pr veprimin e me shume programeve se ne memorien

    fizike) pati nj zhvillim t ngjashem. Fillimisht u shfaq ne mainframe, minikompjutera,

    mikrokompjutera dhe gradualisht filloi ne sisteme t vogla e me t vogla. Networking

    kishte nj histori t ngjashme.

    Ne t gjitha rastet, zhvillimi i software u diktua nga teknologjia.

    Mikrokompjuterat e pare, pr shembull kishin pak a shume 4KB memorie dhe skishin mbrojtje hardware-ike.Gjuhet e nivelit t lart dhe multiprogramimi ishin shume, qe nj

    sistem i vogel, i tille t merrej me to. Meqe mikrokompjuterat u shnderruan ne personal

    computers modern, ato siguruan hardware-in e nevojshem dhe me vone software-in e

    nevojshem t merret me dukuri me t avancuara. Duket se ky zhvillim edhe prvitet

    tjera qe vijne.Gjithashtu fusha t tjera mund t kene t njjtn rrjedhe rimisherimi, por ne

    industrine e kompjuterave duket se ndodh me shpejt.

    1.3. LLOJET E SISTEMEVE OPERATIVE

    E gjitha kjo histori dhe ky zhvillim na kane lene nj shumellojshmeri t gjere

    sistemesh operative, prej t cileve jo t gjithe jane gjeresisht t njohur.Ne ket seksion do

    t prekim shkurtimisht shtat prej tyre. Me vone gjat librit do t shohim disa prej ketyre

    llojeve t ndryshme t sistemeve operative.

    1.3.1. SISTEMET OPERATIVE MAINFRAME

    Ne skajin me t lart sht sistemi operativ pr mainframe, ato kompjutera me

    madhesi sa nj dhome qe akoma gjenden ne koorporatat kryesore t qendrave t t

    dhenave. Keto kompjutera e dallojne veten e tyre nga personal computers ne terma t

    kapacitetit t tyre I/O. Nj mainframe me 1000 disqe dhe mijera gigabyte t dhena nuk

  • sht i pazakonte. Nj personal kompjuter me keto t dhena me t vertet qe do t ishte i

    vjetr.Mainframe gjithashtu po bejne dicka ne prgjigje t serverave Web, servera pr

    faqe tregetare elektronike t nj shkalle t lart dhe servera pr transaksionet biznes-me biznes.

    Sistemet operative pr mainframe jane veshtiresisht t orientuar drejt proesimit

    t shume puneve njeheresh, shumica e t cilave duan madhesi t madhe I/O. Ato ne

    menyre tipike ofrojne tre lloje t ndryshme sherbimesh: batch (grumbull, tufe),

    transaction proessing (prpunimet transaksion) dhe timesharing. Nj sistem batch sht

    nj sistem qe prpunon punet rutine. Prpunimi claims ne nj kompani sigurimi behet ne

    menyre tipike nga sistemet batch. Sistemet e prpunimit transaksion merren me numra t

    medhenj t kerkesave t vogla, pr shembull, prpunimi check (kontrollo) ne nj banke

    apo rezervimet e linjave ajrore. do njsi pune sht e vogel, por sistemi duhet t merret

    me qindra ose mijera pr sekonde. Sistemet timesharing lejojne shume prdorues qe t

    kryejne pune ne nj kompjuter njeheresh, si ndertimin e nj database t madhe. Keto

    funksione jane t lidhur ngusht: Sistemet operative mainframe shpesh i bejne t gjitha

    keto. Nj shembull i sistemit operativ mainframe sht OS/390, pasardhes i OS/360.

    1.3.2. SISTEMET OPERATIVE SERVER

    Nj nivel me posht jane sistemet operative server.Ato veprojne ne servera, t

    cilt prdorin shume personal computers, workstations, ose mainframe.Ato i sherbejne

    shume prdoruesve ne t njjtn kohe mbi nj rrjet dhe lejojne prdoruesit t ndajne

    burimet e hardware-it dhe software-it.Serverat mund t sigurojne sherbim print, sherbim

    file, apo sherbim Web.Krijuesit e internetit kane shume makina server qe t suportojne

    klientt e tyre dhe Web site prdorin servera pr mbledhjen e faqeve Web (Web pages)

    dhe t merren me kerkesat qe vijne. Sistem operativ tipik server sht UNIX dhe

    Windows 2000. Gjithashtu edhe Linux po fiton vend pr servera.

    1.3.3. SISTEMET OPERATIV MULTIPROESSOR

    Nj menyre e zakonshme pr t marre fuqi llogaritse t lart sht t lidhim

    shume CPU ne nj sistem t vetm. Duke u varur saktsisht se me cfare jane lidhur dhe

    cfare ndajne, keto sisteme quhen kompjutera paralel, multikompjutera ose multiproesor.

    Ata duan sisteme operative speciale, por shpesh keto jane variacione ne sistemet

    operative server, me dukuri speciale komunikimi dhe lidhjeje.

    1.3.4. SISTEMET OPERATIVE PERSONAL COMPUTERS

    Kategoria tjetr sht sistemet operative personal computers. Puna e tyre sht

    krijimi i nj nderfaqeje pr nj prdorues t vetm. Ato jane gjeresisht t prdorur pr

    prpunimin e fjales (word proessing), spreadsheets dhe aksesim interneti. Shembull pr

    ket jane windows 98, Windows 2000, sistemi operativ Macintish, dhe Linux. Sistemet

    operative Personal computers jane gjeresisht t njohur, keshtu qe duhet nj prezantim

    shume i shkurtr i tyre. Ne fakt, shume njerez nuk jane ne dijeni t ekzistnces t

    sistemeve t tjere.

  • 1.3.5. SISTEMET OPERATIV REAL-TIME (KOHE REALE)

    Nj lloj tjetr i sistemeve operativ sht ai real-time. Keto sisteme jane

    karakterizuar duke pasur kohen si parametr kyc. Pr shembull, ne sistemet e kontrollit t

    proesit industrial, kompjuterat real-time duhet t mbledhin t dhena rrethe proesit t

    prodhimit dhe ta prdore at pr t kontrolluar makinat ne fabrike. Shpesh takohen

    deadline (viza qe nuk duhet t kalohen). Pr shembull, ne qoftse nj makine leviz posht

    nj rresht assembly, veprime t caktuara ndodhin ne momente t caktuara, ne qoft se nj

    robot saldimi, saldon shume heret apo shume vone, makina do t shkatrrohet. Ne qoft

    se veprimi duhet absolutisht t ndodhe ne nj kohe t caktuar, kemi nj sistem real-time

    hard.

    Nj tjetr lloj sistemi real-time sht sistemi real-time soft, ne t cilin mungesa e

    nj deadline rastesor sht e pranueshme. Audio dixhitale apo sistemet multimedia bien

    ne ket kategori. Sisteme t njohur real-time jane: VxWorks dhe QNX.

    1.3.6. SISTEMET OPERATIV EMBEDDED (TE NDERFUTURA)

    Duke vazhduar posht ne sisteme t vogla e akoma me t vogla, vijme ne

    kompjuterat Palmtop dhe ne sistemet embedded. Nj kompjuter Palmtop ose ndryshe nj

    PDA (Personal Digital Assistant) sht nj kompjuter i vogel qe mund t qendroje ne

    nj xhep kemishe dhe kryen nj numer t vogel funksionesh, si nj liber elektronik

    adresash. Sisteme embedded veprojne ne kompjutera ku pajisjet kontrolluese

    prgjithesisht nuk mendohen si kompjutera, si pr shembull, TV sets, furre mikrovale,

    dhe telefonat mobile. Keto shpesh kane karakteristika t sistemeve real-time por

    gjithashtu kane madhesi, memorie dhe frenim fuqie (power restriction) qe i bejne ato

    speciale. Shembuj pr sisteme operative t tille kemi PalmOS dhe WindowsCE

    (Consumer Electronics)

    1.3.7. SISTEMET OPERATIVE SMART CARD

    Sistemi me i vogel operativ vepron ne smart cards, t cilt jane pajisje me

    madhesine e nj karte krediti qe prmbajne nj chip CPU. Ata kane nj fuqi prpunimi

    shume t ashpr dhe shtrengese memorieje. Disa prej tyre mund t kryejne vetm nj

    funksion, si pagesat elektronike, por t tjere mund t kryejne shume funksione ne t

    njjtn smart card. Shpesh keto jane sisteme proprietar.

    Disa smart cards jane t orientuar ne Java. Ajo cfare kjo do t thot sht qe ROM

    ne smart card ka nj interpretues pr makinen virtuale Java (Java Virtual Machine, JVM).

    Programe t vogla ne Java downloadohen ne card dhe me pas interpretohen nga JVM.

    Disa nga keto card mund t merren me shume programe ne Java ne t njjtn kohe, duke

    cuar keshtu ne multiprogramim dhe ne nevojen pr skedulim. Menaxhimi dhe mbrojtja e

    burimeve gjithashtu behet nj problem kur dy ose me shume programe jane prezent ne t

    njjtn kohe. Me keto probleme duhet t merret sistemi operativ prezent ne card.

  • 1.4. RISHIKIMI I HARDWARE KOMPJUTERIK

    Nj sistem operativ sht i lidhur ngusht me hardware-in e kompjuterit ku ai

    vepron. Ai tregon bashkesine e instruksioneve t kompjuterit dhe menaxhon burimet e

    tij. Qe t punoje, ai duhet t dije nj pjese t madhe t hardware-it, t paktn si shfaqet

    hardware te programuesi.

    Konceptualisht, nj personal computer i thjesht mund t konspektohet ne nj

    model t ngjashem me at t Fig.1.5.CPU, memoria, pajisjet I/O jane t gjithe t lidhur

    nga nj bus sistem dhe komunikojne me njri-tjetrin me anen e ketij bus-i. Personal

    computers modern kane nj strukture me komplekse, duke prfshire ketu edhe shume

    bus-e, t cilt do ti shohim me vone. Sa pr tani ky model sht i mjaftueshem. Ne

    seksionet e ardhshme ne do t rishikojme shkurtimisht keta komponent dhe do t

    ekzaminojme disa prej tyre, ata t cilt projektuesit e sistemeve operative jane t

    interesuar.

    1.4.1. PROESORET

    CPU sht truri i kompjuterit. Ai merre instruksione nga memoria dhe i ekzekuton ata. Cikli baze i do CPU sht marrja e instruksionit t pare nga memoria, t

    dekodoje at pr t prcaktuar tipin dhe operandet e tij, t ekzekutoje at dhe pastaj

    marrja, dekodimi, ekzekutimi i instruksioneve pasues. Ne ket menyre kryhen programet.

    do CPU ka nj bashkesi specifike instruksionesh qe ai mund t ekzekutoje.

    Keshtu nj Pentium nuk mund t ekzekutoje programet SPARC dhe nj SPARC nuk

    mund t ekzekutoje programet Pentium. Ngaqe aksesimi i memorjes, pr t marre nj

    instruksion apo nj fjale data zgjat me shume se ekzekutimi i nj instruksioni, t gjithe

    CPU prmbajne disa regjistra ne brendesi t tyre, pr t mbajtur variablat kryesore dhe

    rezultatet paraprake. Keshtu bashkesia e instruksioneve prgjithesisht ka instruksione pr

  • t marre nj fjale nga memoria ne regjistr, dhe pr t ruajtur nj fjale nga regjistri ne

    memorie. Instruksione t tjere kombinojne dy operanda nga regjistrat, memoria apo t dy

    ne nj rezultat, si mbledhja e dy fjaleve dhe ruajtja e rezultatit ne nj regjistr apo ne

    memorie.

    Vec regjistrave t prgjithshem t prdorur pr t mbajtur variablat dhe rezultatet

    paraprake, shumica e kompjuterave kane disa regjistra speciale qe jane t dallueshem pr

    programuesin. Nj nga keto sht numeruesi i programeve (program counter), qe mban

    adresen e memories t instruksionit pasardhes qe do t merret. Pasi ai instruksion sht

    marre, program counter shenjon pasardhesin e tij.

    Nj tjetr regjistr sht stack pointer, qe shenjon ne krye t stack-ut aktual ne

    memorie. Stack prmban nj frame pr do procedure qe ka hyre por akoma nuk ka dale.

    Nj frame stack i procedures mban keto parametra input, variabla lokale, variabla

    temporan qe nuk mbahen ne regjistr.

    Akoma nj tjetr regjistr sht PSW (Program Status Word). Ky regjistr

    prmban bitin e kodit kusht, qe vendosen instruksione krahasimi, prioritet i CPU, mode

    (user apo kernel), dhe disa bite t tjere kontrolli. Programet user mund t lexojne t plot

    PSW, por ne menyre tipike mund t shkruajne vetm disa nga fushat e tij. PSW luan nj

    rol t rendesishem n thirrjet sistem dhe I/O.

    Sistemi operativ duhet t jet ne dijeni t t gjithe regjistrave. Kur multipleksohet

    ne kohe CPU, sistemi opeartiv shpesh do t ndaloje programin vepruese pr t restartuar

    nj tjetr. do here qe ndalon nj program veprues, sistemi operativ duhet t save-je t

    gjithe regjistrat keshtu qe ata mund t ruhen kur programi t veproje prseri me vone.

    Pr t rritur performancen, projektuesit e CPU kane lene modelin e thjesht t

    marrjes, dekodimit dhe ekzekutimit t nj instruksioni ne nj kohe. Shume CPU moderne

    kane aftsi pr ekzekutimin e me shume se nj instruksioni ne t njjtn kohe. Pr

    shembull, nj CPU mund t ket t ndare njsite e marrjes, dekodimit dhe ekzekutimit

    keshtu qe nderkohe qe po ekzekutohet instruksioni n, mund t dekodoje instruksionin n+1

    dhe t marre instruksionin n+2. Nj organizim i tille quhet pipeline dhe ilustrohet ne

    fig.1.6(a) pr nj pipeline me tre stade. Pipeline me t gjat jane t zakonshem, ne

    shumice e projektimeve pipeline, menjehere qe pipeline merret ne pipeline, ai duhet t

    ekzekutohet. Pipeline u shkakton shkruesve t kompiluesit dhe shkruesve t sistemit

    operative dhimbje koke sepse ato u tregojne atyre kompleksitett e makines ne t cilen

    ndodhen.

  • Nj projektim akoma me i avancaur se pipeline sht nj CPU superscalar, e

    treguar ne fig 1.6 (b). Ne ket projektim, shume njsi ekzekutimi jane prezent, pr

    shembull, nj pr arithmetik integer, nj pr arithmetike me presje notuese dhe nj pr

    opracionet Booleane. Dy ose me shume instruksione merren njeheresh, dekodohen dhe

    hidhen ne nj buffer mbajts deri sa t ekzekutohen. Kur nj execution unit sht i lire

    sheh ne bufferin mbajts ne se ka ndonj instruksion qe ai mund ta marre, dhe ne qoft se

    ka e merr instruksionin nga bufferi dhe e ekzekuton at.Nj implikim i ketij projektimi

    sht se instruksionet e programit shpesh nuk ekzekutohen sipas rradhes.Pr pjesen me t

    madhe, i takon hardware t siguroje qe rezultati i prodhuar sht i njjt me at qe do t

    kishte bere implementimi sekuencial, por, sic mund t shohim, nj sasi e merzitshme e

    kompleksitetit sht ngecur ne sitemin operativ.

    Shumica e CPU, duke prjashtuar ato me t thjeshtat, t prdorura ne sistemet

    embedded kane dy mode, moden kernel dhe at user, sic sht prmendur dhe me pare.

    Zakonisht nj bit ne PSW kontrollon moden. Gjat veprimit t moden kernel, CPU mund

    t ekzekutoje do instruksion ne bashkesine e tij t instruksioneve dhe t prdore do

    njsi hardware-ik. Sistemi operativ vepron ne mode kernel, duke i dhene t drejt pr t

    gjithe hardware-in.

    Ne ndryshim, programet user veprojne ne mode user, qe lejon vetm nj

    nenbashkesi t instruksioneve t ekzekutohen dhe nj nenbashkesi t njsive t prdoren.

    Prgjithesisht, t gjithe instruksionet duke prfshire mbrojtjen I/O dhe t memories jane

    t palejuara ne mode user. Gjithashtu edhe vendosja e bitit t PSW ne kernel mode sht

    e ndaluar.

    Pr t marre sherbime nga sistemi operativ, nj progarm user duhet t beje nj

    thirrje sistemi (system call), e cila si t themi ze ne gracke kernelin dhe kerkon sistemin

    operativ. Instruksioni TRAP ndryshon nga moda user ne at kernel dhe fillon sistemin

    operativ. Kur puna prfundon, kontrolli kthehet t programi user t instruksioni qe vjen

    pas thirrjes sistem. Detajet e proesit t thirrjeve sistem do ti shpjegojme me vone ne ket

    kapitull. Si nj shenim ne tipografi, ne do t prdorim fontin Helvetica me shkronja t

    vogla pr t dalluar thirrjet sistem ne tekstin veprues, si kjo:

    sht e rendesishme t themi se ka trape t tjera vec atyre t instruksioneve pr

    ekzekutimin e nj thirrjeje sistem. Shumica e trapeve t tjere shkaktohen nga hardware

  • pr t lajmeruar situata prjashtuese si prpjekjen pr t pjestuar me 0 apo nj underflow

    t presjes notuese. Ne do rast sistemi operativ merr kontrollin dhe duhet t vendose cfare

    t beje. Disa here programi duhet t prfundoje me nj error. Here t tjera error-i mund t

    injorohet (nj numer i nenrrjedhur mund t vendoset 0). Ne fund, kur programi ka

    shpallur ne advancim se kerkon t merret me kondicione t llojeve t caktuara, kontrolli i

    kalon prseri programit duke e lene at t merret me problemin.

    1.4.2. MEMORIA

    Komponenti i dyt kryesor ne do kompjuter sht memoria. Idealisht, nj

    memorie duhet t jet shume e shpejt (me i shpejt se ekzekutimi i nj instruksioni

    keshtu qe CPU nuk varet nga memoria), shume e madhe dhe shume e lire. Asnj

    teknologji aktuale nuk i prmbush t gjitha keto synime, keshtu qe sht ndjekur nj

    rruge tjetr. Sistemi i memories sht i konstruktuar si nj hierarki shtresash, sic tregohet

    ne fig 1.7.

    Shtresa e siprme prbehet nga regjistrat e brendshem ne CPU. Ato prbehen nga

    i njjti material si ai i CPU dhe jane po ashtu po aq t shpejt sa CPU. Si pasoje, nuk ka

    asnj vone se ne aksesimin e tyre. Kapaciteti i disponueshem i ruajtjes ne menyre tipike

    sht 32x32-bit ne nj

    CPU 32-bit dhe 64x64-bit ne nj CPU 64-bit. Me pak se 1KB ne t dy rastet. Programet

    duhet t menaxhojne regjistrat (t vendosin se cfare duhet t mbahet ne to), ne software.

    Me pas vjen memoria Chace, e cila ne prgjithesi sht e kontrolluar nga

    hardware. Memoria kryesore ndahet ne linja chace, ne menyre tipike 64 byte, me adresa 0

    deri ne 63 ne linjn chace 0, adresat 64 deri ne 127 ne linjn chaces 1 dhe keshtu me

    rradhe. Linjat chace me t prdorura mbahen ne nj chace me shpejtsi t lart e vendosur

    brenda ose shume afer CPU. Kur programi duhet t lexoje nj fjale memorieje, hardware

    chace kontrollon ne se rreshti i nevojitur sht ne chache ose jo. Ne qoft se sht, qe

    quhet chace hit, kerkesa plotsohet nga chace dhe ne memorie nuk dergohet asnj

    kerkese me ane t busit t memories kryesore. Chace hit normalisht kerkon dy cikle

    clocku. Chace misses (deshtim) duhet t shkoje ne memorie me nj penalitet t

    konsiderueshem kohe. Memoria chace sht e limituar ne madhesi qe prkon me koston e

    saj t lart. Disa makina kane dy, madje edhe tre nivele chace, secila me e ngadalt dhe

    me e madhe se ajo para saj.

  • Me pas vjen memoria kryesore. Kjo sht ajo qe bn punet me t renda ne

    sistemin e memories. Memoria kryesore shpesh quhet RAM (Random Access Memory),

    me t vjetrit e quajne at edhe core memory. Aktualisht, memoriet jane dhjet ne qindra

    megabytes dhe duke u rritur ne menyre t shpejt. T gjitha kerkesat e CPU qe nuk mund

    t prmbushen ne chace shkojne ne memorien kryesore.

    Me pas ne hierarki jane disqet magnetike (hard disks). Ruajtja ne disk sht dy

    here me pak e kushtueshme se RAM pr bit dhe shpesh dy here me e madhe gjithashtu.

    Problemi i vetm sht se koha e aksesimit t t dhenave ne t sht rreth tre here me e

    ngadalt. Kjo shpejtsi e ulet sht nga fakti se nj disk sht nj pajisje mekanike, sic

    tregohet ne fig 1.8.

    Nj disk prbehet nga nj ose me shume pajisje metalike ne forme pjat qe

    rrotullohen ne 5400, 7200 ose 10800 rpm. Gjithashtu kane edhe bosht t nj krahu

    mekanik, mbi pjata nga qoshet, t ngjashme me krahun pickup ne nj fonograf t vjetr

    33 rpm. Informacioni shkruhet ne disk ne nj seri qarqesh t koncentruar. Ne do

    pozicion krahu t dhene, secila nga kokat mund t lexoje nj pjese unazore e quajtur

    track. T gjithe tracks sebashku pr nj pozicion krahu t dhene formojne nj cilinder.

    do track sht e ndare ne disa numra sektoresh, ne menyre tipike 512 byte pr

    sektor. Ne disqet moderne, cilindrat e jashtm prmbajne me shume sektore se ata t

    brendeshmit. Pr t levizur krahun nga nj cilinder ne cilindrin me pas kerkon rreth

    1msec. Pr ta levizur at ne nj cilinder t rastesishem kerken 5 deri ne 10 msec, duke u

    varur nga drive-i. Sapo krahu t jet ne

    krahun e duhur, drive-i duhet t prese pr sektorin e nevojitur qe t rotullohet posht

    kokes, nj vone se shtese prej 5 deri ne 10 msec qe varet nga rpm i drive-it. Sapo sektori

    t jet posht kokes, leximi ose shkrimi behet ne ne rate prej 5MB/sec ne disqet e

    ngadalta deri ne 160MB/sec ne ata t shpejtt.

    Shtresa e fundit ne hierarkine e memories sht tape-i magnetik (shiriti magnetik).

    Ky mjet shpesh prdoret si nj rezerve i ruajtjes ne disk dhe pr mbajtjen e bashkesive t

    t dhenave shume t medha. Pr aksesimin e nj tape, fillimisht duhet t vendoset ne nj

  • lexues tape, nga nj person ose nga nj robot (marrja e automatizuar e tape sht e

    zakonshme ne instalimet me database t madhe). Pastaj tape mund t duhet t rrotullohet

    prpara pr t arritur ne bllokun e kerkuar. Kjo mund t kerkoje disa minuta. Plus i madh

    i tape sht jashtzakonisht pak i kushtueshem pr bit dhe i levizshem, qe sht e

    rendesishme pr tape rezerve qe duhet t ruhen jasht ne menyre qe t rezistojne nga

    zjarret, prmbytjet, termetet, etj.

    Hierarkia e memories qe kemi diskutuar sht tipike, por disa instalime nuk i kane

    t gjitha shtresat ose kane t tjera pak t ndryshme (si nj disk optik). Gjithesesi akoma

    ne t gjitha prej tyre, kur nj ulet posht ne hierarki, koha e aksesimit t rastesishem rritet

    dramatikisht, kapaciteti rritet ne t njjtn menyre dramatike dhe kosto pr bit ulet

    pamase. Si pasoje, hierarkit e memories do t jene edhe ne vitet qe vijne.

    Vec llojeve t memorieve t diskutuara me sipr, shume kompjutera kane nj sasi

    t vogel t qendrueshme memorie me aksesim t rastesishem (random access memory).

    Ndryshe nga RAM, memoriet e qendrueshme nuk e humbasin prmbajtjen e tyre kur

    nderpritet energjia. ROM (Read Only Memory) programohet ne fabrike dhe me pas nuk

    mund t ndryshohet. sht e shpejt dhe jo e kushtueshme. Ne disa kompjutera,

    ngarkuesi bootstrap, qe prdoret pr t filluar kompjuterin, ndodhet ne ROM. Gjithashtu,

    disa karta I/O me ROM-in merren me kontrollin e pajisjeve t nivelit t ulet.

    EEPROM (Electrically Erasable ROM) dhe flash RAM jane gjithashtu t

    qendrueshem, por ne ndryshim nga ROM mund t fshihet dhe t rishkruhet. Sidoqoft,

    pr ti shkruar ato kerkon me shume se t shkruash RAM, keshtu ato prdoren ne t

    njjtn menyre si ROM, vetm me nj dukuri shtese qe tani bn t mundur t korrigjosh

    viruset ne programet qe mbajne duke i rishkruar ata ne fushe.

    Akoma nj tjetr lloj memorieje sht CMOS, qe sht e paqendrueshme. Shume

    kompjutera prdorin memorien CMOS pr t mbajtur kohen dhe datn aktuale. Memoria

    CMOS dhe qarku i ores qe inkrementon kohen ne t, jane t fuqizuar nga nj bateri t

    vogel, keshtu qe koha update-et (freskohet) ne menyre t sakt, edhe kur kompjuteri sht

    i pavene ne prize. Memorja CMOS gjithashtu mund t mbaje parametrat e konfigurimit,

    se nga cili disk t boot-oje. CMOS prdoret sepse harxhon pak power saqe bateria e

    vendosur qe ne fabrike mund t zgjase pr disa vjet. Gjithsesi, kur fillon t deshtoje,

    kompjuteri mund t filloje t ket semundjen Alzheimer, qe harron gjerat qe i ka njohur

    pr vite me rradhe, si pr shembull, nga cili disk t boot-oje.

    Le t fokusohemi ne memorien kryesore pr pak. Shpesh sht e pelqyeshme t

    mbash shume programe ne memorie njeheresh. Ne qoft se nj program bllokohet duke

    pritur qe nj lexim disku t kompletohet, nj program tjetr mund t prdore CPU, duke i

    dhene nj shfrytzim me t mire CPU. Gjithesesi, me dy ose me shume programe

    njeheresh ne CPU, duhet t zgjidhen dy probleme:

    1. Si t mbrojme programet nga njri-tjetri dhe tjetrin nga t gjithe ata 2. Si t merret me zhvendosjen

    Shume zgjidhje jane t mundeshme. Megjithat t gjitha prej tyre prfshijne pajisjen e

    CPU me hardware special.

    Problemi i pare sht i dukshem, por i dyti sht pak me delikat. Kur nj program

    kompilohet dhe linkohet (bashkohet), kompiluesi dhe linkuesi nuk e dine se ne cvend t memories fizike do t ngarkohet kur programi sht ekzekutuar. Pr ket arsye, ato

  • zakonisht supozojne qe do t filloje ne adresen 0 dhe aty do t vendoset instruksioni i

    pare. Supozojme se instruksioni i pare merre nj fjale nga memorja ne adresen 10000.

    Tani supozojme se programi i plot dhe t dhenat jane ngarkuar ne adresen 60000. Kur

    ekzekutohet instruksioni i pare, do t deshtoje sepse do ti referohet fjales ne 10000 ne

    vend t fjales ne 60000. Pr t zgjidhur ket problem, duhet ose t zhvendosim programin

    ne kohen e ngarkimit, t gjejme t gjitha adresat dhe ti modifikojme ato, gje e cila mund

    t behet por sht e kushtueshme, ose t (skanim i keq)

    Zgjidhja me e thjesht tregohet ne fig 1.9(a). Ne ket figure shohim nj kompjuter

    t pajisur me dy regjistra special, regjistri baze dhe regjistri limit (Vini re qe ne ket liber,

    numrat qe fillojne me Ox jane ne hexadecimal). Kur nj program sht run, regjistri baze

    vendoset t shenjoje fillimin e tekstit t programit, dhe regjistri limit tregon sa t medhenj

    jane kombinimet e teksitit t programeve dhe t dhenave. Kur nj instruksion duhet t

    merret, hardware kontrollon ne se program counter sht me pak se regjistri limit, dhe ne

    qoft se sht, e shton at ne regjistrin baze dhe shumen e dergon ne memorie. Ne

    menyre t ngjashme kur programi kerkon t marre nj fjale t dhenash (pr shembull,

    nga adresa 10000), hardware automatikisht shton prmbajtjen e regjistrit baze me at t

    adreses dhe shumen e dergon ne memorie. Regjistri baze e bn t pamundur pr nj

    program ti referohet nj pjese memorieje posht tij. Pr me tepr, regjistri limit e bn t

    pamundur ti referohet nj pjese t memories sipr tij. Keshtu kjo skeme zgjidh qe t dy

    problemet, at t mbrojtjes dhe at t zhvendosjes ne saj t dy regjistrave t rinj dhe nj

    rritje t vogel t ciklit t kohes (pr t prformuar kontrollin dhe shtimin limit (limit

    check and addition))

  • Rezultati i kontrolluar dhe i hartuar sht ne konvertimin e nj adrese t gjeneruar

    nga programi, e quajtur adrese virtuale, ne nj adrese t prdorur nga memoria, e quajtur

    adrese fizike. Ajo qe bn kontrollin dhe hartimin quhet MMU (Memory Management

    Unit). sht e vendosur mes CPU-se dhe memories.

    Nj MMU me e sofistikuar tregohet ne fig 1.9(b). Ketu ne kemi nj MMU me dy

    cift regjistrash baze dhe limit, nj pr tekstin e programit dhe nj pr t dhenat. Program

    counter-i dhe t gjitha referencat e tjera t tekstit t programit prdorin ciftin e I-re dhe

    ato t t dhenave prdorin ciftin II-t. Si rrjedhim, tani sht e mundur t kesh shume

    prdorues qe ndajne t njjtin program me nj kopje t vetme ne tij ne memorie, gje jo e

    mundur me skemen e pare. Kur programi 1 po vepron, katr regjistrat jane t vendosur t

    shenuar me shigjeta ne t majt t fig 1.9(b). Kur po vepron programi 2, ato jane

    vendosur t shenuar me shigjeta ne t djatht t figures. Ekzistojne MMU akoma me t

    sofistikuara. Disa prej tyre do ti shohim me vone ne ket liber. Ajo qe duhet t veme re

    ketu sht qe menaxhimi i MMU-se duhet t jet nj funksion i sistemit operativ,

    prderisa prdoruesit nuk mund t jene t besuar se e bejne ne menyre korrekte.

    Dy aspekte t sistemit memorie kane efekt kryesor ne performance. Se pari,

    chace-t fshehin shpejtsine relativisht t ulet t memories. Kur nj program ka qene ne

  • veprim pr pak kohe, chace sht plot me linjat chace t ketij programi, duke dhene nj

    performance t mire. Sidoqoft, kur sistemi operativ ndryshon nga njri tek tjetri, chace

    mbetet plot me linjat chace t programit t pare. Ato qe duhen nga programi i pare duhet

    t merren nj e nga nj nga memoria fizike.

    Se dyti, kur behet ndryshimi nga nj program t tjetri, regjistrat MMU duhet t

    ndryshohen. Ne fig 1.9(b), duhet t risetohen vetm 4 regjistra, qe nuk sht shume

    problem, por ne MMU t verteta, duhet t ringarkohen shume regjistra, ne menyre

    dinamike apo ne menyre eksplicite, sipas nevojes. Secila rruge qe duhet ndermarre

    kerkon kohe. Morali i kesaj sht se ndryshimi nga njri program t tjetri, sic quhet

    context switch, sht nj biznes me t vertet shume i kushtueshem.

    1.4.3. PAJISJET I/O

    Memorja nuk sht i vetmi burim qe duhet t menaxhohet nga sistemi

    operativ.Pajisjet I/O gjithashtu bashkeveprojne ngusht me sistemin operativ. Sic e pame

    ne fig 1.5, pajisjet I/O prgjithesisht prbehen nga dy pjese: kontrolleri dhe pajisja vet.

    Kontrolleri sht nj chip ose nj bashkesi chipesh ne nj plugboard qe fizikisht

    kontrollon pajisjen. Ai pranon komanda nga sistemi operativ, pr shembull, t lexoje t

    dhena nga pajisja dhe ti marre ato.

    Ne shume raste, kontrolli aktual i pajisjes sht shume i komplikuar dhe i

    detajuar, keshtu qe sht puna e kontrollerit ti paraqese nj nderfaqe me t thjesht

    sistemit operativ. Pr shembull, nj kontroller disku mund t pranoje nj komande leximi

    pr sektorin 11206 nga disk 2. Pastaj kontrolleri duhet t konvertoje ket numer linear

    sektori ne nj cilinder, sektor dhe koke (head). Ky konvertim mund t jet i komplikuar

    nga fakti qe cilindrat e jashtm kane me shume sektor se ato t brendeshmit dhe disa

    sektor t demtuar jane hartuar ne t tjere t rinj. Pastaj kontrolleri duhet t prcaktoje se

    kraku i diskut ne cilin cilinder sht dhe ti jap atij nj sekuence pulsesh pr t levizur

    brenda apo jasht numerit t kerkuar t cilindrave. Atij i duhet t prese deri kur sektori i

    duhur t rrotullohet posht kokes dhe pastaj t filloje leximin dhe ruajtjen e biteve, ashtu

    sic ato vijne nga drive, t heqe paraardhesit dhe t llogarise checksum-in. Se fundmi, ai

    duhet t grumbulloj bitet hyrese ne fjale dhe ti ruaj ne memorie. Pr t bere gjithe ket

    pune, kontrollerat shpesh prmbajne kompjutera embedded qe programohen pr t

    bere punen e tyre.

    Pjesa tjetr sht pajisja aktuale vet. Pajisjet kane nderfaqe t thjeshta, sepse nuk

    mund t bejne shume dhe ti bejne ato standarte. Kjo e fundit duhet sepse pr shembull

    do kontroller disk IDE mund t merret me do disk IDE.IDE qe sht Integrated Drive

    Electronics, sht tipi standart i diskut ne Pentium dhe disa kompjuterave t tjere.

    Prderisa nderfaqja aktuale e pajisjes sht e fshehur pas kontrollerit, gjithe ajo cka sheh sistemi operativ sht nderfaqa t kontrolleri qe mund t jet shume e ndyshme nga

    nderfaqja e pajisjes.

    Meqe do lloj kontrolleri sht i ndryshem, duhen software t ndryshme pr t

    kontrolluar secilin nga ato. Software qe merret me kontrollerin, duke i dhene atij

    komanda dhe duke pranuar prgjigjet, quhet driveri i pajisjes (device driver). Ndertuesit e

    kontrollerave batch duhet t pajisin nj driver pr secilin sistem operativ qe suportojne.

    Keshtu pr shembull, nj skaner mund t shkoje me nj driver pr Windows 98, Windows

    2000 dhe UNIX.

  • Driveri, qe t veproje ne moden kernel, duhet t vendoset ne sistemin operativ.

    Teorikisht, driverat mund t veprojne edhe jasht modes kernel, por pak sisteme aktuale e

    suportojne ket mundesi sepse ai kerkon aftsine pr t lejuar nj driver pr hapesiren e

    prdoruesit, pr t mund t aksesuar pajisjen ne nj menyre t kontrollueshme, dukuri e

    suportuar rralle. Ka tre menyra qe driveri mund t vendoset ne kernel. Menyra e pare

    sht t rilidhesh (relink) kernelin me nj driver t ri dhe pastaj ta reboot-osh sistemin.T

    shumt jane sistemet UNIX qe punojne ne ket menyre. Menyre e dyt sht qe t bejme

    nj hyrje (entry) ne nj file t sistemit operativ duke i treguar qe i duhet nj driver dhe

    pastaj reboot-ojme sistemin. Ne kohen e boot-imit, sistemi operativ shkon dhe gjen

    driverat qe i duheshim dhe i merr ato. Ne ket menyre punon Windows. Menyra e tret

    sht qe sistemi operativ t jet ne gjendje t pranoje drivera t rinj gjat veprimit dhe ti

    instaloje ata pa patur nevojen qe ti boot-oje. Kjo menyre ka pasur prdorim t pakt por

    ne ditt e sotme po gjen me shume shtrirje pr prdorim. Pajisje t tilla si USB apo IBEB

    1394 (t diskutuara me pare) gjithmone duan drivera t ngarkuara ne menyre dinamike.

    do kontroller ka nj numer t vogel regjistrash qe prdoren pr t bere t mundur

    komunikimin me t. Pr shembull, nj kontroller disku minimal mund t ket regjistra pr

    t specifikuar adresen e diskut, adresen e memories, numrin e sektoreve dhe drejtimin

    (lexim apo shkrim). Pr aktivizimin e kontrollerit, driveri merr nj komande nga sistemi

    operativ dhe me pas e prkthen at ne vlerat e duhura pr t shkruar ne regjistrat e

    pajisjes.

    Ne disa kompjutera, regjistrat e pajisjes jane hartuar ne hapesiren e adresave t

    sistemit operativ, keshtu ato mund t lexohen apo shkruhen si fjale t zakonshme t

    memories. Ne kompjutera t tille nuk nevojitet asnj instruksion special I/O dhe

    programet user mund t mbahen larg nga hardware-i duke mos vendosur keto adresa

    memorjeje ne shtrirje t tyre (pr shembull, duke prdorur regjistrat baze dhe regjistrat

    limit). Ne kompjutera t tjere, regjistrat e pajisjes jane ne nj hapesire speciale t portave

    I/O, ku secili regjistr ka nj adrese port. Ne keto makina, instruksione speciale IN dhe

    OUT jane t disponueshem ne moden kernel pr t lejuar driverat t lexojne apo t

    shruajne regjistrat. Skema e meparshme eliminon nevojen e instruksioneve speciale I/O

    por prdor nj pjese t hapesires se adresave. Kjo e fundit nuk prdor fare hapesire t

    adresave por kerkon instruksione speciale. Qe t dy keto sisteme jane gjeresisht t

    prdorshem.

    Inputi dhe outputi mund t behen ne tre menyra t ndryshme. Ne metoden me t

    thjesht, nj program user leshon (kryen) nj thirrje t sistemit, t cilen kerneli e

    shnderron me pas ne nj thirrje procedure pr driverin e duhur. Me pas driveri fillon I/O

    dhe qendron ne nj right loop dhe ne menyre t vazhdueshme duke i bere sondazh

    pajisjes t shoh ne se sht bere (zakonisht ka disa bit qe tregojne se pajisja sht akoma

    e zene). Kur I/O ka prfunduar, driveri vendos t dhenat aty ku ato nevojiten (ne qoft se

    ka t tille) dhe kthehet. Me pas sistemi operativ i kthen kontrollin thirresit. Kjo metode

    quhet busy waiting.

    Metoda e dyt sht qe driveri t startoje pajisjen dhe ti kerkoje atij ti jape nj

    interrupt kur t mbaroje. Ne at pike driveri kthehet. Pastaj sistemi operativ, ne qoft se

    nevojitet, bllokon thirresin dhe sheh pr ndonj pune tjetr pr t bere. Kur kontrolleri

    hap fundin e transferimit, pr t sinjalizuar kompletimin gjeneron nj interrupt.

    Interruptet jane shume t rendesishme ne sistemin operativ, keshtu qe le t

    ekzaminojme me afer ket ide. Ne fig 1.10(a). shohim nj proes tre-hapash pr I/O. Ne

  • hapin e pare, driveri i tregon kontrollerit duke shkruar ne regjistrat e pajisjes se tij se

    cfare t beje. Me pas kontrolleri starton pajisjen. Kur kontrolleri ka mbaruar shkrimin ose

    leximin e numrave t byteve qe i sht caktuar t transferoje, sinjalizon chip kontrollerin

    e interruptit duke prdorur linja busi t caktuara ne hapin e dyt. Ne qoft se kontrolleri i

    interruptit sht i prgatitur pr t pranuar interruptin (i cili mund t mos jet ne qoft se

    sht i zene me nj tjetr me prioritet me t lart), ai shpall nj pin chipin CPU-se duke e

    informuar at, ne hapin tret. Ne hapin e katrt, kontrolleri interruptit vendos numrin e

    pajisjes ne bus ne menyre qe CPU mund ta lexoje at dhe t dije se cila pajisje ka

    mbaruar (shume pajisje mund t jene ne veprim ne t njjtn kohe).

    Sapo CPU ka vendosur t marre interruptin, program counter-i dhe pastaj PSW,

    ne menyre tipike shtyhen ne stack-un aktual dhe CPU ndryshon ne kernel mode. Numri i

    pajisjes mund t prdoret si nj index ne pjese t memories pr t gjetur adresen e

    mbajtsit t interruptit pr pajisjen. Kjo pjese e memories quhet interrupt vector. Sapo

    mbajtsi i interruptit (pjese e driverit pr pajisjen qe sinjalizon interrupt) t ket startuar,

    ai heq stacked program counter dhe PSW dhe i ruan ato, pastaj pyet pajisjen pr t

    mesuar statusin e saj. Kur mbajtsi i interruptit ka prfunduar, ai kthehet ne programin

    user qe me pare ishte ne veprim, ne instruksionin e pare qe akoma nuk ishte ekzekutuar.

    Keto hapa tregohen ne fig.1.10(b).

    Metoda e tret pr t bere punet I/O prdor nj chip special DMA (Direct Memory

    Access) qe mund t kontrolloje rrjedhen e biteve mes memories dhe disa kontrollerave pa

    nderhyrjen konstant t CPU. CPU e nderton chipin e DMA, duke i treguar sa byte t

    transferoje, duke prfshire adresat e pajisjes dhe memories dhe drejtimin, dhe e le t

    vazhdoje. Kur behet chipi i DMA, ai shkakton nj interrupt, i cili trajtohet sic thame me

  • sipr. Hardware-i DMA dhe I/O ne prgjithesi do t prshkruhet me shume ne detaje ne

    kapitullin 5.

    Shpesh interruptet mund t ndodhin ne momente t paprshtatshme, pr shembull,

    kur nj tjetr mbajts interrupti (interrupt handler) sht ne veprim. Pr ket arsye, CPU

    ka nj menyre qe t beje t paaft interruptet dhe pastaj ti aftsoje prseri me vone.

    Nderkohe qe interruptet jane joaktive, do pajisje mund t gjeneroje interrupte, por CPU

    nuk nderpritet deri sa t aktivizoje prseri interruptet. Ne qoft se, pajisje t shumta

    mbarojne qe interruptet jane t caktivizuar, kontrolleri i interruptit vendos se cilin t lere t parin, zakonisht bazuar ne prioritetin statik i shenuar t do pajisje. Pajisja me prioritet

    me t lart fiton.

    1.4.4. BUSET

    Organizimi i figures 1.5. ishte i prdorur pr vite me rradhe ne minikompjutera

    dhe gjithashtu ne personal computer IBM. Gjithesesi, me arritjen e proesoreve dhe

    memories me t shpejt, aftsia e nj busi t vetm (dhe sigurisht busi IBM PC) pr tu

    marre me t gjithe trafikun ishte sforcuar deri ne piken me t fundit. Dicka duhet t

    behej. Si rezultat i kesaj, u shtuan buse shtese, pr t pajisje I/O me t shpejta dhe

    gjithashtu pr t minimizuar trafikun CPU-memorie. Si pasoje e ketij evoluimi, nj sistem

    i madh Pentium aktualisht Jooks, dicka si ne fig.1.11.

  • Sistemi ka te buse (chace, local, memory, PCI, SCSI