modern computer layout
hardware + software
-> software = kernel mode (OS) + user mode (UI + apps)
operating system
a program that manages the hardware
basis for apps
intermediary between user and hardware
os as a resource manager
top-down view
-> provides abstractions to apps
bottom-up view
-> manages pieces of complex systems
-> provides orderly, controlled allocation of resources
1st generation of OSs
(1945-55): Vacuum tubes
second generation of OSs
(1955-65): Transistors and batch systems
3rd generation of OSs
(1965-1980): ICs and multiprogramming
4th generation of OSs
(1980-present): Personal computers
5th generation of OSs
(1990-present): Mobile computers
UNIX, MINIX, LINUX
UNIX - a simpler os
- MINIX (1980s)
- LINUX (1990s)
Each component of a computer has a …
controller
three stage pipeline
Fetch -> Decode -> Execute
memory hierarchy
registers
cache
main memory
magnetic disk / SSD
up: size and access time decrease, cost increases
volatile memory
gone when the system doesn’t have power
registers <-> cache
quick access <-> slower access
nonvolatile storage
a type ofcomputer memory that can retain stored information even after power is removed
SSD
Solid State Drive
- No moving parts, data in electronic(flash) memory
- Much faster than magnetic disks
I/O devices strcuture
controller + device
device driver
I/O Port Space
The collection of device registers
to perform I/O:
interrupt
the occurrence of an event usually signalled by an Interrupt from Hardware or Software
CPU interrupted → stops what it is doing and transfers execution to a fixed location → the interrupt service routine executes → CPU resumes the interrupted action
hardware <-> software interrupts
hardware → interrupt
software → system call
bootstrap program
booting
the procedure of starting a computer by loading the kernel