Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İşletim Sistemleri (Operating Systems)

Benzer bir sunumlar


... konulu sunumlar: "İşletim Sistemleri (Operating Systems)"— Sunum transkripti:

1 İşletim Sistemleri (Operating Systems)

2 Bellek Yönetimi (Memory Management)

3 Modern Bellek Yönetimi Teknikleri
Hem değişmez (fixed) hem de dinamik (dynamic) bölümleme, belleği verimsiz kullanırlar: biri iç parçalanmaya diğeri ise dış parçalanmaya neden olurlar. Belleğe yeni process’lerin yüklenmesi ve sonlanan process’lerin bellekten kaldırılması sırasında, bellekte verimsiz boşluklar oluşur. Belleğin çeşitli yerlerinde küçük parçaların kalması sonucunda bellekte toplamda yeterli yer olmasına karşılık yeni bir process bu parçalara bölünemeyeceği için bellekte yetersiz yer problemi ile karşılaşılacaktır. İç ve dış parçalanma sorununun üstesinden gelmek için sayfalı bellek yönetimi (paging) ve kesimli bellek yönetimi (segmentation) kullanılabilir.

4 Modern Bellek Yönetimi Teknikleri
Bellek Yönetim düzenleri; Sayfalı Bellek Yönetimi (Paging), Kesimli Bellek Yönetimi (Segmentation) ve bu ikisinin karması kesimli-sayfalı Bellek Yönetimi (Segmentation- Paging)

5 Modern Bellek Yönetimi Teknikleri
Sayfalı Sanal Bellek (Paged Virtual Memory) Bellek, sabit boyutlu çerçevelere (frame) bölünür. Her çerçeve bir taban fiziksel adrese (base physical address) sahiptir. Kesimli Sanal Bellek (Segmented Virtual Memory) Bellek değişken uzunlukta kesimlere (segment) bölünür. Her kesim bir taban fiziksel adres + uzunluğa (base physical address + length) sahiptir.

6 Sayfalı Bellek Yönetimi (Paging)
Sayfalama (paging) yönteminde, Fiziksel bellek (RAM) adres evreni, birbirini izleyen, eşit uzunlukta parçalara bölünür. Bu parçalar çerçeve (frame) olarak adlandırılır. Process mantıksal adres evreni de, birbirini izleyen, eşit uzunlukta parçalara bölünür. Bu parçalar sayfa (page) olarak adlandırılır. Eşit boylu bellek parçaları: çerçeve (frame) Eşit boylu process parçaları: sayfa (page) Genelde fiziksel bellek çerçeve uzunlukları (frame size) ve process sayfa uzunlukları (page size) eşittir. Ancak bu bir şart değildir.

7 Sayfalı Bellek Yönetimi

8 Sayfalı Bellek Yönetimi
Her process eşit uzunluktaki sayfalara, ana bellek de eşit uzunluktaki çerçevelere ayrılmıştır. İşletim sistemi her process için sayfa tablosu tutar. Sayfa tabloları bellekte process kontrol bloğunun (PCB) bir parçası olarak tutulur. Process’lerin hangi sayfasının hangi çerçevede olduğu bilgisi process’lerin sayfa tablosunda tutulmaktadır. Yandaki örnekte sayfa 0, çerçeve 1’de, sayfa 1 çerçeve 4’te, sayfa 2 çerçeve 3’te ve sayfa 3 de çerçeve 7’de yer almaktadır. Sayfa uzunluğu donanım tarafından mikroişlemci mimarisinde belirlenir. (2’nin katları şeklindedir; 512 byte – 8192 byte arasında)

9 Sayfalı Bellek Yönetimi

10 Sayfalı Bellek Yönetimi
İşletim sistemi bu yöntemi kullanırken boş çerçevelerin de listesini tutar.

11 Mantıksal ve Fiziksel Adresler
CPU tarafından oluşturulan adrese mantıksal (veya sanal) adres, Bellekte yer alan adrese ise fiziksel adres denilmektedir. Mantıksal Adres CPU’nun gördüğü adres içeriği iken, Fiziksel adres fiziksel belleğin gördüğü adrestir. Kullanıcı programı mantıksal adres ile ilgilenir; asla gerçek fiziksel adresi görmez.

12 Bellek Yönetim Birimi Memory Management Unit (MMU)
Mantıksal adresten fiziksel adrese dönüşüm Bellek Yönetim Birimi (Memory Management Unit-MMU) olarak adlandırılan donanım tarafından yapılır. Bellek adresleri sistem adres yoluna (address bus) yüklenmeden önce MMU tarafından fiziksel adreslere çevrilir.

