进程和线程的区别

1、什么是进程(process)

书上给出的比较典型的原因有:

(1)进程是程序的一次执行

(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动

(3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配调度的一个独立单位

在引入进程实体的概念后,OS传统的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”

维基百科的解释分为狭义广义两种解释:

狭义的定义进程是正在运行的程序的实例

广义的定义进程是一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元。

PS:进程的概念主要有两点

第一进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量

第二进程是一个“执行中的程序”程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行时),他才能成为一个活动的实体,我们称其为进程

2、为什么要引入进程

解释一:在多道程序环境下,程序的执行属于并发执行,此时他们将失去其封闭性,并具有间断性,以及其运行结果在不可再现性的特征。由此,决定了通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以表述和控制,人们引入了“进程”的概念。

解释二:进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所以多道程序设计操作系统都建立在进程的基础上。

3、什么是线程

线程操作系统能够进行运算调度最小单位。它被包含在进程之中,是进程中实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每条线程并行执行不同的任务。在Unix系统中也被称为轻量级进程(Lightweight Processes),但轻量级进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,进行混合调度,如Windows 7的线程。

一个进程可以有很多线程,每条线程并行执行不同的任务。

在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。在单CPU单核的计算机上,使用多线程技术,也可以把程序中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。

在多线程中,线程是CPU的基本单位线程是程序执行流的最小单元

线程的适用范围

1、服务器的文件管理或通信控制。

2、前后台处理。

3、异步处理。

4、为什么要引入线程

解释一:

线程的引入:60年代,进程在OS中能拥有资源和独立运行的基本单位,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,创建、撤销与切换存在较大的时空开销,因此引入轻型进程;二是由于对称处理机出现,可以满足多个运行单位,而多个进程开销过大。因此在80年代,出现了能独立运行的基本单位--线程(Threads)。

解释二:

如果说在OS中引入进程的目的为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中在引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性

总的来说,引入线程的概念就是为了减少程序在并发执行时所付出的时空开销。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值