[理工] 几个观念问题 OS/计组

楼主: leoone (里欧一代)   2017-11-10 18:26:39
1.在OS RR排班中,若Process A time out ,可因为PA 优先权极高,要立即preemptive
进Running,有需要再做context switch吗?
2.在pipeline中,若branch 跟jump taken 那在跳了之后这两个指令的MEM与WB stage是
都为空的?
两个小东西突然卡住,感谢各位大大
作者: TMDTMD2487 (ㄚ冰)   2017-11-10 18:40:00
RR的ReadyQ默认应该都是FIFO所以除非里面没东西不然A进去应该都会有人比他权重高,如果Q里面没别的东西的话好像没再算context switching,这是真对做题目说的实际上我也不知道XD阿你跳跃了之后后面的stage还是会把解码过的控制讯号往后面送,只是他们的控制信号本就不会做写入等等的事我觉得说是空的不太准确,本来就会往后只是不会有问题这两个指令本来就不会做写入的动作,所以把控制信号设好,剩下的问题就是hazard那些了我的感觉是os可以针对这个状况做避免(当然时间要小于Context switching才有效益,不过题目是没有算拉XD做题目当他没有实际上要问有研究或实作过的人才知道了我也蛮好奇的XD 希望有人可以跟我讲实际上是怎样棒 问完告诉我 我上tkb的XD然后阿pipeline没有方法拦下来就只有把它变成无意义的指令,那这两个指令再mem跟wb本来就是无意义的了这应该蛮好理解的你顶多只能做一个register配合clock做缓冲让它分成几个stage,但你要真的把一个东西拦下直接不见应该有困难mem wb的regwrite跟memwrite本来就是0压(这就是无意义无意义的指令基本就把写入跟branch这类的设0就是了
作者: q1qip123 (wtlee)   2017-11-10 22:36:00
https://stackoverflow.com/questions/8997616/does-a-context-switch-occur-in-a-system-whose-ready-queue-has-only-one-process-a他举Linux 为例,他会检查ready queue,所以不需要context switching ~
楼主: leoone (里欧一代)   2017-11-10 23:01:00
所以这算是OS自己会去辨识ready queue情况,没process在Q里面他就会让刚time out 进到Q的process再次执行?
作者: q1qip123 (wtlee)   2017-11-11 01:26:00
以下是我对这篇文章的想法RR排班法则Context switching (简称CW)的大略步骤1.interrupt发生,切换至kernel mode2.储存相关资讯至PCB3.把执行中的process放到Ready Queue中4.选择新的process执行,加载process的PCB5.切换至user mode 执行process其中当Ready Q中只有一个程序时,因为分时系统要求一段时间要有回有回应所以会执行到步骤2,才能给予回应,但不能确定他是否有因为time out进入ready q而CW的定义是步骤2+4,而她说明并没有进行CW,只是恢复执行原本的process但是当他恢复执行自己的PCB也算是一种加载吧(? 所以感觉有点矛盾这边我觉得应该是我们CW学得较简略,所以不能完整说明CW没有执行不好意思 感觉把问题反推给你…我找到相关问题的解答都只有这篇
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 08:37:00
https://goo.gl/fVxcdK毕竟linux是开放原始码的,可以去看看原始码大概看下去看起来像是是若Q中挑选出得跟原本的一样,那就不做cs了linux scheduler跟context switch应该还是查得到相关原始码的两篇我看了一下,一切都是发生在挑选的跟目前的process不一样
作者: q1qip123 (wtlee)   2017-11-11 10:03:00
所以结论是有回到ready Q,只是cs要再查一下原始码?
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 10:56:00
linux的kernel/sched/core.c有一个_schedule()是核心的的function,可是我用手机,我要很晚才回用电脑,你可以斟酌看一下,不过这应该要花一点时间
作者: q1qip123 (wtlee)   2017-11-11 12:19:00
好 我再找时间追踪看看 感谢~
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 14:12:00
https://goo.gl/mZ33cq 3259~33393320行之前都是再做一些flag设定之类的有兴趣可以看前面queue那边怎么做挑选这类的我有点懒得看了,不过至少确定若当前的权值最高,context switch是不会做的3327行那个就是系统纪录做了几次context switch用的
楼主: leoone (里欧一代)   2017-11-11 14:53:00
那我想在问一下我一开始的问题 如果Q内有东西的话 PA优先权最高running完要立刻再进CPU 还要context switch?
作者: TMDTMD2487 (ㄚ冰)   2017-11-11 15:11:00
从这份原始码看是不需要的欧他会从q中挑一个,判断他是不是跟之前那个一样不一样才会去做context switch
楼主: leoone (里欧一代)   2017-11-11 16:03:00
好谢谢T大QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com