Chapter 3 Memory Management. The memory management subsystem is one of the most important parts of the operating system. Since the early days of computing, there has. The operating system consists of many management units and memory management unit is one of them that provide the management functions for the memory such that full. WHAT IS AN OPERATING SYSTEM? Operating Systems Overview 15 Memory A user program can only access its own logical memory.
Memory management units (MMUs) are incorporated in, or available for, a wide range of embedded CPUs. Under some circumstances their use is mandatory; in other. OPERATING SYSTEMS Intel’s View of Memory Management. How Do Operating Systems Use Memory. Memory management is the process of controlling and coordinating computer memory. Memory management resides in hardware, in the OS (operating system).
Operating System Concepts 1.1 Silberschatz, Galvin and Gagne 2002 Chapter 1: Introduction. I/O routine supplied by the system. A memory management unit (MMU), sometimes called paged memory management unit.
Operating System Memory Management. Memory management is the functionality of an operating system which handles or.
Memory management keeps track of each and every memory. It checks how much memory is to be allocated to processes. It decides which process will get memory at what time. It tracks whenever some memory gets freed or unallocated and correspondingly it updates the status. This tutorial will teach you basic concepts related to Memory Management. Process Address Space. The process address space is the set of logical addresses that a process references in its code.
For example, when 3. The operating system takes care of mapping the logical addresses to physical addresses at the time of memory allocation to the program. There are three types of addresses used in a program before and after memory is allocated .
The variable names, constants, and instruction labels are the basic elements of the symbolic address space. Relative addresses. At the time of compilation, a compiler converts symbolic addresses into relative. Physical addresses. The loader generates these addresses at the time when a program is loaded into main memory. Virtual and physical addresses are the same in compile- time and load- time address- binding schemes.
REAL TIME OPERATING SYSTEMS Lesson-5: Memory Management Functions. Memory Managing Strategy for a system. Memory management Example.
Virtual and physical addresses differ in execution- time address- binding scheme. The set of all logical addresses generated by a program is referred to as a logical address space. The set of all physical addresses corresponding to these logical addresses is referred to as a physical address space. The runtime mapping from virtual to physical address is done by the memory management unit (MMU) which is a hardware device. MMU uses following mechanism to convert virtual address to physical address. The value in the base register is added to every address generated by a user process, which is treated as offset at the time it is sent to memory.
For example, if the base register value is 1. The user program deals with virtual addresses; it never sees the real physical addresses. Static vs Dynamic Loading. The choice between Static or Dynamic Loading is to be made at the time of computer program being developed. If you have to load your program statically, then at the time of compilation, the complete programs will be compiled and linked without leaving any external program or module dependency. The linker combines the object program with other necessary object modules into an absolute program, which also includes logical addresses. If you are writing a Dynamically loaded program, then your compiler will compile the program and for all the modules which you want to include dynamically, only references will be provided and rest of the work will be done at the time of execution.
At the time of loading, with static loading, the absolute program (and data) is loaded into memory in order for execution to start. If you are using dynamic loading, dynamic routines of the library are stored on a disk in relocatable form and are loaded into memory only when they are needed by the program. Static vs Dynamic Linking. As explained above, when static linking is used, the linker combines all other modules needed by a program into a single executable program to avoid any runtime dependency. When dynamic linking is used, it is not required to link the actual module or library with the program, rather a reference to the dynamic module is provided at the time of compilation and linking. Dynamic Link Libraries (DLL) in Windows and Shared Objects in Unix are good examples of dynamic libraries. Swapping. Swapping is a mechanism in which a process can be swapped temporarily out of main memory (or move) to secondary storage (disk) and make that memory available to other processes.
At some later time, the system swaps back the process from the secondary storage to main memory. Though performance is usually affected by swapping process but it helps in running multiple and big processes in parallel and that's the reason Swapping is also known as a technique for memory compaction. The total time taken by swapping process includes the time it takes to move the entire process to a secondary disk and then to copy the process back to memory, as well as the time the process takes to regain main memory. Let us assume that the user process is of size 2. KB and on a standard hard disk where swapping will take place has a data transfer rate around 1 MB per second.
The actual transfer of the 1. K process to or from memory will take. KB / 1. 02. 4KB per second. Now considering in and out time, it will take complete 4.
Memory Allocation. Main memory usually has two partitions . Relocation register contains value of smallest physical address whereas limit register contains range of logical addresses.
Each logical address must be less than the limit register. Multiple- partition allocation. In this type of allocation, main memory is divided into a number of fixed- sized. When a partition. When the process terminates, the partition becomes available for.
Fragmentation. As processes are loaded and removed from memory, the free memory space is broken into little pieces. It happens after sometimes that processes cannot be allocated to memory blocks considering their small size and memory blocks remains unused. This problem is known as Fragmentation. Fragmentation is of two types . Some portion of memory is left unused, as it cannot be used by another process. The following diagram shows how fragmentation can cause waste of memory and a compaction technique can be used to create more free memory out of fragmented memory .
To make compaction feasible, relocation should be dynamic. The internal fragmentation can be reduced by effectively assigning the smallest partition but large enough for the process. Paging. A computer can address more memory than the amount physically installed on the system. This extra memory is actually called virtual memory and it is a section of a hard that's set up to emulate the computer's RAM. Paging technique plays an important role in implementing virtual memory. Paging is a memory management technique in which process address space is broken into blocks of the same size called pages (size is power of 2, between 5. The size of the process is measured in the number of pages.
Similarly, main memory is divided into small fixed- sized blocks of (physical) memory called frames and the size of a frame is kept the same as that of a page to have optimum utilization of the main memory and to avoid external fragmentation. Address Translation.
Page address is called logical address and represented by page number and the offset. Suppose you have a program of 8. Kb but your memory can accommodate only 5. Kb at a given point in time, then the paging concept will come into picture. When a computer runs out of RAM, the operating system (OS) will move idle or unwanted pages of memory to secondary memory to free up RAM for other processes and brings them back when needed by the program.
This process continues during the whole execution of the program where the OS keeps removing idle pages from the main memory and write them onto the secondary memory and bring them back when required by the program. Advantages and Disadvantages of Paging.
Here is a list of advantages and disadvantages of paging . Each segment is actually a different logical address space of the program. When a process is to be executed, its corresponding segmentation are loaded into non- contiguous memory though every segment is loaded into a contiguous block of available memory. Segmentation memory management works very similar to paging but here segments are of variable- length where as in paging pages are of fixed size.
A program segment contains the program's main function, utility functions, data structures, and so on. The operating system maintains a segment map table for every process and a list of free memory blocks along with segment numbers, their size and corresponding memory locations in main memory.
For each segment, the table stores the starting address of the segment and the length of the segment. A reference to a memory location includes a value that identifies a segment and an offset.