Khi một tiến trình không sử dụng bộ nhớ ảo, nó có nhân hay bộ nhớ người dùng trong RAM không?


2

Một tiến trình có thể sử dụng tới 4 GB bộ nhớ ảo (bao gồm cả người dùng và kernel) nhưng khi không sử dụng bộ nhớ ảo thì nó có kernel và bộ nhớ người dùng trong ram không?

Câu trả lời:


3

Sử dụng bộ nhớ ảo không phải là tùy chọn, một ứng dụng không thể tránh được. Giả sử chúng ta đang nói về bộ nhớ được bảo vệ x86, đó là những gì hầu hết các hệ điều hành hiện tại như Linux, OS X và Windows sử dụng trên x86.

Về cơ bản, mỗi quá trình nhìn thấy một không gian địa chỉ ảo 4 GB (VAS). HĐH, kết hợp với phần cứng, thiết lập các bảng mô tả trang được gọi là (PDT) mô tả cách VAS được ánh xạ, với độ chi tiết của trang (thường là 4 KB). Một trang có thể được ánh xạ tới bộ nhớ vật lý, nó có thể được ánh xạ tới một tệp (có nghĩa là khi quá trình cố đọc từ phần đó của VAS, nó sẽ bẫy vào HĐH, sau đó sẽ đọc trang từ tệp trên đĩa và đặt nó vào bộ nhớ) hoặc hoàn toàn không được ánh xạ trong trường hợp cố truy cập vào phần VAS đó sẽ khiến quá trình bị sập. Và, như một bên, trong khi bộ nhớ kernel được ánh xạ vào quá trình, quá trình không thể truy cập trực tiếp vào nó và sẽ sụp đổ nếu nó cố làm như vậy.

Và, HĐH có thể sử dụng tệp trang hoặc phân vùng trao đổi, cho phép HĐH chuyển các trang bộ nhớ ít sử dụng sang đĩa và sử dụng bộ nhớ cho thứ gì đó hữu ích hơn. Một lần nữa, nếu thực hiện điều này, PDT phải được cập nhật tương ứng và tương tự như các tệp được ánh xạ bộ nhớ, nếu quá trình cố gắng truy cập các trang đã bị tráo đổi, nó sẽ mắc vào HĐH sẽ đưa trang trở lại vào bộ nhớ. (Mặc dù khả năng trao đổi thường được kết hợp với bộ nhớ ảo mỗi lần, ý tưởng cơ bản đằng sau bộ nhớ ảo là khái niệm về các địa chỉ ảo khác biệt với các địa chỉ bộ nhớ vật lý.)


Tôi có thể chọn không có tệp trang hoặc phân vùng trao đổi, làm thế nào là bộ nhớ ảo tùy chọn theo nghĩa đó? Ít nhất nếu bộ nhớ ảo là thứ mà truy vấn Google "xác định: bộ nhớ ảo" cung cấp cho tôi ...
Tom Wijsman

@Tom Tôi nghĩ rằng janneb đang nói rằng ứng dụng không có lựa chọn nào cho dù nó có tồn tại trong VRam hay không. Không phải là bạn không thể vô hiệu hóa nó.
Jeff F.

@JeffF.: Ứng dụng có một sự lựa chọn, đó chỉ là quản lý bộ nhớ.
Tom Wijsman

@Tom: P Tôi cũng không tranh cãi, chỉ cần làm rõ.
Jeff F.

Việc bạn có tệp trang hay phân vùng trao đổi hay không không liên quan gì đến việc bạn có sử dụng bộ nhớ ảo hay không. Bộ nhớ ảo là rất xa, nhiều hơn nhiều so với "sử dụng tệp trang hoặc phân vùng trao đổi". Không có tệp trang hoặc phân vùng trao đổi chỉ loại bỏ một trong số hàng chục hoặc hàng trăm tệp có liên quan đến phân trang I / O. Và không, các ứng dụng cũng không có lựa chọn nào.
Jamie Hanrahan
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.