Page Frame Allocation

When a page fault occurs and the OS needs a free physical frame, where does it get one?

A

It creates a new frame by expanding physical RAM dynamically

B

It always allocates a new frame from the heap using malloc

C

It takes one from a free frame list maintained by the kernel; if the list is empty, it evicts a page from an occupied frame first

D

It requests one from the CPU's memory controller directly