购物车中还没有商品,赶紧选购吧!
操作系统原理与设计实现 夏文 李治军 吴帆 申文博 李雪 编著 高等教育出版社
商品价格
定价
手机购买
商品二维码
配送
北京市
数量

推荐商品

  • 商品详情
手机购买
商品二维码
加入购物车
价格:
数量:
库存   个

商品详情

商品名称:操作系统原理与设计实现
ISBN:9787040656077
出版社:高等教育出版社
出版年月
作者:夏文 李治军 吴帆 申文博 李雪 编著
定价:72.00
页码:536
装帧:平装
版次:1
字数:700 千字
开本:16开
套装书:否

本书充分突出操作系统作为一个系统的核心、保证整体高速运转的理念,同时强调各个组成部分必须有机、协调地分工协作,旨在让读者能真正理解操作系统的整体运转原理。

本书从硬件管理基本功能出发,依次对操作系统的CPU管理、内存管理、外设管理、文件管理等进行了详细的阐述;从上层应用提供的接口出发,对系统接口设计、进程管理、文件接口等内容进行了详细阐述。在单独模块阐述的基础上,深入地阐述了这些模块之间的关系,即这些模块是如何合作成为一个整体系统的。本书同时对操作系统安全、分布式互联以及图形界面进行了适当拓展,结合商用级Linux、鸿蒙操作系统的分析,让读者能够真正理解现代操作系统的整体运转原理。

为避免单纯的原理阐述让读者感到空泛、浮于表面,同时加强操作系统原理和实现的有机融合,本书设计了14个实践项目,其中包括8个初级认知型实践项目和6个高级综合型实践项目,几乎涵盖了操作系统的全部内容。

本书可作为高等学校计算机及相关专业操作系统课程教材或参考书,也可供操作系统开发以及在操作系统上进行相关研究的人员参考。

前辅文
第1章 操作系统概念及其发展概述
  1.1 什么是操作系统
  1.2 操作系统历史概述
   1.2.1 简单的批处理系统
   1.2.2 OS/360的出现
   1.2.3 UNIX、Linux的诞生
   1.2.4 操作系统历史的另一个分支——系统服务的演进
  1.3 操作系统核心轮廓
   1.3.1 多进程视图与文件视图
   1.3.2 系统服务
  1.4 小结
  1.5 习题
第2章 系统启动——打开电源以后发生的故事
  2.1 计算机工作机理
  2.2 操作系统启动过程
   2.2.1 操作系统启动过程实例——第一阶段
   2.2.2 操作系统镜像的生成——Makefile
   2.2.3 操作系统启动过程实例——第二阶段
   2.2.4 操作系统启动过程实例——第三阶段
   2.2.5 操作系统启动过程实例——第四阶段
   2.2.6 操作系统启动过程实例——第五阶段
  2.3 小结
  2.4 实践项目1:控制操作系统启动
  2.5 习题
第3章 系统接口——通向操作系统内核的大门
  3.1 用户使用计算机系统的基本形式
  3.2 基本系统调用及其应用
   3.2.1 fork()、exec()、wait()、exit()
   3.2.2 open()、read()、write()
   3.2.3 printf()、scanf()
  3.3 系统调用的实现机理
   3.3.1 内核态与用户态
   3.3.2 系统调用与int0x80
   3.3.3 printf()的完整故事
  3.4 通过系统调用窥见操作系统的基本脉络
  3.5 小结
  3.6 实践项目2:添加系统调用
  3.7 习题
第4章 多进程——操作系统运行的核心视图
  4.1 使用CPU
   4.1.1 CPU工作机理与使用CPU的直观想法
   4.1.2 问题的引出与并发
  4.2 进程概念与多进程视图
   4.2.1 进程与程序
   4.2.2 CPU管理与多进程视图
  4.3 多进程引起的基本问题
   4.3.1 多个进程的组织与进程状态
   4.3.2 多个进程的切换和调度
   4.3.3 进程间的影响分离
   4.3.4 进程间的通信与合作
  4.4 小结
  4.5 实践项目3:打印进程日志
  4.6 习题
