【问题标题】:Mode in which system programs are executed执行系统程序的模式
【发布时间】:2016-08-04 09:30:20
【问题描述】:

我想我知道系统程序是什么,但我想了解为什么它们部分在用户模式下和部分在内核模式下执行。

由于计算机软件旨在为其他软件提供服务,我认为它们可能完全在内核模式下运行。在什么情况下它们在用户模式下运行?

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    内核模式和用户模式级别的存在是为了防止用户软件损坏系统及其功能。

    用户模式如何执行低级指令?

    ans - 使用系统调用

    用户模式程序可以切换到内核模式,但无法控制将在内核模式下执行的指令。 所以发生这种情况的唯一方法是使用系统调用,用户模式使用该接口与低级资源(硬件)进行通信。

    唯一的例外是当进程使用“ioperm”系统调用时。在这种情况下,可以通过以下方式直接访问设备 用户模式进程(不能使用 IRQ)。

    在这个过程中,

    用户模式程序将值放在寄存器中,或创建带有参数的堆栈帧, 指示它需要操作系统提供的特定服务。然后执行陷阱指令。

    CPU 立即切换到内核模式,并跳转到内存中固定位置的指令。

    trap 指令或系统调用处理程序,读取请求的服务+参数的详细信息,然后 在内核模式下执行此请求。

    最后,系统调用完成后,操作系统重置模式 到用户模式并从系统调用返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2016-04-30
      • 2016-12-29
      • 2011-02-11
      • 1970-01-01
      • 2011-04-07
      • 2013-11-27
      相关资源
      最近更新 更多