搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Java实时编程
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111292821
  • 作      者:
    (美)Eric J. Bruno,(美)Greg Bollella著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2010
收藏
编辑推荐
  面向开发者和架构师的Java RTS权威指南。
  面向转向实时系统领域的Java开发者和架构师,以及转向Java的实时系统开发者。
  从头至尾逐步分析应用示例,确定其限制并讨论解决它们的API和设计模式。
  作者为实时Java标准过程的前任组长和华尔街实时系统的顶级开发者。
  Sun公司的Java实时系统(Java RTS)在多个广泛的环境中得到了实践验证,其中包括金融、控制系统、制造和防务。Java RTS和RTSJ标准(JSR-001)消除了对于复杂、专用的实时语言和操作系统的需要,利用Java超常的生产率和为人所熟知的特点,节省了资金。
  在实时Java编程中,Sun公司的两位实时编程专家介绍了开发者成功使用Java RTS及其API所需要的深入知识和实际代码示例,并阐明了用任何RTSJ兼容的环境进行实时编程的基础。
  《Java 实时编程》的内容包括:
  实时原理和概念,以及实时应用设计和开发的独特要求。
  如何把Java应用于实时环境。
  垃圾回收和Java SE回收器。
  使用Java RTS API尽可能高效地解决实际实时系统问题。
  当前领先的Java RTS开发和调试工具。
  实时垃圾回收、线程、调度和分派。
  新的RTSJ内存模型。
  异步事件处理和异步控制转移。
展开
作者简介
  Eric J.Brun0,Sun公司系统工程师,专门从事于金融界的Java RTS。他是《Dr.Dobb’s Jour-hal》的撰稿编辑,并撰写其在线Java博客。
  Greg Bollella博士,Sun公司杰出工程师,领导实时Java研发。他是JSR001——Java实时规范(RealTime Specification for Java ,RTSJ)的规范组组长,并且曾经领导在Java社区过程下的实时Java专家小组。他撰写了多本图书、文章,以及有关实时计算的专业论文。
展开
内容介绍
  《Java 实时编程》主要讲述使用Java RTS进行Java实时编程的各类主题。主要内容包括3个部分:第一部分“实时计算概念”,明确定义计算领域中的实时概念,并讨论了许多实时应用程序设计和开发的理论;第二部分“高级Java RTS”,提供充足的示例代码来说明Java RTS的内部运作机制及其使用;第三部分“使用Java RTS”,讨论了实际的案例研究。
  《Java 实时编程》适合Java程序开发人员、实时软件开发人员,以及使用Java RTS编程的人员使用,也可供高等院校老师和学生参考。
