第4章处理器体系结构

ISA 指令集体系 提供了程序执行的一种顺序说明,也就是一条指令执行完了,下一条指令才会开始。

4.1 Y86-64指令集体系结构

定义一个指令集体系结构(例如Y86-64)包括定义各种状态单元、指令集和它们的编码、一组编程规范和异常事件处理。
Y86-64程序中的每条指令都会读取或修改处理器状态的某些部分。这称为程序员可见状态。
指令集的一个重要性质就是字节编码必须有唯一的解释。任意一个字节序列要么是一个唯一的指令序列的编码,要么就不是一个合法的字节序列。

从IA32指令开始,大大简化数据类型、地址模式和指令编码,我们定义了Y86-64指令集。ISA既有RISC指令集的属性,也有CISC指令集的属性。

4.2逻辑设计和硬件控制语言HCL

逻辑门是数字电路的基本计算单元。它们产生的输出,等于它们输人位值的某个布尔函数。
将很多的逻辑门组合成一个网,就能构建计算块,称为组合电路

4.3 Y86-64的顺序现实

将不同指令组织放到五个阶段中处理,根据被执行的指令的不同,每个阶段中的操作也不相同。据此,我们构造了SEQ处理器,其中每个时钟周期执行一条指令,它会通过所有五个阶段:取指 、译码 、执行 、访存 、写回 、更新PC

4.4流水线

流水线化通过让不同的阶段并行操作,改进了系统的吞吐量性能。在任意一个给定的时刻,多条指令被不同的阶段处理。
会计算:

第6章存储器层次结构

存储器系统为CPU存放指令和数据。在简单模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置,是一个具有不同容量、成本和访问时间的存储设备的层次结构。
CPU寄存器保存着最常用的数据。靠近CPU的小的、快速的高速缓存存储器(cache memory)作为一部分存储在相对慢速的主存储器(main memory)中数据和指令的缓冲区域。主存缓存存储在容量较大的、慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓冲区域

6.1存储技术

基本存储技术包括随机存储器(RAM)、非易失性存储器(ROM)和磁盘。
RAM有两种基本类型。**静态RAM(SRAM)**快一些,但是也贵一些,它既可以用做CPU芯片上的高速缓存,也可以用做芯片下的高速缓存。动态RAM(DRAM)慢一点,也便宜一些,用做主存和图形帧缓冲区。
非易失性存储器,即使是在关电的时候,ROM也能保持它们的信息,可以用来存储固件。旋转磁盘是机械的非易失性存储设备,以每个位很低的成本保存大量的数据,但是其访问时间比DRAM长得多。固态硬盘(SSD)基于非易失性的闪存,对某些应用来说,越来越成为旋转磁盘的具有吸引力的替代产品。
磁盘:
磁盘容量:一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。
磁盘容量是由以下技术因素决定的:
·记录密度(recording density)(位/英寸):磁道一英寸的段中可以放入的位数。﹒
·磁道密度(track density)(道/英寸):从盘片中心出发半径上一英寸的段内可以有的磁道数。
·面密度(areal density)(位/平方英寸):记录密度与磁道密度的乘积。

6.2局部性

一个编写良好的计算机程序常常具有良好的局部性(locality)。也就是,它们倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向性,被称为局部性原理(principle of locality),是一个持久的概念,对硬件和软件系统的设计和性能都有着极大的影响。
局部性通常有两种不同的形式:时间局部性和空间局部性。

6.3存储器层次结构

存储技术:不同存储技术的访问时间差异很大。速度较快的技术每字节的成本要比速度较慢的技术高,而且容量较小。CPU和主存之间的速度差距在增大。
计算机软件:一个编写良好的程序倾向于展示出良好的局部性。

6.4高速缓存存储器

主存到Cache三种映射关系:直接映射、组相联映射、全相联映射

三、在系统上运行程序

了解如何使用os提供的服务来构建系统及程序

第7章 链接

