程序,进程和线程

注:并发和并行是有区别的。并发是在同一时间段内同时运行(本质上还没有同时),而并行则是在同一时刻同时运行。

一,程序,进程和线程之间的关系

1.一个应用程序是由许多个程序段组成。

2.进程是由程序段,相关的数据段和PCB(进程控制块)组成。进程是一个可独立拥有资源的单位,也是可独立调度的基本单位。(就是说进程既可以占有资源,同时可以被调度,所以也叫重型进程)

3.线程是作为分派和调度的基本单位。(线程只能作为调度单位,也叫轻型进程)

二,程序

  1. 程序顺序执行:

程序在顺序执行的情况下,每个程序段按照某种顺序执行,只有前面的程序段执行完后才可以执行下一个程序段,例如,用字母代表个程序段的操作,I代表输入,C代表计算,P代表打印。这几个操作就存在着如下图的前驱关系。

  1. 程序顺序执行特征:

顺序性:程序段顺序执行

封闭性:程序运行时占用整机资源

可再现性:同一程序不管运行多少次,其结果是相同的

  1. 程序并发执行:

不存在依赖关系两个程序才可以并发执行。

比如说下面的四个程序段:

S1:a = x+2;

S2: b = y+4;

S3: c = a+b;

S4: d = c+b;

显而易见,S3要,在S1和S2后面执行,S4只有在S3后面执行。而S1和S2之间不存在依赖关系,所以可以并发执行(先执行s2还是s1都没有关系)。

4,程序并发执行的特征:

间断性:如上面的四个程序段,如果第一次S3程序执行完后,第二次S1和S2还没有完成,则S3就会因为得不到资源而暂停,等待S1和S2执行完后再继续执行。

失去封闭性:对于各种程序来说,系统的资源是共享的,资源的状态受到许多不同的程序影响

不可再现性。给上面的四个程序段再加一个S0:a = x+4;这样的话,我执行S0和S2,与执行S1和S2所得的S3和S4必定是不同的,所以不可再现。

三,进程

  1. 定义:

进程的出现是为了解决在多道程序环境中,程序并发执行会失去封闭性的特征(在上面我们演示过)的问题。为了使程序都能独立的运行(粗略的来说就是其数据不共享,也不相互影响),操作系统为程序配置了一个专门的数据结构称为程序控制块(PCB),进程实体就是由PCB,程序块和相关的数据段组成,撤销进程其实就是撤销PCB,创建进程其实也就是创建PCB。进程就是程序的一次执行。

  1. 进程的特征:

动态性:进程的实质是进程实体的执行过程。

并发性:多个进程实体可以存于同一内存中,且可以在一段时间内同时运行(注意这里还是并发)。

独立性:进程是一个可独立拥有资源和可被调度的单位。

异步性:进程是按照各自的方式运行,比如说不同的运行速度。所以其结果具有不可再现。

  1. 进程的三种基本状态:

就绪态(ready):直白的来讲,还没有获得需要的资源和没有获得CPU。

执行态(running):获得了CPU正在运行。

阻塞态(block):正在执行的进程由于某种原因暂时无法继续执行的状态。

状态转换图如下:

四,线程

  1. 定义:

由于进程是一个资源的拥有者,所以在创建,撤销和切换的过程中,系统需要付出很大的时空开销这就限制了进程的个数,且进程切换也太繁琐,消耗的空间与时间都很大。为了解决这一问题,所以出现了线程,线程并不占有资源,只拥有被独立调度的权力,此后,对拥有资源的基本单位进程不必进行繁琐的调度,只需要调度他的进程就可以,这样就做到了”轻装上阵“。

2线程的特征:

并发性:在一个进程中可以有几个线程,这几个线程可以并发执行。

拥有最基本的运行资源:线程并不拥有系统资源,只拥有支撑独立运行的基本资源(我认为相当于没有)

独立性:线程的独立性比进程要低得多,每个进程都独立的占有一块内存空间,而对于线程,他们共享进程的内存地址和资源。

3.线程的三个运行状态:

就绪态(ready),执行态(running),阻塞态(block)和进程的一样。

最后感谢大家阅读本文,如有写的不合理的地方还请各位大佬斧正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值