diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md index 2e7f2ab9..abd75b6c 100644 --- a/notes/计算机操作系统.md +++ b/notes/计算机操作系统.md @@ -25,10 +25,9 @@ * [1.2 短作业优先](#12-短作业优先) * [1.3 最短剩余时间优先](#13-最短剩余时间优先) * [2. 交互式系统中的调度](#2-交互式系统中的调度) - * [2.1 优先权优先](#21-优先权优先) - * [2.2 时间片轮转](#22-时间片轮转) - * [2.3 多级反馈队列](#23-多级反馈队列) - * [2.4 短进程优先](#24-短进程优先) + * [2.1 轮转调度](#21-轮转调度) + * [2.2 优先级调度](#22-优先级调度) + * [2.3 多级队列](#23-多级队列) * [3. 实时系统中的调度](#3-实时系统中的调度) * [进程同步](#进程同步) * [1. 临界区](#1-临界区) @@ -211,7 +210,13 @@ shortest remaining time next(SRTN)。 ### 2. 交互式系统中的调度 -#### 2.1 优先权优先 +#### 2.1 轮转调度 + +将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 分配给队首的进程。 + +时间片轮转算法的效率和时间片的大小有很大关系。如果时间片设置太短会导致过多的进程切换,减低 CPU 效率;而设得太长有可能引起对短的交互请求的响应时间变长。 + +#### 2.2 优先级调度 除了可以手动赋予优先权之外,还可以把响应比作为优先权,这种调度方式叫做高响应比优先调度算法。 @@ -219,25 +224,13 @@ shortest remaining time next(SRTN)。 这种调度算法主要是为了解决 SJF 中长作业可能会饿死的问题,因为随着等待时间的增长,响应比也会越来越高。 -#### 2.2 时间片轮转 - -将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 分配给队首的进程。 - -时间片轮转算法的效率和时间片的大小有很大关系。因为每次进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,进程切换太频繁,在进程切换上就会花过多时间。 - -#### 2.3 多级反馈队列 +#### 2.3 多级队列

-1. 设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权越高的队列中,为每个进程所规定的执行时间片就越小。 +如果一个进程需要执行 100 个时间片,如果采用轮转调度算法,那么需要交换 100 次。多级队列是为这种需要连续执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8,..。进程在第一个队列没执行完,就会被移到下一个队列。这种方式下,之前的进程只需要 7 (包括最初的装入)的交换。 -2. 当一个新进程进入内存后,首先将它放入第一队列的末尾,按 FCFS 原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入下一个队列的队尾。 - -3. 仅当前 i-1 个队列均空时,才会调度第 i 个队列中的进程。 - -优点:实时性好,同时适合运行短作业和长作业。 - -#### 2.4 短进程优先 +每个队列的优先权也不同,最上面的优先权最高。因此只有上一个队列没有进程在排队,才能调度当前队列上的进程。 ### 3. 实时系统中的调度 diff --git a/other/download.md b/other/download.md index 552b7562..ced0f0c4 100644 --- a/other/download.md +++ b/other/download.md @@ -1,7 +1,8 @@ # 网络 - + + # 操作系统 diff --git a/other/s10328621.jpg b/other/s10328621.jpg new file mode 100644 index 00000000..e7f71386 Binary files /dev/null and b/other/s10328621.jpg differ diff --git a/other/s1086045.jpg b/other/s1086045.jpg new file mode 100644 index 00000000..cff87033 Binary files /dev/null and b/other/s1086045.jpg differ diff --git a/other/s1495029.jpg b/other/s1495029.jpg new file mode 100644 index 00000000..aa7b0e42 Binary files /dev/null and b/other/s1495029.jpg differ diff --git a/other/s1671095.jpg b/other/s1671095.jpg new file mode 100644 index 00000000..55374e82 Binary files /dev/null and b/other/s1671095.jpg differ diff --git a/other/s27043456.jpg b/other/s27043456.jpg new file mode 100644 index 00000000..5ca8840d Binary files /dev/null and b/other/s27043456.jpg differ diff --git a/other/s27297117.jpg b/other/s27297117.jpg new file mode 100644 index 00000000..5c33d895 Binary files /dev/null and b/other/s27297117.jpg differ diff --git a/other/s2794811.jpg b/other/s2794811.jpg new file mode 100644 index 00000000..b0a3addf Binary files /dev/null and b/other/s2794811.jpg differ diff --git a/other/s28296984.jpg b/other/s28296984.jpg new file mode 100644 index 00000000..9207c218 Binary files /dev/null and b/other/s28296984.jpg differ diff --git a/other/s28313721.jpg b/other/s28313721.jpg new file mode 100644 index 00000000..6a466789 Binary files /dev/null and b/other/s28313721.jpg differ diff --git a/other/s28341985.jpg b/other/s28341985.jpg new file mode 100644 index 00000000..5353a050 Binary files /dev/null and b/other/s28341985.jpg differ diff --git a/other/s28845534.jpg b/other/s28845534.jpg new file mode 100644 index 00000000..db2cebef Binary files /dev/null and b/other/s28845534.jpg differ diff --git a/other/s4157180.jpg b/other/s4157180.jpg new file mode 100644 index 00000000..cd33ffad Binary files /dev/null and b/other/s4157180.jpg differ