Парралельно программы на одном процессоре выполняются по частям.
То есть выполнение одной программы прерывается, выплоняется другая. Затем она тоже прерывается, выполняется первая.
В многозадачных операционных системах, за этим следит ядро системы. Он следит сколько времени выделять различным процессам. Процессы соответственно могут частично блокировать прерывание в определенных местах.
В старых задачах, за этим следил сам программист, подключая свои обработчики к прерываниям, например создавая резидентные программы в DOS.