Proseslerin kullandığı belleğin bölümlendirilmesi?

Başlatan mir_as82, 13 Aralık 2017, 11:17:36

mir_as82

Programların kullandığı değişkenler neden farklı bölgelerde tutulur?
Yerel değişkenler stack te
Bazı değişkenler BSS de, bazıları DATA segmentte tutuluyor.
Executable kodlar ise KOD segmentte tutuluyor.

Bunun sebebi nedir? Neden bu şekilde yapma ihtiyacı duymuşlar? Ne kazancı var?

Zoroaster

MCUya kod uretecek derleyiciyi sen yazacaksan olsan;

Senin derleyiciyi kullanacak adamdan hangi bilgileri istersin?

MCU Romunun baslangic adresini ve boyunu
Ramin adresini ve boyunu

Simdi Rom adresine kod ve sabit veriler yazilacagina gore kod yazilacak kismi uygun bir terimle ile tanimlatirsin.
Romda saklanacak sabitleri bir baska uygun terimle tanimlatirsin.

Geldik Rama;

Ramin bir kismi global degiskenler icin kullanilacak. Bir kismi dinamik olarak kullanilacak veri alanlari icin kullanilacak, artan kismi da stack icin kullanilacak.

Gordugun gibi aslinda bu terimler birer zorunluluk. Derleyicinin bazi seyleri bilmesi gerekiyor. Derleyiciye bir nevi projemizi tanimliyoruz.
Seytan deliginden kacti.