操作系统-线程及其实现

文章发布时间:

最后更新时间:

线程及其实现(欠 多线程的实现)

引入多线程的动机

线程是基于进程之上,一个进程可以有多个线程。
进程之间切换需要更多系统资源(上方)(1+2 3+4)
单线程结构有:

  • 进程切换开销大(2个进程 1个进程两个线程)

  • 通信代价大

  • 并发性粒度(选中的最小单位)较粗,并发度不高

  • 不适应并行计算(同时多个基本单位)和分布式(多个节点)计算

  • 不适合客户/服务器的要求

并发多线程程序优点:

  • 快速线程切换
  • 减少系统开销
  • 通信易于实现
  • 并行程度提高
  • 节省主存空间

多线程环境中的进程和线程

概念

线程为了减少程序并发执行的时空开销。使并发粒度更细,并发性更好。
进程作为系统分配和保护的独立单位,不需要频繁切换;
线程作为系统调度和分派的基本单位,能轻装运行,会被频繁的调度和切换。

状态

线程状态有:运行,就绪和阻塞。
状态转换类似进程。
**挂起状态对线程没有意义。**如果进程挂起后被对换出主存,则线程会被一起对换。

线程管理和线程库

多线程技术利用线程库提供线程原语集来支持多线程运行。

线程组织

(提及但没有详细讲,一笔带过)

线程组织方式共分如下三种:

  1. 调度员-工作者模式
  2. 组模式
  3. 流水线模式

线程的管理

线程的管理提供了一组API:

  • 孵化:创建线程
  • 封锁:阻塞线程
  • 活化:恢复线程
  • 结束:撤销线程