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

Struktura e sistemeve

të shfrytëzimit

Pershtatur nga Operating System Concepts Silberschatz, Galvin and


Gagn
Struktura e sistemeve të shfrytëzimit
 Shërbimet e sistemit të operimit
 Ndërfaqet e përdoruesit të sistemeve të operimit
 Thirrjet e sistemit
 Tipet e thirrjeve të sistemit
 Programet e sistemit
 Dizenjimi dhe implementimi i sistemeve të operimit
 Struktura e sistemeve të operimit
 Makinat virtuale
 Procesi “debug”
 Gjenerimi i sistemeve të operimit
 Procesi i ndezjes së sistemit
Objektivat
 Përshkrim i shërbimeve të ofruara nga sistemi i operimit për përdoruesit,
proceset dhe sistemet e tjera
 Diskutim mbi mënyrat e ndryshme të strukturimit të sistemit të operimit
 Shpjegim mbi instalimin, konfigurimin dhe ndezjen e sistemit të operimit
Shërbimet e sistemit të operimit
 Sistemi i operimit mundëson një mjedis për ekzekutimin e programeve dhe
shërbimeve, për programet e tjerë dhe përdoruesit
 Një bashkësi e shërbimeve të sistemit të operimit mundësojnë
funksionalitete të dobishme për përdoruesin:
 Ndërfaqja e përdoruesit: çdo sistem operimi ofron një ndërfaqe
përdoruesi (UI)
 CLI
 GUI
 Batch
 Ekzekutimin e programeve
 Ngarkimin e programeve në memorjen kryesore
 Ekzekutimin e programeve
 Perfundimin e programeve në mënyrë korrekte ose jo
 Veprimet I/O
 Një program në ekzekutim mund të kryeje veprime I/O
Shërbimet e sistemit të operimit (Vazh.)
 Manipulimin e sistemit të skedarëve
 Programeve ju nevojitet të lexojnë/shkruajnë skedarë dhe direktori, ti
krijojnë dhe fshijnë ato, të kërkojnë, të listojnë sekdarët e një
direktorie, menaxhojnë politikat e sigurisë
 Komunikimi
 Komunikimi realizohet ndërmjet memorjes së përbashkët ose kalimit
të mesazheve (paketat lëvizin ndërmjet OS)
 Detektimi i gabimeve
 Mund të ndodhin në hardware (CPU dhe memorja), pajisjet I/O, në
programet e përdoruesit
 Për çdo tip gabimi, sistemi i operimit duhet të kryejë veprimin e
duhur për të siguruar korrektesën dhe konsistencën e sistemit
 Procesi “debug” rrit ndjeshëm aftësitë e përdoruesit dhe
programuesit në përdorimin sa më efiçent të sistemit
Shërbimet e sistemit të operimit (vazh.)
 Një bashkësi tjetër e shërbimeve të sistemit të operimit mundëson
efiçencën e vetë sistemit ndërmjet bërjes së përbashkët të burimeve
 Alokimi i burimeve
 Gjatë ekzekutimit të punëve të ndryshme njëkohësisht, sistemi duhet
të alokojë burime për secilën prej tyre
 Llogaritë
 Ruhet informacion mbi burimet që përdor përdoruesi
 Mbrojtja dhe siguria
 Mbrojta mundëson kontrollin e aksesimit të burimeve të sistemit
 Siguria mundëson përdorimin e sistemit të autentifikimit për
përdoruesit e jashtëm
Pamje e shërbimeve të SSH

Fotoja marrë nga: Operating System Concepts – 8th Edition


Ndërfaqet e sistemit të operimit - CLI
 CLI ose interpretuesi i komandave lejon hyrjen direkt të komandave
 Në disa raste implementohet direkt në kernel, në disa raste si një
program sistemi
 Në disa raste vjen i implementuar në versione të ndryshme të cilat
njihen si shell-e
 Funksioni primar është të kapë komandën e përdoruesit dhe ta
ekzekutojë atë
 Në disa raste komandat janë të integruara brenda interpretuesit të
komandave, në disa raste janë vetëm emrat e programeve
– Në rastin e dytë, shtimi i funksionaliteteve shtesë nuk kërkon
modifikimin e interpretuesit
Ndërfaqet e sistemit të operimit - GUI
 Ndërfaqe lehtësisht të përdorshme nga përdoruesit
 Zakonisht komunikimi ndërmjet pajisjeve mouse, monitor, tastierë
 Ikonat paraqesin skedarë, programe ose veprime
 Veprimet e klikimeve të mouse-it mbi objektet në ndërfaqe shkaktojnë
