The student who will find a job please look over here! _ Work

Source: Internet
Author: User
Tags intel pentium

To find a satisfactory job, this book is not

--deep understanding of computer systems

Please read the text carefully, the essence is all inside.

Introduction:

When I first entered the Research Institute of Chinese Academy of Sciences, the same dormitory brother and I recommended a "deep understanding of computer systems", this book from a programmer's point of view detailed analysis of the entire computer system, covering the composition of the principle, assembly language, architecture, operating system, network, and other computer basic knowledge.

Because of the time limit, I did not read immediately, but put it in the search for work before the review list. In August 2010, it took me one months to finish reading the original book Computer system:a Programmer's perspective. It turned out that reading the book helped me a lot in finding a job.

                                    Chinese Version: http ://book.douban.com/subject/5333562/                                     English: http://book.douban.com/subject/5407246/    Text:

In the course of reading, I made a few notes on each chapter of the book for reference when I read it again in the future. These annotations are mainly from two angles, one is to find a job for me (including the written test and interview) there is no use, the second is my own technology to improve there is no use, so divided into examination and cultivation of two indicators, according to the popular scoring standards will be divided from ★ to ★★★★★ five levels.
After a successful job search, I reviewed the previous annotations, combined with my own written examination, interview experience, revised again. The test index is mainly based on my job objective (Internet industry bias algorithm software engineer) as a reference, and the requirements of other positions will be some discrepancies.

Chapter I computer system roaming a Tour of Computer system
This chapter gives a general introduction to computer systems, summarizing some of the concepts that will be focused on in the following chapters in simple and straightforward language.
★: In the written examination may encounter some overall concept problems.
Cultivation ★: The basic concept of the computer.

Chapter II presentation and handling of information representing and manipulating information
This chapter describes the representation of information in the computer, focusing on the representation of integers and floating-point numbers.
Test ★: Rarely in the exam.
Practicing ★★★: There are many people who have been writing for years without knowing how floating-point numbers are stored in that 4 (8) byte, and that the expression (x-y<0) is not a substitute (x<y).

Chapter III The machine-level representation of the machine-level representation of program
This chapter is actually the review of assembly language courses.
Test: Important to rely on the target, if it is the same as I biased algorithm engineers, assembly language will not be the test.
Practicing ★★★★★: Understanding assembly Language and register structure is the basis of many of the following.

Chapter Fourth processor Architecture Processor Architecture
This chapter is actually the content of the computer architecture course. The main contents are processor structure, various logic gates, function units, instruction set, instruction execution, instruction execution line, etc.
Test ★: For the software-related positions, very rarely to the bottom of this thing.
Practice ★★★: For technical personnel engaged in software level, do not go deep, but also should understand, know what is going on.

Fifth Chapter Optimization Program performance Optimizing performance
This chapter describes how to optimize the execution of programs, including code optimization, compiler optimization, and CPU-level optimization.
The 5.1-5.6 section mainly introduces several methods that can improve the code performance effectively.
Exam ★★★★: There are often some problems that will make you look for flaws in the program, if you can see the code in which details can be optimized, you can add a lot of points.
Practice ★★★★★: Of course you need to know what level the compiler will automatically help you optimize your code, and how you can optimize it in small detail when the compiler is not optimized.
After section 5.7, we mainly introduce the optimization of CPU level, the concept of micro-instruction, the parallel of micro-instruction on function unit, and the Prediction of Program branch.
Test ★: For the software related positions, the basic will not test these things.
Cultivate ★★★: Don't go deep, but you should know and understand.

Sixth chapter memory hierarchy structure the Memory hierarchy
This chapter describes in detail the storage structure in the computer system.

6.1 Describes the different kinds of storage devices and the corresponding ways of accessing data.
Examination and Cultivation ★: Very little to the examination, to understand.
6.2-6.7 introduces the organization of storage equipment, emphatically introduces the cache and its working mode, how the program is dealing with the cache, the different loop nesting sequence, the traversal direction and so on the impact of cache hit.
Exam ★★★★: In the interview, often test to the cache-related topics; Modify the loop nesting order to improve cache hit rate is also a number of programs to correct the problem of the advanced play.
Cultivation ★★★★: Storage structure and cache are very basic and important concepts in computers.

