|
55 | 55 | 批处理系统的调度 |
56 | 56 | ---------------------------------- |
57 | 57 |
|
58 | | -在设计具体的调度策略之前,需要了解计算机系统和应用的运行环境,对应用的特点和它期望的性能指标也要清楚。我们先看看批处理系统下的应用的特点和约束条件。在批处理系统下,应用以科学计算为主,I/O操作较少,且I/O操作主要集中在应用开始和结束的一小段时间,应用的主要时间是占用处理器进行计算,且应用的大致执行时间一般可以预估到。 |
| 58 | +在设计具体的调度策略之前,需要了解计算机系统和应用的运行环境,对应用的特点和它期望的性能指标也要清楚。我们先看看批处理系统下的应用的特点和约束条件。在批处理系统下,应用以科学计算为主,I/O操作较少,且I/O操作主要集中在应用开始和结束的一小段时间,应用的执行时间主要消耗在占用处理器进行计算上,且应用的大致执行时间一般可以预估到。 |
59 | 59 |
|
60 | 60 |
|
61 | 61 | 约束条件 |
|
66 | 66 | 1. 每个进程同时到达。 |
67 | 67 | 2. 每个进程的执行时间相同。 |
68 | 68 | 3. 进程的执行时间是已知的。 |
69 | | -4. 进程在整个执行过程期间不执行I/O操作。 |
| 69 | +4. 进程在整个执行过程期间很少执行I/O操作。 |
70 | 70 | 5. 进程在执行过程中不会被抢占。 |
71 | 71 |
|
72 | | -注意,我们这里设定的各种条件是可以调整的,即可以进一步简化或更加贴近实际情况,这样可以简化或加强对调度策略的设计。比如,我们可以把条件 2 改变一下: |
| 72 | +对于条件4,可理解为在操作系统调度过程中,可以忽略进程执行I/O操作的开销。我们这里设定的各种条件是可以调整的,即可以进一步简化或更加贴近实际情况,这样可以简化或加强对调度策略的设计。比如,我们可以把条件 2 改变一下: |
73 | 73 |
|
74 | 74 | 2. 每个进程的执行时间不同。 |
75 | 75 |
|
|
82 | 82 |
|
83 | 83 | T_{周转时间} = T_{完成时间} − T_{到达时间} |
84 | 84 |
|
85 | | -由于前提条件1 明确指出所有进程在同一时间到达,那么T到达时间= 0,因此T周转时间= T完成时间。除了总的周转时间,我们还需要关注平均周转时间这样的统计值: |
| 85 | +由于前提条件1 明确指出所有进程在同一时间到达,那么 :math:`T_{到达时间} = 0` ,因此 :math:`T_{周转时间} = T_{完成时间}` 。除了总的周转时间,我们还需要关注平均周转时间这样的统计值: |
86 | 86 |
|
87 | 87 | .. math:: |
88 | 88 |
|
|
95 | 95 | 先来先服务 |
96 | 96 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
97 | 97 |
|
98 | | -先来先服务(first-come first-severd,也称First-in first-out,先进先出)调度策略的基本思路就是按进程请求处理器的先后顺序来使用处理器。在具体实现上,操作系统建立一个就绪队列,当一个应用进入被加载,并创建为进程进入就绪态后,就按先后顺序放入就绪队列尾;操作系统从就绪队列头取出进程来执行。操作系统不会主动打断进程的运行。当正在运行的进程主动放弃处理器,操作系统会把该进程放到就绪队列末尾,并从就绪队列头取出新进程执行;当正在运行的进程阻塞时,操作系统会把该进程放到阻塞队列中,并从就绪队列头取出新进程执行;当阻塞进程转为就绪进程后,操作系统 |
99 | | -会把该进程放到就绪队列末尾。 |
| 98 | +先来先服务(first-come first-severd,也称First-in first-out,先进先出)调度策略的基本思路就是按进程请求处理器的先后顺序来使用处理器。在具体实现上,操作系统首先会建立一个就绪调度队列(简称就绪队列)和一个等待队列(也称阻塞队列)。大致的调度过程如下: |
100 | 99 |
|
101 | | -该调度策略的优点是简单,容易实现。对于满足1~5约束条件的执行环境,用这个调度策略的平均周转时间性能指标也很好。如果在一个在较长的时间段内,每个进程都能结束,那么公平性这个指标也是能得到保证的。 |
| 100 | +- 操作系统每次执行调度时,都是从就绪队列的队头取出一个进程来执行; |
| 101 | +- 当一个应用被加载到内存,并创建对应的进程,设置进程为就绪进程,按进程到达的先后顺序,把进程放入就绪调度队列的队尾; |
| 102 | + |
| 103 | +- 当正在运行的进程主动放弃处理器时,操作系统会把该进程放到就绪队列末尾,并从就绪队列头取出一个进程执行; |
| 104 | + |
| 105 | +- 当正在运行的进程执行完毕时,操作系统会回收该进程所在资源,并从就绪队列头取出一个进程执行; |
| 106 | + |
| 107 | +- 当正在运行的进程需要等待某个事件或资源时,操作系统会把该进程从就绪队列中移出,放到等待队列中(此时这个进程从就绪进程变成等待进程),并从就绪队列头取出下一个进程执行; |
102 | 108 |
|
| 109 | +- 当等待进程所等待的某个事件出现或等待的资源得到满足时,操作系统会把该进程转为就绪进程,并会把该进程从等待队列中移出,并放到就绪队列末尾。 |
| 110 | + |
| 111 | +该调度策略的优点是简单,容易实现。对于满足1~5约束条件的执行环境,用这个调度策略的平均周转时间性能指标也很好。如果在一个在较长的时间段内,每个进程都能结束,那么公平性这个指标也是能得到保证的。 |
103 | 112 |
|
| 113 | +操作系统不会主动打断进程的运行。 |
104 | 114 |
|
105 | 115 | 最短作业优先 |
106 | 116 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
149 | 159 | 1. 每个进程可不同时间到达。 |
150 | 160 | 2. 每个进程的执行时间不同。 |
151 | 161 | 3. 进程的执行时间是已知的。 |
152 | | -4. 进程在整个执行过程期间不执行I/O操作。 |
| 162 | +4. 进程在整个执行过程期间很少执行I/O操作。 |
153 | 163 | 5. 进程在执行过程中会被抢占。 |
154 | 164 |
|
155 | 165 | 相对于批处理操作系统,约束条件5发生了改变,即进程可以被操作系统随时打断和抢占。 |
|
0 commit comments