嵌入式操作系统基础μC/OSII和Linux 第2版PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:任哲,樊生文编著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:2011
- ISBN:9787512405493
- 页数:530 页
第1章 操作系统的基本概念 1
1.1 计算机操作系统 1
1.1.1 什么是计算机操作系统 1
1.1.2 操作系统的功能 2
1.1.3 操作系统的服务和用户接口 7
1.2 操作系统的内核是由中断驱动的 9
1.2.1 中断和中断处理 9
1.2.2 系统时钟的实现 11
1.3 进程和线程的基本概念 11
1.3.1 进程的概念 11
1.3.2 进程的结构 13
1.3.3 线程的概念 15
1.4 进程管理 16
1.4.1 进程(线程)调度 17
1.4.2 进程(线程)的同步与通信 20
1.4.3 进程的其他管理 22
1.5 存储管理 22
1.5.1 计算机存储器的层次 22
1.5.2 存储空间的段页式分区 23
1.5.3 虚拟存储器的概念 25
1.6 I/O与设备管理 26
1.6.1 I/O设备及其抽象 26
1.6.2 操作系统的设备无关性 27
1.6.3 操作系统对设备的管理 28
1.7 文件管理 29
1.7.1 文件、文件结构和文件系统 30
1.7.2 文件的管理 31
1.8 宏内核与微内核 32
1.8.1 内核 32
1.8.2 简述宏内核与微内核 33
1.9 操作系统的分类 35
1.9.1 单用户操作系统 35
1.9.2 批处理操作系统 35
1.9.3 分时操作系统 35
1.9.4 实时操作系统 36
1.10 操作系统的Shell 36
1.11 操作系统的引导和装入 37
1.12 本章小结 38
第2章 实时操作系统的基本概念 40
2.1 实时系统及其特点 40
2.1.1 什么是实时系统 40
2.1.2 实时系统的特点 42
2.2 计算机实时操作系统 43
2.2.1 实时操作系统 43
2.2.2 关于内核的可剥夺性 46
2.2.3 实时调度 47
2.2.4 实时进程的可调度性 50
2.2.5 实时系统的时钟 51
2.2.6 实时系统的存储管理 52
2.2.7 实时系统与普通系统的比较 53
2.3 本章小结 53
第3章 嵌入式系统和嵌入式实时操作系统 54
3.1 嵌入式系统的基本概念 54
3.1.1 什么是嵌入式系统 54
3.1.2 嵌入式系统的发展历程 56
3.1.3 嵌入式系统的特点 58
3.2 嵌入式实时操作系统 59
3.2.1 什么是嵌入式实时操作系统 59
3.2.2 微内核 60
3.2.3 嵌入式实时操作系统的可裁剪性及其实现 62
3.3 常见的嵌入式实时操作系统简介 63
3.3.1 常见的源码开放的嵌入式操作系统 63
3.3.2 常见的商业嵌入式操作系统 65
3.4 本章小结 67
第4章 嵌入式实时操作系统μC/OS-Ⅱ及其任务 68
4.1 μC/OS-Ⅱ概述 68
4.1.1 μC/OS-Ⅱ的特点 68
4.1.2 μC/OS-Ⅱ的文件结构 70
4.1.3 μC/OS-Ⅱ可裁剪性的实现 73
4.2 μC/OS-Ⅱ的任务 74
4.3 μC/OS-Ⅱ任务的存储结构 74
4.4 μC/OS-Ⅱ任务的状态 76
4.5 μC/OS-Ⅱ任务的优先级别 77
4.6 任务控制块 78
4.6.1 任务控制块的结构 78
4.6.2 任务控制块链表 79
4.7 任务堆栈 82
4.7.1 任务堆栈的创建 82
4.7.2 任务堆栈的初始化 85
4.8 系统任务 85
4.8.1 空闲任务 85
4.8.2 统计任务 86
4.9 临界区 87
4.10 本章小结 87
第5章 μC/OS-Ⅱ的任务管理 88
5.1 就绪任务的管理 88
5.1.1 就绪任务表的结构 88
5.1.2 就绪任务表的操作 90
5.2 任务的创建 93
5.2.1 用函数OSTaskCreate()创建任务 93
5.2.2 用函数OSTaskCreateExt()创建任务 96
5.2.3 创建任务的一般方法 97
5.3 任务的挂起和恢复 100
5.3.1 挂起任务 101
5.3.2 恢复任务 102
5.4 其他任务管理函数 103
5.4.1 任务优先级别的修改 103
5.4.2 任务的删除 103
5.4.3 查询任务的信息 106
5.5 本章小结 106
第6章 μC/OS-Ⅱ的任务调度 107
6.1 调度器OSSched()的任务调度部分 107
6.2 调度器OSSched()的任务切换部分 109
6.2.1 任务断点的保存 110
6.2.2 任务的切换 110
6.3 调度的时机 113
6.4 本章小结 113
第7章 μC/OS-Ⅱ的初始化和启动 114
7.1 μC/OS-Ⅱ的初始化 114
7.1.1 μC/OS-Ⅱ需要初始化的数据结构及全局变量 114
7.1.2 μC/OS-Ⅱ的初始化 115
7.2 μC/OS-Ⅱ的启动 117
7.3 一个示例 120
7.4 本章小结 128
第8章 μC/OS-Ⅱ的中断与时钟 129
8.1 μC/OS-Ⅱ的中断 129
8.1.1 μC/OS-Ⅱ的中断过程 129
8.1.2 中断级任务切换函数 133
8.1.3 临界段的处理 133
8.2 μC/OS-Ⅱ的时钟 135
8.3 μC/OS-Ⅱ的时间管理 137
8.3.1 任务的延时 137
8.3.2 取消任务的延时 138
8.3.3 获取和设置系统时间 140
8.4 本章小结 140
第9章 任务的同步与通信 141
9.1 任务间的同步和事件控制块 141
9.1.1 任务间的同步 141
9.1.2 事件 142
9.1.3 事件控制块 155
9.1.4 事件控制块的基本操作函数 156
9.1.5 空事件控制块链表 158
9.2 信号量及其操作 159
9.2.1 信号量 159
9.2.2 信号量的操作 160
9.3 任务优先级反转和互斥型信号量 167
9.3.1 任务优先级的反转现象 168
9.3.2 互斥型信号量 173
9.4 消息邮箱及其操作 176
9.4.1 消息邮箱 176
9.4.2 消息邮箱的操作 177
9.5 消息队列及其操作 182
9.5.1 消息队列 182
9.5.2 消息队列的操作 186
9.6 本章小结 192
第10章 信号量集 193
10.1 信号量集的结构 193
10.1.1 信号量集的标志组 193
10.1.2 等待任务链表 194
10.1.3 对等待任务链表的操作 196
10.2 信号量集的操作 198
10.2.1 创建信号量集 198
10.2.2 请求信号量集 200
10.2.3 向信号量集发送信号 200
10.2.4 查询信号量集的状态 201
10.2.5 删除信号量集 201
10.3 本章小结 201
第11章 μC/OS-Ⅱ的内存管理 202
11.1 内存控制块 202
11.1.1 内存的划分 202
11.1.2 内存控制块OS_MEM的结构 203
11.1.3 空内存控制块链表 204
11.2 内存的管理 204
11.2.1 创建内存分区 205
11.2.2 请求获得一个内存块 207
11.2.3 释放一个内存块 209
11.2.4 查询一个内存分区的状态 210
11.3 本章小结 210
第12章 关于μC/OS-Ⅱ的其他问题 211
12.1 关于μC/OS-Ⅱ的几个问题 211
12.1.1 μC/OS-Ⅱ只是一个微内核 211
12.1.2 关于μC/OS-Ⅱ的Shell 211
12.2 μC/OS-Ⅱ在PC机上的测试台 212
12.3 μC/OS-Ⅱ在PC机上的移植 213
12.3.1 任务切换函数OSCtxSw() 213
12.3.2 任务切换宏OS_TASK_SW() 214
12.3.3 中断级任务切换函数OSIntCtxSw() 215
12.3.4 PC机中DOS的系统时钟 217
12.3.5 PC机中μC/OS-Ⅱ的系统时钟 217
12.3.6 μC/OS-Ⅱ系统时钟中断服务程序 218
12.3.7 在任务中安装μC/OS-Ⅱ系统时钟的中断向量 219
12.3.8 在任务中由μC/OS-Ⅱ返回DOS环境 219
12.4 本章小结 220
第13章 基于ARM的μC/OS-Ⅱ 221
13.1 移植规划 221
13.1.1 编译器的选择 221
13.1.2 ARM7工作模式的选择 221
13.2 移植 222
13.2.1 文件OS_CPU.H的编写 222
13.2.2 文件OS_CPU_C.C的编写 224
13.2.3 文件OS_CPU_A.S的编写 230
13.2.4 关于中断及时钟节拍 233
13.3 移植μC/OS-Ⅱ到LPC2000 235
13.3.1 挂接SWI软件中断 236
13.3.2 中断及时钟节拍中断 236
13.3.3 一个基于μC/OS-Ⅱ和ARM的应用程序实例 237
13.4 本章小结 239
第14章 Linux基础知识 240
14.1 Linux系统简介 240
14.1.1 Linux系统的结构及特点 241
14.1.2 Linux内核版本 243
14.2 Linux系统的嵌入式应用 243
14.3 Linux中的C语言和汇编语言 247
14.3.1 Linux中的C语言 247
14.3.2 Linux中的汇编语言 248
14.4 Linux中的链表 249
14.4.1 Linux链表的设计思想 249
14.4.2 链表头的创建及链表节点的插入 251
14.4.3 链表节点的访问 252
14.4.4 链表的其余操作 254
14.4.5 哈希链表 255
14.5 Linux模块 256
14.5.1 模块的基本框架代码 256
14.5.2 模块的辅助框架代码 260
14.5.3 Linux模块的实现机制及其管理 262
14.5.4 模块的内核描述 265
14.6 本章小结 268
第15章 Linux的内存管理 269
15.1 内存管理的目标 269
15.2 虚拟内存 269
15.2.1 虚拟内存的概念 270
15.2.2 Linux的虚拟内存技术 275
15.2.3 Linux的页表结构 280
15.3 Linux物理内存的管理 282
15.3.1 Linux物理页框的描述 282
15.3.2 物理页框的分配与回收 283
15.4 Linux虚拟内存空间描述 285
15.4.1 虚拟内存区的描述 285
15.4.2 程序与虚拟内存和物理内存的关系 289
15.5 Linux的内核空间 290
15.5.1 内核空间与用户空间的关系 290
15.5.2 内核空间的总体布局 291
15.5.3 内核空间的高端内存 293
15.5.4 内核内存分配修饰符gfp 295
15.5.5 内核常用内存分配及地址映射函数 297
15.6 内核空间的slab分配模式 303
15.7 Linux内存管理的总貌 306
15.8 本章小结 307
第16章 Linux进程及其管理 308
16.1 Linux进程 308
16.1.1 进程及其私有内存空间 308
16.1.2 Linux进程的状态 311
16.1.3 Linux的进程控制块 312
16.2 Linux进程的创建 314
16.2.1 子进程的创建 315
16.2.2 与进程相关的系统调用 320
16.2.3 内核中的进程与线程 327
16.3 Linux进程调度 329
16.3.1 Linux进程的时间片与权重参数 330
16.3.2 调度策略 331
16.3.3 普通进程调度策略 331
16.3.4 实时进程调度策略 333
16.3.5 Linux调度时机 334
16.4 Linux 2.6对调度器的改进 335
16.4.1 就绪进程队列runqueue 335
16.4.2 优先级的计算方法 339
16.5 本章小结 341
第17章 中断/异常和系统调用 342
17.1 处理器的硬件中断机制 342
17.1.1 中断及中断向量表 342
17.1.2 异常 344
17.1.3 陷阱 345
17.1.4 中断处理过程 345
17.2 Linux的两级中断 346
17.3 Linux硬中断结构 347
17.3.1 中断通道 347
17.3.2 中断请求队列 348
17.3.3 通道的中断处理程序IRQn_interrupt 351
17.4 Linux软中断结构 355
17.4.1 以前的bottom half 355
17.4.2 任务队列 357
17.4.3 Linux的软中断及小任务机制 359
17.4.4 Linux系统中的中断实例——系统时钟 364
17.4.5 Linux系统中的软中断实例——软件定时器 367
17.5 系统调用 368
17.5.1 系统调用、封装例程和内核服务例程 368
17.5.2 Linux的系统调用 369
17.6 本章小结 374
第18章 Linux文件系统 376
18.1 文件与文件系统 376
18.1.1 文件的基本概念 376
18.1.2 用户对文件的主要操作 379
18.2 文件的存储 380
18.2.1 文件的简单存储方式 380
18.2.2 存储块的组织方式 381
18.2.3 空闲块的记录 383
18.3 文件目录 384
18.3.1 一体化目录 384
18.3.2 分立式目录 384
18.3.3 硬连接与符号连接 385
18.3.4 目录树及根目录 386
18.3.5 磁盘文件系统 387
18.4 Ext2文件系统 388
18.4.1 Ext2的索引节点 388
18.4.2 Ext2的目录文件及目录项 390
18.4.3 Ext2在磁盘上的存储结构 392
18.4.4 Ext2文件的用户操作函数集 395
18.5 其他常用文件系统 395
18.5.1 一般文件系统 395
18.5.2 基于日志的文件系统 396
18.6 操作系统的文件管理系统 397
18.6.1 文件管理系统与磁盘文件系统的关系 397
18.6.2 文件缓冲区 399
18.6.3 文件系统的层次结构 399
18.6.4 虚拟文件系统 400
18.7 Linux的虚拟文件系统 400
18.7.1 VFS的原理 401
18.7.2 VFS的超级块 402
18.7.3 VFS的dentry结构 405
18.7.4 VFS的i节点 406
18.7.5 文件缓冲区 409
18.8 Linux的Proc文件系统简介 412
18.9 操作系统对文件系统的管理 413
18.10 文件与进程的关联 415
18.10.1 进程与其打开文件的关系 415
18.10.2 系统打开和关闭文件表 419
18.11 根据文件路径查找索引节点 419
18.12 进程创建时文件的复制和共享 422
18.13 本章小结 422
第19章 Linux进程通信 424
19.1 基本概念 424
19.2 System V IPC机制简介 426
19.3 共享内存 428
19.3.1 共享内存原理与shm系统 429
19.3.2 Linux共享内存结构 430
19.3.3 共享内存的使用 431
19.4 消息队列 438
19.4.1 消息的结构 439
19.4.2 消息队列的结构 440
19.4.3 消息队列的创建与打开 443
19.4.4 消息队列的读/写 443
19.5 管道 446
19.5.1 匿名管道 446
19.5.2 命名管道 451
19.6 Linux的信号 452
19.6.1 基本概念 452
19.6.2 信号的发送 454
19.6.3 信号的安装 454
19.6.4 进程的信号向量表 457
19.6.5 进程响应信号的时机 458
19.6.6 信号的生命期及可靠性 459
19.7 本章小结 461
第20章 Linux的同步控制 462
20.1 概述 462
20.1.1 竞争、临界区与互斥 463
20.1.2 信号量与P、V操作 464
20.1.3 临界段代码格式 465
20.1.4 用信号量实现同步 466
20.2 Linux信号量集 467
20.2.1 信号量集的结构 467
20.2.2 信号量集的操作 470
20.2.3 进程控制块中关于信号量集的域 479
20.3 本章小结 480
第21章 Linux设备驱动 481
21.1 概述 481
21.1.1 设备分类 481
21.1.2 外部设备控制器 483
21.1.3 总线 485
21.1.4 外部设备与处理器的交互方式 486
21.1.5 设备管理任务 487
21.2 设备驱动程序 488
21.2.1 设备驱动程序框架 489
21.2.2 缓冲区及设备驱动程序的特点 490
21.3 设备驱动程序及其内核接口 491
21.3.1 设备标识 491
21.3.2 字符设备和块设备 491
21.3.3 系统调用入口点 492
21.4 设备管理 492
21.4.1 设备控制块 492
21.4.2 设备文件 494
21.5 Linux设备驱动程序 496
21.5.1 Linux设备驱动程序框架 496
21.5.2 驱动程序函数跳转表 497
21.5.3 Linux设备文件与设备驱动之间的关系 497
21.6 Linux字符设备驱动程序 499
21.6.1 Linux设备驱动程序函数集 499
21.6.2 Linux的设备号 503
21.6.3 Linux字符设备驱动程序设计及示例 503
21.7 本章小结 512
第22章 μCLinux简介 513
22.1 Linux在嵌入式应用中的局限 513
22.2 μCLinux的架构 514
22.3 μCLinux的内存管理 515
22.3.1 无MMU的内存管理 515
22.3.2 内存管理的Flat模式 515
22.3.3 内存管理模块的启动与初始化 516
22.3.4 Flat可执行文件格式 517
22.4 μCLinux的文件系统 517
22.4.1 romfs文件系统 518
22.4.2 ramfs文件系统 521
22.4.3 闪存与JFFS2文件系统 522
22.5 μCLinux的开发环境 528
22.6 本章小结 529
参考文献 530
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《胃癌基础病理》(日)塚本彻哉编者;宫健,刘石译者 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019