1.计算3个工作在随机种子为1、2、3时的模拟解。
随机种子1
0-83运行job0;84-108运行job1;109-52运行job2
执行顺序为:2,0,1,2,2,2,1,1,1,1,1(截图里看出来的)
随机种子2
图太长了,就没有截运行过程
与前面类似。0-93运行job0;94-166运次那个job1;167-196运行job2
执行顺序是:2,0,0,2,0,1,0,2,0,0,0,1,0,0,1,2,1,1,1,2,1,1,1,2
随机种子3
与前面一样,随机数落到对应的范围就执行对应的进程
2.现在运行两个具体的工作:每个长度为10,但是一个(工作0)只有一张彩票,另一个(工作1)有一百张(-l 10:1,10:100)。彩票数量如此不平衡时会发生什么?在工作1完成之前,工作0是否会运行。
答:随机数(或者除以101的余数)为0才会执行job 0,为1~100时都会执行job 1。导致运行job 0的概率很小很小(只有1/101)。
有100/101的概率job 1先完成,1/101的概率job 0先完成。
3.如果运行两个长度为100的工作,都有100张彩票(-l 100:100,100:100),调度程序有多不公平?运行一些不同的随机种子来确定(概率上的)答案。不公平性取决于一项工作比另一项工作早完成多少。
随机种子0:
在192时job 0完成,200时job 1完成。(不公平性为8)
随机种子1:
在200时job 0 完成,196时job 1完成。(不公平性为4)
随机种子2:
在200时job 0完成,在190时job 1完成。(不公平性为10)
综上三组数据来看:调度还是比较公平的,因为两个job的彩票数相同,他们理论上被调度的概率是相同的。