进程与线程之*定义*及*区别*

来源:互联网 发布:数控编程案例 编辑:程序博客网 时间:2024/06/09 20:30

进程与线程的定义及区别

一、进程
1.概念及理解:一个运行着一个或多个线程的地址空间和这些线程所需要的系统资源(机器指令,数据,堆栈等)称其为进程。ps:个人理解:一个程序执行起来的一个过程就为进程。是系统分配资源和调度的基本单位。
linux系统中会在进程之间共享程序代码和系统函数库,所以在内存中只有代码的一份副本。
2.进程的状态:进程一般有三种状态:运行,阻塞,挂起。进程拥有唯一的标识符:PCB
3.进程的四种特性
1.动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。
2.并发性:任何进程都可以同其他进程一起并发执行。
3.独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
4.异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
进程建后,操作系统会给每个进程分配4G的虚拟地址空间
这里写图片描述
二、线程
1.概念:线程:进程中的一条执行序列。轻量级的进程。它由:ID 当前指令指针(pc),寄存器和堆栈组成。它共享进程之间:全局变量(代码段),数据段,堆,打开的文件描述符,信号等。下面用图示来表示:这里写图片描述
由于线程是最小的调度单元:所以一个进程中最少有一个主线程。
由于线程之间共享进程的代码段,数据段,堆,文件描述符,信号等,所以线程之间的通信需要同步。

三、线程和进程之间的区别
1**.调度**:引入线程的操作系统,把线程作为调度的基本单位,进程只是拥有资源的基本单位,同一个进程之间的线程进行切换,不会引起进程的切换,就避免了进行对此系统调用,从而减少了系统的开销。

2.并发性:线程之间也可以并发,从而可以提高系统的吞吐量。

3.拥有的资源:进程是拥有资源的独立单位,线程只是共享进程中的数据段,代码段,堆,打开的文件描述符以及信号等。只能访问,不是拥有。
4.独立性:在同一进程不同线程之间的独立性要比不同进程之间低的多,每个进程都有独立的地址空间和其他资源,不允许其他进程访问,但线程之间公享进程的地址空间和资源,所以每个线程都可以访问自己可访问的进程中的资源。

5.系统的开销: 由于在创建个销毁进程的时候,要进行分配资源和回收资源,如内存空间,I/O设备。因此操作系统创建线程比的开销显著的小于进程的创建与习销毁。在进程切换的时候,涉及到当前整个cpu环境的保存以及设置被调度的进程的cpu环境,而线程的操作只涉及到保存少量寄存器的内容,并不涉及到存储管理方面的操作。可见线程的创建及销毁,以及切换,比进程的系统开销小的多。

6.支持多处理机系统:
可加速进程的完成和执行速度,同一个进程中的不同线程可在不同的处理机上运行,使他们并行执行。

原创粉丝点击