這是我的第一個問題。我不確定它是否偏離主題。爲什麼內存映射文件總是映射在頁面邊界?
雖然自學,我發現關於操作系統下面的語句:在頁面邊界被映射
操作系統,使內存映射文件總是需要的文件。例如,對於4 KB頁,文件可以在起始於虛擬地址映射到4096,而不是在開始虛擬地址5000
此語句以下列方式解釋:
如果文件可以映射到頁面中間,則單個虛擬頁面需要磁盤上的兩個部分頁面來映射它。第一頁,特別是 將映射到臨時頁面上,並且也映射到文件頁面上。處理頁面 錯誤,這將是一個複雜和昂貴的操作,需要複製 數據。此外,將無法捕獲對未使用部分頁面的引用。 由於這些原因,這是可以避免的。
我想問這個問題的答案。特別是,說「單個虛擬頁面需要磁盤上的兩個部分頁面來映射它」意味着什麼?根據我對內存映射文件的瞭解,虛擬頁面被映射到磁盤上的文件,而不是分頁文件。這是什麼意思的「部分頁面」?
此外,這裏的「scratch page」是什麼意思?我試圖在書籍(Tanenbaum的「現代操作系統」和「結構化計算機組織」)和Web上查找這個術語,但還沒有找到它。