Thắc mắc về bộ nhớ Stack và Heap

:wave::wave::wave::wave::wave::wave:

Em muốn hỏi là bộ nhớ heap và stack liên quan đến phần cứng hay phần mềm, có bao nhiêu bộ nhớ stack và heap trên máy? Cụ thể là:

  • Tất cả thanh ram trên máy tính hợp thành bộ nhớ RAM thì chỉ có một bộ nhớ stack và heap thôi đúng không?
  • Hay là cả hệ điều hành chỉ có 1 bộ nhớ stack và heap, tất cả các chương trình chạy trên OS này chia nhau hoặc giành nhau mà dùng chung?
  • Nếu không đúng thì có phải mỗi app khi chạy thì sẽ tạo ra một vùng nhớ stack và 1 heap để tự dùng riêng?

:bowing_man::pray::bowing_man::pray:

Theo cách mình hiểu về cấp phát và quản lí thì nó sẽ liên quan đến hệ điều hành (HĐH) nhiều hơn => phần mềm.

Bạn nên nhìn memory layout theo process thì sẽ dễ hơn. Mỗi process sẽ có stack, heap, bss, …
Mỗi process khi chạy sẽ được HĐH cấp 1 vùng nhớ riêng.
(Để handle nhiều process thì bạn có thể tham khảo thêm về virtual memory - sẽ liên quan đến phần cứng)

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?