进程的概念
进程的组成
进程的组成-PCB
进程的组成--程序段、数据段
程序如何运行
总结:
进程的特征
总结
进程的状态
进程的状态--创建态、就绪态
进程的状态--运行态
进程的状态--阻塞态
进程的状态--终止态
进程状态的转换
进程的组织
进程的组织--链接方式
进程的组织--索引方式
进程控制
实现进程控制
实现原语的“原子性”
进程控制相关的原语
总结:
进程通信
进程间通信是指两个进程之间产生数据交互。
共享存储
为了避免出错,各个进程对共享空间的访问应该是互斥的
消息传递
直接通信方式
间接通信方式
管道通信
总结:
线程的概念
线程的属性
线程的实现方式
用户级线程
内核级线程
多线程模型
一对一
多对一
多对多
总结
线程的状态与转换
线程的组织与控制
处理机调度
调度的基本概念
调度的三个层次
高级调度
低级调度
中级调度
进程的挂起态和七状态模型
三层调度的联系、对比
进程调度
进程调度的时机
进程调度的方式
进程的切换与过程
调度器和闲逛进程
调度器/调度程序
闲逛进程
调度算法的评价指标
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指令
互斥锁
信号量机制
整型信号量
记录型信号量
总结:
信号量机制实现进程互斥
信号量机制实现进程同步
信号量机制实现前驱关系
总结:
进程同步互斥问题
生产者和消费者问题
多生产者和多消费者问题
吸烟者问题
读者-写者问题
哲学家进餐问题
法一:
法二:
法三:
管程
为什么要引入管程
管程的定义和基本特征
用管程解决生产者消费者问题
JAVA中类似于管程的机制
死锁
什么是死锁
死锁、饥饿和死循环的区别
死锁产生的必要条件
发生死锁的情况
死锁的处理策略
1.静态策略--预防死锁
破坏互斥条件
破坏不剥夺条件
破坏请求和保持条件
破坏循环等待条件
2.动态策略--避免死锁
安全序列
安全序列、不安全状态、死锁的联系
银行家算法
总结:
3.死锁的检测和解除
死锁的检测
没有发生死锁
1.
2.
3.
发生了死锁
1.
2.
检查死锁的算法
死锁的解除