When does the operating system gain control over the CPU when a user process is executing
我目前正在研究操作系统,并且有一些我不太了解的东西。 在具有抢占的时间共享系统中,始终交换进程。 但是,如果用户进程正在其中一个CPU上执行,则可能没有其他进程也在同一CPU上执行。 如果用户进程占用了所有CPU,则操作系统进程无法同时运行,那么导致超时抢占的原因是什么(CPU计时器?)?
而且,令我困惑的是内核和用户线程的概念。 我已经读过内核线程是计划在CPU上执行的线程。 此外,用户线程通过一些排序(一对多,多对一,多对多)映射到内核线程。 我相信这与上面的问题有关,但我无法从我的文档中找到它。
谢谢。 干杯!
"操作系统"在进程的上下文中运行(尽管一些逆行OS使用不同的术语)。 当存在异常或中断时,"操作系统"将获得控制权。
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.
内核线程/用户线程的区别是由操作系统上毫无价值的书籍编制的总粪便。
内核线程是一个线程。
"用户线程"是一个穷人在不支持它们的系统上模拟线程的方法。 它们是库函数,甚至不是操作系统的一部分。 因此,除了历史信息之外,它们甚至不属于操作系统的课程。