操作系统 day1基本概念

99 阅读1分钟

概念

问题

  • 为何系统会出现 load 值高 cpu 利用率却不高的情况?
  • 为何会有那么多僵尸进程?
  • 某些场景下如何快速创建进程的 snapshot ?
  • 如何高效利用 CPU Cache Line(利用 Cache Friendly 的数据结构)?
  • 如何避免 False Sharing ?
  • 并发情况下如何避免死锁?
  • zero-copy 为何高效?
  • 单纯的 context switch 都是 micro second 级的,为何频繁的线程调度会导致性能低下?
  • 各种锁(互斥锁、自旋锁、读写锁)的适用场景等。

虚拟地址

操作系统可以看做是一个资源管理者
虚拟内存:虚拟内存可以认为是一些byte数组,读写都必须指定具体的地址 address。每个进程都有自己的虚拟地址空间,操作系统会将这些虚拟地址空间映射到真实的物理地址
PID:线程标识

并发

程序执行a=a+1需要三个指令
1.将a的值加载到寄存器
2.对a执行+1的操作
3.将a的值写到内存
在多线程并发的条件下,a=a+1的操作不是原子的,所以会发生很多意料之外的事情

persistence持久化

文件系统:操作系统中管理磁盘的软件叫做文件系统

操作系统

最关键的一点是根据实际情况做权衡
1.避免恶意或者意外导致的崩溃
2.操作系统不应该停止运行,所以需要保证可用性reliability
3.其他的目标包括:energy-efficiency更省电、mobility更便携 等