第5章 线程切换与调度——操作系统的发动机
  5.1 线程与进程
   5.1.1 线程概念的引人
   5.1.2 一个多线程实例
   5.1.3 线程与进程
  5.2 用户级线程的切换与创建
   5.2.1 用户级线程之间的切换
   5.2.2 用户级线程的创建
  5.3 内核级线程的切换与创建
   5.3.1 内核级线程的引出
   5.3.2 内核级线程之间的切换
   5.3.3 内核级线程的创建
  5.4 创建0号/1号进程——多进程视图的起点
  5.5 CPU调度
   5.5.1 CPU调度的含义与算法准则
   5.5.2 若干CPU调度的基本算法
   5.5.3 多级反馈队列调度算法的一个具体实现
  5.6 小结
  5.7 实践项目4:基于内核栈完成进程切换
  5.8 习题
第6章 进程同步——让多个进程的推进合理有序
  6.1 进程同步问题与睡眠/唤醒
  6.2 从信号到信号量
   6.2.1 利用信号解决同步问题
   6.2.2 将信号扩展为信号量
   6.2.3 生产者-消费者同步问题的信号量解法
  6.3 临界区——对信号量的保护
   6.3.1 临界区的引出
   6.3.2 临界区的软件实现
   6.3.3 Lamport面包店算法
   6.3.4 临界区的硬件实现
  6.4 信号量的实现与使用
   6.4.1 信号量的使用
   6.4.2 有正有负的信号量的实现
   6.4.3 只有正值的信号量的实现
  6.5 死锁现象及死锁处理
   6.5.1 死锁现象的出现
   6.5.2 死锁出现的条件与死锁预防
   6.5.3 死锁避免
   6.5.4 死锁检测/恢复与死锁忽略
  6.6 小结
  6.7 实践项目5:信号量的实现与应用
  6.8 习题
第7章 内存管理——给程序执行提供一个舞台
  7.1 内存使用与程序重定位
   7.1.1 从取指——执行到内存使用
   7.1.2 程序重定位
  7.2 分段
   7.2.1 段的概念
   7.2.2 分段机制下的地址转换
  7.3 内存分区
   7.3.1 可变分区与适配算法
   7.3.2 内存碎片
  7.4 分页
   7.4.1 分页机制
   7.4.2 多级页表与快表
  7.5 段页式内存管理与虚拟内存
   7.5.1 如何将段和页结合在一起
   7.5.2 段、页结合时进程对内存的使用
   7.5.3 一个真实的段页式内存机制
  7.6 小结
  7.7 实践项目6:地址映射与共享
  7.8 习题
第8章 换入/换出——用磁盘和时间来换取一个规整的虚拟内存
  8.1 规整的虚拟内存
   8.1.1 虚拟内存与换入/换出
   8.1.2 请求调页
   8.1.3 页面调入的具体实现
  8.2 页面换出
   8.2.1 基本的页面换出算法
   8.2.2 LRU算法的准确实现
   8.2.3 Clock算法
  8.3 页框个数分配与全局置换
  8.4 小结
  8.5 习题
第9章 设备驱动——从文件视图到out指令
  9.1 设备驱动的基本原理
   9.1.1 外设的工作原理
   9.1.2 文件视图
  9.2 显示器的驱动
   9.2.1 从printf()开始
   9.2.2 文件视图中的大量分支
   9.2.3 最终到达mov ax,[pos]
  9.3 键盘的驱动
   9.3.1 从键盘中断开始
   9.3.2 从缓冲队列最终到scanf()
  9.4 小结
  9.5 实践项目7:终端设备字符显示的控制
  9.6 习题
