Jump to content

Data segment

Википедиа — Чөлөөт нэвтэрхий толь
01:35, 15 Гуравдугаар сар 2013-ий байдлаарх Se11d029 (хэлэлцүүлэг | оруулсан хувь нэмэр) хэрэглэгчийн хийсэн залруулга
Memory address space of a process.

Data Segment (Data + BSS + Heap)

Data section” нь аливаа программын тодорхой нэг хэсэгт байрлах хийсвэр хаягийн санах ой бөгөөд тухайн ачааллаж байгаа программын глобал болон тогтмол хувьсагчдыг агуулна. Программист нь эдгээр хувьсагчдийг код бичих явцад зарлаж өгнө.“Data section”-д байрлах “дата сегментүүд” нь программ ачааллаж байхад өөрчлөгдөж болох учраас “read-write” төрөлд хамаарагдах ба утга нь үл өөрчлөгдөх “дата сегментүүд” нь “read-only” төрөлд хамаарагдана. PC архитектур нь “read-write” төрлийн цөөн хэдэн санах ойн мужуудыг хуваарилдаг бөгөөд эдгээр нь: Data, Stack болон Code мужууд юм.


Жишээлбэл:

  • char s[] = "hello world" –д агуулагдах string утга нь “read-write” хэсэгт хамаарна. ( hello world )
  • char* string = "hello world" кодын мөрний ("hello world") string төрлөөр зарлагдсан учир “read-only” хэсэгт хадгалагдаж “String” –төрлийн заагч нь “read-write” хэсэгт байрална.
  • static int i = 10 болон global int i = 10 нь “Data segment”-д хадгалагдана.

BSS

"BSS" Сегмент буюу анхны утга олгогдоогүй дата нь аливаа дата сегментийн төгсгөл хэсэгт ажиллаж эхлэх бөгөөд глобал хувьсагчид болон анхны утга нь 0 ба “source” кодонд тодорхой эхлэлгүй хувьсагчдыг агуулна. Жишээлбэл: “static int i; “ –д зарлагдсан хувьсагч нь BSS сегментэд хадгалагдана.