This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Memory management is accountable for assigning memory to processes and protecting the memory assigned to each process from unwanted access by other processes. Memory management is a design and the process of organizing and controlling the use of memory in a computer system; that is, protecting the memory allocated to the operating system from unauthorized access.
Memory management is divided into three parts, which are
Memory management hardware
Operating system memory management
Application memory management
The memory management hardware is consisted of an electronics device that stores the data into a computer. These devices include the RAM, memory caches (the cache typically small, fast piece of storage, used for copies of data in the main memory, which is automatically used by the processor for fast access to any data which are currently existing in there).
Functions performed by the memory management hardware
Single relocatable partition
Multiple fixed partition
In single relocatable partition, whereby each giving time a memory location is referenced, the memory management hardware adds the address to the reloadable register which is then converts into a physical address.
In multiple fixed partition, whereby each giving time a memory location is referenced, its logical address is then compared with the address in the size register. Therefore, any address bigger than the address in the size register will result in a memory-fault trap. At the same instance, the logical address is then added to the address in the relocation register to produce the physical address. In multiple fixed partition, when a process is giving control of the CPU, there is always free space at the end of the of the process which is wasted, this wasted within the partition, which is known as the internal fragmentation.
In simple segmentation, whereby each time a memory location is referenced, the segmentation hardware converts the logical address into physical. Whereby the segment number bits in the logical address are used as an index into the segment table, the logical address segment offset bits are added to the segment starting address, which is then obtained from the correct segment table entry, to form the physical address.
Operating system memory management is concerned with using memory management hardware to handle the resources of the storage hierarchy and assigning them to do different activities running on a computer. The operating system memory management has three levels which are
Single relocatable partition: when the system is booted, the operating systems loads the relocation register with address of the smallest memory location that can be accessed by the user program.
Multiple fixed partition: when the operating system is booted up, it must load the size of a partition into the size register. The operating system will then keep track of which partition is in use and which of them a free. When the process is created or terminates, the operating system must update the partition usage data or item. Before the operating system memory management allocates memory to a process, the operating system must check if the process is smaller than the partition size.
Simple segmentation: the operating system memory management system must keep track of which of the memory locations that is in use and the ones that are free. When a process is created, the operating system memory management assign the segment to memory and create segment table for the process.
The operating system memory management is consisted of a main storage which is known as the virtual memory. The virtual memory permits a process to use the CPU when only part of its address space is loaded in the primary memory. In this procedure, each and every processâ€™s address space is partitioned into different parts that can be loaded into primary memory that is if they are needed to return back to the secondary memory. The virtual memory has a logical memory space which is available to programs, and it is entirely independent of the physical memory. The virtual memory therefore frees programs from limitations of physical memory restrictions
Virtual memory can also be used in different useful management skills, such as barriers.
Virtual memory support the following
It support Programs that are bigger or heavier than the physical memory
It also allows several programs to reside in the physical memory at a time to enable multiprogramming functions.
The operating system memory also included with memory protection and security, this help the maintenance of the operating system integrity to prevent it against unplanned breakdown or intentional breakdown. The operating system memory management in fixed partition can choose to place processes into whatever memory locations that are not being used, by giving each process the exact amount of space it requires.
Application memory management is by supplies storage that can be directly access by the processor from the operating system and its user. Application memory management is also consist of ensuring that a programs memory usage is not more than the actual data that they need, while keeping the period spent managing the memory within limits which is acceptable to the programs user. It recycle unused memory space for reuse.
Application memory is subjected into three parts which are
Allocation is the process of assigning to programs when requested for. When requested to by a program, an application called memory manager (which is known as the part of a system that manages the memory, provide allocation request, and recycling memory either manually or automatically) assigns a block of memory (storage that can be accessed directly by the processor) for the program to store its data into. Allocation is known to have three basic schemes which are as follows
Contiguous allocation: is the process whereby the logical blocks of a file are stored in a partition of contiguous physical blocks. The contiguous allocation requires a preallocation of space for a newly created file.
Linked allocation: is the process whereby the physical block where a file is stored might be spread all through the secondary storage device.
Indexed allocation: is a variation of connected allocation, whereby the physical block stores only a logical block and is therefore the same size a logical block.
Deallocation is also known as the manual memory management, which is the process of freeing or deallocating an item/data, by telling the memory manager that the item/data is no longer needed. The memory is therefore being recycled and used for other storage or returned to the operating system.
Garbage collection is also known as the automatic memory management, which is the automatic and recycling of dynamically allocated memory (this is mainly used for items/data that whoâ€™s size, quality, or lifetime could not be determined at accumulate time). The garbage collection is used to all free or unused space into a single hole, but the garbage collector is therefore performed by a garbage collector.
Paging is a technique used by mostly by the virtual memory system in transferring pages form the physical memory (the physical memory is a memory or a physical storage device such as Ram or Disk, that is directly linked to the processor, and it is addressable by the physical address), and backing store (which is a slower memory compare with the main memory (called page frame), and is generally used) a part of the hard disk that by a paging or swapping system to store information.
Advantage of paging
Paging allows jobs to be allocated in noncontiguous memory locations so that the memory is used in a more efficient manner and so that more jobs or data can be contained in the main memory which is also known as page frames. And also it is
Easy to allocate physical memory, whereby memory is assigned from a free list of frames
Easy to page out large pieces of programs, whereby all chunks are the same in size, they use valid bit to detect references to page-out pages
Disadvantage of paging
It is that overhead memory references is increased at the end of each job, and internal fragmentation causes the process not to use memory in the exact multiple pages
Memory that is required to hold the page table may be very large and will therefore result to internal fragmentation.
It uses one shared virtual address space
Paging consist of a strategy called Demand paging
Demand paging is a technique used for loading only virtual pages into a memory. When a job actually carried out, the pages are brought into the memory only when they are needed, that is, the pages are only loaded into the memory on demand, not in advance, they are loaded as each one of them is requested for, because programs are written sequentially, demand paging take advantage of this fact, so that when one part or component is under processed, the other parts or module would be in idle, so therefore not all pages would be accessed at the same time.
Memory management/hardware. Accessed on the 8/06/2010. Available online at http://www.fujitsu.com/global/services/computing/server/unix/technology/performance/p-hardpartition.html.
Memory management. Accessed on the 8/06/2010. Available online at, http://www1bpt.bridgeport.edu/sed/projects/cs503/Spring_2001/kode/os/memory.htm.
Memory management. Accessed on the 8/06/2010. Available online at, http://www.memorymanagement.org/glossary/m.html#memory.management.
Application memory. Accessed on the 9/06/2010. Available online at. http://www.memorymanagement.org/glossary/g.html#garbage.collection
Paging. Accessed on the 15/06/2010. Available online at. http://web.cs.wpi.edu/~cs3013/c07/lectures/Section08-Memory_Management.pdf.
demand paging. Accessed on the 15/06/2010. Available online at, http://sunsite.nus.edu.sg/LDP/LDP/tlk/node26.html
Operating system by J ARCHER HARRIS
Memory/hardware/application/operating system. Accessed on the 15606/2010. Available online at, http://www.memorymanagement.org/articles/begin.html.