Understanding CPU memory, virtual memory, auxillary storage, with a context of telephone directory, pda/book, human memory of remmembering and making phone calls from the 1990's to 2000's. this is just for understanding so not much logic is applied to make it a comparison of apples to apples.
Back in those days when we dont have cell phones we used to have a telephone directory with all the numbers released by bsnl. We also used to have small calculator size devices to store phone numbers or most of us might have used phone books/last or first empty pages in the telephone directory to make note of the imp. phone numbers.
Now CPU Memory or real memory can be assumed to be human memory and the size of the memory differs from person to person similarly it defers from one system model to another. Any code to be executed by the system needs to have all the data and code to be executed in this memory. Like if we need to call we used to check the number in our book/pda or the directory and dial it, ofcourse our has to brain process the number to do the dialing, like the cpu processes some code.
The telephone directory can be assumed as our auxiliary storage device that is holding all the code and data. In the system scenario the DASD which holds all our files is called as auxiliary storage.
Now to call a person you need to have his number in your memory. If you remember it by default, well we can immediately dial or we will have to check the telephone directory and go to the index and then slowly check one number after the other and find the required persons number and then call him. The no. of numbers that we can remember depends on a persons memory capacity and how frequently those numbers are dallied. In the CPU context the no. of numbers that it can remember depend on the dressing capacity of the architecture and the available CPU memory.
If we have 16bit addressing then it can remember 2^16 different telephone numbers. or 2 ^ 24 / 2 ^ 31 / 2 ^ 64 different number based on the cpu architecture. We don't really need to have that much amount of real memory that our system's dressing capacity. We can have it based on our needs as the real memory is of more cost.
What is virtual memory, you may not be able to remember all the phone number that are of important to us, we used to make a note of them in the small book or PDA and refer to it as soon as we need a number as we mostly know the page number or in pda search by the name and fetch it quickly in a whole it can act like an extension of our memory. In the same way the cpu can take a part of it auxiliary storage (page datasets) and make a note of all the available space and store data for using when required. Now this usage of Real memory and part of auxiliary storage(page datasets) is called as virtual memory.
Would you like to publish your Articles on IBMMainframer Community? Submit here