1. A data acquisition (DAQ) system, comprising: a computer system including a CPU and a system memory; at least one data acquisition (DAQ) device coupled to the computer system, wherein the data acquisition device is operable to generate/receive data, wherein the DAQ device includes on-board memory; a DAQ user application stored in the system memory of the computer system which is executable to perform data acquisition operations in the DAQ system; DAQ driver level software stored in the system memory of the computer system which is executable to control the DAQ device, wherein the DAQ driver level software receives calls from the DAQ user application; a buffer object stored in the system memory of the computer system, wherein the buffer object stores information regarding data to be transferred; a foreground iterator stored in the system memory of the computer system which is executable to transfer data between a client portion of system memory and a buffer portion of system memory; a background iterator stored in the system memory of the computer system which is executable to transfer data between the buffer portion of system memory and the on-board memory comprised on the DAQ device; wherein the foreground iterator and the background iterator execute in response to the DAQ user application to perform transfers to/from the DAQ device; wherein the foreground and background iterators use information in the buffer object to perform the data transfer.