执行用户进程时,操作系统什么时候可以控制CPU

时间:2018-10-31 15:04:23

标签: multithreading operating-system scheduler preemption

我目前正在研究操作系统,并且有一些我不完全了解的内容。在具有抢占的分时系统中,始终交换进程。但是,如果用户进程在一个CPU上执行,则不可能有其他进程也在同一CPU上执行。如果所有CPU都由用户进程占用,则操作系统进程无法同时运行,那么是什么原因导致超时抢占(CPU计时器?)?

此外,让我感到困惑的是内核和用户线程的概念。我读过内核线程是安排在CPU上执行的线程。此外,用户线程通过某种顺序(一对多,多对一,多对多)映射到内核线程。我相信这与上面的问题有关,但是我无法从已有的文档中找出来。

谢谢。干杯!

1 个答案:

答案 0 :(得分:2)

“操作系统”在进程的上下文中运行(尽管某些逆向OS使用不同的术语)。发生异常或中断时,“操作系统”将控制一切。

  

如果所有CPU都由用户进程占用,则操作系统进程无法同时运行,那么是什么导致超时抢占(CPU计时器?)?

操作系统设置触发中断的CPU计时器。计时器中断处理程序会在退出计时器之前将其重置。

  

此外,让我感到困惑的是内核和用户线程的概念。我读过内核线程是安排在CPU上执行的线程。

内核线程/用户线程的区别是由操作系统上毫无价值的书籍炮制的全部内容。

内核线程是线程。

“用户线程”是穷人在不支持线程的系统上模拟线程的方式。它们是库函数,甚至不是操作系统的一部分。因此,它们甚至不属于历史信息以外的操作系统课程。