CS 204 - System Software - Spring 2002
Lafayette College >
Department of Computer Science >
CS 204
News
Instructor: Dr. James Glenn
Office: Pardee 328
Office Hours: T 2:30-4:00, W 12-2, R 12:15-1:15, or by appointment
E-mail: glennj@cs.lafayette.edu
Phone: (610)330-5415
Times and Locations: Lecture TR 9:30-10:45 in Pardee 329, Lab TR 11-12:15 (section 01) or TR 1:15-2:30 (section 02), both in Pardee 320
Recommended Text: Linux Assembly Language Language Programming by B. Neveln
Other resources:
- Computer Systems: A Programmer's Perspective by R. Bryant and
D. O'Hallaron. This book is not yet in print, but there is an
electronic draft available in
PDF form. It is not so important that you need to print out all 250+ pages.
I will identify the more relevant sections as we go along.
- You can download an x86 Instruction Set Reference from the Intel website.
Again, this is a long document so print out only what you need.
- The JVM Specification may be of some interest.
- I have a local copy of the nasm
manual which can also be found on the nasm homepage. The manual includes
another x86 instruction set reference.
- There is a description of g++'s name mangling scheme on the
gxx
website (gxx is the DOS version of g++).
- The
Garbage Collection FAQ
contains a summary of the issues involved in garbage collection as well as
some links to other relevant material.
-
Microsoft (!) has a nice description
of the layout of classes,
the virtual function mechanism, and thunks. Keep in mind that there are
a couple of (minor) differences between the way Visual C++ lays out classes
and how g++ lays out classes.
-
Sun's SPARC v8 Architecture
Manual is available online.
- UMass-Amherst has a
POSIX threads tutorial
- Other resources may be added during the semester as we need them.
Prerequisite: CS 203 - Computer Organization
Catalog Description:
This course deals with system software topics such as: run-time
organization, parameter passing, interrupt processing, exception
handling, device drivers, assembly language, and high-level language
interface.
Topics: (Notes)
- Review
- Assembly Language (IJVM, IA-32, SPARC)
- High-level languages
- Memory management
- Linking
- Interrupt handling
Grading:
- Labs 20%
- Projects 30%
- Midterm Exam 20% (Thu, March 21)
- Final Exam 30% (Mon, May 13 1pm-3pm in Pardee 321)
Academic Honesty:
Discussions of lab assignments are permitted as long as code is not
involved. If a lab includes written answers then the work you submit
should reflect your own understanding of the problem: if confronted in
a dark alley with no help available you should be able to explain your answer
without difficulty.
No help from anyone other than the instructor is allowed on
any other work (projects and exams). Students must follow the
college's Principles of Intellectual Honesty described in the student
handbook.