小编use*_*595的帖子

为什么自旋锁在单处理器(unicore)系统中不起作用?

我知道自旋锁与spining一起工作,存在不同的内核路径,并且内核是抢占式的,那么为什么自旋锁在单处理器系统中不起作用呢?(例如,在Linux中)

linux-kernel spinlock

8
推荐指数
1
解决办法
1万
查看次数

返回堆栈缓冲区?

据我所知,Return Stack Buffer仅支持4到16个条目(来自wiki:http://en.wikipedia.org/wiki/Branch_predictor#Prediction_of_function_returns)并且不是键值对(基于ret指令位置的索引) ).这是真的吗?上下文切换发生时RSB会发生什么?

假设我们进入了50个函数,这些函数在返回堆栈缓冲区长度为16的CPU中没有返回,之后会发生什么?这是否意味着所有预测都失败了?你能说明一下吗?这种情况在递归函数调用中是否相同?

谢谢!

cpu x86 branch-prediction

7
推荐指数
1
解决办法
2519
查看次数

VC++中的堆栈大小是多少?

我想要有关VC++(32位和64位)中堆栈溢出的准确信息,特别是在递归中.在调试模式下,这种情况很快发生在递归中(如4500运行简单的递归函数不做任何事情或类似).但是,似乎发布模式不同.这很难理解,我现在没有测试它,因为优化会删除不做任何事情的代码(显然会删除递归),因为我的代码或函数是这样的......我应该做更多...我测量在优化版本中的正确时间,我不知道优化是否会通过递归实现更复杂的快速排序?

谢谢!

c recursion stack callstack visual-c++

5
推荐指数
1
解决办法
1167
查看次数

我们如何分配一个我们确定不会被分页的缓冲区?

也许这一件事与内核中的缓冲区分配有关.
假设我们想要编写音乐播放器,如果发生分页,这可能会导致低质量的音乐播放.
视频播放器,我们想写一个实时软件,或任何东西.
我们希望将一个CPU分配给一个进程,或者我们将进程设置为非常高的优先级,然后我们要确保我们的缓冲区不会被分页到HDD.它是如何在C和Linux中完成的?

c linux

3
推荐指数
1
解决办法
105
查看次数