免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1549 | 回复: 7
打印 上一主题 下一主题

[进程管理] 内核抢占和调度机会,不知道理解的对不对,请指点 [复制链接]

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-12 10:42 |只看该作者 |倒序浏览
今天在看抢占的内容,根据自己理解的东西,构造了一个场景,请大侠men帮忙看一下我的理解是否正确,谢谢
场景0:是没有中断发生时的一个正常流程;
场景1:中断返回的时候有一次调度机会,会检查resched标志和preempt_count, 所以中断返回后切换到进程B;
场景2:系统调用返回用户空间时,有一次调度机会,所以能够切换到B,虽然在中断返回时也有一次调度机会,因为这个时候A还需要继续在内核空间执行,且不支持内核抢占,所以这个时候不能切换到B;
场景3:中断返回有一次调度机会,因支持内核抢占,直接切换到B
场景4:中断返回有一次调度机会,虽然支持内核抢占,但A处于临界区,preempt_count!=0,所以A继续执行,等A退出临界区执行preempt_enable时检查发现resched不为0,重新调度,所以切换到B,等B执行完,A继续执行系统调用;

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
2 [报告]
发表于 2014-08-12 10:55 |只看该作者
试着回答一下,权当讨论
场景0:是没有中断发生时的一个正常流程;
感觉系统调用返回的时候有可能被其他进程抢占,我不确定是否有系统调用能导致其他高优先级的进程切换成ready态
场景1:中断返回的时候有一次调度机会,会检查resched标志和preempt_count, 所以中断返回后切换到进程B;
同意
场景2:系统调用返回用户空间时,有一次调度机会,所以能够切换到B,虽然在中断返回时也有一次调度机会,因为这个时候A还需要继续在内核空间执行,且不支持内核抢占,所以这个时候不能切换到B;
同意,个人但是是否被抢占和A进程是否处于内核态没有关系
场景3:中断返回有一次调度机会,因支持内核抢占,直接切换到B
同意
场景4:中断返回有一次调度机会,虽然支持内核抢占,但A处于临界区,preempt_count!=0,所以A继续执行,等A退出临界区执行preempt_enable时检查发现resched不为0,重新调度,所以切换到B,等B执行完,A继续执行系统调用;
同意


论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
3 [报告]
发表于 2014-08-12 12:48 |只看该作者
看似差不多就这个意思。。。。

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
4 [报告]
发表于 2014-08-12 14:37 |只看该作者
回复 1# wLiu2007


场景0:是没有中断发生时的一个正常流程;
系统调用的时候是一个调度点,可能会返回其他进程。

场景2:系统调用返回用户空间时,有一次调度机会,所以能够切换到B,虽然在中断返回时也有一次调度机会,因为这个时候A还需要继续在内核空间执行,且不支持内核抢占,所以这个时候不能切换到B;
“也有一次调度机会”, 如果是不支持内核抢占,就不会有这个机会了,调度的代码都由条件宏括起来的。
  1. #ifdef CONFIG_PREEMPT
  2. ENTRY(resume_kernel)
  3.         DISABLE_INTERRUPTS(CLBR_ANY)
  4.         cmpl $0,TI_preempt_count(%ebp)        # non-zero preempt_count ?
  5.         jnz restore_all
  6. need_resched:
  7.         movl TI_flags(%ebp), %ecx        # need_resched set ?
  8.         testb $_TIF_NEED_RESCHED, %cl
  9.         jz restore_all
  10.         testl $X86_EFLAGS_IF,PT_EFLAGS(%esp)        # interrupts off (exception path) ?
  11.         jz restore_all
  12.         call preempt_schedule_irq
  13.         jmp need_resched
  14. END(resume_kernel)
  15. #endif
复制代码
场景3:中断返回有一次调度机会,因支持内核抢占,直接切换到B
在内核地以持抢占时,抢占点,不仅仅中断返回, 就像你个面的preempt_enable也是一个。

另外,可以调度不一定会发生调度,是否真正调度另外一个进程起来由调度器决定。

BTW:LS是GG还是MM?



   

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2014-08-13 12:42 |只看该作者
了解,谢谢各位!

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
6 [报告]
发表于 2014-08-13 22:15 |只看该作者
回复 5# wLiu2007

没有回答问题,不礼貌{:2_174:} 。
   

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2014-08-13 22:33 |只看该作者
回复 6# Tinnal
让Tinnal 兄失望了,本人是GG{:3_204:}
为了避免误会,我已经将头像改了,呵呵
感谢Tinnal兄回帖呀,Thanks

   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
8 [报告]
发表于 2014-08-13 22:45 |只看该作者
本帖最后由 Tinnal 于 2014-08-13 22:46 编辑

回复 7# wLiu2007

知道就行,头像还挺养眼的,就别换了吧。做技术的,女生真少呀!

追加:
把头像换回来吧。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP