Browse Prior Art Database

Improved Performance by "Cloning" Write Pending Pages

IP.com Disclosure Number: IPCOM000037288D
Original Publication Date: 1989-Dec-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 1 page(s) / 12K

Publishing Venue

IBM

Related People

Corrigan, MJ: AUTHOR [+2]

Abstract

Described is a method that permits virtual pages in a virtual memory system to be referenced and changed concurrent with a physical write I/O operation for the virtual page. The method prevents writes of partial modifications and also prevents modifications from being written out of order.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 77% of the total text.

Page 1 of 1

Improved Performance by "Cloning" Write Pending Pages

Described is a method that permits virtual pages in a virtual memory system to be referenced and changed concurrent with a physical write I/O operation for the virtual page. The method prevents writes of partial modifications and also prevents modifications from being written out of order.

In some virtual memory systems, virtual pages which are written to disk must be made invalid to prevent changes to the data during the write. (These pages are said to be in the "write pending" state.) When a page is invalid, any attempt to reference the page results in a page fault exception which results in a wait for the I/O to complete. This is required since various object recovery techniques require that changes made to a page with a single instruction must appear atomic after a crash. Either all of the change is written or none of it. This limitation is addressed by a method described below.

Pages are made invalid while they are being written to disk. If a task references a page while it is written, the task takes a page fault. Rather than waiting for the I/O to complete, the task clones the page which is being written. Cloning a page includes allocating a new physical page frame, copying the data from the page being written, removing virtual addressability from the old page, setting up virtual addressability for the new page, and making the new page valid. The task then retries the faulting instruction and continues e...