嵌入式系统导论:CPS方法(原书第2版)
作者 : [美] 爱德华·阿什福德·李(Edward Ashford Lee) 桑吉特·阿伦库马尔·塞希阿(Sanjit Arunkumar Seshia) 著
译者 : 张凯龙 译
丛书名 : 计算机科学丛书
出版日期 : 2018-09-06
ISBN : 978-7-111-60811-0
定价 : 89.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 323
开本 : 16
原书名 : Introduction to Embedded Systems:A Cyber-Physical Systems Approach,Second Edition
原出版社: MIT Press
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书从CPS的视角,围绕嵌入式系统的建模、设计和分析三方面,深入浅出地介绍了设计和实现CPS的整体过程及各个阶段的细节,重点是论述系统模型与系统实现的关系,以及软件和硬件与物理环境的相互作用。第2版增加了两章,第7章覆盖传感器和作动器,强调建模;第17章给出嵌入式系统的安全和隐私方面的基本内容。

图书特色

图书前言

本书内容
计算机及软件最常见的用途是在人类消费及日常活动中进行信息处理,我们使用它们来撰写书籍(就像本书)、在互联网上查询信息、通过电子邮件进行通信,以及记录金融数据等。然而,生活中绝大多数的“计算机”并不可见。它们控制汽车的引擎、刹车、安全带、安全气囊以及音频系统;它们将你的声音进行数字编码,进而转换为无线电信号并从你的手机发送到基站;它们控制着微波炉、冰箱以及洗碗机;它们驱动从桌面喷墨打印机到工业大容量打印机等各式打印设备;它们控制工厂车间的机器人、电厂的发电机、化学工厂的生产过程以及城市的交通灯;它们在生物样本中检测细菌,构建人体内部的图像并评估生命体征;它们从太空的无线电信号中寻找超新星及地外智慧生物;它们给予玩具“生命”,使其可以与人进行触觉、听觉的交互;它们控制飞行器及火车,等等。这些“隐蔽”的计算机被称为嵌入式系统(Embedded System),其中所运行的软件则被称为嵌入式软件(Embedded Software)。
尽管嵌入式系统已广泛地存在和应用,但计算机科学在其相对较短的发展历程中仍以信息处理为核心。直到近些年,嵌入式系统才得到研究者越来越多的关注。同样,也是直到近些年,本领域的研究者和机构才日益意识到设计和分析这些系统需要不同的工程技术。尽管嵌入式系统自20世纪70年代就被应用,但这些系统更多时候是被简单地看作小型计算机系统,如何应对资源受限(处理能力、能源、存储空间受限等)是其核心工程问题。由此,设计优化就成为嵌入式系统的工程挑战。由于所有设计都会从优化过程中受益,因此,嵌入式系统学科也就与计算机科学的其他学科没什么区别,只是要求我们更加积极地应用这些共性优化技术。
近来,研究者已经认识到嵌入式系统的主要挑战源自于其与物理进程的交互,而并非资源的限制。美国国家科学基金会(NSF)的项目主管Helen Gill率先提出了“信息物理融合系统”(Cyber-Physical System,CPS)这一概念,以强调计算进程与物理进程的集成。在信息物理融合系统中,嵌入式计算机与网络对物理进程进行监测和控制,且物理进程与计算之间存在着相互影响的反馈环路。为此,该类系统的设计就需要充分理解计算机、软件、网络以及物理进程之间相互关联的动态特性。研究关联的动态特性就使得嵌入式系统有别于其他学科。
在研究CPS的过程中,所谓的通用计算很少涉及的一些关键问题就开始浮现出来。例如,通用软件中,任务执行时间是一个性能指标,而不是正确性指标。过长的任务执行时间并不会引入错误,仅会导致不太方便,也因此价值较低。但对于CPS而言,任务执行时间可能对整个系统的功能正确性非常关键。这是因为,相对于信息世界,物理世界中的时间流逝是无法挽回的。
而且,CPS中很多事件都是同时发生的。物理进程通常由这样一组同时发生的事件所构成,这明显有别于顺序化的软件执行过程。Abelson等(1996)将计算机科学描述为“程序化认识论”,认为这是关于程序的知识。相比较而言,物理世界中的进程很少是顺序化的,而是由诸多并行进程所构成。那么,通过设计影响这些进程的一组动作来评估和控制其动态特性就成为嵌入式系统设计的首要任务。所以,并发性才是CPS的本质,在设计和分析嵌入式软件中存在的诸多技术挑战也都源自于桥接和弥合固有顺序化语义与并发性物理世界的需要。
写作动机
软件与物理世界交互的机制正在发生着快速变化。今天,整个趋势正朝着“智能化”传感器和执行器(或作动器)的方向发展,这些组件搭载了微处理器、网络接口以及可以远程访问传感器数据并激活执行器的软件。无论现在是被称作物联网(IoT)、工业4.0、工业互联网、机器通信(M2M),还是万物互联、智慧地球、万亿传感器(Trillion Sensor)世界、雾计算(Fog,类似于云计算,但更近于地面)等,其发展前景实际上都是深度连接信息世界与物理世界的技术。在物联网领域中,这些“世界”之间的接口都是从信息技术特别是网络技术中获取灵感并演化而来。
物联网接口是非常方便的,但仍然不适合这两个不同世界之间的紧密交互,对于实时控制及安全攸关系统尤其如此。紧密交互仍然要求综合且复杂的底层设计技术。嵌入式软件设计人员被迫投入更多精力来关注中断控制器、内存架构、汇编级编程(以利用特定指令或者精确地控制时序)、设备驱动设计、网络接口以及调度策略等问题,而不是聚焦于具体想要实现的行为。
这些技术(无论顶层还是底层)的庞大体系及复杂度促使我们开设如何掌握这些技术的导论性课程。但是,一门更好的导论课程应该关注如何对软件、网络及物理进程的关联动态特性进行建模和设计,且该类课程仅介绍现今(而不是早期)达成这一目标的技术。本书就是我们针对该类课程所撰写的。
关于嵌入式系统的技术资料大部分都关注使计算机与物理系统实现交互的技术集合(Barr and Massa, 2006; Berger, 2002; Burns and Wellings, 2001; Kamal, 2008; Noergaard, 2005; Parab et al., 2007; Simon, 2006; Valvano, 2007; Wolf, 2000)。其他一些则关注采用计算机科学技术(如编程语言、操作系统、网络等)来处理嵌入式系统技术问题(Buttazzo, 2005a; Edwards, 2000; Pottie and Kaiser, 2005)。虽然目前这些实现技术对于设计和实现嵌入式系统是必要的,但是它们并未构成学科的知识核心。相反,其知识核心应该主要定位于可以结合计算与物理动态特性的模型和抽象。
一些书籍已经致力于从这一方面进行讨论。如《Modeling Embedded Systems and SoCs:Concurrency and Time in Models of Computation》(Jantsch,2003)关注计算的并发模型;《Embedded System Design:Embedded Systems Foundations of Cyber-Physical Systems》(Marwedel,2011)重点阐述软硬件行为的模型;《Embedded Multiprocessors: Scheduling and Synchronization》(Sriram and Bhattacharyya,2009)侧重于信号处理行为的数据流模型,以及将其映射到可编程DSP的方法;《Principles of Cyber-Physical Systems》(Alur,2015)则聚焦于信息物理融合系统的形式化建模、规格以及验证。以上这些都堪称非常优秀的教材,深入地涵盖了某个特定的主题。并发模型(如数据流)以及软件的抽象模型(如状态图)提供了一个比命令式编程语言(如C语言)、中断与线程以及设计者必须考虑的架构细节(如Cache)等更好的起点。然而,这些书籍并没有提供一门导论课程所要求的全部内容。其要么过于专业,要么过于高深,或者是兼而有之。在“关注系统实现时所涉及模型及其关系”的指导思想下,本书主要提供了一系列导论性内容。
本书的主题是关于系统实现模型及其关系的。我们所研究的模型主要涉及动态性,即时域中的系统状态演化。我们不讨论表示系统结构静态信息的结构模型,虽然这些模型对于嵌入式系统设计亦非常重要。
基于模型开展研究具有非常突出的优势。模型可以具有形式化的属性,因此,我们可以给出关于模型的断定性描述。例如,我们可以断言一个模型是确定性的,这意味着对于相同的输入会有相同的输出。任何系统的物理实现都不可能有这样绝对的断定。如果我们的模型是对物理系统的良好抽象(这里的“良好抽象”是指其仅仅忽略了无关紧要的方面),那么,关于模型的明确断定将使我们对系统的物理实现足够信任。而这些信任将是极其有价值的,尤其对那些出现故障时会威胁人类安全的嵌入式系统更是如此。研究系统模型可以让我们了解这些系统在物理世界中的行为。
我们关注软硬件与其运行时所处物理环境的相互影响,这就要求对软件及网络的时间动态性进行显式建模,以及明确描述应用程序固有的并发特性。实现技术还未赶上这一理想目标的事实不应成为我们教授错误工程方法的理由。我们应该按照建模与设计方法所需要的内容来进行阐述,并且通过重点阐述相关原理来充实这些内容。因此,当今的嵌入式系统技术不应像以上所引用的大多数文献中那样被理所当然地呈现为事实和技巧的集合,反而应该是作为迈向良好设计实践的基石。那么,问题的焦点应该是良好的设计实践是什么,以及当今技术对此存在哪些阻碍和促进。
Stankovic等人(2005)支持“现有面向RTES(实时嵌入式系统)设计的技术并不能有效地支撑可靠、健壮的嵌入式系统的开发”这一观点。同时,他们提出了“提升编程抽象级别”的需要。而我们认为,提升抽象级别仍然是不够的,必须对所用的抽象进行根本性改变。例如,软件的时间特性在较低层抽象中完全缺失时,就不可能将其引入更高层的软件抽象之中。
我们需要具有可重复时间动态性的健壮、可预测的设计(Lee,2009a),这就必须要构建可以恰当反映信息物理融合系统实际特性的抽象。其结果是,CPS的设计将会变得更加复杂,涉及更多的自适应控制逻辑、时域中的演化性和更高的安全性与可靠性等,所有这些都不会受到当今设计的脆弱性的影响—小的变化将会产生巨大的影响。
除了处理时间动态性之外,CPS设计总是面临着并发问题的挑战。由于软件深深植根于顺序化抽象,诸如中断与多任务、信号量与互斥等并发机制就显得尤为重要。为此,我们在本书中致力于对线程、消息传递、死锁避免、竞态条件以及数据确定性进行重点讨论和理解。
本版说明
这是本书的第2版。除了修订一些错误、改进论述及措辞之外,本版增加了两个新的章节。第7章介绍了传感器与执行器,其重点是建模。第17章则阐述了嵌入式系统安全与隐私的基础知识。
缺失的内容
即使补充了新的内容,本版的内容体系仍然是不够完整的。事实上,在CPS的背景下完全覆盖嵌入式系统的内容体系也是不可能的。加州大学伯克利分校的本科生嵌入式系统课程(课程网址:http://LeeSeshia.org)中所涉及的以及希望在本书后续版本中所涵盖的具体主题包括网络、容错、仿真技术、控制理论以及软硬件协同设计等。
如何使用本书
本书内容分为建模、设计与分析三个主要部分,如图1所示。这三个部分的内容相对独立,主要是为了便于同时阅读。读者可以用八个阶段来完成本书的系统阅读,如图1中的虚线所示。大多数阶段都包括两个章节,如果两周完成一个阶段的话,那么就可以在15周的学期内完成本书内容的学习。

图1 本书各章节间的强弱依赖关系:黑色箭头线表示章节之间有强依赖关系,灰色箭头线表示弱依赖。当第i章与第j章之间是弱依赖关系时,学习第j章时几乎不需要阅读第i章的内容,或者可跳过一些实例或特定的分析技术
附录中提供了在其他教材中述及的、对阅读本书相当有益的基础知识。附录A回顾了集合与函数的符号。在嵌入式系统学习中,符号化方法提供了比常见方法更高的精确度。附录B回顾了可计算性与复杂性理论的基本结论,这有益于深入理解系统建模与分析中所存在的诸多挑战。需要说明的是,附录B依赖于第3章中所述状态机的形式化方法,因此,这一部分的阅读要以第3章为基础。
鉴于近来的技术进步正在根本性地改变着出版业,本书的发行也采用了非传统的方式。免费的PDF形式专为在平板电脑上阅读而设计,读者可在网站http://LeeSeshia.org下载该PDF文件。其布局采用了优化设计,适合于中等大小的屏幕,尤其是笔记本电脑以及iPad等平板电脑。而且,超链接及色彩的广泛使用将大大提升在线阅读的体验。
我们试图使本书适应于电子书格式,理论上适合在各种大小的屏幕上阅读,以充分利用各种常用屏幕的优势。然而,正如HTML文档一样,电子书的格式采用了重排(reflow)技术,在加载过程中要重新计算页面布局。重排结果高度依赖于屏幕大小,而且在很多屏幕上显示得并不理想。因此,我们选择了对布局进行控制,且不推荐在智能手机上进行阅读。
尽管电子阅读非常方便,但我们仍然认为纸质载体是有其实际价值的,读者可以随手翻阅,也可以将其显眼地放在书架上。
读者对象
本书主要适合高年级本科生、低年级研究生进行学习,也适合希望理解嵌入式系统工程原理的从业工程师以及计算机科学家。我们假定读者已经拥有诸如计算机结构(例如,应该知道ALU是什么)、计算机编程(本书采用C语言)、基本的离散数学和算法等基础知识,并且对信号与系统有最基本的了解(例如,采样时间连续信号意味着什么)。
错误反馈
如果你发现本书中存在错误或印刷错误,或者对本书有任何改进建议或其他意见,请发电子邮件至如下地址:
authors@leeseshia.org

无论是电子版还是纸质版,都请提供本书的版本信息以及相应的页码。谢谢!
致谢
衷心感谢以下人员对此书做出的贡献以及提出的宝贵建议:Murat Arcak、Dai Bui、Janette Cardoso、Gage Eads、Stephen Edwards、Suhaib Fahmy、Shanna Shaye Forbes、Daniel Holcomb、Jeff C. Jensen、Garvit Juniwal、Hokeun Kim、Jonathan Kotker、Wenchao Li、Isaac Liu、Slobodan Matic、Mayeul Marcadella、Le Ngoc Minh、Christian Motika、Chris Myers、Steve Neuendorffer、David Olsen、Minxue Pan、Hiren Patel、Jan Reineke、Rhonda Righter、Alberto Sangiovanni-Vincentelli、Chris Shaver、Shih-Kai Su(亚利桑那州立大学CSE 522课程的学生,该课程由Georgios E. Fainekos博士讲授)、Stavros Tripakis、Pravin Varaiya、Reinhard von Hanxleden、Armin Wasicek、Kevin Weekly、Maarten Wiggers、Qi Zhu,以及过去几年UC Berkeley电气工程与计算机科学149 课程中的所有学生,特别是Ned Bass和Dan Lynch!特别感谢Elaine Cheong博士,她仔细地阅读了本书的大部分章节,并给出了许多有益的建议!感谢本书首次出版以来帮助我们修改错误、改进内容的所有读者!特别感谢我们的家人,特别是Edward的家人Helen、Katalina和Rhonda,以及Sanjit 的家人 Amma、Appa、Ashwin、Bharathi、Shriya和Viraj,感谢他们的耐心和支持!
延伸阅读
近年来已经出现了很多嵌入式系统相关书籍。这些书籍以令人惊讶的多元化方式来处理相关主题,且通常是论述已经转入嵌入式系统的、更为成熟的学科观点,如VLSI设计、控制系统、信号处理、机器人学、实时系统或者软件工程。其中一些是对本书内容的有益补充。在此,我们将这些书籍强烈推荐给希望拓展理解本主题相关内容的读者。
《Computer Architecture: A Quantitative Approach》(Patterson and Hennessy,1996)一书虽然没有聚焦于嵌入式处理器,但该书是计算机体系结构的标准参考书目,也是任何对嵌入式处理器体系结构感兴趣的读者的必读书目。《Embedded Multiprocessors: Scheduling and Synchronization》(Sriram and Bhattacharyya,2009)侧重于信号处理应用,如无线通信、数字媒体,并对数据流编程方法给予了特别全面的覆盖。《Computers as Components: Principles of Embedded Computer Systems Design》(Wolf,2000)对硬件设计技术、微处理器体系结构及其对嵌入式软件设计的意义进行了阐述。《Functional Verification of Programmable Embedded Processors:A Top-down Approach》(Mishra and Dutt,2005)基于体系结构描述语言(ADL)对嵌入式体系结构进行了介绍。《DSP Software Development Techniques for Embedded and Real-Time Systems》(Oshana,2006)专门对德州仪器(TI)的DSP处理器进行了介绍,并概述了体系结构方法和汇编级编程。
从软件角度,《Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications》(Buttazzo,2005a)对实时软件的调度方法进行了精彩论述。Liu(2000)提出了一种用于处理偶发实时事件的软件技术。《Languages for Digital Embedded Systems》(Edwards,2000)一书非常好地阐述了一些嵌入式系统设计中所使用的面向领域的高级编程语言。《Principles of Embedded Networked Systems Design》(Pottie and Kaiser,2005)对嵌入式系统中的网络化技术特别是无线网络进行了很好的阐述。《Better Embedded System Software》(Koopman,2010)一书论述了嵌入式软件的设计过程,包括需求管理、项目管理、测试计划以及安全计划等。《Principles of Cyber-Physical Systems》(Alur,2015)就信息物理融合系统的形式化建模与验证提供了非常好的、有深度的处理方法。
如前所述,并没有任何一本书可以综合、全面地覆盖嵌入式系统工程师可用的所有技术。读者可以在很多关注当今设计技术的书籍中找到相应的有用信息(Barr and Massa, 2006; Berger, 2002; Burns and Wellings, 2001; Gajski et al., 2009; Kamal, 2008; Noergaard, 2005; Parab et al., 2007; Simon, 2006; Schaumont, 2010; Vahid and Givargis, 2010)。
教师注意事项
在伯克利,我们以本书作为高年级本科生课程“嵌入式系统导论”的教材。通过以下网址可以获取本书的讲义及实验材料:
http://LeeSehia.org
另外,教学机构中具有资格的教师可以通过以下网址获得解答手册以及其他教学资料:
http://chess.eecs.berkeley.edu/instructors/

或者,也可通过电子邮件联系作者,邮件地址:authors@leeseshia.org。

上架指导

计算机/嵌入式

封底文字

信息物理融合系统(CPS)是嵌入式系统发展的高级形态,其挑战已由早期的资源受限演变为计算进程如何与物理进程进行交互,所要解决的核心问题则由工程设计技术演化到如何弥合计算系统的顺序化执行特性与物理世界的并发运行特性。

本书致力于将嵌入式系统经典持久的知识理念作为一种技术和一个研究主题进行辨析和阐述,重点关注集成了计算、网络和物理进程的信息物理融合系统的建模、设计与分析。针对CPS涉及的信息、物理特性,第一部分着重分析了连续动态、离散动态与混合系统等模型以及状态机组合模型和并发计算模型等基础理论。第二部分聚焦于系统的设计,以理论化的方式阐述了传感器、执行器、处理器、存储器、输入与输出等硬件组件以及多任务和调度等核心软件机制。第三部分详细论述了CPS的分析与验证方法。同时,针对日益严重的物联网空间安全问题,第三部分中还新增了安全性与隐私性的内容。第四部分简要给出了相关基础知识的附录,以便于对本书的知识体系进行延伸并让读者更好地学习和理解相关内容。

本书采用“理论为主线 + 丰富实例分析”的方式系统、深入地阐述了CPS所涵盖的实践性强的工科知识体系,其视角独特、内容新颖、方法独到,适合研究型大学计算机、自动化、电子信息及电气工程等专业的高年级本科生、研究生学习,尤其适合作为高级嵌入式系统类课程的授课教材或参考教材。

作者简介

[美] 爱德华·阿什福德·李(Edward Ashford Lee) 桑吉特·阿伦库马尔·塞希阿(Sanjit Arunkumar Seshia) 著:爱德华·阿什福德·李(Edward Ashford Lee) 加州大学伯克利分校电子工程与计算机科学系(EECS)罗伯特·S.佩珀(Robert S. Pepper)杰出教授;研究兴趣集中于嵌入式实时计算系统的设计、建模与分析,曾任加州大学伯克利分校电子工程(EE)分部以及电子工程与计算机科学系主任。1979年获得耶鲁大学计算机科学学士学位,1981年获得麻省理工学院(MIT)电气工程与计算机科学硕士学位,1986年获得加州大学伯克利分校电气工程与计算机科学博士学位。1979年至1982年期间,曾在位于新泽西州霍姆德尔的贝尔实验室任职。他是伯克利设计技术股份有限公司(BDTI)的联合创始人、IEEE会士(IEEE Fellow)、美国国家科学基金会总统青年科学家,并于1997年获得美国工程教育学会的弗雷德里克·埃蒙斯·特曼奖。

桑吉特·阿伦库马尔·塞希阿(Sanjit Arunkumar Seshia) 加州大学伯克利分校电子工程与计算机科学系教授;研究兴趣集中于可信计算、计算逻辑和形式化方法及其在嵌入式系统、计算机安全、电子设计自动化以及合成生物学等领域问题中的应用;于印度理工学院孟买分校获得计算机科学与工程学士学位,于卡内基-梅隆大学(CMU)获得计算机科学硕士和博士学位。他曾获美国青年科学家与工程师总统奖(PECASE)、艾尔弗雷德·P.斯隆研究奖,以及卡内基-梅隆大学计算机科学学院杰出学位论文奖。

译者序

接触本书原著是在2017年11月,时值我受西北工业大学国际著名高校访问计划资助对UC Berkeley(加州大学伯克利分校)进行短期学术访问。众所周知,UC Berkeley的计算机科学专业在国际上享有盛名,为全球的计算机专业人才培养以及技术发展做出了杰出贡献。为此,我希望借此机会从多个方面来展开学习和交流。一方面,我应邀与UC Berkeley PATH(Partners for Advanced Transportation Technology)研究所、机械工程系(ME)、电气工程与计算机科学系(EECS)等机构的学者及其团队就无人车与智能交通领域的研究进行深入、充分的学术交流。同时,我也抓紧时间参与电气工程与计算机科学系的本科生、研究生课程,以体验和了解该专业的教学体系、相关课程的内容组织和教学方法等。鉴于我已从事嵌入式系统教学十余年,Edward Ashford Lee教授所开设的“嵌入式系统导论”(Introduction of Embedded System,课程代码EECS 149)课程也就成为要旁听的重点,并提前购买了本书原著(原著采用了新的出版方式,课程网站上提供了可下载的PDF文件,本书“前言”对此进行了简要说明)。藉由课程,与Edward Ashford Lee教授进行了交流,随后应教授的邀请在混合与嵌入式软件系统中心(CHESS)做了学术报告,并初步达成了将这本优秀著作翻译为中文的意向,是为本翻译工作的开端。
纵观全书,我们可以发现本书内容视角独特、内容新颖、方法独到,其立意于嵌入式系统技术发展的新阶段—信息物理融合系统(CPS),重点以与之相关的数学、模型、机制等计算机科学的理论和方法为主要内容,形成了一个强调理论性和原理性的知识体系。本书用“理论”的方式来深入阐述嵌入式系统这一实践性强的工科课程,体现出作者深厚的理论基础、广博的专业知识以及创新的专业思维。在自然科学范畴,归纳并建立正确的基础理论体系或者用这样的理论体系来指导实践,是跳出万变现象来彻底解决一系列科学、工程问题的根本。如爱因斯坦所言:“数学之所以有高声誉,另一个理由就是数学使得自然科学实现定理化,给予自然科学某种程度的可靠性。”嵌入式系统基础理论体系的建立也是如此,其会让具体科学、工程问题的解决更为可靠,也常常可以免去嵌入式系统设计过程中由经验性、试验性工作所带来的种种困扰。当然,从理论的角度出发来学习嵌入式系统知识具有两大挑战:一是要有良好的理论基础,以保证对本书内容的深刻理解和掌握;二是要有良好的计算机工程基础,以实现抽象理论与具体设计方法的融会贯通。这对读者的学习基础及目标都提出了更高的要求。因此,本书适合计算机科学、计算机工程及相关电子类专业的高年级本科生和研究生学习。
我于2017年出版了《嵌入式系统体系、原理与设计》一书,该书偏重于计算机工程相关的原理与方法,与本书的内容体系完全不同。显然,本书的翻译工作对于我来说将是一个极为宝贵的专业学习机会,为此我坚持了“Working by Learning,Learning by Doing”的工作态度以及一人完成翻译的工作方式。翻译是二次创作的过程,科技著作的翻译更是如此—既要准确还原书中阐述的专业知识和观点,同时还要尽可能润色文字以符合中文读者的阅读习惯。在互联网时代,计算机搜索工具和翻译工具的出现为翻译工作提供了极大的便利。不可否认,基于大数据和深度学习的自然语言翻译技术已经取得了长足的进展,偶尔也会对某个句子给出令人赞叹之译。但翻译不仅是语言的事情,还涉及知识、领域、文化、习惯等多个方面,因此,这些工具目前仍只能作为辅助,距离完全替代人的工作还有很长的路要走。为了做到尽量准确,在翻译过程中我不断查阅资料,尽力拓展与内容相关的专业知识并不断学习翻译方法和规范。在这段夜以继日的日子里,我能够时时体会到深入学习和不断进步的成就感,这已经完全抵消了身体上的疲劳!正如高斯所言:“给我最大快乐的,不是已懂得的知识,而是不断学习;不是已达到的高度,而是继续努力攀登。”这里,也引用著名作家路遥先生一段经典的文字与广大读者共勉:“我的创作历程是艰苦地摸索前行的历程。几乎每走一步都要付出身心方面的巨大代价。我认识到,文学创作从幼稚趋向于成熟,没有什么便利的那些所谓技巧,而是用自我教育的方式强调自身对这种劳动持正确的态度,这不是‘闹着玩’,而应该抱有庄严献身精神,下苦功夫……我要求自己,在任何时候都不丧失一个普通劳动者的感觉,要永远沉浸在生活的激流之中。所有这些我都仍将坚持到底。”
感谢在翻译工作期间给予我关心、支持和帮助的所有人!特别是原著的两位作者—UC Berkeley电气工程与计算机科学系的Edward Ashford Lee教授和Sanjit Arunkumar Seshia教授,以及UC Berkeley PATH研究所的Zhang Wei-Bin研究员,正在UC Berkeley作访问教授的MINES Paristech机器人研究中心主任Arnaud de La Fortelle教授,西北工业大学计算机学院的张艳宁教授、王庆教授、尚学群教授、郭阳明教授、邓磊副教授、吴晓副教授,以及机械工业出版社华章分社的佘洁编辑、张梦玲编辑和姚蕾编辑!
感谢在书稿校对阶段付出辛勤努力、贡献智慧的课题组硕士研究生王雨佳、李孝武、谢策、李刘洋、费超、王敏、谢尘玉、巩政!他们聪颖好学、充满活力又富有团队合作精神,希望继续与他们共同学习并携手迎接新的挑战!
感谢我的家人,让我心中充满了爱和责任,也给予了我不断前行的力量!特别感谢我的太太李瑜女士,感谢她一如既往地信任和支持我,在这段漫长的日子里再一次打理了家庭大大小小的事务,让我能够静心、专心于本书的翻译工作!感谢嘉航和嘉芮两位小朋友,他们让生活时时充满童趣,愿爱陪伴他们成长!
这是我的第一本译作。虽自觉已尽力,但个人知识与能力有限,不妥之处在所难免,期待广大读者的宝贵意见和建议(我的邮箱:kl.zhang@nwpu.edu.cn)。

图书目录

出版者的话
译者序
前言
第1章 绪论 1
1.1 应用 1
1.2 启发式示例 4
1.3 设计过程 5
1.3.1 建模 7
1.3.2 设计 8
1.3.3 分析 8
1.4 小结 9
第一部分 动态行为建模
第2章 连续动态 12
2.1 牛顿力学 12
2.2 参元模型 15
2.3 系统特性 17
2.3.1 因果系统 17
2.3.2 无记忆系统 18
2.3.3 线性与时不变性 18
2.3.4 稳定性 19
2.4 反馈控制 19
2.5 小结 22
习题 23
第3章 离散动态 25
3.1 离散系统 25
3.2 状态的概念 28
3.3 有限状态机 28
3.3.1 迁移 29
3.3.2 响应 31
3.3.3 更新函数 32
3.3.4 确定性与接受性 34
3.4 扩展状态机 35
3.5 非确定性 37
3.5.1 形式化模型 38
3.5.2 非确定性的用途 39
3.6 行为与轨迹 39
3.7 小结 41
习题 41
第4章 混合系统 45
4.1 模态模型 45
4.1.1 状态机的参元模型 45
4.1.2 连续输入 45
4.1.3 状态精化 46
4.2 混合系统分类 47
4.2.1 时间自动机 47
4.2.2 高阶动态性 49
4.2.3 监督控制 53
4.3 小结 56
习题 57
第5章 状态机组合 61
5.1 并发组合 62
5.1.1 平行同步组合 63
5.1.2 平行异步组合 64
5.1.3 共享变量 66
5.1.4 级联组合 68
5.1.5 通用组合 70
5.2 分层状态机 70
5.3 小结 72
习题 72
第6章 并发计算模型 75
6.1 模型的结构 75
6.2 同步响应模型 77
6.2.1 反馈模型 78
6.2.2 形式非良好模型与形式良好模型 79
6.2.3 推定一个不动点 80
6.3 数据流计算模型 81
6.3.1 数据流原理 82
6.3.2 同步数据流 84
6.3.3 动态数据流 86
6.3.4 结构化数据流 87
6.3.5 进程网络 88
6.4 时间计算模型 89
6.4.1 时间触发模型 89
6.4.2 离散事件系统 92
6.4.3 时间连续系统 93
6.5 小结 95
习题 95
第二部分 嵌入式系统设计
第7章 传感器与执行器 100
7.1 传感器与执行器模型 101
7.1.1 线性与仿射模型 101
7.1.2 量程 101
7.1.3 动态量程 102
7.1.4 量化 102
7.1.5 噪声 104
7.1.6 采样 105
7.1.7 谐波失真 107
7.1.8 信号调理 108
7.2 一些常用传感器 109
7.2.1 测量倾斜度与加速度 109
7.2.2 测量位置和速度 110
7.2.3 测量旋转 111
7.2.4 测量声音 111
7.2.5 其他传感器 111
7.3 执行器 112
7.3.1 发光二极管 112
7.3.2 电机控制 112
7.4 小结 115
习题 115
第8章 嵌入式处理器 117
8.1 处理器类型 117
8.1.1 微控制器 117
8.1.2 DSP处理器 119
8.1.3 图形处理器 123
8.2 并行机制 123
8.2.1 并行与并发 123
8.2.2 流水线 125
8.2.3 指令级并行 127
8.2.4 多核体系结构 132
8.3 小结 132
习题 132
第9章 存储器体系结构 134
9.1 存储器技术 134
9.1.1 RAM 134
9.1.2 非易失性存储器 135
9.2 存储器分级体系 135
9.2.1 存储器映射 136
9.2.2 寄存器文件 137
9.2.3 暂存器与高速缓存 138
9.3 存储器模型 140
9.3.1 存储器地址 140
9.3.2 栈 141
9.3.3 存储器保护单元 142
9.3.4 动态内存分配 142
9.3.5 C程序的存储模型 143
9.4 小结 143
习题 144
第10章 输入与输出 146
10.1 I/O硬件 146
10.1.1 脉冲宽度调制 147
10.1.2 通用数字I/O 147
10.1.3 串行接口 149
10.1.4 并行接口 151
10.1.5 总线 151
10.2 并发世界中的顺序软件 152
10.2.1 中断与异常 152
10.2.2 原子性 154
10.2.3 中断控制器 155
10.2.4 中断建模 155
10.3 小结 158
习题 158
第11章 多任务机制 163
11.1 命令式程序 163
11.2 线程 166
11.2.1 创建线程 166
11.2.2 实现线程 168
11.2.3 互斥 169
11.2.4 死锁 171
11.2.5 内存一致性模型 172
11.2.6 多线程机制带来的问题 173
11.3 进程与消息传递 174
11.4 小结 177
习题 178
第12章 调度机制 181
12.1 调度基础 181
12.1.1 调度决策 181
12.1.2 任务模型 182
12.1.3 调度器比较 184
12.1.4 调度器的实现 184
12.2 单调速率调度 185
12.3 最早截止期优先调度 187
12.4 调度与互斥 190
12.4.1 优先级翻转 190
12.4.2 优先级继承协议 191
12.4.3 优先级天花板协议 192
12.5 多处理器调度 193
12.6 小结 195
习题 196
第三部分 分析与验证
第13章 不变量与时态逻辑 200
13.1 不变量 200
13.2 线性时态逻辑 201
13.2.1 命题逻辑公式 202
13.2.2 线性时态逻辑公式 203
13.2.3 运用线性时态逻辑公式 205
13.3 小结 206
习题 207
第14章 等价与精化 209
14.1 规格模型 209
14.2 类型等价与精化 209
14.3 语言等价与包含 211
14.4 模拟 215
14.4.1 模拟关系 216
14.4.2 形式化模型 217
14.4.3 传递性 217
14.4.4 模拟关系的非唯一性 218
14.4.5 模拟与语言包含的对比 218
14.5 互模拟 219
14.6 小结 220
习题 221
第15章 可达性分析与模型检验 224
15.1 开放和封闭系统 224
15.2 可达性分析 225
15.2.1 Gp验证 225
15.2.2 显式状态模型检验 226
15.2.3 符号化模型检验 227
15.3 模型检验中的抽象 229
15.4 模型检验活性属性 231
15.4.1 将属性作为自动机 232
15.4.2 寻找接受环路 233
15.5 小结 235
习题 235
第16章 定量分析 237
16.1 关注的问题 237
16.1.1 极端情况分析 237
16.1.2 阈值分析 238
16.1.3 平均情况分析 238
16.2 将程序表示为图 238
16.2.1 基本块 239
16.2.2 控制流图 239
16.2.3 函数调用 240
16.3 执行时间的决定因素 241
16.3.1 循环边界 241
16.3.2 指数路径空间 243
16.3.3 路径可行性 243
16.3.4 存储器分级体系 244
16.4 执行时间分析基础 245
16.4.1 优化的形式化表示 245
16.4.2 逻辑流约束 247
16.4.3 基本块的边界 249
16.5 其他定量分析问题 250
16.5.1 内存边界分析 250
16.5.2 功耗和能耗分析 252
16.6 小结 252
习题 252
第17章 安全性与隐私性 255
17.1 密码学原语 256
17.1.1 加密与解密 256
17.1.2 数字签名与安全散列函数 259
17.2 协议与网络安全性 260
17.2.1 密钥交换 261
17.2.2 加密协议设计 262
17.3 软件安全性 263
17.4 信息流 265
17.4.1 几个示例 266
17.4.2 理论 268
17.4.3 分析与实施 269
17.5 高级主题 270
17.5.1 传感器与执行器安全 270
17.5.2 旁路攻击 271
17.6 小结 272
习题 273
第四部分 附  录
附录A 集合与函数 276
附录B 复杂性与可计算性 281
参考文献 292
符号说明 306

教学资源推荐
作者: [英]艾伦?克莱门茨(Alan Clements)著
作者: (美)David A. Patterson加州大学伯克利分校John L. Hennessy 著斯坦福大学
作者: 袁春风 主编 唐杰 苏丰 路通 汪亮 编著
作者: 李林功 吴飞青 王兵 丁晓
参考读物推荐
作者: Mark Artiges等
作者: NVIDIA 技术服务(北京)有限公司 著
作者: (美)Sun Microsystems, Inc