您的位置:首页 > 其它

进程和线程的区别

2016-12-23 16:52 239 查看

进程和线程的概念

进程概念

  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统资源分配和调度的一个独立单位。我们PC上面的很多应用程序运行时都会创建一个进程,可以在任务管理器中查看:

          


          

  线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所要完成的任务,那么线程表示完成该任务的许多可能的子任务之一。举个例子:假设用户启动了github客户端,则操作系统就相应的为其创建了一个进程。假设用户需要在github上同步一个repository A,这是一个子任务;在同步的过程中,用户又想修改另一个responsitory B的内容,这又是一个子任务。这样,操作系统则把每一个请求——同步responsitory A 和删除responsitory B表示为github客户端进程中的独立的线程。线程可以在处理器上独立的调度执行,这样,在多处理器环境下就允许几个线程各自在单独处理器上进行。操作系统提供线程是为了方便而有效的实现这种并发性。



进程和线程的区别与联系

         


调度:线程是独立调度的基本单位,进程是资源拥有的基本单位

拥有资源:进程是拥有资源的基本单位,而线程不拥有系统资源(也有一些必不可少的资源,如上图中的程序计数器,寄存器等等),但线程可以访问其隶属进程的系统资源

并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且多个线程之间也可以并发执行,从而使操作系统具有更好的并发性

系统开销:进程开销很大,(1)创建或销毁时,操作系统都要为之分配或回收资源,如内存空间,I/O设备等,因此操作系统所付出的开销远大于创建或撤销线程时的开销;(2)在进程切换时,涉及到当前执行进程的CPU环境的奥村以及新调度到进程CPU环境的配置。而线程切换时只需要保存和设置少量寄存器的内容,开销很小

<
90f4
li>地址空间和其他资源(如打开的文件):进程的地址空间之间相互独立,同一进程的各线程之间相互独立,同一进程之间的各线程共享进程的资源,某进程内的线程对于其他进程不可见

通信方面:进程间通信需要同步/互斥手段的帮助,线程间可以直接读/写程序数据来通信

总结

  操作系统引入进程的目的:是为了使多个程序并发执行,以改善资源利用率以及提高系统的吞吐量。而引入线程的目的:为了减小程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。

  操作系统的最终目的是能够尽可能的实现最大程度的并行,同时又尽量减少系统开销。由于进程需要占用操作系统资源,所以对进程的切换必然会引入较大的系统开销,因此,才产生的线程的概念——将分配资源的基本单位(进程)和调度的基本单位(线程)分开。使得同一进程内的线程轻装上阵,它们可以共享进程的资源,同时每个线程只拥有少量的资源(如程序计数器,一组寄存器和栈)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: