给定一个采用多任务抢占的单核系统,当用户模式应用程序在系统上执行时,操作系统如何执行线程中断?由于处理器正在处理用户代码,它什么时候有机会向线程调度程序询问上下文切换。它的处理方式与页面错误类似吗?如果是,它多久发生一次,是否会导致性能下降?
最佳答案
阅读硬件中断。
硬件定时器发出周期性中断。当发生这种情况时,CPU 切换到内核模式并执行一个例程,即中断处理程序。这就是上下文切换发生的地方。当 CPU 从内核返回到用户模式时,它会将控制权返回给与发生中断的线程不同的线程。自然而然地保存了被抢占线程的状态。
关于multithreading - 在单核系统中如何处理抢占?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35136776/