Back in the day we used to call that "double buffering".
The common Amiga implementation was especially neat. There, the video buffer was (almost) any chunk of memory you pointed the "screen" at. You could pre-render a number of complex frames, and have a high-FPS animation by moving the buffer pointer.
And yes, you could look at your own code executing in realtime. But I digress.