《Computer Systems: A Programmer Perspective 3rd ed》

第一章 A Tour of Computer Systems



 这本书的前言部分主要介绍了本书主要包含的内容(the hardware architecture, the operating system, the compiler, the network)还有一些学习的预备知识(C语言、Lunux系统)。  全文展开的逻辑是介绍Hello.c文件从编写到输出主要经历了什么

1.1 Information Is Bits + Context

这一部分主要讲程序文件在计算机中的存贮方式

#include <stdio.h>

int main(){
	printf("Hello,world!\n");
	return 0;
}

这段代码在计算机中使用ASCII码存贮的,如下图:
在这里插入图片描述

Most computer systems represent text characters using the ASCII standard
that represents each character with a unique byte-size integer value.
The hello.c program is stored in a file as a sequence of bytes

注意每一行都是以换行符结束的,而换行符的ASCII码为10.
包含ASCII字符的文件为文本文件,其他的文件为二进制文件。
最后的注释部分介绍了C语言的优点,还有缺点:

C pointers are a common source of confusion and programming errors.


1.2 Programs Are Translated by Other Programs into Different Forms

一个程序文件的执行周期
文件运行的时候会有四个阶段:
在预处理阶段,预处理器会处理带有#的语句,并将它直接插入到程序文本中。
编译阶段将文本文件转义成汇编语言文件,汇编语言相当于一种通用语言,能够使得不同的高级语言在同一个机器上运行。
汇编阶段将hello.s转换成机器语言,并将结果存储在hello.o文件当中,这时候的文件是可迁移的(relocatable object program)
链接阶段将程序文件中调用的一些函数方法的执行程序与主程序合并,使主程序调用的函数可以顺利运行,这时候的文件为hello,这时的文件已经准备好被加载入内存中,后被运行了。

1.4 Processors Read and Interpret Instructions Stored in Memory

在这里插入图片描述
What’s happening when we entering a sequence of command.
在这里插入图片描述

1.5 Cache Matter

Note that we spend a lot of time to move data form disk to main memory by bus. Which is so-call processor-memory gap .In order to improve the performance of the operations,we use a Cache Memory between Main memory and Register which will store the information which is most likely to need in the near future.It maybe small to store data but fast to fletch when we need it.

Because of physical laws, larger storage devices are slower than smaller storage devices.

在这里插入图片描述

1.6 Storage Devices Form a Hierarchy

在这里插入图片描述

1.7 The Operating System Manages the Hardware

在这里插入图片描述

1.7.1 Processes

在这里插入图片描述

To be continue

总结

1.英文术语:
interpreted language :

直译语言(英语:Interpreted language),又称直译式语言,是一种编程语言。这种类型的编程语言,会将代码一句一句直接运行,不需要像编译语言(Compiled language)一样,经过编译器先行编译为机器码,之后再运行。这种编程语言需要利用解释器,在运行期,动态将代码逐句直译(interpret)为机器码,或是已经预先编译为机器码的的子程序,之后再运行。
理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。许多编程语言同时采用编译器与解释器来实作,其中包括Lisp,Pascal,C,BASIC 与 Python。JAVA及C#采用混合方式,先将代码编译为bytecode,在运行时再进行直译。

magnetic-disk & solid state drives:磁盘和固态硬盘
lingking:链接器

链接器(英语:Linker),又译为链结器、链接器,是一个进程,将一个或多个由编译器或汇编器生成的目标文档外加库链接为一个可执行文档。

metadata:

元数据(Metadata),又称元数据、诠释数据、中继数据元数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示保存位置、历史数据、资源寻找、文档记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。

context exchange:

上下文交换(英语:context switch),又称环境切换,电脑术语,是一个保存和重建CPU的状态 (内文),因此令多个进程(process)可以分享单一CPU资源的计算过程。要交换CPU上的进程时,必需先行保存目前进程的状态,再将欲运行的进程之状态读回CPU中。

System Call:

