Never mind the details of how outputs to screens, bells, artificial voices, printers, network connections, and so on are aggregated. That is inessential. The sets I, M and O are all quite huge, but they are finite. No matter how big RAMs and disks get, they will never hold an infinite number of bytes. The abstraction of computers is quite simple then.
F mixes an input value with the current memory state to get a new memory state.
For example, if the input aggregate includes a camera, F may add the image from the camera to the images currently stored in the memory. The function G generates a new output aggregate from the state of the memory, and updates the state of the memory. But these details are inessential for our arguments. One other detail is that the memory set M includes some states in which the finite machine halts. If it ever reaches these states by the functions F and G, it stops.