13 Mantıksal ve Fiziksel Adresler
Programlar gerçek adresle değilde mantıksal adresle çalışırlar. Bir process’i belleğe yerleşirken MMU, relocation register’daki değeri CPU tarafından oluşturulan her adrese ekler (adres belleğe gönderildiğinde). Bu sayede gerçek adrese ulaşılmış olur. Mantıksal adresteki sayfa (page) fiziksel adreste çerçeve (frame) diye geçer.

14 Mantıksal ve Fiziksel Adresler
Adres işlemlerinde taban kayıt edicisi görevini yerine getiren “relocation register, yerleştirme kayıt edicisi” kullanılmaktadır. relocation register daki değer kullanıcı programları tarafından üretilen her adrese eklenir. Taban değeri ve kullanıcı programları da 346 adresine konumlandıysa adres = olacaktır. Böylece kullanıcı programı mantıksal adresle işlem yapar ve gerçek adresi hiç görememektedir.

15 Limit ve Relocation Register
İşletim sistemi, ana belleğin alt adres (low memory) kesimine yüklenir. Kullanıcı process’leri belleğin üst adres (high memory) kesimlerine yüklenir. Relocation register: kullanılabilecek en küçük fiziksel adresi (base address) içerir. Limit register, Mantıksal adres aralığını içerir. Her mantıksal adres limit register değerinden daha küçük olmalıdır. Kullanıcı programının işletimi boyunca, Limit register çıkışları + Relocation register adresi, erişilen adreslerle sürekli karşılaştırılır. Eğer kullanıcı programı, işletim sisteminin bellek alanına erişirse, program sonlandırılır. Bu denetim düzeneğine bellek koruma düzeneği denir.

16 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Sayfalı bellek yönetimi olan sistemlerde CPU tarafından oluşturulan her adres (mantıksal adres) iki bölümden oluşmaktadır: sayfa numarası ve sayfa ofseti. Sayfa numarası (p) fiziksel bellekteki her bir sayfanın taban adresini tutan sayfa tablosundaki göstergedir. Sayfa ofseti (d) taban adresi ile birleştirilerek fiziksel bellekte sayfanın içerisindeki yerin belirlenmesinde kullanılır. Sayfa tablosunda hem sayfa hemde ofset adresi bulunmaktadır.

17 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Mantıksal Adres = Sayfa numarası (p) + Sayfa ofseti (d) (Logical Address = Page number + page offset) Mantıksal adres evreni ve sayfa boyu 2’nin katları şeklindedir. Verilen mantıksal adres evreni 2m ve sayfa boyu 2n 16-bitlik bir örnek mantıksal adres uzayı ve 1024 bayt sayfa boyu için, yüksek anlamlı 6-bit sayfa numarasını taşır, düşük anlamlı 10-bit ise sayfa ofset değerini gösterir. (Burada m=16 ve n=10 )

18 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Mantıksal adres uzunluğu 16 bayt Sayfa uzunluğu 4 bayt Mantıksal adres evreni 2m ve sayfa boyu 2n (Burada m=4 ve n=2 ) Mantıksal adreste 4 sayfa (page) bulunuyor. Fiziksel bellek uzunluğu 32 bayt Fiziksel adreste 8 çerçeve (frame) bulunuyor.

19 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Mantıksal bellekteki bir adres, sayfa numarası ve sayfa ofsetinden oluşmaktadır. Bu adresin fiziksel bellekteki karşılığının bulunması için sayfa tablosu kullanılır. Sayfa tablosu, her sayfanın fiziksel hafızadaki base adresini içerir. Sayfa ve çerçeve boylarının ikinin kuvvetleri şeklinde seçilmesi dönüşüm hesaplamalarını basitleştirir.

20 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Çerçeve adresi, fiziksel adres olarak adlandırılır ve bir çerçeve numarası ve ofset ile temsil edilir. Fiziksel Adres = Çerçeve numarası (f) + sayfa ofseti (d) (Physical Address = Frame number + page offset)

21 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler
Fiziksel bir adresi elde etmek için, önce için sayfa tablosundaki belirtilen sayfadaki çerçeve numarası bulunur. Ardından, çerçeve numarası çerçeve boyutuyla çarpılır ve ofset ile toplanır.

22 Sayfalı Bellek Yönetimi Mantıksal-Fiziksel adresler

