主页 详情

《操作系统设计 Xinu方法》_(美)科默(ComerD.)著;邹恒明等译_13453263_7111428268

【书名】:《操作系统设计 Xinu方法》
【作者】:(美)科默(ComerD.)著;邹恒明等译
【出版社】:北京:机械工业出版社
【时间】:2014
【页数】:360
【ISBN】:7111428268
【SS码】:13453263

最新查询

内容简介

第1章 引言和概述

1.1操作系统

1.2本书的研究方法

1.3分层设计

1.4 Xinu操作系统

1.5操作系统不是什么

1.6从外面看操作系统

1.7其他章节概要

1.8观点

1.9总结

练习

第2章 并发执行与操作系统服务

2.1引言

2.2多活动的编程模型

2.3操作系统服务

2.4并发处理的概念和术语

2.5串行程序和并发程序的区别

2.6多进程共享同一段代码

2.7进程退出与进程终止

2.8共享内存、竞争条件和同步

2.9信号量与互斥

2.10 Xinu中的类型命名方法

2.11使用Kputc和Kprintf进行操作系统的调试

2.12观点

2.13总结

练习

第3章 硬件和运行时环境概览

3.1引言

3.2 E2100L的物理和逻辑结构

3.3处理器结构和寄存器

3.4总线操作:获取-存储范式

3.5直接内存访问

3.6总线地址空间

3.7内核段KSEG0和KSEG1的内容

3.8总线启动的静态配置

3.9调用约定和运行时栈

3.10中断和中断处理

3.11异常处理

3.12计时器硬件

3.13串行通信

3.14轮询与中断驱动I/O

3.15内存缓存和KSEG1

3.16存储布局

3.17内存保护

3.18观点

练习

第4章 链表与队列操作

4.1引言

4.2用于进程链表的统一数据结构

4.3简洁的链表数据结构

4.4队列数据结构的实现

4.5内联队列操作函数

4.6获取链表中进程的基础函数

4.7 FIFO队列操作

4.8优先级队列的操作

4.9链表初始化

4.10观点

4.11总结

练习

第5章 调度和上下文切换

5.1引言

5.2进程表

5.3进程状态

5.4就绪和当前状态

5.5调度策略

5.6调度的实现

5.7上下文切换的实现

5.8内存中保存的状态

5.9在MIPS处理器上切换上下文

5.10重新启动进程执行的地址

5.11并发执行和null进程

5.12使进程准备执行和调度不变式

5.13推迟重新调度

5.14其他进程调度算法

5.15 观点

5.16总结

练习

第6章 更多进程管理

6.1引言

6.2进程挂起和恢复

6.3自我挂起和信息隐藏

6.4系统调用的概念

6.5禁止中断和恢复中断

6.6系统调用模板

6.7系统调用返回SYSERR和OK值

6.8挂起的实现

6.9挂起当前进程

6.10 suspend函数的返回值

6.11进程终止和进程退出

6.12进程创建

6.13其他进程管理函数

6.14总结

练习

第7章 协调并发进程

7.1引言

7.2进程同步的必要性

7.3计数信号量的概念

7.4避免忙等待

7.5信号量策略和进程选择

7.6等待状态

7.7信号量数据结构

7.8系统调用wait

7.9系统调用signal

7.10静态和动态信号量分配

7.11动态信号量的实现示例

7.12信号量删除

7.13信号量重置

7.14多核处理器之间的协调

7.15 观点

7.16总结

练习

第8章 消息传递

8.1引言

8.2两种类型的消息传递服务

8.3消息使用资源的限制

8.4消息传递函数和状态转换

8.5 send的实现

8.6 receive的实现

8.7非阻塞消息接收的实现

8.8观点

8.9总结

练习

第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释放堆和栈存储

9.14观点

9.15 总结

练习

第10章 高级内存管理和虚拟内存

10.1引言

10.2分区空间分配

10.3缓冲池

10.4分配缓冲区

10.5将缓冲区返回给缓冲池

10.6创建缓冲池

10.7初始化缓冲池表

10.8虚拟内存和内存复用

10.9实地址空间和虚地址空间

10.10支持按需换页的硬件

10.11使用页表的地址翻译

