gpt4 book ai didi

kernel - 信号量需要系统调用吗?

转载 作者:行者123 更新时间:2023-12-02 06:48:49 29 4
gpt4 key购买 nike

我正在通过过去的考试来准备有关操作系统的考试。它主要是关于 Unix 系统、C 编程语言,并且多次提到 POSIX,所以最好在这里问这个问题。

问题是:

Give three disadvantages of simple spinlocks and/or semaphores. Explain how the respective other mechanism improves on the problem.

给出的 3 个缺点之一 + 解释是:

Semaphores require a system call even when the thread may proceed immediately. (0.5 P) Spinlocks on the other hand can be implemented completely in userspace and do not require syscalls. They are very efficient for short wait times. (0.5 P)

为什么信号量需要系统调用?它们必须在内核空间中吗?它们需要执行特权指令吗?

单处理器和多处理器系统都需要考虑。

最佳答案

一些历史背景会让事情变得更清楚。在 POSIX IPC 出现之前,信号量最初是 System V 进程间通信包 (System V IPC) 的一部分。这些名字可能会给你一些线索,让你知道事情的发展方向。最初的用例是协作进程共享的锁。 (我 99.99% 确信 IPC 早于线程相当长一段时间。)

POSIX 信号量与进程或线程一起工作,因此涉及操作系统。上下文在这里很重要,因为答案显然是关于标准信号量实现,而不是信号量的抽象概念。

关于kernel - 信号量需要系统调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715487/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com