Drows

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

引言

经典面试问题:线程和进程的区别

进程的定义和特征

定义

一般情况下,我们把进程实体就简称为进程。
进程实体由程序段相关的数据段PCB(进程控制块)组成。
是系统进行资源分配和调度的一个独立单位。
(出自《计算机操作系统》(第四版)西安科技大学出版社出版)

特征

  1. 动态性:由创建而产生,由调度而执行,由撤销而消亡。
  2. 并发性:多个进程实体同时存在于内存中。
  3. 独立性:进程实体作为一个能独立运行、独立获得资源和独立接受调度的基本单位
  4. 异步性:进程是按异步方式运行的,即各自独立。

线程的概念

作为调度和分派的单位

线程和进程的比较

  1. 调度的基本单位:在引入线程的OS中(现在的window和linux都有线程了),仅把线程作为调度和分派的基本单位,所以线程是能独立运行的单位。线程切换时仅保留和设置少量寄存器,切换代价远低于进程。同一进程中,线程的切换不会导致进程的切换,但不同进程中的线程切换会导致进程的切换。
  2. 并发性:线程和进程都能并发执行。
  3. 进程作为系统中拥有资源的一个基本单位,而线程仅拥有一点必不可少、能用于保证独立运行的资源。但线程能共享所属进程所拥有的资源,如文件、信号量、I/O设备等。
  4. 独立性:进程的独立性高于同一进程中线程的独立性。这是因为操作系统为了防止进程彼此干扰和破坏,各自拥有一个独立的地址空间和其他资源。而同一进程中的线程则共享进程的内存地址空间和资源。
  5. 系统开销:即对系统资源的消耗,如内存、I/O设备、文件等。显然进程消耗远大于线程。
  6. 支持多处理机系统:即把当前进程中不同的线程分配给不同的处理机。所以多处理机操作系统中都引入了多线程。
posted on 2021-07-15 21:36  Drows  阅读(212)  评论(0)    收藏  举报