Introduction To System Programming
Introduction To System Programming
System Programming
System Software
System Programming
Module Summary
Parallel processing
highly parallel and complex CPU
several physical processors
several cores per physical processor
hyper-threading in a single core
heterogeneous cores
GPU, CPU, accelerators
large memory, fast network
several users, several programs
Your smartphone provides about the same performance as the world’s fastest
supercomputer from 1997 – 2000, ASCI Red. Yet, it (reference: Samsung Galaxy S22),
requires about 25 times fewer processors to do so
is about 70’000 times cheaper
consumes about 450’000 times less power
Memory
I/O I/O … …
PU(*) PU PU
processor processor
$ dirtree lecture/code/02/Unix
lecture/code/02/Unix/
├ dedup/
│ ├ dedup.py
│ └ strings.txt
├ dirsize/
│ ├ dirsize
│ ├ dirsize.bash.txt
│ ├ dirsize.c
│ ├ dirsize.find.sh
│ ├ dirsize.ls.sh
│ └ dirsize.py
└ dirtree/
├ .dirtree.c.swp
├ Makefile
├ dirtree
└ dirtree.c
FFFFFFFF FFFFFFFF
FFFF.... ........
kernel address
space
FFFF8000 00000000
00007FFF FFFFFFFF
0000.... ........
user address
space
00000000 00000000
program
entry point
return EXIT_SUCCESS;
} hello.c
System Software
Hardware
System Software
Programming
Data Science Languages
Embedded
Systems Database
Systems Compilers
Networking Operating
Systems Computer
Security
System
Programming
Computer
Data Architecture
Structures
Programming
Numpy
https://github.com/numpy/numpy
Tensorflow
https://github.com/tensorflow/tensorflow
Julia
https://github.com/JuliaLang/julia
R
https://www.r-project.org/ (https://svn.r-project.org/R/trunk/)
Module Summary
Understanding how a computer system works and executes programs is essential for
almost all hot areas in computer science
cyber security
data science
machine learning and artificial intelligence
general super computing
quantum computing
and many more