1. Allocate a new stack (probably on the heap)
  2. Put initial stack pointer and registers on the fresh stack
  3. Register the thread data structure with the rescheduler
  4. Scheduler will “restore” the inital data when it re-schedules