随笔分类 -  操作系统原理

摘要:前段时间实现的C协程依赖栈传递参数,在开启优化时会导致错误,于是实现了一个ucontext的版本,但ucontext的切换效率太差了, 在我的机器上执行4000W次切换需要11秒左右,这达不到我的要求,所以重新设计了实现,使得在开启优化时也能得到正确的结果. 并且效率也令人满意,4000W次切换仅需 阅读全文
posted @ 2018-11-03 10:52 _浪潮之巅.☆ 阅读(641) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/sniperHW/archive/2012/06/19/2554574.html 协程的概念就不介绍了,不清楚的同学可以自己google,windows和unix like系统本身就提供了协程的支持,windows下叫fiber,unix like 阅读全文
posted @ 2018-11-03 10:02 _浪潮之巅.☆ 阅读(1378) 评论(0) 推荐(0)
摘要:1、利用 C 语言的 setjmp 和 longjmp,函数中使用 static local 的变量来保存协程内部的数据。 函数原型:int setjmp(jmp_buf envbuf); void longjmp(jmp_buf envbuf, int val); 先调用setjmp,用变量env 阅读全文
posted @ 2018-09-22 11:37 _浪潮之巅.☆ 阅读(9604) 评论(0) 推荐(0)