veprime të ndryshme (listim i një direktorie, mundësim i informacionit,
ekzekutimi i një funksioni)
 Zbuluar si fillim në Xerox PARC

 Shumë sisteme sot përfshijnë edhe CLI edhe GUI


 Sistemet e operimit Windows përmbajnë GUI dhe CLI
Interpretuesi i komandave BASH

Fotoja marrë nga: Operating System Concepts – 8th Edition


Mac OS X GUI

Fotoja marrë nga: Operating System Concepts – 8th Edition


Thirrjet e sistemit
 Ndërfaqe për tek shërbimet të mundësuara nga sistemi i operimit
 Zakonisht të shkrujtura në një gjuhë të nivelit të lartë (C ose C++)
 Në shumicën e rasteve aksesohen nga programet ndërmjet një API
(ndërfaqe) dhe jo në mënyrë direkte ndërmjet thirrjeve të sistemit
 Tre ndërfaqet (API) më të përdorura janë
 Win32 API
 Java API
 POSIX API
 Përse përdorim API dhe jo thirrjet e sistemit?
Shembull i thirrjeve të sistemit
 Sekuenca e thirrjeve të sistemit gjatë replikimit të përmbajtjes së një skedari
në një sekdar tjetër

Fotoja marrë nga: Operating System Concepts – 8th Edition


Shembull i thirrjeve të sistemit
 Konsideroni funksionin ReadFile() në Win32 API

Fotoja marrë nga: Operating System Concepts – 8th Edition

 Përshkrim i parametrave që i kalohen funksionit ReadFile()


 HANDLE file – skedari që duhet të lexohet
 LPVOID buffer – memorje e cila do përdoret për leximin, shkrimin e të
dhënave
 DWORD bytesToRead – numri i byte-ve që duhet të lexohen në buffer
 LPDWORD bytesRead – numri i byte-ve të lexuara gjatë leximit të fundit
Implementimi i thirrjeve të sistemit
 Zakonisht një numër i bashkëngjitur me çdo thirrje sistemi
 Ndërfaqet e thirrjeve të sistemit menaxhojnë një tablelë me indekse për
këto numra

 Ndërfaqet e thirrjeve të sistemit thërrasin në të vërtetë thirrjen e sistemit në


kernel-in e sistemit të operimit dhe kthejnë statusin e thirrjes së sistemit së
bashku me çdo vlerë tjetër që kthen funksioni

 Thërritësi nuk duhet të njohë mënyrën se si është implementuar thirrja e


sistemit
 Duhet ti binden API dhe të kuptojnë se çfarë kthen OS si përgjigje ndaj
thirrjes
 Shumica e detajeve të ndërfaqeve të OS i fshihen programuesit
ndërmjet API
 Menaxhohen nga libraritë e përfshira nga kompiluesi
API – thirjet e sistemit – lidhja me SSH

Fotoja marrë nga: Operating System Concepts – 8th Edition


Shembull i një librarie standarte në C
 Programi në C thëret komandën printf() të librarisë standarte në C e cila
thërret thirrjen e sistemit write()

Fotoja marrë nga: Operating System Concepts – 8th Edition


Kalimi i parametrave në thirrjet e sistemit
 Zakonisht nevojitet më shumë informacion sesa thjesht identifikimi i thirrjes
së sistemit që duam të përdorim
 Tipi ekzakt dhe sasia e informacionit ndryshon në varësi të SSH dhe
thirrjes së sistemit

 Ekzistojnë tre metoda të përgjithëshme për kalimin e parametrave për tek


SSH
 Metoda më e thjeshtë – kalimi i parametrave në regjistra
 Në disa raste mund të kemi më shumë parametra se rregjistra
 Parametrat ruhen në një bllok, ose tabelë, në memorje dhe adresa e
bllokut kalohet si një parametër në rregjistër
 Kjo mënyrë ndiqet nga sistemet e operimt Linux dhe Solaris
 Parametrat vendosën në memorjen “stack” nga programi dhe lexohen
nga SSH
 Përdorimi i blloqeve ose memorjes “stack” nuk e kufizon numrin dhe
gjatësinë e parametrave
Kalimi i parametrave ndërmjet tabelës

Fotoja marrë nga: Operating System Concepts – 8th Edition


