İçeriğe atla

Bellek sızıntısı

Bellek sızıntısı; bir bilgisayar yazılımının bellek harcarken kullandığı belleği işletim sistemine geri veremediği durumdur. Bu sorun ancak yazılımın kaynak kodlarına ulaşımı olan bir yazılımcı tarafından çözülebilir. Bellek sızıntısı başka bellek sorunlarına benzer belirtiler yaratır, bu nedenle bellek kullanımının artışı ile ilgili her sorunun kaynağı bellek sızıntısı olmayabilir.

Bellek sızıntısı, sistemdeki fiziksel belleğin kısa veya uzun bir sürede dolmasına neden olur ve sistem takas dosyası yoluyla sanal belleğe yüklenmeye başlar ve sonunda çöker. Kişisel bilgisayarlarda bu sorunun belirtisi genellikle bilgisayar açıldıktan sonra sistemin zamanla yavaşlaması ve çökmesidir.

Yarattığı sorunlar

Bellek sızıntısı, mevcut bellek miktarını azaltarak bilgisayar performansında düşüşe neden olabilir. En kötü durumda, bütün mevcut bellek dağıtılabilir ve bütün sistem veya cihaz doğru bir şekilde çalışmayı durdurabilir.

Bellek sızıntıları bazen ciddi bir sorun olmayabilir, hatta bazen fark edilmeyebilir. Modern işletim sistemlerinde, bir uygulama kapandığı zaman kullandığı belleği geri vermektedir. Kısa süre çalışan bir programın yarattığı bellek sızıntısı fark edilmeyebilir ve hiçbir sorun yaratmayabilir.

Sızıntıların çok daha ciddi sorunlar yarattığı bazı durumlar:

  • Programın uzun süre çalışması ve zaman içinde fazladan bellek tüketmesi,
  • Yeni belleğin sıklıkla dağıtılması,
  • İşletim sisteminin kendi içinde hafıza sızıntısı olması,
  • Sızıntının kaynağının bir sistem cihazı sürücüsü olması.

Ayrıca bakınız

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

<span class="mw-page-title-main">Sunucu (bilişim)</span> bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların) erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimi

Sunucu, bilişim alanında "istemci" denilen diğer program ve cihazlara çeşitli işlevler sunan bilgisayar donanımları veya yazılımlarıdır. Bu mimariye istemci-sunucu modeli denir. Sunucular, istemciler arasında veri veya kaynak paylaşımı, bir istemci için hesaplama yapma gibi çeşitli işlevleri yerine getirebilirler. Bu işlevlere genellikle "servis" veya "hizmet" denir. Tek bir sunucu çok sayıda istemciye hizmet verebilir, tek bir istemci de çok sayıda sunucudan hizmet alabilir. İstemci ve sunucu aynı cihaz üzerinde çalışabileceği gibi, istemci ağ üzerinden farklı bir cihazdaki sunucuya da bağlanabilir. Tipik sunucular arasında veritabanı sunucuları, dosya sunucuları, e-posta sunucuları, yazdırma sunucuları, web sunucuları, oyun sunucuları ve uygulama sunucuları sayılabilir.

<span class="mw-page-title-main">DOS</span> bilgisayarlar için ufak ve basit işletim sistemi

DOS, bilgisayarlar için ufak ve basit bir işletim sistemi türü olup, ana görevi disket ve sabit disk gibi saklama ortamlarının yönetimidir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">Mikro çekirdek</span>

Bilgisayar biliminde, bir mikro çekirdek, bir işletim sistemini uygulamak için gereken mekanizmaları minimuma yakın sağlayan işletim sistemi çekirdeği türüdür. Ana çekirdek sadece birimler arası iletişim ve süreçleri sıralama işlerini yapar. Bellek yönetimi, kayıt ortamı yönetimi, sürücüler ve ağ ile ilgili çok sayıda sürec birbirleriyle iletişim kurarak haberleşir. Bu sayede; parçalardan oluşan yapı ve tasarımın sadeleştirilmesi, bir parçadaki hatanın diğer parçaları etkilememesi ve çalışma anında işletim sisteminin güncelleştirilebilmesi mümkün olabilmektedir.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

<span class="mw-page-title-main">Bellek yönetimi</span>

Ana belleğin işlemler arasında paylaştırılmasına ana bellek yönetimi ya da bellek yönetimi adı verilir. İşletim sisteminin bu amaçla oluşturulan kesimine de bellek yöneticisi adı verilir.

