当用户进程执行时,操作系统何时获得对 CPU 的控制权

When does the operating system gain control over the CPU when a user process is executing

我目前正在研究操作系统,有一些我不太了解的地方。在具有抢占的分时系统中,进程总是交换的。但是,如果用户进程正在 CPU 之一上执行,则不会有其他进程也在同一 CPU 上执行。如果所有CPU都被用户进程占用,那么操作系统进程不能同时运行,那么是什么原因导致超时抢占(CPU定时器?)?

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

谢谢。干杯!

"operating system" 在进程的上下文中运行(尽管有些逆行 OS/s 使用不同的术语)。当出现异常或中断时,"operating system" 进行控制。

If all CPUs are taken by user processes, the operating system processes cannot run at the same time, so what is it that causes causes timeout preemption (CPU timer?)?

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

Moreover, what confuses me is the notion of kernel and user threads. I have read that kernel threads are the ones that get scheduled to execute on the CPU.

内核thread/user线程区分完全是一堆没用的操作系统书炮制的粪便

一个内核线程就是一个线程。

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