【问题标题】:Operating Systems: Kernel mode operations操作系统:内核模式操作
【发布时间】:2016-10-21 22:59:57
【问题描述】:

在确定以下哪些操作应仅在内核模式下执行/完成时,我将不胜感激。我尝试在 Silberschatz “操作系统概念”中找到答案,但我仍然不清楚。 以下是决定它们应该在内核模式还是用户模式下完成的操作列表:

(1) disable interrupts detection
(2) clear memory
(3) switch from the user mode to the kernel mode
(4) read the state of the clock/timer
(5) determine/program timer. 

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    这只是常识:

    • 禁用中断不应发生在非特权上下文中,因此通常不允许这样做。
    • 清除内存本身不是特权操作,因此它可以在任一上下文中发生(如果内存被“释放”,那么您必须在允许从任何其他上下文访问之前确定内容是否敏感,但是始终清除内容是安全的选择)。
    • 从用户模式切换到内核模式显然只能在用户模式下发生。
    • 读取时钟:如果我们谈论的是硬件时钟,如果它提供内存映射寄存器,那么您可以从用户模式安全地访问它,只要映射区域没有敏感信息(它可能会或可能不会,取决于硬件)。如果只是软件,您可以做任何事情。
    • 对定时器进行编程可能会发生在任一上下文中,具体取决于实现方式,例如:实时调度的上下文可以完全在用户模式下毫无问题地实现定时器,方法是编写硬件定时器和中断路由(后者只需要发生)一次,即使它需要内核模式)或在软件中实现它。如果不是实时的,完全在用户空间中编程仍然是可能的,但实现将需要内核端帮助程序(即实时任务或中断)来触发事件。

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 2019-10-23
      • 2012-04-24
      • 2015-06-16
      • 2011-11-17
      • 2011-01-02
      • 2012-03-02
      • 2019-06-02
      • 2010-10-27
      相关资源
      最近更新 更多