Đại diện vật lý của heap và stack là gì?


9

Tôi có thể dễ dàng hiểu làm thế nào .bss và mã có các biểu diễn vật lý trong bộ xử lý có ngân hàng bộ nhớ cho các hướng dẫn mà bộ đếm chương trình có thể đếm được và bss (ký hiệu bắt đầu khối) chỉ là dữ liệu toàn cầu. Nhưng sau đó có ngăn xếp cho các biến cục bộ và heap cho bộ nhớ động. Làm thế nào những điều này được đưa vào mạch vật lý?

Câu trả lời:


6

Lưu ý: Tôi chủ yếu đề cập đến x86 vì tôi quen thuộc nhất với nó và nó được ghi lại rộng rãi:

Trên x86 (và hầu hết các kiến ​​trúc khác), ngăn xếp chỉ nằm trong bộ nhớ như mọi thứ khác. Bộ xử lý thao tác ngăn xếp thông qua một con trỏ, thường được lưu trữ trong một thanh ghi (con trỏ ngăn xếp). Hướng dẫn đẩy và bật sẽ thay đổi giá trị của con trỏ ngăn xếp, thay đổi vị trí trên cùng của ngăn xếp.

Heap là một phần mềm trừu tượng . Giống như tên gọi của nó, nó chỉ là một cục RAM mà bộ cấp phát cắt ra và đưa ra các con trỏ tới. Về mặt vật lý, heap không có vẻ gì khác với bất kỳ phần nào khác của RAM.

Tuy nhiên, phân trang và phân đoạn có liên quan đến heap. Chúng chủ yếu liên quan đến đa tác vụ, trong đó các quy trình không được phép sửa đổi RAM mà chúng không sở hữu rõ ràng.


3
Phân trang nói nhiều hơn về quản lý bộ nhớ nói chung - đơn vị mà bộ nhớ vật lý được ánh xạ tới một địa chỉ logic - thay vì chỉ giới hạn truy cập, mặc dù sau này có xu hướng được áp dụng như một tính năng bổ sung của đơn vị quản lý bộ nhớ.
Chris Stratton

4

Nói một cách logic, stack và heap thường chỉ là bộ nhớ; ở cấp độ thực hiện, hy vọng họ sẽ được phục vụ chủ yếu từ bộ đệm. Trong hầu hết các hệ thống, chúng hoạt động ở đó một cách linh hoạt thông qua các thuật toán lưu trữ, nhưng đã có các hệ thống hỗ trợ vị trí rõ ràng trong bộ nhớ cache hoặc bộ nhớ nhanh hơn bình thường và cũng có thể là những hệ thống hỗ trợ để lại gợi ý rằng dữ liệu cụ thể nên được ưu tiên cho vị trí ở đó như giấy phép không gian.

Thiết kế phần mềm và trình tạo mã trình biên dịch cấp thấp hy vọng sẽ đưa vào tài khoản tổ chức truy cập dữ liệu có khả năng dẫn đến việc sử dụng bộ đệm tốt, so với việc bỏ lỡ bộ đệm liên tục.

Một số bộ xử lý có một thanh ghi địa chỉ trả về, có chức năng như một loại bộ đệm ngăn xếp rõ ràng một chiều sâu (có thể có cả những bộ có nhiều ngăn xếp phần cứng sâu, mặc dù các ví dụ không xuất hiện trong tâm trí).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.