Subscribe by Email

Sunday, April 21, 2013

What is a virtual memory?

- Virtual Memory is a memory management technique that is a compulsory requirement for the multi-tasking kernels. 
- With this technique, the architecture of a computer can be virtualized to different types of computer data storage such as disk drive storage and RAM i.e., the random access memory. 
- With this, programmers do not have to worry about designing applications that will suit this kind of storage. 
- The programs can be designed keeping in consideration only one kind of memory i.e., the virtual memory. 
- This memory behaves just like the usual memory but more than that. 
- It offers a direct as well as contiguous memory space for various operations. - Some of us might think that the programming the software might get difficult with the virtual memory. But this is not so.
- Instead the task becomes easy because the fragmentation of the main physical memory is hidden. 
- For achieving this, the burden of the management of the memory hierarchy is delegated to the kernel.
- This has another added advantage which is that the need for handling of overlays in an explicit way via program is eliminated.
- The need for the relocation of a program code or accessing the memory is obviated via relative addressing. 
- This lets the process to be executed in its own dedicated space. 
- The concept of the virtual memory in a more generalized form is called the memory virtualization.
- The modern computer architecture cannot do without the virtual memory. 
The only requirement for implementing the virtual memory is the hardware support that is provided through the memory management unit that is in-built in CPU. 
- For increasing the performance of these virtual memory implementations hardware support can be employed by the virtual machines and emulators. 
Computer systems with old operating systems such as DOS in mainframes  do not possess any functionality of the virtual memory. 
- The first computer that featured the virtual memory was the Apple Lisa that was designed in the year of 1980. 
- It appears that with the use of virtual memory as if every program has a sole access to it. 
- However, there were some older operating systems that had single address space Oss. 
- These operating systems used to process tasks in a single space. 
- This space is consisted of the virtual memory. 
- Very consistent response times are a requirement of the special purpose computer systems such as the embedded systems. 
- These systems do not prefer to use the virtual memory as it may decrease the determinism. 
- The unpredictable traps producing unwanted jitter while carrying out the I/O operations might be triggered by the virtual memory systems. 
- This happens because the cost of the embedded hardware is kept low. 
- The operations are included in the software rather than including them in the hardware. 
- This technique is termed as the bit banging. 
- The older programs needed to have logic for the management of both primary and secondary memory. 
- One such logic was that of the overlaying. 
- Therefore, virtual memory was introduced as a method for extending the primary memory and make this extension easy for the programmers.  
- In order to allow multi–tasking and multi–programming, the memory in the early systems was divided between many programs. 

Implementation of the virtual memory saw many problems. One among those problems was of the dynamic address translation that was difficult to be implemented and  quite expensive also. 

No comments:

Facebook activity