Operating Systems 2020W Lecture 4
Video
Video from the lecture given on January 17, 2020 is now available.
Notes
Lecture 4
---------
What is a assembly-language view of a computer?
* hardware registers
- general purpose registers
- special purpose registers
- status/flag registers
- access and manipulate by specifying register directly or
registers change behavior indirectly
* memory (RAM)
- each memory location has a unique address
- get value or change value by specifying address
* (maybe) I/O ports
- access to devices
This assembly-language view is implemented in UNIX processes
registers
- "variables" that can be manipulated by instructions
- size varies, but 64-bit computers generally have 64-bit registers
modern computers mostly follow a load-store architecture
- load value(s) into registers from RAM
- manipulate values in registers
- save registers to RAM
(cache (L1, L2, L3)
- faster memory to make register<->memory operations faster
- cache not visible to programs)
To add two numbers together in two variables x and y and store in z
- load x into a register
- load y into another register
- add registers together, store result in one of them
- save result register to z
Modern CPUs have very few registers
- at most 64 registers
Hennessey & Patterson, Computer Architecture, a Quantitative Approach
- read this to learn more about computer architecture and the performance
tradeoffs