1. ZET Bellek Yne-mi, Proses-Thread, Fifo, Round- Robin,
ahabe?n Akca - 132132178 Ahmet Yesevi niversitesi Bilg. Mh. Lisans
DEV le-m Sistemleri
2. CEVAPLAR 1. Soru Linux Bellek Yne-mi: Sayfa (page) ad
verilen, mimari ve bellek boyuna gre 4-64 KB boyunda birimler
baznda kullanlr . MMU (memory management unit) adl ilemci birimi
yardmyla oluturulan sanal adresleme ile: Varolandan daha byk bir
bellek alan kullanlabilir. Bellee sandan daha fazla uygulama
alerlabilir. Her uygulamann kendine ait bir sanal adres alan olur
Uygulamann erimek istedii sanal adres gerek bellekte yoksa : lemci
bir sayfa hatas (page fault) verir. le-m sistemi kontrol alr,
gerekirse bellekte bo yer ap, istenen sayfay takas alannda n ykler.
Uygulama kald yerden devam eder Gerek bellek dolmaya baladnda ile-m
sistemi az eriilen sayfalar takas alanna tar. Sayfa hatalar byk
yavalamaya neden olduundan, en aza indirgenmeye allr. Linux, disk
yzeyini RAM bellein bir uzanesym gibi kullanan ve bylelikle ziksel
bellein grnrdeki miktarn ariran sanal bellek desteine sahip-r.
ekirdek bellekteki kullanlmayan bloklarda bulunan bilgileri, disk
yzeyine yazar ve bellek baka iler iin serbest kalm olur. Bu blmler
gerek-i zaman bunlar bellee tekrar alnrlar. Bu olaylar kullancdan
bamsz bir ekilde gerekleir. Linux alenda alan programlar geni bir
bellek alan grrken, aslnda baz bilgilerin hemen yan balarnda
olduundan habersizlerdir. Elbeke ki sanal bellek kullanm RAM
kullanm kadar hzl deildir, bu nedenle program hzlarnda d yaanr.
Sabit disk zerinde sanal bellek iin kullanlan blme takas alan
denir. Aadaki komutla iinde oyuklar olmayan bir takas dosyas
oluturabilirsiniz: # dd if=/dev/zero of=/ek-takas bs=1024
count=1024 1024+0 records in 1024+0 records out # mkswap /ek-takas
1024 Takas alan srm 1, uzunluk = 1044480 bayt olarak ayarlanyor Baz
kaynaklarda, sahip olunan RAM miktarnn iki kae kadar bir takas alan
ayrmanz belir-lebilir. Bu tamamen geersiz bir kuraldr. Bunun doru
bir ekilde nasl yaplaca aada listelenmi-r. 1. Yaklak bellek
ihtiyacnz belirleyin. Bu genellikle bir seferde altracanz
programlarn ihtiya duyaca toplam RAM miktardr. Yani bir seferde en
fazla ne kadar bellee ihtiyacnz olduunu bulun. Bunu ayn anda
altrmak istediiniz programlar altrarak renebilirsiniz.
3. Aklnzdan karmayn ki; sistemde birden fazla kullanc ayn anda
yer alacaksa, hepsi ayr ayr bellek tketeceklerdir. Bununla beraber,
iki kii ayn anda ayn program kullanyorsa; ayn veri ve ktphaneleri
kullanyor olacaklarndan bellek tketimi iki kat olmayacaktr. 2.
Bellek ihtiyalarn deerlendirmek iin free ve ps komutlar olduka
uygundur. 3. Birinci admda anlatlan deerlendirmeler iin bir para
yanlma pay ekleyin. Byk ihtimalle kullanmak istediiniz baz
programlar bu hesaplama srasnda unutabilirsiniz, bazlarnn
gereksinimlerini yanl hesaplayabilirsiniz veya ileride daha fazla
alan ihtiyac duyabilirsiniz. Birka MB disk alann fazladan ayrmak
her zaman iyi olur. ok kk bir takas alan yapmaktansa, biraz byk bir
alan yaratmak her zaman daha iyidir. Ama bunu da fazla abartp btn
diski takas alan olarak ayrmayn. Unutmayn ki kullanlmayan alan boa
gitmi saylr. Daha sonradan da takas alanna ekleme yaplabileceini gz
nnde bulundurun. Tam saylarla uramak daha kolay olacandan ihtiya
duyulan alan hesaplamasn yuvarlayabilir, bir MB byk alabilirsiniz.
4. Yukardaki karlatrmalar ve hesaplamalar sonucu u an ne kadarlk
bir bellee ihtiya duyabileceinizi biliyor olmalsnz. Yerletireceiniz
takas alann hesaplamak iin, toplam ihtiya duyulan alandan fiziksel
bellei karn. Kalan sonu takas alannn boyutunu belirtir. Baz Unix
srmlerinde bu alan RAM'in bir yansmas gibi yerletirmeniz
gerekeceinden, ikinci basamakta hesaplanan alan sizin ihtiyacnz
gsterecek ve kartma ilemine gerek kalmayacaktr. 5. ayet hesaplarnz
sonucu ortaya kan takas alan, fiziksel belleinizin bir ka katysa,
yeni bir RAM eklemenin zaman gelmi demektir. Aksi taktirde
performansta ok byk bir d yaayabilirsiniz. Hi ih-yacnz olmasa bile
bir para takas alanna sahip olmak iyi olur. Linux, takas alann
olduka tasarruu bir biimde kullanr ve bu size mmkn mertebe bo bir
ziksel bellek salar. Takas ih-yac olmasa bile, Linux kullanlmayan
bellek sayfalarn takas alanna gnderir. Bu sayede, disk pasif halde
iken takas yaplarak takasa ih-ya duyulduu anlarda bekleme yaplmas
nlenir. Windows Bellek Yne-mi: Windows geleneksel olarak aada
sraladm bellek ynetim methodlarn kullanmaktadr. Hepsinin kullanm
amalarna gre avantaj ve dezavantajlar vardr. Bazs byk bellee ihtiya
duyabilir, bazsnn algoritmasnn iletilmesi, program ak srasnda
yavalamalara ve hatalara sebep olabilir. Bu geleneksel yaklamlarn
yan sra; Windows Vista ile 2007li yllarda Readyboost denen Linuxun
swap alanna benzeyen bir yntem denemi bu alan iin Flash Disk denen
bellekleri kullanarak bilgisayara ram takviyesi yapmaya yarayan
yntemleri de yeni letim sistemlerine entegre etmitir. Blmeleme
(Partitioning) : Bo blmeye, boyu blme boyundan kk ya da eit
prosesler yklenebilir. Tm blmeler doluysa proseslerden biri
bellekten atlr Sabit : her program ne kadar boyu kk de olsa tam bir
blmeyi elinde tutar i paralanma (internal fragmentation), Maksimum
aktif proses says snrldr, letim sistemi tarafndan gereklenmesi
kolay
4. Dinamik : Blme says ve blme boylar sabit deil. Proseslere
sadece gerektii kadar bellek atanr. Hangi bo bloun hangi proses
atanacana iletim sistemi karar verir. En- yi-San Algoritmas
(Best-Fit) Boyu istenene en yakn olan boluk seilir. Olas en kk blme
bulunduundan artan bo alan daha az kalr. Alternatif olarak lk-San
Algoritmas (First-fit) iletim sistemi daha hzl alacaktr. Basit
sayfalama (Paging) : Bellei kk, eit boylu paralara bl. Prosesleri
de ayn boyda paralara ayr. .Eit boylu proses paralar: sayfa .Eit
boylu bellek paralar: ereve .letim sistemi her proses iin sayfa
tablosu tutar prosesin her sayfasnn hangi erevede olduu bellek
adresi = sayfa numaras ve sayfa ii ofset adresi .letim sistemi
hangi erevelerin bo olduunu tutar Basit segmanlama (Segmentation):
Program segmanlara ayrlr. Tm programlarn tm segmanlar ayn boyda
olmak zorunda deil. Segman boyunun st snr var .Mantksal adresler
iki blmden oluur -segman numaras ve segman ii ofset segman
tablosundan segmann adresi ve boyu alnr .Segman boylar eit
olmadndan dinamik blmelemeye benzer .Bir program birden fazla
segmandan oluabilir Sayfalamal grnt bellek (Virtual Memory)
Segmanlamal grnt bellek: Program segmanlara ayrlr. Tm programlarn
tm segmanlar ayn boyda olmak zorunda deil. Segman boyunun st snr
var .Mantksal adresler iki blmden oluur , segman numaras ve segman
ii ofset , segman tablosundan segmann adresi ve boyu alnr .Segman
boylar eit olmadndan dinamik blmelemeye benzer .Bir program birden
fazla segmandan oluabilir Windows ve Linux le-m Sistemleri Bellek
Yne-mi Karlaerlmas:
5. 2. Soru lmcl Kilitlenme, bekleme durumundaki grevlerin, hazr
grev durumuna geebilmek iin bir dierinin salayaca koulu karlkl
beklemelerine verilen addr. Grevlerin her birinin bekler olmas ve
alabilmek iin bir dierinin iletilmesinin gerekmesi durumu,
grevlerin hibir zaman gereklemeyecek bir koulu beklemeleri sonucunu
dourur. Birden fazla proses olmas durumunda proseslerin bir kayna
ellerinde tutmalar ve bir baka kayna istemeleri durumunda lmcl
kilitlenme meydana gelir. Algoritmalar: 1-) P n+1 prosesini ancak
ve ancak aadaki koul gereklendiinde balat: Tm iler iin ; Optimal
deil. Tm proseslerin maksimum kaynak gereksinimlerini birden
isteyeceini varsayar. 2-) Banker algoritmas : Bu algoritmann zd
sorun, deimez bir sermayeye sahip olup bunu mterileri arasnda
bltren bir bankerin iflas etmeden herkese para salamas olarak
tanmlanr. Sistemde sabit sayda proses ve kaynak vardr Sistemin
durumu: Kaynaklarn proseslere o anki atamas durum Kaynak ve Bo
vektrlerinden ve Atanm ve stek matrislerinden oluur. Windows NT ve
trevleri, bellek yne-mi iin bir dinamik olarak tahsis edilen disk
bellei dosyas kullanrlar. Ak-f olarak kullanlan nesnelere daha
fazla RAM brakarak bir disk bellei dosyas, bellekte daha az sklkla
eriilen nesneler iin, disk zerinde tahsis edilir. Bu dzen, disk
paralanmas, nesnelere ih-ya duyulduunda bellee geri ge-rilebilir,
sabit disk depolama alanndan ge-rilmesi nedeniyle yava ilemler
dezavantaj sebebidir. Ayr bir blm Windows disk bellei dosyas
yerle-rmek iin yaplandrlabilir; Bunu yaparken disk paralanmas
sorunlarn olumsuz etkiler. Ancak; iki blm arasnda ileri ve geri gei
yer alan arama sresi nedeniyle bir I / O yavalama oluabilir. Ancak,
bu varsaylan yapmad ana nedeni, disk bellei dosyas ayr bir blm ise,
sonra Windows Dur Hatas ( Mavi ekran ) olay bir bellek dkm
oluturamazsnz. Performans asndan ideal bir zm, ayr bir sabit disk
birle-rme ve I / O sorunlar ortadan kaldran birincil, disk bellei
dosyas var. Linux sabit disk kurulumlar sayfalama iin ayrlan disk
alan, genel veriler ayr ve sayfalama ilemleri iin kesinlikle bir
"takas blm" kullanmaktadr. Bu, genel kullanm disk paralanmas
nedeniyle yavalamay azaler. Windows ile birlikte kullanmda en iyi
performans iin, takas blm ve birincil disk ayr bir sabit disk
zerine yerle-rilmi olmaldr.
6. Emin durum: lmcl kilitlenmeye yol amayacak en az bir atama
sekans olduu durum (yani tm proseslerin sonlanabilecei durum) Bir
proses bir grup kaynak iin istekte bulunduunda ile-m sistemi, 1.
Kaynaklarn atandn varsayarak sistem durumunu gnceller. 2. Yeni
durum emin bir durum mu diye kontrol eder. 3. Emin ise atamay
gerekle-rir. Emin deilse atamay yapmaz ve istekte bulunan prosesi
isteklerin karlanmas uygun olana kadar bloke eder.
7. 3. Soru #define _POSIX_SOURCE #include #include #include
#include #include #include main() { int status; long i, j; struct
tms t; clock_t dub; int tics_per_second; tics_per_second =
sysconf(_SC_CLK_TCK); if (fork() == 0) { for (i=0, j=0; i 2 >
3tur ve ust oncelikteki kuyruk bosalmadan bir alt kuyruktaki islere
gecilmemektedir. Asagidaki her tablo zamana gore proseslerin
islenmesini ve kuyruktaki proseslerin durumunu gostermektedir.
Proseslerin yanindaki parantez icindeki sayilar kalan is sayisini
gostermektedir. ZAMAN: 0 CPU FIFO Q=3
12. Q1 P1(4) -> CPUQ2 -> Q3 -> Son Islenen Proses :
Yok Sonraki Zamanda Islenecek Proses : P1 ZAMAN: 2 Q1 P2(3) ->
CPUQ2 P1(2) -> Q3 -> Son Islenen Proses : P1 Sonraki Zamanda
Islenecek Proses : P2 ZAMAN: 4 Q1 P3(6) -> CPUQ2 P2(1), P1(2)
-> Q3 -> Son Islenen Proses : P2 Sonraki Zamanda Islenecek
Proses : P3 ZAMAN: 5 Q1 P4(3), P3(5) -> CPUQ2 P2(1), P1(2) ->
Q3 -> Son Islenen Proses : P3 Sonraki Zamanda Islenecek Proses :
P3 ZAMAN: 6 Q1 P4(3) -> CPUQ2 P3(4), P2(1), P1(2) -> Q3 ->
Son Islenen Proses : P3 Sonraki Zamanda Islenecek Proses : P4
13. ZAMAN: 7 Q1 P5(4), P4(2) -> CPUQ2 P3(4), P2(1), P1(2)
-> Q3 -> Son Islenen Proses : P4 Sonraki Zamanda Islenecek
Proses : P4 ZAMAN: 8 Q1 P5(4) -> CPUQ2 P4(1), P3(4), P2(1),
P1(2) -> Q3 -> Son Islenen Proses : P4 Sonraki Zamanda
Islenecek Proses : P5 ZAMAN: 10 Q1 -> CPUQ2 P5(2), P4(1), P3(4),
P2(1), P1(2) -> Q3 -> Son Islenen Proses : P5 Sonraki Zamanda
Islenecek Proses : P1 ZAMAN: 12 Q1 -> CPUQ2 P5(2), P4(1), P3(4),
P2(1) -> Q3 -> Son Islenen Proses : P1 Sonraki Zamanda
Islenecek Proses : P2 ZAMAN: 13 Q1 -> CPUQ2 P5(2), P4(1), P3(4)
-> Q3 -> Son Islenen Proses : P2 Sonraki Zamanda Islenecek
Proses : P3
14. Ortalama bekleme suresi : (8 + 8 + 8 + 4 + 8) / 5 = 7,2
ZAMAN: 16 Q1 -> CPUQ2 P5(2), P4(1) -> Q3 P3(1) -> Son
Islenen Proses : P3 Sonraki Zamanda Islenecek Proses : P4 ZAMAN: 17
Q1 -> CPUQ2 P5(2) -> Q3 P3(1) -> Son Islenen Proses : P4
Sonraki Zamanda Islenecek Proses : P5 ZAMAN: 19 Q1 -> CPUQ2
-> Q3 P3(1) -> Son Islenen Proses : P5 Sonraki Zamanda
Islenecek Proses : P3 ZAMAN: 20 Q1 -> CPUQ2 -> Q3 -> Son
Islenen Proses : P3 Sonraki Zamanda Islenecek Proses : Yok