Ch 1.0

1.计算机系统是由硬件和系统软件组成的

2.本书阐述了计算机组件是如何工作的以及执行组件是如何影响程序正确性和性能的。

3.通过跟踪hello程序的生命周期来开始对系统的学习。

#include <stdio.h>

int main() {
printf("Hello World\n");
return 0;
}

Ch 1.1 信息就是 位+上下文

1.hello程序的生命周期始于源程序;源程序是由一系列的位序列组成的,8个位被组织成一组,称为字节;每个字节表示程序中的某些文本字符;hello.c程序是以字节序列的方式存储在文件中的。

2.只由ASCII字符组成的文件称为文本文件,所有其他文件称为二进制文件。

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

1.每条C语言指令都必须被其他程序转化为一系列的低级机器语言指令。

2.编译系统:

一个现代编译器的主要工作流程如下:

源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 可执行文件(executables)

对应至Hello程序:

hello.c => cpp => hello.i(修改了的源程序) => ccl => hello.s(汇编) => as => hello.o(二进制程序) + printf.o => ld => hello(executable)

Ch 1.3 了解编译系统如何工作是大有益处的

为什么要了解编译系统?

1.优化程序性能

2.理解链接时出现的错误

3.避免安全漏洞

Ch 1.4 CPU读并解释存储在内存中的指令

1.4.1 系统的硬件组成

  • Bus总线

传送定长的字节块(字,word)

  • I/O设备

I/O设备是系统与外界世界的联系通道;

通过一个控制器或者适配器与I/O相连

  • 主存

临时存储设备,由一系列动态随机存取存储器DRAM组成;

逻辑上来说,存储器是一个线性的字节数组

  • 处理器CPU

解释和执行存储于主存中指令的引擎;

处理器的核心是程序计数器(Program Counter, PC),PC记录主存中机器指令的地址;

系统运作时,处理器一直不断地执行PC指向的指令,再更新PC,使其指向下一个地址;

处理器的工作模型:指令集模型,围绕着主存、寄存器文件、算术/逻辑运算单元(ALU)进行。

处理器指令集架构和处理器微体系架构的区别:1)指令集架构描述每条机器指令的效果;2)处理器微体系架构描述的是处理器实际如何处理。

CSAPP学习笔记 第一章 计算机系统漫游的更多相关文章

  1. [CSAPP笔记][第一章计算机系统漫游]

    计算机系统漫游 我们通过追踪hello程序的生命周期来开始对系统的学习—–从它被程序员创建,到系统上运行,输出简单的消息,然后终止.我们沿着这个程序的生命周期,简要介绍一些逐步出现的概念,专业术语和组 ...

  2. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游

    本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念 ...

  3. CSAPP 第一章 计算机系统漫游

    第一章 计算机系统漫游 C语言的起源:(系统级编程的首选) C语言与Unix操作系统关系密切 C语言小而简单:其设计由一个人掌控 C语言是为实践目的设计的:其设计用来实现Unix操作系统 C语言程序编 ...

  4. CSAPP:第一章计算机系统漫游

    CSAPP:计算机系统漫游 关键点:上下文.程序运行.计算机系统抽象. 信息就是位+上下文一个程序的运行过程系统的硬件组成编译系统是如何工作的?一个程序的运行过程(c语言举例)计算机系统中的抽象 信息 ...

  5. 《跟我学Shiro》学习笔记 第一章:Shiro简介

    前言 现在在学习Shiro,参照着张开涛老师的博客进行学习,然后自己写博客记录一下学习中的知识点,一来可以加深理解,二来以后遗忘了可以查阅.没有学习过Shiro的小伙伴,也可以和我一起学习,大家共同进 ...

  6. JavaScript高级程序设计学习笔记第一章

    作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Inter ...

  7. C语言学习笔记第一章——开篇

    本文章B站有对应视频 (本文图片.部分文字引用c primer plus) 什么是C语言 顾名思义,c语言是一门语言,但是和我们所讲的话不同,它是一门编程语言,是为了让机器可以听懂人的意思所以编写的一 ...

  8. Java学习笔记 第一章 入门<转>

    第一章 JAVA入门 一.基础常识 1.软件开发 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合 系统软件:DOS,Windows,Linux 应用软件:扫雷.QQ.迅雷 什么是开 ...

  9. c#高级编程第七版 学习笔记 第一章 .NET体系结构

    第一章      .NET体系结构 本章内容: 编译和运行面向.NET的代码 Microsoft中间语言(Microsoft Intermediate Language,MSIL或简称IL)的优点 值 ...

随机推荐

  1. React Native开发之IDE(Atom+Nuclide)安装,运行,调试

    版权声明:本文为博主原创文章,如需转载请注明出处   目录(?)[-] 前言 MacWindowsLinux 准备工作 安装Atom 安装Nuclide 新建一个工程 自动补全 类型标注 语法检查 跳 ...

  2. 循环结构 while,do while

    while:先判断条件表达式是否成立,成立则执行循环体,不成立则不执行. 格式:while(条件表达式){ 执行语句(控制循环次数): } 例如: int x=1; while(x<3/*条件表 ...

  3. [lr & ps] 色彩空间管理

    色彩空间 • 定义 色彩空间,Color Space,又称作色域.在色彩学中,人们建立了许多色彩模型,以一维.二维.三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间.我们经 ...

  4. HTML鼠标悬停改变样式

    a.tt:hover {color: #FF0000;} <a class="tt" href="test.html">test</a> ...

  5. CoreSight介绍篇

    ARM的嵌入式IDE发展: 1)SDT,英文全称ARM SoftWare Development Kit,是ARM为方便用户在ARM芯片进行应用软件开发而推出的一整套开发工具. 2)ADS,英文全称A ...

  6. python+Django框架运用(三)

    Django模型 模式指的是根据数据库中数据表的结构来创建出来的class,每一张表到Python中就是一个 class,表中的每一个列,到Python中就是class的一个属性. 在模型中可以完成对 ...

  7. 论文笔记:语音情感识别(三)手工特征+CRNN

    一:Emotion Recognition from Human Speech Using Temporal Information and Deep Learning(2018 InterSpeec ...

  8. ACM题目————Face The Right Way

    Description Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing ...

  9. 2D 2 3D 开源项目

    http://www.cvlibs.net/projects.php http://www.cvlibs.net/software/libelas/

  10. MySQL按中文拼音排序

    好多时候,我们希望查询出来的记录能够按照汉语拼音即英文的26个字母排序,但是utf字符集是外国人弄的,不是按照汉语拼音的顺序排列的,因此,我们需要将要排序的字段把编码设定为GBK或者BG2312再进行 ...