展开
精彩书摘
  1.3 实时计算
  现在,你已经了解了实时是什么以及它意味着什么,现在要对它加以扩展。实时计算是针对真实世界的时间关键制约因素建设应用系统的研究与实践。实时系统必须在某个时间或针对某个最后期限响应外部(往往是物理的)真实世界的事件。实时系统整体通常包括硬件和软件。传统上,实时系统是专门设计的系统,为特定使用而实施。最近实时社区才专注于用通用计算机系统(硬件或软件)来解决实时问题。
  今天,需要特定的专用硬件的实时系统已大部分消失了。例如,现代的芯片组包括可用于实时应用的具有足够小的延迟精度的可编程中断控制器。因此,对实时要求的支持已经转移到软件,即专门的调度程序和资源控制程序。曾经蚀刻到特殊电路的算法现在用通用计算机的软件实现。
  这并不是说,在实时系统中,不需要硬件支持。例如,许多实时系统可能会要求访问可编程中断控制器的低延迟中断和调度、高精度时钟的精确计时、直接物理内存访问或一个高速缓存。大多数现代的计算机硬件,包括服务器、工作站,甚至是台式机和笔记本电脑,支持这些要求。蔗线是运行在这些硬件上的操作系统软件是否支持访问这些硬件设施。
  事实上,操作系统可能直接通过其调度实现支持实时任务,或可能至少允许替代调度算法到位。然而,许多通用操作系统的任务调度实现不同于实时系统的目标。其他一些因素,如整个系统的吞吐量,前台应用程序的性能和GUI刷新率,可能是有利于个别任务的延迟要求。事实上,在一个通用系统中,可能没有办法精确确定或衡量一个应用程序的延迟要求和实际结果。
  然而,在通用的操作系统上,仍有可能实现实时行为,并满足实时任务的最后期限。事实上,这是Java RTS和RTSJ宪章要解决的一个目标:在通用硬件和实时操作系统上的Java的实时行为。在现实中,只有一些通用系统可以支持。
  本章的余下部分概述了实时系统调度任务所涉及的理论和机制。必须明确的是,实时调度理论需要大量的数学用于描述以透彻理解。这里有充分的理由:一个系统要求满足每一个行动的最后期限,否则,如果错过了,可能产生可怕的后果,你需要保证最大的精度。表征和保证系统的行为,数学是做到这一点的唯一办法。但是,我们会试图讨论这个问题,而不使你受限于过深的数学概念。取而代之的是,使用类比、说明和图形表示使概念具体化,到令平均水平的程序员应该感觉很舒服的程度。当然,也为那些对更深的数学和科学的问题感兴趣的人提供了进一步的阅读材料。
  1.3.1 高速公路类比
  一种最简单的描述实时系统的动态调度任务的方法是用高速公路作类比。在开车时,我们都经历过大交通流量的影响;即不可预测的大量时间花在了等待上,而不是向目标前进。这种情况与实时系统或任何系统的任务调度有惊人的相似之处。对于汽车交通,调度的项目是车辆,而它们共享的资源是道路空间。
展开
目录
译者序
前言
致谢
作者简介
第一部分 实时计算概念
第1章 实时系统概述
1.1 实时系统质量
1.2 可预见性和确定性
1.2.1 确定延迟
1.2.2 确定抖动
1.2.3 硬实时与软实时
1.2.4 等时实时
1.2.5 实时与实快
1.2.6 实时与吞吐量
1.2.7 任务完成价值
1.3 实时计算
1.3.1 高速公路类比
1.3.2 高速公路类比——添加优先车道
1.4 实时调度
1.4.1 调度约束
1.4.2 调度算法
1.4.3 实时操作系统
1.4.4 RT-POSIX操作系统扩展
1.5 参考资料

第2章 实时与JavaSE
2.1 Java是实时语言吗
2.1.1 无界定延迟和抖动的来源
2.1.2 缺乏严格的线程优先级
2.2 垃圾回收
2.2.1 究竟什么是垃圾回收
2.2.2 常见的垃圾回收算法
2.3 SunJavaSE6HotSpot中的垃圾回收
2.3.1 Java对象世代
2.3.2 回收器
2.3.3 内存分配
2.3.4 安全点
2.3.5 未来:垃圾优先(G1)
2.4 实时垃圾回收算法
2.4.1 基于工作的垃圾回收
2.4.2 基于时间的垃圾回收
2.4.3 汉瑞克森的垃圾回收
2.4.4 Sun公司的Java实时系统中的RTGC
2.5 Java的困境

第3章 Java实时规范
3.1 实时Java基础
3.2 RTSJ内部机制
3.2.1 调度
3.2.2 内存管理
3.2.3 资源共享
3.2.4 异步事件处理(AEH)
3.2.5 控制的异步转移
3.2.6 物理内存访问
3.3 可选的RTSJ工具
3.4 实时Java的未来