Seventh Chapter link Linking
As the name suggests, this chapter details the process of linking the program, mainly divided into static links and dynamic links, as well as links to the use of technology such as symbolic resolution, relocation and so on.
Test ★: Know some basic concepts can be.
Practicing ★★★★★: A software engineer should know how to become an executable in a written program, and sometimes you may be tortured by a link error for several days.

Eighth chapter abnormal control flows exceptional controlling flow
As the name suggests, this chapter mainly explains the exception control, but here the "exception" is not in Java or C + + narrow sense of the exception, but a broad "exceptions" concept, including interrupts (Interrupt), traps (trap), error (Falut), Stop (Abort), etc. This chapter also introduces the concept of processes, introducing process-level exception: signals (signal) and the means by which the operating system handles this exception-context switches.
Test ★: Master the concept of the process can be.
Cultivation ★★★: Know how the exception control flow, the user program and system interaction (such as system call) the principle and manner, not too deep.

Nineth Chapter Virtual Memory Memory
In a very important chapter, the virtual storage mechanism is one of the most important technologies for the computer to achieve multitasking. It is through the time technology that the computer makes every process seem to monopolize the CPU, and then through the virtual storage mechanism, each process is executed as if it had exclusive memory.
10.1 describes the virtual address and physical address, the CPU to address operations resulting in virtual addresses, through the storage snap-in (memory management unit) into the actual physical memory address.
10.3~10.5 describes the advantages of the virtual storage mechanism: The memory can be used as the cache of hard disk, more convenient to manage memory, and better provide memory protection mechanism.
10.6 Describes how virtual addresses are converted to physical addresses.
10.7 Wonderful section, the entire storage management mechanism is described through an example of Intel Pentium and Linux. Remember the previous operating system classes, a variety of theories, mechanisms to learn a lot, but is not aware of the actual operating system in the end which set of methods, and this section of the content is through an example to let you just learn the theoretical mechanism has an intuitive understanding.
10.8~10.10 describes storage mappings (Memory Mapping), dynamic memory allocation, and garbage collection mechanisms.
The 10.11 Practical section lists some of the memory reference errors that are easy to make in C programming.
Exam ★★★★★: This chapter content is the key content of the operating system course, if examination operating system, almost certainly the examination, 10.11 section of knowledge can also help you to deal with some procedures to pick the wrong question.
Practicing ★★★★★: An important foundation in the operating system, even if you only use high-level programming languages such as Java, you should at least understand the garbage collection mechanism.

Tenth chapter System Level I/O system-level I/O
This paper introduces I/O reading and writing under Unix-like system, mainly introduces the I/O interface of system level. Since the I/O interface used in our daily programming is a packaged standard interface provided by a variety of high-level languages, this part of the knowledge is not necessary without the underlying development, and I skip reading.

11th Chapter Network Programming Network Progranmming
This chapter briefly introduces the network model, TCP/IP protocol, socket interface of UNIX-like system and so on.
Test and Cultivation ★: Because of space limitations, this chapter only do a simple explanation, to master network programming knowledge also need to refer to specialized network technology books.

12th Chapter concurrent Programming Concurrent programming
This chapter briefly introduces the content of concurrent programming, which mainly includes:
1. Process-level concurrency, where each subprocess has a different virtual address space, the IPC (interprocess communication) mechanism is required to share data and the switching overhead is large.
2.I/O multiplexing, event-driven, single process running, shared virtual address space, concurrent effect is not ideal.
3. Threads, between the above two kinds of threads, each child thread shares the virtual address space of the process, the switching overhead is small.
In addition, this paper introduces the semaphore mechanism of accessing shared variables in concurrent programming, and gives 4 kinds of functions which are easy to cause thread insecurity.
TEST ★: In addition to apply for relevant positions, concurrent programming is relatively small, but need to clearly lock mechanism and signal volume mechanism.
Practicing ★★★: Multithreaded routines are common in today's development, but this chapter is simpler and requires reference to other specialized books.

In general, I think this book is a good fit to read before looking for a job. Because of the various written and interview questions circulated online, we can see that the major IT companies in the recruitment of engineers is very important to the basic knowledge, and for such as I have three years of graduate students, a lot of knowledge due to long time no longer forget, So we need to review it again. But we may not have time to review the course one by one, even if a door to see, it may not be able to connect the knowledge, and this book just provides such a perspective, from the programmer's point of view of the computer profession the most important basic knowledge is strung up to form a complete computer system concept.

"Transferred from" http://www.madongfly.cn/articles/notes_of_csapp.html

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.