1,进程调度追求的目标是什么?
CPU的调度就是要达到极小化平均响应时间、极大化系统吞吐率、保持系统各个功能部件均处于繁忙状态和提供某种貌似公平的机制。
①:极小化平均响应时间:就是极小化用户发出的指令和看到结果之间所花费的时间,即减少平均等待的时间,这和系统、硬件的质量有关。
②:极大化系统吞吐率:就是在单位时间内,尽可能多的完成程序的计算。即整个系统的运行效率。
③:保持系统各个功能部件均处于繁忙状态:因为计算机的资源是极其昂贵的,所以要尽可能的使各个部件处于工作状态。
2,程序使用CPU的模式有哪几种?各自有什么样的特点?
①:CPU导向(CPU-bound)或者计算机密集型程序
特点就是长计算,短输入。这种程序使用CPU的时间大大多于用在输入输出上的时间,者计算机密集型程序通常使用在科学计算方面,高精度计算。
②:I/O导向(I/O-bound)或者输入输出密集型程序
与CPU导向相反,这种程序大部分的时间都使用在输入和输出上,I/O操作后,即进行短暂的执行操作,比如PPT,还有游戏等。
③:平衡型程序
特点就是I/O的操作时间和CPU所使用的时间相对平衡,既有长时间的执行,又有长时间的输入输出,比如常见的网页浏览等。
3,简要的说明几种调度算法(调度策略)?
①:先来先服务调度算法
这是一个非常公平但不是最优化的算法,非抢占式原则,即一个程序一旦启动,就要一直运行到结束,如果运行期间一旦被其他程序抢占,则破坏其原则。
但其缺点,可想而知,其后程序等待时间过长。例如:如果使用先来先服务调度算法,第一个程序运行时间是100秒,第二个程序运行时间1秒,
则,第二个程序需要等待100秒后执行,这样算来,平均运行时间就是100.5秒,如果使用抢占式,第二个程序先运行,等待一秒后,第一个程序执行,
则平均运行时间是50.5秒。显然先来先服务调度算法不是最好最优的算法。
②:时间片轮转算法
时间片轮转算法是对先来先服务调度算法的一个改进,但也不是最优的算法,例如,每1秒进行进程的调换执行,第一个程序运行时间100秒,第二个程序运行1秒,
在时间片轮转算法中,第二个程序可以很快被执行。但是值得注意的是,时间片该设置多大才合适?如果时间片设置的长度大于程序运行所花费的时间,则完全
退化先来先服务调度算法。所以设置时间片的大小,值得商榷。