|
我发现真正复杂的系统性机制往往隐藏在简单的界面里面。比如小说《三体》里面有这样的情节:三体游戏信息量极大,初看似乎平平无奇,其实隐藏了巨大的信息,比如游戏里的太阳似乎平常,但是用游戏里面的望远镜道具看能发现极其精细的结构。
下面列举几个案例。
案例1
电脑上放着WPS软件的PPT,这时候按下空格键,PPT翻到了下一页。在这个过程中,发生了什么事情?
解答:胡伟武主编的《计算机体系结构基础》介绍了这个问题。他还说,他在计算机专业硕士研究生入学考试面试的过程中问这个问题,很多人答不出来。下面简单的分析一下:
1)按下键盘,产生信号送至南桥芯片,南桥芯片会把键盘编码保存至自己的寄存器,同时向CPU发出外部中断信号;
2)CPU接收到这个外部中断信号后,打断原先的指令流水线,执行针对这种异常类型的代码,交给操作系统内核处理;
3)操作系统内核首先保存寄存器现场到内存,然后读取信号类型,就可以执行键盘驱动程序:从南桥芯片读取寄存器,然后就知道是哪个键盘被敲击了;
4)下面是需要内核将键盘事件通知应用程序。我们知道WPS是基于Qt开发的,对于Qt程序比较熟的人都知道,Qt的main函数通常是以return a.exec();结尾,这就是进入QApplication对象实现的事件循环。所谓事件循环就是不断的接收事件,再处理事件。
当然,Qt事件循环不会把CPU占用100%,大部分时间,Qt程序是处于休眠状态的。当操作系统内核调用了Qt程序,这时候Qt会扫描有哪些事件需要处理,发现了之前的键盘敲击事件,然后通过信号与槽的机制通知WPS应用代码处理;
5)WPS把下一页内容准备好,交给Qt绘制。Qt通过系统调用,利用显卡驱动程序把内容送至显卡的显存。后面,GPU读取显存,屏幕刷新就可以看到下一页了。
真实的过程其实比我描述的复杂的多,涉及到不同硬件的交互、CPU与操作系统内核的交互、底层代码与应用程序的交互,等等。要完全弄清楚是非常考验技术功底的。
案例二
上网时,在浏览器键入搜索引擎的网址(比如百度、必应),然后搜索内容,浏览器会显示搜索到的网页,这个过程又发生了什么事情?
解答:这个过程简直复杂到难以描述。下面是简化的分析:
1)首先是DNS地址解析,把网址转化为IP地址。这个也很复杂,但是不好意思篇幅受限,这块只好完全略过了。
2)本机需要与服务器建立TCP连接。我们知道TCP连接的建立有三次握手,TCP连接建立后就可以双向通信。下面仅以一次信息传递作为例子,进行说明。假定我们现在要把若干字节的信息(检索关键词)由本机发往搜索引擎的服务器。
3)假设是通过无线信号上网,需要终端与最近的铁搭建立电磁波的连接,铁塔会有电信号连接至基站。基站把电信号转换为光信号,然后就进入光纤通信网。
4)在骨干通信网传输,可能会跨越不同运营商的网络,需要找到目的地在哪里。这里面涉及路由器的转发。路由器是怎么工作的,路由的选择算法,又是一系列的复杂技术。
5)最后信号到搜索引擎的Web服务器了,Web服务器其实只能相当于前置设备,它的后面是极其复杂的后台系统。特别是对于搜索引擎来说,需要处理数以亿计的网页索引,需要大量的廉价个人计算机构建海量存储系统,而不是购买IBM大型机。一次查询甚至需要很多不同城市的数据中心的协调配合,这就是分布式大数据技术。比如谷歌的PageRank算法用于网页排序,算法本身相当于稀疏矩阵计算,但是实现规模非常惊人。因此谷歌是大数据技术的先行者,分布式计算、容器技术都是谷歌最先实现。(有趣的是谷歌MapReduce论文并没有公布实现细节,特别是没有对外公布容器技术)。
6)最后查询结果出来后,Web服务器会生成HTML 文档,然后回传至你的浏览器。这就是超级复杂的上网。
案例三 你在家里用电,插上插座就可以了,简单方便。这些电是从哪里来的?怎么来的?
解答:把电力系统的运行机制彻底弄明白,即使是对电力行业的资深专家来说都是艰巨挑战。这里只能简单聊聊。
首先,我们知道电是通过发电厂发出来的,大部分发电厂是利用了电磁感应原理,只有光伏发电例外,光伏发电用的是光电效应。电力系统的本质特点是电力不能大规模存储,不确定性很高,同时对于稳定运行的技术条件非常苛刻。这对于电力生产的技术要求就非常高了。
电力系统为了开展生产,会提前编制不同时间尺度的调度计划。其中日前24小时计划是最重要的。调度计划的生成是基于电力市场的,其中部分电量是通过中长期电力交易,然后是现货电力市场(中长期电力交易电量分解后采用差价合约进入现货市场),同时电力系统稳定运行需要调频、调压、调峰等需求,这里又出现了辅助服务市场。
电力市场跟一般的商品市场是非常不同的,发电厂与其说是竞争电力商品,不如说是竞争调度计划中的发电优先权。调度计划本身是极其复杂的混合整数规划问题,首先需要考虑各种电力安全稳定生产约束,其次才能考虑经济。
当然,调度计划的编制只是第一步。电力系统运行时,一定有各种不确定的扰动。运行中,除了实时计划,最常见的是需要自动控制系统,特别是AGC(自动发电控制)和AVC(自动电压控制)。这些自动控制系统的共同特征是,涉及全局信息的,控制周期长;涉及局部信息的,控制周期短。从而在时间和空间两方面都呈现分级控制的特点。
电力系统运行时还可能出现各种故障,这就需要保护和安全稳定装置。这方面电力系统有个重要概念“三道防线”,这就不展开了。
说到这,只是输电网的运行。把电送到千家万户,还需要配电系统。首先电网需要层层变电站降压,然后出了变电站,就进入10kV馈线。即使是馈线,也有很多自动装置(DTU/FTU等),然后进入配电变压器(TTU),再分配至380V/220V的低压配电网,后面就是分支箱,最后进入用户。
最后总结,真正实用、能解决实际问题的技术,必须是极其复杂的。但是,如果这种复杂性不能对终端用户隐藏,那么这项技术就很难推广,在商业上就很难赚到钱,这两点是不矛盾的。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 00:35
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社