23 Sayfalı Bellek Yönetimi
Örnek 4 bayt uzunluğunda sayfalardan oluşan 32 bayt’lık bir bellek olduğunu varsayınız. Sayfa tablosu yanda verilmiştir. Buna göre aşağıdaki mantıksal adresler için fiziksel adresleri bulunuz. a) 0 b) 3 c) 4 d) 13 Fiziksel adresi hesaplamak için aşağıdaki formül kullanılabilir: Fiziksel Adres (FA)=(Çerçeve Numarası (ÇN)*Çerçeve Boyutu (ÇB))+Ofset (O)

24 Sayfalı Bellek Yönetimi
Çözüm : İlk olarak mantıksal belleğin çizilmesi gerekir. Sayfa boyu : 4 bayt, bellek boyu : 32 bayt Ardından sayfa boyutuna göre belleğin bölünmesi ve her bir mantıksal adresin sayfa numarası ve sayfa ofsetinin hesaplanması gerekir. Sayfa numarası, sayfa tablosundan çerçeve numarasını bulmak için kullanılacaktır.

25 Sayfalı Bellek Yönetimi
a) mantıksal adres : 0 sayfa numarası=0 sayfa ofseti=0 0 numaralı sayfanın bulunduğu çerçeve numarası=5 FA=ÇN*ÇB+O FA=5*4+0=20

26 Sayfalı Bellek Yönetimi
b) mantıksal adres : 3 sayfa numarası=0 sayfa ofseti=3 0 numaralı sayfanın bulunduğu çerçeve numarası=5 FA=ÇN*ÇB+O FA=5*4+3=23

27 Sayfalı Bellek Yönetimi
c) mantıksal adres : 4 sayfa numarası=1 sayfa ofseti=0 1 numaralı sayfanın bulunduğu çerçeve numarası=6 FA=ÇN*ÇB+O FA=6*4+0=24

28 Sayfalı Bellek Yönetimi
d) mantıksal adres : 13 sayfa numarası=3 sayfa ofseti=1 3 numaralı sayfanın bulunduğu çerçeve numarası=2 FA=ÇN*ÇB+O FA=2*4+1=9

29 Sayfalı Bellek Yönetimi
Örnek: Mantıksal adreslerin 16 bit ve sayfa boyutunun 1KB olduğu varsayılsın. Program başına göre bağıl adresi 1502 olan bir bellek erişiminin mantıksal adres eşdeğerini bulunuz.

30 Sayfalı Bellek Yönetimi
16 bit ile 64KB’lik bir alan adreslenebileceğinden 64 tane frame mevcuttur. 64 sayfa 6 bit ile temsil edilebilir, geriye kalan 10 bit de ofset değeridir. (1502)10 adresinin binary karşılığı ( )2’dir.  sayfa_no=1  ofset=478 En anlamlı 6 bit sayfa numarası olacağından, bu erişim birinci sayfada ve ofset değeri 478 olan bellek erişimidir.

31 Sayfalı Bellek Yönetimi
Mantıksal Adresten Fiziksel Adres Dönüşümü Adres uzayı (p+d) bitten oluşsun (p:sayfa numarası, d:ofset değeri). Bir önceki örneğe göre p 6 bit ve d 10 bit olacaktır. Dönüşüm için gerekli adımlar, Mantıksal adresin en anlamlı 6 biti ayrılır, Elde edilen sayfa numarası sayfa tablosunu indekslemek için kullanılır. Buradan çerçeve numarası (f) bulunur, Fiziksel adres de çerçeve numarasına ofset değerinin eklenmesiyle bulunur. sayfa numarası 1, ofset 478 olan mantıksal adresine sahibiz. Sayfa tablosunda sayfa 1 içinde çerçeve 6 = ikili bulunduğunu varsayalım. Fiziksel adres çerçeve numarası 6 ya, ofset 478 eklenmesi ile bulunur. 'dur.

32 Etkin sayfalar ön belleği Translation Lookaside Buffer (TLB)
TLB, sayfalama işleminin (paging) hızını arttırmaya yarayan bir hafıza bölümüdür. Sayfa tablosunda çerçeve(frame) adresini ararken kaybedilen süreyi önlemek için kullanılan özel, küçük ve hızlı bir ön bellektir. Günümüzdeki çoğu bilgisayar mimarisi tarafından desteklenmektedir. Mantıksal bir sayfanın adresi dönüştürüldüğünde sayfadaki öbeklere ulaşımın tekrarı ve dolayısıyla o dönüşümün yakın bir zamanda tekrar kullanılma ihtimali yüksektir.

