进程与线程

💡 原文约400字/词,阅读约需2分钟。
📝

内容提要

文章讨论了操作系统中的地址空间和线程状态。地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。线程状态包括活动、阻塞和准备,强调了公平性及线程调度的合作与抢占方式。

🎯

关键要点

  • 地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。
  • 栈段用于存储函数参数和局部变量,数据段用于存储全局数据,文本段只读且存储机器代码。
  • 线程状态包括活动、阻塞和准备,活动状态表示线程正在CPU上执行,阻塞状态表示线程在等待事件,准备状态表示线程可以立即激活。
  • 每个CPU在任何时刻最多只能有一个活动线程,只有准备状态的线程可以获得CPU资源。
  • 公平性原则要求每个线程获得合理的CPU时间,任何线程都不能独占CPU。
  • 线程调度分为合作式和抢占式,合作式调度由线程自行决定何时让出控制权,抢占式调度由调度程序控制任务的切换。
  • 合作式调度的切换开销低,但可能导致任务挂起,而抢占式调度的切换开销高,但能避免任务挂起。

延伸问答

地址空间的组成部分有哪些?

地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。

线程的不同状态是什么?

线程的状态包括活动、阻塞和准备,活动状态表示线程正在执行,阻塞状态表示等待事件,准备状态表示可以立即激活。

什么是线程调度的合作式和抢占式?

合作式调度由线程自行决定何时让出控制权,而抢占式调度由调度程序控制任务的切换。

线程调度的公平性原则是什么?

公平性原则要求每个线程获得合理的CPU时间,任何线程都不能独占CPU。

活动状态的线程有什么特点?

活动状态的线程表示正在CPU上执行,每个CPU在任何时刻最多只能有一个活动线程。

合作式调度和抢占式调度的优缺点是什么?

合作式调度切换开销低,但可能导致任务挂起;抢占式调度切换开销高,但能避免任务挂起。

➡️

继续阅读