<span class="mw-page-title-main">PowerPC</span>

PowerPC, AIM olarak bilinen Apple-IBM-Motorola ittifakının 1991'de geliştirdiği bir RISC mikroişlemcisidir. Genel olarak kişisel bilgisayarlar içindir. PowerPC merkezi işlem birimleri (CPU) gömülü (embedded) ve yüksek performans işlemcileri olduğu için popüler olmuştur. PowerPC 1990'da AIM' in ve PReP'in temel taşı oldu, fakat mimari Apple'ın Macintosh'unun 1994–2006 modellerinde daha başarılı bulundu.

NUMA, Düzensiz Bellek Erişimi veya Düzensiz Bellek MimarisiNon-Uniform Memory Access veya Non-Uniform Memory Architecture” (NUMA) çok işlemcililerde bellek erişim zamanının belleğin işlemci üzerindeki yerine bağlı olduğu bir bilgisayar belleği tasarımıdır. NUMA altında bir işlemci kendi yerel belleğine yerel olmayan bellekten daha hızlı bir şekilde ulaşır, diğer bir ifadeyle, bir başka işlemcinin yerel belleğinden veya işlemciler arasında paylaşılan bellekten daha hızlı erişir.

Boru hattı yöntemi bilgisayar mimarisi ve diğer sayısal ürünlerin tasarımında başarımı artırmak için uygulanan bir yöntemdir. Komutları, boru hattı yöntemi ile işleyip daha kısa süre içinde bitmesini sağlar. Asıl amacı saat sıklığını artırarak başarımı artırmaktır. Farklı kaynakları aynı anda, farklı işler tarafından kullanarak çalışır.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

<span class="mw-page-title-main">BIOS</span> EPROM adı verilen bir yonga üzerinde ROM Bellek biçiminde yer alan yazılım

BIOS,. EPROM adı verilen bir yonga üzerinde ROM Bellek biçiminde yer alan bir tür yazılımdır. Bilgisayar açıldığı anda işlemciye tüm diğer donanımları sırasıyla tanıtır. Donanımların temel iletişim protokollerini belirler. İşletim sisteminin başlangıç öğelerinin herhangi bir sürücüden yüklenmesini sağlar. İşletim sistemi çalışırken donanım ve işletim sistemi arasındaki ilişkileri düzenler.

Sanal bellek, fiziksel belleğin görünürdeki miktarını arttırarak uygulama programına (izlence) fiziksel belleğin boyutundan bağımsız ve sürekli bellek alanı sağlayan bilgisayar tekniğidir. Ana belleğin, diskin (ikincil saklama) önbelleği (cache) gibi davranmasıyla; yani disk yüzeyini belleğin bir uzantısıymış gibi kullanmasıyla gerçekleştirilir. Ancak gerçekte, yalnızca o anda ihtiyaç duyulan veri tekerden ana belleğe aktarılıyor olabilir. Günümüzde genel amaçlı bilgisayarların işletim sistemleri çoklu ortam uygulamaları, kelime işlemcileri, tablolama uygulamaları gibi sıradan uygulamalar için sanal bellek yöntemi kullanılmaktadır.

Sayfalama ya da bellek adresleme, durgun sanal bellek sayfalarının ikincil bellekte (teker) saklanarak daha sonra ihtiyaç duyulduğunda ana belleğe yüklenmesi işlemini içerir. Bir diğer anlamı, adres uzayının belli oranlarda bloklara ayrılmasıdır. Sayfalama, bellek mahallerine ulaşımı ve adreslemeyi kolaylaştırır. 6502 mikroişlemcili bir sistemde 65536'lık adres uzayı 256 adet 256 Baytlık hayalı sayfalara ayrılır. Genelde 6502 işlemcili sitemlerde 1. sayfa yığın olarak ayrılırken 0. sayfaya bakış tabloları veya veri blokları yerleştirilir.

<span class="mw-page-title-main">İşlem (bilgisayar)</span>

Bilgisayar bilimlerinde işlem (process) terimi, belleğe yüklenmiş ve işlemcide (CPU) yürütülmekte olan bir program olarak tanımlanmaktadır. Uygulamalar diskte çalışmaz halde bulunurken ise program olarak tanımlanır. Bir program kendi başına pasif komut yığınıdır ve işlem ise bu komutların aktif olarak yürütülmesidir.

