一个C/C++协程库的思考与实现之协程栈的动态按需增长
https://github.com/DoasIsay/ToyCoroutine对于操作系统的任务(进程或线程)而言,任务所需的栈内存,堆内存,并不是任务启动后或发起内存申请(brk/mmap/malloc/new)后操作系统立即为其分配物理内存,而是先为其在进程的虚拟地址空间中找到一块空闲的空间标记其大小起止地址及访问权限,当CPU真正访问到任务未分配物理内存的虚拟页内的地址时MMU会产生一个内存缺页中断,此时在缺页中断处理中操作系统才会真正的为任务分配一页物理内存并更新进程的页表如何检测协程