Demand paging brings pages into memory only when they are needed, reducing I/O, memory usage, and improving response time and number of users compared to loading the entire process at start. The demand paging system uses page tables with valid-invalid bits to detect when a needed page is not memory resident, causing a page fault that brings the page into memory from storage before restarting the faulting instruction.