Memory management can become very complex in modern day computers as with the requirements for the management of the memory. There are four categories that must be satisfied within memory management which are address mapping and relocation, protection and sharing, application organization, and two-level memory organization. Had one of these categories not been satisfied through memory management, then it is a failure and could cause major problems in terms of an operating system. The first category that must be satisfied is address mapping and relocation. The operating system has a few requirements in order to run a process that has been loaded into the main memory such as where the process control information, as well as call stacks and the coding itself. Also the instructions in the coding may have a reference to memory in different places. The reference is the logical address and relies upon the processor and operating systems to locate the actual physical address. Often as memory is moved from the main memory to say the virtual memory, the address will change as it is brought back into the main memory as its previous location has already been taken by another program. Protection and sharing is the next key point to memory management. The processor controls the process making it very difficult for the operating system to have any control over the process. For this reason the protection will share access in the main memory, as that makes it possible for multiple processes to be using the same library .
Memory organization allows for modules and coding to be broken down into segments allowing the segments to have their own location in the memory. This allows for segments to be used individually and even place only the needed parts because everything may not fit into the ram itself. This paging falls in line with virtual memory that allows for segments to be moved into the virtual memory. Two level memory organization