第10章 文件系统——个从磁盘到文件再到文件系统的漫长抽象
  10.1 磁盘工作的基本原理
   10.1.1 磁盘工作的原理
   10.1.2 磁盘工作的过程
   10.1.3 使用磁盘的直观方法
  10.2 生磁盘的使用
   10.2.1 第一层抽象:从扇区到磁盘块请求
   10.2.2 第二层抽象:多个进程产生的磁盘请求队列
   10.2.3 第三层抽象:从磁盘请求到高速缓存
  10.3 基于文件的磁盘使用
   10.3.1 第四层抽象:引出文件
   10.3.2 文件的实现
   10.3.3 第五层抽象:将整个磁盘抽象成一个文件系统
   10.3.4 目录解析的代码实现
  10.4 一个典型的文件系统:EXT
   10.4.1 磁盘布局与超级块
   10.4.2 文件表示与目录项表示
   10.4.3 内存结构与介质结构
  10.5 小结
  10.6 实践项目8:proc文件的实现
  10.7 习题
第11章 操作系统安全——从内核迈向操作系统生态的关键一步
  11.1 操作系统内部保护
   11.1.1 存储管理部件
   11.1.2 访问控制
  11.2 操作系统对外防御
   11.2.1 操作系统面临的安全威胁
   11.2.2 Linux Crypto子系统
   11.2.3 PAM身份认证机制
   11.2.4 eCryptfs加密堆叠文件系统
   11.2.5 防火墙
  11.3 可信执行环境(TEE)
   11.3.1 TEE简介
   11.3.2 TEE的典型应用
   11.3.3 TEE在鸿蒙中的应用
  11.4 鸿蒙安全子系统
   11.4.1 鸿蒙安全子系统架构
   11.4.2 安全子系统向上功能
  11.5 小结
  11.6 习题
第12章 网络与分布式系统——从单机操作系统到万物互联时代
  12.1 如何进行多机互联
   12.1.1 通信协议
   12.1.2 网络结构
   12.1.3 通信结构
  12.2 分布式系统的原理
   12.2.1 分布式系统简介
   12.2.2 远程过程调用
   12.2.3 基于网络的操作系统类型
  12.3 分布式计算框架
  12.4 分布式文件系统
   12.4.1 命名
   12.4.2 远程文件访问
   12.4.3 实例:AFS
  12.5 鸿蒙分布式文件系统
  12.6 小结
  12.7 习题
第13章 图形子系统——-迈向用户普及与商业生态
  13.1 计算机图形学简介
   13.1.1 计算机图形
   13.1.2 计算机图形学简介
   13.1.3 计算机图形学基本原理
   13.1.4 计算机图形学运用场景
  13.2 UNIX的图形子系统架构
   13.2.1 图形子系统架构概述
   13.2.2 图形子系统的硬件设备
   13.2.3 图形子系统的内核态部分
   13.2.4 图形子系统的用户态部分
   13.2.5 图形子系统示例:X-Wayland架构图形子系统
  13.3 鸿蒙图形子系统
   13.3.1 鸿蒙图形子系统概述
   13.3.2 图形开发框架ArkUI
  13.4 小结
  13.5 习题
第14章 大型实践项目1:内核级线程的设计与实现
  14.1 项目的主旨和基本任务
   14.1.1 项目主旨
   14.1.2 项目基本任务
  14.2 TCB与PCB
   14.2.1 创建线程与创建进程
   14.2.2 改造fork()
   14.2.3 分析pthread_create()的实现机理
   14.2.4 在pthread_create()中创建用户栈
   14.2.5 处理start_routine()参数
   14.2.6 创建内核级线程TCB与内核栈
  14.3 以TCB为单位进行CPU调度
  14.4 引入TCB以后的其他修改
   14.4.1 进程退出(exit)
   14.4.2 进程状态、时间片等内容的操作
  14.5 主线程与工作线程的设计与实现
  14.6 习题
