Heap file là gì

Sách ngôn ngữ lập trình giải thích rằng các loại giá trị được tạo trên ngăn xếp và các loại tham chiếu được tạo trên heap , mà không giải thích hai thứ này là gì. Tôi đã không đọc một lời giải thích rõ ràng về điều này. Tôi hiểu thế nào là một ngăn xếp . Nhưng,

  • Chúng ở đâu và ở đâu (vật lý trong bộ nhớ của máy tính thật)?
  • Chúng được điều khiển bởi hệ điều hành hoặc thời gian chạy ngôn ngữ ở mức độ nào?
  • Phạm vi của họ là gì?
  • Điều gì quyết định kích thước của mỗi người trong số họ?
  • Điều gì làm cho một người nhanh hơn?