书籍作者:吉姆·考林 | ISBN:9787302634270 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:10004 |
创建日期:2024-04-13 | 发布日期:2024-04-13 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《嵌入式实时操作系统——理论基础》首先介绍了嵌入式实时操作系统(RTOS)的基本概念,包括什么是RTOS、RTOS的组成和结构、为什么要在设计中使用RTOS、RTOS运行的微处理器架构(单核和多核处理器)以及集中和分布式计算系统; 接着进一步深入到RTOS内核机制,详细阐述了RTOS的调度方法、通信机制、存储管理和资源共享等RTOS核心基础理论知识; 然后作者依托丰富的实时系统工程和研究经验,对调度策略进行分析,讨论RTOS性能测试和相关分析工具的使用,对于实际问题给出解决方法; 安全关键系统是嵌入式实时操作系统的重要应用场景,本书最后专门用一章来讨论在安全关键系统中使用RTOS的一些问题,非常具体和实用。
《嵌入式实时操作系统——理论基础》的读者可以是高等院校相关专业的学生,也可以是想要进入软件领域的工程师、即将进入嵌入式领域的软件工程师,还可以是对软件的实时系统感兴趣的爱好者。
本系列书的内容是什么
《嵌入式实时操作系统——理论基础》和《嵌入式实时操作系统——基于STM32Cube、FreeRTOS和Tracealyzer的应用开发》为系列图书,旨在为嵌入式实时操作系统开发提供坚实的基础知识和技能,内容主要分为两类:
(1) 相关的基础知识。
(2) 实现特定设计的方法和开发技能。
来自成熟专业领域(电子、机械、航空工程等)的工程师能够清楚地理解两者间的不同。有经验的工程师也懂得,对于基础知识的理解是施展技能的先决条件。遗憾的是,在软件工程领域,这一道理时常被忽视。
谁应该阅读本系列书
本系列书的目标读者是实时嵌入式系统软件开发者,或者计划进入该领域的人士,主要考虑了下面四个方向的读者群:
(1) 学生。
(2) 想要进入软件领域的工程师和科学家。
(3) 即将进入嵌入式领域的专业软件工程师。
(4) 在基于软件的实时系统的基本原理方面没有接受过正式教育的程序员。
本书的内容是什么
本书涉及实时嵌入式系统的基本原理,旨在回答下面这些问题:
(1) 实时操作系统(RTOS)是什么?
(2) 为什么要在设计中使用RTOS?
(3) 使用RTOS有什么缺点?
(4) 嵌入式实时操作系统有哪些组成部分?
(5) 现代嵌入式系统可以使用单处理器、多处理器和多计算机架构,我们如何在多种平台上部署RTOS?
(6) 如何评估RTOS的性能?如何改善性能?
(7) 如何调试基于RTOS的设计?
目录展示了关于内容的更多细节。每一章的开头都会清楚地列出目标,推荐快速阅读这些目标,从而了解全书的范围和意图。
与本书配套的《嵌入式实时操作系统——基于STM32Cube、FreeRTOS和Tracealyzer的应用开发》(已由清华大学出版社于2021年5月出版),其中包含帮助理解核心基础知识(本书第1~5章)的实验。在阅读原理的同时,推荐进行相关的实验,这有助于将来解决真实的RTOS设计问题。
应该如何阅读本书
无论是否有经验,请大家务必阅读第1章,而且要充分吸收其中的信息。如果不能真正地理解第1章讨论的问题,你将很难做出好的设计。
第2~6章是和实时嵌入式系统相关的基础知识,其中不仅展示了多任务设计的实现方法,还讨论了为什么要用特定的方法,目标读者是初次接触实时嵌入式系统任务设计和实现的开发者。这几章重点针对单核处理器进行讨论。第7、8章扩宽了范围,讨论了多处理器和分布式系统(这两者之间的边界并不是那么清晰)。
第9章进一步扩展了针对任务调度方法的讨论,内容基本是理论性的,并带有一些实践性方面的倾向。之所以这么晚才进入这一主题,是为了让读者能够更容易地理解其内容。如果已经充分地掌握了基础概念,这一章应该很容易理解。
第10~12章是和实时操作系统的实用性相关的内容。如果刚进入RTOS领域,第10章有助于理解不同操作系统结构之间的区别,这在选择第一个RTOS的时候十分有用。与此对应,如果已经构建好了系统,第11、12章会更为实用,这两章和运行时的软件行为、质量、可靠性有关。
第13章的主题是在关键系统中使用RTOS,描述了针对更高的安全完整性等级,改善RTOS安全性及可靠性的步骤。随着对可信嵌入式系统需求的增加,安全关键软件已经成为一个热门话题。这一章包括许多增强系统健壮性的方法,适用于不那么关键的应用。即使你的工作不需要和关键系统打交道,这一章也非常值得阅读。
致谢
书中引用了一些图片,在相应图片的下方给出了来源,在此表示感谢。最后,我想要感谢我的儿子Niall,他帮助我检查了书稿,指出了代码中好几个问题。
读者们,希望你们喜欢本书,祝你们一切都好。
吉姆·考林(Jim Cooling)
2022年5月写于马克菲尔德(英国)
配套资料
第1章实时操作系统基础
1.1背景
1.2开发高质量的软件
1.3软件建模
1.4时间和时序的重要性
1.5处理多个任务
1.6多个任务的复杂情形
1.7中断作为执行引擎——简单的准并发
1.8实时操作系统的基本功能
1.9执行系统、内核和操作系统
1.10基于任务的软件设计——回顾
1.11回顾
第2章调度——概念和实现
2.1简介
2.2简单循环、周期循环和合作调度
2.3时间分片调度
2.4任务优先级
2.5使用队列
2.6基于优先级的抢占式调度
2.7任务队列的实现——任务控制块
2.8进程描述符
2.9滴答
2.10优先级和系统响应速度
2.11绕过调度器
2.12代码共享和重入
2.13运行时行为的不可预测性
2.14更多关于任务的细节
2.15回顾
第3章使用互斥机制控制资源共享
3.1共享资源使用中的问题
3.2使用单个标志实现互斥
3.3信号量
3.3.1二值信号量
3.3.2通用或计数信号量
3.3.3信号量的限制和缺陷
3.4互斥量
3.5简单监视器
3.6互斥机制综述
3.7回顾
第4章资源共享和争用问题
4.1资源争用产生的死锁问题详解
4.2设计无死锁的系统
4.3防止死锁
4.3.1允许资源共享
4.3.2允许请求抢占
4.3.3控制资源分配
4.4优先级翻转及任务阻塞
4.4.1优先级翻转问题
4.4.2基本优先级继承协议
4.4.3立即优先级天花板协议
4.5死锁预防和性能问题
4.6回顾
第5章任务间通信
5.1简介
5.1.1任务间通信概述
5.1.2协同与同步
5.2无数据传输的任务交互
5.2.1任务协同机制
5.2.2使用事件标志单向同步任务
5.2.3使用信号双向同步任务
5.3无任务同步或协同的数据传输
5.3.1概述
5.3.2内存池
5.3.3队列
5.4有数据传输的任务同步
5.5回顾
第6章存储的使用和管理
6.1在嵌入式系统中存储数字信息
6.1.1简介
6.1.2非易失性数据存储
6.1.3易失性数据存储
6.1.4内存设备——Flash和RAM的简单比较
6.1.5内存设备——SRAM和DRAM的简单比较
6.1.6嵌入式系统——存储设备结构
6.2存储的概念与实现
6.3消除任务间干扰
6.3.1一种控制内存访问的简单方法
6.3.2使用内存保护单元控制内存访问
6.3.3使用内存管理单元控制内存访问
6.4动态内存分配及其问题
6.4.1内存分配与碎片化
6.4.2内存分配和泄漏
6.4.3安全的内存分配
6.5内存管理和固态驱动器
6.6回顾
第7章多处理器系统
7.1什么是嵌入式多处理器
7.1.1为什么要用多处理器
7.1.2处理器架构概述
7.1.3多核处理器——同构和异构类型
7.1.4多机系统结构
7.2软件问题——作业的划分和分配
7.2.1介绍
7.2.2将软件构建为一组功能
7.2.3将软件构建为一组数据处理的操作
7.3软件控制和执行的问题
7.3.1基本的操作系统问题
7.3.2AMP系统的调度和执行
7.3.3SMP系统的调度和执行
7.3.4BMP和混合系统的调度和执行
7.3.5多处理器模式间的比较
7.4回顾
第8章分布式系统
8.1分布式系统的软件结构
8.2分布式系统的通信和时序问题
8.3将软件映射到分布式系统的硬件上
8.4回顾
第9章调度策略的分析
9.1概述
9.2基于优先级的非抢占式调度策略
9.3基于优先级的静态抢占调度策略——概述
9.4基于优先级的静态抢占调度策略——单调速率调度
9.5基于优先级的静态抢占调度策略——结合优先级和重要性的启发式方法
9.6基于优先级的动态抢占调度策略——概述
9.7基于优先级的动态抢占调度策略——最早截止时间调度
9.8基于优先级的动态抢占调度策略——计算时间调度
9.9基于优先级的动态抢占调度策略——空闲时间/松弛度调度
9.10改善处理器利用率——速率组
9.11调度策略——最后的解释
9.12调度时序图——符号一览
9.13回顾
第10章操作系统: 基本结构和功能
10.1背景
10.2通过中断实现简单的多任务处理
10.3超微内核
10.4微内核
10.5通用的嵌入式RTOS
10.6回顾
第11章RTOS的性能和基准测试
11.1概述
11.2测量计算机性能——基准测试
11.2.1概述
11.2.2计算性能基准测试
11.2.3操作系统性能
11.3处理器系统的时间开销
11.4操作系统性能和代表性基准测试
11.5操作系统性能和综合基准测试
11.5.1概述
11.5.2基础要求
11.5.3测试类别
11.5.4基线(参考)测试数据
11.5.5压力测试方法
11.6回顾
第12章多任务软件的测试和调试
12.1场景引入
12.2测试和开发多任务软件——专业方法
12.3在目标机内测试——实用工具功能
12.3.1概述
12.3.2使用专用的控制和数据采集工具测试RTOS
12.3.3使用片上数据存储方法测试RTOS
12.3.4使用主机系统数据存储设施测试RTOS
12.4目标系统测试——实用要点
12.4.1介绍
12.4.2测试单个任务的并发性
12.4.3实现和测试并发操作
12.5回顾
第13章在关键系统中使用RTOS
13.1关键系统和安全完整性等级简介
13.2操作系统问题
13.3RAM使用中的问题及补救措施
13.3.1概述
13.3.2内存丢失
13.3.3内存耗尽
13.4堆栈使用
13.4.1堆栈使用静态分配的RAM
13.4.2改善堆栈可靠性
13.5运行时间问题
13.5.1概述
13.5.2截止时间和响应时间问题
13.5.3减少任务之间的干扰
13.5.4处理不可预测的功能行为
13.6监控和检测运行时故障
13.6.1看门狗定时器介绍
13.6.2在单任务设计中使用WDT
13.6.3窗口看门狗定时器
13.6.4在多任务设计中使用WDT
13.7操作系统与关键分布式应用
13.8通过时间分区运行多个不同的应用
13.9设计指南
13.10回顾
第14章结语
14.1任务、线程和进程
14.1.1概述
14.1.2嵌入式环境的程序执行——入门指导
14.1.3软件的活动、应用和任务
14.1.4单处理器任务内的并发
14.1.5运行多个应用
14.1.6总结
14.2RTOS与GPOS的比较
附录A重要的基础设施
A.1处理器间通信
A.2嵌入式系统中的图形用户界面
A.3回顾
附录B参考指南
附录C缩略语表