Monday, October 7, 2019

PHÂN LOẠI CÁC VÙNG NHỚ (STACK & HEAP)

Trong một chương trình ta thấy bộ nhớ ảo được chia thành nhiều phân vùng khác nhau và được sử dụng cho những mục đích khác nhau. Dưới đây là hình ảnh minh học cho thứ tự các phân vùng trên vùng nhớ ảo

Code segment(.text): là noi lưu trữ các mã lệnh được biên dịch thành mã máy.

Data segment(.data): là nơi lưu trữ các biến static, biến toàn cục của các chượng trình.

BSS segment (.bss): là nơi lưu trữ các biến static, biến toàn cục nhưng chưa được khởi tạo giá trị cụ thể.

Heap segment: được sử dụng để cấp phát bộ nhớ thông qua kỹ thuật Dynamix memory allocation.

***Trong C chúng ta có những hàm sao:

FunctionPurpose
mallocAllocates the memory of requested size and returns the pointer to the first byte of allocated space.
callocAllocates the space for elements of an array. Initializes the elements to zero and returns a pointer to the memory.
reallocIt is used to modify the size of previously allocated memory space.
FreeFrees or empties the previously allocated memory space.
*** Trong C++ chúng ta dùng:
new int; //allocate 4 bytes on Heap segment
new int[10]; //allocate (4 * 10) bytes on Heap segment
Stack segment: call stack thường được gọi là stack, được dùng để cấp phát bộ nhớ cho tham số các hàm (function parameters) và biến cục bộ (local variables).
 - call stack được thực hiện theo cấu trúc dữ liệu stack (stack data structure).

No comments:

Post a Comment