Bellek yönetimi (işletim sistemleri) - Memory management (operating systems)

İçinde işletim sistemleri, hafıza yönetimi bilgisayarın yönetiminden sorumlu işlevdir. birincil bellek.[1]:pp-105–208

Bellek yönetimi işlevi, her bellek konumunun durumunu izler. tahsis edilmiş veya Bedava. Hafızanın rakip süreçler arasında nasıl tahsis edileceğini, hangisinin hafızayı alacağına, ne zaman alacaklarına ve ne kadarına izin verileceğine karar verir. Bellek ayrıldığında, hangi bellek konumlarının atanacağını belirler. Hafızanın ne zaman serbest kaldığını veya ayrılmamış ve durumu günceller.

Bu farklıdır uygulama bellek yönetimi işlem, işletim sistemi tarafından kendisine atanan belleği yönetme şeklidir.

Bellek yönetimi teknikleri

Tek bitişik ayırma

Tek tahsis en basit bellek yönetimi tekniğidir. Genellikle işletim sistemi için ayrılan küçük bir bölüm haricinde, bilgisayarın tüm belleği tek uygulama tarafından kullanılabilir. MS-DOS hafızayı bu şekilde ayıran bir sistem örneğidir. Bir yerleşik sistem tek bir uygulamanın çalıştırılması da bu tekniği kullanabilir.

Tek bitişik tahsis kullanan bir sistem, çoklu görev tarafından takas kullanıcılar arasında geçiş yapmak için hafıza içeriği. İlk versiyonları MÜZİK işletim sistemi bu tekniği kullandı.

Bölümlendirilmiş tahsis

Bölümlendirilmiş tahsis birincil belleği birden çok bellek bölümlerigenellikle bitişik bellek alanları. Her bölüm, belirli bir bölüm için tüm bilgileri içerebilir. veya görev. Bellek yönetimi, bir işe başladığında bir bölüm tahsis etmekten ve iş bittiğinde ayrılmasından ibarettir.

Bölümlendirilmiş tahsis, genellikle işlerin birbirine veya işletim sistemine müdahale etmesini önlemek için bazı donanım desteği gerektirir. IBM System / 360 kullanılan bir kilit ve anahtar tekniği. Kullanılan diğer sistemler taban ve sınırlar bölüm sınırlarını içeren ve geçersiz erişimleri işaretleyen kayıtlar. UNIVAC 1108 Depolama Sınırları Kaydı talimatlar ve veriler için ayrı temel / sınır kümeleri vardı. Sistem şunlardan yararlandı: bellek serpiştirme denen şeyi yerleştirmek için banka ve d banka ayrı bellek modüllerinde.[2]:3–3

Bölümler ya statik, tanımlanmıştır İlk Program Yükü (IPL) veya önyükleme süresi veya tarafından Bilgisayar operatörü veya dinamik, belirli bir iş için otomatik olarak oluşturulur. IBM System / 360 İşletim Sistemi Sabit Sayıda Görevle Çoklu Programlama (MFT) bir statik bölümleme örneğidir ve Değişken Sayıda Görev ile Çoklu Programlama (MVT) dinamik bir örnektir. MVT ve halefleri terimi kullanır bölge dinamik bölümleri diğer sistemlerdeki statik bölümlerden ayırmak için.[3]:73

Bölümler olabilir yeniden yerleştirilebilir donanım kullanmak yazılan hafıza, gibi Burroughs Corporation B5500 veya taban ve sınır kayıtları gibi PDP-10 veya GE-635. Yeniden yerleştirilebilir bölümler olabilir sıkıştırılmış bitişik fiziksel belleğin daha büyük parçalarını sağlamak için. Sıkıştırma, daha büyük bitişik boş alanlar oluşturmak için işlem sonlandırmanın neden olduğu "delikleri" veya kullanılmayan bellek alanlarını ortadan kaldırmak için belleğin "kullanımdaki" alanlarını hareket ettirir.[4]:94

Bazı sistemler bölümlerin olmasına izin verir takas edildi -e ikincil depolama ek bellek boşaltmak için. IBM'in ilk sürümleri Zaman Paylaşımı Seçeneği (TSO) kullanıcıları tek bir zaman paylaşımı bölüm.[5]

Sayfalı bellek yönetimi

Sayfalı ayırma bilgisayarın birincil belleğini adı verilen sabit boyutlu birimlere böler sayfa çerçevelerive programın sanal adres alanı içine sayfaları aynı boyutta. Donanım bellek yönetim birimi sayfaları çerçevelerle eşler. Fiziksel bellek, adres alanı bitişik görünürken sayfa bazında tahsis edilebilir.

Genellikle sayfalı bellek yönetimi ile her iş kendi adres alanında çalışır. Ancak, bazıları var tek adres alanlı işletim sistemleri tüm işlemleri tek bir adres alanı içinde çalıştıran, örneğin IBM i, tüm süreçleri geniş bir adres alanında çalıştıran ve IBM OS / VS2 SVS, tüm işleri tek bir 16MiB sanal adres alanında çalıştıran.

Disk belleği olabilir talep sayfalı sistem sayfaları gerektiği gibi birincil ve ikincil bellek arasında taşıyabildiğinde.

Bölümlere ayrılmış bellek yönetimi

Bölümlenmiş bellek kullanıcının programına "doğrusal ve bitişik adres alanı" sağlamayan tek bellek yönetimi tekniğidir.[1]:s. 165 Bölümler genellikle bir kod prosedürü veya bir veri dizisi gibi mantıksal bir bilgi gruplamasına karşılık gelen bellek alanlarıdır. Segmentler, bir segment tablosu genellikle bellekteki bölümün fiziksel adresini, boyutunu ve erişim koruma bitleri ve durumu gibi diğer verileri (takas, takas, vb.) içerir.

