Linux内核:立即解决的成本

http://lkml.indiana.edu/hypermail/linux/kernel/0103.1/0030.html开始,我在linux中学习了一种新的互斥体,一种自适应的变量:

The PTHRED_MUTEX_ADAPTIVE_NP is a new
mutex that is intended for high
throughput at the sacrifice of
fairness and even CPU cycles. This
mutex does not transfer ownership to a
waiting thread, but rather allows for
competition. Also, over an SMP kernel,
the lock operation uses spinning to
retry the lock to avoid the cost of
immediate descheduling.

有人提到“立即解除成本”.这笔费用是多少? (在cpu ticks方面; TLB,TSS,smth else重新加载)内核在“立即解除请求”和再次重新调度回运行状态之间做了什么?

我该如何进行明确的去除,如何衡量其成本?

解决方法:

看起来它只是一个轻量级的互锁,旨在让线程避开调度程序.

我们的想法是将一个相对较重的基于上下文切换的操作替换为一个在螺旋锁中花费的希望很短的时间.

无视“新”的使用,自旋锁与山丘一样古老.我想,大约10年前,这个pthread库是新手.

“显式去调度”可能与上下文切换相同,因此您可以通过让两个线程相互产生CPU()一百万次并测量运行时来衡量这一点.

上一篇:java – Quartz线程执行并行还是顺序?


下一篇:linux – 通过SFTP传输的文件