声明:所有图片与概念均来自于王道考研
进程管理
进程和程序的区别
进程(Process):是动态的,是程序的一次执行过程
程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
进程的组成
PCB
注意:PCB是进程存在的唯一标志
进程的特征
进程的组织方式
进程的控制
主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
如何实现进程控制?
用原语实现对进程的控制
原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,不可中断。
原语的执行具有原子性,可以用“关中断指令”和“开中断指令”这两个特权指令实现原子性。
进程的创建
进程的终止
进程的阻塞和唤醒
进程的切换
无论哪个进程控制原语,要做的无非三类事情
1.更新PCB中的信息一修改进程状态(state)
2.将PCB插入合适的队列保存/恢复运行环境
3.分配/回收资源
进程的通信
顾名思义,进程通信就是指进程之间的信息交换。
进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。
为了保证安全,一个进程不能直接访问另一个进程的地址空间。
但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。
共享存储
消息传递
管道通信
线程的概念和特点
可以把线程理解为“轻量级进程”。
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。
引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。
线程则作为处理机的分配单元。
线程的实现方式
多线程模型
处理机调度
高级调度(作业调度)
中级调度(内存调度)
低级调度(进程调度)
进程调度的时机
进程调度的方式
进程的切换与过程
总结
三种调度的联系和对比
调度算法
调度算法的评价指标
CPU利用率
系统吞吐量
周转时间
等待时间
响应时间
具体算法如下:
先来先服务(FCFS)
例题
短作业优先(SJF)
例题
1、非抢占式:
2、抢占式:
高响应比优先(HRRN)
例题
总结
时间片轮转法(RR)
优先级调度算法
多级反馈队列调度算法
总结
进程的同步和互斥
进程互斥
1、软件实现方法
2、硬件实现方法
信号量机制(实现进程的同步和互斥)
1、整型信号量
2、记录型信号量
总结
信号量机制实现互斥
信号量机制实现同步
信号量机制实现前驱关系
总结
经典同步互斥问题
1、生产者消费者问题
2、多生产者多消费者
此处的多生产和多消费都是指生产不同产品和消费不同产品
问题描述
问题分析
问题实现
3、吸烟者问题
问题描述
问题分析
问题实现
4、读者写者问题
问题描述
问题分析
问题实现
1、读者优先
2、写者优先
5、哲学家就餐问题
问题描述
问题分析
问题实现