In Modern Operating Systems, Tanenbaum shows that many distinct models of process organization are possible. The implementation of threads and processes differs between operating systems.
In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non- thread-local global variables at any given time. The multiple threads of a given process may be executed concurrently (via multithreading capabilities), sharing resources such as memory, while different processes do not share these resources. In many cases, a thread is a component of a process. In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. Scheduling, Preemption, Context Switching Smallest sequence of programmed instructions that can be managed independently by a scheduler A process with two threads of execution, running on one processor Program vs.