20170327_请说出线程与进程的区别与联系
1、线程与进程的概念:
进程的概念:
(1)进程,是并发执行的程序在执行过程中分配和管理操作系统资源的基本单位,是一个动态的概念,它是竞争计算机系统资源的基本单位。
(2)每一个进程都有自己的地址空间,即进程空间,而进程空间的大小只与处理机的位数有关。一个16位长的处理机的进程空间大小是216字节,32位长的处理机的进程空间大小是232字节。
(3)进程有五个基本状态,分别是:初始状态、就绪状态、执行状态、阻塞状态、终止状态。
线程的概念:
(1)在多用户情况下,一个服务器通常需要接收大量的且不确定数量的用户的并发请求,操作系统为每一个请求都建立一个进程显然是行不通的(无论是从系统资源的开销方面,还是响应用户请求的效率方面来看)。因此,操作系统中线程的概念便被引出来了。(2)线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程,有时候又被称之为轻量级进程,它也是CPU调度的一个基本单位。
2、线程与进程的区别与联系:
(1)进程的执行过程是线状的,尽管中间会发生中断或暂停,但是该进程所拥有的系统资源只为该线状的执行过程服务。一旦发生进程的上下文切换,这些资源都是要被保护起来的。这是进程在宏观上的执行过程。
(2)进程又可以划分为单线程进程和多线程进程两种。顾名思义,单线程进程是指该进程不含有线程,多线程进程是指该进程至少含有一个线程。
(3)我们知道,进程是由 进程控制块PCB、相关程序段和该程序段进行操作的数据结构集三个部分组成。
单线程进程的执行过程在宏观上是线性的,微观上也是只有单一的执行过程。
而对于多线程进程,它在宏观上的执行过程同样是线性的,但在微观上却可以有多个线程的执行操作。
(4)线程的改变,只代表了CPU执行过程的改变,而进程所拥有的系统资源并没有发生改变。
除了CPU之外,计算机内的软硬件资源的分配都与线程无关,线程只能共享它所属的进程的资源。
(5)与进程控制块相对应,线程也有一个线程控制块TCB,而这个TCB中所保存的线程状态信息要比PCB中所保存的进程状态信息少得多。
(6)进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在。
反之,线程是进程的一部分,没有自己独立的地址空间,线程与进程内的其他线程一起共享操作系统分配给该进程的所有资源。
(7)线程可以有效的提高系统的执行效率,但并不是在所有计算机系统中都是适用的,比如某些很少做进程调度和切换的实时系统。
使用线程的好处是:有多个任务需要处理机处理时,可以减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销都比进程要小得多。最适合使用线程的系统是多处理机系统、网络系统或分布式系统。
3、简述 进程和线程的区别:
(1)一个程序至少有一个进程,一个进程至少有一个线程。
(2)线程的划分尺度是小于进程的,使得多线程程序的并发性较高。
(3)进程在执行过程中拥有独立的内存单元。而该进程的多个线程则共享操作系统为该进程分配的内存单元,从而极大地提高了程序的运行效率。
(4)线程在执行过程中与进程是有区别的。
- 每个独立的线程都有一个程序运行的入口、顺序执行序列和程序的出口。
- 但是,线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程的执行控制。
- 从逻辑角度来看,多线程的意义在于,一个应用程序中,有多个执行部分可以同时执行。
- 但是,操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。