Re: A couple of questions Jonathan Shapiro (shap@cobra.cis.upenn.edu)
Wed, 23 Aug 1995 13:47:56 -0400

>The competition in question is competition for memory page frames.
>There are three operations I can think of that remove a page frame
>from the free list:
>
> 1. Migration (read I/O)
> 2. Pagein (read I/O)
> 3. Revivification (discovery that an "old" page is still being
> used).
>
I confess to being confused. Under what circumstances does (3) come into play?

The ager runs, and places some set of object (page or node) frames into the free list, using the age of last reference of the object currently occupying the frame as a guideline. The identity (i.e. the CDA) of the objects in these frames is preserved until the containing frame is reallocated, but it is known that there are no outstanding prepared keys to objects on the free list.

Subsequent to the ager running, but prior to the object's frame being allocated off the free list, some process runs and prepares a key to an object whose frame has been placed on the free list. The object is then promoted into the youngest generation, which removes the object frame from the free list as a side effect. This is what I mean by revivification.

It is a conflict only in the sense that this is one of the ways that objects come off the free list, and it is one of the few ways that is completely orthogonal to the behavior of the low-level I/O subsystem.

Jonathan