For example:
if you had a while loop that reads from a file to some array named input, then you want to run a compute function that creates an output array from that input array and then you want to write this output array to another file. You want to do these input, compute, and output functions over and over again....how can we synchonize this program so that we maximize the overlap between the CPU activity and I/O activity?