进程基本概念

一、题外话
说到进程这个概念,还是以前上机的时候,每当VS卡得运行不了的时候,老师就会让我们打开任务管理器,在进程那个窗口下,选中VS,然后结束掉这个进程,如下图所示:
这里写图片描述
那时还不懂什么是进程,但是能猜到大概的意思应该就是一个程序在运行时的状态。
最近的一段时间在学习Linux方面的东西,对进程做了进一步的了解,下面就来看一看进程的相关知识。
二、进程的基本概念
1、先来看一下不同的书籍上对进程是如何定义的
(1)程序的一个执行实例;
(2)操作系统对一个正在运行的程序的抽象;
(3)能分配处理器并且由处理器执行的实体;
(4)内核观点:担当分配系统资源(CPU时间,内存)的实体。
进程的两个基本元素是程序代码(可能被执⾏行相同程序的其他进程共享)和代码相关联的数据集。
三、对进程定义的几点疑问
看了以上进程的概念,我有三点疑惑
1、程序和进程有什么区别?
经过查询资料,总结了一下两点区别:
(1)存储的位置不同
进程是加载到内存中的,而程序实在硬盘上的二进制文件。
(2)属性不同
进程是一个动态的概念,是程序正在运行时的过程;而程序是一个静态的概念,是一些预先编译好的指令和数据集合的二进制文件。
2、进程是如何来分配系统资源的?
(1)首先我们来了解一下什么叫做“多任务系统”?
你的PC机上的所有应用程序都以进程的方式在运行,当然应用程序是如何创建进程的,这个我们在后面进行讨论。每个进程都有自己独立的地址空间,使得进程之间可以相互隔离。CPU由操作系统统一进行分配,但是是根据什么进行分配的呢,当然是根据进程的优先级,优先级高的进程能优先得到CPU的资源。
(2)再来了解什么叫做“抢占式分配”?
如上所说,当某一个进程的运行时间超出了一定范围,它长时间占用CPU,那么操作系统就要将该进程暂停了,强制剥夺CPU的资源给目前最需要的进程,这就是所谓的抢占式分配,现在大多数的操作系统都是采用这一方式。
通过以上的描述,我们对进程是如何分配CPU资源的有了一个大概的了解,当然很多细节性的问题还没有涉及到,通过对进程的更深入的理解,可以及时进行补充。
3、处理器又是如何执行进程的?
(1)处理器的分类
处理器可以分为单核处理器和多核处理器,所谓的单核处理器就是只包含一个CPU的处理器;而多核处理器就是将多个CPU集成在一个芯片上的处理器。
(2)以单核处理器为例来说明处理器是如何执行进程的
在说明这个之前我们要了解到,在系统上运行程序的时候,我们会得到一个假象,那就是CPU好像同时在执行多个进程,但是在任何时刻,单处理器都只能执行一个进程的代码。这又是怎么回事呢?这种现象是由我们的处理器在进程之间切换实现的,具体的切换过程举例进行说明:
这里写图片描述
文字描述:刚开始运行的是A进程,即等待命令行上的输入,但是此时B进行要运行,怎么办呢,对于单核的处理器来说,在任何时刻只能运行一个进程,于是就只能进行切换了,A进行首先要通过系统调用将自己的控制权传给操作系统内核,操作系统内核拿到A的控制权之后会做三件事,先将A的上下文环境保存起来,以便后续从A停止的地方继续运行A进程,然后再将控制权给B进程,并且创建B进程的上下文环境,表示B进程现在有权利占用系统资源了。至此就是将A进程切换到B进程的全过程,当然要切换回去也是同样的道理。
四、几个常见的概念
1、逻辑控制流
逻辑控制流就是程序计数器PC里面保存的序列值,简称逻辑流。
2、并发流
一个逻辑流与另一个逻辑流在时间上的重叠称为并发流。为了更好的理解这个概念我们举例来进行说明:
这里写图片描述
现在我们来判断一下进程三个进程之间的关系:
B是在A开始之后,结束之前开始运行的,即AB时间上有重叠,因此AB并发执行,同理可以判断AC并发执行,BC不是并发执行。
3、并行流
如果两个流在时间上有重叠,并且它们运行在不同的处理器或者PC机上,那么我们称他们为并行流。
4、多任务和时间片
一个进程和另外一个进程轮流运行的概念成为多任务。
一个进程执行它的控制流的每一部分的时间段称为时间片。
例如:
上图中的进程A就有两个时间片;进程B只有一个时间片;进程C有两个时间片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值