CSAPP:第1章 计算机系统漫游

2024-03-05 18:18

本文主要是介绍CSAPP:第1章 计算机系统漫游,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • 1.1 information=bit+context
        • 1.2 程序翻译
        • 1.3 了解编译的好处
        • 1.4 CPU如何读取+解释命令
        • 1.5 讲述Cache的重要性
        • 1.6 存储设备的层次结构
        • 1.7 进程、线程、虚拟内存的概念
        • 1.8 系统之间网络通信
        • 1.9 重要主题
        • 1.10 小结

1.1 information=bit+context
  • 1.1主要传达的意思是所谓信息就是特定二进制(位)的排列组合(上下文),因此构成了不同的信息。
  • 另外,aside中提了一嘴C语言的起源,总的来说,C之所以可以成功,主要因为以下几个优势
    • C一开始就作为Unix的系统语言被开发出来的
    • C小、简单、易于移植
    • C是为实践目的设计的——other people found that they could write programs they wanted,也就是说C比较通用
1.2 程序翻译
  • 1.2 主要讲述程序编译过程

  • 围绕这一句命令开始讲述linux>gcc -o hello hello.c,主要分为四个步骤
    在这里插入图片描述

    • 1、预处理
      • hello.c–>hello.i
      • 主要工作是将# include 后<> 文件的内容插入到当前文件中,形成一个.i文件
    • 2、编译
      • hello.i–>hello.s
      • 这个工作是由编译器(CCL)完成的,其中hello.s是一个汇编程序
    • 3、汇编
      • hello.s–>hello.o
      • 这个工作是由汇编器(as) 完成的,其中hello.o是指令集文件(二进制文件,打开是乱码)
      • 这里需要注意一点的是,汇编是从汇编语言到机器指令,编译才是从高级语言到汇编语言
    • 4、链接
      • hello.o–>hello
      • 这个阶段是由链接器(ld)完成的,功能是将本文件和库函数(用到的)预编译的.o文件合并到一起,最终得到的是可执行文件(实际上还是二进制)
1.3 了解编译的好处
  • 优化程序新能(3、5、6)
  • 理解链接时出现的错误(7)
  • 避免安全漏洞(3)
1.4 CPU如何读取+解释命令
  • 主要讲了这么几件事
    • 1、描述shell执行的过程,这个就是命令行的机制,一般符合我们的直觉——即等待-〉输入-〉执行循环
    • 2、描述硬件的组成,这里是计算机的多总线(3总线)结构的模型,如下所示
      在这里插入图片描述
      • 3、如何运行Hello
        • 命令行读取与分析
        • 文件读取
        • 执行+显示
1.5 讲述Cache的重要性
  • 是常见的Cache-主存-辅存三级结构,不同的是,Cache分为三级Cache
1.6 存储设备的层次结构
  • 基本同1.5,放张图
    在这里插入图片描述
1.7 进程、线程、虚拟内存的概念
  • 1、进程

    • 进程是OS对一个正在运行程序的抽象
    • 进程转换有内核(kernel)管理的,内核不是一个独立的进程,而是系统管理全部进程所用代码和数据的集合。
  • 2、线程

    • 更容易共享数据(同一进程下)
    • 高效
  • 3、虚拟内存

    • 即虚拟地址空间——每个进程都独占主存的假象
      在这里插入图片描述
      • 程序代码数据
      • 堆——运行时堆,用于存放数据,类似malloc free是对此处操作
      • 共享库——放类似C语言标准库
      • 栈——用户栈,实现函数调用,动态伸缩
      • 内核虚拟内存——为内核保留
  • 4、文件=字节序列

1.8 系统之间网络通信
  • 介绍了telnet机制
    在这里插入图片描述
1.9 重要主题
  • Amdahl定律(有两道简单习题)
    在这里插入图片描述
    • 这个公式讲的是,加速(减速)后的时间= 部分原时间+部分加速后的时间,最后记一下加速比的公式是old/new即可
  • 并发和并行的概念(区分)
    • 所谓并发=同一段时间同时运行——单CPU进程/线程快速切换,看起来好像同时运行
    • 超线程——同时多线程,允许一个CPU同时控制多个流
    • 指令级并行
      • 多指流水线技术,其中现代的多为超标量流水线
    • 单指令、多数据并行(SIMD)
      • 运行一条指令产生多个可并行的操作
  • 抽象的重要性
1.10 小结
  • 上述总结

这篇关于CSAPP:第1章 计算机系统漫游的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777390

相关文章

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

深入理解计算机系统阅读笔记-第四章

第四章 处理器体系结构 一个处理器支持的指令和指令的字节级编码称为它的ISA(instruction-set architecture,指令集体系结构)。不同家族处理器有不同的ISA。ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及他们是如何编码的;而处理器设计者,必须建造出执行这些指令的处理器。 ISA模型看上去是顺序执行的,实际上同时处

【计算机组成原理】计算机系统层次结构

计算机系统层次结构 计算机系统是一个层次结构系统,每一层都通过向上层用户提供一个抽象的简洁接口而将低层的实现细节隐藏起来。计算机解决应用问题的过程就是不同抽象层进行转换的过程 计算机系统抽象层的转换 下图描述了从最终用户希望计算机完成的应用(问题)到电子工程师使用器件完成基本电路设计的整个转换过程 通常用自然语言对应用(问题)进行描述,但计算机硬件只能理解机器语言,要将一个自然语言描述

第一章——计算机系统概述

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝 🏆所属专栏: 计算机组成原理   欢迎订阅,持续更新中~~~                                                       ✨让小新带着你快乐的学习吧~✨ 目录 前言 一、操作系统的概念和

考研408《计算机组成原理》复习笔记,第一章计算机系统概述

本人打算从今到2026年不再更新过多的前后端开发的笔记,因为要准备考研了,所以停更前面的开发教程。 这些都是我看完书、视频、做完题后,结合个人理解总结的知识点,希望对各位有帮助。一切都是用最快最精炼的方式讲清楚。 一、计算机发展历程 第一代:电子管时代第二代:晶体管时代第三代:中小规模集成电路时代第四代:超大规模集成电路时代 就这么记就行了,很少考你历程这些细节的。 二、计算机系统结

Python二级知识点--1.1(计算机系统)

以下内容,皆为原创,感谢大家的关注和点赞。 考点:在执行指令的过程中,CPU不经过总线能直接访问的是寄存器 在执行指令的过程中,CPU 不经过总线能直接访问的是内部寄存器。   CPU 内部的寄存器通常与 CPU 的控制单元、算术逻辑单元等紧密集成,它们之间通过内部高速的数据通路进行连接,无需经过外部总线。   这是因为内部寄存器的访问速度对于 CPU 的高效运行至关重要。在指令执行的过程

软考超详细准备之软件设计师的计算机系统题型二(上午题)

目录 流水线 存储器: cache Cache命中率的相关图形 中断 相关习题 输入和输出 相关习题  总线 相关习题 加密技术与认证技术 相关习题 加密技术 相关习题 杂题 流水线 流水线(Pipeline)是一种在硬件设计中用于提高效率和吞吐量的技术,尤其在处理器设计中非常常见。流水线将一个复杂的过程分解成多个阶段,每个阶段可以并行处理不同的任务。以下

[学习笔记]《CSAPP》深入理解计算机系统 - Chapter 3 程序的机器级表示

总结一些第三章的一些关键信息 Chapter 3 程序的机器级表示结构 updating... Chapter 3 程序的机器级表示 局部变量通常保存在寄存器中,而不是内存中,访问寄存器比内存快的多. 有些时候,局部数据必须存放在内存中, 寄存器不足够存放所有的本地数据对一个局部变量使用地址运算符 &, 因此必须能够为它产生一个地址某些局部变量是数组或结构,因此必须能够通过数组或

CSAPP Data Lab

CSAPP 的第一个 Lab,对应知识点为书中的第 2 章(信息的表示与处理),要求使用受限制的运算符和表达式实现一些位操作。主要分为两个部分:整数部分和浮点数部分。其中整数部分限制较多,比较偏重技巧性,部分题个人认为很有难度。而浮点数部分则比较基础,主要考察对 IEEE 754 标准的熟悉程度,代码较长,但思路相对简单。 bitXor 思路 使用德-摩根定律进行推导,推导过程如下: 代

【计算机组成原理】计算机系统的层次结构——计算机软件

计算机系统的层次结构 导读一、计算机软件的分类二、计算机语言三、计算机系统的层次结构3.1 从计算机语言的角度来理解多级层次结构3.2 计算机层次之间的关系3.3 指令集体系结构(ISA) 结语 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了计算机层次结构中硬件的组成。 随着“存储程序”这一概念的提出,于是计算机便逐渐演变成了现在的冯·诺依曼机的基本结