16-bit programs run separately within one 32-bit NTVDM process. Checking "Run in separate memory space" in the "Run" dialog box or shortcut of the program creates a new process instead. NTVDM emulates BIOS functions, the Windows 3.1 kernel, and its 16-bit API.