Re: A couple of questions Jonathan Shapiro (shap@cobra.cis.upenn.edu)
Mon, 21 Aug 1995 14:26:20 -0400

Some of these assurences should come from whatever proofs you have that the only cause of starvation in the system is the scheduler's policy.

I think perhaps my question wasn't clear. Or perhaps I don't understand your response.

EROS will (for the moment) use monodirectional scan for disk arms. This algorithm does not, in general, lead to starvation due to arm policy.

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).

Contention between the first two sources can be eliminated if there are always enough allocatable free page frames to satisfy all outstanding read requests. This should be straightforward to enforce if we can deal with (3).

The problem, then, is that revivification can reduce the number of allocatable frames below the number of outstanding read requests, with the effect that the read requests will be unable to make progress.

Offhand, I can see several approaches to dealing with this. I'm sure there are lots of better ones:

  1. Presecriptive: never permit a revivification to preclude a pending read request. Can be implemented with simple watermarking.

Problem: Arrival of a subsequent read request can cause the constraint to be violated, so this isn't a complete solution. Possible workaround is to run the ager when such a condition arises.

2. Age-on-demand: let the free list empty, but run ageing on demand.

This will tend to favor write-to-disk I/O, which is good, but will tend to defeat the migrator if one isn't careful. Also, the ager is not necessarily fast.

3. Middle-ground: never permit a revivification to preclude a

migration-related I/O.

I have to be missing something fairly obvious here. I'm still not convinced that I understand all of the interactions.

Jonathan