【发布时间】:2020-06-28 11:22:03
【问题描述】:
所以我正在研究操作系统课程,目前我正在学习关于同步的章节。 我遇到了这些函数作为获取和释放锁的一种方式,课程展示了这些方法并询问为什么这可以在单处理器系统上工作,但不能在多处理器系统上工作。当然我知道它可以在单处理器系统上工作,但我不明白在多处理器系统上会发生什么。谁能解释一下,谢谢!
以下是在多处理器系统上可能不够用的 2 种方法: 锁获取方法
void lock_acquire(lock_t *lock) {
disable_interrupts();
while (*lock) {
enable_interrupts();
disable_interrupts();
}
*lock=1;
enable_interrupts();
锁释放方法
void lock_release(lock_t *lock) {
disable_interrupts();
*lock=0;
enable_interrupts();
}
【问题讨论】:
标签: operating-system multiprocessing locking