进程的概念
进程的组成
进程的组成-PCB
进程的组成--程序段、数据段
程序如何运行
总结:
进程的特征
总结
进程的状态
进程的状态--创建态、就绪态
进程的状态--运行态
进程的状态--阻塞态
进程的状态--终止态
进程状态的转换
进程的组织
进程的组织--链接方式
进程的组织--索引方式
进程控制
实现进程控制
实现原语的“原子性”
进程控制相关的原语
总结:
进程通信
进程间通信是指两个进程之间产生数据交互。
共享存储
为了避免出错,各个进程对共享空间的访问应该是互斥的
消息传递
直接通信方式
间接通信方式
管道通信
总结:
线程的概念
线程的属性
线程的实现方式
用户级线程
内核级线程
多线程模型
一对一
多对一
多对多
总结
线程的状态与转换
线程的组织与控制
处理机调度
调度的基本概念
调度的三个层次
高级调度
低级调度
中级调度
进程的挂起态和七状态模型
三层调度的联系、对比
进程调度![](https://i-blog.csdnimg.cn/blog_migrate/d1e568a8ac5d76910eb0413f54a9fd47.png)
进程调度的时机
进程调度的方式
进程的切换与过程
调度器和闲逛进程
调度器/调度程序
闲逛进程
调度算法的评价指标
CPU利用率
系统吞吐量
周转时间
等待时间
响应时间
调度算法
先来先服务(FCFS,First Come First Serve)
短作业优先(SJF,Shortest Job First)
1.非抢占式
2.抢占式
高响应比优先(HRRN,Highest Response Ratio Next)
对FCFS和SJF两种算法的思考
总结:
时间片轮转调度算法(RR,Round-Robin)
时间片为2
、
时间片为5
按照先来先服务调度算法
时间片
优先级调度算法
1.非抢占式
2.抢占式
多级反馈队列调度算法
总结:
多级队列调度算法
进程同步和进程互斥
进程同步
进程互斥
进程互斥的软件实现方法
单标志法
双标志先检查法
双标志后检查法
Peterson算法
进程互斥的硬件实现方法
中断屏蔽方法
TestAndSet指令
Swap指令
互斥锁
信号量机制
整型信号量
记录型信号量
总结:
信号量机制实现进程互斥
信号量机制实现进程同步
信号量机制实现前驱关系
总结:
进程同步互斥问题
生产者和消费者问题
多生产者和多消费者问题
吸烟者问题
读者-写者问题
哲学家进餐问题
法一:
法二:
法三:
管程 ![](https://i-blog.csdnimg.cn/blog_migrate/17a5c3e1015ccab8fb12fb60d18f352c.png)
为什么要引入管程
管程的定义和基本特征
用管程解决生产者消费者问题
JAVA中类似于管程的机制
死锁
什么是死锁
死锁、饥饿和死循环的区别![](https://i-blog.csdnimg.cn/blog_migrate/d6951b20d5d9bb4a3a441c1cb32a60cd.png)
死锁产生的必要条件![](https://i-blog.csdnimg.cn/blog_migrate/d55ab3bbf57bdd347abf58fcda26e54d.png)
发生死锁的情况 ![](https://i-blog.csdnimg.cn/blog_migrate/ad12e342d67c5e37709be23bec03496e.png)
死锁的处理策略
1.静态策略--预防死锁![](https://i-blog.csdnimg.cn/blog_migrate/75c80bbfdd06764b892460c3ad4b3a79.png)
破坏互斥条件
破坏不剥夺条件
破坏请求和保持条件
破坏循环等待条件
2.动态策略--避免死锁
安全序列
安全序列、不安全状态、死锁的联系
银行家算法![](https://i-blog.csdnimg.cn/blog_migrate/d91a8b0f8c512ba4698347813d2c2221.png)
总结:
3.死锁的检测和解除
死锁的检测
没有发生死锁
1.
2.
3.
发生了死锁
1.
2.
检查死锁的算法![](https://i-blog.csdnimg.cn/blog_migrate/b907382cfc6cce57410039dd157d4041.png)
死锁的解除 ![](https://i-blog.csdnimg.cn/blog_migrate/e29068c2d6c73f04fc6541c882ece479.png)