进程与线程
1.什么是进程? 进程=PCB+程序+数据,PCB是标志进程存在的唯一标志。
2.进程终止的情况: 正常终止,异常终止,外界干预。
3.进程之间的通信方式有哪些?共享存储,消息通信,管道通信(单向)。
4.引入线程之后,进程只作为除CPU之外的系统资源分配单元,线程作为处理机的分配单元。
5.进程和线程区别
处理机调度
1.调度分为哪几种?三种,高级调度(作业调度),中级调度(内存调度),低级调度(进程调度)
2.调度算法有哪些?
<1FCFS(先来先服务算法)适用于CPU繁忙型作业,即短作业,不适用于I/O繁忙型
<2SJF(短作业优先算法)
<3优先级调度(实时系统)
<4高响应比优先调度算法,响应比=(等待时间+服务时间)/服务时间(分时)
<5时间片轮转调度算法,公平分配时间片(分时)
<6多级队列调度算法,每个队列不同调度算法
<7多级反馈队列调度算法(分时)
3.上下文切换只发生在内核态
同步与互斥
1.什么是临界资源?一次只能一个进程访问的资源
2.同步机制遵循哪四条准则?空闲让进,忙则等待,有限等待,让权等待。
3.PV操作
P:while(s<=0);s=s-1
V:s=s+1
S初始化为0则为同步,为1则为互斥,实际S可看成资源数量。P相当于申请资源,V相当于释放资源。
4.管程
5.读写者问题
6.哲学家就餐问题
死锁
1.产生死锁的必要条件
(1互斥条件,一个资源只能被一个进程使用
(2不可剥夺
(3请求并保持
(4循环等待
2.死锁有哪几种处理策略?
<1死锁预防,破坏四个条件其中任意一个即可。
如何破坏循环等待条件?
将资源编号,只能申请编号大于已有资源的资源。
<2死锁避免,银行家算法
<3死锁检测与消除:死锁定理
3.什么是饥饿?与死锁有什么差别?
等待时间给进程推进和响应带来明显影响时成为进程饥饿。 饥饿并不代表系统已经死锁,但至少有一个程序的执行被无限期地推迟。
差别: ① 进入饥饿的进程可以只有一个,但是死锁必须大于等于两个; ② 出于饥饿状态的进程可以是一个就绪进程,但是死锁状态的进程必定是阻塞进程