作业系统L4-执行绪

Process VS Thread

行程:

适合一次最多一个工作(unix shell)

优点:
缺点:
  • 不同行程不会共享记忆体
  • 行程间一部份停止,整个行程会一起停
  • 行程创建和内容转换经济成本高
  • 可扩展性低

执行绪:

适合一次可多个工作

平行(Parallelism)VS并行(Concurrency)

平行(Parallelism)

  • 资料平行(data parallelism):每个核心执行相同操作
  • 任务平行(task parallelism):每个核心执行不同操作

并行(Concurrency)

优点:
  • 应答:程序一部份停止,其他部分能持续运作
  • 资源分享:执行绪间公用行程资源,比共用记忆体和讯息分享还快
  • 经济:比行程便宜
  • 可扩展性:可让不同CPU平行执行
缺点:

User Thread VS kernel Thread

User Thread

使用者层次
  • 三种主要执行绪程序库:
    • POSIX Pthreads
    • Win32执行绪
    • Java执行绪
优点:
  • 管理较快,成本低
缺点:
  • 行程中的某个Thread停止,整个行程会停下

kernel Thread

kernel管理
优点:
  • 行程中的某个Thread停止,整个行程不会停下
缺点:

管理较慢,成本高

多对一

优缺点同於User Thread

一对一

优缺点同於 kernel Thread

多对多

许多使用者执行绪对应到许多核心执行绪

二层模式

和多对多相似,但允许一个使用者执行绪被绑到核心执行绪

隐式执行绪(Implicit Threading)

执行绪池(Thread Pool)

先产生一些执行绪放入池中,等待工作
  • 现成的 Thread,执行较快
  • Thread数目限於pool
  • 执行和产生分开

OpenMP

  • 可在共用记忆体下的平行资源

Grand Central Dispatch

区块放入分派伫列
  • 串列:每一个行程有自己的串列伫列,称为主伫列
  • 并行:FIFO的顺序移除,但一次可以移除数个

信号(signal)

通知行程,一个特殊的事件已经发生了,预设信号处理器(default signal handler)处理信号

目标执行绪(target thread)

被取消的执行绪,执行绪抵达取消点(cancellation point),後清除处理器(cleanup handle)会被呼叫
  • 非同步取消(asynchronous cancellation)立即终止目标执行绪
  • 延迟取消(deferred cancellation)允许目标执行绪周期地检查它

执行绪的局部储存(Thread-local storage , TLS)

  • 允许每一个执行绪有自己的资料拷贝

排班程序活化作用

轻量级行程(lightweight process, LWP)


<<:  作业系统L3-行程

>>:  作业系统L5-行程排班

Day 21:「爸爸说,家里要重新装潢了」- 关於样式的属性绑定讲解

兔女鹅: 「爸爸,兔兔昨天讲的好难」 「有一大堆东西要记起来,要学不动了 QQ」 兔跋: 「一定是...

Forti是否可做到快速收拢?

想问一下 有从fortianalyzer收集到的log 是否可以用相关tools快速收拢 转换成po...

Day13 - 画布操作与编制复杂图形3

创建多张画布 如果要有遮色效果或者两个图层不想互相被干预可以考虑增加内部画布去让自己操作比较能够好处...

《赖田捕手:追加篇》第 32 天:快速回覆 QuickReply 介绍

第 32 天:快速回覆 QuickReply 介绍 对其他人来说也许没什麽,但对他而言这可真是不容易...

[Day - 07] - Spring Component 元注解运作及原理

Abstract Component为一个Spring中给许多模式注解进行声明式配置的注解(Anno...