Tipet e thirjeve të sistemit
 Kontrolli i proceseve
 Ngarkimi, ekzekutimi
 Krijimi i proceseve, përfundimi i tyre
 Marrja dhe përcaktimi i atributeve të proceseve
 ...
 Menaxhimi i skedarve
 Krijimi i skedarve, fshirja e tyre
 Hapja, mbyllja e skedarve
 Lexim, shkrim, pozicionim
 Marrja dhe përcaktimi i atributeve të skedarve
 ...
Tipet e thirrjeve të sistemit (Vazh.)
 Menaxhimi i pajisjeve
 Kërkesë për marrjen/lëshimin e kontrollit të pajisjes
 Lexim, shkrim, pozicionim
 Marrja dhe përcaktimi i atributeve të pajisjes
 ...
 Menaxhimi i informacionit
 Marrja dhe përcaktimi i orës, datës së sistemit
 Marrja dhe përcaktimi i të dhënave të sistemit
 ...
 Komunikimi
 Krijimi dhë fshirja e lidhjeve të komunikimit
 Dërgimi dhe marrja e mesazheve
 Bashkëngjitja e pajisjeve në distancë
 ...
Shembuj thirrjesh sistemi në Windows
dhe Unix

Fotoja marrë nga: Operating System Concepts – 8th Edition


Shembull: MS-DOS
 Kryen vetëm një veprim në njësinë e kohës
 Interpretuesi i komandave thërritet kur ngarkohet sistemi
 Përdor metoda të thjeshta për ekzekutimin e programeve
 Nuk kemi krijim të proceseve
 Hapsirë e vetme në memorje
 Ngarkon programet në memorje duke mbishkruar programet ekzistuese
nëse nuk ka hapsirë, por jo kernel-in
 Në perfundim të procesit -> interpretuesi i komandave ringarkohet
Ekzekutimi në MS-DOS
 (a) në fillim të ngarkimit të sistemit; (b) duke ekzekutuar një program

Fotoja marrë nga: Operating System Concepts – 8th Edition


Shembull: FreeBSD
 Variant në Unix
 Kryen shumë detyra në të njëjtën kohë
 Pas identifikimit të përdoruesit në sistem -> thëritet interpretuesi i
komandave i parapërcaktuar nga përdoruesi
 Interpretuesi i komandave ekzekuton thirrjen e sistemit fork() për krijimin e
proceseve
 Ekzekuton exec() për ngarkimin e programeve në procese
 Interpretuesi i komandave pret për përfundimin e proceseve ose
vazhdon me komandat e përdoruesit
 Procesi përfundon ekzekutimin me një kod = 0 (përfundim i suksesshëm),
ose me një kod > 0 (përfundim i pasuksesshëm)
FreeBSD duke ekzekutuar disa programe

Fotoja marrë nga: Operating System Concepts – 8th Edition


Programet e sistemit
 Programet e sistemit mundësojnë një mjedis të përshtatshëm për
ekzekutimin dhe zhvillimin e programeve
 Programet e sistemit kategorizohen:
 Manipulimi i skedarve
 Informacion mbi statuset
 Modifikimi i skedarve
 Suportim i gjuhëve të programimit
 Ngarkimin dhe ekzekutimin e programeve
 Komunikim
 Programet e aplikacioneve
 Disa nga programet e sistemit janë thjesht ndërfaqe për tek thirrjet e
sistemit, disa janë më kompleks
Programet e sistemit (Vazh.)
 Menaxhimi i skedarve
 Merren me krijimin, fshirjen, kopjimin, riemërtimin, printimin, listimin dhe
në mënyrë të përgjithëshme manipulojnë skedarët dhe direktoritë
 Informacion mbi statuset
 Disa procese mundësojnë informacion mbi sistemin – data, ora, hapsira
e disponueshme e memorjes, hapsira e diskut, numri i përdoruesve
 Disa procese mundësojnë detaje mbi performancën
 Zakonisht këto programe e formatojnë dhe shkruajnë outputin e tyre në
terminal ose në pajisjet e tjera të output-it
 Disa sisteme implementojnë një rregjistër – përdoret për ruajtjen dhe
marrjen e informacionit të konfigurimeve
Programet e sistemit (Vazh.)
 Modifikimi i skedarëve
 Editorët tekst për krijimin dhe modifikimin e skedarëve
 Komanda speciale për kërkimin e përmbajtjes dhe transformimin e
