计算机操作系统中程序、进程、线程概念:


 1.程序(program)描述计算机所要完成的具有独立功能的,并在时间上按严格次序前后相继的计算机操作序列集合,是一个静态的概念;它体现了编程人员要求计算机完成相应功能时所应采取得的顺序步骤。

2.程序的执行分为顺序执行和并发执行。

        程序的顺序性与计算机的硬件的顺序性是一致的。我们把一个具有独立功能的程序独占处理机直至最终结束的过程称为程序的顺序执行。程序的顺序执行具有的特点:(1)顺序性:程序顺序执行时,其执行过程可以看成一系列严格按程序规定的状态转移;(2)封闭性:程序在执行时得到的最终结果由给定的初始条件决定,也就是程序在运行期间,独占系统资源,不被外界打扰。(3)可再现性:顺序执行的最终结果可在现是指它与执行速度无关,只要输入的初始条件相同,则无论何时重发执行该程序都会得到相同的结果。

        程序的并发(concurrent)执行:并发执行是为了增强计算机系统的处理能力和提高资源利用率所采取的一种同时操作技术;它是一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的执行方式。程序并发执行的特征:(1)间断性:程序在并发执行时,由于共享资源或为完成同一项任务和相互合作,让并发程序之间形成相互制约的关系,相互制约导致并发程序具有“执行—暂停----执行”间断性活动规律;(2)失去封闭性:程序并发执行时,多个程序共享系统资源,这些资源的状态由多个程序改变,致使程序的运行失去封闭性。(3)不可再现性:程序并发时,由于失去封闭性,导致失去结果的可再现性,即程序多次执行后,虽然执行时的环境和初始条件相同,但是得到的结果却不同。


3.进程的定义:用程序作为描述其执行过程以及共享资源的基本单位是不合适的。需要有一个能描述程序的执行过程且能用来共享资源的基本单位,这个基本单位是不合适的,需要有一个能描述程序的执行过程且能用来共享资源的基本单位,这个基本单位被称为进程(或任务)。

4.进程和程序区别和联系:

(1)进程是一个动态的概念,而程序则是一个静态概念。程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程,它动态的被创建,并被调度执行后消亡。如果把握比作菜谱,那么进程则是按菜谱炒菜的过程。

(2)进程具有并发特征,而程序没有。进程具有并发特征的两个方面,即独立性和异步性。也就是说,在在不考虑资源共享的情况下,各进程的执行是独立的,执行速度是异步。显然,由于程序不反映执行过程,所以不具有并发特征。

(3)进程是竞争计算机系统基本单位,从而其并发受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。

(4)不同的进程可以包含同一程序,只要该程序所对应的数据集不同。

5.进程的特征:一个进程是一个程序对某个数据集的执行的过程,是分配资源的基本单位。

       进程的静态的描述3部分组成:(1)进程控制块(PCB),有关程序序段和该程序段对其进行操作的数据结构集。进程控制块包含了有关进程的描述信息 ,控制信息以及资源信息,是进程动态特征的集中的反映。(2)程序段(3)数据集

6.在进程的生命周期内,一个进程至少具有5中基本状态:初始态、执行状态、等待状态、就绪状态、和终止状态

7.进程的创建:(1)系统的程序模块统一创建,创建的这些进程之间的关系是平等的,它们之间不存在资源继承关系(2)由父进程统一创建,创建的这些进程之间存在隶属关系,且互相构成树形结构的家族关系。属于某个家族的一个进程可以继承父进程所拥有的资源。无论是系统的创建方式还是父进程的创建方式,都必须调用创建原语来实现。

8.进程的阻塞和唤醒:阻塞原语在一个进程期待某一事件(例如键盘输入数据,写盘,其他进程发来的数据等)发生,但发生条件并不满足时,被改进程自己调用来阻塞自己;它实现了进程从执行状态到等待状态;当等待事件结束(I/o操作结束,某个资源可用),会产生一个中断,激活操作系统的被阻塞的状态唤醒;唤醒一个进程有两个方法(1)由系统进程唤醒(2)由事件发生进程唤醒;从等待状态到就绪状态转换的原语是唤醒原语。

9.进程的互斥:一组并发进程中的一个或者多个程序段,因共享一共有资源而导致它们必须以一个不允许交叉执行的单位执行。

进程的同步:把异步环境下的一组并发进程因制约而互相发送消息而进行互相合作,互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程之间互相发送的消息称为消息或事件。

死锁的定义:各进程在使用系统资源时,应注意系统产生死锁 问题。所谓死锁,是指个并发进程互相等待对方拥有的资源,且这些并发进程对方的资源之前不会释放自己拥有的资源。从而造成大家都想得到资源而又都得不到资源,各并发进程不能向前推进的状态。


10.死锁的起因:是并发进程的资源竞争。产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数;

11.产生死锁的必要条件:(1)互斥条件。并发进程所要求和占有的资源是不能同时被两个以上的进程使用或操作;(2)不可剥夺条件。进程在所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放(3部分分配。进程每次申请它需要的一部分资源,在等待新资源的同时,继续占用已分配的资源。(4)存在一种进程循环链,链中的每一个进程已获得的资源同时被下一个进程请求。显然,只要使上述4个必要条件中的某一个不满足时,死锁就可以消除。

12.解决死锁的方法:一般可以分为预防,避免,检测和恢复3种。死锁避免:可被称为动态预防,因为采用动态分配资源,在分配的过程中预测出死锁发生的可能性并加以避免的方法。系统处于死锁状态一定没有安全序列。

为了减少进程的切换和创建的开销,提高执行效率和节省资源,人们开始在操作系统中引入“线程”的概念。


13.线程是进程的一部分,线程也是CPU调度的一个本单位。

14.进程和线程的区别:线程的改变之只代表了CPU执行过程的改变,而进程所拥有的资源并没有发生变化;或者说,除CPU外,计算机内的软件硬件资源的分配与线程无关,线程只能共享它所属进程的资源。·

猜你喜欢

转载自blog.csdn.net/ranguangrong/article/details/88375686
今日推荐