我现在正在学习操作系统,对两个概念-互斥锁和原子操作感到困惑。在我看来,它们是相同的,但我的操作系统讲师给我们提出了这样一个问题,
假设一个多处理器操作系统内核跟踪每个用户创建的进程数。该操作系统内核为每个用户维护一个计数器变量,每次为用户创建新进程时增加该计数器变量,并在每次来自该用户的进程终止时减少。此外,该操作系统运行在提供原子获取和增量以及获取和减量指令的处理器上。
操作系统应该使用原子递增和递减指令更新计数器,还是应该在由互斥锁保护的临界区中更新计数器?
这个问题表明互斥锁和原子操作是两个不同的概念。有人能帮我解决这个问题吗?
假设一个多处理器操作系统内核跟踪每个用户创建的进程数。该操作系统内核为每个用户维护一个计数器变量,每次为用户创建新进程时增加该计数器变量,并在每次来自该用户的进程终止时减少。此外,该操作系统运行在提供原子获取和增量以及获取和减量指令的处理器上。
操作系统应该使用原子递增和递减指令更新计数器,还是应该在由互斥锁保护的临界区中更新计数器?
这个问题表明互斥锁和原子操作是两个不同的概念。有人能帮我解决这个问题吗?