tekstit
 Mbështetje për gjuhët e programimit
 Në disa raste mundësojnë kompilues, interpretues
 Ngarkimi dhe ekzekutimi i programeve
 Mundësojnë ngarkimin dhe ekzekutimin e programeve të ndryshëm në
sistemin e operimit
 Komunikimi
 Mundësojnë një mekanizëm për krijimin e lidhjeve virtuale ndërmjet
proceseve, përdoruesve, dhe sistemeve kompjuterike
 Lejojnë përdoruesit të dërgojnë mesazhe në monitorët e sistemeve të
tjerë kompjuterik, shfletim i faqeve web, dërgimin e mesazheve, hyrje në
një sistem në distancë, transferim skedarësh në një kompjuter tjetër
Dizenjimi dhe implementimi i OS
 Fillon me përcaktimin e qëllimeve dhe specifikimeve
 Ndikohet nga zgjedhja e hardware-it, tipit të sistemit
 Qëllimet e përdoruesit dhe qëllimet e sistemit
 Qëllimet e përdoruesit – Sistemi i operimit duhet të jetë i përshtatshëm
për t’u përdorur, i lehtë për t’u mësuar, i besueshëm, i sigurt dhe i
shpejtë
 Qëllimet e sistemit – Sistemi i operimit duhet të jetë i lehtë për tu
dizenjuar, implementuar dhe mirëmbajtur, fleksibël, i besueshëm, pa
gabime dhe efiçent
Dizenjimi dhe implementimi i OS (Vazh.)
 Parime të rëndësishme për tu ndarë
 Politikat: Çfarë do të realizohet?
 Mekanizmat: Si do të realizohet?

 Makanizmat përcaktojnë si do të realizohet diçka, politikat përcaktojnë se


çfarë do të realizohet
 Ndarja e mekanizmave nga politikat është një parim shumë i
rëndësishëm, lejon fleksibilitet maksimal nëse vendimet mbi politikat
duhet të ndryshojnë në një kohë të mëvonshme
Strukturë e thjeshtë
 MS-DOS – i shkruar për të mundësuar shumicën e funksionaliteteve në një
hapsirë sa më të vogël
 Jo i ndarë në module
 Ndëfaqet dhe nivelet e funksionaliteteve jo plotësisht të ndara
Strukturë me shtresa MS-DOS

Fotoja marrë nga: Operating System Concepts – 8th Edition


Struktura tradicionale e sistemit UNIX

Fotoja marrë nga: Operating System Concepts – 8th Edition


UNIX
 Unix – i limituar nga funksionalitetet e hardware-it; sistemi i operimit origjinal
Unix kishte një strukturë të limituar; Sistemi i operimit Unix përbëhej nga dy
pjesë të ndara
 Programet e sistemit
 Kernel
 Konsiston në gjithçka poshtë ndërfaqeve të thirrjeve të sistemit dhe
sipër shtresës fizike të hardware-it
 Mundëson sistemin e skedarëve, skedulimin e CPU, menaxhimin e
memorjes, dhe funksione të tjera të sistemit të operimit; një numër
shumë të madh funksionesh për një nivel
Struktura me shtresa
 Sistemi i operimit ndahet në shtresa, ku çdo shtresë ndërtohet mbi shtresën
paraardhëse. Shtresa më e fundit (shtresa 0) përfaqëson hardware-in; niveli
më i lartë (shtresa N) është ndërfaqja e përdoruesit.
 Shtresat funksionojnë bazuar në veprimet dhe ndërfaqet e ofruara nga
shtresat e niveleve më të ulta.

Fotoja marrë nga: Operating System Concepts – 8th Edition


Struktura e sistemeve Microkernel
 Lëvizen sa më shumë funksionalitete nga kernel-i drejt hapsirës së
përdoruesit
 Komunikimi realizohet ndërmjet moduleve të përdoruesit me anë të kalimit
të mesazheve
 Përparësitë
 Më e lehtë për të zgjeruar microkernel-in
 Më e lehtë për të lëvizur sistemin e operimit në një arkitekturë të re
 Më i besueshëm (ekzekuton më pak kod në nivelin kernel)
 Më i sigurt
 Të metat
 Performanca ulet për shkak të komunikimit të hapsirës së përdoruesit
me hapsirën kernel
Struktura e sistemeve Mac OS x

Fotoja marrë nga: Operating System Concepts – 8th Edition


