A paged virtual memory system without swapping solves the following memory system problems. 1.) Solves the problem of memory fragmentation (external fragmentation). It is not possible for physical memory to become fragmented and have a lot of empty, wasted pieces of physical memory into which no process can fit (but there will be a small amount of internal fragmentation of physical memory). 2.) Solves the memory protection problem. No process can write into any page that is not listed in its page table, so no process can write into a page that is private to another process. 3.) Solves the program relocation problem. A compiler and linker can prepare an executable to load at a fixed virtual address. Since every process has its own private virtual memory space, each process can load its main program at the same virtual address. No relocation is necessary (the page tables take care of the "relocating" of the code to different physical memory addresses). 4.) Solves the problem of dynamic program size. A program can request or release page frames as it executes and therefore dynamically change its memory size. 5.) Provides easy, fast Inter Process Communication (IPC). Two (or more) processes can request that a page frame be mapped into each of their virtual address spaces (shared memory). 6.) Lets the physical address space be larger than each process's virtual address space. This has been used by some servers so that they can concurrently run large numbers of processes efficiently. 7.) Lets the virtual address space be divided into "user space" and "kernel space". Each entry in a page table can have a bit that indicates which mode the processor must be in in order to access that page. If a paged virtual memory system also has swapping, then in addition to the above properties, the memory system also solves the follow memory system problems. 1.) Solves the problem of a process needing more memory than what is physically available. 2.) Solves the problem of concurrently running a large number of processes where the total physical memory needs of the processes exceeds available physical memory (but this is not implying that the processes will run in an efficient manner). 3.) Solves the problem of loading a process into physical memory by memory mapping the process's executable file into the process's virtual address space and then letting the process page fault itself into physical memory. 4.) Provides a fairly fast and efficient form of disk I/O using memory mapped files.