Multithreading is basically multitasking within a single program. Because NetWare 6 supports multithreading, it can execute multiple software threads concurrently within the same program. Like multitasking, NetWare 6 multithreading is also based upon a single processor model and will benefit dramatically from two or more processors. To fully grasp the benefit of NetWare 6 multithreading, you must understand the subtle differences between these three operating-system terms: Software Thread Each software thread is composed of two parts: (a) the first piece defines what the computer must do, and (b) the second part performs the action according to the definition. Each NetWare server application allocates threads just like it allocates memory. When the application is done processing the thread, the thread is returned to the system kernel to be called the next time it's needed. Because the software thread is allocated CPU time, a processor can only execute one thread at a time. Simultaneous With respect to software threads, simultaneous means that one processor can run multiple threads at the same time. However, this is not possible with a single-processor server. The only way to achieve true simultaneous threading is to use a multiprocessor server. Concurrency With respect to software threads, concurrency is the perception that a single processor is executing threads simultaneously. In reality, multithreading relies on the fact that fast processors can switch between multiple threads so efficiently that they appear to be running in parallel. In the NetWare 6 multithreading concurrency model, a single processor can switch from one thread to another at any point and can place the resting threads in a state of suspension. Although multitasking and multithreading help supercharge your NetWare 6 engine, they are limited to the single-processor model. Imagine how powerful they can be when you add one or more additional processors. |