在计算机中,系统调用(英语:system call),又称为系统调用,指运行在用户空间的进程向操作系统内核请求需要更高权限运行的服务。系统调用提供用户进程与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作或者进程间通信。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典计算机操作系统教材第三版,详细内容可见亚马逊。 https://www.amazon.com/Computer-Systems-Programmers-Perspective-Engineering/dp/0134123832/ref=sr_1_2?ie=UTF8&qid=1541476471&sr=8-2&keywords=computer+systems+a+programmer's+perspective Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer’s perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field--from fixing faulty software, to writing more capable programs, to avoiding common flaws. It lays the groundwork for readers to delve into more intensive topics such as computer architecture, embedded systems, and cyber security. This book focuses on systems that execute an x86-64 machine code, and recommends that programmers have access to a Linux system for this course. Programmers should have basic familiarity with C or C++. Personalize Learning with MasteringEngineering MasteringEngineering is an online homework, tutorial, and assessment system, designed to improve results through personalized learning. This innovative online program emulates the instructor’s office hour environment, engaging and guiding students through engineering concepts with self-paced individualized coaching With a wide range of activities available, students can actively learn, understand, and retain even the most difficult concepts.
### 回答1: 《计算机系统:程序员的视角(第3版)PDF》是一本经典的计算机科学教材,主要面向程序员,旨在帮助他们全面理解计算机系统的工作原理和内部机制。 这本书首先介绍了计算机系统的基本组成部分,包括处理器、存储器、输入输出设备等,并详细解释了它们之间的交互方式。然后,书中介绍了计算机系统的运行方式,包括指令执行、进程管理、内存管理等。读者将会了解到计算机系统是如何运行和管理各种任务的。 此外,《计算机系统:程序员的视角(第3版)PDF》还着重介绍了计算机系统的性能优化和调优技术。通过深入剖析计算机硬件和软件之间的相互影响,程序员可以学到如何优化代码以提高程序的执行效率和响应速度。 这本书还包含了大量的实际案例和实验,旨在帮助读者将所学理论应用到实践中。通过实际操作和尝试,程序员可以更直观地理解计算机系统的运行机制。 总的来说,《计算机系统:程序员的视角(第3版)PDF》是一本非常全面、深入的计算机科学教材,对于想要深入了解计算机系统原理和优化技术的程序员来说,是一本不可或缺的参考书。无论是从理论还是实践的角度,这本书都能给读者提供深入的指导和实践经验。 ### 回答2: 《计算机系统:程序员的视角 3rd PDF》是一本探讨计算机系统的书籍,由Randal E. Bryant和David R. O’Hallaron合著。这本书旨在帮助程序员理解和掌握计算机系统的工作原理和内部运作机制。 该书的内容包括了操作系统、计算机网络、存储器和I/O系统等计算机系统的基础知识。它涵盖了底层硬件、指令集架构、处理器设计和性能优化等方面的知识,使程序员能够更好地理解他们所编写的代码在计算机上是如何运行的。 本书具有很高的实用性,每个章节都搭配了丰富的实例和编程练习,帮助读者将理论知识运用到实际中。此外,该书还提供了大量的示意图和图表,以帮助读者更好地理解和记忆所学内容。 《计算机系统:程序员的视角 3rd PDF》通过系统化的方式引导读者逐步学习,从而使读者能够逐渐深入地了解计算机系统的各个层次和组成部分。它不仅适用于正在学习计算机科学或软件工程的学生,也适用于正在从事软件开发的职业程序员。 总而言之,该书是一本非常有价值的参考资料,它通过详细而系统的介绍,帮助程序员更好地理解和应用计算机系统的知识,提高他们的编程能力和软件开发技巧。无论是在学习还是工作中,都能从这本书中获益匪浅。 ### 回答3: 《计算机系统:程序员的视角(第三版)PDF》是一本关于计算机系统的教材。该书主要面向程序员,介绍了计算机系统的各个层次和组成部分。 该书首先讲解了计算机系统的基本概念和运行原理。从硬件角度出发,介绍了计算机的组成部分,如中央处理器(CPU)、存储器、输入输出设备等。然后,通过详细讲解计算机的指令集体系结构(ISA),帮助读者理解计算机如何执行指令和处理数据。 接着,书中分析了计算机系统的层次结构。从低层次的二进制表示和汇编语言开始,逐步介绍高级语言、编译器和操作系统等层次。通过深入讲解计算机的内存层次结构和缓存设计,帮助读者理解计算机的存储器组织和访问速度的优化方法。 此外,该书还介绍了计算机系统的输入输出和文件系统。通过详细解释计算机是如何和外部设备进行交互,并讨论了文件的组织和管理方法。 最后,该书还涉及了计算机系统的并行性和性能优化。介绍了多处理器系统的原理和应用,并讨论了如何优化程序性能和提高计算机系统的效率。 总之,《计算机系统:程序员的视角(第三版)PDF》是一本全面介绍计算机系统的教材。通过深入讲解各层次和组成部分,帮助程序员更好地理解计算机系统的工作原理,从而优化程序性能和提高系统效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值