Có một số lớp liên quan ở đây ảnh hưởng đến câu trả lời.
Nếu bạn giả sử một hệ điều hành bộ nhớ ảo hiện đại, bạn sẽ không thể thấy phần còn lại của dữ liệu xử lý khác trong các trang bạn phân bổ.
Khi một quá trình được tải lần đầu tiên, bảng trang được tải và các khung có khả năng của bộ nhớ thực được phân bổ cho các trang đó. Tối thiểu, bảng trang hoặc bảng bổ sung của nó, sẽ chứa một bản đồ của tất cả bộ nhớ mà quá trình có thể phân bổ. Đây cũng là nơi phá vỡ quy trình ban đầu, được đề cập ở trên, được thiết lập.
Mặc dù malloc () có thể, nếu quy trình được cho phép, làm cho quá trình ngắt thay đổi, thêm nhiều trang vào bảng trang quy trình (trang bổ sung) để đáp ứng yêu cầu, nơi một quy trình có thể "lấy dữ liệu" khác xử lý lớp bộ nhớ thực thấp hơn.
Trong cả hai trường hợp này, một hệ điều hành hiện đại sử dụng phân trang theo yêu cầu hoặc phân bổ lười biếng, chưa phân bổ bộ nhớ vật lý (khung). Hệ điều hành chỉ là "ghi chú" về bộ nhớ ảo nào cho quá trình đó được coi là hợp lệ. Bộ nhớ thực tế chỉ được chỉ định khi cần thiết.
Bộ nhớ vật lý hoặc khung được phân bổ cho một quy trình khi trang ảo được nhận ra và ánh xạ vào bảng trang quy trình Đây là nơi tiềm năng tiếp xúc với dữ liệu. Điều này xảy ra trong một lỗi trang. Việc tiếp xúc là do một quá trình trước đó có thể đã sử dụng cùng một khung và dữ liệu của nó đã bị bỏ qua hoặc hoán đổi, để nhường chỗ cho yêu cầu bộ nhớ vật lý hiện tại. Hệ điều hành phải cẩn thận để đảm bảo rằng dữ liệu quy trình yêu cầu được hoán đổi chính xác hoặc khung bị xóa (không) trước khi tiếp tục quá trình. Điều này cũng được đề cập ở trên như là một vấn đề "cũ nhưng đã giải quyết".
Điều này làm cho nó có phần không liên quan nếu bộ nhớ tiến trình khác được "giải phóng" hay không. Bộ nhớ "giải phóng" các quy trình khác vẫn nằm trong các trang được gán cho quy trình đó và thường không được xử lý cho đến khi quá trình kết thúc vì chúng sẽ bị tráo đổi khi bộ nhớ xuống thấp hoặc chúng bị trục xuất. malloc () và free () quản lý bộ nhớ ảo được gán cho quá trình ở cấp độ (người dùng).
Trong câu hỏi của bạn, quá trình của bạn, tiếp tục yêu cầu ngày càng nhiều bộ nhớ, theo lý thuyết, đẩy tất cả các quá trình khác ra khỏi bộ nhớ. Trong thực tế, có các chiến lược phân bổ khung - toàn cầu và địa phương - cũng có thể ảnh hưởng đến câu trả lời. Có khả năng quá trình này sẽ buộc các trang của chính nó ra khỏi bộ nhớ trước khi được phép vượt qua hệ điều hành và tất cả các quy trình khác. Mặc dù điều này vượt xa câu hỏi ban đầu của bạn.
Tất cả điều này là moot trong một hệ thống như MS-DOS. MS-DOS (và các hệ thống đơn giản khác) không sử dụng bộ nhớ ảo (bản thân chúng) và bạn có thể dễ dàng chọc và prod vào dữ liệu "quy trình" khác.
Một số tài liệu tham khảo tốt, có thể dễ hiểu hơn mã nguồn Linux sẽ là một cuốn sách văn bản hệ điều hành tốt, Khái niệm hệ điều hành của Silberscatz, Gavin và Gange hoặc Thiết kế hệ điều hành của Andrew Tanenbaum. Ngoài ra một cái gì đó như Nachos từ Berkeley hoặc Pintos từ Stanford là các hệ điều hành nhỏ được xây dựng để học và có những ý tưởng tương tự trong đó.