操作系统基础知识整理
进程相关
进程转换图
PCB(Process Control Block)
- 地位:PCB在系统只用于表征进程实体,系统通过PCB感知进程的存在。实际上PCB已经成为进程在系统中唯一标识了。
- 存储内容:保存进程状态以及相关资源,在CPU恢复现场时,恢复的状态就在PCB中了
进程同步经典问题:
见之前的文章:
http://blog.csdn.net/fire_tray/article/details/50535611
进程通信几种方式:
- 共享存储器系统:内存开辟一块空间,利用此空间共享读写,实现通信
- 管道:管道是指连接一个读进程和写进程的共享文件,写进程向管道中写入大量数据,读进程则获取这些数据。管道的使用是互斥的。且当写满或管道空时,对应的写进程和读进程则要等待。
- 消息传递系统:利用系统的消息发送命令进行操作,屏蔽了底层的细节
- Unix Domain Socket:不同与网络的Socket,它专门用于进程间通信
- 远程进程调用 (Remote Procedure Calls):利用中间的传输者Stub进行,可类比AIDL
处理机调度
死锁的几个条件
- 资源互斥:对分配到的资源进行排他性使用
- 请求和保持:在持有资源时继续发出请求
- 不可抢占:对于未使用完的资源不会进行释放
- 循环等待:存在一个进程-资源等待循环链
破除死锁的几个方法:
- 预防死锁:就是打破上述4种成立的条件
- 避免死锁:如银行家算法,在分配时预测是否安全
- 解除死锁:发送死锁时进行干预,强制终止一个进程的运行或资源持有权或资源请求权
存储器管理
分页存储系统
将进程的逻辑地址空间分成若干页,以页为单位将若干页分别装入到多个可以不相邻的物理快中。
分段存储系统
为了满足用户的编程需求,将程序根据段进行存储
段页式存储系统
首先将程序进行分段,每个段再分割成多个页。
虚拟存储器系统
根据局部性原理,将外存的一部分化为作业的存储区。在作业运行时,仅将部分作业存入内存,在发生缺页时发生页面置换。
页面置换算法
- FIFO,FILO:First In First Out && First In Last Out
- LRU:Least Recently Use
- Clock算法(亦称:Not Recently Used 最近未用算法) : 当某页面被访问时,访问位置为1。当触发置换时,检测访问位置,如果是0,则选择将该页换出;若为1,则重新置为0,暂不换出,再按照FIFO算法检测下一页