(2)进程管理
一、进程的定义、组成、组织方式、特征
1.进程的定义
进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB、程序段、数据段三部分构成了进程实体(进程映像)。
PCB:系统为每个运行的程序配置一个数据结构,成为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)。
注意:PCB是进程存在的唯一标志。
2.进程的组成
进程(进程实体)由程序段、数据段、PCB三部分组成。

PCB的组成

3.进程的组织
把PCB管理起来
进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。

连接方式

索引方式

4.进程的特征

5.总结

二、进程的状态与转换
1.三种基本状态

2.另外的两种状态

3.进程的状态转换

4.总结

三、进程控制
1.什么是进程控制
反正进程控制就是要实现进程状态转换

细化后:


2.进程控制相关的原语
进程控制会导致进程状态转换。无论哪个原语,要做的无非三类事情。
- 更新PCB信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
- 将PCB插入合适的队列
- 分配/回收资源
3.总结

四、进程通信
1.什么是进程通信
进程通信就是指进程之间的信息交换
进程就是分配系统资源的单位(包括内存地址空间),因此<各进程拥有的内存地址空间相互独立。
为了保证安全,一个进程不能直接访问另一个进程的地址空间
但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。

2.共享存储

3.管道通信

- 管道是指用于连续读写进程的一个共享文件,又名pipe文件。其实就是在内存中开辟一个大小固定的缓冲区。
4.消息传递
进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换。

5.总结

五、线程概念和多线程模型
1.什么是线程,为什么要引入线程

2.引入线程机制后,有什么变化

3.线程的属性

4.线程的是实现方式
用户级线程

内核级线程

组合实现

5.多线程模型
多对一模型

一对一模型

多对多模型

6.总结

六、进程同步、进程互斥
1.什么是进程同步
同步就是直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系及时源于它们之间的相互合作。
2.什么是进程互斥

对临界资源的访问


3.总结

七、进程互斥的软件实现方法
1.单标志法

2.双标志先检查

3.双标志后检查

4.Peterson算法


5.总结

七、进程互斥的硬件实现方法
1.中断屏蔽方法

2.TestAndSet(TS指令/TSL指令)

3.Swap指令(XCHG指令)

4.总结

八、信号量机制
1.信号量机制

2.整型信号量

3.记录型信号量

4.总结

九、信号量机制实现进程互斥、同步、前驱关系
1.信号量机制实现进程互斥

2.信号量实现进程同步

3.信号量机制实现前驱关系

4.总结

十、生产者、消费者问题
1.问题描述


2.任何实现

3.改变相邻P、V操作的顺序

4.总结

十一、多生产者多消费者问题
1.问题描述


2.如何实现

因为plate为1,所以可以把P(mutex),V(mutex)互斥代码删除,如果plate大于1,则互斥变量不能删除。
3.总结

十二、吸烟者问题
1.问题描述

2.问题分析


3.如何实现

4.总结

十三、读者-写者问题
1.问题描述

2.如何实现

- 此算法中,读进程是优先的
读写公平算法

3.总结

十四、哲学家问题
1.问题描述



2.如何实现

3.总结

十五、管程
1.为什么要引入管程

2.管程的定义和基本特性

3.拓展1:用管程解决生产者消费者问题


4.拓展2:Java中类似于管程的机制

5.总结
