Buffer is a region of memory that temporarily holds data during transfer between devices or processes. There are several buffering techniques used in operating systems, including single buffering where a single buffer holds data during transfer, and double buffering where two buffers are used so one can be filled while the other is emptied. Block buffering reserves multiple buffers in memory to speed up transferring multiple blocks from disk to memory in parallel with CPU processing.