On Linux context switching can occur because an application makes a system call, or because the scheduler swaps processes out of the CPU for another process.
On Windows what are the possible causes of a context switch? Specifically, from the literature I have read, high thread count is the only cause of high context switching I have run into so far. Are there others?
Finally, is the cost of swapping out two threads of the same process different than the cost of swaping out two different processes?