我在 Galvin 书中阅读了以下操作系统和概念
“一个称为模式位的位被添加到计算机的硬件中以指示当前模式:内核(0)或用户(1)。通过模式位,我们能够区分执行的任务代表操作系统和代表使用执行的系统”
现在,如果它是一个多处理器系统,那么假设一个进程执行系统调用并将模式位从 1 更改为 0 。
现在可能有一些其他进程在用户模式下并行运行,因为它是一个多处理器系统,但模式位设置为 0,表示内核模式导致不一致。
那么寄存器的数量(存储模式位所需的)取决于处理器的数量吗?
我在 Galvin 书中阅读了以下操作系统和概念
“一个称为模式位的位被添加到计算机的硬件中以指示当前模式:内核(0)或用户(1)。通过模式位,我们能够区分执行的任务代表操作系统和代表使用执行的系统”
现在,如果它是一个多处理器系统,那么假设一个进程执行系统调用并将模式位从 1 更改为 0 。
现在可能有一些其他进程在用户模式下并行运行,因为它是一个多处理器系统,但模式位设置为 0,表示内核模式导致不一致。
那么寄存器的数量(存储模式位所需的)取决于处理器的数量吗?
我非常了解系统调用的工作原理以及一般系统调用的需求。但是,我不明白为什么像 create() file、read() file 和 close() 这样的系统调用只能在内核模式下执行。
例如在 create() 和 read() 文件中,为什么它不能发生在用户空间或用户模式中?用户如何通过创建和读取文件来损坏系统?在 close() 系统调用的情况下,我也有同样的疑问。