Randal E. Bryant 1973年获得密歇根大学学士学位,随即就读麻省理工学院的研究生院,并在1981年获得计算机博士学位。从1984年至今一直任教于卡内基-梅隆大学,现在是卡内基-梅隆大学计算机学院院长、教授,同时受邀任教于电子与计算机工程学院。他还是ACM院士、IEEE院士和美国国家工程院院士。其研究成果获得过数项大奖,其中包括Semiconductor Research Corporation颁发的两个发明荣誉奖和一个技术成就奖,ACM颁发的Kanellakis理论与实践奖,还有IEEE授予的W. R. G. Baker奖、Emmanuel Piore奖和Phil Kaufman奖。
David R. O'Hallaron 现为Intel匹兹堡实验室主任,卡内基-梅隆大学电子和计算机工程学院副教授,并在维吉尼亚大学(Universit...
Randal E. Bryant 1973年获得密歇根大学学士学位,随即就读麻省理工学院的研究生院,并在1981年获得计算机博士学位。从1984年至今一直任教于卡内基-梅隆大学,现在是卡内基-梅隆大学计算机学院院长、教授,同时受邀任教于电子与计算机工程学院。他还是ACM院士、IEEE院士和美国国家工程院院士。其研究成果获得过数项大奖,其中包括Semiconductor Research Corporation颁发的两个发明荣誉奖和一个技术成就奖,ACM颁发的Kanellakis理论与实践奖,还有IEEE授予的W. R. G. Baker奖、Emmanuel Piore奖和Phil Kaufman奖。
David R. O'Hallaron 现为Intel匹兹堡实验室主任,卡内基-梅隆大学电子和计算机工程学院副教授,并在维吉尼亚大学(University of Virginia)获得计算机科学的博士学位。他曾获得卡内基-梅隆大学计算机学院颁发的Herbert Simon杰出教学奖,并同Quake项目中其他成员一起获得了高性能计算领域中的最高国际奖项——Gordon Bell奖。
We use the term concurrency to refer to the general concept of a system with
multiple, simultaneous activities, and the term parallelism to refer to the use of
concurrency to make a system run faster. (查看原文)
图5-22展示了做 k 次循环展开和 k 路并行变换的效果,k 最大为 6。我们可以看到,随着 k 值的增加,所有合并情况的 CPE 都增加了。对于整数乘法和浮点数运算,我们看到 CPE 的值为 L/k,这里 L 是操作的延迟,最高可以得到吞吐量界限 1.00。我们还看到使用标准的展开,整数加法也达到了这个界限。 (查看原文)
This book is written for a programmer's perspective, describing how application programmers can use their knowledge of a system to write better programs.
2013-05-19 13:02:451人喜欢
This book is written for a programmer's perspective, describing how application programmers can use their knowledge of a system to write better programs.引自 Preface
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs. 这一目标,努力! We begin our study of systems by tracing the lifetime of the hello program, from the time it is ...
2014-12-10 22:42:55
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs.引自 Chapter 1
这一目标,努力!
We begin our study of systems by tracing the lifetime of the hello program, from the time it is created by a programmer, until it runs on a system, prints its message, and terminates.引自 Chapter 1
#include <stdio.h>
int main()
{
printf("hello, world!\n");
}
// The hello program.
1.1 Information Is Bits + Context
在计算机系统中,所有的程序、信息都被描述为一段段二进制的0和1序列,每个二进制序列所表达的意思,取决于自身和所在的上下文环境。同一个二进制序列在一个环境中也许表示的是一段文字,在另一个环境中也许表示的是一张图片。就像一个男人在家扮演者丈夫,父亲的角色,在公司却是一个员工的身份。
The source program is a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called. Each byte represents some text character in the program.
Most modern systems represent text characters using the ASCII standard that represents each character with a unique byte-sized integer value. For example, Figure 1.2 shows the ASCII representation of the hello.c program.引自 Chapter 1
The hello.c program is stored in a file as a sequence of bytes. Each byte has an integer value that corresponds to some character.
The representation of hello.c illustrates a fundamental idea: All information in a system-including disk files, programs stored in memory, user data stored in memory, and data transferred across a network-is represented as a bunch of bits. The only thing that distinguishes different data objects is the context in which we view them. For example, in different context, the same sequence of bytes might represent an integer, floating-point number, character string, or machine instruction.引自 Chapter 1
1.2 Programs Are Translated by Other Programs Into Different Forms
C程序是用来给人阅读,机器无法识别,为了能够在机器上运行程序,源程序必须经编译器编译成机器可以运行的可执行文件。
In order to run hello.c on the system, the individual C statements must be translated by other programs into a sequence of low-level machine-language instructions. These instructions are then packaged in a form called an executable object program and stored as a binary disk file. Object programs are also referred to as executable object files.
On a Unix system, the translation from source file to object file is performed by a compiler driver:
unix> gcc - o hello hello.c引自 Chapter 1
编译系统四个阶段的处理程序:预处理器、编译器、汇编器、连接器。
Here, the GCC compiler driver reads the source file hello.c and translates it into an executable object file hello. The translation is performed in the sequence of four phases shown in Figure 1.3. The programs that perform the four phases (preprocessor, compiler, assembler, and linker) are known collectively as the compilation system.
Preprocessing phase. 预处理器根据以#符号开始的指令,修改C源程序,生成另一个修改过的源程序。
The preprocessor (cpp) modifies the original C program according to directives that begins with the # character. For example, the #include <stdio.h> command in line 1 of hello.c tells the preprocessor to read the contents of the system header file stdio.h and insert it directly into the program text. The result in another C program, typically with the .i suffix. 引自 Chapter 1
The compiler (ccl) translates the text file hello.i into the text file hello.s, which contains an assembly-language program. Each statement in an assembly-language program exactly describes one low-level machine-language instruction in a standard text form.引自 Chapter 1
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs. 这一目标,努力! We begin our study of systems by tracing the lifetime of the hello program, from the time it is ...
2014-12-10 22:42:55
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs.引自 Chapter 1
这一目标,努力!
We begin our study of systems by tracing the lifetime of the hello program, from the time it is created by a programmer, until it runs on a system, prints its message, and terminates.引自 Chapter 1
#include <stdio.h>
int main()
{
printf("hello, world!\n");
}
// The hello program.
1.1 Information Is Bits + Context
在计算机系统中,所有的程序、信息都被描述为一段段二进制的0和1序列,每个二进制序列所表达的意思,取决于自身和所在的上下文环境。同一个二进制序列在一个环境中也许表示的是一段文字,在另一个环境中也许表示的是一张图片。就像一个男人在家扮演者丈夫,父亲的角色,在公司却是一个员工的身份。
The source program is a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called. Each byte represents some text character in the program.
Most modern systems represent text characters using the ASCII standard that represents each character with a unique byte-sized integer value. For example, Figure 1.2 shows the ASCII representation of the hello.c program.引自 Chapter 1
The hello.c program is stored in a file as a sequence of bytes. Each byte has an integer value that corresponds to some character.
The representation of hello.c illustrates a fundamental idea: All information in a system-including disk files, programs stored in memory, user data stored in memory, and data transferred across a network-is represented as a bunch of bits. The only thing that distinguishes different data objects is the context in which we view them. For example, in different context, the same sequence of bytes might represent an integer, floating-point number, character string, or machine instruction.引自 Chapter 1
1.2 Programs Are Translated by Other Programs Into Different Forms
C程序是用来给人阅读,机器无法识别,为了能够在机器上运行程序,源程序必须经编译器编译成机器可以运行的可执行文件。
In order to run hello.c on the system, the individual C statements must be translated by other programs into a sequence of low-level machine-language instructions. These instructions are then packaged in a form called an executable object program and stored as a binary disk file. Object programs are also referred to as executable object files.
On a Unix system, the translation from source file to object file is performed by a compiler driver:
unix> gcc - o hello hello.c引自 Chapter 1
编译系统四个阶段的处理程序:预处理器、编译器、汇编器、连接器。
Here, the GCC compiler driver reads the source file hello.c and translates it into an executable object file hello. The translation is performed in the sequence of four phases shown in Figure 1.3. The programs that perform the four phases (preprocessor, compiler, assembler, and linker) are known collectively as the compilation system.
Preprocessing phase. 预处理器根据以#符号开始的指令,修改C源程序,生成另一个修改过的源程序。
The preprocessor (cpp) modifies the original C program according to directives that begins with the # character. For example, the #include <stdio.h> command in line 1 of hello.c tells the preprocessor to read the contents of the system header file stdio.h and insert it directly into the program text. The result in another C program, typically with the .i suffix. 引自 Chapter 1
The compiler (ccl) translates the text file hello.i into the text file hello.s, which contains an assembly-language program. Each statement in an assembly-language program exactly describes one low-level machine-language instruction in a standard text form.引自 Chapter 1
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs. 这一目标,努力! We begin our study of systems by tracing the lifetime of the hello program, from the time it is ...
2014-12-10 22:42:55
You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare "power programmer," enlightened by an understanding of the underlying computer system and its impact on your application programs.引自 Chapter 1
这一目标,努力!
We begin our study of systems by tracing the lifetime of the hello program, from the time it is created by a programmer, until it runs on a system, prints its message, and terminates.引自 Chapter 1
#include <stdio.h>
int main()
{
printf("hello, world!\n");
}
// The hello program.
1.1 Information Is Bits + Context
在计算机系统中,所有的程序、信息都被描述为一段段二进制的0和1序列,每个二进制序列所表达的意思,取决于自身和所在的上下文环境。同一个二进制序列在一个环境中也许表示的是一段文字,在另一个环境中也许表示的是一张图片。就像一个男人在家扮演者丈夫,父亲的角色,在公司却是一个员工的身份。
The source program is a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called. Each byte represents some text character in the program.
Most modern systems represent text characters using the ASCII standard that represents each character with a unique byte-sized integer value. For example, Figure 1.2 shows the ASCII representation of the hello.c program.引自 Chapter 1
The hello.c program is stored in a file as a sequence of bytes. Each byte has an integer value that corresponds to some character.
The representation of hello.c illustrates a fundamental idea: All information in a system-including disk files, programs stored in memory, user data stored in memory, and data transferred across a network-is represented as a bunch of bits. The only thing that distinguishes different data objects is the context in which we view them. For example, in different context, the same sequence of bytes might represent an integer, floating-point number, character string, or machine instruction.引自 Chapter 1
1.2 Programs Are Translated by Other Programs Into Different Forms
C程序是用来给人阅读,机器无法识别,为了能够在机器上运行程序,源程序必须经编译器编译成机器可以运行的可执行文件。
In order to run hello.c on the system, the individual C statements must be translated by other programs into a sequence of low-level machine-language instructions. These instructions are then packaged in a form called an executable object program and stored as a binary disk file. Object programs are also referred to as executable object files.
On a Unix system, the translation from source file to object file is performed by a compiler driver:
unix> gcc - o hello hello.c引自 Chapter 1
编译系统四个阶段的处理程序:预处理器、编译器、汇编器、连接器。
Here, the GCC compiler driver reads the source file hello.c and translates it into an executable object file hello. The translation is performed in the sequence of four phases shown in Figure 1.3. The programs that perform the four phases (preprocessor, compiler, assembler, and linker) are known collectively as the compilation system.
Preprocessing phase. 预处理器根据以#符号开始的指令,修改C源程序,生成另一个修改过的源程序。
The preprocessor (cpp) modifies the original C program according to directives that begins with the # character. For example, the #include <stdio.h> command in line 1 of hello.c tells the preprocessor to read the contents of the system header file stdio.h and insert it directly into the program text. The result in another C program, typically with the .i suffix. 引自 Chapter 1
The compiler (ccl) translates the text file hello.i into the text file hello.s, which contains an assembly-language program. Each statement in an assembly-language program exactly describes one low-level machine-language instruction in a standard text form.引自 Chapter 1
0 有用 CaiDa 2012-12-31 00:04:38
复习了cache、Virtual Memory部分
3 有用 御宅暴君 2015-10-22 17:53:34
最权威的计算机导论!要是我大一就读多好啊。
0 有用 换个昵称 2013-06-01 17:48:53
经典不需要解释
0 有用 丸子(^.^)v 2014-05-30 10:16:47
11年的新版? 不知道会有什么变化……
0 有用 夸父 2012-11-23 12:08:13
TP3/356.2
0 有用 无耻之徒 2021-01-14 21:59:35
老书再读,常读常新。 历时半年,终于搞定,一位老朋友,加油!
0 有用 混沌的云 2020-08-13 14:09:46
读完就忘记系列,但没事翻翻查查知识点还是好用的。。。
0 有用 大海 2020-05-12 23:27:50
内容介绍很丰富
0 有用 饿死了 2020-04-03 00:52:30
100 out of 10
0 有用 Hy 2020-01-01 18:26:17
牛逼