33 Etkin sayfalar ön belleği Translation Lookaside Buffer (TLB)
Günümüz makineleri yakın zamanda kullanılan sayfa tablosu satırlarını tutan ve adres dönüşümlerinin izini süren bir ön belleğe sahiptir. Bu özel yapıya Etkin sayfalar ön belleği (Translation Lookaside Buffer-TLB) adı verilir. Etkin sayfalar ön belleği sayfa tablosu eşleştirmelerinin sadece bir kısmını tutan bir ön bellektir. Genellikle MMU da bulunan ve küçük boyutlu bir tablodur.

34 Etkin sayfalar ön belleği Translation Lookaside Buffer (TLB)
CPU tarafından mantıksal bir adres tanımlandığında bu sayfa numarası TLB’ye iletilir. Sayfa numarası burada bulunursa (TLB hit) çerçeve adresi hızlı bir biçimde kullanılarak belleğe ulaşılır. TLB miss oluşursa (sayfa numarası TLB de yoksa) sayfa tablosuna gidilerek çerçeve adresi bulunur ve bu TBL’ye de eklenir ki böylece bir daha ihtiyaç olduğunda bu adres hızlı bir biçimde bulunabilir. Eğer TLB alanı dolarsa, işletim sistemi buradaki en az kullanılan değerleri bularak bunların yerine yeni değerleri ekleyecektir.

35 Hiyerarşik Sayfalama (Hierarchical Paging)
Modern bilgisayar sistemleri çok büyük mantıksal adres alanlarını kapsamaktadır. (232’den 264’e kadar ) bu durumda sayfa tablosu da çok büyük olmaktadır. Örneğin, 32 bitlik mantıksal adres alanında, sayfa büyüklüğü 1K (210 ) olarak alınırsa sayfa tablosu 232/210 = 222 girişe sahip olacaktır. Bu değer de çok büyük olduğu için, sayfa tablosunu bütün olarak ana bellekte tutmak yerine, sayfa tablosunu parçalara ayırmak daha uygun olmaktadır. Hiyerarşik Sayfalama Mantıksal Adres alanını çoklu sayfa tablolarına böler. Basit bir teknik olarak İki seviyeli sayfa tablosu olarak uygulanabilir.

36 İki seviyeli Sayfalama

37 32-bit Mantıksal Adres Evreni
32 bitlik bir sistem 1K’lık sayfalara bölündüğünde mantıksal adresteki sayfa numaraları 22 bitlik , sayfa ofseti ise 10 bitlik olmaktadır. Hiyerarşik Sayfa Tablosu kullanımında, Sayfa tablosuna erişmek için de sayfa tablosu kullanılması gerekeceği için 22 bitlik sayfa numarası da 12 bitlik sayfa numarası ve 10 bitlik sayfa ofseti olarak tekrar ikiye ayrılacaktır. Mantıksal adres aşağıdaki gibi olur. Burada p1 parçaladığımız dış sayfa tablosundaki (outer page table) indeksi, p2 ise iç sayfa tablosundaki (inner page table) yerleşimi temsil etmektedir.

38 İki seviyeli Sayfalama Örneği

39 64-bit Mantıksal Adres Evreni
64 bitlik bir sistem 4K’lık (212) sayfalara bölündüğünde sayfa tablosu 264 /212 = 252 girişe sahip olacaktır. Eğer 2 seviyeli sayfalama kullanılırsa, Dış sayfa tablosunda 242 giriş var. Bu değer de çok büyük. Bir çözüm, ikinci bir dış sayfa tablosu daha eklemektir.

40 Üç seviyeli Sayfalama

41 Hashed Page Table

42 Inverted Page Table

43 Kesimli Bellek Yönetimi (Segmentation)

44 Kesimli Bellek Yönetimi (Segmentation)
Kesimli bellek yönetiminde (segmentation) mantıksal adres alanı sayfalar yerine segmentlerden (kesimlerden) oluşmaktadır. Programların tüm segmentleri aynı boyda olmak zorunda değildir. Ancak segment boyunun bir üst sınırı bulunur. Maksimum segment boyunun (segment size) bilinmesi gerekir. Bir programın derlenmesi sırasında derleyici segment atamalarını gerçekleştirir.

45 Kesimli Bellek Yönetimi (Segmentation)
1 4 2 3 physical memory space 1 3 2 4 user space

46 Kesimli Bellek Yönetimi (Segmentation)
Bir mantıksal adres, hem segment numarası (s) hem de segment içi ofset değerinden (d) meydana gelmektedir. Mantıksal Adres: <segment-numarası, ofset> Segment numarası (s) Offset değeri (d)