Struktura me module
 Sistemet e operimit modern implementojnë modulet kernel
 Përdor llogjikën e orientuar drejt objekteve
 Çdo komponent bazë qëndron më vete
 Komunikimi realizohet ndërmjet ndërfaqeve
 Çdo komponent ngarkohet në sistem në momentin që nevojitet
 I ngjashëm me strukturën me shtresa por më fleksibël

Fotoja marrë nga: Operating System Concepts – 8th Edition


Makinat virtuale
 Një makinë virtuale e trajton hardware-in dhe kernel-in e sistemit të
operimit sikur të gjithë të ishin hardware

 Një makinë virtuale mundëson një ndërfaqe identike për tek hardware-i i
sistemit

 Sistemi i operimit bazë (host) krijon iluzionin që një proces ka procesorët


dhe memorjen virtuale të vetë

 Çdo sistemi operimi mik (guest) i mundësohet një kopje virtuale i shtesës
fizike
Historia dhe përfitimet e makinave
virtuale
 U shfaqën për herë të parë në formë komerciale në mainframe-et IBM në
vitet 1972
 Lejojnë ekzekutimin e disa sistemeve operimi mbi të njëjtin hardware
 Janë të mbrojtur kundrejt njëri-tjetrit
 Mund të lejohet bërja e përbashkët e skedarëve, gjithmonë në formë të
kontrolluar
 Mund të komunikojnë me njeri-tjetrin dhe me sistemet e tjera fizike ndërmjet
rrjetit
 Të dobishëm për zhvillim dhe testim
 Mund te ekzekutohen në shumicën e sistemeve të operimit (host)
Makinat virtuale

Fotoja marrë nga: Operating System Concepts – 8th Edition


Teknika e paravirtualizimit
 I paraqet sistemeve miq një sistem të ngjashëm por jo identik me hardware-
in

 Sistemet miq (guest) duhet të modifikohen në mënyrë që të ekzekutohen në


hardware-in e paravirtualizuar

 Sistemet miq mund të jenë sisteme operimi ose aplikacione


Implementimi i virtualizimit
 I vështirë për tu implementuar – duhet të mundësojë ekzaktësisht një kopje
të makinës bazë
 Zakonisht ekzekutohet në “mënyrën e përdoruesit”; krijohet mënyra
kernel dhe mënyra e përdoruesit
 Performanca e tyre më e ulët se e makinave reale
 Nevojitet mbështetje hardware-ike
 Më shumë mbështetje -> virtualizim më i mirë
Arkitektura VMware

Fotoja marrë nga: Operating System Concepts – 8th Edition


Makina virtuale Java

Fotoja marrë nga: Operating System Concepts – 8th Edition


Procesi “debug”
 Procesi “debug” konsiston në gjetjen dhe rregullimin e gabimeve (bugs)
 Sistemet e operimit gjenerojnë skedarët log të cilët përmbajnë informacion
mbi gabimet që kanë ndodhur në sistem
 Dështimet e sistemeve të operimit dhe proceseve gjenerojnë informacion
për skedarët log
 Përveç dështimeve duhet të kryhen veprime për përmirësimin e
performancës
Gjenerimi i sistemit të operimit
 Sistemet e operimit janë të dizenjuar të ekzekutohen në një bashkësi të
ndryshme makinash; sistemi duhet të konfigurohet të funksionojë në çdo
mjedis

 Programi SYSGEN merr informacion mbi konfigurime specifike të sistemit


hardware-ik

 Booting – ndezja e kompjuterit duke ngarkuar kernel-in

 Programi bootstrap – struktura kodi të ruajtura në ROM, të afta për


lokalizimin e kernel-it, ngarkimin e tij në memorje dhe fillimin e ekzekutimit
të tij
Ndezja e sistemit
 Sistemi i operimit duhet të jetë i disponueshëm për hardware-in në mënyrë
që hardware-i ta startojë atë
 Një pjesë shumë e vogël kodi – bootstrap, lokalizon kernel-in, e
ngarkon atë në memorje dhe e ndez atë
 Në disa raste një proces me dy hapa ku blloku i ndezjes, në një
vendodhje fikse ngarkon ngarkuesin bootstrap
 Kur sistemi inicializohet, ekzekutimi fillon nga një vendodhje fikse në
memorje
 “Firmware” shërben për të mundësuar kodin fillestar të ndezjes së
sistemit

You might also like