Tez No İndirme Tez Künye Durumu
427853
A new memory allocator selection method for reducing memory fragmentation / Bellek parçalanmasını azaltmak için yeni bir bellek ayırıcısı seçme yöntemi
Yazar:ONUR ÜLGEN
Danışman: DOÇ. DR. MUTLU AVCI
Yer Bilgisi: Çukurova Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:
Onaylandı
Doktora
İngilizce
2016
137 s.
Bellek parçalanması belleğin verimli kullanılmasını engelleyen önemli problemlerden biridir. Belleğin harici ve dâhili parçalanma sorunlarını çözmek üzere çeşitli çözümler önerilmiştir. Dâhili bellek parçalanmasına en güncel çözümler çöp toplayıcı yazılımlardır. Çöp toplayıcı yazılımlar yüksek zaman tüketimleri ile istenmeyen performans düşüşüne, bellek ve enerji tüketimine sebep olmaktadırlar. Bu nedenle, çeşitli bellek ayırıcılar geliştirilmiş ve yazılımın bellek üzerindeki yerleşim karakteristiğine göre farklı performanslar sergilemiştir. Bu durum yazılım geliştiricilerin kendi yazılımlarına uygun bellek ayırıcı çözümünü test edip en verimli olanı seçmesini gerekli kılmaktadır. Yazılım geliştirme aşamasındaki bu seçimin statik olması değişen bellek durumları, donanım özellikleri ve işletim sistemi şartları göz önüne alındığı zaman her durumda en verimli çözümü garanti etmesi mümkün olmamaktadır. Bu yüzden, her uygulama için dinamik olarak en iyi bellek ayırıcısına karar veren yeni bir yaklaşım önerilmektedir. Önerilen çözüm, her prosesi çeşitli bellek ayırıcılarla sınar. Sınadıktan sonra, işletim sisteminin (İS) durumunu da göz önüne alarak optimum bir bellek ayırıcısı seçer. Örneğin İS bellek yetersizliği yaşıyorsa, yöntem, yeni prosesler için belleği en verimli kullanan bellek ayırıcıyı; eğer MİB (merkezi işlem birimi) çok kullanılıyorsa, en hızlı bellek ayırıcıyı seçer. Diğer durumlarda ise dengeli bellek ayırıcıyı seçer. Test sonuçlarına göre, önerilen yöntem %58'e kadar daha az parçalanmış bellek kullanımı ve %90'a kadar daha hızlı bellek işlemleri sunmaktadır. 107 prosesin ortalamasına göre yöntem, %7.16 daha az parçalanmış bellek kullanımı ve %1.79 daha hızlı bellek işlemleri sunmaktadır. Test sonuçları da kanıtlamaktadır ki, önerilen yöntem, değişen bellek durumları, donanım özellikleri ve işletim sistemi şartları için en verimli çözümü sunmaktadır.
Memory fragmentation is one of the most important problems preventing efficient memory usage. Many solutions have been proposed for external and internal memory fragmentation. The up-to-date solution to internal memory fragmentation is garbage collectors. However, garbage collectors cause serious performance impact, memory and energy consumption. Therefore, various memory allocators have been developed, and they have shown different behaviour according to memory layout of the software. Software developers need to test these allocators, and find an efficient one for their programs. Selection of memory allocator at software development stage does not guarantees an efficient solution, since different memory usage patterns, operating system conditions, and hardware specifications may need to another memory allocator. Therefore, a novel approach for dynamically deciding the best memory allocator for every application is proposed. The proposed solution tests each process with various memory allocators. After the testing, it selects an efficient memory allocator according to condition of operating system (OS). If OS runs out of memory, then it will select the most memory efficient allocator for new processes. If most of the CPU power is occupied, then it will select the fastest allocator. Otherwise, the balanced allocator is selected. According to test results, the proposed solution offers up to 58% less fragmented memory, and 90% faster memory operations. In average of 107 processes, it offers 7.16% less fragmented memory, and 1.79% faster memory operations. The test results also prove, the proposed solution presents optimum solution for different memory usage patterns, operating system conditions, and hardware specifications.