操作系统计组基础知识
操作系统基础知识
进程与线程
进程是资源分配的基本单位,线程是调度的基本单位
一个程序至少有一个进程,一个进程至少有一个线程,线程是进程的子单位
线程间信息共享和通讯比较方便,不需要资源的切换
线程与协程
协程是运行在线程上的,单个时间只能有一个协程运行,它的调度由用户控制,用户手动发起协程,并且手动释放CPU使用权(yield)。调用协程不需要切换到内核态,因此效率高
死锁
死锁的四个必要条件
- 互斥条件:指资源同一时间只能被一个线程所使用
- 请求和保持条件:线程在申请资源的同时,不愿放弃自己手头已有的资源
- 不可剥夺条件:资源只能由线程自己释放,不可被它人剥夺
- 循环等待条件:线程之间A等B,B等A的循环等待链
防止死锁
- 破坏死锁的四个必要条件之一
- 利用算法实现资源分配(银行家算法:在分配之前计算有没有可能陷入死锁情况,有则拒绝分配)
- 由操作系统干预,抢占资源或终止线程
虚拟内存
虚拟内存是基于分页式存储管理机制的。在进程执行的时候并不会把所有的页都放入内存中,而是把一部分页映射到内存中,剩余部分仍储存于外存,当引用到内存中不存在的页的时候,会产生缺页中断,此时再从外存中把页调用进来
把页调用进来后有三种页面置换算法
- 最佳置换算法(OPT):最理想的情况,但是需要预知未来页面的使用情况,不可能实现
- 先进先出(FIFO):先被置换进来的页面最先被置换出去
- 最近最久未使用(LRU):记录页面上一次以来访问经历的时间,找出最久未使用的
内存碎片
固定分区分配会产生内部内存碎片;动态分区分配会产生外部碎片
计组基础知识
Cached
由于CPU寄存器的计算速度非常快,相比之下将数据从主存读入CPU的速度将会慢很多。因此为了提高CPU的效率,引入高速的Cached。CPU从Cached中读取数数据,计算后放回Cached中
一般的CPU有三级Cached,越靠近CPU的Cached速度越快,大小越小,价格越贵