第4章 SunJava实时系统
4.1 JavaRTS程序设计的前奏
4.1.1 操作系统支持
4.1.2 Solaris与实时
4.1.3 Linux与实时
4.2 安装JavaRTS
4.2.1 Solaris上的安装
4.2.2 Linux上的安装
4.3 确定性指南
4.3.1 使用实时线程
4.3.2 调整实时垃圾回收器
4.3.3 关键预留内存
4.3.4 处理器绑定
4.3.5 编译JavaRTS代码
4.3.6 解释RTGC统计
4.3.7 使用RTSJ的时钟API
4.4 命令行选项
4.4.1 RTGC相关选项
4.4.2 与内存相关的选项
4.4.3 线程相关的选项
4.4.4 异步相关选项
4.4.5 编译器和解释器选项
4.4.6 JavaRTS优化选项

第二部分 高级JavaRTS
第5章 线程、调度与新内存模型
5.1 可调度对象
5.1.1 实时调度器
5.1.2 SchedulingParameters
5.1.3 发布参数
5.2 实时线程
5.2.1 使用RealtimeThread
5.2.2 使用NoHeapRealtimeThread
5.2.3 实现周期线程
5.2.4 错过最后期限处理程序
5.2.5 实现非周期性线程
5.3 内存模型
5.3.1 内存访问规则
5.3.2 作用域内存
5.3.3 物理内存

第6章 同步
6.1 资源共享
6.1.1 优先级倒置控制
6.1.2 行动中的优先级继承
6.2 非等待线程通信
6.2.1 使用WaitFreeWriteQueue
6.2.2 使用WaitFreeReadQueue

第7章 实时时钟API
7.1 ClockAPI
7.2 JavaRTS高精度时间操作
7.3 叠加的股票数据提供的例子

第8章 异步事件
8.1 异步事件处理
8.2 创建一个异步事件处理程序
8.2.1 内部应用程序事件
8.2.2 约束异步事件处理程序
8.2.3 与事件触发计数一起工作
8.2.4 处理POSIX事件
8.2.5 指定内存区域
8.3 基于时间的事件
8.3.1 一次性定时器
8.3.2 周期定时器

第9章 异步控制转移和线程终止
9.1 异步控制转移
9.1.1 实现可中断代码
9.1.2 实现Timed操作
9.2 异步线程终止

第10章 实时垃圾回收器内部机制
10.1 RTGC操作理论
10.1.1 并发标记
10.1.2 并发清扫
10.1.3 并发清零
10.2 RTGC内存分配
10.2.1 堆布局
10.2.2 线程局部分配缓冲器
10.2.3 对象分裂
10.2.4 数组分裂和缓存
10.3 RTGC策略
10.3.1 全时RTGC策略
10.3.2 隔离的RTGC策略
10.3.3 基于时间的RTGC策略
10.3.4 孤立的RTGC策略

第三部分 使用JavaRTS
第11章 证券交易系统
11.1 股票市场
11.1.1 限价订单
11.1.2 止损订单
11.2 交易系统实现
11.2.1 系统架构
11.2.2 交易引擎
11.3 JavaSE版本
11.3.1 MarketManager类
11.3.2 OrderManager类
11.4 JavaRTS版本
11.5 JavaRTS没有堆的版本
11.5.1 OrderManager类
11.5.2 MarketManager类
11.6 应用程序配置

第12章 JavaRTS工具
12.1 JavaRTS开发
12.1.1 使用NetBeans插件进行远程调试
12.1.2 替代的开发环境
12.2 线程调度展示台(TSV)
12.2.1 TSV日志文件格式
12.2.2 使用TSV日志文件
12.2.3 记录应用程序的事件
12.2.4 用TSV查看器工作
12.3 JavaRTSDTrace探针
12.3.1 用于Schedulable的DTrace探针
12.3.2 用于内存的DTrace探针
12.3.3 用于线程的DTrace探针
12.3.4 用于AsyncEventHandlers的DTrace探针
12.3.5 用于编译的DTrace探针
12.3.6 用于RTGC的DTrace探针
12.3.7 用于类加载的DTrace探针
12.3.8 用于VM活动的DTrace探针
12.3.9 特定应用程序的DTrace探针
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证