I am using Keil in C Programming Language.
How do I use an serial port interrupt to receive raw data and store it into the buffer and then, process it?
Yes, all good programming books covers this concept, since you don't have to work with embedded programming to have producer/consumer situations, with a need to buffer the pipe between them.
The concept is so easy with a read pointer, a write pointer and a bit of buffer space. And no need to move the buffer contents just because you insert or remove one entry. So the efficiency is constant for a large or small buffer. No expensive memory moves needed.