Hafıza Yönetimi
Defini bekliyoruz
Memory management is a fundamental process in operating systems (OS) responsible for allocating and deallocating memory space to processes and applications. Its primary goals are to efficiently utilize the available physical memory (RAM), prevent processes from interfering with each other's memory regions, and provide a consistent memory address space to applications, often larger than the physical RAM available. Key techniques include partitioning (dividing memory into fixed or variable-sized blocks), paging (dividing memory and processes into fixed-size pages and frames, allowing non-contiguous allocation), and segmentation (dividing memory into logical segments corresponding to program modules). Virtual memory is a crucial concept, extending the available memory by using secondary storage (like a hard drive or SSD) as an overflow for RAM. When physical memory is full, less frequently used pages are swapped out to disk (swap space) and loaded back when needed. This allows the system to run more applications than physical RAM would normally permit and provides memory protection. Memory management algorithms, such as First-Fit, Best-Fit, Worst-Fit for contiguous allocation, and algorithms like Least Recently Used (LRU) or First-In, First-Out (FIFO) for page replacement in virtual memory, are employed to optimize performance and minimize fragmentation (internal and external).
graph LR
Center["Hafıza Yönetimi"]:::main
Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
Rel_process_management["process-management"]:::related -.-> Center
click Rel_process_management "/terms/process-management"
Rel_garbage_collection["garbage-collection"]:::related -.-> Center
click Rel_garbage_collection "/terms/garbage-collection"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5 yaşındaki gibi açıkla
Bellek yönetimi, bir bilgisayarın kısa süreli belleği (RAM) için bir kütüphaneci gibidir; her programın kendi çalışma alanına sahip olmasını ve başka bir programın işlerine karışmamasını sağlar.
🤓 Expert Deep Dive
Modern bellek yönetimi, büyük ölçüde, CPU tarafından üretilen sanal adresleri RAM'deki fiziksel adreslere çeviren bir donanım bileşeni olan Bellek Yönetimi Birimi'ne (MMU) dayanır. İşletim sisteminin sayfa tabloları tarafından yönetilen bu çeviri süreci, sanal bellek, bellek koruması ve belleğin verimli paylaşımını mümkün kılar. İsteklenilen sayfa fiziksel bellekte olmadığında sayfa hatası oluşur ve bu da işletim sisteminin sayfa değiştirme algoritmasını tetikleyerek sayfanın ikincil depolamadan getirilmesini sağlar. Gelişmiş teknikler arasında bellek eşlenmiş dosyalar, verimli işlem çatallaması için yazma sırasında kopyalama mekanizmaları ve çok işlemcili sistemlerde bellek erişim gecikmesini optimize etmek için NUMA (Tekdüze Olmayan Bellek Erişimi) farkındalığı yer alır. Güvenlik etkileri önemlidir; arabellek taşmaları veya serbest bırakıldıktan sonra kullanma hataları gibi güvenlik açıkları genellikle kusurlu bellek yönetiminden kaynaklanır ve potansiyel istismarlara yol açar. Java veya Python gibi yönetilen çalışma zamanlarında yaygın olan çöp toplama, artık kullanılmayan nesneler tarafından işgal edilen belleği geri kazanan başka bir otomatik bellek yönetimi biçimidir.