主题:【原创】进程的反击 -- zllwy
借用一下Star War里面“帝国的反击”的题目,来聊一下最近进程(process)重新回到系统设计的前台的情况。操作系统的并发计算技术(concurrent computing,不是并行计算 parallel computing。Concurrent computing是个更广的概念,parallel computing是指有可以并行处理的硬件)从multiprogramming,multitasking/multiprocessing到multi-threading,并发的单元从job,task到process,再到thread。最近十几年,multi-threading是最时髦的并发编程技术。进程(process)作为一个并发计算的单元,已经逐渐隐入后台,很少为程序员接触了。还在直接用fork()和IPC编程的可能不多见了。进程和线程的最大区别就在于进程有独立的地址空间,线程则在一个进程内共享地址空间。从系统资源的角度来说,进程比较重,粒度更大,耗用的资源多。随着并发计算越来越重要,尤其是并行的硬件支持越来越丰富,轻量级的线程自然成了时髦的选择。
不过,最近一些新的计算平台的出现,又把进程带到了前台。这里说两个例子。一个是Chrome浏览器,一个是Android操作系统。Chrome改变了以往浏览器用线程运行并发的任务(比如显示一个网页),增加了进程来隔离不同网页的显示。最大的好处自然是提高了浏览器的安全性和可靠性。一个网页进程的崩溃不会导致整个浏览器的崩溃。最多只要把出现故障的页面关掉就可以了。在实际的使用体验中我们也确实感受到了可靠性的提高。另外,一个网页的进程无法访问另外一个网页的进程,使得浏览器的安全漏洞减少了。无独有偶,在Android系统中也使用了进程来隔离不同的应用。每个应用在缺省的情况下单独在一个虚拟机的实例中运行。这样如果一个应用发生问题不会影响到其他的应用。这点我体会也很深。以前我的java me的dumb phone,时不时会死机然后需要重启。Android的手机我到目前为止还没有死机过。最多是某个单独的应用死了,把它杀掉也就是了。从安全性角度来说也一样,不同应用之间无法访问对方的地址,这就大大减少了被攻击的可能。
进程之所以能重新杀到前台来,我觉得跟硬件的进步有很大的关系。硬件资源(尤其是内存)已经可以支持比较多的进程。另外,软件设计上对可靠性和安全性的重视也是使得进程重新受宠的一个重要原因。
- 相关回复 上下关系8
🙂【原创】进程的反击
🙂新的技术带来新的平衡 2 代码ABC 字439 2011-02-10 18:53:57
🙂猜想以后(操作系统)会慢慢进驻cpu中 7 益者三友 字1394 2011-01-19 18:58:19
🙂架空的话,我的理想,系统总线IP化 牵着一只大猫 字258 2011-01-20 22:18:58
🙂先不说性能,IP这种破玩意,Overhead得多大? 1 大山猫 字26 2011-01-20 22:28:35
🙂OS不会到CPU中去的 pseudo 字318 2011-01-20 21:35:17
🙂你别说,曾经有一个设想——Java 代码ABC 字0 2011-02-11 02:43:52
🙂个人觉得,后面会是分布式OS大发展 1 博客南 字308 2011-01-19 23:14:13