Operating system 在非抢占式内核的情况下,是否存在一个关键的分区争用错误?

Operating system 在非抢占式内核的情况下,是否存在一个关键的分区争用错误?,operating-system,semaphore,Operating System,Semaphore,我在读《操作系统概念》一书,书中说 非抢占式内核不受内核数据结构上的竞争条件的影响,因为一次只有一个进程处于活动状态 我想问 这是否仅适用于单处理器?因为如果它是一个多处理器系统,那么它可能有多个并发运行的进程,这些进程可以访问相同的内核数据 是否需要(如果可能的话)在非抢占式内核系统中使用信号量 恕我直言:我相信它的意图是,在抢占式内核中,内核可以抢占自身,因此可能会出现竞争条件。在非抢占式内核中,是产生的程序,因此内核无法锁定,因为没有其他人可以更改内核本身的任何内部结构。在MP系统上,这取

我在读《操作系统概念》一书,书中说

非抢占式内核不受内核数据结构上的竞争条件的影响,因为一次只有一个进程处于活动状态

我想问

  • 这是否仅适用于单处理器?因为如果它是一个多处理器系统,那么它可能有多个并发运行的进程,这些进程可以访问相同的内核数据
  • 是否需要(如果可能的话)在非抢占式内核系统中使用信号量
    恕我直言:我相信它的意图是,在抢占式内核中,内核可以抢占自身,因此可能会出现竞争条件。在非抢占式内核中,是产生的程序,因此内核无法锁定,因为没有其他人可以更改内核本身的任何内部结构。在MP系统上,这取决于进程在不同处理器上的调度方式:如果一次只有一个进程拥有所有处理器,则通常情况下为UP,否则,多个进程同时处于活动状态(因此需要锁).像信号量这样的同步原语的目的是让你等待其他人完成它的工作,但是如果你是负责放弃CPU的人,你就迫不及待地希望内核会抢占你,你只需把CPU让给他们就可以完成(你让出)。好的,因此,对于在非抢占式内核中运行的并行进程,我们可以说,使用信号量进入临界状态的第一个进程将是唯一编辑临界部分的进程,其他进程将被允许进入临界部分(一个接一个)只有在当前过程退出关键部分之后。因此,该系统不存在绕场竞争条件。我理解得对吗?是的,我会这么说。对此持保留态度:我相信,在抢占式内核中,内核可以抢占自身,因此可能会出现竞争条件。在非抢占式内核中,是产生的程序,因此内核无法锁定,因为没有其他人可以更改内核本身的任何内部结构。在MP系统上,这取决于进程在不同处理器上的调度方式:如果一次只有一个进程拥有所有处理器,则通常情况下为UP,否则,多个进程同时处于活动状态(因此需要锁).像信号量这样的同步原语的目的是让你等待其他人完成它的工作,但是如果你是负责放弃CPU的人,你就迫不及待地希望内核会抢占你,你只需把CPU让给他们就可以完成(你让出)。好的,因此,对于在非抢占式内核中运行的并行进程,我们可以说,使用信号量进入临界状态的第一个进程将是唯一编辑临界部分的进程,其他进程将被允许进入临界部分(一个接一个)只有在当前过程退出关键部分之后。因此,该系统不存在绕场竞争条件。我理解得对吗?是的,我会这么说。