When a program runs in a text-based environment, such as a command line interface, what determines the order in which things happen?