我们都知道操作系统负责处理用户应用程序所需的资源。操作系统也是一段运行的代码,那么它如何管理其他用户程序呢?
操作系统是否在专用处理器上运行,并在其他处理器上监控用户程序?
操作系统实际上是如何处理用户应用程序的?
发布于 2019-01-28 01:32:50
这取决于操作系统的结构。对于任何现代操作系统,内核都是通过异常或中断来调用的。操作系统在中断期间“监视”进程。操作系统调度计时器中断。当计时器停止时,中断处理程序确定它是否需要切换到不同的进程。
另一种操作系统管理路径是通过异常。应用程序通过异常调用操作系统。异常处理程序还可以使操作系统切换到另一个进程。如果进程调用读取和等待系统服务,则异常处理程序肯定会切换到新进程。
在过去,多处理器通常有一个处理器,它是专用的主处理器,是处理某些任务的唯一处理器。现在,所有普通操作系统都使用对称多处理,其中任何处理器都可以处理任何任务。
发布于 2019-01-27 23:25:15
需要一整本书来回答你过于宽泛的问题。
阅读 (一本免费下载的书)。
操作系统是否在专用处理器上运行,并在其他处理器上监视用户程序?
一般来说,不是。相同的处理器(或内核)处于user-mode (适用于user程序;请阅读有关user space、process isolation和protection rings的信息)或supervisor模式(适用于操作系统kernel
操作系统实际上是如何处理用户应用程序的?
通常通过提供以某种受控方式从应用程序完成的system calls来实现。
一些学术OSes,例如Singularity,在设计时考虑了其他原则(隔离的正式证明技术)。
另请阅读有关micro-kernels、unikernels等的信息。
https://stackoverflow.com/questions/54389697
复制相似问题