图书介绍
嵌入式操作系统基础μC/OS-II和LinuxPDF|Epub|txt|kindle电子书版本网盘下载
- 任哲,潘树林,房红征编著 著
- 出版社: 北京:北京航空航天大学出版社
- ISBN:7810778978
- 出版时间:2006
- 标注页数:422页
- 文件大小:165MB
- 文件页数:439页
- 主题词:实时操作系统
PDF下载
下载说明
嵌入式操作系统基础μC/OS-II和LinuxPDF格式电子书版下载
下载的文件为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.10 操作系统的Shell36
1.9.4 实时操作系统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.3 μC/OS-Ⅱ任务的存储结构74
4.2 μ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.2 任务的切换110
6.2.1 任务断点的保存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.1 μC/OS-Ⅱ的中断129
8.1.1 μC/OS-Ⅱ的中断过程129
第8章 μ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.1 任务间的同步和事件控制块141
9.1.1 任务间的同步141
第9章 任务的同步与通信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.1 创建信号量集198
10.2 信号量集的操作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.1 文件OS_CPU.H的编写222
13.2 移植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.1 Linux系统简介240
14.1.1 Linux系统的发展240
第14章 Linux基础知识240
14.1.2 Linux系统的结构241
14.1.3 Linux系统的特点241
14.1.4 Linux内核的版本号243
14.1.5 Linux的一些商业版243
14.2 Linux系统的嵌入式应用244
14.3 Linux中的C语言和汇编语言247
14.3.1 Linux中的C语言247
14.3.2 Linux中的汇编语言248
14.4 Linux的链表数据结构249
14.4.1 Linux链表的设计思想250
14.4.2 链表头的创建及链表节点的插入251
14.4.3 链表节点的访问253
14.4.4 链表的其余操作的宏和函数254
14.4.5 哈希链表255
14.4.6 RCU(Read-Copy Update)256
14.5 本章小结256
第15章 Linux的进程257
15.1 Linux的进程257
15.1.1 Linux进程的状态257
15.1.2 Linux用户进程的组成258
15.1.3 Linux的进程控制块259
15.2 Linux进程的创建261
15.2.1 系统调用fork()262
15.2.2 系统调用execve()265
15.2.3 系统调用exit()266
15.2.4 系统调用wait()267
15.2.5 系统调用vfork()267
15.3 Linux的进程调度268
15.3.1 进程的运行队列268
15.3.2 调度原则268
15.3.3 普通进程的调度策略269
15.3.4 实时进程的调度策略272
15.3.5 Linux的调度时机273
15.3.6 Linux调度的实时性273
15.4.2 优化了的优先级计算方法274
15.4 Linux 2.6对调度器的改进274
15.4.1 就绪进程队列runqueue274
15.5 本章小结277
第16章 Linux的内存管理278
16.1 内存管理的目标278
16.2 虚拟内存279
16.2.1 虚拟内存的概念279
16.2.2 Linux的虚拟内存技术284
16.2.3 Linux的页表结构290
16.3 Linux虚拟内存空间的结构291
16.3.1 Linux虚拟内存的用户空间292
16.3.2 Linux虚拟内存的内核空间296
16.4.1 Linux描述物理内存的数据结构299
16.4 Linux的物理内存结构及管理299
16.4.2 Linux进程与物理内存的关系300
16.5 进程与虚拟内存和物理内存的关系301
16.6 物理内存的分配与回收301
16.6.1 物理页框的分配302
16.6.2 物理页框的回收303
16.6.3 守护进程304
16.7 Linux内存管理的总貌304
16.8 内核空间的slab分配模式305
16.9 本章小结308
17.1.1 文件的基本概念309
第17章 Linux的文件系统309
17.1 文件及文件系统309
17.1.2 文件系统的一般结构310
17.2 文件的存储方式311
17.2.1 文件存储的物理结构311
17.2.2 链接分配方式311
17.2.3 文件的索引分配方式313
17.2.4 空闲空间的管理313
17.3 目录文件及其结构314
17.3.1 一体化目录文件314
17.3.2 分立式目录文件315
17.4.1 常用的文件系统316
17.4 常用的文件系统及文件系统的基本组成316
17.4.2 文件系统基本组成与实现317
17.5 Ext2文件系统317
17.5.1 Ext2的索引节点317
17.5.2 Ext2的目录及目录项320
17.5.3 Ext2文件系统在外存上的存储结构322
17.5.4 Ext2文件的操作函数集325
17.6 Linux的虚拟文件系统325
17.6.1 虚拟文件系统的基本概念325
17.6.2 VFS的超级块327
17.6.3 VFS的dentry结构328
17.6.4 VFS的i节点330
17.6.5 VFS与实际文件系统的关系331
17.7 文件的页缓冲区332
17.8 文件系统的注册、安装与卸载333
17.9 Linux的proc文件系统336
17.9.1 proc文件系统的作用336
17.9.2 proc文件系统的安装337
17.10 文件系统与进程的关联337
17.10.1 进程与其打开文件的关系337
17.10.2 进程与文件系统的关系340
17.10.3 进程与文件系统及其所打开文件的关系340
17.12 本章小结341
17.11 VFS的操作界面341
第18章 Linux的中断、时钟和系统调用343
18.1 Linux外部中断程序的前半部分和后半部分343
18.2 Linux的外部中断及其前半部分的执行344
18.2.1 中断通道344
18.2.2 中断源及中断服务例程345
18.2.3 中断请求队列345
18.2.4 通道的中断处理程序IRQn_interrupt349
18.3 Linux中断后半部分的执行352
18.3.1 历史上的bottom half352
18.3.2 任务队列354
18.3.3 Linux的小任务机制356
18.3.4 软中断359
18.4 Linux的时钟与时间系统361
18.4.1 时钟及时钟中断361
18.4.2 Linux的时间系统362
18.5 Linux的系统调用362
18.5.1 系统调用接口、系统调用例程和内核服务例程的概念363
18.5.2 系统调用接口、系统调用例程和内核服务例程的实现364
18.5.3 内核服务例程与系统调用接口367
18.5.4 用户自定义系统调用例程367
18.6 本章小结368
第19章 Linux模块简介370
19.1 模块的基本概念370
19.1.1 什么是模块370
19.1.2 模块示例371
19.2 Linux模块的实现机制373
19.2.1 可移出符号373
19.2.2 模块的引用计数器374
19.2.3 模块的结构374
19.2.4 modutils程序375
19.3 本章小结375
20.1.1 设备的标识376
20.1.2 块设备和字符设备376
第20章 Linux的设备驱动基础376
20.1 外部设备的基本概念376
20.1.3 外部设备的硬件接口377
20.1.4 外部设备与处理器的联络方式378
20.2 设备驱动程序的基本概念378
20.2.1 设备驱动程序的函数跳转表378
20.2.2 设备驱动程序中的中断服务程序379
20.2.3 Linux的设备驱动程序应是一个内核模块379
20.3 字符设备驱动程序的注册381
20.4 设备驱动程序对存储器的使用382
20.5 设备文件382
20.5.1 设备文件的基本概念382
20.5.3 设备文件及操作接口383
20.5.2 设备文件与设备驱动程序之间的关系383
20.6 本章小结384
第21章 Linux进程的同步与通信385
21.1 管道385
21.1.1 匿名管道385
21.1.2 命名管道390
21.2 信号390
21.2.1 信号的基本概念391
21.2.2 进程对信号的响应391
21.2.3 信号的安装392
21.2.4 信号的发送393
21.3.1 System V IPC394
21.2.5 可靠信号与不可靠信号394
21.3 System V IPC机制394
21.3.2 消息队列396
21.3.3 共享内存400
21.3.4 信号量集402
21.4 本章小结403
第22章 μCLinux简介405
22.1 Linux在嵌入式应用中的局限405
22.2 μCLinux的架构406
22.3 μCLinux的内存管理407
22.3.1 无MMU的内存管理407
22.3.2 内存管理的Flat模式407
22.3.3 内存管理模块的启动与初始化408
22.3.4 Flat可执行文件格式409
22.4 μCLinux的文件系统409
22.4.1 romfs文件系统410
22.4.2 ramfs文件系统413
22.4.3 闪存与JFFS2文件系统414
22.5 μCLinux的开发环境420
22.5.1 GNU开发套件420
22.5.2 μCLinux的打印终端420
22.5.3 交叉编译调试工具420
22.6 本章小结421
参考文献422