Fat Cheng's xv6 journey
前言
准备工作
课程结构
编程环境
工具安装
工具使用
代码下载与调试
参考资料
第一天
课前准备
第一课
第二天
课前准备
第二课
Part1_PC硬件和x86
Part2_x86和PC架构
PC架构
x86物理内存布局
x86指令集
gcc_x86调用约定
PC虚拟机
课后作业
第三天
课前准备
第三课
C语言
gdb
指针示例
课后作业
第四天
课前准备
第四课
第五天
课前准备
第五课
课后作业
第六天
课前准备
第六课
课后作业
第七天
第七课
JOS虚拟内存布局
PPT
使用虚拟内存
课后作业
第八天
课前准备
第八课
课后作业
第九天
课前准备
第九课
课后作业
第十天
课前准备
第十课
课后作业
第十一天
课前准备
第十一课
课后作业
第十二天
课前准备
第十二课
课后作业
第十三天
课前准备
第十三课
课后作业
第十四天
课前准备
第十四课
课后作业
第十五天
课前准备
第十五课
第十六天
课前准备
第十六课
课后作业
第十七天
课前准备
第十七课
课后作业
第十八天
课前准备
第十八课
课后作业
第十九天
课前准备
第十九课
课后作业
第二十天
课前准备
第二十课
课后作业
第二十一天
课前准备
第二十一课
课后作业
第二十二天
课前准备
第二十二课
课后作业
Lab1
Part1_Pc启动
熟悉x86汇编
x86模拟器
物理内存布局
BIOS
Part2_BootLoader
载入内核
Part3_内核
虚拟内存
格式化输出
栈
Lab2
Part1_物理内存页管理
Part2_虚拟内存
Part3_内核地址空间
Lab3
PartA
PartB
Lab4
PartA
PartB
PartC
Lab5
Lab6
Powered by
GitBook
课后作业
线程与锁
本章使用了一个示例,展示了线程间竞争的问题.
我们需要使用锁来保护临界资源,从而避免竞争.
问题
在
put
函数中加锁,保护临界资源
通过缩小锁的保护范围,我们可以看到明显的性能提升.
是否有必要在
get
函数中加锁?
在本例中因为线程是在写完毕后读,因此若每个bucket使用一个锁,则
get
不必加锁.
关键在于,引入了读写锁的概念
若有人在写,则所有人不可读
若有人在读,则所有人可读
results matching "
"
No results matching "
"