More memory, more faults
The situation
A team runs a batch job under a FIFO page replacement policy. The page reference string, captured from a profiler, is:
1 2 3 4 1 2 5 1 2 3 4 5
With 3 frames the job takes 9 page faults.
They give the job a fourth frame, expecting an improvement, and measure 10 page faults.
Nothing else changed: same reference string, same policy, one more frame.
For comparison, on a longer reference string the same team measured, with 3 frames: FIFO 15 faults, LRU 12, and optimal 9.
Going from 3 frames to 4 raised the fault count from 9 to 10. What is happening?