1. Call a yield function
    • I yield my excecution to someone else
  2. Save context to stack
    • register values & stack pointer
  3. Run some Rescheduele function to find a new thread
  4. Restore (differenet) stack pointer and registers
  5. Return (this will “return” into a different place than we “call”ed from!)