<span class="mw-page-title-main">İşlem yönetimi</span>

İşlem yönetimi günümüz işletim sistemlerinin önemli bir parçasıdır. İşletim sisteminin işlemlere yer alması, aralarında haberleşmeyi sağlaması onun önemli görevlerindendir. İşletim sistemi kaynakları işlemlere göre ayırmalı, işlemleri veri aktarımı ve paylaşımına uygun hale getirmeli, her işlemin kaynağını diğer işlemlerden korumalı ve işlemler arası senkronizyonu sağlamalıdır. Bunları yapabilmek için işletim sistemi her işlem için o işlemin mevkisini ve sahipibi tanımlayan ve işletim sistemini her veriği üzerinde kontrol uyguladığı bir veri yapısı sağlamalıdır.

Sonsuz döngü, çeşitli sebeplerle sonsuza kadar döngüye giren ve sonlanamayan bilgisayar programı komutu parçalarına verilen ad. Bu sebepler döngünün; bir sonlandırıcı koşulun bulunmaması, bulunsa da hiçbir zaman sağlanamayacak olması ya da bu koşulun döngünün her seferinde yeniden başlamasına neden olması olabilir. Zaman paylaşımlı eski işletim sistemlerinde sonsuz döngüler tüm sistemin kilitlenmesine sebep oluyordu. Günümüzdeki yaygın olan ve öncelikli çoklugörev modelini kullanan sistemlerde ise bu döngüler tüm işlemci zamanını harcasa da kullanıcı tarafından sonlandırılabilir. Meşgul bekleme döngüleri de zaman zaman "sonsuz döngü" olarak adlandırılabilir. Bir bilgisayarın "donma"sının muhtemel sebepleri bir sonsuz döngü, deadlock ya da izinsiz bellek erişimi olabilir.

<span class="mw-page-title-main">Yongada sistem</span> Bir entegre devre türü

Yongada sistem bir entegre devre türüdür. Tek başına bir bilgisayarda bulunan bütün parçaları içerebilir. Aynı zamanda analog, sayısal, karışık sinyal ve radyo iletişimi işlevlerini bünyesinde toplayabilir. Yongada sistemlere düşük güçle çalışan mobil elektronikte sıkça rastlanır. En yaygın kullanım alanı gömülü sistemlerdir. Yongada sistemlerin mikrodenetleyicilerden en büyük farkı işlem gücü ve yüksek hafızasıdır. Ayrıca yongada sistemler harici flash depolama, RAM ve çok çeşitli başka elemanlarla aynı anakart üzerinde onları yöneterek çalışabilirken mikrodenetleyicilerde bunun gibi çok parçalı bir yapı yoktur. Daha doğrusu bir gömülü sistem eğer bir mikrodenetleyici ile kurulduysa ROM, RAM gibi bileşenler mutlaka mikrodenetleyicinin içerisinde bulunurken yongada sistemde böyle bir zorunluluk yoktur. Ayrıca yongada sistemlerin gücü son kullanıcıların kullandığı Windows, Macintosh, iOS, Android vb. işletim sistemlerini çalıştırmaya yeterken mikrodenetleyiciler çok daha spesifik alanlarda ve çok kısıtlı ROM ve RAM'ler ile çalışırlar. Nihayetinde mikrodenetleyiciler örneğin bir çamaşır makinesini kontrol ederken yongada sistemler akıllı telefon, tablet ve hatta bilgisayarlara bile can verebilirler.

Mach, Carnegie Mellon Üniversitesi'nde öncelikle dağıtık hesaplama ve paralel hesaplama bilgi işlem olmak üzere işletim sistemi araştırmalarını desteklemek için geliştirilen bir işletim sistemi çekirdeğidir. Mach bir mikrokernelin en eski örneklerinden biri olarak sıklıkla bahsedilir. Bununla birlikte, Mach'ın tüm versiyonları mikrokernel değildir. MacOS'un temel aldığı NextStep ve OpenStep, hepsi de daha önce bir mikro çekirdek olmayan Mach içeren XNU işletim sistemi çekirdeğini büyük bir bileşen olarak içerir. Mach türevleri, GNU Hurd ve Apple'ın işletim sistemleri macOS, iOS, tvOS ve watchOS'daki modern işletim sistemi çekirdeklerinin temelini oluşturmaktadır.