Sistemet Operative - PDF
Document Details

Uploaded by MonumentalSard9511
UBT - Kolegji për Biznes dhe Teknologji
Tags
Summary
Ky dokument është një përmbledhje e sistemeve operative, duke përfshirë konceptet themelore, unazat e mbrojtjes, proceset, CPU dhe shumë më tepër. Ai përmban gjithashtu pyetje për të testuar njohuritë.
Full Transcript
SISTEME OPERATIVE PJESA 1 : 1.Çfarë është Sistemi Operativ? 1. Sistemi Operativ është një softuer i cili menaxhon harduerin e një kompjuteri dhe sistemi operativ ofron një bazë për programet aplikative dhe e luan rolin e një ndërmjetësuesi në mes të shfrytëzuesit të kompjuterit dhe harduerit të k...
SISTEME OPERATIVE PJESA 1 : 1.Çfarë është Sistemi Operativ? 1. Sistemi Operativ është një softuer i cili menaxhon harduerin e një kompjuteri dhe sistemi operativ ofron një bazë për programet aplikative dhe e luan rolin e një ndërmjetësuesi në mes të shfrytëzuesit të kompjuterit dhe harduerit të kompjuterit. 2.Një sistem kompjuterik mund të ndahet në katër pjesë, cilat janë ato? 2. Ato janë: 1. Hardueri 2. Sistemi operativ 3. Programet aplikative dhe 4. Shfrytëzuesi. 3. A është sistemi operativ një program kontrolli , dhe çfarë menaxhon një program kontrolli? 3. Sistemi operativ është një program kontrolli. Dhe një program kontrolli menaxhon ekzekutimin e programeve të shfrytëzuesit për të parandaluar gabimet dhe përdorimin jo të duhur të kompjuterit. Dhe merret posaçërisht me punën dhe kontrollin e pajisjeve hyrëse/dalëse. 4. Cili është qëllimi themelor i sistemeve kompjuterike? 4. Qëllimi themelor i sistemeve kompjuterike është ekzekutimi i programeve dhe të bëjnë të lehtë zgjidhjen e problemeve të shfrytëzuesit. 5. Çfarë është kerneli , dhe krahas kernelit , cilat janë dy lloje të softuerëve? 5. Kerneli do të thotë pjesa në të cilën ekzekutohen proceset. Dhe krahas kernelit, janë edhe dy lloje të softuerëve pra: programet e sistemit, që janë pjesë e sistemit operativ, por që nuk janë domosdosmërisht pjesë e kernelit. Dhe programet aplikative, që përshijnë të gjitha programet që nuk janë pjesë e sistemit operativ. 6. Çfarë është middleweare? 6. Middleware është një bashkësi e kornizave (ose frameëorks)qe jan për zhvillim të softuerit dhe që ofrojnë shërbime shtesë për zhvilluesit e aplikacioneve. 7. Kompjuteri ka nevojë për një program fillestar që të fillojë punën, cili është ai program dhe cili është më i thjeshti? 7. Programi fillues i njohur si programi bootstrap zakonisht është i thjeshtë.Dhe zakonisht ruhet brenda harduerit në nje firmware. Dhe i fillon të gjitha pjesët e sistemit kompjuterik, që nga regjistrat e CPU-së e deri te kontrolluesit e pajisjeve te përmbajtjes se memories. Programi bootstrap duhet patjetër të jetë në gjendje të vendosë sistemin operativ në memorien DRAM dhe të fillojë punën e sistemit. Për të realizuar këtë punë, programi bootstrap duhet të gjejë kernelin e sistemit operativ (në nje disk SSD ose ne nje Hardisk) dhe pastaj të vendosë atë në memorien DRAM. 8. Çfarë janë programet janë daemon? 8. Programet daemon, ekzekutohen gjatë tërë kohës qe është duke u ekzekutuar kernel. 9. Çfarë është ndërprerja trap? 9. Ndërprerja trap (ose exception), e cila është një ndërprerje e shkaktuar nga softuer ose nga ndonjë gabimi mundshem (për shembull, pjesëtimi me zero ose qasje jo valide në memorie) ose ndonjë kërkesë specifike e një programi të shfrytëzuesit që një shërbim i sistemit operativ të kryhet duke ekzekutuar një operacion të veçantë të njohur si system call (thirrje sistemore). 10. Sqaro qfar eshte multiprogramimi dhe multitasking? 10. Multiprogramimi e rritë përdorimin e CPU-së, duke i bërë të lumtur edhe shfrytëzuesin, me organizimin e ekzekutimit të programeve ashtu që CPU-ja në çdo kohë ka një program gati për ekzekutim. Një sistem me multiprogramim, një program që është duke u ekzekutuar njihet si proces. Dhe Multitasking është një zgjerim i natyrshëm i multiprogramimit. Në sistemet me multitasking, CPU ekzekuton shumë procese duke kaluar nëpër to, por dhe kalimi bëhet shpesh, duke i ofruar shfrytëzuesit një kohë reagimi të shkurtër. 11. Cilat janë dy mënyrat e ndara të punës, dhe sqaro ? 11. Dy mënyra të ndara të punës jane: mënyra e shfrytëzuesit (ose user mode) dhe mënyra e kernelit (ose e njohur ndryshe edhe si mënyra e mbikëqyrësit (apo si supervisor mode), dhe system mode ose privileged mode). Një bit, i quajtur si biti i mënyrës (ose mode bit), i shtohet harduerit të kompjuterit për të treguar mënyrën aktuale të punës: kerneli (me bitin 0) ose shfrytëzuesi (me bitin 1). Dhe përmes bitit të mënyrës, mund të dallojmë një punë që është duke u kryer për sistemin operativ dhe një punë që është duke u kryer për shfrytëzuesin. 12. Si bëhet kalimi nga user mode në kernel mode ? 12. Në kohën e fillimit të punës së sistemit, hardueri fillon në mënyrën e kernelit. Dhe në vazhdim, sistemi operativ vendoset në memorien DRAM dhe fillon programet e shfrytëzuesit në mënyrën e shfrytëzuesit. Dhe kur të paraqitet ndonjë (trap) ose ndërprerje, hardueri kalon prej mënyrës së shfrytëzuesit në mënyrën e kernelit (dhe e vendosë bitin e mënyrës me vlerën 0). Ashtu, sa herë që sistemi operativ e merr nën kontroll kompjuterin është në mënyrën e kernelit. Sistemi çdo herë kalon në mënyrën e shfrytëzuesit (duke vendosur vlerën 1 në bitin e mënyrës) para se t’i japë kontrollin një programi të shfrytëzuesit. 13. Çfarë mundësie ofron puna me dy mënyra të ndara të punës? 13.Puna me dy mënyra të punës (ose siq njihet si user mode dhe kernel mode) siguron mbrojtjen e sistemit operativ dhe përdoruesve. Instruksionet e rrezikshme, të quajtura instruksione të privilegjuara, mund të ekzekutohen vetëm në kernel mode. Dhe ja si funksionon pra: Kernel Mode jan: Instruksionet e privilegjuara qe mund të ekzekutohen. Dhe : - User Mode jan: Instruksionet e privilegjuara qe nuk lejohen ekzekutohen. Nëse një program në user mode përpiqet të ekzekutojë një instruksion të privilegjuar, atëherë hardueri e ndalon atë dhe e kthen kontrollin tek sistemi operativ. Kjo parandalon që përdoruesit të dëmtojnë sistemin por dhe ta dëmtojnë njëri-tjetrin. 14. Si ndikon struktura e mënyrave të punës në sigurinë dhe stabilitetin e nje sistemi operativ dhe çfarë roli kanë përkatësisht mënyra e kernelit dhe mënyra e përdoruesit në këtë kontekst? 14.Koncepti i mënyrave të punës mund të përfshijë më shumë se dy mënyra Pra: 1. Procesorët Intel: 1. Kanë katër unaza mbrojtëse të ndara. 2. - Unaza 0 është mënyra kernel. 3. - Unaza 3 është mënyra e përdoruesit. 4. - Unazat 1 dhe 2 mund të përdoren për shërbime të ndryshme të sistemit operativ, por përdoren rrallë në praktikë. 2. Sistemet ARMv8: 1. Ato kanë shtatë mënyra të ndryshme të punës. 3. Dhe CPU-të me virtualizim: 1) Kanë një mënyrë të veçantë për menaxhuesin e makinës virtuale (VMM -Virtual machine management-). 2) - VMM ka më shumë privilegje se proceset e përdoruesit, por ka më pak se mënyra e kernel-it. 3) - Kjo mënyrë lejon VMM të krijojë dhe menaxhojë makina virtuale, duke ja ndërruar gjendjen CPU-së për këtë qëllim. 4) Ekzekutimi i Instruksioneve 5) - Fillimi: Sistemi operativ fillon me kontrollin në mënyrën e kernelit. 6) - Përdorimi i Përdoruesit: Pra kur kontrolli kalon te një program përdoruesi, vendoset në mënyrat e përdoruesit. Dhe 7) - Kthimi i Sistemit Operativ: Pra kur kontrolli kthehet tek sistemi operativ përmes një trap ose ndërprerjeje, ose ndonjë thirrje sistemore. Kjo strukturë me nivele të ndryshme privilegji siguron që instruksionet kritike të ekzekutohen vetëm nga komponente të besueshëme të sistemit, duke e mbrojtur sistemin dhe përdoruesit nga dëmtimet dhe keqpërdorimet e mundshme. 15. Si funksionojnë thirrjet sistemore dhe cila është roli i tyre në sistemet operative? 15. Një thirrje sistemore është një mekanizëm në sistemet operative që lejon programeve të përdoruesit të kërkojnë shërbime të caktuara nga sistemi operativ, të cilat janë të rezervuara vetëm për përdorimin e sistemit operativ. Këto shërbime përfshijnë operacione të tilla si leximi ose shkrimi në disk, ndërveprime me përdoruesit, krijimi i proceseve, kontrolli i proceseve, dhe shumë e shum të tjera. Pra thirrjet sistemore lejojnë programet e përdoruesit të kërkojnë nga sistemi operativ qe të kryejë veprime të cilat mund ti kryejë vetëm sistemi operativ. Kur një program i shfrytëzuesit ekzekuton një thirrje sistemore, ajo shkakton një trap në vektorin e ndërprerjeve, duke transferuar kontrollin te një procedurë në kernel. Kerneli i verifikon parametrat, ekzekuton kërkesën dhe pastaj kthen kontrollin te programi i shfrytëzuesit. 16. Cili është përdorimi i tajmerit? 16. Tajmeri përdoret që të mos lejohet që një program i shfrytëzuesit të bllokohet në një unazë të pafundme ose të dështojë me ndonjë thirrje të shërbimeve të sistemit dhe të mos kthejë më kontrollin tek sistemi operativ. 17. Çfarë është një proces? 17. Një proces është një instance e një programi që ekzekutohet në një sistem operativ, me një identifikues unik dhe resurse të ndara si kontekstin e memorjes dhe regjistrat e CPU-së. (Pra më thjeshtë: është një program në ekzekutim. Proceset lejojnë ekzekutimin e shumë programave të ndryshme dhe komunikimin mes tyre në një sistemet operative. Pra sistemi operativ është përgjegjës për këto aktivitete në lidhje me menaxhimin e proceseve si p.sh: Krijimi dhe fshirja e proceseve të shfrytëzuesit dhe të sistemit Planifikimi për ekzekutim të proceseve dhe thredave në CPU Ndalja e përkohshme dhe vazhdimi i proceseve Ofrimi i mekanizmave për sinkronizim të proceseve dhe Ofrimi i mekanizmave për komunikim në mes të proceseve 18. Çfarë është fajlli? 18. Fajlli është një grumbull e informatave të lidhura në mes vete të përcaktura nga krijuesi i fajllit. 19. Çfarë është keshimi? 19. Keshimi është një teknikë që përdoret në sistemet operative për të rritur efikasitetin e ekzekutimit të programeve duke ruajtur të dhëna të shpeshta në një memorie më të shpejtë dhe për qasje me të shpejtë në to. Kjo përmirëson kohën e përgjigjes së programit dhe zvogëlon ngarkesën e sistemit duke shmangur akseset e shpeshta në burime të ngadaltë si disket dhe rrjetet. 20. Çfarë është virtualizimi? 20.Virtualizimi është një teknologji që mundëson të fshehim (apo abstrahojmë) harduerin e një kompjuteri (Si p.sh: CPU-në, memorien, disqet, kartelat e rrjetës dhe pjesë tjera) në disa ambiente të ndryshme të ekzekutimit, duke krijuar në atë mënyrë iluzionin që secili ambient punon në kompjuterin e vet. 21. Evidento disa shërbime të sistemit operativ që ofrojnë funksione që e ndihmojnë shfrytëzuesin? 21. Pra disa nga shërbimet të sistemit që e ndihmojnë shfrytëzuesin janë : - Interejsi i shfrytëzuesit - Ekzekutimi i programit - Operacionet e hyrje/daljes. - Puna me sistemin e fajllave - Komunikimet. - Gjetja e gabimeve - Ndarja e resurseve - Logimi - Mbrojtja dhe - Siguria 22. Cilat janë disa mënyra themelore të shfrytëzuesit për të përdorur sistemin operativ dhe sa qasje kryesore ka në total sistemi? 22. Ekzistojnë disa mënyra themelore për shfrytëzuesit që të përdorin sistemin operativ. Dhe janë tre qasje themelore. Pra njëra ofron një interfejs përmes komandave, ose interpretues të komandave, që lejon shfrytëzuesit që të fusin direkt komanda për t’u ekzekutuar nga sistemi operativ. Dy qasjet tjera ia mundësojnë shfrytëzuesit të përdorë sistemin operativ përmes interfejsit grafik të shfrytëzuesit ose GUI. 23. Si e trajtojnë shumica e sistemeve operative interpretuesin e komandave dhe cila është funksioni i tyre në fillimin e proceseve ose në logimin e një shfrytëzuesi në sistemin operativ? 23. Shumica e sistemeve operative, përfshirë Linux, UNIX dhe Windows, interpretuesin e komandave e trajtojnë si një program të veçantë që ekzekutohet kur të fillojë një proces ose kur një shfrytëzues logohet për herë të parë në sistem (pra në sistemet interaktive). Dhe në sistemet me shumë interpretues të komandave, interpretuesit njihen si shell. 24. Sqaro qfarë është API? 24. Zakonisht, zhvilluesit e aplikacioneve i dizajnojnë programet sipas një interfejsi të programimit (ose API). API specifikon një bashkësi të funksioneve që janë në dispozicion për një programues të aplikacioneve, përfshirë parametrat që i barten secilit funksion dhe vlerat e kthimit që mund ti presë programuesi. 25. Si ndikon rrethina në kohën e ekzekutimit në trajtimin e thirrjeve sistemore dhe cili është roli i saj në ekzekutimin e programave tek një sistem operativ? 25. Një faktor tjetër me rëndësi në trajtimin e thirrjeve sistemore është rrethina në kohën e ekzekutimit (dhe ndryshe njihet si run-time environment – ose RTE) e tërë bashkësia e softuerëve që nevojitet për ti ekzekutuar programet e shkruara në një gjuhë programuese, përfshirë kompajlerët ose interpretuesit si dhe softuerë tjerë, si libraritë dhe loaders. Pra RTE ofron një system-call interface (pra interfejs për thirrjet sistemore) që shërbejn si lidhje për thirrjet sistemore që ofrohen nga sistemi operativ. 26.Thirrjet sistemore mund të ndahen në gjashtë kategori kryesore, cilat janë ato kategori? 26. Ato janë: - Kontroll i procesit - Menaxhim i fajllave - Menaxhim i pajisjeve - Mirëmbajtje e informacionit - Komunikime dhe - Mbrojtje. 27.Si trajtohet ndalimi i ekzekutimit të një programi në sistemin operativ dhe si përcaktohen rrënjët e problemeve në rast të ndonjë gabimi gjatë ekzekutimit? 27. Për të siguruar që një program që është duke u ekzekutuar të mund të ndalojë ekzekutimin në mënyrë të rregullt “pra përmes : end() ose abort()” ose në mënyre jo të rregullt (për shkak të një thirrjeje sistemore apo ndonjë gabimi), sistemi operativ shpesh vendos përmbajtjen e memorisë së programit në memorien e diskut dhe paraqet një mesazh gabimi. Kur një program has në një problem dhe shkakton një trap gabimi, përmbajtja e memorisë së programit shkruhet në një fajll të veçantë në disk. Kjo mund të kontrollohet më pas nga një debugger, një program i dizajnuar për të ndihmuar programuesin në identifikimin dhe zgjidhjen e gabimeve logjike. Në rrethana të rregullta ose të papritura, sistemi operativ bart kontrollin tek interpretuesit e komandave ose tek thirrësit, tek i cili vazhdon me leximin dhe ekzekutimin e komandave të tjera të rradhës. 28.Cilat janë dy mënyra të zakonshme të komunikimit në mes të proceseve? 28. Janë dy mënyra të zakonshme të komunikimit në mes të proceseve pra: Modeli me shkëmbim të mesazheve dhe Modeli me memorie të përbashkët. Te modeli me shkëmbim të mesazheve, proceset komunikuese shkëmbejnë mesazhet me njëri-tjetrin për të bartur informacionin. Kurse në modelin me memorie të përbashkët, proceset përdorin thirrjet si: shared_memory_create () dhe shared_memory_attach () për të krijuar dhe marrë qasje në pjesët e memories të proceseve tjera. 29.Çfarë ofrojnë shërbimet e sistemit? 29. Shërbimet e sistemit, të njohura edhe si system utilities, ofrojnë një ambeint të përshtatshëm për zhvillimin dhe ekzekutimin e programit. Disa prej tyre janë thjeshtë interfejs i shfrytëzuesit për thirrjet sistemore. Tjerat janë dukshëm më të komplikuara. Dhe ato mund të ndahen në tri grupe si: Menaxhimi i fajllave Informacioni i statusit Ndryshimi i fajllave Përkrahja për gjuhë programuese Vendosja e programit në memorie dhe ekzekutimi Komunikimet dhe Shërbimet në prapavijë. 30.Çfarë është Linker dhe Loader? 30. Linker i kombinon fajllat në objekt të zhvendosshëm në një fajll të vetëm binar dhe të ekzekutueshëm. Ndërsa Loader përdoret për të vendosur në memorie një fajll binar të ekzekutueshëm, dhe prej aty mund të ekzekutohet në ndonjë bërthamë të CPU-së. Një veprim që lidhet me linking dhe loading është zhvendosja që japinë adresat përfundimtare për pjesët e programit dhe e rregullon kodin dhe të dhënat në program që të lidhen me ato adresa, për shembull, kodi mund të thërrasë një librari me funksione dhe të qaset në variablat e tij gjatë ekzekutimit. 31.Çfarë është struktura monolitike? 31. Struktura më e thjeshtë për organizimin e një sistemi operativ është që të mos ketë fare strukturë. Kjo do të bëhej ashtu që i tërë funksionaliteti i kernelit do të vendosej në një fajll binar që ekzekutohet në një hapësirë të vetme të adresave. Kjo qasje njihet ndryshe si struktura monolitike dhe është e zakonshme si teknikë për dizajnimin e sistemeve operative. 32.Sqaro qasjen monolitke dhe qasjen me shtresa? Figura: 32. Qasja monolitike shpesh njihet si një sistem i lidhur fortë (ose tightly coupled) sepse ndryshimet në njërën pjesë të sistemit mund të kenë ndikim të madh në pjesët tjera të sistemit. Dhe një sistem mund të bëhet modular në disa mënyra. Njëra metodë është qasja me shtresa, në të cilën sistemi ndahet në disa shtresa (ose në disa nivele). Shtresa e poshtme (pra shtresa 0) është hardueri kurse shtresa më e lartë (ështe shtresa N) dhe është interfejsi i shfrytëzuesit. Përparësia kryesore e qasjes me shtresa është thjeshtësia në ndërtim dhe debugging. 33.Çfarë janë mikrokernelet dhe cili është funksioni kryesor i mikrokernelit? 33. Në mesin e viteve 1980-ta, kërkuesit në Carnegie Mellon University zhvilluan një sistem operativ I quajtur Mach që e kishte kernelin të ndarë në module përmes qasjes me mikrokernel. Kjo metodë e strukturon sistemin operativ duke larguar të gjitha pjesët jo thelbësore prej kernelit në hapësira të ndryshme të adresave. Funksioni kryesor i mikrokernelit është të ofrojë komunikim në mes të programit të klientit dhe disa shërbimeve të cilat poashtu janë duke u ekzekutuar në hapësirën e shfrytëzuesit. Një tjeter përparësi e mikrokernelit është se e bën më të në lehtë zgjerimin e sistemit operativ. 34.Kur programi bëhet proces? 34. Programi bëhet proces kur një fajll i ekzekutueshëm vendoset në memorien DRAM. 35.Cilat janë gjendjet e procesit? 35. Gjatë ekzekutimit, procesi ndërron gjendjet ose kalon ne disa gjendje si p.sh: New ( ose i sapo krijuar). Running (pra është duke u ekzekutuar). Waiting (procesi është në pritje). Ready (procesi është gati). Terminated (procesi ka përfunduar ose ka mbaruar ekzekutimin). 36.Çfarë është një PCB ose qka quajm PCB? 36.Çdo procesi në sistemin operativ i paraqitet me një bllok i kontrollit të procesit (ose i quajtur PCB) – apo i quajtur edhe si blloku për kontroll të punës. Blloku për kontroll të procesit (pra PCB) është një strukturë e rëndësishme në sistemet operative dhe përdoret për të përfaqësuar dhe menaxhuar informacionin e nevojshëm për secilin proces në sistemin operativ. 37.Cili është qëllimi i multiprogramimit dhe qëllimi i ndarjes së kohës dhe për ti arritur këto qëllime çfarë përzgjedhë planifikuesi i proceseve? 37.Qëllimi i multiprogramimit është që në çdo kohë të kemi një proces i cili ekzekutohet për të rritur shfrytëzimin e CPU-së. Qëllimi i ndarjes së kohës për shfrytëzim është që një bërthamë e CPU-së të përdoret shpesh me radhë nga disa procese ashtu që shfrytëzuesit të përdorin secilin program gjatë ekzekutimit të tyre. Për të arritur këto qëllime, planifikuesi i proceseve përzgjedhë një proces që është në dispozicion (pra nga një bashkësi e proceseve që janë në dispozicion) për ekzekutimin e programit në bërthamë. Dhe qdo bërthamë e CPU-së mund të ekzekutojë vetëm një proces në një moment të caktuar kohor. Dhe numri i proceseve që janë në memorie njihet si shkalla e multiprogramimit. 38.Cili është roli i planifikuesit të CPU-së? 38.Roli i planifikuesit të CPU-së është përzgjedhja e proceseve që janë në listën gati dhe dhënia për shfrytëzim e një bërthame të CPU-së. Dhe planifikuesi i CPU-së duhet patjetër që shpesh të përzgjedhë një proces. 39.Cila është ideja bazë e swaping? 39.Disa sisteme operative kanë një formë të ndërmjetme të planifikimit e njohur si swaping (dhe quhet si ndërrimi i vendit) ideja bazë e të cilës është se ndonjëherë mund të ketë përparësi largimi i një procesi prej memories dhe ashtu të zvogëlohet shkalla e multiprogramimit. 40.Çfarë është ndërrimi i kontekstit? 40.Kalimi i bërthamës së CPU-së te një proces tjetër kërkon ruajtjen e gjendjes së procesit aktual dhe kthimin e gjendjes (në CPU) tek një proces tjetër. Kjo punë njihet si ndërrim i kontekstit (ose context switches).Gjatë ndërrimit të kontekstit, kerneli e ruan kontekstin e procesit të vjetër në PCB-në e tij dhe vendosë në CPU kontekstin e ruajtur të procesit të ri të planifikuar për ekzekutim. 41. Sqaro krijimin e procesit? 41.Proceset në sistemin operativ janë një koncept themelor për organizimin e ekzekutimit të programeve. Kur një proces krijon procese të reja (ose procese fëmijë), ata përdorin burime të përbashkëta me procesin prind. Dhe për identifikimin e tyre, shumica e sistemeve operative përdorin një identifikues unik të procesit (ose PID) pra siç janë: UNIX, Linux dhe Windows. Pid-i është një numër i cili ndihmon në qasjen dhe menaxhimin e atributeve të procesit në kernel. Procesi systemd në sistemet UNIX/Linux, që ka gjithmonë pid-in me vlerë 1 dhe është procesi prind. Kur një proces krijon një fëmijë, ai ose ajo shpërndan burimet me fëmijën duke përfshirë kohën e CPU-së memorien dhe fajllat. Procesi fëmijë krijohet përmes thirrjes sistemore fork() duke u bërë një kopje e hapësirës së adresave të procesit prind. Pastaj, njëri nga proceset (për shembull fëmija) mund të përdorë thirrjen sistemore exec() për të zëvendësuar hapësirën e memories me një program të ri, duke nisur ekzekutimin e tij. Kjo lejon komunikim të lehtë midis procesit prind dhe fëmijës. Pasi thirret exec() procesi prind mund të vazhdojë të krijojë më shumë fëmijë ose mund të presë për përfundimin e fëmijës me thirrjen wait(). 42. Vizato diagramin e gjendjeve të procesit: 42. Diagrami i gjendjeve të procesit është: 43. Sqaro përfundimin e procesit? 43.Një proces përfundon ekzekutimin duke ekzekutuar shprehjen e fundit dhe duke thirrur thirrjen exit() për të fshirë veten nga sistemi operativ. Ky proces mund të kthejë një vlerë gjendjeje, si një numër i plotë, për të informuar procesin prind për rezultatin e ekzekutimit. Përfundimi përfshin marrjen dhe lirimin e të gjitha resurseve të procesit, siç janë memoria fizike dhe virtuale, fajllat dhe baferët e diskut. Në disa raste, një proces mund të shkaktojë përfundimin e një procesi tjetër përmes thirrjeve të përshtatura (si p.sh: TerminateProcess() në Windows), e cila zakonisht bëhet nga prindi i procesit që duhet të përfundojë. Prindi duhet të menaxhojë proceset fëmijë dhe ti trajtojë përfundimet e tyre në mënyrë efikase. Një prind mund të ndalojë ekzekutimin e një procesi fëmijë për arsye të ndryshme. Dhe në disa sisteme operativë përfundimi i një prindi shkakton edhe përfundimin e të gjithë proceseve fëmijë duke mbajtur konsistencën dhe stabilitetin e sistemit. 44. Çfarë quajmë një proces zombie? 44.Një proces që ka përfunduar por qe prindi i të cilit ende nuk ka thirrur wait() dhe njihet si proces zombie. 45. Kur një proces është i pavarur dhe kur një proces është bashkëpunues? 45.Një proces është i pavarur nëse ai nuk i ndanë të dhënat me ndonjë proces tjetër që është duke u ekzekutuar në sistem. Dhe një proces është bashkëpunues nëse ai ndikon ose mund të ndikohet nga proceset tjera që janë duke u ekzekutuar në sistem. 46. Cilat janë disa arsye që të ofrohet një ambient që lejon proceset të bashkëpunojnë? 46.Disa nga arsyet janë : - Ndarja e informacionit. - Shpejtimi i llogaritjes - Modulariteti 47. Cilat janë dy modelet themelore të komunikimit në mes proceseve? 47. Proceset bashkëpunuese kërkojnë një mekanizëm për komunikim në mes proceseve (dhe quhet interprocess communication – ose IPC) që do jau mundësojë atyre të shkëmbejnë të dhëna pra të dërgojnë dhe pranojnë të dhëna njëri-tjetrit. Dhe janë dy modele themelore të komunikimit në mes proceseve: memorie e përbashkët dhe bartja e mesazhit. 48 Cilat janë llojet e baferave? 48. Baferët janë një mjet shumë të rëndësishëm në programim për të lehtësuar komunikimin dhe sinkronizimin mes proceseve. Dhe ka dy lloje kryesore të baferëve pra: Baferi i pakufizuar dhe baferi i kufizuar. Tek baferi I pakufizuar nuk ka kufizim të madhësisë së baferit dhe konsumuesi mund të presë për të dhënat e reja nga baferi nëse nuk janë të disponueshme aktualisht kurse prodhuesi mund të prodhojë dhe vendosë të dhëna në bafer në çdo kohë, edhe nëse nuk ka hapësirë të lirë në bafer për momentin. Tek baferi i kufizuar ka një madhësi të caktuar pra të kufizuar dhe konsumuesi duhet të presë për të dhënat e reja nëse baferi është I zbrazet duke qenë i detyruar për të marrë të dhënat që prodhuesi i ka vendosur në të kurse prodhuesi duhet të presë nëse baferi është i mbushur plotësisht dhe nuk ka hapësirë të lirë për të vendosur të dhëna të reja në bafer. Përdorimi i njëri apo tjetri lloj baferi varet nga karakteristikat e nevojave të aplikacionit dhe strukturave të tij gjat përdorimit të memorjes dhe baferi është i zbrazët kur in == out dhe baferi është i mbushur kur ((in + 1) % BUFFER_SIZE) == out. Rasti kur baferi është i mbushur plotësisht është si ky: Rasti kur baferi është i zbrazët plotësisht është si ky: 49. Sqaro komunikimin në mes proceseve në sistemet me bartje të mesazhit? 49. Bartja e mesazheve ofron një mekanizëm për të mundësuar që proceset të komunikojnë dhe të sinkronizojnë veprimet e tyre pa e ndarë hapësirën e njëjtë të adresave. Mundësia përmes bartjes së mesazhit ofron së paku dy operacione si: send (dergim mesazhi) dhe receive (marrje mesazhi). Nëse procest P dhe Q duan të komunikojnë, ato duhet patjetër të dërgojnë mesazhet te dhe pranojnë mesazhe nga njëri-tjetri pra duhet te ekzistojë një lidhje komunikimi mes tyre. Pra kjo lidhje mund te jet si: komunikim direkt , indirekt dhe komunikim Sinkron dhe Asinkron: Pra komunikimi direkt është një metodë e komunikimit në mes të proceseve, ku secili proces dërgues dhe pranues përdor emrin ose identifikuesin e njëri-tjetrit për të dërguar dhe pranuar mesazhe. Kurse komunikimi indirekt përdor kutitë postare për të lejuar proceset të dërgojnë dhe të pranojnë mesazhe pa ndarë hapësirën e adresave. Kjo metodë ofron fleksibilitet dhe mundëson komunikim të sigurt dhe efektiv mes proceseve. Komunikim Sinkron dhe Asinkron: Komunikim Sinkron: Procesi që dërgon mesazhin prit derisa procesi tjetër ta pranojë mesazhin para se të vazhdojë ekzekutimin e vet. Komunikim Asinkron: Procesi që dërgon mesazhin nuk pret për përgjigje nga procesi tjetër dhe vazhdon menjëherë me ekzekutimin e tij. 50. Si ndahet bartja e mesazheve? 50. Bartja e mesazheve ndahet në: bllokuese ose jo bllokues pra e njohur edhe si sinkrone dhe asinkrone. Dërgim bllokues: Pra kur procesi dërgues bllokohet derisa mesazhi të pranohet nga pranuesi ose nga kutia postare. Dërgim jo bllokues: Pra kur procesi dërgues e dërgon mesazhin dhe vazhdon punën. Pranim bllokues: Pra kur pranuesi bllokohet derisa mesazhi të jetë në dispozicion dhe Pranim jo bllokues: Eshtë kur pranuesi pranon mesazhin ose e pranon vlerën null. 51. Çfarë është një thred dhe cilat janë karakteristikat dhe përfitimet e thredave brenda një procesi? 51. Thredi është një njësi themelore e përdorimit të CPU-së dhe thredi ka një ID të thredit një regjistër PC dhe një bashkësi të regjistrave dhe një stek. Ai ndanë me thredat tjerë që i takojnë procesit të njëjtë pjesën e tij të kodit, pjesën e të dhënave dhe resurse tjera të sistemit operativ si fajllat e hapur dhe sinjalet. Një proces tradicional ka një thred të kontrollit. Nëse një proces ka shumë threda të kontrollit, ai mund të kryejë më shumë se një punë në një kohë. 52. Nëse të gjitha pjesët e sistemit janë të vendosura në kernel atëher qfar ështe sistemi operativ? 52. Pra do të thotë që sistemi operativ është sistem Monolitik. 53. Kerneli qfar do të thotë? 53. Do të thot pjesa në të cilën ekzekutohen proceset. 54. Cilat janë dy mënyrat e sistemit operativ? 54. Janë: User Mode dhe Kernel Mode. 55. Sa thread minimalisht ka procesi? 55. Procesi ka minimum 1 thred. 56. Cilat janë 5 detyrat e sistemit operativ? 56. 5 detyrat janë: - Menaxhimi i proceseve - Menaxhimi i memories - Menaxhimi i resurseve - Menaxhimi i sistemit të fajllave dhe - Menaxhimi i ndërlidhjes së përdoruesve. 57. Çka është procesi dhe çka është thredi dhe shkruaj disa dallime mes tyre? 57. Procesi është një instancë e programit që ekzekutohet në kompjuterë. Kurse thredi është pjesë e vogël e procesit që ekzekuton punën specifike. Dhe Dallimet mes tyre janë: o Memoria o Ndarja e burimeve o Sinkronizimi dhe o Shkalla e rrjedhjes. Disa nga të përbashkëta qe kanë janë: Përkatësia ndaj procesit Përdorimi i burimeve të procesit dhe Qasja në sistemin operativ. 58. Çka është Race Condition dhe për 3 vegla sinkronizimi shkruaj disa përparësi dhe mangësi? 58. Race Condition është gjendje ku disa thread ose procese përpiqen të ndryshojnë të njejtin burim të përbashkët të të dhënave në të njejtën kohë dhe 3 vegla per sinkronizimi janë: - Semafori - Variablat e kushtit - Monitori dhe - Mutexlocks. Disa nga përparësit qe ka janë: Performanca e lartë dhe Përdorimi efikas i burimeve. Kurse disa nga mangësit qe kanë janë: - Sjellje e paparashikueshme - Humbje e të dhënave dhe - Kompleksiteti i debugging. 59. Çfarë është pthread_scope? 59. pthread_scope e tregon cakun e një thread-i në një aplikacion me shumë threda. 60. Cilat janë tre librari kryesore për thredat në përdorim? 60. Janë tri librari kryesore për threda në përdorim pra: POSIX Pthreads, Windows dhe Java. Dhe pthreads është një zgjerim për threda të standardit POSIX dhe mund të ofrohet si një librari në nivelin e shfrytëzuesit ose në nivelin e kernelit. 61. Çfarë janë Pthreads? 61. Pthreads i referohet standardit (IEEE) të POSIX që definon një API për krijim dhe sinkronizim të thredave. 62. Sqaro kuptimin e disa instruksioneve të programit në gjuhen C me shumë threda përmes API threads? 62. Ti analizojmë këto instruksione të programit me shumë threda në gjuhen C përmes një API threads: Figura: o Fajlli heder pra: pthread.h o Deklarimi i identifikuesit për thredin që do të krijohet : pthread_t tid o Atributet e thredit si: pthread_attr attr o Vendosja e vlerave të atributeve: pthread_attr_init (&attr) o Krijimi i një thredi tjetër të ri: pthread_create () o Bartja e emrit të funksionit ku thredi i ri do të fillojë ekzekutimin pra: runner () o Bartja e parametrit si numër të plotë që ishte ofruar përmes linjës me komanda : argv o Thredi fillestar (ose prindi): main () o Thredi (fëmijë) që kryen operacionin e mbledhjes: runner () o Thredi prind do të pres për përfundim duke thirrurë funksionin: pthread_join () o Dhe thredi mbledhës do të përfundojë kur të thërras funksionin: pthread_exit () 63. Çfarë përfshijnë pjesët e përgjithshme të thredave? 63. Perfshijnë një ID të thredit e cila identifikon në mënyrë unike thredin dhe një bashkësi të regjistrave që paraqesin gjendjen në procesor po ashtu një regjistër PC dhe një stek për shfrytëzuesin që përdoret kur thredi ekzekutohet në mënyrën e shfrytëzuesit dhe një stek për kernel që përdoret kur thredi ekzekutohet në mënyrën e kernelit si dhe një hapësirë private për ruajtje që përdoret nga disa librari run-time dhe librari që përdoren në mënyrë dinamike (DLL). 64. Sqaro thredat në Linux? 64. Linux ofron thirrjen sistemore fork () me funksionin tradicional të kopjimit të një procesi siq është përshkruar dhe në Ligjëraten 3. Pra linux poashtu ofron mundësinë për të krijuar thredat duke përdorë thirrjen sistemore clone (). Por megjithatë linux nuk bën dallimin në mes proceseve dhe thredave. Dhe në të vërtetë linux përdorë termin detyrë në vend të proces ose thred dhe kur i referohemi një rrjedhe të kontrollit në program. Dhe kur të thirret clone () asaj i barten disa flags që përcaktojnë se sa shumë do të përdoren bashkë resurset në mes detyrës prind dhe detyrave fëmijë. 65. Çfarë është CPU-ja burst? 65. CPU-ja burst është periudha kur një proces ekzekutohet në CPU, duke përdorur burimin kryesor të përpunimit të sistemit. Pra CPU H/D Burst Cycle – Pra ekzekutimi i procesit përbëhet nga një cikël i ekzekutimit në CPU dhe pritje për H/D. 66. Si funksionon lista gati në sistemet operativë dhe çfarë përmban një bllok kontrolli i procesit (PCB)? 66.Pra kur CPU-ja është duke pritur (ose idle) atëher sistemi operativ duhet patjetër të përzgjedhë një nga proceset për ekzekutim në listën gati. Përzgjedhja bëhet nga planifikuesi i CPU-së, që përzgjedhë një proces prej proceseve në memorie që janë gati për ekzekutim dhe ia jep CPU-në atij procesi. Lista gati nuk është domosdosmërisht një listë first-in, first-out (pra FIFO). Konceptualisht, megjithatë, të gjitha proceset në listën gati presin që t’u ofrohet mundësia që të ekzekutohen në CPU. 67. Sqaro planifikimin preemptive dhe nonpreemptive? 67. Vendimet për planifikim të CPU-së mund të merren në katër rrethana si: 1. Pra rasti par është kur një proces kalon nga gjendja running në gjendjen waiting. 2. Pra rasti dyt është kur një proces kalon prej gjendjes running në gjendjen ready (në kete rast paraqitet një ndërprerje). 3. Pra rasti tret është kur një proces kalon prej gjendjes waiting në gjendjen ready (për shembull me kompletimin e H/D). 4. Pra rasti katert është kur një proces përfundon. Ndersa për rastet 1 dhe 4 nuk ka ndonjë zgjedhje për planifikim. Një proces i ri (pra në rastë se nëse ekziston në listën gati) ai duhet patjetër të përzgjedhet për ekzekutim. Dhe kur planifikimi bëhet në rrethanat 1 dhe 4 atëher themi se skema e planifikimit është nonpreemptive ose cooperative. Ose përndryshe është preemptive. Përmes planifikimit nonpreemptive kur CPU-ja ti jetë dhënë një procesi procesi e mban CPU-në derisa të liron atë duke përfunduar ose duke kaluar në gjendjen waiting. 68. Kur mund të rezultojë planifikimi preemptive race conditions? 68. Fatkeqësisht planifikimi preemptive mund të rezultojë me race conditions kur të dhënat përdoren prej disa proceseve. 69. Çfarë është Dispatcher? 69. Dispeqeri është moduli që i jep kontrollin mbi bërthamën e CPU-së një procesi të përzgjedhur nga planifikuesi i CPU-së. 70. Çfarë quajm dispatch delay? 70. Koha që i duhet dispeqerit për të ndalur një proces dhe për të filluar ekzekutimin e një tjetri njihet si dispatch delay. 71. Kur ndodh një ndërrim vullnetar dhe jo vullnetar i një procesi? 71. Një ndërrim vullnetar i kontekstit ndodhë kur një proces ka hequr dorë nga kontrolli mbi CPU sepse ai kërkon një resurs që aktualisht nuk është në dispozicion. Një ndërrim jo vullnetar i kontekstit ndodhë kur CPU-ja i është marrë një procesi, në rastin kur procesit i ka mbaruar koha ose ai është bërë preempted nga një proces me prioritet më të madh. 72. Sqaro algoritmin për planifikim pra: “First Come First Served”? 72. Algoritmi FCFS (first-come, first-served) për planifikimin e CPU-së jep prioritet proceseve sipas rendit të tyre të mbërritjes në listën gati. Pra në këtë skemë procesi i cili mbërrin i pari në listën gati merr CPU- në e disponueshme për ekzekutim. Implementimi i FCFS përfshin një listë (first in, first out) ku PCB (ose Process Control Block) i çdo procesi lidhet në fund të listës kur ai hyhet në listën gati. Kur CPU-ja bëhet e lirë, ajo i jepet procesit që është në krye të listës, dhe procesi që ekzekutohet largohet nga lista pasi përfundon ekzekutimin. Në anën negative, koha mesatare e pritjes përmes FCFS është mjaft e gjatë. Tani le të marrim një bashkësi të proceseve që arrijnë në kohën 0 me gjatësi në milisekonda për burst të CPU- së: Nëse proceset arrijnë me radhën pra P1, P2, P3 dhe shërbehen në radhën FCFS do të kemi rezultatin e paraqitur përmes (Gantt chart apo Gantt diagramit) që është një diagram që ilustron një planifikim të caktuar, përfshirë kohën e fillimit dhe përfundimit të secilit prej proceseve pjesëmarrëse: Koha e pritjes është 0 milisekonda për procesin P1, 24 milisekonda për procesin P2 dhe 27 milisekonda për procesin P3. Pra, koha mesatare e pritjes është (0 + 24 + 27) / 3 = 17 milisekonda. Nëse proceset arrijnë sipas radhës P2, P3, P1, megjithatë, rezultatet do të jetë ashtu siç janë paraqitur në diagramin Gantt në vazhdim: Tani koha mesatare e pritjes është (6 + 0 + 3) /pjestue per 3 = 3 milisekonda. 73. Sqaro algoritmin për planifikim: “Shortest Job First”? 73. Një qasje tjetër për planifikimin e CPU-së është algoritmi shortest-job-first. Pra ky algoritëm ia shoqëron çdo procesi gjatësinë në burst të radhës të CPU-së së procesit. Kur CPU-ja të jetë e lirë CPU i jepet procesit që ka gjatësinë më të vogël për burstin e radhës të CPU-së. Nëse bursts e CPU-së për dy procese janë të njëjtë, planifikimi FCFS përdoret për të zgjidhur situatën. Si një shembull të planifikimit të SHJF le të marrim këtë bashkësi të proceseve me gjatësinë e CPU burst të dhënë në milisekonda: Përmes planifikimit SJF, do të mund të planifikonim këto procese sipas Gantt diagramit të paraqitur më poshtë: Koha e pritjes është 3 milisekonda për procesin P1, 16 milisekonda për procesin P2, 9 milisekonda për procesin P3 dhe 0 milisekonda për procesin P4. Kështu, koha mesatare e pritjes është (3 + 16 + 9 + 0) / pjestue per 4 = 7 milisekonda. Dhe për nga krahasimi nëse do të përdornim skemën FCFS (First Come First Served) koha mesatare e pritjes do të ishte 10.25 milisekonda. 74. Sqaro algoritmin për planifikim: “Round - Robin”? 74. Algoritmi round-robin për planifikim është i ngjashëm me planifikimin First Come First Served por i shtohet preemption për të mundësuar kalimin në mes proceseve. Një kohë e shkurtër, e quajtur time quantum (ose pjesëza kohore) ose time slice që definohet. Koha mesatare e pritjes përmes Round - Robin është shpeshëher e gjatë. Pra le të marrim bashkësinë e proceseve në vijim që arrijnë në kohën 0 me gjatësinë e CPU burst të dhënë në milisekonda: Nëse përdorim një pjesë kohore prej 4 milisekondave atëherë procesi P1 merrë 4 milisekondat e parë. Meqë i duhen 20 milisekonda tjerë, ai bëhet preempted pas pjesëzës së parë kohore dhe CPU i jepet procesit të radhës në listë pra procesit P2. Kurse procesi P2 nuk ka nevojë për 4 milisekonda ai përfundon para se të mbarojë pjesëza e tij kohore. CPU i jepet procesit të radhës pra procesit P3. Pasi secili proces të ketë marrë 1 pjesë kohore CPU-ja i kthehet procesit P1 për më shumë pjesëza kohore. Planifikimi Round - Robin që fitohet është: Dhe tani të llogarisim kohën mesatare për këtë planifikim. P1 pret për 6 milisekonda (se duhet bërë 10 – 4) Kurse P2 pret për 4 milisekonda dhe P3 pret për 7 milisekonda. Kështu, koha mesatare e pritjes është 17 / 3 = 5.66 milisekonda. 75. Sqaro algoritmin për planifikim: “Planifikimi sipas prioritetit”? 75. Algoritmi SJF është një rast i veçantë i algoritmit të përgjithshëm planifikim sipas prioritetit. Nga një prioritet i jepet çdo procesi dhe CPU i jepet procesit me prioritetin më të madh. Proceset me prioritet të njëjtë planifikohen sipas radhës FCFS. Algoritmi Shortest Job First është thjeshtë një algoritëm me prioritete ku prioriteti (P) është vlera inverze e CPU burst të radhës. Dhe sa më e gjatë të jetë CPU burst atëher aq më i vogël është prioriteti dhe anasjelltas. Planifikimin e trajtojmë përmes prioritetit të lartë dhe prioritetit të ulët. Prioritetet tregohen përmes disa numrave që nuk ndryshojnë, si prej 0 deri në 7 ose prej 0 deri në 4095. Dhe se nuk dihet nëse 0 është prioriteti më i lartë ose me i ultë. Si shembull, le të marrim këtë bashkësi të proceseve të cilat kanë arritur në kohën 0 në radhën pra: P1, P2, … e deri në P5 dhe me gjatësinë e CPU burst të dhënë në milisekonda: Duke përdorë planifikimin përmes prioritetit, ne do të mund të planifikonim proceset sipas diagramit Gantt: Koha mesatare e pritjes është 8.2 milisekonda. Prioritetet mund të definohen nga brenda ose nga jashtë. Prioritetet e definuara nga brenda përdorin një sasi të matshme për të llogaritur prioritetin e një procesi. Për shembull, kufizimet kohore, kërkesat për memorie, numri i fajllave të hapur dhe raporti i burst mesatare për H/D janë përdorur për llogaritjen e prioritetit. Kurse prioritetet e jashtme vendosen nga kritere jashtë sistemit operativ, si rëndësia e një procesi, lloji dhe sasia e fondeve të paguara për shfrytëzim të kompjuterit dhe departmenti që sponzorizon punën dhe faktorë tjerë si p.sh shpesh janë politik. Planifikimi përmes prioriteteve mund të jetë preemptive dhe nonpreemptive. Problemi kryesor i algoritmeve të planifikimit përmes prioritetit është indefinit blocking (ose bllokim për një kohë të pacaktuar) ose starvation. Një proces që është gati për ekzekutim por qe është duke pritur për CPU-në dhe mund të konsiderohet si i bllokuar. Një zgjidhje për problemin e bllokimit për një kohë të pacaktuar është aging (ose vjetërim). Një mundësi tjetër është kombinimi i planifikimit round-robin dhe me prioritet në atë mënyrë që sistemi ekzekuton procesin me prioritetin më të lartë dhe i fut në ekzekutim proceset me prioritet të njëjtë duke përdorur planifikimin round-robin. Ta marrim një shembull: Duke përdorë planifikimin round-robin për proceset me prioritet të njëjtë, do të mund të planifikonim këto procese sipas diagramit Gantt: Në këtë shembull procesi P4 ka prioritetin më të lartë kështu që do të ekzekutohet deri në fund. Kurse proceset P2 dhe P3 kanë prioritetin më të lartë me radhë dhe do të ekzekutohen në formën round- robin. Vëreni se kur procesi P2 përfundon në kohën 16 atëher procesi P3 është procesi me prioritetin më të lartë kështu që do të ekzekutohet derisa të kompletojë ekzekutimin. Vetëm proceset si P1 dhe P2 mbesin dhe meqë kanë prioritetin e njëjtë ato do të ekzekutohen në radhën round-robin derisa të kompletohen. 76. Sqaro planifikimin Pthread? 76.Tani do të theksojmë API-në Pthread në POSIX që lejon për të specifikuar një PCS ose SCS gjatë krijimit të thredave. Pthread identifikon këto vlera për garën në mes thredave pra: PTHREAD_SCOPE_PROCESS planifikon thredat duke përdorë planifikimin PCS. PTHREAD_SCOPE_SYSTEM planifikon thredat duke përdorë planifikimin SCS. Në sistemet që implementojnë modelin shumë-me-shumë mënyra përmes PTHREAD_SCOPE_PROCESS planifikon thredat e nivelit të shfrytëzuesit në proceset që janë në dispozicion. Kurse numri i proceseve të lehta mirëmbahet nga libraria e thredave duke përdorë aktivizimet e planifikuesit. Planifikimi PTHREAD_SCOPE_SYSTEM do të krijojë dhe lidhë në proces të lehtë për çdo thred të nivelit të shfrytëzuesit në sistemet shumë-me-shumë duke pasqyruar thredat përmes mënyrës një-me-një. Pthread IPC (ose Interprocess Communication) ofron dy funksione për vendosjen dhe leximin e mënyrës për garën në mes proceseve si: pthread_attr_setscope (pthread_attr_t çattr, int scope) pthread_attr_getscope Pra parametri i parë për të dy funksionet përmban një pointer te atributi i vendosur për thredin. Parametrit të dytë për funksionin pthread_attr_setscope () i bartet vlera PTHREAD_SCOPE_SYSTEM ose PTHREAD_SCOPE_PROCESS, duke treguar se si gara në mes thredave do të vendoset. Në rastin e pthread_attr_getscope () parametri i dytë përmban një pointer te vlera int që ka vlerën aktuale të garës në mes thredave. Tani nëse paraqitet ndonjë gabim secili prej këtyre funksioneve kthen një vlerë të ndryshme nga zero. 77. Çfarë është push migration dhe pull migration? 78. Janë dy qasje të përgjithshme për balancimin e ngarkesës pra njihen si: push migration dhe pull migration. 79. Sqaro zgjidhjen nga Peterson? 79.Zgjidhja nga Peterson është një algoritem klasik për menaxhimin e pjesës kritike mes dy proceseve në sisteme që përdorin ndarjen e burimeve. Ky algoritmë është përdorur për të demonstruar si dy procese mund të koordinojnë aksesin e tyre në një resurs të përbashkët duke siguruar kërkesa të përjashtuara reciproke (ose mutual exclusion) pra progres të sigurt dhe pritje të kufizuar. Zgjidhja nga Peterson kërkon që të dy proceset të përdorin bashkë dy të dhëna si: Variabla turn tregon se cili proces e ka radhën për t’u futur në pjesën e tij kritike. Pra, nëse turn == i, atëherë procesi Pi lejohet që të ekzekutojë pjesën e tij kritike. Kurse vargu flag përdoret për të treguar nëse një proces është gati për t’u futur në pjesën e tij kritike. 80. Çfarë janë semaforët? 80. Një semafor S është një variabël integjer që, përveç inicializimit (vendosjes së vlerës fillestare), qaset vetëm përmes operacioneve atomike standard si: wait () dhe signal (). 81. Çfarë është Liveness? 81. Liveness i referohet një bashkësie të veçorive që një sistem duhet patjetër të përmbushë për të siguruar që proceset bëjnë progres gjatë ciklit të tyre jetësor të ekzekutimit. Një proces që pret pafundësisht nën rrethana të sapo përshkruara është një shembull i një “liveness failure”. 82. Çfarë është Deadlock? 82. Implementimi i një semafori me një listë të pritjes mund të rezultojë në një situatë ku dy ose më shumë procese janë duke pritur pafundësisht për një ngjarje që mund të shkaktohet vetëm nga njëri prej proceseve në pritje. Ngjarja në fjalë është ekzekutimi i një operacioni signal (). Pra kur të arrihet një gjendje e tillë për këto procese thuhet se janë ne situaten deadlock. 83. Sqaro problemin e lexuesit-shkruesit? 83. Të supozojmë që një bashkësi e të dhënave do të përdoret bashkë prej disa proceseve. Disa nga këto procese mund të duan vetëm të lexojnë në bashkësinë e të dhënave përderisa tjerët mund të duan të përditësojnë (pra si lexim dhe shkrim) në bashkësinë e të dhënave. Tani e bëjmë dallimin në mes të këtyre llojeve të proceseve duke iu referuar njërës palë si lexues dhe palës tjetër si shkrues. Pra nëse dy lexues përdorin në të njëjtën kohë të dhënat e përbashkëta nuk do të ketë ndonjë efekt. Por megjithatë nëse një shkrues dhe ndonjë proces tjetër (pra një lexues ose një shkrues) i qasen bashkësisë së të dhënave në të njëjtën kohë mund të ndodhë një kaos. Për t’u siguruar se këto vështirësi nuk do të paraqiten ne kërkojmë që shkruesit të kenë qasje ekskluzive në bashkësinë e të dhënave të përbashkëta përderisa shkruajnë në bashkësinë e të dhënave. Ky problem i sinkronizimit njihet si problemi i lexuesve- shkruesve. 84. Sqaro problemin e filozofëve që drekojnë? 84. Të marrim pesë filozofë që kalojnë jetën e tyre duke menduar dhe duke ngrënë ushqim. Filozofët përdorin bashkë një tavolinë të rrumbullakët të rrethuar me pesë karrige pra nga një karrige për një filozof. Në qendër të tavolinës është një pjatë e madhe me oriz dhe në tavolinë janë pesë shkopinjë të vetëm dhe nga një pjatë e vogël. Kur një filozof mendon ai nuk flet me kolegët e tij. Kohë pas kohe një filozof ndjehet i uritur dhe tenton të marrë dy shkopinjë që janë më afër tij (pra shkopinjët që janë në mes tij dhe fqinjit majtas ose djathtas tij). Tani një filozof mund të marrë vetëm një shkop në një kohë. Dhe ai nuk mund të marrë një shkop prej dorës së një fqinji te tij. Dhe kur një filozof i uritur ka të dy shkopinjët e tij në të njëjtën kohë ai ha ushqim pa i lëshuar shkopinjët. Kur të mbarojë ngrënien ai lëshon në tavolin të dy shkopinjët dhe fillon të mendojë përsëri. Problemi i filozofëve që drekojnë konsiderohet si një problem klasik i sinkronizimit dhe jo i rëndësishëm në praktikë. 85. Çfarë është Livelock? 85. Livelock është një formë tjetër e liveness failure. Dhe është e ngjashme me deadlock pra të dy parandalojnë dy ose më shumë threda që të vazhdojnë por thredat nuk janë në gjendje të vazhdojnë për arsye të ndryshme. Livelock është e ngjashme me atë që ndodhë në rastet kur dy njerëz janë duke ecur në një koridor dhe njëri lëviz në anën e tij të djathtë kurse tjetri në anën e tij të majtë duke e penguar njëri-tjetrit. 86. Cilat janë kushtet e nevojshme për deadlock? 86. Katër kushtet e nevojshme për një situatë deadlock janë: Përjashtimi reciprok Mbajtja dhe pritja Pa preemption dhe Pritja rrethore. 87. Cilat janë metodat për trajtimin e deadlock? 87. Në përgjithësi, me problemin e deadlock mund të merremi në njërën prej tre mënyrave: Problemin mund të injorojmë dhe të pretendojmë që deadlock nuk paraqiten asnjëherë në sistem. Mund të përdorim një protokoll për të parandaluar ose shmangur deadlocks, duke u siguruar që sistemi kurrë nuk do të futet në një situatë deadlock dhe Mund të lejojmë që sistemi të futet në një situatë deadlock, gjejë atë dhe dalë prej saj. 88. Kur një gjendje është e sigurtë? 88. Një gjendje është e sigurt nëse sistemi mund të jepë resurset secilit thred (pra deri tek maksimumi) sipas një radhe dhe shmangë deadlock.Dhe formalisht një sistem është në një gjendje të sigurt vetëm nëse ekziston një radhë e sigurt. 89. Sqaro adresën logjike dhe adresën fizike? 89. Një adresë e gjeneruar nga CPU zakonisht njihet si adresë logjike, kurse një adresë që shihet nga njësia e memories – pra, adresa që vendoset në regjistrin MAR (ose memory address register) dhe zakonisht njihet si adresë fizike. 90. Ku vendoset çdo proces përmes dhënies në vazhdimësi të memories? 90. Përmes dhënies në vazhdimësi të memories çdo proces vendoset në një pjesë të vetme të memories dhe që është në vazhdimësi të pjesës në të cilën ndodhet procesi tjetër me radhë. 91. Cila metod është metoda më e thjeshtë e qasjes në fajll? 91. Metoda më e thjeshtë e qasjes është qasja sekuenciale. 92. Çfarë përfshinë interfejsi i pajisjes në blloqe? 92. Interfejsi i pajisjes me blloqe përfshinë të gjitha aspektet e nevojshme për qasje në disqe dhe në pajisje tjera të orientuara në blloqe. 93. Çfarë quajmë matricë e qasjes? 93. Modeli i përgjithshëm i mbrojtjes mund të shihet si një matricë e quajtur ndryshe si matrica e qasjes (ose access matric). Pra rreshtat e matricës së qasjes paraqesin domenet dhe kolonat paraqesin objekte. Çdo rresht në matricë përbëhet nga një bashkësi e të drejtave të qasjes. Meqë kolona definon objektet mund të mos e vendosim emrin e objektit në të drejtën e qasjes. 94. Çfarë është bandwith i pajisjes? 94. Bandwith i pajisjes është numri i përgjithshëm i bajtëve të bartur i pjesëtuar me kohën e përgjithshme në mes të kërkesës së parë për shërbim dhe kompletimit të bartjes së fundit. 95. Cilat janë dy llojet e shtigjeve? 95. Emrat e shtigjeve mund të jenë të dy llojeve: absolut dhe relativ. 96. Çfarë është një daisy chain? 96. Kur pajisja A ka një kabëll që kyçet në pajisjen B dhe pajisja B ka një kabëll që kyçet në pajisjen C dhe pajisja C kyçet në një port të kompjuterit kjo lidhje njihet si daisy chain. Dhe një daisy chain zakonisht punon sikurse një bus. 97. Çfarë është një kontrollues? 97. Një kontrollues është një bashkësi e çipave që mund të menaxhojë një port ose bus apo një pajisje. Kurse një kontrollues i portit serik është një kontrollues i thjeshtë i pajisjes. 98. Strategjia qe lejon pezullimin e proceseve perkohesisht dhe rikthimin e tyre me vone ne pocesim si quhet? 98. Quhet preemptive scheduling. 99. Alegoritmi LRU qka zavendson? 99. Alegoritmi LRU që rishtazi u përdor më së paku. 100. Sistemi operativ ka 3 pikpamje kryesore cilat janë ato? 100. Ato pikpamje janë: Shfrytzuesit Sistemit dhe Resurset. 101. Qka paraqet Dirty Bit? 101. E mban informacionin nese blloqet janë ndryshuar përderisa janë në memorien chache. 102. Cila është njesia më e thjesht per ruajtjen e të dhenave ne HDD? 102. Njesia më e thjesht e ruajtjes se te dhenave ne HDD eshte Sector. 103. Komanda rm –r per qfar perdoret? 103. Perdoret për me fshi direktoriumin dhe fajllat Brenda dhe e ndrron permission e fajllave. 104. Sistemi operativ mban page table per? 104. Mban page table per secilin process. 105. Strategjia qe lejon pezullimin e proceseve perkosishte dhe rikthimin e tyre me vonë në procesim si quhet? 105. Quhet preemptive scheduling. 106. Qfar kerkohet nga Scheduling? 106. Kerkohet: o Te minimizohet waiting time o Te mimimizohet response time dhe o Te mimimizohet turnaround time. 107. ASCII code sa bit ështe? 107. Eshtë 7 bit. 108. Joseph Wilson Swan është I njohur për zbulimin e kujt? 108. Eshtë I njohur per zbulimin e llampave në vitin 1878. 109. Cili është roli I BIOS-i? 109. BIOS bën kontrollimin e memorjeve HDD , porteve , Kartelave grafike dhe CPU nësë ato janë funksionale. 110. Cilat janë modelet e Multi-threading? 110. Modelete e Multi-threading janë: Many to One One to One Many to Many 111. Cilat jane metodat per eleminimin e Deadlock? 111. Metodat e eleminimit janë: Deadlock prevetion Deadlock avoidance Deadlock detection 112. Qka quajm Address Translation? 112. Quajm: Procedura e llogaritjes se adreses efektive te memories nga adresa logjike quhet Address Translation. 113. Qka jane Files? 113. Files jane nje set I te dhenave me disa vecori sic jane: madhesi, pronar, last read/write time. 114. Cilet janë llojet e fajllave? 114. Llojet e fajllave janë: - Byte sequence - Record sequence dhe - Tree. 115. Cilat janë qasjet në fajlla? 115. Kemi dy lloje te qasjeve në fajlla: Qasja sekuenciale e cila lexon dhe regjistron të gjitha bajtet nga fillimi, nuk mund te kerceje, mund te rikthejne ose backup. I pershtateshem kur mediumi eshte mag tape. Qasje Randome bajtet/rekordet të lexuara ne qdo menyre esenciale per sistemet e databazes. 116. Cilat jane operacionet me fajlle? 116. Operacionet e fajllave janë: 1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write 7. Append 8. Seek 9. Get attributes 10. Set attributes dhe Rename. 117. 118. Qfar janë unazat e mbrojtjes? 118. Unazat e mbrojtjes janë një mekanizem në arkitekturen e sistemit operativ dhe harduerit që ndajnë privilegjet e ekzekutimit në nivele të ndryshme për të mbrojtur aksesin në burimet e sistemit. 119. Qfarë është sistemi I fajllave? 119. Sistemi fajllave ofron mekanizmin per ruajtje online dhe qasjen e të dhënave dhe programeve të sistemit operativ dhe për të gjithë shfrytëzuesit e sistemit operativ. Dhe sistemi I fajllave perbëhet prej dy pjesëve: - Nje grup I fajllave , ku secili ruan të dhëna dhe një strukturë direktoriumi e cila organizon dhe ofronë informacion per të gjithë fajllat në sistem. 120. Vizatoni strukturën e procesit? 120. 121. Qfarë është System calls? 121. System calls është një metodë që një program kompjuterik të kërkojë një sherbim nga kerneli i sistemit operativ në të cilin po ekzekutohet. 122. Qfarë është procesi dhe cilat janë tipet e tijë? 122. Procesi është një program në ekzekutim dhe tipet e procesit janë: Text Selection Program Counter(PC) Processor Register Stack Data Selection dhe Heap. 123. Cilat janë kriteret për vlersimin e alegoritmeve? 123. Kriteret për vlersimin e alegoritmeve janë: Përdorimi I CPU-së Throughput Koha e kompletimit Koha e pritjes dhe Koha e reagimit. 124. Qka është domeni I mbrojtjes dhe qfarë objekti vendoset në kolonen matricore të qasjes? 124. Domeni I mbrojtjes është fushë e specializuar në sigurinë informatike që merret me identifikimin , parandalimin dhe trajtimin e rreziqeve të sigurisë. Kurse tek matrica e qasjes domeni krijohet pas ndarjes së funksioneve dhe rradhitja e tyre në hierarki. 125. Qka e ndihmojnë alegoritmet e planifikimit procesinë? 125. E ndihmojnë shpejtsinë e pritjes së proceseve. 126. Për qfarë sherbejnë Programet Sistemore dhe si ndahen ato? 126. System Programs ofrojnë një mjedis të pershtatshëm për zhvillimin dhe ekzekutimin e programit dhe system programs ndahën në: File manipulation Status information Programming language support Program loading and execution Communications Background Services dhe Application programs. 127. Shpjegoni sherbimin e Sistemit Operativ “Manipulimi me File-Sisteme ose File-Sistem Manipulation”? 127. File-System/Manipulation Pra programet duhet te lexojnë dhe të shkruajnë files dhe direktori ti krijojnë , fshijnë ti kerkojnë ato listojnë informacionin e file menagjimi I premissions etj. 128. Cila infrastruktur nevojitet që dy thread te ekzekutohen menjëher? 128. Që dy thread të ekzekutohen menjëher nevoitet infrastruktura e multithreding. 129. System Call Fork() a perdorët për krijiminë e proceseve të reja në Windows? 129. System Call Fork() nuk përdorët për krijiminë e proceseve të reja në Windows. 130. A është System Calls I detajuar dhe I vështir për tu punuar? 130. System Calls është shum I detajuar dhe më i veshtir per të punuar me të. 131.Qfar paraqet metoda e vendosjes së pandërprerë? 131. Kërkon që qdo fajll të zë adresa të njëpasnjëshme në disk. 132. Vizatoni matricen e qasjes (Modelin e përgjithshem)? 132. Modelin i përgjithshem i mbrojtjes ose modeli i matrices së qasjes mund të jetë: -------- Burimi1 Burimi2 Burimi3 Perdoruesi1 R –> read -------- R/W read write Perdoruesi2 R/Wread write R read -------- Perdoruesi3 ------- R/W read write R read 133. Vizatoni figurën e unazave mbrojtëse? 133. Unazat mbrojtëse dukën kështu: