Welcome to Eliezer May's Website

INTELLECT AND INNOVATION AMPLIFY ONE'S SUCCESSES IN ALL OF ONE'S ENDEAVORS

     

email: Eliezer@EliezerMay.Com

TECHNOLOGY: MEMORY AND VIRTUAL MEMORY

TECHNOLOGY: MEMORY AND VIRTUAL MEMORY

DIRECTLY ADDRESSABLE MEMORY VS VIRTUAL MEMORY

In the old days computers had directly addressable memory.  So if you needed an instruction or piece of data you would provide an address with might look like you street address but have a medium range like  0 through 30,000 (possibly more or less depending on technology and cost at the time).  The compilers, libraries, and other software building components were primitive then and the build process largely fell on the programmer including the management of memory.  

NOW ENTER VIRTUAL MEMORY

A new concept emerged that the operating system would take over all memory management functions and programmers could simply write software with no physical memory restrictions.  The metaphor here is imagine going into a theatre of some sort with lots of states.  The scenery team can set up a stage to reflect any place at any time.  And when that act is done the team returns to set up the stage to be a totally different place and time.  
So what actually happens in the computer is that a person is allocated a certain amount of memory and then they start their program.  The operating system load the beginning portion of the software and starts the program running.  The program then requests some more instructions or data that has not yet been loaded into memory.  So either the person has more available memory to load the information into or must relinquish some of the memory saving it somewhere and reloading it with the new required instructions or data.  The price that must be paid is that every memory reference in virtual memory system requires at least 3 physical memory references to be satisfied (later caching helps speed up this limitation) to know whether the information is available now or not.  If not the operating system has a prioritized means of finding the information.  The actual details of this are far too technical to explain here but just try to imagine as a programmer that you have no limitations and the operating system will find the best way to handle your requirements although it might require a seasoned engineer to tune the memory utilization optimally.  See my story with solving Group Health’s Virtual Memory problems.