Documente Academic
Documente Profesional
Documente Cultură
Systems Programming
Devin J. Pohly <djpohly@cse.psu.edu>
CMPSC 311: Introduction to Systems Programming
Page 1
Software system
A platform, application, or
other structure that:
is composed of multiple
modules
Page 2
10,000-foot view
Page 3
A layered view
Each layer:
provides service to
layers above
understands and relies
on layers below
Page 4
A layered view
Higher-level layers
Lower-level layers
constrained by
performance, footprint,
behavior of the layers
below
Page 5
Example system
Operating system
Page 6
Page 7
Page 8
A real-world abstraction
What does this do?
Page 9
A real-world abstraction
Page 10
Processes
The execution abstraction provides the illusion that each process has sole
control of the entire computer (a single stack and execution context)
Page 11
Virtual memory
Page 12
Virtual memory
Advantages of virtual
memory
Page 13
Files
A file is an abstraction of
a read-only, write-only,
or read/write data object.
A data file is a collection
of data on some medium
often on secondary
storage (hard disk)
also called a regular file
Page 14
Files
Page 15
Systems programming
Page 16
Programming languages
(approximately) directly
executed by hardware
tied to a specific machine
architecture, not portable
no notion of structure, few
programmer conveniences
possible to write really,
really fast code
Page 17
Programming languages
Compilation of a
programming language
results in executable code
to be run by hardware.
Page 18
Programming languages
Page 19
Programming languages
Page 20
Programming languages
Page 21
Discipline
Page 22
Knowledge
Tools
Lower-level systems
Systems foundations
Page 23