以下内容算对书内容的总结,有任何问题和见解,欢迎交流啊。
这一章主要是介绍几个简单的调度器策略。内容比较简单,就简单汇总下。
首先我们对现有的计算机环境有如下几个假设:
1.每个job都运行相同的时间。
2.所有的job都同时到达
3.一旦一个job启动,那么他就会一直运行到结束。
4.所有的job不会有I/O
5.每个job运行的时间都是可知的。
我们先引入一个效率的测量值:turnaround time
Tturnaround = Tcompletion − Tarrival
一个测量反应时间的:
Tresponse = Tfirstrun − Tarrival
首先第一个策略是先入先出(First In, First Out (FIFO)),简单来说就是谁先到谁先运行。但是因为如果运行时间长的任务先到,那么turnaround time就会很高,因此引入了下一个策略:短任务先执行(Shortest Job First (SJF))。但是如果是长任务先来那么就还是有问题,因此引入下一个策略:运行时间短的先执行(Shortest Time-to-Completion First (STCF))。但是如果运行时间不确定那还是有问题,进一步一如了新的策略:循环执行(Round Robin)。这种策略对应的response time会比较好,但是turnaround time会很糟糕。而且如果进程中有I/O的时候,会导致很大的时间浪费,因为就引出了下个章节的内容:多级反馈队列(multi-level feedback queue)