操作系统相关
虚拟内存
- 不同进程之间通过虚拟内存隔离
- CPU通过连续的虚拟地址访问物理地址
- 虚拟内存大小可以比当前空闲物理内存大
页表
虚拟地址到物理地址的映射,由操作系统维护
页表访问失败:
- 访问的地址不在虚拟地址中,出现段错误
- 访问的地址还没有被映射为物理地址,或者被置换出物理内存,出现缺页中断,需要为其分配内存,更新页表
中断
软中断
软件产生的中断,例如进程调度,缺页中断等
硬中断
由硬件产生的中断,例如磁盘,网卡等等
进程切换 线程切换
进程切换开销:
- 切换虚拟内存(栈,堆,bss,全局数据,代码段)
- 切换硬件上下文,例如寄存器等
- 调度器执行
线程切换开销:
- 线程的栈
- 调度器执行
虚拟内存切换十分慢,因此线程切换开销远小于进程切换开销
生产者消费者模型
互斥锁,信号量