链接可以在编译时由静态编译器来完成,也可以在加载时和运行时由动态链接器来完成。链接器处理称为目标文件的二进制文件,它有3种不同的形式:**可重定位的、可执行的和共享的。**可重定位的标文件由静态链接器合并成一个可执行的目标文件,它可以加载到内存中并执行。共享目标文件(共享库)是在运行时由动态链接器链接和加载的,或者隐含地在调用程序被加载和开始执行时,或者根据需要在程序调用dlopen库的函数时。
链接器的两个主要任务是符号解析和重定位,符号解析将目标文件中的每个全局符号都绑定到唯一的定义,而重定位确定每个符号的最终内存地址,并修改对那些目标的引用。

第9章虚拟内存

一个系统中的进程是与其他进程共享CPU 和主存资源的。
为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存(VM)
虚拟内存是对主存的一个抽象。支持虚拟内存的处理器通过使用一种叫做虚拟寻址的间接形式来引用主存。处理器产生一个虚拟地址,在被发送到主存之前,这个地址被翻译成一个物理地址。从虚拟地址空间到物理地址空间的地址翻译要求硬件和软件紧密合作。专门的硬件通过使用页表来翻译虚拟地址,而页表的内容是由操作系统提供的。
虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。
通过一个很清晰的机制,虚拟内存提供了三个重要的能力:
1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。
2)它为每个进程提供了一致的地址空间,从而简化了内存管理。
3)它保护了每个进程的地址空间不被其他进程破坏。

地址翻译的过程必须和系统中所有的硬件缓存的操作集成在一起。大多数页表条目位于Ll高速缓存中,但是一个称为TLB的页表条目的片上高速缓存,通常会消除访问在Ll 上的页表条目的开销。
现代系统通过将虚拟内存片和磁盘上的文件片关联起来,来初始化虚拟内存片,这个过程称为内存映射。内存映射为共享数据、创建新的进程以及加载程序提供了一种高效的机制。应用可以使用mmap函数来手工地创建和删除虚拟地址空间的区域。然而,大多数程序依赖于动态内存分配器,例如malloc,它管理虚拟地址空间区域内一个称为堆的区域。动态内存分配器是一个感觉像系统级程序的应用级程序,它直接操作内存,而无需类型系统的很多帮助。分配器有两种类型。显式分配器要求应用显式地释放它们的内存块。隐式分配器(垃圾收集器)自动释放任何未使用的和不可达的块。

四、程序间的交流和通信

了解应用程序利用操作系统提供的服务来与I/O设备及其他程序通信

第10章系统级I/O

第11章网络编程

每个网络应用都是基于客户端-服务器模型的。根据这个模型,一个应用是由一个服务器和一个或多个客户端组成的。服务器管理资源,以某种方式操作资源,为它的客户端提供服务。客户端-服务器模型中的基本操作是客户端-服务器事务,它是由客户端请求和跟随其后的服务器响应组成的。
客户端和服务器通过因特网这个全球网络来通信。从程序员的观点来看,我们可以把因特网看成是一个全球范围的主机集合,具有以下几个属性:
1)每个因特网主机都有一个唯一的32位名字,称为它的IP地址
2)IP地址的集合被映射为一个因特网域名的集合。3)不同因特网主机上的进程能够通过连接互相通信。
客户端和服务器通过使用套接字接口建立连接。一个套接字是连接的一个端点,连接以文件描述符的形式提供给应用程序。套接字接口提供了打开和关闭套接字描述符的函数。客户端和服务器通过读写这些描述符来实现彼此间的通信。
Web服务器使用HTTP协议和**它们的客户端(例如浏览器)**彼此通信。浏览器向服务器请求静态或者动态的内容。对静态内容的请求是通过从服务器磁盘取得文件并把它返回给客户端来服务的。对动态内容的请求是通过在服务器上一个子进程的上下文中运行一个程序并将它的输出返回给客户端来服务的。CGI标准提供了一组规则,来管理客户端如何将程序参数传递给服务器,服务器如何将这些参数以及其他信息传递给子进程,以及子进程如何将它的输出发送回客户端。只用几百行C代码就能实现一个简单但是有功效的Web服务器,它既可以提供静态内容,也可以提供动态内容。

