Stack ile heap arasındaki fark nedir? Gömülü sistemlerde dinamik bellek kullanımından neden kaçınılır?

Cevap

  • Stack: yerel değişkenler ve fonksiyon çağrı bilgileri için kullanılır. Otomatik yönetilir, çok hızlıdır, boyutu sınırlıdır.
  • Heap: malloc/free ile çalışma zamanında ayrılan bellektir. Esnektir ama yönetimi geliştiricidedir.

Gömülü sistemlerde malloc'tan kaçınılmasının nedenleri:

  • Parçalanma (fragmentation): uzun süre çalışan cihazda toplam bellek yeterli olsa bile büyük blok ayrılamayabilir
  • Deterministik olmama: ayırma süresi öngörülemez, gerçek zamanlı gereksinimlerle çelişir
  • Sızıntılar aylarca çalışan bir cihazı sonunda çökertir

Bunun yerine statik ayırma veya sabit boyutlu bellek havuzları kullanılır. MISRA C gibi standartlar dinamik belleği kısıtlar.

  1. C dilinde volatile anahtar kelimesi ne işe yarar?OrtaC ProgramlamaEmbedded
  2. Bir yazmaçtaki belirli bir biti set, clear ve toggle eden C kodunu yazın.KolayC ProgramlamaEmbedded
  3. Endianness nedir? Little-endian ile big-endian farkı nedir?KolayC ProgramlamaEmbedded

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle