Chapter 1 Roaming Computer Systems
Amdahl's Law
When we speed up a part of the system, its effect on the overall performance of the system depends on the importance of that part and the degree of acceleration. If the system takes time to execute an application
. Assume that the ratio of the execution time required for a part of the system to that time is
, and the performance improvement ratio of this part is
. That is, the initial time required for this part is
, now the required time is
. Therefore, the total execution time should be
From this, the speedup can be calculated
for
The main point of Amdahl's law - to significantly speed up the entire system, you must increase the speed of a significant portion of the entire system.
Concurrency and Parallelism
thread-level concurrency
Traditionally, this kind of concurrent execution was only simulated , by having a computer switch rapidly between the processes it was executing, as if a juggler kept multiple balls flying in the air.
Hyper-threading, sometimes referred to as simultaneous multi-threading, is a technology that allows a single CPU to execute multiple control flows.
instruction level parallelism
At a lower level of abstraction, the property that modern processors can execute multiple instructions simultaneously is called instruction-level parallelism .
If a processor can achieve a faster execution rate than one instruction per cycle, it is called a super -scalar processor. Most modern processors support superscalar operations. When programmers can write program code with a higher degree of instruction-level parallelism, programs run faster.
Single instruction, multiple data parallelism
At the lowest level, many modern processors have special hardware that allows a single instruction to produce multiple operations that can be executed in parallel, in a way called single-instruction, multiple-data , or SIMD parallelism. For example, newer generations of Intel and AMD processors have instructions to add 8 pairs of single-precision floating point numbers (C data type float) in parallel.
Most of these SIMD instructions are provided to improve the execution speed of applications that process image, audio, and video data.
The importance of abstraction in computer systems
A file is an abstraction of I/O devices, virtual memory is an abstraction of program memory, and a process is an abstraction of a running program. A virtual machine , on the other hand, provides an abstraction of the entire computer, including the operating system, processor, and programs.