short job first (耗时少的工作优先做)
我们应该先着手解决耗时较少的工作,这样可以缩小平均的等待时间
interactive job first (交互性的工作优先做)
这里说的交互工作,就是需要合作完成的工作。或者说需要交由别人完成的一部分工作
如果你做完之后不能立刻交接,那么相当于给这个任务加了一个截止日期,只要在截止日期之前完成或早或晚都没有区别。也就是当对方准备接手之前做完即可
parallel processing (平行处理)
有不止一个资源可以调用,要充分利用其可以平行处理不同工作的特征,平行处理任务,高效率的完成
large job first between resources(先安排工作量最大的处理单位的活)
short job first within resources(每个处理单位内,最短期工作优先安排)
batch processing (批处理)
如果不是特别紧急(没有截止日期)同类型的工作。可以积压一段时间,然后批处理
preemptive & non-preemptive(切换&不切换)
preemptive (切换)
有些事情突发紧急,所以我们必须停下手头的工作去着手完成
对于不能立刻停下的任务我们可以有两种方法解决
to the nearest save state (处理任务到最近的存档点)
non-preemptive(不切换)
比如价值低,没有截止日期等。通常batch processing(批处理)的时候会使用这种操作
Round Robin(循序渐进)
给每个任务分配一段时间q,值得注意的是q的取值非常关键
q 过大就变成了先来后到,小的简单的工作不能优先完成
priority scheduling(优先处理)
理性分析哪些工作的价值高,有截止日期。优先处理这些工作
需要避免低价值的工作一直得不到完成,同是也不能让低价值的工作最后成为阻碍影响高价值工作顺利完成
deadline 和 give up (截止日期&放弃)
如果实在不能保证所有任务都在截止日期之前完成,就要放弃一些低价值的任务
start time & reservation(开始日期&预留)
有些任务并不是你想开始就开始的,这些任务有个开始的时间
预留这项任务所消耗的总时间,然后在时间安排中空出这样段时间