When Nachos first begins executing, it is executing as a single Unix process. Nachos turns this single user process into a single Nachos thread. Thus, by default, Nachos executes a single thread. When the Nachos entry point routine main returns, that thread exits as well. However, if other threads have been created and continue to exist, the Unix process continues executing Nachos. Only after all threads have terminated does the Unix Nachos process exit.