顺序: 1.Tsl:10:00 Tel:12:00 T1:2.00 Twl:0
2.Ts2:10:20 Te2:13:00 T2:1.00 Tw2:1.70
3.Ts3:10:40 Te3:13:30 T3: 0.50 Tw3:2.30
4.Ts4:10:50 Te4:13:手败搭50 T4: 0.30 Tw4:2.70
调度顺序为1234
平均周转时间:0.25*(2+2.7+2,8+3)=2.625 h
平枯轿均带权周转时间: 0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3)=4.825
(2)最短作业优先调度:
顺序: 1.Ts4: 10:50 Te4:毕拿10:80 T4:0.3 Tw4:0
2.Ts3:10:40 Te3:11:40 T3: 0.5 Tw3:0.5
3.Ts2;10,20 Te2:12:40 T2: 1 Tw2: 1.3
4.Tsl:10:00 Tel: 14:40 T1:2 Twl:2.7
调度顺序为1432
平均周转时间:0.25*(0.3+1+2.3+4.7) =2.075 h
平均带权周转时间: 0.25*(4+0+1+1.3+2.7/2)=1.9125
程序的装入和链接大家学过c语言的都知道,我们的程序要想运行,会经过编译->链接->装入这三个步骤,其中:
编译是指由编译程序将用户源代码编译成若干目标模块。
链接是指将编译产生的一组目标模块所需的库函数链接在一起,形成一个完整的装入模块。
装入是指由装入程序将装入模块装入内存运行。
我们来看一下链接和装入:
链接的方式有三种,一是静态链接,二是装入时动态链接,三是运行时动态链接。
静态链接也就是在程序运行之前,将程序所需的库函数链接成一个完整的可执行程序。
装入时动态链接:将用户程序源程序编译后所的到的目标模块,在装入内存时,采用边装入边链接的方式
运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块散燃陵时才进行的。有利于目标模块的共享。
链接的话,决定了最终程序进入到内存中,占多少内存,可以看到,如果是静态链接的话,它装入的程序体积是最大的,如果说我们的程序都才采用这种方式进行链接,那么我们的内存能装的程序就很少了。
装入也是有三种方式:
绝对装入:在编译的时候,如果知道程序将驻留在内存的某个位置,则编译程序将产生绝对的地址的目标代段旅码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。该方法只适用于单道程序环境。
可重定位装入:在多道程序环境下,多个目标模块的其实地址都是从0开始的,程序中的其他地址都是相对于始址的。这个时候可以根据内存的当前情况,将装入模块装入内存适当位置。相比于绝对冲戚装入,就不需要提前知道程序驻留在内存的某个位置。
动态运行时转入:如果想要程序在内存中发生移动,就需要采用动态的装入方式,装入程序把装入模块装入到内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这两种地址转换到程序真正要执行的时才进行。也就是装入的地址时相对地址
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)