Memory protection includes protection for the memory that the OS itself uses as well as the memory of user processes. Major challenge in multi-programming system is to prevent one program from affecting the data and programs in the memory space of other users.