我很想知道如何在Unix中实现与线程之间的同步相关的函数.例如,当我打电话时会发生什么pthread_mutex_lock?有没有使用指针?对源代码的引用确实会有所帮助.
我知道,在Linux的互斥体作为实施futexes的楼下和futex的使用比较并交换机制.通常,为了获取锁,用户空间线程不需要进行系统调用,因为锁在用户空间中被解析.
现在我的问题是当存在高争用且许多线程试图同时锁定互斥锁时会发生什么.是否发生系统调用,以便内核决定授予互斥锁的哪个线程?特别是当线程优先级不同时?我自己这么认为.
刚刚完成了一本关于comp的书。架构,我发现自己并没有完全弄清楚调度程序在哪里运行。
我希望澄清的是调度程序在哪里运行 - 它是否有自己的核心分配来运行它而不是别的,或者“调度程序”实际上只是一个更模糊的算法,它在每个线程中实现执行 - 例如。在线程抢占时,是否运行 swithToFrom() 命令?
我不需要根据 windows x/linux x/mac os x 的细节,一般来说。