47 Kesimli Bellek Yönetimi (Segmentation)
Mantıksal adreslerin fiziksel adreslere dönüştürülmesi için segment tablosuna ihtiyaç vardır. Segment tablosu, her segmentin başlangıç (taban) adresi ve uzunluğu bilgisini tutmaktadır. Base (Taban) adresi: Bellekte segmentin başlangıç adresini tutar. limit : Segmentin uzunluğunu tutar. Böylece her segmentin başlama ve bitiş (tavan adresi) noktaları hesaplanabilir.

48 Kesimli Bellek Yönetimi (Segmentation)
Mantıksal adres alanının yanda göründüğü gibi olduğu varsayılırsa. Segment tablosu bu bilgiler kullanılarak elde edilebilir. Fiziksel bellek de segment tablosu kullanılarak oluşturulabilir.

49 Kesimli Bellek Yönetimi (Segmentation)
Segment tablosundan segmentin adresi ve boyu alınır. Segment boyları eşit olmadığından dinamik bölmelemeye benzer özelliklere sahiptir. Bir program birden fazla segmentden oluşabilir. Bir programa ilişkin segmentler bellekte ardışıl yerleşmek zorunda değildir.

50 Kesimli Bellek Yönetimi (Segmentation)
Bir mantıksal adresin ofset değeri, taban ve tavan değerleri arasında olmalıdır. Eğer ofset değeri fazla olursa mantıksal adresin segmenti aşması bellek erişim hatası (segment fault) oluşur. Eğer ofset değeri belirtilen sınırlar arasında ise segment taban değeri ile ofset adresi toplanarak, fiziksel adres oluşturulmaktadır. Fiziksel Adres (FA) = Segment Taban Adresi (TA) + Ofset (O)

51 Kesimli Bellek Yönetimi (Segmentation)

52 Kesimli Bellek Yönetimi (Segmentation)

53 Kesimli Bellek Yönetimi (Segmentation)
Örnek Segment tablosunun yandaki gibi olduğunu varsayınız. Aşağıdaki mantıksal adreslerin (segment no, ofset) fiziksel adres karşılıklarını bulunuz. a) (0, 198) b) (2, 156) c) (1, 530) d) (3, 455) e) (0, 252) Fiziksel adresi hesaplamak için aşağıdaki formül kullanılabilir: Fiziksel Adres (FA) = Segment Taban Adresi (TA) + Ofset (O) Segment No Taban Adresi (base) Uzunluk (limit) 660 248 1 1752 422 2 222 198 3 996 604

54 Kesimli Bellek Yönetimi (Segmentation)
İlk olarak her mantıksal adresin hangi segmentde olduğu segment tablosu kullanılarak bulunmalı ve ofset değeri bu segmentin uzunluğu ile karşılaştırılmalıdır. Eğer ofset küçükse fiziksel adres hesaplanmalı, değilse bellek erişim hatası (segment fault) oluşturulmalıdır. Mantıksal adres Fiziksel adres a) (0, 198) 198 < 248 = 858 b) (2, 156) 156 < 198 = 378 c) (1, 530) 530 ≮ 422 bellek erişim hatası d) (3, 455) 455 < 604 = 1451 e) (0, 252) 252 ≮ 248 Segment No Taban Adresi (base) Uzunluk (limit) 660 248 1 1752 422 2 222 198 3 996 604

55 Sayfalı ve Kesimli Bellek Yönetimleri için Avantaj ve Dezavantajlar
Kesimli bellek yönetiminin amacı adres alanının mantıksal olarak dilimlenmesidir. Sayfalı bellek yönetiminde ise bellek fiziksel olarak dilimlenip oluşturulur. Sayfalar makine donanımına bağlı olarak sabit boyuttadır. Segmentler ise değişken boyuttadır.

56 Sayfalı ve Kesimli Bellek Yönetimleri için Avantaj ve Dezavantajlar
Program adresinin sayfa ve ofset numaralarına ayrılması donanımın bir işlevidir. Ofset numarasının sınırı aşması otomatik olarak sayfanın çevrilmesine sebep olur. Oysa segment ve ofset numarasında bir sınır aşması söz konusu değildir. Bu durumda bellek erişim hatası oluşur.

57 Sayfalı ve Kesimli Bellek Yönetimleri için Avantaj ve Dezavantajlar
Sayfalamayı uygulamak kolaydır ve etkili bir bellek yönetimi tekniği olarak varsayılır. Sayfaların ve çerçevelerin eşit boyutu nedeniyle, değiştirme işlemi (swapping) çok kolaydır. Sayfa tablosu fazladan bellek alanı gerektirir, bu nedenle küçük bir RAM'e sahip bir sistem için iyi olmayabilir.


"İşletim Sistemleri (Operating Systems)" indir ppt

Benzer bir sunumlar


Google Reklamları