目录
进程的四个特征
并发性:多个进程同时处于内存中,并且可以在一段时间内同时运行。
是操作系统及进程的重要特征。
动态性:进程的实质是程序的一次动态运行。
因此是进程的最基本特征。
独立性:进程是独立运行,独立分配资源的最小单位。
异步性:进程按各自独立,不可预知的速度向前推进,按异步方式运行。
进程状态
New Runnable Running Blocked Dead
创建 → 就绪
就绪 → 执行 执行 → 就绪
执行 → 阻塞 执行 → 就绪
阻塞 → 就绪
执行 → 中止
进程状态转换:
进程主动交出CPU:
- 正常中止(运行→中止)
- 异常中止(运行→中止)
- 请求阻塞,如等待I/O(运行→阻塞)
进程被动放弃CPU:
- 时间片用完(运行→就绪)
- 更紧急的处理事项,如I/O中断(运行→就绪)
- 更优先的进程抢占(运行→就绪)
死锁
多个进程 由于资源竞争 造成相互等待
死锁的4个必要条件:
- 互斥条件:资源只能分给一个进程,其他进程不能访问
- 请求保持:进程获得资源后,请求被其他进程占用的资源,请求阻塞,已占有资源不释放
- 不可抢占:资源只能由进程主动释放,不能被剥夺
- 环路等待:2个或2个以上资源组成资源等待环路
死锁解决
剥夺资源
死锁检测
资源分配图
死锁避免
银行家算法:确定不会不安全才进行资源分配
死锁预防
资源静态分配
调度:
- 短程(Short-term scheduling)调度:CPU进程(Process)调度,从进程的就绪队列中选择一个进程运行。
- 中程调度:对换,和内存管理相关,为了提高内存利用率。
- 长程调度:作业(Job)调度,从磁盘上的后备作业队列中选择作业调入内存。
调度的基本单位: 有 内核级线程,则为线程;否则为进程。
CPU调度
- 先来先服务
- 短作业优先 SJF
- 高优先级优先
- 时间片轮转
- 高响应比
响应比 =(等待时间 + 运行时间)/ 运行时间 = 1 + 等待时间 / 运行时间 > 1
- 多级反馈队列 与 多级队列
多级队列:
1)进程就绪队列从一个拆分为若干个,不同类型或性质的进程分配在不同的就绪队列。【是否固定分配?】
2)不同的就绪队列,可针对不同用户进程的需求,采用不同的调度算法。
3)一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。
多级反馈队列:
1)“多级”:有多个不同优先级的就绪队列。第一个队列的优先级最高,第二个次之,其余的优先级逐个降低。按队列优先级调度。
2)“反馈”:如果有进程加入优先级高的队列时立即停止当前任务,转去执行优先级高的队列中进程。
3)为不同的队列中的进程所赋予的执行时间片的大小也各不相同,在优先级愈高的队列中,其时间片就愈小。
4)每个队列都采用FCFS(先来先服务)算法。
————————————————
版权声明:
[1] 本文为CSDN博主「老罗不喝酒_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rekkles233/article/details/111501354
[2] 作者:慕容森 链接:https://www.imooc.com/article/26962 来源:慕课网
也分为 抢占式 和 非抢占式。
进程通信
信号量
当信号量 N > 0 | 还有 N 个资源可用 |
= 0 | 资源全部被分配,没有进程处于等待状态 |
< 0 | 资源全部被分配,有 N 个进程处于等待状态 |
进程间的制约关系
同步:直接制约(交换数据产生的制约关系)
如,流水线上的各道工序,商品的生产和消费等
互斥 :间接制约(竞争同一资源产生的制约关系)
如,若干人到图书馆借书;两队比赛等
进程中线程同步方法
- 事件:一个线程处理完主动唤醒另一个线程
- 互斥量
- 临界区
- 信号量