Bölümleme, diğer şemalara göre daha iyi erişim korumasına izin verir çünkü bellek referansları belirli bir bölümle ilişkilidir ve donanım, uygulamanın o bölüm için tanımlanmamış belleğe başvurmasına izin vermez.

Sayfalandırmalı veya sayfasız segmentasyon uygulamak mümkündür. Sayfalama desteği olmadan bölüm, gerekirse belleğe giren ve çıkan fiziksel birimdir. Sayfalama desteği ile sayfalar genellikle değiştirme birimidir ve bölümleme yalnızca ek bir güvenlik düzeyi ekler.

Segmentli bir sistemdeki adresler genellikle segment id'sinden ve sıfır ofset olarak tanımlanan segment temel adresine göre bir ofsetten oluşur.

Intel IA-32 (x86) mimarisi, bir işlemin her biri 4 GiB'ye kadar 16.383 segmente sahip olmasına izin verir. IA-32 segmentleri, bilgisayarın alt bölümleri doğrusal adres alanı, sayfalama donanımı tarafından sağlanan sanal adres alanı.[6]

Multics işletim sistemi muhtemelen bölümlere ayrılmış belleği uygulayan en iyi bilinen sistemdir. Multics segmentleri, bilgisayarın alt bölümleri fiziksel hafıza 256 sayfaya kadar, her sayfanın boyutu 1K 36-bit kelime olup, maksimum segment boyutu 1MiB (Multics'te kullanıldığı gibi 9-bit bayt ile) ile sonuçlanır. Bir işlemin en çok 4046 segmenti olabilir.[7]

Kullanıma sunma / rollin

Rollout / rollin (RO / RI), bir bilgisayar işletim sistemi bellek yönetimi tekniğidir.paylaşılan çalışan bir programın kodu ve verileri, yardımcı hafıza (disk veya tambur) serbest bırakmak için ana Depo başka bir görev için. Programlar "talep sonunda veya ... uzun bir olay beklerken" kullanıma sunulabilir.[8] Kullanıma sunma / rollin yaygın olarak zaman paylaşımı sistemler[9] Kullanıcının "düşünme süresi", takasın yapılacağı zamana kıyasla nispeten uzundur.

Aksine sanal depolama - sayfalama veya bölümleme, dağıtım / rollin gerektirmez ve özel bellek yönetimi donanımı; ancak, sistemde bir gibi bir yeniden konumlandırma donanımı yoksa hafıza haritası veya taban ve sınırlar kayıtları, programın orijinal bellek konumlarına geri döndürülmesi gerekir. Sunum / rollin, büyük ölçüde sanal bellek tarafından değiştirildi.

Sunum / rollin, isteğe bağlı bir özellikti Değişken Sayıda Görevle (MVT) OS / 360 Çoklu Programlama

Sunum / rollin, belirli bir işin başlangıçta belirtilen bölgesinin ötesinde geçici, dinamik genişlemesine izin verir. Bir iş daha fazla alana ihtiyaç duyduğunda, sunum / rollin, işin kullanımı için atanmamış depolama alanı elde etmeye çalışır. Böyle bir atanmamış depolama yoksa, başka bir iş çıkarılır - yani yardımcı depoya aktarılır - böylece bölgesi ilk iş tarafından kullanılabilir. İlk iş tarafından serbest bırakıldığında, bu ek depolama, (1) kaynağı ise atanmamış depolama olarak veya (2) ana depolamaya geri aktarılacak işi (yuvarlanmış) almak için yeniden kullanılabilir.[10]

OS / 360'ta kullanıma sunma / rollin'in yalnızca toplu işler için kullanıldığını ve bölgeyi ödünç alan iş adımı sona erene kadar rollin gerçekleşmediğini unutmayın.

Ayrıca bakınız

Referanslar

  1. ^ a b Madnick, Stuart; Donovan, John (1974). İşletim sistemleri. McGraw-Hill Kitap Şirketi. ISBN  0-07-039455-5.
  2. ^ Sperry Rand (1970). UNIVAC 1108 Çok İşlemcili Sistem: Sistem Tanımı (PDF).
  3. ^ IBM Corporation (1970). IBM System / 360 Operating System: Kavramlar ve Tesisler (PDF).
  4. ^ Samanta, D. (2004). Klasik Veri Yapıları. PHI Learning Pvt. Ltd. ISBN  8120318749.
  5. ^ IBM Corporation (1972). IBM System / 360 İşletim Sistemi Zaman Paylaşımı Seçenek Kılavuzu (PDF). s. 10.(GC28-6698-5)
  6. ^ Intel Kurumu. IA-32 Intel Mimarisi Yazılım Geliştirici Kılavuzu Cilt 1: Temel Mimari.
  7. ^ Yeşil, Paul. "Multics Sanal Bellek - Eğitim ve Düşünceler". Alındı 9 Mayıs 2012.
  8. ^ Walraet, Bob (28 Haziran 2014). Programlama, İmkansız Zorluk. Elsevier. s. 124. ISBN  978-0-444-87128-2. Alındı 24 Ağu 2018.
  9. ^ "rollin / kullanıma sunma" Uluslararası Bilgisayar Performans Modelleme, Ölçme ve Değerlendirme Sempozyumu. Bilgi İşlem Makineleri Derneği. 29–31 Mart 1976. s. 137. Alındı 24 Ağu 2018.
  10. ^ IBM Corporation (Haziran 1970). IBM System / 360 Operating System: .Kavramlar ve Tesisler (PDF). s. 55. Alındı 24 Ağu 2018.