Finished reading Csapp (Chinese name: In-depth understanding of computer systems)

Source: Internet
Author: User

Last week the Csapp was finished.
I bought a Chinese version, because in addition to the seemingly good evaluation, because it involves some of the underlying things they do not know, afraid to see English will foggy. Now, it is probably not a good strength, but it can speed up my reading speed, or a week is really unlikely to take this book.

Csapp for a long time, mainly because it is said that this book as far as possible to do relatively practical, not to talk about the actual programming does not have much to do with the computer principle (after all, the most popular computer school software of the CMU works), the focus is very appropriate, Like me, no undergraduate program is born and do not want to die to read some do not know the future is not practical things, the most suitable for the people. Interesting things on the line to deepen, not interested in even, just.
There is a list of courses in the preface to Csapp, which recommends several teaching courses, using different chapters accordingly. I chose Ics+ 's plan for the exam. Ics+ 's CMU class number is 15-213, which is said to be exactly the same as the CMU ZIP code, and then there is the phrase "15-213:the Class that Gives CMU it zip!". With this sentence as the key word, you can find ics+ slide.
Ics+ 's course covers the entire book, except for the 4th chapter, "Processor architecture" . I myself in addition to skip this really not very interested in the chapter (too biased hardware), there is also the 9th Chapter "Measuring Program Running Time" is a little turn over, the others are carefully read the exercise after writing.

The book is indeed a rare book. The first time I tried to read the book was a few months ago, when the 2nd chapter, "The expression and processing of information" did not read and put down, I think it is very boring to say a lot of digital expressions ... This time slightly insisted on a bit, did not expect to read down in one breath ...
The 3rd chapter "Machine-level representation of the program", the 5th Chapter "Optimization Program Performance", the 6th chapter "Memory Hierarchy", the 10th chapter "Virtual Memory"are recommended. Think that these four chapters are the essence of the book, people can not stop.

The "machine-level representation of the program" chapter is almost a way to teach reverse project, to parse the compiler-generated assembly code, to deepen the understanding of the detailed code implementation. A lot of exercises are based on the compilation to guess what the source program is, it is very interesting. This chapter also covers the buffer attack-but it's too little to quench your thirst and have time to get your own.
Talk about the bottom of the assembly this is a little tricky thing, I also once worry about the compilation of their own learned not too, will encounter obstacles. But here the author puts forward a very practical requirement: The program ape was asked to write a compilation, and now requires the program ape to read the assembly. Here in a "read" way to teach people to use the assembly, not limited to a lot of small grammar, so that only understand the C program ape also has no obstacles. Only 100 pages, not only the preliminary compilation of the grammar and use, but also with a large number of sample analysis to interpret the resulting assembly code, so that people understand deeply, is outmanoeuvred.

"Optimizer Performance" is the most flash chapter in the book. The author of the example of continuous optimization, talking about cycle efficiency and process calls, to the memory reference, has been talking about the structure of modern processors, talk about the limitations of the IA32 processor, all the way down, carefree dripping. The IA32 processor optimization results are also compared to the Compaq Alpha 21164, at a glance to see which optimizations are processor-related, and finally the profiling (program anatomy) to guide optimization, can be said that the most commonly used the highest skills (after all, I am not a compiler developer ...) ) and the process has gone one side, the practical significance is quite high.
This chapter of all the techniques can be used to explain the principle of all clear, do not do unnecessary digging deep, combined with code, so that people do not feel dull, really admire the pleasantly surprised. Although the chapter has provided references and deepened content to compiler optimizations, I think the content of this chapter has been enough for me for a long time.

the "Memory hierarchy" can actually be seen as an extension of the "Optimizer performance" chapter and a cushion for subsequent "virtual storage" . This chapter focuses on how fast cache works, and how to use locality to make the cache work best.
virtual Memory, however, has risen to the operating system level, detailing the implementation of VMS and how VMS are organized on Linux systems. What I think most useful is the detailed method of dynamic memory allocation implemented by Malloc/free and the understanding of the detailed storage structure in the process, as well as the policy of GC. These things that make me feel like I can do a little bit more, have been unable to understand the principles of software such as Valgrind seems to have a point.
The two chapters are so much more careful that they seem a little dull. In fact, the main reason I like the two chapters myself is that I've been puzzling over memory for years. It is only the memory aspect of the content is profound, oneself this is completely a little fur on complacency.

In fact, I am still very useful in computer science, and have been holding up to the careful study of the attitude, so reading is generally not serious, just to find the time can be found in the examination. Just this book I think particularly interesting, so also look particularly serious, the problem of every section of the work done, homework is waiting for two days to review (plan is this ...) ) to deepen the impression.
Just never found Csapp's internship manual. There is a "binary bomb" experiment is very attractive, the typical disassembly work, a little bit to achieve my childhood cracked the feeling of desire-hope to find the future do not let me too disappointed, hehe.

It's just that the book still has some shortcomings. The biggest regret is that the last three chapters "system level I/O","network Programming","concurrent programming" speak a little bit more simple-they happen to be slightly familiar with the point, think that there is a lot less, a pity. Just "concurrent programming" taught me something I didn't know at all-a progress map to explain why deadlocks and how to solve them are really great (and too ignorant ...). )。
In addition, there is a careful reading of apue2 later also let me very confused so that I have to surf the internet to make clear one thing, csapp a word to conquer, that is Csapp write to the Pthread_detach function, said "in order to avoid memory leaks, Each thread that can be combined should either be Cheng by another thread, or be separated by calling the Pthread_detach function. And apue2 about detach that paragraph just let me foggy, only explained the behavior of thread and how to use, do not say why, harm I still have to check ... Just apue2 the thread part is not W.richard Stevens write, is the Rago after adding, there is indeed quality difference ...

Want to book also has the severity of the points, csapp the focus of the hardware and software, the integration of the Department, the back of the application level of the thing is only to make a point of use, is no wonder. Although this is the case, Csapp can sometimes make a person's eyes bright.
The other problem with this book is that although the Chinese translation is pretty good-and it's a revised version, typography often goes wrong, especially when it comes to assembling code and staring. And the title of the translation is particularly boring, Leng like mixed in a pile of domestic computer structure Book of things ...
Just still that sentence, his flaws, Csapp is indeed the best computer book I have ever read one of the (originally wanted to add one of the, just do not add at least a bit sorry apue ^_^).

Said back, Csapp's thanks inside has such a sentence:

Finally, we are grateful to the great technical writer Brian Kernigam and later W.richard Stevens, who proved to us that technical books can be written so beautifully.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.