02.第二章 进程管理.pptx

  • 进程的概念
  • 进程的结构和特征
  • 进程与线程

什么是进程

进程(Process)是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分调度的一个独立单位

进程的结构

  • 控制块(PCB,Process Control Block)——新建进程是创建,常驻内存,是进程唯一标识,OS根据PCB来对进程进行控制和管理
  • 数据段——在数据区,存储变量和进程期间使用的动态分配的内存,堆栈区域存储指令和本地变量
  • 程序段——存放在文本区域,存储执行代码,可被多个进程共享

    进程的特点

  • 动态性

  • 并发性
  • 独特性
  • 异步性

    什么是线程

    线程(Thread)是运行在进程中的执行路径,是操作系统运算调度的最小单位。一个进程可以有多个线程,统一进程中的多个线程共享进程资源。线程与进程相比,降低了创建、撤销和切换的成本和难度。

线程与进程对比

  • 调度——线程是独立调度的基本单位,进程是资源分配的基本单位
  • 资源——线程不拥有资源,一个进程的多个线程共享进程资源
  • 并发性——线程提高OS的并发性能
  • 系统开销——创建、撤销进程,需要分配、回收相关资源,开销大;切换线程开销相对小。
  • 地址空间和其他资源——进程间的地址空间互相对立;同一进程中的多线程共享进程资源
  • 通信——多进程之间通信需要同步或互斥手段,线程可以通过多义性数据段进行通信。同一进程多线程通信更易实现

    线程的实现方式

  • 用户级线程(ULT,User Level Thread)—— 线程管理在用户空间由应用程序完成,内核感受不到线程成长,应用程序中通过线程库创建新的线程

  • 内核级线程(KLT,Kernel Level Thread)——线程管理在内核空间由内核完成,由内核内部需要进行创建和撤销,应用程序通过一个内核级线程的编程接口访问线程,内核为进程及其内部线程维护上下文信息,需要内核参与来完成线程调度

image.png

多线程模型

  • 多对一 —— 多个用户线程对应一个内核线程,线程在用户空间进行管理,切换调度高效。若一个线程使内核服务阻塞,整个进程阻塞。
  • 一对一 —— 每个用户线程对应一个内核线程,并发能力较强,一个线程阻塞不会影响其他线程。内核线程创建较多,影响性能。
  • 多对多 —— 多个用户线程对应多个内核线程,克服多对一、一对一的缺点