- 博客(10)
- 收藏
- 关注
原创 windows自旋锁的实现学习
单cpu是无法使用自旋锁的,因为在等待自旋锁过程中,该线程是一直运行的,导致其他线程无法释放锁,就死锁了。一直无法理解这些同步是怎么实现的,问了deepseek,我知道自旋锁是如何实现了的,在这里做个笔记备用。如果*lock的值为1,则不断的执行L1代码。xchg指令是在交换eax和*lock的值时,会锁定*lock的总线,防止其他线程改变其值。该线程获取锁后,并且完成操作后,比如改变一个全局变量的值,会立即将IRQL退回到之前等级。该线程获取锁后,*lock从0变为1,其他尝试获取锁的线程会不断的自旋。
2025-04-28 17:33:18
336
原创 观察Windows工作集、提交内存的变化
这100个线程较少递归次数,不让它崩溃,比如递归100次,发现线程结束后,Virtual Size、Private Byte和WS Private都回到了开始的大小,说明线程结束后,这部分内存都回收了。,我并未求证准确的定义,我的理解是进程用到的所有内容的虚拟地址总的大小,它是最大的一个,应该包括驻留在内存中的页面以及交换到磁盘中的页面文件以及保留的地址。2.即使提交的内存,如果不访问,内存管理器也不会主动去为这块内存创建实际的物理页,而是会延迟到第一次访问的时候。进程中驻留在物理内存中的大小。
2025-02-13 15:44:58
1430
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