Department of Computer Science 


CS 414/415: Spring 2005

Systems Programming and Operating Systems

 
 
Course Details
 Home
 Overview
 Course Staff/Help
 Academic Integrity
 How to Lose in CS 414
 
Schedule
 Lecture Notes
 CS415 Sections
 
Assignments
 Homework
 Projects
 Exams
 
Resources
 C for Java programmers
 CVS in CSUGLab
 Suggested Readings
   
Course Description:

CS 414/415 covers introductory operating system design and implementation. We will cover the basics of operating systems, namely structure, concurrency, scheduling, synchronization, memory management, filesystems, security and networking. We will also discuss advanced topics such as ubiquitous computing and extensible systems. The course is open to any undergraduate who has mastered the material in CS 314. All students enrolled in 414 this spring must also be enrolled in 415 and complete the practicum project. The project will require a substantial programming effort.


CS 415 Projects:

This semester, the project component of the course will involve several projects which will start small and build up to an ad-hoc networking system on handheld computers. The first two project assignments will involve building a prototype operating system. The first assignment is to implement our own threads, scheduling, and synchronization mechanisms at user level on top of NT. We will use the facilities provided by NT mostly to bootstrap our own OS. The second one will add preemption and introduce interrupt-driven networking. For the third assignment, we will switch from NT to CE devices (Palmax 600's) donated by Microsoft. We have 30 Palmax 600's and 70 HP Jornadas with wireless networking cards for this course. The "default" class project for this semester will involve peer-to-peer messaging in an ad-hoc network. Students are encouraged to work in pairs and to modify their project.