Summary
This chapter contained a very brief introduction to computer hardware, specifically those parts that are crucial to the performance of the system. We also looked at some of the responsibilities of the operating system. Understanding the way that hardware is designed and put together is not essential for being a programmer, but it is for designing code that will perform at the cutting edge. Having an understanding of how your actions as a programmer are realized in the hardware will make you a better programmer.
Two of the most important features of modern processors are the cache memory and vector instructions. Understanding how to make sure the cache is fully utilized and how to maximize the throughput using SIMD instructions will give your code the performance edge that it needs. However, one must also remember that not all processors are designed equally and, as a result, some might not possess all these features. Remember that sometimes it is best to lean on the tooling...