COMPSCI 110, Spring 2006Introduction to Operating Systems |
|
|
|
Policies and AdministrationGoals of the CourseTo cover the traditional topics: What is an Operating System and what is it supposed to do for us? How does it accomplish these functions? How are such systems implemented and structured? Topics include concepts of protected kernels, processes and threads, concurrency and synchronizations, file systems, and virtual memory. To help you develop new skills: Concurrent programming. Inheriting large, complex software systems and adding value (as in the "real world"). Developing an intuition for system design tradeoffs. A major component of the course is a series of projects using the notorious Nachos instructional operating system. To give you occasional glimpses into current Operating Systems research, motivated by hardware trends, web applications, and mobile computing. Who should take this course? All undergraduate CS majors should take this course at some point. You should have completed the basic introductory sequence, and also CPS 104. Familiarity with C, C++, and basic Unix program development tools (e.g., gmake ) is assumed. Workload. This is a demanding course. There are six required Nachos programming assignments, with one due approximately every two weeks. To make things a bit easier, you will work through the Nachos projects in teams of three or four students. As in previous offerings of CPS 110, you will present your projects in demo sessions with the instructor or the TAs. These projects will be fun and valuable if you form teams quickly, start early on the projects, and make your Nachos work a priority this semester. In addition to the Nachos assignments, there will be problem sets, 2 in-class midterm exams, and an in-class final exam. Expectations and GradingSee Expectations.htm for information
on collaboration policies, what you can expect of me, and what I will expect
of you.
Grades will be based on:
Exams:
Midterms 12.5% each, final 30%;
Labs: 45%
|