操作系统相关

虚拟内存

  • 不同进程之间通过虚拟内存隔离
  • CPU通过连续的虚拟地址访问物理地址
  • 虚拟内存大小可以比当前空闲物理内存大

页表

虚拟地址到物理地址的映射,由操作系统维护

页表访问失败:

  1. 访问的地址不在虚拟地址中,出现段错误
  2. 访问的地址还没有被映射为物理地址,或者被置换出物理内存,出现缺页中断,需要为其分配内存,更新页表

中断

软中断

软件产生的中断,例如进程调度,缺页中断等

硬中断

由硬件产生的中断,例如磁盘,网卡等等

进程切换 线程切换

进程切换开销:

  • 切换虚拟内存(栈,堆,bss,全局数据,代码段)
  • 切换硬件上下文,例如寄存器等
  • 调度器执行

线程切换开销:

  • 线程的栈
  • 调度器执行

虚拟内存切换十分慢,因此线程切换开销远小于进程切换开销

生产者消费者模型

互斥锁,信号量