引言
经典面试问题:线程和进程的区别
进程的定义和特征
定义
一般情况下,我们把进程实体就简称为进程。
进程实体由程序段,相关的数据段和PCB(进程控制块)组成。
是系统进行资源分配和调度的一个独立单位。
(出自《计算机操作系统》(第四版)西安科技大学出版社出版)
特征
- 动态性:由创建而产生,由调度而执行,由撤销而消亡。
- 并发性:多个进程实体同时存在于内存中。
- 独立性:进程实体作为一个能独立运行、独立获得资源和独立接受调度的基本单位
- 异步性:进程是按异步方式运行的,即各自独立。
线程的概念
作为调度和分派的单位
线程和进程的比较
- 调度的基本单位:在引入线程的OS中(现在的window和linux都有线程了),仅把线程作为调度和分派的基本单位,所以线程是能独立运行的单位。线程切换时仅保留和设置少量寄存器,切换代价远低于进程。同一进程中,线程的切换不会导致进程的切换,但不同进程中的线程切换会导致进程的切换。
- 并发性:线程和进程都能并发执行。
- 进程作为系统中拥有资源的一个基本单位,而线程仅拥有一点必不可少、能用于保证独立运行的资源。但线程能共享所属进程所拥有的资源,如文件、信号量、I/O设备等。
- 独立性:进程的独立性高于同一进程中线程的独立性。这是因为操作系统为了防止进程彼此干扰和破坏,各自拥有一个独立的地址空间和其他资源。而同一进程中的线程则共享进程的内存地址空间和资源。
- 系统开销:即对系统资源的消耗,如内存、I/O设备、文件等。显然进程消耗远大于线程。
- 支持多处理机系统:即把当前进程中不同的线程分配给不同的处理机。所以多处理机操作系统中都引入了多线程。
浙公网安备 33010602011771号