目录
进程的定义、组成、组织方式、特征
程序:一个指令序列
早期计算机只支持单道程序
引入多道程序技术后:
现在我们知道了一个进程内部的组成
现在要了解多个进程之间的组织
本节总结
进程的状态与转换
就绪态:进程已经有了处理机之外的所有需要的资源
为了提高CPU利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务
本节总结
进程控制
什么是进程控制——实现进程状态转换
用什么实现进程控制——原语
原语运行在核心态
进程控制相关的原语:
本节总结
进程通信
本节总结
线程概念 多线程模型
本节总结
处理机调度的概念、层次
什么是调度?——有一堆任务要处理,但资源有限,没法同时处理,这时就需要某种规则来决定处理这些任务的顺序
在多道程序系统中,进程的数量往往多于处理机的个数,这样不可能同时并行处理各个进程。
因此,处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行
本节总结
进程调度的时机,切换与过程、方式
-------------------普通临界区-----------------
本节总结
调度算法的评价指标
CPU利用率:CPU忙碌的时间占总时间的比例
系统吞吐量:单位时间内完成作业的数量 总共完成了多少道作业/总共花了多少时间
周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔
它包括四个部分:作业在外存后备队列上等待高级调度的时间、进程在就绪队列上等待低级调度的时间、进程在CPU上执行的时间、进程等待IO操作完成的时间(后三项在整个作业的处理过程中可能发生多次)
作业完成时间-作业提交时间
平均周转时间:各作业周转时间之和/作业数
带权周转时间:作业周转时间/作业实际运行的时间
平均带权周转时间:各作业带权周转时间之和/作业数
等待时间:指进程/作业处于等待处理机状态时间之和。
响应时间:指从用户提交请求到首次产生响应所用的时间
本节总结
FCFS、SJF、HRRN调度算法
先来先服务(First Come First Serve)
短作业优先(Shortest Job First)--抢占式/非抢占式
高响应比优先(High Response Ratio Next)
本节总结
时间片轮转RR、优先级、多级反馈队列
时间片轮转(Round-Robin)
优先级调度算法
多级反馈队列调度算法
进程同步、进程互斥
什么是进程同步:
什么是进程互斥
本节总结
进程互斥的软件实现方法
本节总结
进程互斥的硬件实现方法
中断屏蔽方法
TestAndSet指令(TestAndSetLock \ TSL\TS)
Swap指令(Exchange、XCHG)
本节总结
信号量机制
本节总结
用信号量实现进程互斥、同步、前驱关系
本节重点
生产者-消费者问题
本节总结
多生产者-多消费者问题
本节总结
吸烟者问题
与生产者问题不同的是,供应者能生产好几种不同的材料
本节总结
读者-写者问题
潜在的问题:只要有读进程还在读,写进程就要一直阻塞等待!可能饿死
也叫“读写公平法”
本节总结
哲学家进餐问题
重点是,每个哲学家需要持有两个临界资源,才可以
如果5个哲学家并发地拿起了左手边的筷子——就会发生死锁
本节总结
管程
其实管程有点像类
本节总结
管程就是运用了封装的思想,把实现同步和互斥的操作隐藏在管程内部的那些定义中
死锁的概念
本节总结
死锁的处理策略1——预防死锁
本节总结
死锁的处理策略2——避免死锁
代码实现:
本节总结
死锁的处理策略3——检测和解除
本节总结