Tôi sẽ cố gắng bắt đầu từ từ, và sau đó kết hợp tất cả lại với bạn. Nó giống như thế này:
Bộ nhớ ảo, như thường được sử dụng, đề cập đến "phân trang". Như tên cho thấy, phân trang giống như một notepad của con người.
Khi bạn thực hiện các khoản tiền đơn giản hoặc tìm hiểu thông tin đơn giản, bạn sẽ làm tất cả trong đầu: bạn chỉ cần tải lên tất cả thông tin, xử lý và nhận câu trả lời. Điều này giống như một máy tính tải các tệp từ ổ cứng - nó tải các chương trình hoặc hình ảnh hoặc thông tin khác mà nó cần để hoạt động vào "bộ nhớ thực" (hoặc "bộ nhớ vật lý") và hoạt động trên chúng bằng "bộ não" ( bộ xử lý của nó).
Tuy nhiên, khi bạn đang học thông tin phức tạp hoặc làm việc với các khoản tiền phức tạp, bạn có thể không thể phù hợp với tất cả những điều đó trong đầu. Bạn bối rối, bắt đầu chậm lại, không thể giữ tất cả trong đó cùng một lúc và phải quên một cái gì đó để ghi nhớ một cái gì đó khác.
Giải pháp của con người là sử dụng notepad. Chúng tôi ghi lại trên các trang tất cả những điều chúng tôi không thể nhớ cùng một lúc, nhưng hãy tham khảo chúng trong khi thực hiện các khoản tiền. Chúng tôi có thể không nhớ được một danh sách lớn các số liệu bán hàng trong tháng, nhưng chúng tôi có thể xem các trang, lấy thông tin một chút và xử lý từng bit. Điều này giống như máy tính "phân trang" bộ nhớ của nó - viết các trang chứa đầy thông tin và đưa nó vào "bộ nhớ ảo" để tham khảo sau đó và nhận ra nó cần một trang và tải lại trang đó từ bộ nhớ ảo vào bộ nhớ thực. Trên linux và unix, nơi lưu trữ các trang này theo nghĩa đen được gọi là "pagefile" và các trang dữ liệu trong bộ nhớ được gọi là "trang" theo nghĩa đen. Các hệ thống khác nhau có tên khác nhau cho những điều này, nhưng khái niệm chung là giống nhau nhiều.
Vì vậy, thực sự, phân trang là rất đơn giản. Tất cả các trang thông tin không vừa với bộ nhớ, vì vậy một số trang được đưa vào đĩa và được tải lại sau.
Bây giờ, điều phức tạp hơn là, các hệ thống hiện đại có tính năng ánh xạ bộ nhớ và bảo vệ bộ nhớ, thường được xử lý bởi cùng một hệ thống phần cứng trong máy tính: đơn vị quản lý bộ nhớ hoặc MMU.
Trong một máy tính đa nhiệm (hiện đại), có thể chạy nhiều chương trình cùng một lúc và có tính năng bảo vệ bộ nhớ, mỗi chương trình thường được tách biệt khỏi các chương trình khác chạy trên cùng một hệ thống. Theo cách này, một chương trình không thể thay đổi chương trình khác chỉ bằng cách truy cập vào bộ nhớ của nó - MMU tách biệt về mặt vật lý một không gian địa chỉ của chương trình với các chương trình khác. Nói cách khác, các chương trình của người dùng không thấy các chương trình khác của người dùng hoặc thậm chí các chương trình khác. Họ không thấy "bộ nhớ thực" - họ thấy "bộ nhớ ảo" của chính họ.
Bây giờ, khái niệm cách ly bộ nhớ này và khái niệm pagefile là hai thứ khác nhau về mặt khái niệm, có lẽ là lý do khiến bạn bối rối. Tuy nhiên, điều quan trọng là cả hai đều hoạt động bằng cách sử dụng MMU - đơn vị quản lý bộ nhớ, phân chia bộ nhớ thành các trang và ánh xạ các trang vào một không gian địa chỉ ảo.
Vì vậy, khi một chương trình yêu cầu bộ nhớ ở một "địa chỉ bộ nhớ" nhất định, điều thực sự xảy ra là các trang bộ nhớ cho chương trình đó và các địa chỉ tương ứng của chúng ("không gian địa chỉ" của chương trình được tìm kiếm và trang tương ứng với khối bộ nhớ đó được tìm thấy. Trang đó có thể được tải ở đâu đó trong bộ nhớ thực, trong trường hợp đó chương trình được cấp quyền truy cập, hoặc, nó có thể được phân trang ra đĩa. Nếu nó được phân trang ra, thì nó sẽ gây ra "lỗi trang" - đĩa được truy cập và trang được tải vào bộ nhớ. Vì vậy, chương trình hoạt động ngay cả khi không có đủ bộ nhớ, nhưng nó chạy TUYỆT VỜI, nếu nó phải sử dụng đĩa cho việc truy cập bộ nhớ rất nhanh.
Bây giờ, nếu không có đủ dung lượng để tải trang đó vào bộ nhớ, thì bạn có vấn đề. Trong trường hợp đó, một số trang KHÁC đã có trong bộ nhớ phải được "hoán đổi" sang đĩa, vì vậy trang của chương trình đầu tiên có thể được tải. Hoặc, chúng có thể là các trang trong cùng một chương trình. Đôi khi bạn thấy điều này trong các chương trình đồ họa, trên các hệ thống được tải nặng, khi một phần của hình ảnh được tải chậm và được vẽ nhanh, thì phần tiếp theo được tải chậm như nhau và được vẽ nhanh, và khi bạn quay lại làm việc với phần đầu tiên một phần, nó chậm LẠI. Đó là bởi vì họ đang được tải vào để làm việc, sau đó đổi chỗ một lần nữa, vì vậy một cái gì đó khác có thể được làm việc. Rõ ràng, đây là một cách làm việc rất chậm, và những gì bạn thực sự cần là bộ nhớ THỰC SỰ nhiều hơn.