Q:

What is an easy definition of memory abstraction? what could be a good analogy?

What could be a good analogy of "memory abstraction" in computer architecture.
When i Google about it, I get:
A memory abstraction is an abstraction layer
between the program execution and the memory
that provides a different "view" of a memory
location depending on the execution context
in which the memory access is made.

I don't even know what abstraction is.
Please help!.

A:

An abstraction is a layer that sits between two systems and handles the communication, so neither side needs to know about how the other works directly.
I real word example may be the menu at a restaurant is an abstraction layer between the customer and the cook, I don't need to worry about telling the cook how to cook what I want, I can just pick it from the menu, and let them worry about how it comes together.
A more common abstraction in software is a service layer that a web application can send data to in order to have it stored in a database. This allows the application to just send data, and not care if it is going into a MySQL DB, A Mongo DB or whatever, the details of how it is stored are abstracted away, all the application needs to know is that it is stored. 
"memory abstraction" is similar, if I have a memory abstraction layer, I can just ask it to store some data for me in memory and not worry about where it's stored, when it's cleaned up or what memory addresses it's in. The abstraction layer can handle the details like that for me.
More good information here... https://en.wikipedia.org/wiki/Abstraction_(computer_science)