第15章 大型实践项目2:虚拟内存与交换分区的设计与实现
  15.1 项目的主旨和基本任务
   15.1.1 项目主旨
   15.1.2 项目的基本任务
  15.2 交换分区的驱动
   15.2.1 给Bochs增加一块硬盘
   15.2.2 交换分区的结构设计
   15.2.3 交换分区的初始化
  15.3 进程页面的换出
   15.3.1 Clock算法的设计
   15.3.2 页面环形链表的建立和维护
   15.3.3 扫描动作和换出动作的实现
   15.3.4 交换分区的写出
  15.4 进程页面的换入
  15.5 交换分区使用情况的监控
  15.6 习题
第16章 大型实践项目3:鼠标驱动和简单的图形接口实现
  16.1 项目的主旨和基本任务
   16.1.1 项目主旨
   16.1.2 项目的基本任务
  16.2 鼠标的驱动
   16.2.1 鼠标中断的捕获
   16.2.2 键盘控制器i8042和中断控制器8259A
   16.2.3 鼠标输入数据的解码
  16.3 显示器的图形工作模式
   16.3.1 启动图形模式
   16.3.2 建立像素点阵与显存之间的映射
   16.3.3 设置屏幕分辨率
   16.3.4 开始绘制屏幕
  16.4 消息驱动框架
  16.5 可视化应用程序的设计与实现
   16.5.1 定义图形对象
   16.5.2 创建一个定时器
   16.5.3 应用程序的核心结构
  16.6 习题
第17章 大型实践项目4:网卡驱动与网络协议的设计与实现
  17.1 项目的主旨和基本任务
   17.1.1 项目主旨
   17.1.2 项目的基本任务
  17.2 网卡驱动
   17.2.1 给Bochs安装网卡
   17.2.2 网卡驱动的基本原理
   17.2.3 读出网卡的MAC地址
   17.2.4 网卡初始化
  17.3 ARP协议的设计与实现
   17.3.1 ARP协议的基本原理
   17.3.2 ARP数据包以及以太网物理帧的形成
   17.3.3 利用网卡发送物理帧
   17.3.4 利用网卡接收物理帧
   17.3.5 ARP数据包解析与ARP缓存表
  17.4 ICMP协议及ping命令
   17.4.1 本项目涉及的协议栈结构
   17.4.2 ICMP协议的设计与实现
   17.4.3 利用ICMP协议实现ping命令
  17.5 习题
第18章 大型实践项目5:分布式框架设计与实现
  18.1 项目主旨和基本任务
   18.1.1 项目主旨
   18.1.2 项目基本任务
  18.2 分布式框架MapReduce的设计与实现
   18.2.1 MapReduce介绍
   18.2.2 第一个子任务目标
   18.2.3 进程间通信
   18.2.4 构建管理者进程
   18.2.5 构建工作者进程
   18.2.6 应用程序使用MapReduce框架
  18.3 分布式文件系统的设计与实现
   18.3.1 第二个子任务目标
   18.3.2 总体架构
   18.3.3 构建存储服务器
   18.3.4 构建命名服务器
   18.3.5 一致性和线程安全性
   18.3.6 实现建议
  18.4 习题
第19章 创新实践项目:工业级分布式框架探索
  19.1 项目的主旨和基本任务
   19.1.1 项目主旨
   19.1.2 项目基本任务
  19.2 基于Spark的分布式数据分析实践
   19.2.1 项目的主旨和基本任务
   19.2.2 Spark分布式集群环境搭建
   19.2.3 Spark分布式应用程序编写与提交运行
   19.2.4 Spark与Hadoop分布式框架分析
  19.3 基于鸿蒙分布式软总线的扩展生态互联实践
   19.3.1 项目的主旨和基本任务
   19.3.2 开发环境搭建
   19.3.3 鸿蒙分布式软总线的框架和基本原理
   19.3.4 分布式软总线的扩展生态互联
  19.4 习题
参考文献

对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加