免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: shaohui973

linux中线程调度和进程调度 [复制链接]

论坛徽章:
1
天蝎座
日期:2015-02-04 15:40:37
发表于 2011-02-12 21:39 |显示全部楼层
线程和进程的区别是 进程有独立的内核空间,线程又分为 内核线程和用户线程,线程是调度的基本单位 在linux中差别不大,而线程的并发执行是根据调度算法来实现的,没有具体的一块来讲述如何实现并发执行,她都是嵌入在代码中的,在进度调度中就不断的改变进程的优先级。
    建议你看看linux 源代码 www.kernel.org上有,kernel/sched.c中调度的主要的部分,而且创建完的线程在多核中的切换是很值得研究的问题,schedule()这个函数中会有部分代码将可执行态的任务序列转移到其他的cpu上cpu_idle(),而具体的实现又要涉及到cpu,gcc拓展,大量的结构体的定义,不是说我们在这里简单的探讨就能够完全说明白的。内核太大,我们永远只是一个学习者啊,学海无涯

论坛徽章:
1
天蝎座
日期:2015-02-04 15:40:37
发表于 2011-02-12 23:07 |显示全部楼层
线程和进程的区别是 进程有独立的内核空间,线程又分为 内核线程和用户线程,线程是调度的基本单位 在linux中差别不大,而线程的并发执行是根据调度算法来实现的,没有具体的一块来讲述如何实现并发执行,她都是嵌入在代码中的,在进度调度中就不断的改变进程的优先级。
    建议你看看linux 源代码 www.kernel.org上有,kernel/sched.c中调度的主要的部分,而且创建完的线程在多核中的切换是很值得研究的问题,schedule()这个函数中会有部分代码将可执行态的任务序列转移到其他的cpu上cpu_idle(),而具体的实现又要涉及到cpu,gcc拓展,大量的结构体的定义,不是说我们在这里简单的探讨就能够完全说明白的。内核太大,我们永远只是一个学习者啊,学海无涯
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP