深入理解计算机系统(第二版)----之一

小豆角 小豆角     2022-08-26     744

关键词:

第一部分:程序结构和执行

  第1章:计算机系统漫游

  第2章:信息的表示和处理

  第3章:程序的机器级表示

  第4章:处理器体系结构

  第5章:优化程序性能

  第6章:存储器层次结构

第二部分:在系统上运行程序

  第7章:链接

  第8章:异常控制流

  第9章:虚拟存储器

第三部分:程序间的交互和通信

  第10章:系统级I/O

  第11章:网络编程

  第12章:并发编程

===第一章:计算机系统漫游==================================================

 

计算机系统的实现方式虽然不同,但是所有计算机系统都有相似的硬件和软件组件;了解编译器如何实现过程调用的;

编写自己的unix外壳,自己的动态存储分配宝,自己的web服务器;认识到并发带来的希望和陷阱。

通过跟踪hello程序的生命周期开始对系统的学习---从它被程序员创建,到在系统上运行,输出简单的消息,然后终止。

------------code/hello.c------------------------------

#include<stdio.h>

int main(){

  printf("hello world ");

--------------code/hello.c----------------------------

1.1 信息就是位+上下文

  hello.c文件由ASCII自负构成的文件称为文本文件,其他文件都是二进制文件。

    hello.c程序的生命周期从一个源程序或者源文件开始的,源程序是由值0和1组成的位序列,

  8个位=一个字节=一个文本字符(大部分现代系统都使用ASCII标准表示文本字符)=一个单字节大小的整数值

    系统的所有信息-包括磁盘文件、存储器中的程序、数据 网络上传送的数据,都是一串位表示的,区分不同数据对向的唯一方法是

  我们读到这些数据对象时的上下文。同一个字节序列,在不同的上下文中表示的可能是一个整数、浮点数。字符串或者机器指令。 

1.2 程序被其他程序翻译成不同的格式

1.3 了解编译系统如何工作

1.4 处理器读并解释存储在存储器中的指令

1.5 高速缓存至关重要

1.6 存储设备形成层次结构

1.7 操作系统管理硬件

1.8 系统之间利用网络通信 

 

深入理解计算机系统(第二版)----之三:程序的机器级表示

计算机执行机器代码,用字节编码低级的操作,包括处理数据、管理存储器、读写存储设备上的数据,利用网络通信,编译器基于变成语言的原则,目标机器的指令集合操作系统遵循的原则,经过一系列阶段产生机器代码,gccc... 查看详情

深入理解计算机系统(第二版)----之二:信息的表示和处理

...无洞,导线上的高低电压,对二值信号进行存储和执行的计算机的电子电路非常简单和可靠。制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路。单独的位没有意义,用一个二进制数字系统,能够用位组来编码... 查看详情

深入理解计算机系统第二章

...tps://www.bilibili.com/video/BV1iW411d7hd?p=2学习书本:《深入理解计算机系统》第3版。信息存储:8位=1字节;内存所有可能地址集合称为“虚拟地址空间”;每个程序对象可以视为一个“字节快”,程序本身是一个字节序列... 查看详情

2017-2018-120179215《深入理解计算机系统》第二章

《深入理解计算机系统》第二章学习笔记?这章主要通过四个部分进行介绍:信息存储、整数表示、整数运算以及浮点数。重点描述了无符号数和数的补码的表示特性。我们要知道对计算机的算术运算有深刻的理解是写出可靠程... 查看详情

深入理解计算机系统-第二章

疑惑:***."十进制数字x的ASCII码正好是0x3x"(p31)```.照上面这么说,十进制1的ASCII码该是0131,很明显错误的,找到一个ASCII码来看下"1"的ASCII码是"49",再仔细参考下书中上下文,发现上面说了十进制1的ASCII码是31,那原句这么说"十进... 查看详情

《深入理解计算机系统(第三版)》第二章信息的表示和处理

《深入理解计算机系统(第三版)》第二章信息的表示和处理??计算机本身是由处理器和存储器子通过系统组成。在核心部分,我们需要方法来表示基本数据类型,比如整数和实数运算的近似值。然后,我们考虑机器级指令如何... 查看详情

深入理解计算机系统第二章信息的表示和处理

 欣哥划重点:@所有人,第二章比较难,我建议至少掌握下面几个知识点:1.字节顺序:大端和小端2.运行图2-24,图2-25程序show-bytes.c观察结果,看看有什么问题3.理解布尔运算,位运算4.理解无符号数和有符号数,给一个数,... 查看详情

深入理解计算机系统第二章要点

1.每台机器都有一个字长,指明了整数和指针的标称大小(normalsize),长整数(longint)和指针的大小都是字长(32位机器是32位,64位机器是64位),字长代表了机器的寻址时地址大小,进而限定了寻址空间的大小,字长w的寻址... 查看详情

深入理解java虚拟机第二版类文件结构

一.class类文件的结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有... 查看详情

《深入理解计算机系统(第三版)》第二章

...为地址,所有可能地址的集合称为虚拟地址空间。2.每台计算机都有一个字长,指明指针数据的标称大小。32位程序和64位程序区别在于该程序如何编译,而不是其运行的机器类型。C语言各种数据类型分配的字节数如下:int32_t和i... 查看详情

《深入理解计算机系统》第二章学习笔记

...为负浮点数是表示实数的科学计数法的以2为基数的版本计算机的表示法是用有限的数量的位表示的数字编码,所以,结果太大的时候,某些运算就会溢出。浮点运算溢出会产生特殊的值+∞,但是一组正数的乘积总是正的,这点... 查看详情

深入理解计算机系统第二章信息的表示和处理part2

...码是一致的进一步,由于有符号数是以补码的形式存储在计算机中的,而无符号数三种编码都是一致的,所以我们可以说,整型数在计算机中是以补码的形式存在的。参考文章:https://www.jianshu.com/p/ffc97c4d2306   查看详情

计算机系统之一计算机系统漫游

...性和性能的,以此来提高自己的技能,可以推荐<深入理解计算机系统>这本书,本系列也是作者在参读了这本书后的一些个人理解和对概念的认识,也可以当做我的个人笔记,希望对你有所帮助 代码无国界 计算机系统是由... 查看详情

终计划

 1.阅读Roslyn源码  首先阅读《深入理解计算机系统-第二版》、《编译原理》,然后温习很久没有用到的C语言。2.做一个C#代码编辑器,使用Roslyn编译代码,语法高亮,代码自动提示(可以设置代码提示采用的是汉语还... 查看详情

深入理解计算机系统第二章

...tps://www.bilibili.com/video/BV1iW411d7hd?p=2学习书本:《深入理解计算机系统》第3版。信息存储:8位=1字节;内存所有可能地址集合称为“虚拟地址空间”;每个程序对象可以视为一个“字节快”,程序本身是一个字节序列... 查看详情

深入理解计算机系统02isa与内存模型

 第二篇:认识ISA(InstructionSetArchitecture)重要概念:【ISA】【IA-32】:Intel把32位x86架构的名称x86-32改称为IA-32,一种身边很常见的ISA【内存模型】【过程调用】 •ISA(InstructionSetArchitecture)位于软件和硬件之间•硬件... 查看详情

深入理解java虚拟机第二版虚拟机性能监控与故障处理工具(代码片段)

JDK的命令行工具(jps:虚拟机进程状况工具,jstat:虚拟机统计信息监视工具,jinfo:Java配置信息工具,jmap:Java内存映像工具,jhat:虚拟机堆转储快照分析工具,jstack:Java堆栈跟踪工具);可视化工具(JConsole,VisualVM) ... 查看详情

《深入理解计算机系统》提问

第一章计算机花费大量时间在内存,I/O设备和CPU寄存器之间复制数据,有没有什么方法可以缩短时间?第二章学习了有符号数和无符号数之间的转换,整数的运算,使用补码编码,浮点运算中有时候不注意就会错误,为什么不能... 查看详情