Skip to content

Commit

Permalink
Lecture 8 for OS2023autumn
Browse files Browse the repository at this point in the history
  • Loading branch information
xyongcn committed Oct 25, 2023
1 parent c5b2615 commit 214e181
Show file tree
Hide file tree
Showing 5 changed files with 212 additions and 29 deletions.
52 changes: 45 additions & 7 deletions lec8/p1-multiprocessor-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,67 +12,105 @@ backgroundColor: white
<!-- _class: lead -->

# 第八讲 多处理器调度

## 第一节 对称多处理与多核架构


<br>
<br>

向勇 陈渝 李国良 任炬

2023年春季
2023年秋季

---

**提纲**
<style>
.container{
display: flex;
}
.col{
flex: 1;
}
</style>

<div class="container">

<div class="col">

### 1. 多处理机器
2. Cache一致性(Cache Coherence)

</div>

<div class="col">

</div>

</div>

---

#### 单核处理器
![w:800](figs/single-core.png)


---

#### 超线程(Hyperthread, Simultaneous multithreading)处理器
- 将CPU内部暂时闲置处理资源充分调动起来
- 寄存器、程序计数器独立
- 算术计算单元等硬件共用
- 不适合计算密集型任务
- 适合IO密集型任务


![bg right 80%](figs/hyperthread.png)


---

#### 多核(multi-core)处理器
![w:1150](figs/multi-core.png)

---

#### 众核(many-core)处理器
![w:1150](figs/many-core.png)

---

**提纲**
<style>
.container{
display: flex;
}
.col{
flex: 1;
}
</style>

<div class="container">

<div class="col">

1. 多处理机器
### 2. Cache一致性(Cache Coherence)

</div>

<div class="col">

</div>

</div>

---

#### 对称多处理器(SMP)与非一致内存访问系统(NUMA)
![w:1000](figs/smp-numa.png)

---

#### Cache 一致性 (Cache Coherence)
![w:800](figs/cache-coherence.png)


---

#### Cache 一致性问题
Expand Down
12 changes: 9 additions & 3 deletions lec8/p2-multiprocessor-sched-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,14 @@ backgroundColor: white
<!-- _class: lead -->

# 第八讲 多处理器调度

## 第二节 多处理器调度概述


<br>
<br>

向勇 陈渝 李国良 任炬

2023年春季
2023年秋季

---

Expand All @@ -40,12 +38,14 @@ Single Queue Multiprocessor Scheduling, SQMS


---

#### 单队列多处理器调度的特征
- 缺乏可扩展性 (scalability)
- 缓存亲和性 (cache affinity) 弱
![w:800](figs/sqms.png)

---

#### 多处理器调度的亲和度与负载均衡
尽可能让进程在同一个 CPU 上运行。保持一些进程的亲和度的同时,可能需要牺牲其他进程的亲和度来实现负载均衡。
![bg right:63% 90%](figs/sqms-cache-affinity.png)
Expand All @@ -68,6 +68,7 @@ Multi-Queue MultiprocessorScheduling, MQMS
![w:800](figs/mqms.png)

---

#### 多队列多处理器调度的特征
- 具有**可扩展性**:队列的数量会随着CPU 的增加而增加,因此锁和缓存争用的开销不是大问题。
- 具有良好的**缓存亲和度**:所有进程都保持在固定的 CPU 上,因而可以很好地利用缓存数据。
Expand All @@ -76,6 +77,7 @@ Multi-Queue MultiprocessorScheduling, MQMS


---

#### 多队列多处理器调度的负载不均
- 假定4个进程,2个CPU;队列都执行轮转调度策略;进程C执行完毕
- A 获得了 B 和 D 两倍的 CPU 时间
Expand All @@ -98,6 +100,7 @@ Multi-Queue MultiprocessorScheduling, MQMS


---

#### 进程迁移 (migration)
- 通过进程的跨 CPU 迁移,可实现负载均衡。
- 情况:CPU0 空闲,CPU1 有一些进程。
Expand All @@ -109,6 +112,7 @@ Multi-Queue MultiprocessorScheduling, MQMS


---

#### MQMS如何确定进程迁移时机?

- 情况:A 独自留在 CPU 0 上,B 和 D 在 CPU 1 上交替运行
Expand All @@ -120,6 +124,7 @@ Multi-Queue MultiprocessorScheduling, MQMS


---

#### MQMS的工作窃取 (work stealing)
- 进程量较少的 (源) 队列不定期地“偷看”其他 (目标) 队列是不是比自己的进程多
- 如果目标队列比源队列 (显著地) 更满,就从目标队列“窃取”一个或多个进程,实现负载均衡。
Expand All @@ -129,6 +134,7 @@ Multi-Queue MultiprocessorScheduling, MQMS
![w:1000](figs/mqms-problem-6.png)

---

#### 工作窃取的队列检查间隔
- 如果频繁地检查其他队列,就会带来较高的开销,可扩展性不好
- 如果检查间隔太长,又可能会带来严重的负载不均
Expand Down
Loading

0 comments on commit 214e181

Please sign in to comment.