进程与线程,进程与程序及作业的区别和联系
转⾃:, ,
程序的定义:程序是指令的有序集合。是⼀个在时间上按照严格次序前后相继的操作序列。
进程的定义:可并发执⾏的程序在数据集上的⼀次执⾏过程。指在系统中正在运⾏的⼀个应⽤程序,是系统资源分配的基本单位。
区别与联系:
(1)程序是永存的;进程是暂时存在的。即进程是有⽣命周期的,创建,执⾏,撤销等
(2)程序是静态的观念,进程是动态的观念
(3)⼀个程序可对应多个进程; ⼀个进程可以执⾏⼀个程序或多个程序
(4)进程具有并发性,⽽程序没有
(5)进程是竞争计算机资源的基本单位,程序不是
1)进程是程序及其数据在计算机的⼀次运⾏活动,是⼀个运⾏过程,是⼀个动态的概念。进程的运⾏实体是程序,离开程序的进程没有存在的意义。⽽程序是⼀组有序的指令集合,是⼀种静态概念。
2)进程是程序的⼀次执⾏过程,它是动态地创建和消亡的,具有⼀定的⽣命周期,是暂时存在的;⽽程序则是⼀组代码的集合,它是永久存在的,可长期保存。
3)⼀个进程可以执⾏⼀个或⼏个程序,⼀个程序也可以构成多个进程。进程可以创建进程,⽽程序不能形成新的程序。
4)进程和程序的组成不同。从静态⾓度看,进程由程序、数据和进程控制块(PCB)三部分组成。⽽程序是⼀组有序的指令集合。
作业指⽤户在⼀次解决或是⼀个事务处理过程中要求计算机系统所做的⼯作的集合。作业由三部分组成,即程序、数据和作业说明书。⼀个作业可以包含多个程序和多个数据集。在执⾏⼀个作业可能会运⾏多个不同的进程。
线程(thread)是进程内相对独⽴的可执⾏单元,所以也被称为轻量进程(lightweight processes);是操作系统进⾏任务调度的基本单元。它与⽗进程的其它线程共享该进程所拥有的全部代码空间和全局变量,但拥有独⽴的堆栈(即局部变量对于线程来说是私有的)。
进程与线程的联系:
⼀个进程⾄少拥有⼀个线程——主线程,也可以拥有多个线程;⼀个线程必须有⼀个⽗进程。多个进程可以并发执⾏;⼀个线程可以创建和撤销另⼀个线程;同⼀个进程中的多个线程之间可以并发执⾏。
进程与线程的区别:
系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显⼤于创建或撤消线程时的开销
进程通信方式
资源管理:进程有独⽴的地址空间,⼀个进程崩溃后,在保护模式下不会对其它进程产⽣影响,⽽线程只是⼀个进程中的不同执⾏路径。线程有⾃⼰的堆栈和局部变量,但线程之间没有单独的地址空间,⼀个线程死掉就等于整个进程死掉,所以多进程的程序要⽐多线程的程序健壮,但在进程切换时,耗费资源较⼤,效率要差⼀些。但对于⼀些要求同时进⾏并且⼜要共享某些变量的并发操作,只能⽤线程,不能⽤进程。
通信⽅式:进程间通信主要包括管道、系统IPC(包括消息队列,信号量,共享存储)、SOCKE,进程间通信其实是指分属于不同进程的线程之间的通讯,所以进程间的通信⽅法同样适⽤于线程间的通信。但对应归于同⼀进程的不同线程来说,使⽤全局变量进⾏通信效率会更⾼。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。