Skip to content

Commit

Permalink
deploy: 2a6700b
Browse files Browse the repository at this point in the history
  • Loading branch information
wyfcyx committed Aug 6, 2023
1 parent 763e4e6 commit a04d447
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion _sources/chapter5/4scheduling.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ MLFQ调度策略的关键在于如何设置优先级。一旦设置进程的好
那如何动态调整进程的优先级呢?首先,我们假设新创建的进程是I/O密集型的,可以把它设置为最高优先级。接下来根据它的执行表现来调整其优先级。如果在分配给它的时间配额内,它睡眠或等待I/O事件完成而主动放弃了处理器,操作系统预测它接下来的时间配额阶段很大可能还是具有I/O密集型特征,所以就保持其优先级不变。如果进程用完了分配给它的时间配额,操作系统预测它接下来有很大可能还是具有CPU密集型特征,就会降低其优先级。
这里的时间配额的具体值是一个经验值,一般是时间片的整数倍。

这样,如果一个进程的执行时间小于分配给它的一个或几个时间配额,我们把这样的进程称为短进程。那么这个短进程会以比较高的优先级迅速地结束。而如果一个进程有大量的I/O操作,那么一般情况下,它会在时间配额结束前主动放弃处理器,进入等待状态,一旦被唤醒,会以原有的高优先级继续执行。如果一个进程的执行时间远大于几个时间配额,我们把这样的进程称为长进程。那么这个常进程经过一段时间后,会处于优先级最底部的队列,只有在没有高优先级进程就绪的情况下,它才会继续执行,从而不会影响交互式进程的响应时间。
这样,如果一个进程的执行时间小于分配给它的一个或几个时间配额,我们把这样的进程称为短进程。那么这个短进程会以比较高的优先级迅速地结束。而如果一个进程有大量的I/O操作,那么一般情况下,它会在时间配额结束前主动放弃处理器,进入等待状态,一旦被唤醒,会以原有的高优先级继续执行。如果一个进程的执行时间远大于几个时间配额,我们把这样的进程称为长进程。那么这个长进程经过一段时间后,会处于优先级最底部的队列,只有在没有高优先级进程就绪的情况下,它才会继续执行,从而不会影响交互式进程的响应时间。

这样,我们进一步扩展了MLFQ的基本规则:

Expand Down
2 changes: 1 addition & 1 deletion chapter5/4scheduling.html
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ <h4>可降低优先级的多级反馈队列<a class="headerlink" href="#id20" ti
由于会动态调整进程的优先级,所以,操作系统首先需要以优先级的数量来建立多个队列。当然这个数量是一个经验值,比如Linux操作系统设置了140个优先级。</p>
<p>那如何动态调整进程的优先级呢?首先,我们假设新创建的进程是I/O密集型的,可以把它设置为最高优先级。接下来根据它的执行表现来调整其优先级。如果在分配给它的时间配额内,它睡眠或等待I/O事件完成而主动放弃了处理器,操作系统预测它接下来的时间配额阶段很大可能还是具有I/O密集型特征,所以就保持其优先级不变。如果进程用完了分配给它的时间配额,操作系统预测它接下来有很大可能还是具有CPU密集型特征,就会降低其优先级。
这里的时间配额的具体值是一个经验值,一般是时间片的整数倍。</p>
<p>这样,如果一个进程的执行时间小于分配给它的一个或几个时间配额,我们把这样的进程称为短进程。那么这个短进程会以比较高的优先级迅速地结束。而如果一个进程有大量的I/O操作,那么一般情况下,它会在时间配额结束前主动放弃处理器,进入等待状态,一旦被唤醒,会以原有的高优先级继续执行。如果一个进程的执行时间远大于几个时间配额,我们把这样的进程称为长进程。那么这个常进程经过一段时间后,会处于优先级最底部的队列,只有在没有高优先级进程就绪的情况下,它才会继续执行,从而不会影响交互式进程的响应时间。</p>
<p>这样,如果一个进程的执行时间小于分配给它的一个或几个时间配额,我们把这样的进程称为短进程。那么这个短进程会以比较高的优先级迅速地结束。而如果一个进程有大量的I/O操作,那么一般情况下,它会在时间配额结束前主动放弃处理器,进入等待状态,一旦被唤醒,会以原有的高优先级继续执行。如果一个进程的执行时间远大于几个时间配额,我们把这样的进程称为长进程。那么这个长进程经过一段时间后,会处于优先级最底部的队列,只有在没有高优先级进程就绪的情况下,它才会继续执行,从而不会影响交互式进程的响应时间。</p>
<p>这样,我们进一步扩展了MLFQ的基本规则:</p>
<ol class="arabic simple" start="3">
<li><p>创建进程并让进程首次进入就绪队列时,设置进程的优先级为最高优先级。</p></li>
Expand Down

0 comments on commit a04d447

Please sign in to comment.