#面试常见问题<一> 进程和线程的区别

。。。很常见的一个题目。。在这里写一个备忘贴。。。以便自己快速复习。。

首先进程是资源分配的基本单位,线程是cpu调度的基本单位。。。想必这只要是复习过的都会答上这点来。。。然而。。这还远远达不上面试官的要求。。那么如何答这个问题呢?

1. [资源分配的角度] 进程是资源分配的基本单位,线程是cpu调度的基本单位 。进程控制块(PCB)(可以扯扯PCB包含的内容。。?)是描述进程基本信息和运行状态。。

PCB一般包括:

1.程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是整形数字。

2.特征信息:一般分系统进程、用户进程、或者内核进程等。

3.进程状态:运行、就绪、阻塞,表示进程现在的运行情况。

4.优先级:表示获得CPU控制权的优先级大小。

5.通信信息:进程之间的通信关系的反映,由于操作系统会提供通信信道。

6.现场保护区:保护阻塞的进程用

7.资源需求、分配控制信息。

8.进程实体信息,指明程序路径和名称,进程数据在物理内存还是在交换分区(分页)中。

9.其他信息:工作单位,工作区,文件信息等 。

2.[系统开销]  创建或者撤销进程的时候,系统都要为之分配或者回收资源,例如内存空间或者io设备,在切换进程的时候涉及到当前执行进程运行环境的保存,和新调度进程的cpu环境的设定。而线程切换只涉及少量寄存器内容的保存和设置。

3.[通信方面]  线程间可以读取同一进程中的数据进行通信,而进程需要借助IPC。。

接下来的文章我会介绍一下进程通信和线程通信的优缺点

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容