|
CMSC 313
Syllabus
Information
Projects
Readings
Lectures
Exams
Dates
Changes
Submit server
Grades system
|
Syllabus with all course information
(in PDF).
Course Description
The goal of the course is to convey the fundamental concepts that enable
programs to execute on real hardware. Those concepts include how the
operating system virtualizes the hardware to provide basic services and
abstractions to enable a user program to effectively use the available
hardware resources. The course also addresses how different programming
constructs and idioms work.
The basic abstraction of a program running as one or more threads of
control in a single flat address space (a Unix process) is the key
to the course. Emphasizing that abstraction as the underlying model for
understanding how a program works, from both the user program and
hardware perspective (with the OS in between), run as a theme through all
topics in the course. Examples include C pointers (to data and
functions), function calls and runtime stack management, dynamic memory
management in the heap, and the fork/exec system calls.
Primary Text
- Computer Systems: A Programmer's Perspective, R.E. Bryant and D.R.
O'Hallaron, Prentice Hall, 2003; ISBN 0--13--034074--X.
Recommended Text
- Pointers on C, K.A. Reek, Addison--Wesley, 1998; ISBN
0--673--99986--6.
|