首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作系统代码和用户应用程序代码如何在同一处理器上运行

操作系统代码和用户应用程序代码如何在同一处理器上运行
EN

Stack Overflow用户
提问于 2019-01-27 23:22:56
回答 2查看 90关注 0票数 0

我们都知道操作系统负责处理用户应用程序所需的资源。操作系统也是一段运行的代码,那么它如何管理其他用户程序呢?

操作系统是否在专用处理器上运行,并在其他处理器上监控用户程序?

操作系统实际上是如何处理用户应用程序的?

EN

回答 2

Stack Overflow用户

发布于 2019-01-28 01:32:50

这取决于操作系统的结构。对于任何现代操作系统,内核都是通过异常或中断来调用的。操作系统在中断期间“监视”进程。操作系统调度计时器中断。当计时器停止时,中断处理程序确定它是否需要切换到不同的进程。

另一种操作系统管理路径是通过异常。应用程序通过异常调用操作系统。异常处理程序还可以使操作系统切换到另一个进程。如果进程调用读取和等待系统服务,则异常处理程序肯定会切换到新进程。

在过去,多处理器通常有一个处理器,它是专用的主处理器,是处理某些任务的唯一处理器。现在,所有普通操作系统都使用对称多处理,其中任何处理器都可以处理任何任务。

票数 2
EN

Stack Overflow用户

发布于 2019-01-27 23:25:15

需要一整本书来回答你过于宽泛的问题。

阅读 (一本免费下载的书)。

操作系统是否在专用处理器上运行,并在其他处理器上监视用户程序?

一般来说,不是。相同的处理器(或内核)处于user-mode (适用于user程序;请阅读有关user spaceprocess isolationprotection rings的信息)或supervisor模式(适用于操作系统kernel

操作系统实际上是如何处理用户应用程序的?

通常通过提供以某种受控方式从应用程序完成的system calls来实现。

一些学术OSes,例如Singularity,在设计时考虑了其他原则(隔离的正式证明技术)。

另请阅读有关micro-kernelsunikernels等的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54389697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档