10.12页表项中的元数据

10.13按需换页以及设计上的问题

10.14页面替换和全局时钟算法

10.15观点

10.16总结

练习

第11章 高层消息传递

11.1引言

11.2进程间通信端口

11.3端口实现

11.4端口表初始化

11.5端口创建

11.6向端口发送消息

11.7从端口接收消息

11.8端口的删除和重置

11.9观点

11.10总结

练习

第12章 中断处理

12.1引言

12.2中断的优点

12.3中断分配

12.4中断向量

12.5中断向量号的分配

12.6硬件中断

12.7中断请求的局限性和中断多路复用

12.8中断软件和分配

12.9中断分配器底层部分

12.10中断分配器高层部分

12.11禁止中断

12.12函数中中断代码引起的限制

12.13中断过程中重新调度的必要性

12.14中断过程中的重新调度

12.15 观点

12.16总结

练习

第13章 实时时钟管理

13.1引言

13.2定时事件

13.3实时时钟和计时器硬件

13.4处理实时时钟中断

13.5延时与抢占

13.6使用计时器来模拟实时时钟

13.7抢占的实现

13.8使用增量链表对延迟进行有效管理

13.9增量链表的实现

13.10将进程转入睡眠

13.11定时消息接收

13.12唤醒睡眠进程

13.13时钟中断处理

13.14时钟初始化

13.15 间隔计时器管理

13.16观点

13.17总结

练习

第14章 设备无关的I/O

14.1引言

14.2 I/O和设备驱动的概念结构

14.3接口抽象和驱动抽象

14.4 I/O接口的一个示例

14.5打开-读-写-关闭范式

14.6绑定I/O操作和设备名

14.7 Xinu中的设备名

14.8设备转换表概念

14.9设备和共享驱动的多个副本

14.10高层I/O操作的实现

14.11其他高层I/O函数

14.12打开、关闭和引用计数

14.13 devtab中的空条目和错误条目

14.14 I/O系统的初始化

14.15观点

14.16总结

练习

第15章 设备驱动示例

15.1引言

15.2 tty抽象

15.3 tty设备驱动的组成

15.4请求队列和缓冲区

15.5上半部和下半部的同步

15.6硬件缓冲区和驱动设计

15.7 tty控制块和数据声明

15.8次设备号

15.9上半部tty字符输入(ttyGetc)

15.10通用上半部tty输入(ttyRead)

