进程与线程
💡
原文约400字/词,阅读约需2分钟。
📝
内容提要
文章讨论了操作系统中的地址空间和线程状态。地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。线程状态包括活动、阻塞和准备,强调了公平性及线程调度的合作与抢占方式。
🎯
关键要点
- 地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。
- 栈段用于存储函数参数和局部变量,数据段用于存储全局数据,文本段只读且存储机器代码。
- 线程状态包括活动、阻塞和准备,活动状态表示线程正在CPU上执行,阻塞状态表示线程在等待事件,准备状态表示线程可以立即激活。
- 每个CPU在任何时刻最多只能有一个活动线程,只有准备状态的线程可以获得CPU资源。
- 公平性原则要求每个线程获得合理的CPU时间,任何线程都不能独占CPU。
- 线程调度分为合作式和抢占式,合作式调度由线程自行决定何时让出控制权,抢占式调度由调度程序控制任务的切换。
- 合作式调度的切换开销低,但可能导致任务挂起,而抢占式调度的切换开销高,但能避免任务挂起。
❓
延伸问答
地址空间的组成部分有哪些?
地址空间由栈段、数据段和文本段组成,分别用于存储局部变量、全局数据和机器代码。
线程的不同状态是什么?
线程的状态包括活动、阻塞和准备,活动状态表示线程正在执行,阻塞状态表示等待事件,准备状态表示可以立即激活。
什么是线程调度的合作式和抢占式?
合作式调度由线程自行决定何时让出控制权,而抢占式调度由调度程序控制任务的切换。
线程调度的公平性原则是什么?
公平性原则要求每个线程获得合理的CPU时间,任何线程都不能独占CPU。
活动状态的线程有什么特点?
活动状态的线程表示正在CPU上执行,每个CPU在任何时刻最多只能有一个活动线程。
合作式调度和抢占式调度的优缺点是什么?
合作式调度切换开销低,但可能导致任务挂起;抢占式调度切换开销高,但能避免任务挂起。
➡️