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

时间:2019-01-27 15:22:56

标签: operating-system processor

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

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

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

2 个答案:

答案 0 :(得分:2)

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

另一个OS管理路径是通过异常。应用程序通过异常调用操作系统。异常处理程序还可能导致操作系统切换到另一个进程。如果某个进程调用了读取并等待系统服务,则该异常处理程序肯定会切换到新进程。

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

答案 1 :(得分:0)

需要一本完整的书来回答您的问题。

阅读Operating System: Three Easy Pieces(可免费下载的书)。

  

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

一般而言同一处理器(或内核)位于用户-mode中(用于用户程序;请阅读user spaceprocess isolationprotection rings)或处于管理者模式(用于-操作系统kernel

  

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

通常通过提供system calls来完成,这些操作是通过应用程序以某种受控方式完成的。

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

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