第12章并发编程

现阶段理解整理the end

计算机系统——黑皮书学习(三)相关推荐

  1. 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作

    C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...

  2. “深入理解计算机系统”小组学习的Task01-学习日志

    文章目录 前言 一.编译系统 1.工作流程 2.流程步骤定义 二.硬件架构 1.硬件架构组成 1.1硬件架构图 1.2.CPU 架构 1.2.1.CPU 定义 1.2.2.CPU内部结构 1.3.内存 ...

  3. OpenGL入门学习[三]

    OpenGL入门学习[三] http://xiaxveliang.blog.163.com/blog/static/2970803420126246501930/ OpenGL入门学习[十一] 我们在 ...

  4. 做一名全面发展的高校教师——“计算机系统”课学习总结

    以前听过陈老师和臧老师的报告,很想继续深入了解这两门内容跨度大,意在提高学生综合能力的课.接到"导教班"通知,发现可以将两门课"一网打尽",也很荣幸地被录取了. ...

  5. 统计学习三要素 模型+策略+算法

    统计学习方法都是由模型. 策略和算法构成的. 即统计学习方法由三要素构成, 可以简单地表示为:方法=模型+策略+算法 模型 统计学习首要考虑的问题是学习什么样的模型. 在监督学习过程中, 模型就是所要 ...

  6. 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站竟因「太火」而下线...

    机器之心报道 作者:魔王.杜伟 想不想在动画电影中拥有自己的角色?这个网站一键满足你的需求,不过竟因流量太大成本过高而下线. 近期热映的电影<花木兰>总是让人回想起 1998 年上映的同名 ...

  7. 2020届 AAAI Fellow名单新鲜出炉!!!深度学习三巨头终于齐聚

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 AAAI 是国际人工智能领域最权威的学术组织,Fellow 是该学会给予会员的最高荣誉 ...

  8. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  9. python爬虫正则表达式实例-python爬虫学习三:python正则表达式

    python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...

最新文章

  1. linux进程间通信:popen函数通过管道与shell通信
  2. python定时任务contrib_django+celery配置(定时任务+循环任务)
  3. 实现instanceof关键字
  4. 这部计算机27厘米宽英语怎么说,24/27/32寸电脑显示器尺寸多大?长宽多少厘米?显示屏长宽与面积的算法...
  5. IPython高级用法(一)定制命令别名及存储别名
  6. Java高级架构师(一)第05节:TortoiseGit的本地使用
  7. AnyLogic 建立谢林模型
  8. 多媒体计算机与一般计算机,计算机和多媒体计算机的区别
  9. 论文阅读笔记—Exploring Visual Relationship for Image Captioning
  10. 【Latex】Latex小白入门(4)——Latex中特殊符号的输入
  11. office安装错误“错误25004,您输入的产品密钥无法在此计算机上使用,-----------”
  12. linux 无法清空回收站
  13. linux卡死怎么办
  14. mac word2016 去除页眉下面的横线
  15. MySQL数据库高可用之mmm
  16. SEO优化人员分析IIS日志方法详解
  17. 底部孕线形态有哪些?底部孕线形态特征是什么?
  18. 驳quot;世上流传最广的32条谣言quot;
  19. aspen模拟蒸发器_用Aspen Plus设计蒸发器例题
  20. 快递鸟平台,查询快递信息。已脱坑

热门文章

  1. 干货 | Jmeter 如何保证抢购、秒杀活动正常运行?
  2. arcgis制作城、镇、村范围效果图
  3. ZYNQ | 开发板推荐
  4. 华为无线猫EchoLife HG522路由配置
  5. Unity在空场景的Tris和Verts
  6. Windows下载redis
  7. 什么是softmax
  8. ChatGPT 爆红后,估值 290 亿美元的 Open AI 要被收购?
  9. Parallels Desktop Pro授权怎么搞定
  10. python从web抓取信息(爬虫中soup.select()与soup.find_all()对比)