İşletim sistemi bellek yönetimi

14
ÖZET Bellek Yöne-mi, Proses-Thread, Fifo, Round- Robin, Şahabe?n Akca - 132132178 Ahmet Yesevi Üniversitesi – Bilg. Müh. Lisans ÖDEV İşle-m Sistemleri

Upload: sahabettin-akca

Post on 23-Jan-2018

652 views

Category:

Engineering


9 download

TRANSCRIPT

  1. 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. 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. 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. 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. 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. 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. 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
  8. 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
  9. 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
  10. 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