类似推荐
编辑推荐
有助于提高整个系统质量的知识图谱,包括硬件、组合逻辑、时序逻辑、计算机体系结构与组成原理、操作系统等。
内容简介
本书讲述建模、分析和设计大型计算机系统同时使其具有良好性能且成本较低的方法和技术。其中重点强调的排队论也正好是作者非常擅长的理论研究。除了必要的理论方法,还包括丰富的计算机系统设计实例和练习。目的是使读者不仅能够定制现有的计算机系统设计和分析,还可以自己发明适合自己系统设计的方法。全书内容有趣而且易于阅读,采用“苏格拉底式”的问答模式进行叙述,适合该领域的科研和工程人员阅读参考,也适合高校计算机相关专业学生阅读。
作者简介
作者乔纳森·E.斯坦哈特,自20世纪60年代以来,Jonathan E. Steinhart一直从事工程工作。他在中学时开始设计硬件,在高中时开始设计软件,这让他在贝尔电话实验室做了暑期工。1977年,他在克拉克森大学获得电气工程和计算机科学学士学位。毕业后,他在Tektronix公司工作,之后在starup公司试水。1987年,他成为一名顾问,专注于安全关键系统工程。从上世纪90年代开始,他削减了一些开支,创办了Four Winds Vineyard。
章节目录
版权信息
译者序
前言
致谢
作者简介
审校者简介
引言
第1章 计算机的内部语言
1.1 什么是语言
1.2 书面语言
1.3 比特
1.4 逻辑运算
1.4.1 布尔代数
1.4.2 德摩根定律
1.5 用比特表示整数
1.5.1 表示正数
1.5.2 二进制加法
1.5.3 表示负数
1.6 表示实数
1.6.1 定点表示法
1.6.2 浮点表示法
1.6.3 IEEE浮点标准
1.7 二进制编码的十进制系统
1.8 处理二进制数的简单方法
1.8.1 八进制表示法
1.8.2 十六进制表示法
1.8.3 表示语境
1.9 命名位组
1.10 表示文本
1.10.1 ASCII
1.10.2 其他标准的演变
1.10.3 UTF-8
1.11 用字符表示数字
1.11.1 可打印字符引用编码
1.11.2 Base64编码
1.11.3 URL编码
1.12 表示颜色
1.12.1 增加透明度
1.12.2 编码颜色
1.13 本章小结
第2章 组合逻辑
2.1 数字计算机的案例
2.1.1 模拟和数字之间的区别
2.1.2 为什么尺寸对硬件很重要
2.1.3 数字使设备更加稳定
2.1.4 模拟世界中的数字
2.1.5 为什么使用位而不是数字
2.2 电学的简单入门
2.2.1 用管道理解电
2.2.2 电源开关
2.3 为位构建硬件
2.3.1 继电器
2.3.2 真空管
2.3.3 晶体管
2.3.4 集成电路
2.4 逻辑门
2.4.1 利用迟滞现象提高抗噪声能力
2.4.2 差分信号
2.4.3 传播延迟
2.4.4 输出的变化
2.5 构建更复杂的电路
2.5.1 制作加法器
2.5.2 制作解码器
2.5.3 制作多路输出选择器
2.5.4 制作选择器
2.6 本章小结
第3章 时序逻辑
3.1 表示时间
3.1.1 振荡器
3.1.2 时钟
3.1.3 锁存器
3.1.4 锁存器组成的门电路
3.1.5 触发器
3.1.6 计数器
3.1.7 寄存器
3.2 内存组织和寻址
3.2.1 随机存取存储器
3.2.2 只读存储器
3.3 块设备
3.4 闪存和固态磁盘驱动器
3.5 检错和纠错
3.6 硬件和软件
3.7 本章小结
第4章 计算机剖析
4.1 内存
4.2 输入输出
4.3 中央处理器
4.3.1 算术逻辑单元
4.3.2 移位寄存器
4.3.3 执行单元
4.4 指令集
4.4.1 指令
4.4.2 寻址方式
4.4.3 条件码指令
4.4.4 分支
4.4.5 最终指令集
4.5 最终设计
4.5.1 指令寄存器
4.5.2 数据通路和控制信号
4.5.3 流量控制
4.6 RISC和CISC指令集
4.7 图形处理单元
4.8 本章小结
第5章 计算机架构
5.1 基本架构元素
5.1.1 处理器核心
5.1.2 微处理器和微型计算机
5.2 过程、子程序和函数
5.3 堆栈
5.4 中断
5.5 相对寻址
5.6 内存管理单元
5.7 虚拟内存
5.8 系统和用户空间
5.9 存储器层次和性能
5.10 协处理器
5.11 在内存中排列数据
5.12 运行程序
5.13 内存功耗
5.14 本章小结
第6章 通信故障
6.1 低电平I/O
6.1.1 I/O端口
6.1.2 按下按钮
6.1.3 让灯光亮起
6.1.4 灯光,动作……
6.1.5 奇思妙想
6.1.6 2n种灰色
6.1.7 正交
6.1.8 并行通信
6.1.9 串行通信
6.1.10 捕捉一个波
6.1.11 通用串行总线
6.2 网络
6.2.1 现代局域网
6.2.2 因特网
6.3 数字世界中的模拟
6.3.1 数模转换
6.3.2 模数转换
6.3.3 数字音频
6.3.4 数字图像
6.3.5 视频
6.4 人机界面设备
6.4.1 终端
6.4.2 图形终端
6.4.3 矢量图
6.4.4 光栅图
6.4.5 键盘和鼠标
6.5 本章小结
第7章 组织数据
7.1 原始数据类型
7.2 数组
7.3 位图
7.4 字符串
7.5 复合数据类型
7.6 单链表
7.7 动态内存分配
7.8 更有效的内存分配
7.9 垃圾收集
7.10 双链表
7.11 层次数据结构
7.12 块存储
7.13 数据库
7.14 索引
7.15 移动数据
7.16 矢量I/O
7.17 面向对象存在的问题
7.18 排序
7.19 哈希算法
7.20 效率与性能
7.21 本章小结
第8章 语言处理
8.1 汇编语言
8.2 高级语言
8.3 结构化程序设计
8.4 词法分析
8.4.1 状态机
8.4.2 正则表达式
8.5 从单词到句子
8.6 每日语言俱乐部
8.7 语法树
8.8 解释器
8.9 编译器
8.10 优化
8.11 小心硬件
8.12 本章小结
第9章 Web浏览器
9.1 标记语言
9.2 统一资源定位符
9.3 HTML文档
9.4 文档对象模型
9.4.1 树结构解析
9.4.2 文档对象模型解释
9.5 串联样式表
9.6 XML和它的朋友们
9.7 JavaScript
9.8 jQuery
9.9 SVG
9.10 HTML5
9.11 JSON
9.12 本章小结
第10章 应用程序和系统程序设计
10.1 猜动物程序版本1:HTML和JavaScript
10.1.1 应用程序级框架
10.1.2 Web页面主体
10.1.3 JavaScript程序
10.1.4 CSS
10.2 猜动物程序版本2:C语言
10.2.1 终端和命令行
10.2.2 构建程序
10.2.3 终端和设备驱动程序
10.2.4 上下文切换
10.2.5 标准I/O
10.2.6 循环缓冲区
10.2.7 通过合适的抽象实现更好的代码
10.2.8 一些技术细节
10.2.9 缓冲区溢出
10.2.10 C语言程序
10.2.11 训练
10.3 本章小结
第11章 捷径和近似法
11.1 表格查找
11.1.1 转换
11.1.2 纹理映射
11.1.3 字符分类
11.2 整数方法
11.2.1 直线
11.2.2 曲线
11.2.3 多项式
11.3 递归细分
11.3.1 螺旋线
11.3.2 构造几何学
11.3.3 移位和屏蔽
11.4 更多地回避数学运算
11.4.1 幂级数近似
11.4.2 CORDIC算法
11.5 随机事物
11.5.1 空间填充曲线
11.5.2 L系统
11.5.3 随机
11.5.4 量化
11.6 本章小结
第12章 死锁和竞态条件
12.1 竞态条件是什么
12.2 共享资源
12.3 进程和线程
12.4 锁
12.4.1 事务和粒度
12.4.2 等待锁
12.4.3 死锁
12.4.4 短期锁的实现
12.4.5 长期锁的实现
12.5 浏览器JavaScript
12.6 异步函数和承诺
12.7 本章小结
第13章 安全性
13.1 安全和隐私概述
13.1.1 威胁模型
13.1.2 信任
13.1.3 物理安全
13.1.4 通信安全
13.1.5 现代社会
13.1.6 元数据和监控
13.1.7 社会背景
13.1.8 身份验证与授权
13.2 密码学
13.2.1 隐写术
13.2.2 替代密码
13.2.3 换位密码
13.2.4 更复杂的密码
13.2.5 一次一密
13.2.6 密钥交换问题
13.2.7 公钥密码
13.2.8 前向加密
13.2.9 加密哈希函数
13.2.10 数字签名
13.2.11 公钥基础设施
13.2.12 区块链
13.2.13 密码管理
13.3 软件卫生
13.3.1 保护好正确的东西
13.3.2 仔细检查你的逻辑
13.3.3 检查错误
13.3.4 最小化攻击面
13.3.5 待在界内
13.3.6 生成合适的随机数是有难度的
13.3.7 了解代码
13.3.8 极端聪明是你的敌人
13.3.9 明白什么是可见的
13.3.10 不要过度收集
13.3.11 不要一直存储
13.3.12 动态内存分配不是你的朋友
13.3.13 内存垃圾回收也不是你的朋友
13.3.14 数据作为代码
13.4 本章小结
第14章 机器智能
14.1 概述
14.2 机器学习
14.2.1 贝叶斯
14.2.2 高斯
14.2.3 索贝尔
14.2.4 Canny
14.2.5 特征提取
14.2.6 神经网络
14.2.7 使用机器学习数据
14.3 人工智能
14.4 大数据
14.5 本章小结
第15章 现实世界的考虑
15.1 价值主张
15.2 来龙去脉
15.2.1 短暂的历史
15.2.2 开源软件
15.2.3 创意共享
15.2.4 可移植性的兴起
15.2.5 软件包管理
15.2.6 容器
15.2.7 Java
15.2.8 Node.js
15.2.9 云计算
15.2.10 虚拟机
15.2.11 便携式设备
15.3 编程环境
15.3.1 你有工作经验吗
15.3.2 学会估计
15.3.3 调度项目
15.3.4 决策
15.3.5 与不同个性的人一起工作
15.3.6 了解职场文化
15.3.7 做出明智的选择
15.4 开发方法
15.5 项目设计
15.5.1 把想法写下来
15.5.2 快速原型发展法
15.5.3 接口设计
15.5.4 重用代码或编写自己的代码
15.6 项目开发
15.6.1 谈话
15.6.2 成年人与计算机的关系
15.6.3 终端和脚本
15.6.4 文本编辑器
15.6.5 可移植的代码
15.6.6 源控制
15.6.7 测试
15.6.8 bug报告和跟踪
15.6.9 重构
15.6.10 维护
15.7 与时俱进
15.8 修复,不要再创造
15.9 本章小结
计算机系统解密:从理解计算机到编写高效代码是2021年由机械工业出版社华章分社出版,作者[美] 乔纳森·E.斯坦哈特。
得书感谢您对《计算机系统解密:从理解计算机到编写高效代码》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。