Answer the question
In order to leave comments, you need to log in
What literature to read to study computer architecture and OS?
Hello! I am a beginner programmer (if I may say so), now I am learning C ++, but in general it does not matter.
However, tell me the literature in order to better understand the computer architecture, axes and everything that a programmer needs to know.
Please write books that you have already read or are sure that they are suitable and relevant.
And a plus designed for a beginner and for the development of a good base.
Answer the question
In order to leave comments, you need to log in
It's great that you came up with this.
As they say, first master the alphabet, and then take up c ++ .
1. Charles Petzold "CODE" Must
read. All these bit depths, bit depths, etc. are chewed very well.
In the process of reading, you, together with the author, gradually assemble a computer and simultaneously master the necessary background for this.
From the beginning, approaches to encoding information are analyzed, not encryption, but the principles of presenting information in zeros and ones. Then the number systems are sorted out, then a little chemistry and physics, in order to imagine how the current flows through the wires. Then you understand how the relays work, then the first logical elements on the relay go. Then, together with the author, you assemble various components such as memory, a processor based on previously designed logic elements. In general, this all goes on until you finally build a computer and learn a few basic assembly instructions, along the way, learning how to count in different number systems, a brief history of the development of computer technology and all logical elements.
2. Andrew Tannenbaum "Structured Computer Organization"
In theory, you can even start right away with this book, but all those fundamental things that Petzold chews will be mentioned here in passing, but more serious things about architecture will go here. The device levels of modern processors, memory, assembler, interrupts, etc. will be considered. etc. etc. Enumerate everything does not make sense, because. the list is going to be huge. This is the most complete and detailed book on computer architecture. In principle, after reading it from cover to cover, you will understand the architecture of the computers themselves quite well.
3. Hennessy J., Patterson D. "Computer Architecture A Quantitative Approach"
I have not read this one yet, but judging by the content, it can be a great addition after tannenbaum. Although, it may well turn out to be a fairly self-sufficient book on a par with the aforementioned book.
Judging by the preface and content, in addition to what tannenbaum analyzes, it pays a lot of attention to parallelism, clouds, resource sharing, etc.
You can take it this way:
If you value time, then start immediately with Tannenbaum, but if it turns out to be difficult, then close and read Petzold from the beginning.
If you have enough time, then immediately read Petzold, and then Tannenbaum :) And this is the best option. IMHO)
Petzold is read very easily and interestingly. I read it in one breath, but with Tannenbaum everything is not so simple)
UPD:
About relevance. Everything is relevant)
2 and 3 disassemble modern ARM-Cortex A8 and i7 processors, Nvidia Fermi, CUDA, etc.
Well, in the first book, this is not necessary)
The necessary minimum knowledge of a systems programmer who deals with architectures and OSes is contained in a unique book: Randal E. Bryant, David O'Hallaron Computer Systems. Architecture and programming.
There is an online course for this book: www.coursera.org/course/hwswinterface
Speaking of "everything a programmer should know" in general, I can't help but recommend this wonderful article, based on the elite American higher education in the field of CS, and having the most whatever practical application: habrahabr.ru/post/251747
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question