【发布时间】:2019-01-30 21:54:32
【问题描述】:
最近,我一直在阅读有关操作系统的内容,这让我很困扰。 一个进程如何真正管理另一个进程。
基本上CPU只是简单地执行指令,在执行一条指令后,它会在IP指向的地址处执行指令并递增IP。
让我用一个例子来阐述我的疑问。假设我有一个由 CPU 执行的用户进程(或简称为进程)。可以说,它有“n”条指令,当前正在执行“i”条指令。 IP 指向第 (i+1) 条指令。 那么,此时所有其他操作系统进程(如调度程序、调度程序等)如何发挥作用,因为 CPU 已经在执行另一个进程。
我能想到的一个解决方案(只是猜测)是,使用中断和中断服务例程。
但这只是一个猜测。
PS:我搜索了一下,没有找到满意的答案。
【问题讨论】:
-
操作系统是一个系统,而不是一个进程。它是一个“操作系统”,用于管理硬件的使用方式。要在 OS 中运行进程,还有许多其他帮助程序(可能是也可能不是 OS 本机的)可用。
-
据我了解,操作系统在操作系统进程的帮助下进行管理活动对吗?我认为你并没有真正理解我的意思。请再次阅读我的问题。
-
是的,这是正确的,尽管语言律师可能会质疑措辞。
-
操作系统内核是代码和数据的状态机。它本身没有执行线程,它不需要堆栈(尽管更改为内核堆栈通常用作实现/优化)。它不是一个经典的进程——它是在硬件中断和系统调用时从进程线程输入的代码。如果没有硬件中断,也没有系统调用,内核代码就不会进入或执行。 “使用中断”——是的,必不可少。 '我搜索并找不到任何令人满意的答案' - 真的吗?你尝试了什么搜索字符串?
-
@MartinJames 谢谢,您的回答帮助我清楚地理解了这个概念。它是操作系统内核和其他类似于困扰我的用户进程的操作系统进程之间的区别。另外,如果我能找到满意的答案,我为什么要在这里问?
标签: operating-system cpu-architecture