图书介绍
嵌入式操作系统基础μC/OSII和Linux 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![嵌入式操作系统基础μC/OSII和Linux 第2版](https://www.shukui.net/cover/30/33484522.jpg)
- 任哲,樊生文编著 著
- 出版社: 北京:北京航空航天大学出版社
- ISBN:9787512405493
- 出版时间:2011
- 标注页数:530页
- 文件大小:167MB
- 文件页数:545页
- 主题词:实时操作系统-程序设计;Linux操作系统
PDF下载
下载说明
嵌入式操作系统基础μC/OSII和Linux 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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 操作系统的Shell36
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-Ⅱ的Shell211
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-Ⅱ到LPC2000235
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 内核内存分配修饰符gfp295
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 就绪进程队列runqueue335
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_interrupt351
17.4 Linux软中断结构355
17.4.1 以前的bottom half355
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