University of Phoenix
Introduction to Operating Systems POS/355
Memory Management Requirements
Memory management is one of the critical processes of dividing and subdividing the main memory is handled by the operating system. The operating system handles the available memory (commonly referred to as RAM) in five different levels; Physical Memory, Segmented Memory, Paged Memory, Allocated Memory, and the Heap (Pingkian, 2009). The operating system must manage memory effectively so that a reasonable amount of processes can consume the available processor time (Stallings, 2012). For the operating system to use the memory, it must know the requirements of memory. Memory management has five requirements for using it; Relocation, Protection, Sharing, Local Organization, and Physical Organization (Stallings, 2012).
Relocation is the act of moving a process to a different area of the memory (Stallings, 2012). During relocation, the memory management must translate the logical addresses for memory to physical locations for the memory. While a program is running, it may need to be swapped to disk and is returned to memory later after processing of other tasks have completed. During this relocation of the program, the memory locations will change and need to have the new addresses managed by the kernel of the operating system. Relocation becomes evident when taking into consideration that in a multiprogramming environment that a program cannot know in advance, what processes will be loaded into memory, nor how much memory a system has available (Callarai, 1996).
During memory management, each process in memory should be protected against unwanted interference by other processes in memory (Stallings, 2012). It would be extremely dangerous and a security vulnerability if a process could overtake another memory process. This protection must be checked at runtime of the program and must be handled by the processor and not the operating system as the operating system cannot know the memory references that a program may use (Stallings, 2012).
Another requirement of memory management is to allow several processes to access the same portion of memory. To take advantage of multiple processes running the same program it is advantageous for the process to access the same copy of a program instead of possessing its own copy in memory (Stalling, 2012). This allows the same program to reside in memory but each process also contains a separate data, which the program uses while running. For instance while running Internet Explorer you could have several windows open. Each window is a separate process of the executable iexplorer.exe. The memory management will load one instance of iexplorer.exe into memory for all processes to use but each process still has its own separate memory allocation so each process can be on a different web page at the same time.
Programs are organized into modules that can be read only, execute only or can contain data that can be modified. The memory management is required to handle the local organization, which is usually a linear or one-dimensional address space consisting of a sequence of bytes or words (Stallings, 2012). The memory manager is also responsible for organizing the modules so that they can be shared among other processes. One way to arrange local organization is by