操作系统:内核模式操作

时间:2016-06-20 15:50:37

标签: operating-system

我很感激帮助确定应该仅在内核模式下执行/完成以下哪些操作。我尝试在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. 

1 个答案:

答案 0 :(得分:2)

这只是常识:

  • 禁止中断不应该在无特权的情况下发生,所以通常你不允许这样做。
  • 清除内存本身并不是特权操作,因此它可以在任何一个上下文中发生(如果内存是"释放",那么在允许访问之前你必须决定内容是否敏感从任何其他上下文,但总是清除内容是一个安全的赌注)。
  • 显然只能在用户模式下从用户模式切换到内核模式。
  • 读取时钟:如果我们正在谈论硬件时钟,如果它提供了内存映射寄存器,那么只要映射区域没有任何敏感信息,它就可以安全地从用户模式访问它(它可能会或可能不,取决于硬件)。如果只是软件,你可以做任何事情。
  • 根据实现情况,可以在任一上下文中编程定时器,例如:实时调度的上下文可以完全在用户模式下实现定时器而不会出现问题,可以通过编程硬件定时器和中断路由(后者只需要发生一旦即使它需要内核模式)或在软件中实现它。如果不是实时的,完全在用户空间编程仍然可能,但实现将需要内核端帮助程序(即实时任务或中断)来触发事件。