0

我目前正在研究操作系统并且有一些我不完全理解的东西。在具有抢占的时间共享系统中,进程总是交换的。但是,如果用户进程正在其中一个 CPU 上执行,则不可能有其他进程也在同一 CPU 上执行。如果所有 CPU 都被用户进程占用,操作系统进程不能同时运行,那么是什么原因导致超时抢占(CPU 定时器?)?

此外,让我感到困惑的是内核和用户线程的概念。我读过内核线程是计划在 CPU 上执行的线程。此外,用户线程通过某种顺序(一对多、多对一、多对多)映射到内核线程。我相信这与上述问题有关,但我无法从我拥有的文档中弄清楚。

谢谢你。干杯!

4

1 回答 1

2

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

如果所有 CPU 都被用户进程占用,操作系统进程不能同时运行,那么是什么原因导致超时抢占(CPU 定时器?)?

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

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

内核线程/用户线程的区别是毫无价值的操作系统书籍炮制的总肥料。

内核线程是一个线程。

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

于 2018-10-31T18:40:28.637 回答