操作系统-线程及其实现
文章发布时间:
最后更新时间:
最后更新时间:
线程及其实现(欠 多线程的实现)
引入多线程的动机
线程是基于进程之上,一个进程可以有多个线程。
进程之间切换需要更多系统资源(上方)(1+2 3+4)
单线程结构有:
-
进程切换开销大(2个进程 1个进程两个线程)
-
通信代价大
-
并发性粒度(选中的最小单位)较粗,并发度不高
-
不适应并行计算(同时多个基本单位)和分布式(多个节点)计算
-
不适合客户/服务器的要求
并发多线程程序优点:
- 快速线程切换
- 减少系统开销
- 通信易于实现
- 并行程度提高
- 节省主存空间
多线程环境中的进程和线程
概念
线程为了减少程序并发执行的时空开销。使并发粒度更细,并发性更好。
进程作为系统分配和保护的独立单位,不需要频繁切换;
线程作为系统调度和分派的基本单位,能轻装运行,会被频繁的调度和切换。
状态
线程状态有:运行,就绪和阻塞。
状态转换类似进程。
**挂起状态对线程没有意义。**如果进程挂起后被对换出主存,则线程会被一起对换。
线程管理和线程库
多线程技术利用线程库提供线程原语集来支持多线程运行。
线程组织
(提及但没有详细讲,一笔带过)
线程组织方式共分如下三种:
- 调度员-工作者模式
- 组模式
- 流水线模式
线程的管理
线程的管理提供了一组API:
- 孵化:创建线程
- 封锁:阻塞线程
- 活化:恢复线程
- 结束:撤销线程