多线程与虚拟进程

时间:2011-03-13 05:01:06

标签: multithreading process operating-system virtual

有三种类型的控制流模型, 单线程,虚拟进程和多线程进程。 这是我学习形式的权力点所写的内容

  

虚拟流程。这基于a   单线程模型,但给出了   并发执行的外观。一个   控制器组件安排   执行其他组件和   让他们控制。调度可以   定期或基于   事件。这个模型基于a   中的活动的逻辑分解   执行所需的简单步骤   只有很短的时间间隔。

我无法理解它,也无法理解多线程进程和vp之间的区别。 有人可以帮忙吗?

编辑这里是我提到上一节表格的那一章 http://www.mediafire.com/?ru82i0nvp12qw6t

2 个答案:

答案 0 :(得分:1)

这个术语“虚拟过程”很不寻常,但根据您的描述,我可以给出两个使用每个实例的实际例子。

对于多线程,假设你在内存中有很多数据,并希望对它进行一些计算...你可以将数据分开并具有单独的线程(理想情况下每个CPU核心1个)同时工作在不同的数据块上。这样,根据您创建的线程数量,计算速度会更快。

对于“虚拟进程”,假设您需要从远程服务器检索20个文件...涉及的大部分CPU“工作”只是等待从远程网络到达的字节。创建单独的线程来下载每个文件不会使文件更快地到达。如果有的话,有额外的线程,操作系统需要不断切换(它会切换很多,因为大多数时候每个线程只会说'我还在等待',然后放弃控制)。因此,在这种情况下,最好让一个线程执行所有下载,在每个下载任务之间进行内部循环,以读取缓冲区中的数据。

答案 1 :(得分:1)

您的虚拟进程对我来说就像事件驱动编程一样。谷歌为例如。 “threads vs events”,你得到的first link是非常好的比较。

编辑:这是我在书签中找到的另一个comparison