Зависит от процессора и, тем самым, от того, что необходимо для представления состояния задачи. Также зависит, в определенной степени, от ОС.
В старом оригинальном (до виртуальной памяти) Unix регистры сохранялись в фиксированном месте в памяти, затем записывалась вся пользовательская память на диск и считывался новый образ пользовательской памяти. (Unix "fork" был выполнен простым пропуском шага "read it in".) Это было очень быстро вытеснено виртуальной схемой обмена, когда стали доступны процессоры с TLB ("Berkley Unix").
В стековой архитектуре в стиле Берроуза все, что нужно поменять местами (теоретически), - это указатель стека и идентификатор задачи. Адресация памяти (в оригинале) осуществляется через "возможности" и "сегменты", а не через TLB.
Старые архитектуры регистров с виртуальной памятью на основе TLB требовали, чтобы TLB (и иногда кеширование) были по меньшей мере недействительными при замене, в дополнение к замене регистров программы (включая IAR, код условия и т.д.). Более новые архитектуры на основе TLB обходят эту проблему различными способами, избегая сброса, так что при достаточно быстром переключении назад не требуется перезагружать все. (По этой причине в многопроцессорной системе задачам часто присваивается "сходство" с данным процессором, чтобы минимизировать объем перезагрузки TLB/ кэша.)