Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Virtual Memory Page Space Allocation

IP.com Disclosure Number: IPCOM000062403D
Original Publication Date: 1986-Nov-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 1 page(s) / 13K

Publishing Venue

IBM

Related People

O'Quin, JT: AUTHOR [+3]

Abstract

A method is described for use in a virtual memory data processing system which minimizes arm movement of the disk file when writing (and reading) pages to disk. The performance of a virtual memory system degrades when there is excessive disk arm movement within paging space. Disk affinity at pageout time is obtained by always freeing any slot the page now owns, and re-allocating a slot adjacent to and in the same direction as the last slot allocated, a "slot" being a contiguous logical block on the disk that is the size of one virtual memory page. If there are multiple paging spaces present, then examine the next allocation slot on each paging space, and use the slot that has a disk arm nearest it. The implementation of the above is to keep a cursor per paging space.

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

Page 1 of 1

Virtual Memory Page Space Allocation

A method is described for use in a virtual memory data processing system which minimizes arm movement of the disk file when writing (and reading) pages to disk. The performance of a virtual memory system degrades when there is excessive disk arm movement within paging space. Disk affinity at pageout time is obtained by always freeing any slot the page now owns, and re-allocating a slot adjacent to and in the same direction as the last slot allocated, a "slot" being a contiguous logical block on the disk that is the size of one virtual memory page. If there are multiple paging spaces present, then examine the next allocation slot on each paging space, and use the slot that has a disk arm nearest it. The implementation of the above is to keep a cursor per paging space. Slot allocation in a particular paging space always takes place at the cursor position. If the slot the cursor points to is already allocated, the cursor is incremented to point to the next free slot and allocation takes place there. Note that having to skip the cursor over allocated slots should be rare since the slots would have to remain allocated for a complete cycle of the cursor; they would be very old slots. The operating system generally has the ability to write out all pages in a segment at once. There is one queue element per page write, and if a process decides to write out a large segment, then the disk queue will get fairly large. If the pages already have paging space disk slots, and they are written back out to those same disk slots, then those slots could be all over the disk, thus causing a lot of arm movement. The process of releasing the slot that a page currently holds, and re-allocating a slot for it at the best cursor position (the cursor position on the paging space that will cause the least arm movement if written to at this instant) means that arm movement will be minimized for the one page if there are multiple paging spaces. The...