There's something I fundamentally don't understand about how multitasking works in Linux (and probably also in general). If I understand correctly, each time a process wants to change its output to the screen, it needs to do some computations and send the data. But if I understand correctly, processes can hog the CPU for up to 100ms before being pre-empted under the default settings of most Linux distributions. This would seem to preclude the possibility of processes being unblocked frequently enough to be able to refresh the screen at 60Hz. In light of this, I guess there's probably a whole host of fundamental misunderstandings I have about how Linux manages its scarce CPU time and/or about how processes send data to I/O devices.
Question. What's going on here?