开发者

how does stack growing work on windows and linux?

开发者 https://www.devze.com 2023-03-22 04:12 出处:网络
I just read that windows programs call _alloca on function ent开发者_如何学Pythonry to grow the stack if they need more than 4k on the stack. I guss that every time the guard page is hit windows alloc

I just read that windows programs call _alloca on function ent开发者_如何学Pythonry to grow the stack if they need more than 4k on the stack. I guss that every time the guard page is hit windows allocates a new page for the stack, therefore _alloca accesses the stack in 4k steps to allocate the space.

I also read that this only applies to windows. How does linux (or other oses) solve this problem if they don't need _alloca?


Linux relies on a heavily optimized page fault handling, so what happens is that the program just pushes things on the stack and the page fault handler will extend the stack on the fly.

0

精彩评论

暂无评论...
验证码 换一张
取 消