[聚合文章] Async Program 基本知识 (Process、Thread、Context Switch)

c# 2016-02-26 3 阅读

处理序 (Process): 作为隔离应用程式的基本单位

例如:开启了一个程式,载入记忆体后,运行的instantce 就叫 Proces。
每一个 Process 占用 memory section。 (包含程式以及相关资源)
隔绝了作业系统,但是共用了 CPU。

执行绪 (Thread): 是作业系统用来虚拟化 CPU的概念,切割 CPU时间的基本单位

一个 Process 有多个 Thread

然而现今的电脑可以同时执行的程式己经不会只有一个,而是 N 个。
即便CPU 是双核、四核、八核 等等(可同时处理 二个、四个、八个 Thread的工作)

但为了要做到很顺畅的运作,用户以为真的是同时间处理,
CPU 其实是会快速的来回在不同的 Thread,这行为称为 Context Switch

Context Switch: 在各 Thread 之间切换,当下 Thread 拥有CPU处理的时间称为「quantum」

其行为如下: 
(1) 把CPU 各暂存器的值,保存至目前Thread intern data structure。 
(2) 切至另外一个 Thread, 若处在不同的Process,还得再切换位址 (不同的memory section) 
(3) 切换后再把 intern data structure 放回暂存器。

资料来源:
http://huan-lin.blogspot.com/2015/01/new-book-net-async-programming.html

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。