15.11上半部(tty字符输出(ttyputc)

15.12开始输出(ttyKickOut)

15.13上半部tty多字符输出(ttyWrite)

15.14下半部tty驱动函数(ttyInterrupt)

15.15输出中断处理(ttyInter out)

15.16 tty输入处理(tty Inter in)

15.17 tty控制块初始化(ttyInit)

15.18设备驱动控制

15.19观点

15.20总结

练习

第16章 DMA设备和驱动(以太网)

16.1引言

16.2直接内存访问和缓冲区

16.3多缓冲区和环

16.4使用DMA的以太网驱动例子

16.5设备的硬件定义和常量

16.6环和内存缓冲区

16.7以太网控制块的定义

16.8设备和驱动初始化

16.9分配输入缓冲区

16.10从以太网设备中读取数据包

16.11向以太网设备中写入数据包

16.12以太网设备的中断处理

16.13以太网控制函数

16.14观点

16.15 总结

练习

第17章 最小互联网协议栈

17.1引言

17.2所需的功能

17.3同步对话、超时和进程

17.4 ARP函数

17.5网络数据包的定义

17.6网络输入进程

17.7 UDP表的定义

17.8 UDP函数

17.9互联网控制报文协议

17.10动态主机配置协议

17.11观点

17.12总结

练习

第18章 远程磁盘驱动

18.1引言

18.2磁盘抽象

18.3磁盘操作驱动支持

18.4块传输和高层I/O函数

18.5远程磁盘范式

18.6磁盘操作的语义

18.7驱动数据结构的定义

18.8驱动初始化(rdsInit)

18.9上半部打开函数(rdsOpen)

18.10远程通信函数(rdscomm)

18.11上半部写函数(rdsWrite)

18.12上半部读函数(rdsRead)

18.13刷新挂起的请求

18.14上半部控制函数(rdsControl)

18.15分配磁盘缓冲区(rdsbufalloc)

18.16上半部关闭函数(rdsClose)

18.17下半部通信进程(rdsprocess)

18.18观点

18.19总结

练习

第19章 文件系统

19.1文件系统是什么

19.2文件操作的示例集合

19.3本地文件系统的设计

19.4 Xinu文件系统的数据结构

19.5索引管理器的实现

19.6清空索引块(lfibclear)

19.7获取索引块(lfibget)

19.8存储索引块(lfibput)

19.9从空闲链表中分配索引块(lfiballoc)

19.10从空闲链表中分配数据块(lfdballoc)

19.11使用设备无关的I/O函数的文件操作

19.12文件系统的设备设置和函数名称

19.13本地文件系统打开函数(lfsOpen)

19.14关闭文件伪设备(lflClose)

19.15刷新磁盘中的数据(lfflush)

19.16文件的批量传输函数(lflWrite,lflRead)

19.17在文件中查找一个新位置(lflSeek)

19.18从文件中提取一个字节(lflGetc)

19.19改变文件中的一个字节(lflputc)

19.20载入索引块和数据块(lfsetup)

19.21主文件系统设备的初始化(lfsInit)

19.22伪设备的初始化(lfInit)

19.23文件截断(lftruncate)

19.24初始文件系统的创建(Ifscreate)

19.25观点

19.26总结

练习

第20章 远程文件机制

20.1引言

20.2远程文件访问

20.3远程文件语义

20.4远程文件设计和消息

20.5远程文件服务器通信

20.6发送一个基本消息

20.7网络字节序

20.8使用设备范式的远程文件系统

20.9打开远程文件

20.10检查文件模式

20.11关闭远程文件

20.12读远程文件

20.13写远程文件

20.14远程文件的定位

20.15远程文件单字符I/O

20.16远程文件系统控制函数

20.17初始化远程文件数据结构

20.18观点

20.19总结

练习

第21章 句法名字空间

21.1引言

21.2透明与名字空间的抽象

21.3多种命名方案

21.4命名系统设计的其他方案

21.5基于句法的名字空间

21.6模式和替换

21.7前缀模式

21.8名字空间的实现

21.9名字空间的数据结构和常量

21.10增加名字空间前缀表的映射

21.11使用前缀表进行名字映射

21.12打开命名文件

21.13名字空间初始化

21.14对前缀表中的项进行排序

21.15选择一个逻辑名字空间

21.16默认层次和空前缀

21.17额外的对象操作函数

21.18名字空间方法的优点和限制

21.19广义模式

21.20观点

21.21总结

练习

第22章 系统初始化

22.1引言

22.2引导程序:从头开始

22.3操作系统初始化

22.4在E2100L上启动一个可选的映像

22.5 Xinu初始化

22.6系统启动

22.7从程序转化为进程

22.8观点

22.9总结

练习

第23章 异常处理

23.1引言

23.2异常、陷阱和恶意中断

23.3 panic的实现

23.4观点

23.5总结

练习

第24章 系统配置

24.1引言

24.2多重配置的需求

24.3 Xinu系统配置

24.4 Xinu配置文件的内容

24.5计算次设备号

24.6配置Xinu系统的步骤

24.7观点

24.8总结

练习

第25章 一个用户接口例子:Xinu壳

25.1引言

25.2用户接口

25.3命令和设计原则

25.4一个简化壳的设计决策

25.5壳的组织和操作

25.6词法符号的定义

25.7命令行语法的定义

25.8 Xinu壳的实现

25.9符号的存储

25.10词法分析器代码

25.11命令解释器的核心

25.12命令名查询和内部处理

25.13传给命令的参数

25.14向外部命令传递参数

25.15 I/O重定向

25.16示例命令函数(sleep)

25.17观点

25.18总结

练习

附录1 操作系统移植

附录2 Xinu设计注解

索引


书查询(www.shuchaxun.com)本网页唯一编码:
edf5269bee849b6a9d1c495d1eeab3f8#263c77b6d0fd66827be5648e505d05bb#68292841#操作系统设计 Xinu方法_13453263.zip