操作系统 2.1 进程与线程

进程以及他的扩展--线程是计算机的活动计算单元,进程可以用看作是执行者的程序,需要占用一定的资源,如CPU,内存,文件和I/O设备,所以进程是分配资源的基本单位

2.1 进程的引入

2.1.1 单道程序的顺序执行

1. 程序的顺序执行

程序执行时有先后顺序,只能一个一个的进行,即每个时刻最多执行一个操作

如,某个用户的计算程序分为三个程序段,首先输入该用户的程序和数据,然后进行计算,最后输出程序运行的结果。这一个完整的程序运行后才能再去进行下一个程序。

2.程序顺序执行的特征

(1)顺序性。

程序在处理机上执行时,只有前一个操作结束后,才会进行执行下一个操作。

(2)封闭性。

程序是在封闭的环境下运行的,程序在执行时独占系统中的全部资源。

(3)可再现性

当程序被重复执行时,只要初始条件相同,其执行结果也一定不变。

2.1.2 多道程序的并发执行

单道程序系统确定资源浪费,效率低下,现代广泛用多道程序设计技术,多道程序设计是在内存中存放多道程序,他们在操作系统的控制下在cpu上交替运行。

1.程序的并发执行

为了提高计算机内部的资源利用率,提高计算机系统的处理能力,并发处理技术得到广泛的应用,在多数计算中,仅要求部分操作是有序的,有些却可以并发执行。

如:对于一个程序,输入数据I、计算操作P、输出数据操作O 三者有这严格的顺序关系,必须执行。但对于多个程序来说,各个程序之间的数据操作,计算操作,输出操作没有顺序关系,可以使他们并发执行。例如,在第一个程序进行数据操作之后做计算操作的同时,可以进行第二个程序的输入数据操作,从而第一个程序的计算操作与第二个程序的输入操作并发执行;同样,第一个程序输出操作时,第二个程序可以进行计算操作,第二个程序进行计算,第三个程序可以输入数据。

2.程序并发执行的特性

(1)间断性

程序在并发执行时,由于它们共享系统或为完成同一任务而相互合作,使得并发程序之间形成相互制约的关系。

当计算程序完成第一个程序的计算后,若输入程序还没有完成第二个程序的数据处理,则计算程序无法进行第二个程序的计算,致使计算程序暂时停止运行,同样的,输出操作与计算之间也会致使暂停运行。但当暂停运行因素消失后,又可恢复运行。

相互制约导致并发执行的程序具有“执行--暂停--执行”的这种间断性的规律。

(2)失去封闭性

程序并发执行时,多个程序共享系统中的资源,而这些资源被多个程序来回的改变,进而程序的执行失去了封闭性。

(3)不可再现性

程序并发执行,由于失去了封闭性,也将失去可再现性

如:两个程序段S₁和S₂,它们共享了一个系统变量n,n初值为5.

S₁ : n=n+1;

S₂ :    printf(n);

若S₁先执行,S₂后执行,则打印结果为6。若S₂先执行,S₁后执行,打印结果为5,其初始条件并未改变,而结果却不同,使得程序失去了可再先现性。

2.1.3 程序并发执行的条件

Bernstein条件

2.1.4 进程的概念

(1)进程的动态性和程序的静态性。

进程是程序的执行过程。动态性是进程的基本特性,进程是有一定的生命期的。程序是一组有序指令的集合,是静止的实体。

(2)进程的并发性和程序的顺序性

进程能真实的描述并发执行,而程序没有这种特性。进程是一个能独立调度并能和其他进程并行执行的单位,它能确切的描述并发活动,而程序不能作为独立调度执行的单位。通常程序里的语句是顺序执行的。

(3)进程的暂时性和程序的永久性。

进程是暂时的,它是程序的执行过程,程序执行完毕,进程也就撤销了。而程序不管它是否执行,都可以永久保存。

(4)结构特征

结构上看,进程是由程序、数据和进程控制块三部分组成,程序不是。

(5)进程与程序是密切相关的

一个进程可以涉及一个或多个程序的执行,通过多次执行,一个程序可对应多个进程。

2.2.1 进程的基本状态

1. 进程的3中基本状态

1)就绪状态

2)运行状态

3)阻塞状态

2. 3种基本状态的转换

1)就绪状态\rightarrow运行状态

2)运行状态\rightarrow就绪状态

3)运行状态\rightarrow阻塞状态

4)阻塞状态\rightarrow就绪状态

 

 3.创建状态和退出状态

设立这两种状态便于操作系统对进程进行管理

 

创建状态:操作系统为新进程分配资源,创建zh

退出状态:操作系统回收进程的资源,撤销PCB

创建态\rightarrow就绪态:系统完成创建进程的相关工作

运行态\rightarrow退出态:进程运行完成,或者运行进程中出现不可恢复的错误

2.2.2 进程的挂起状态

1.  挂起状态的引入

1)内外存对换的需要

缓和内存紧张的状态,将内存中处于阻塞状态的进程换至外存

2)用户调试程序的需要

调试程序时,将运行的程序暂停下来,以便对进程的地址空间进行读写,

3)实时系统中调节负载的需要

当实时系统负载过高时,可能会影响到系统对实时任务的控制和处理,这时系统需要把不太重要的进程挂起,以保证系统对紧急事件的及时处理。

2. 进程状态的转换

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值