Virtual Memory 3: Virtual Memory là gì
Như đã đề cập đến ở phần trước, đôi khi các hệ thống không có đủ RAM (4GB cho 32 bit Operating System), cho nên việc không có một cơ chế ở giữa để mapping địa chỉ process với địa chỉ memory sẽ khiến cho việc truy cập vào RAM gây ra crash hệ thống
Chính vì vậy chúng ta cần một Virtual Memory nằm giữa các chương trình và RAM. Mục tiêu của virtual memory sẽ giúp chúng ta map địa chỉ của các process với RAM một cách hiệu quả nhất.
Kể từ đây các thao tác trên process sẽ chỉ tác động trực tiếp tới Virtual Memory.
Giải quyết vấn đề thiếu bộ nhớ (RAM)
Giả sử bạn có 1GB RAM trong hệ thống, vậy thì 3GB thông tin còn lại sẽ được lưu trên ổ cứng (disk). Khi bạn truy cập đến một địa chỉ, việc đầu tiên là OS sẽ kiểm tra trên bảng mapping của VM để biết xem địa chỉ vật lý của vùng nhớ bạn muốn truy cập là ở đâu.
Trường hợp đẹp nhất là nó đang được load trên RAM, khi đó thì việc lấy và sử dụng dữ liệu hết sức đơn giản. Mapping giúp truy cập đến vùng nhớ vật lý, process sẽ lấy và sử dụng dữ liệu
Trường hợp kém đẹp hơn là bộ Mapping cho biết vùng nhớ bạn muốn truy cập đang nằm trên ổ cứng, chưa được load vào RAM. Lúc này VM sẽ làm công việc là đưa dữ liệu ít được sử dụng nhất ra khỏi RAM sang ổ cứng (disk) rồi đưa dữ liệu bạn muốn truy cập từ ổ cứng vào RAM cập nhật lại bảng Mapping, đồng thời trả lại dữ liệu cho bạn. Quá trình này sẽ tốn rất nhiều công đoạn và giảm tốc độ xử lý của hệ thóng.
Vì thế một trong những giải pháp để xử lý vấn đề máy chậm là mua thêm RAM
Giải quyết vấn đề thứ hai: tối ưu hóa bộ nhớ
Quay lại vấn đề thứ hai khi chúng ta có đầy đủ 4GB RAM nhưng hệ thống vẫn không thể load được hai chương trình có tổng bộ nhớ là 4GB.
Giờ đây giải pháp VM sẽ giúp chúng ta Map vùng nhớ của các process lên RAM một cách rất linh hoạt
Không có nhận xét nào: