2022年2022年进程线程的概念 .pdf
《2022年2022年进程线程的概念 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年进程线程的概念 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、提起程序这个概念,大家再也熟悉不过了,程序与进程概念是不可分的。程序是为了完成某项任务编排的语句序列,它告诉计算机如何执行,因此程序是需要运行的。程序运行过程中需要占有计算机的各种资源才能运行下去。如果任一时刻,系统中只有一道程序,即单道程序系统,程序则在整个运行过程中独占计算机全部资源,整个程序运行的过程就非常简单了,管理起来也非常容易。就象整个一套房子住了一个人,他想看电视就看电视,想去卫生间就去卫生间,没人和他抢占资源。但为了提高资源利用率和系统处理能力,现代计算机系统都是多道程序系统,即多道程序并发执行。程序的并发执行带来了一些新的问题,如资源的共享与竞争,它会改变程序的执行速度。就象
2、多个人同时住一套房子,当你想去卫生间的时候,如果此时卫生间里有人,你就得等待,影响了你的生活节奏。如果程序执行速度不当,就会导致程序的执行结果失去封闭性和可再现性,这是我们不希望看到的。因此应该采取措施来制约、控制各并发程序段的执行速度。由于程序是静态的,我们看到的程序是存储在存储介质上的,它无法反映出程序执行过程中的动态特性,而且程序在执行过程中是不断申请资源,程序作为共享资源的基本单位是不合适的,所以需要引入一个概念,它能描述程序的执行过程而且可以作为共享资源的基本单位,这个概念就是进程。进程的生命周期进程和人一样是有生命的,从诞生到死亡要经历若干个阶段。一般说来进程有三种状态:就绪、执行
3、、等待。由多种原因可以导致创建一个进程,例如一个程序从外存调入内存开始执行,操作系统就要为其创建进程,当然还可以有其它原因,如一个应用进程为完成一个特殊的任务,可以自己创建一个子进程。进程被创建后就是在内存中,处于就绪状态,所谓就绪状态就是具备除了CPU 之外的所有资源,万事具备,只欠东风,一旦占有了 CPU,就变成了执行状态,执行中如果需要等待外围设备输入数据,则进程就沦落为等待状态,操作系统又会从就绪状态队列中调度一个进程占有CPU。等到数据到来后,等待状态的进程又被唤醒成为就绪状态。这些状态的转换是通过进程控制原语实现的。程序的运行是通过进程体现的,操作系统对进程进行管理和控制,那么操作
4、系统怎么了解到进程的状态呢,怎么把资源分配给进程呢,而且进程做状态转换时CPU 现场保存在那呢?这要说到PCB(进程控制快)。PCB 是进程的唯一标志,在其中记录了进程的全部信息,它是一种记录型的数据结构,相当于进程的档案。操作系统就通过PCB 感知进程的存在,通过 PCB了解进程和控制进程的运行。PCB也是放在内存中的,如果PCB太大,有些系统把 PCB中一些不重要的信息放在外存中。进程执行速度的制约并发进程由于共享系统内部资源,因此导致进程执行速度上的制约,这种制约分为:间接制约与直接制约。间接制约引起进程之间的互斥执行,直接制约引起进程间的同步执行。例如一个家里如果只有一个卫生间,卫生间
5、这个公有资源使得每个人只能互斥使用它,这就是间接制约。而直接制约是指并发进程各自执行的结果互为对方的执行条件,例如司机与售票员的关系,当司机到站停车后,售票员才能开门,而只有售票员关门后,司机才名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 19 页 -能开车,他们之间是同步的。进程的互斥与同步可以很好的通过信号量和PV 原语来实现。通过读一些同步与互斥的例子,你会体会到PV原语的精妙,也会感到一种乐趣。并发进程的资源竞争不当还会导致死锁现象。从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所
6、谓的多任务,而如今的 Win32 操作系统却可以一边听音乐,一边编程,一边打印文档。理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了 Win32 多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来没有学习过嵌入式系统领域著名的操作系统VxWorks,但是立马就能在上面做开发,大概要归功于平时在Win32 多线程上下的功夫。因此,学习 Win32 多线程不仅对理解Win32 本身有重要意义,而且对学习和领会其它操作系统也有触类旁通的作用。进程与线程先阐述一下进程和线程的概念和区别,这是一个许多大学老师也讲不清楚的问题。进程(Process)
7、是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。线程(Thread)是进程的一个实体,是CPU 调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存
8、空间,当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。根据进程与线程的设置,操作系统大致分为如下类型:(1)单进程、单线程,MS-DOS 大致是这种操作系统;(2)多进程、单线程,多数UNIX(及类 UNIX 的 LINUX)是这种操作系统;(3)多进程、多线程,Win32(Windows NT/2000/XP 等)、Solaris 2.x和 OS/2都是这种操作系统;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 19 页
9、 -(4)单进程、多线程,VxWorks 是这种操作系统。在操作系统中引入线程带来的主要好处是:(1)在进程内创建、终止线程比创建、终止进程要快;(2)同一进程内的线程间切换比进程间的切换要快,尤其是用户级线程间的切换。另外,线程的出现还因为以下几个原因:(1)并发程序的并发执行,在多处理环境下更为有效。一个并发程序可以建立一个进程,而这个并发程序中的若干并发程序段就可以分别建立若干线程,使这些线程在不同的处理机上执行。(2)每个进程具有独立的地址空间,而该进程内的所有线程共享该地址空间。这样可以解决父子进程模型中,子进程必须复制父进程地址空间的问题。(3)线程对解决客户/服务器模型非常有效。
10、进程是计算机进行资源分配和独立运行的基本单位。3.1 进程的引入引入进程是为了使多道程序并发执行。1.程序的顺序执行一个程序通常由若干个程序段所组成,它们必须按照某种先后次序来执行,仅当前一个操作执行完后才能执行后继操作,这类计算过程就是程序的顺序执行过程。例如:先输入再计算 最后输出,即:I C P。程序顺序执行时的特征顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一个操作必须在下一个操作开始之前结束。封闭性:程序一旦开始运行,其执行结果不受外界因素影响。可再现性:只要程序执行时的初始条件和执行环境相同,当程序重复执行时,都将获得相同的结果。2.程序的并发执行名师资料总结-精品资料欢
11、迎下载-名师精心整理-第 3 页,共 19 页 -程序的并发执行是指若干个程序(或程序段)同时在系统中运行,这些程序(或程序段)的执行在时间上是重叠的,一个程序(或程序段)的执行尚未结束,另一个程序(或程序段)的执行已经开始。前驱图前驱图是一个有向无循环图,图中的每个结点可以表示一条语句、一个程序段或进程,结点间的有向边表示语句或程序段的执行次序。程序并发执行例进程 1、2、3 并发执行。对每个进程而言,其输入、计算和输出这三个操作必须顺序执行。它们之间存在如下先后关系:I1 先于 C1和 I2,C1先于 P1和 C2,P1 先于 P2 I2 和 C1,I3、C2和 P1 可以并发。与时间有关
12、的错误例程序并发执行时可能出现与时间有关的错误。例进程 1:r1=x;进程 2:r2=x;r1+;r2+;x=r1;x=r2;设在两进程运行之前,x 的值为 0。则两进程运行结束后,x 值可为:Bernstein 条件读集:语句执行期间要引用的变量集合,记为R(Si)=a1,am 写集:语句执行期间要改变的变量集合,记为W(Si)=b1,bn Bernstein 条件能保证两条相继的语句并发执行而不会产生与时间有关的错误:R(Si)W(Sj)=R(Sj)W(Si)=W(Si)W(Sj)=例考虑下面是条语句:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 19 页 -S1:a=x+
13、y S2:b=z+1 S3:c=a-b S4:d=c+1 R(S1)=x,y R(S2)=z R(S3)=a,b W(S1)=a W(S2)=b W(S3)=c 因 R(S1)W(S2)R(S2)W(S1)W(S1)W(S2)=,故 S1和 S2可以并发执行。因 R(S2)W(S3)R(S3)W(S2)W(S3)W(S2)=b,故 S2和 S3不能并发执行。并发语句的描述方式cobegin S1;S2;Sn;coend 对应的前驱图如右,其中S0和 Sn+1分别是 cobegin 和 coend 语句前后的两条语句。程序并发执行时的特征间断性:并发程序具有“执行-暂停-执行”这种间断性的活动规
14、律。失去封闭性:多个程序共享系统中的资源,这些资源的状态将由多个程序来改变,致使程序之间相互影响。不可再现性:在初始条件相同的情况下,程序的执行结果依赖于执行的次序。并发程序的其他特征资源分配动态性:多道程序在运行过程中可根据需要随时提出分配资源的请求。程序并发执行的相互制约:并发程序执行时相互影响,相互制约。其相互制约关系分为:直接制约:合作进程之间的相互制约。间接制约:因资源共享产生的相互制约。相互通信的可能:多个进程之间可能需要相互传递信息。同步与互斥的必要:并发进程之间需要调整相对执行速度,许多资源需要互斥使用。3.2 进程的概念为了描述并发执行程序的动态特性,人们引入了一个新的概念进
15、程。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 19 页 -1.进程的定义进程有多种定义,下面列举一些有代表性的定义:进程是可以并发执行的计算部分。进程是一个程序与其数据一道通过处理机的执行所发生的活动。进程是一个数据结构及在其上进行加工处理的过程。进程是一个可以高度独立的活动。进程是一个具有一定独立功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。进程的特征动态性:进程是程序的一次执行过程。动态性还表现为它因创建而产生,因调度而执行,因无资源而暂停,因撤消而消亡。而程序是静态实体。并发性:多个进程实体同时存在于内存中,能在一段时间内同时运行。独
16、立性:在传统OS中,进程是独立运行的基本单位,也是系统分配资源和调度的基本单位。异步性:也叫制约性,进程之间相互制约,进程以各自独立的不可预知的速度向前推进。结构性:进程实体由程序段、数据段及进程控制块组成,又称为进程映像。进程与程序的联系与区别进程是动态概念,程序是静态概念;进程是程序在处理机上的一次执行过程,而程序是指令的集合。进程具有并发性,但程序没有。进程是竞争处理机和资源的基本单位。不同进程可以包含同一个程序。进程可以创建新进程,而程序不能形成新程序。2.进程的基本状态运行状态:又称执行状态。当一个进程获得必要的资源并正在处理机上执行,此时进程所处的状态为运行状态。等待状态:又称阻塞
17、状态、睡眠状态。正在执行的进程,由于发生某事件而暂时无法执行下去(如等待输入/输出完成),此时进程所处的状态为的等待状态。这时即使把处理机分配给该进程,它也无名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 19 页 -法运行。就绪状态:进程已获得除处理机以外的所有资源,一旦分配了处理机就可以立即执行,此时进程所处的状态为就绪状态。新建状态和终止状态在许多系统中又增加了两种状态:新建状态:进程刚刚建立,但还未进入就绪队列。终止状态:当一个进程正常或异常结束,操作系统已释放它所占用的资源,但尚未将它撤消时的状态,又称退出状态。进程状态转换图状态转换的有关说明大多数状态不可逆转,如等待
18、不能转换为运行。状态转换大多为被动进行,但运行等待是主动的。一个进程在一个时刻只能处于上述状态之一。3.进程控制块进程控制块是用于描述和管理进程的数据结构。它是进程实体的一部分,操作系统通过PCB感知进程的存在,PCB是进程存在的唯一标志。进程控制块主要包括如下内容:进程标识信息处理机状态信息进程调度和状态信息进程控制信息进程标识信息进程标识信息用于标识一个进程。包括:进程名:通常为可执行文件名。进程标识符:唯一标识进程的整数.用户标识符:指示进程所属的用户。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 19 页 -父进程标识符和子进程标识符:描述进程家族关系。处理机状态信息处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年进程线程的概念 2022 进程 线程 概念
限制150内