操作系统---进程与线程__进程与线程

目录

 2.1_1_进程的定义、组成、组织方式和特征

2.1_1进程的定义

2.1_2进程的组成

2.1_3进程的组织

2.1_4进程的特征

 2.1_2_进程的状态与转换

2.1_2_1进程的状态

2.1_2_2进程状态的转换

 2.1_3_进程控制

2.1_3_1什么是进程控制?

 2.1_3_2如何实现进程控制?

2.1_4_进程通信

2.1_4_1共享存储

2.1_4_2 管道通信

2.1_4_3消息传递

2.1_5_线程概念和多线程模型

2.1_5_1什么是线程,为什么要引入线程?

2.1_5_2引入线程机制后,有什么变化?

2.1_5_3 线程的属性

2.1_5_4线程的实现方式


 2.1_1_进程的定义、组成、组织方式和特征

2.1_1进程的定义

程序:就是一个指令序列

 早期的计算机(只支持单道程序):

在引入多道程序技术后:

 

程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程。例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程中的PCB。

注意:PCB是进程存在的唯一标志!!!

从不同的角度看,进程可以有不同的定义,比较传统典型的定义有:(强调“动态性”

1.进程是程序的一次执行过程

2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

3.进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

在引入进程实体的概念后,我们可以把进程定义为:进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位。

注:严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。不过,除非题目专门考察二者区别,否则可以认为进程实体就是进程。因此我们也可以说“进程是由程序段、数据段、PCB三部分组成”

2.1_2进程的组成

进程(进程实体)是由程序段、数据段、PCB三部分组成

2.1_3进程的组织

在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

链接方式:

 索引方式:

2.1_4进程的特征

进程和程序是两个截然不同的概念,相比于程序,进程拥有以下特征:

 本节小结:

 2.1_2_进程的状态与转换

2.1_2_1进程的状态

进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时有需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。

进程的三种基本状态:

 另外两种状态

创建态---在进程运行之前,需要操作系统完成创建进程...

 终止态---操作系统需要完成撤销进程相关的工作。

 

 以上完成了对进程五种状态的介绍。那,在什么情况下需要转换进程状态呢?

2.1_2_2进程状态的转换

 本节小结:

 2.1_3_进程控制

2.1_3_1什么是进程控制?

进程控制的主要功能是对系统中所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。

简化理解:反正进程控制就是要实现进程状态的转换

所谓进程控制就是表示这些绿色箭头指示的过程

 2.1_3_2如何实现进程控制?

大家还记得之前提到的进程组织的问题吗?

 那么我们把这个模型再细化一下:

原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成。

这种不可被中断的操作即原子操作。

原语采用“关中断指令”和“开中断指令”实现

显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令。 

进程控制相关的原语:

(学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:)

1.更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)

  a.所有的进程控制原语一定都会修改进程状态标志

  b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境

  c.某个进程开始运行前比如要恢复期运行环境

2.将PCB插入合适的队列

3.分配/回收资源

进程的创建:

 进程的终止:

进程的阻塞和唤醒:

进程的切换:

 本节小结:

2.1_4_进程通信

什么是进程通信?

 顾名思义,进程通信就是指进程之间的信息交换

进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。

为了保证安全,一个进程不能直接访问另一个进程的地址空间。

但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。

2.1_4_1共享存储

 

2.1_4_2 管道通信

2.1_4_3消息传递

进程之间的数据交换以格式化的消息为单位。进程通过操作系统提供的”发送消息/接收消息“两个原语进行数据交换。

本节小结:

2.1_5_线程概念和多线程模型

2.1_5_1什么是线程,为什么要引入线程?

 在没有引入进程之前,系统中各个程序只能串行执行。

可以把线程理解为“轻量级进程”

线程是一个基本的CPU执行单元,也是程序执行流的最小单位。

引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)

引入线程后,进程只作为除CPU之外的系统资源的分配单位(如打印机、内存地址空间等都是分配给进程的)

2.1_5_2引入线程机制后,有什么变化?

2.1_5_3 线程的属性

2.1_5_4线程的实现方式

2.1_5_4.1用户级线程

2.1_5_4.2内核级线程

在同时支持用户级线程和内核级线程的系统中,可采用二者组合的方式:将n个用户级线程映射到m个内核级线程上(n>=m)

2.1_5_4.3多线程模型

在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线成模型”问题。

 

 

本节小结:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

INGING666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值