Multiuser vs. Multitasking
Operating systems like MS-DOS are single-user, single-task systems; they are designed to be used by a single user who wishes to execute a single program from the shell. However, with advances in CPU technology, even the humble MS-DOS shell was expanded to allow multitasking, where more than one application can execute concurrently. This approach was extended with Microsoft Windows, which allows several applications to be executed concurrently in a GUI environment. In addition, Microsoft Windows has support for multiple users, although it is generally possible for only a single user to initiate a console session, limiting its concurrency—unless some third-party product is installed (such as Symantec’s pcAnywhere, or Terminal Server with Windows 2000/XP).
UNIX provides the best of both worlds, because it is designed from the ground up to permit multiple users to initiate multiple shells, which in turn can execute multiple applications. In addition, Solaris supports lightweight processes such as threads, which allow the traditional concept of multitasking to be generalized to execute multiple threads within a single process. Solaris also supports symmetric multiprocessing, meaning that the physical execution of processes, threads, and user applications may occur on one of many different supported processors.