I have been reading about caching and buffering it seems about the same to me can't get hold of the differences clearly and paging, for now the only difference I understand between paging and caching is that, pages store locations of data that are frequently accessed and so CPU can use the address to locate the data, whereas in caching the data itself is stored and wanting process directly acquires the data from the cache. I'm not sure if I'm entirely right which is why I posted the above question.
Paging, caching, and buffering are too broad topics to cover in a single post. Briefly, they serve different purposes:
Operating systems use paging as a memory management scheme. A computer stores and retrieves data from secondary storage (usually HDD) for use in main memory (RAM). For example, virtual memory implementations use paging.
Page caching, on the other hand, is a part of the main memory (say RAM) where you store frequently accesses pages since retrieving from HDD slower than retrieving from the main memory. Please note, I am talking about only page caches. There is for example HDD caches, CPU caches, Web server caches. But all of them have the same goal: to speed up data access.
Buffering typically used for data transfer between OS or program and external devices, Input/Output (keyboard, printer, etc).
In some sense caches and buffers are somewhat similar, both for storing temporary data for read/write speedup. However, buffers are usually associated with a certain device (printer, keyboard, or even a particular file). Two different buffers are used for two different files, while raw data from both files may be stored in a single cache. Unlike caches buffers contain metainformation about files or devices. Buffers usually short-lived but caches may live as long as OS or program runs.
This is just very brief information. For further details you may Google and find tons of information on this subject. Or just get a good book on OS.