Page fault là gì?

Noun None
Page fault

Page fault xảy ra khi một chương trình cố gắng truy cập vào một khối bộ nhớ (memory block) hoặc page không được lưu trữ trong bộ nhớ vật lý (physical memory) hoặc RAM. Lỗi thông báo cho hệ điều hành rằng nó phải định vị dữ liệu trong bộ nhớ ảo (virtual memory), sau đó chuyển dữ liệu đó từ thiết bị lưu trữ chẳng hạn như ổ cứng HDD hoặc SSD, sang RAM.

Mặc dù thuật ngữ page fault nghe có vẻ giống như một lỗi (error) nhưng page fault là phổ biến và là một phần của cách máy tính xử lý bộ nhớ ảo thông thường. Theo thuật ngữ lập trình, page fault tạo ra một ngoại lệ (exception) thông báo cho hệ điều hành rằng nó phải truy xuất khối bộ nhớ hoặc page từ bộ nhớ ảo để chương trình tiếp tục. Sau khi dữ liệu được chuyển vào bộ nhớ vật lý, chương trình sẽ tiếp tục như bình thường. Quá trình này diễn ra ở chế độ nền (background) và thường không được người dùng chú ý.

Hầu hết các page fault đều được xử lý mà không gặp bất kỳ sự cố nào. Tuy nhiên, page fault không hợp lệ có thể khiến chương trình bị treo (hang) hoặc crash. Loại page fault này có thể xảy ra khi một chương trình cố gắng truy cập địa chỉ bộ nhớ không tồn tại. Một số chương trình có thể xử lý các loại lỗi này bằng cách tìm địa chỉ bộ nhớ mới hoặc định vị lại dữ liệu. Tuy nhiên, nếu chương trình không thể xử lý page fault không hợp lệ, nó sẽ được chuyển đến hệ điều hành, điều này có thể chấm dứt tiến trình (process). Điều này có thể khiến chương trình thoát đột ngột.

Mặc dù page fault thường gặp khi làm việc với bộ nhớ ảo, nhưng mỗi lỗi trang lại yêu cầu chuyển dữ liệu từ bộ nhớ thứ cấp (secondary memory) sang bộ nhớ chính (primary memory). Quá trình này có thể chỉ mất vài mili giây, nhưng điều đó vẫn có thể chậm hơn vài nghìn lần so với việc truy cập dữ liệu trực tiếp từ bộ nhớ. Do đó, việc cài đặt thêm bộ nhớ hệ thống có thể làm tăng hiệu suất máy tính của bạn, vì nó sẽ cần truy cập bộ nhớ ảo ít thường xuyên hơn.

Learning English Everyday