Sự khác biệt chính giữa swapping và paging chính là, trong swapping, process di chuyển qua lại giữa bộ nhớ chính (RAM) và bộ nhớ thứ cấp (hard disk), trong khi đó ở paging, các khối nhớ có kích cỡ bằng nhau được gọi là page, di chuyển giữa bộ nhớ chính và bộ nhớ thứ cấp.
Hệ điều hành xử lý các chức năng chính của hệ thống máy tính như: quản lý các thiết bị phần cứng, thực hiện lập lịch cho process, quản lý file, và nhiều tác vụ khác nữa, trong đó có quản lý memory – là chức năng quan trọng mà mình sẽ nói trong bài viết này. Hệ điều hành theo dõi tất cả các vị trí và trạng thái bộ nhớ cho dù chúng đang được cấp phát hay rảnh rỗi. Có hai kỹ thuật quản lý memory của hệ điều hành là: swapping và paging.
Swapping là gì?
Swapping là cơ chế chi chuyển process sang bộ nhớ chính từ bộ nhớ thứ cấp và di chuyển process ra khỏi bộ nhớ thứ cấp trở lại bộ nhớ chính. Ví dụ, các chương trình được khởi tạo trong ổ đĩa cứng (hay bộ nhớ thứ cấp). Khi cần thực thi, các chương trình này sẽ được di chuyển vào bộ nhớ chính (RAM). Khi đó CPU có thể truy cập chương trình trong bộ nhớ chính nhanh hơn nhiều so với bộ nhớ thứ cấp.
Sau khi hoàn thành quá trình thực thi, chương trình sẽ quay trở lại ổ đĩa cứng. Tại đây, memory được cấp phát tới các chương trình đang được thực thi sẽ được giải phóng ngay sau khi nó hoàn tất quá trình thực thi. Khi đó, một chương trình mới có thể sử dụng lượng memory rảnh rỗi này. Một chương trình trong quá trình thực thi còn được gọi là một process. Mặc dù cơ chế swapping sẽ ảnh hưởng đến performance, tuy nhiên nó cho phép chạy nhiều process song song. Do đó, đây cũng là một kỹ thuật nén memory cực kỳ hiệu quả.
Xem thêm: process là gì
Paging là gì?
Virtual memory là một loại memory ảo cho phép các chương trình sử dụng nhiều hơn lượng memory thực tế mà hệ thống có. Ví dụ, nếu bộ nhớ chính (RAM) máy tính của bạn là 8GB và virtual memory là 16GB, khi đó chương trình có thể sử dụng 16GB virtual memory đó để thực thi chương trình sau khi đã ngốn hết 8GB kia. Nó chia không gian địa chỉ process (virtual memory) sang các khối nhớ có cùng kích cỡ gọi là “page“. Tương tự, nó chia bộ nhớ chính (physical memory) sang các khối nhớ nhỏ có kích thước cố định được gọi là “frame” hay “page frame“.
Xem thêm: kỹ thuật paging trong quản lý memory
Page address còn được gọi là logical address. Công thức được tính như sau:
Logical address = Page number + page offset
Frame address được gọi là physical address. Công thức được tính như sau:
Physical address = Frame number + page offset
Khi cấp phát frame tới page, logical address được dịch sang physical address. Hơn nữa, page table giữ các bản ghi trên các page của process và frame tương ứng trong suốt quá trình thực thi của chương trình.
Khi thực thi một process, các page của process tương ứng sẽ tải vào bất kỳ frame trống nào trong bộ nhớ chính. Khi máy tính chạy vượt quá lượng bộ nhớ chính hệ thống cho phép, hệ điều hành sẽ di chuyển những page không mong muốn đến bộ nhớ thứ cấp và giải phóng bộ nhớ chính cho những process khác. Quá trình này tiếp tục diễn ra trong suốt quá trình thực thi chương trình.
Sự khác nhau giữa Swapping và Paging
Bảng tóm tắt
Swapping | Paging |
Cơ chế mà trong đó một process có thể được hoán đổi tạm thời từ bộ nhớ chính tới bộ nhớ thứ cập, giúp tạo không gian memory trống cho những process khác. | Kỹ thuật quản lý memory trong đó máy tính lưu trữ và nhận dữ liệu từ bộ nhớ thứ cấp để sử dụng trong bộ nhớ chính. |
Process di chuyển qua lại giữa bộ nhớ chính và bộ nhớ thứ cấp | Các khối nhớ có kích thước bằng nhau gọi là page di chuyển giữa bộ nhớ chính và bộ nhớ thứ cấp |
Ít linh hoạt hơn | Linh hơn hơn |
Có nhiều process trong bộ nhớ chính | Có ít process trong bộ nhớ chính hơn |
Phù hợp cho các tác vụ nặng | Phù hợp cho các tác vụ nhỏ và vừa |
Giúp CPU truy cập process nhanh hơn | Giúp thực hiện virtual memory |
Về mặt định nghĩa
Swapping là một cơ chế trong đó một process có thể được hoán đổi tạm thời từ bộ nhớ chính tới bộ nhớ thứ cấp và làm cho bộ nhớ đó khả dụng cho các process khác. Ngược lại, paging là kỹ thuật quản lý memory trong đó máy tính lưu trữ và nhận dữ liệu từ bộ nhớ thứ cấp để sử dụng trong bộ nhớ chính. Những định nghĩa này giải thích sự khác biệt cơ bản giữa swapping và paging.
Chức năng chính
Trong swapping, process di chuyển qua lại giữa bộ nhớ chính và bộ nhớ thứ cấp. Còn trong paging, các khối nhớ có kích thước bằng nhau gọi là “page” di chuyển giữa bộ nhớ chính và bộ nhớ thứ cấp. Do đó chức năng là điểm khác biệt chính giữa swapping và paging.
Tính linh hoạt
Tính linh hoạt cũng là sự khác biệt giữa swapping và paging. Paging linh hoạt hơn swapping bởi vì nó chỉ chuyển page.
Số process trong bộ nhớ chính
Trong swapping, có nhiều process trong bộ nhớ chính. Tuy nhiên, trong paging, có ít process hơn trong bộ nhớ chính. Do đó, đây cũng là sự khác biệt lớn giữa swapping và paging.
Khối lượng công việc
Trong khi swapping khá phù hợp cho khối lượng công việc nặng, thì paging khá phù hợp cho khối lượng công việc nhỏ và vừa.
Usage
Một sự khác biệt khác giữa swapping và paging là usage. Swapping giúp CPU truy cập process khác nhanh hơn trong khi paging giúp thực hiện virtual memory.
Xem thêm: Hướng dẫn tạo swap trên Ubuntu
Kết luận
Swapping và paging là hai kỹ thuật quản lý memory. Sự khác biệt chính giữa swapping và paging là, trong swapping, process di chuyển qua lại giữa bộ nhớ chính và bộ nhớ thứ cấp trong khi paging, các khối nhớ gọi là page di chuyển giữa bộ nhớ chính và bộ nhớ thứ cấp.