智能应用 影音
Microchip
ST Microsite

资通讯的左右互搏之技

林一平手绘之John McCarthy。

我设计物联网应用系统IoTtalk,其运算方式是「多执行绪」 (multi-threading),基本原理是金庸小说提到的左右互搏之技。

金庸说,左右互搏的关键在于「分心二用」。但他又很矛盾的说,要习此门功夫,须做到心无杂念。要分心二用,又要心无杂念,是互相抵触的。根据《射鵰英雄传》中周伯通的说法,若能左手画方,右手画圆,方能修习此法。金庸说,周伯通,郭靖与小龙女皆是心思纯朴之人,心无杂念,学习双手互搏并非难事。凡是聪明智能的人,心思繁复,一件事没想完,第二件事又涌上心头。三国时曹子建七步成诗,五代间刘鄩用兵,一步百计,这等人,便是杀他的头也学不会左右互搏的功夫。

金庸的说法可能不全部正确。多执行绪技术表面上似乎分心二用,实际上在任何时刻都是专心致志,心无杂念,只是「内容转换」(Context-Switching)速度很快,就呈现出左右互搏的效果。以此角度而言,左右互搏必须是曹子建及刘鄩这种聪明人才办得到。周伯通与小龙女都绝顶聪明,因此也学得会。郭靖的脑筋转不快,绝对做不到「内容转换」的脑筋急转弯,应该学不会左右互搏的功夫。

「多执行绪」是由「多工处理」(Multitasking)演进而来。懂得左右互搏的人采用「多执行绪」,那麽哪种人的行为像电脑的「多工处理」?我的答案是,这种人患有「多重人格症」(Multiple Personality Disorder),是解离症(Dissociative Disorder)的一种特殊类型。「多执行绪」中所有「执行绪」都共享同一个存储器(因此是单一人格,脑筋可马上急转弯)。而「多工处理」则每一任务有个别分开的存储器(因此是一个人有多重人格,人格转换时要花点时间)。

分时系统(Time-sharing)最初利用多工处理,让多个使用者可以同时使用一台电脑。早期电脑系统的方法论都基于批次处理(Batch Processing)的思维,因此批次处理单一用户的程序较为实际且容易,而要同时支持多个用户则是相对困难。由于单核心计算机在任一时刻只能让单一使用者执行单一程序,批次处理的程序是执行完一个,再执行下一个,简易明确。而同时支持多个用户的分时系统则是完全不同的概念。

分时系统将每个使用者及其程序的「状态」保留在机器中,然后快速切换。这将占用电脑的计算资源。早期的机器速度慢,难以分食。随着电脑速度的迅速提高,大大扩充保留用户状态的核心存储器空间,「分时」的成本持续下降。

第一个「使用者程序时间共享」的专案由麻省理工学院的麦卡锡(John McCarthy)于1959年提出,修改了批次处理的IBM 704电脑,后来又改版进化为IBM 709,这是第一代能够进行时间共享的电脑之一。该专案的重要成果,是兼容的分时系统(Compatible Time-Sharing System;CTSS),于1961年11月进行了成功的展示。CTSS是全世界第一个分时系统,一直使用到1973年。

1961年初,比策(Donald Bitzer)在伊利诺伊伊大学附近的阿勒顿公园公开示展示第一个特殊用途的时间共享系统,名为普拉托二世(PLATO II)。比策一直碎碎念的埋怨,若非伊利诺伊伊大学的繁文缛节延迟了两年,普拉托专案就会在分时技术上获得第一个专利。

这套系统于1964年1月开始进行分时服务。依此基础,IBM在1968年检视「多执行绪」的实用性。现代的程序语言如C++,Java及Python都支持多执行绪。在前人的努力下,电脑系统技术不断突破,因此我的团队有机会发展出左右互搏之IoTtalk物联网平台,能同时让多核心电脑执行多执行绪。

现为国立阳明交通大学资工系终身讲座教授暨华邦电子讲座,曾任科技部次长,为ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究兴趣为物联网、移动计算及系统模拟,发展出一套物联网系统IoTtalk,广泛应用于智能农业、智能教育、智能校园等领域/场域。兴趣多元,喜好艺术、绘画、写作,遨游于科技与人文间自得其乐,着有<闪文集>、<大桥骤雨>。