| 价格 | ¥79.00 |
| 发货 | 广东东莞市 |
| 数量 | -+ |
| 库存 | 100本 |
本书对操作系统的内存管理、进程管理、进程协调和同步、进程间通信、实时时钟管理、设备无关的I/O、设备驱动、网络协议、文件系统等进行了详细的介绍,并利用分层的设计范式,以一种有序、易于理解的方式来阐述这些内容。本书以Xinu操作系统为系统设计的样板和模式,从一个裸机开始,一步一步地设计和实现一个小型但优雅的操作系统。本书的样本代码可以运行在linksys E2100L无线路由器上。
本书适用于的本科生或低年级的研究生,也适用于那些想了解操作系统的计算机从业人员。学习本书前,学生需要具备基本的程序设计能力,应当理解基本的数据结构,包括链表、栈和队列,并且应当用C语言写过程序。
目 录
Operating System Design:The Xinu Approach,linksys Version
出版者的话
译者序
前言
关于作者
第1章 引言和概述1
1.1 操作系统1
1.2 本书的研究方法1
1.3 分层设计2
1.4 Xinu操作系统3
1.5 操作系统不是什么3
1.6 从外面看操作系统4
1.7 其他章节概要4
1.8 观点5
1.9 总结5
练习5
第2章 并发执行与操作系统服务6
2.1 引言6
2.2 多活动的编程模型6
2.3 操作系统服务7
2.4 并发处理的概念和术语7
2.5 串行程序和并发程序的区别8
2.6 多进程共享同一段代码9
2.7 进程退出与进程终止11
2.8 共享内存、竞争条件和同步11
2.9 信号量与互斥14
2.10 Xinu中的类型命名方法15
2.11 使用Kputc和Kprintf进行操作系统的调试16
2.12 观点16
2.13 总结16
练习17
第3章 硬件和运行时环境概览18
3.1 引言18
3.2 E2100L的物理和逻辑结构18
3.3 处理器结构和寄存器19
3.4 总线操作:获取-存储范式19
3.5 直接内存访问19
3.6 总线地址空间20
3.7 内核段KSEG0和KSEG1的内容20
3.8 总线启动的静态配置21
3.9 调用约定和运行时栈21
3.10 中断和中断处理22
3.11 异常处理23
3.12 计时器硬件23
3.13 串行通信24
3.14 轮询与中断驱动I/O24
3.15 内存缓存和KSEG124
3.16 存储布局24
3.17 内存保护25
3.18 观点25
练习25
第4章 链表与队列操作26
4.1 引言26
4.2 用于进程链表的统一数据结构26
4.3 简洁的链表数据结构27
4.4 队列数据结构的实现28
4.5 内联队列操作函数29
4.6 获取链表中进程的基础函数29
4.7 FIFO队列操作30
4.8 优先级队列的操作32
4.9 链表初始化33
4.10 观点34
4.11 总结34
练习35
第5章 调度和上下文切换36
5.1 引言36
5.2 进程表36
5.3 进程状态38
5.4 就绪和当前状态38
5.5 调度策略38
5.6 调度的实现39
5.7 上下文切换的实现41
5.8 内存中保存的状态41
5.9 在MIPS处理器上切换上下文41
5.10 重新启动进程执行的地址43
5.11 并发执行和null进程44
5.12 使进程准备执行和调度不变式44
5.13 推迟重新调度45
5.14 其他进程调度算法47
5.15 观点47
5.16 总结47
练习47
第6章 更多进程管理49
6.1 引言49
6.2 进程挂起和恢复49
6.3 自我挂起和信息隐藏49
6.4 系统调用的概念50
6.5 禁止中断和恢复中断51
6.6 系统调用模板51
6.7 系统调用返回SYSERR和OK值51
6.8 挂起的实现52
6.9 挂起当前进程53
6.10 suspend函数的返回值53
6.11 进程终止和进程退出54
6.12 进程创建56
6.13 其他进程管理函数59
6.14 总结60
练习61
第7章 协调并发进程62
7.1 引言62
7.2 进程同步的必要性62
7.3 计数信号量的概念63
7.4 避免忙等待63
7.5 信号量策略和进程选择63
7.6 等待状态64
7.7 信号量数据结构64
7.8 系统调用wait65
7.9 系统调用signal66
7.10 静态和动态信号量分配66
7.11 动态信号量的实现示例67
7.12 信号量删除68
7.13 信号量重置69
7.14 多核处理器之间的协调69
7.15 观点70