进程与线程的区别
1.引入的目的:
引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量。
引入纯种的目的,是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。
2.属性:
未引入线程时,传统的进程有两个属性:独立拥有资源和独立调度分派。引入线程后,这两个属性分离开,成为:
进程是可以独立拥有资源的基本单位。
线程是可以独立调度和分派的基本单位。
所以传统的进程相当于只有一个线程的任务。
3.并发性:
引入线程后的操作系统,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,也可并发执行。
从而使操作系统有更好的并发性,更有效地使用系统资源和提高系统吞吐量。
3.拥有资源:
线程不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。
而进程拥有系统资源,是拥有资源的一个独立单位。一个进程的系统资源可供同一进程的其它所有线程共享。
4.系统开销:
创建进程时系统开销显著大于创建线程时的系统开销。
因为在创建进程时,系统要为之分配或回收资源,如内存空间,I/O设备等。
进程切换的开销也远大于线程切换的开销。
因为进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。
而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。
1.引入的目的:
引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量。
引入纯种的目的,是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。
2.属性:
未引入线程时,传统的进程有两个属性:独立拥有资源和独立调度分派。引入线程后,这两个属性分离开,成为:
进程是可以独立拥有资源的基本单位。
线程是可以独立调度和分派的基本单位。
所以传统的进程相当于只有一个线程的任务。
3.并发性:
引入线程后的操作系统,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,也可并发执行。
从而使操作系统有更好的并发性,更有效地使用系统资源和提高系统吞吐量。
3.拥有资源:
线程不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。
而进程拥有系统资源,是拥有资源的一个独立单位。一个进程的系统资源可供同一进程的其它所有线程共享。
4.系统开销:
创建进程时系统开销显著大于创建线程时的系统开销。
因为在创建进程时,系统要为之分配或回收资源,如内存空间,I/O设备等。
进程切换的开销也远大于线程切换的开销。
因为进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。
而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。