操作系统精髓与设计原理(三)——线程、对称多处理和微内核

线程和进程

线程是资源分配的基本单位、线程是调度的基本单位

进程的概念包括两个特点:

  • 资源所有权:一个进程包括一个存放进程映像的虚拟地址空间,进程映像是程序、数据、栈和进程控制块中定义的属性的集合。一个进程拥有对资源的控制权和所有权,操作系统保护进程之间的资源不起冲突。
  • 调度/执行:一个进程具有一个执行状态和一个分配的优先级,并且是一个可被操作系统调度和分派的实体。

为了区分上面两个特点,分派的单位通常称作线程轻量级进程,而拥有资源所有权的单位通常称作进程任务

多线程

多线程是指操作系统在单个进程内支持多个并发执行路径的能力。
每个线程有:

  • 线程执行状态;
  • 在未运行时保存的线程上下文;线程可以被看作进程内的一个被独立地操作地程序计数器;
  • 一个执行栈;
  • 用于每个线程局部变量地静态存储空间;
  • 与进程内的其他线程共享的对进程的内存和资源的访问。

进程中的所有线程可以共享该进程的状态和资源。

线程的优点:

  • 比创建一个新进程耗时短;
  • 终止一个线程比终止一个进程耗时短;
  • 线程切换比进程切换耗时短;
  • 提高不同程序间的通信的效率。

线程特性

线程状态:

  • 派生:当派生一个新进程的时候,也为其派生了一个线程。
  • 阻塞
  • 接触阻塞
  • 结束

线程同步
多个线程同时获取一处资源造成的影响。可以加锁。

用户级和内核级线程

线程可以分为这两种。
纯用户级线程软件中,所有线程管理工作由应用程序完成。
用户级线程的优点:

  • 所有线程数据结构都在用户地址空间,不需要转化为内核态特权,节省了两次状态转换的开销。
  • 应用程序量身定做调度算法。
  • 跨平台性。

纯内核级线程中软件中,所有线程管理的工作都是由内核完成,应用程序没有线程管理的代码。
上面二者可以进行组合。

对称多处理

在**多对称崇礼系统(SMP)**中, 内核可以在任何处理器上执行,并且通常是每个处理器可用的进程或线程池中自己的调度工作。
在这里插入图片描述
SMP关键问题:

  • 同时的并发进程或线程
  • 调度
  • 同步
  • 存储管理
  • 可靠性和容错性

微内核

微内核是一个小型的操作系统核心,它为模块化扩展提供基础。
微内核的基本原理:只有最基本的操作系统功能才放在内核中。
在这里插入图片描述
优点:

  • 一致接口
  • 可扩展性
  • 灵活性
  • 可移植性
  • 可靠性
  • 分布式系统支持
  • 适用于面向对象操作系统环境
原文地址:https://www.cnblogs.com/lippon/p/14117720.html