os

CSCI 2310
Operating Systems

Bowdoin College
Fall 2014
Instructor: Sean Barker

Course Description

This course will provide an introduction to operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, providing common services needed by many different programs (e.g., filesystems, the ability to start or stop processes, and access to hardware devices), and protecting individual programs from one another.

We will start with a brief historical perspective of the evolution of operating systems, and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to four major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems, and operating system support for distributed systems.

Prerequisites: CSCI 2101/210. This course fulfills the MCSR requirement.

People

Instructor: Sean Barker
Office: Searles 221
Phone: 207-798-4220
Email:
Office Hours: Tuesdays 12:30-2, Wednesdays 3-4:30, Thursdays 2-4, or by appointment

Course Requirements

Attendance and participation in class, completion of written homeworks and programming-intensive programming projects, and two exams (one midterm and a final). Evaluation will be as follows:

Programming projects will be in C++ and will involve a substantial time commitment on your part. Projects may be completed in groups of 2. The first project is short and is meant to familiarize you with C++ programming. You will have roughly 2-3 weeks to complete each project, but it is essential that you start the projects early. You will have 3 flex days to submit projects late without penalty during the semester, which may be allocated however you wish. Beyond the use of your flex days, late projects will be penalized a letter grade per day.

Textbook

textbook

A. Silberschatz, P. Galvin, and G. Gagne. Operating System Concepts, 9th edition (2012). Available at Amazon or elsewhere.

Class Information

Mondays and Wednesdays
1:00 - 2:25 PM
Searles 126

Exams

Electronic Device Policy

Use of laptops in-class is permitted for note-taking or other class-related purposes. Cell phones should be silenced and put away during class to avoid disruptions.

No electronic devices, including computers, phones, or calculators, are permitted during exams unless specifically indicated by the instructor.

Collaboration Policy and Honor Code

You are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code. No collaboration whatsoever is permitted on exams. You may, however, discuss lab assignments with other class members. Ideally, these discussions should be limited to broad, conceptual questions, since labs are the primary means for you to learn the material, but you are also allowed to discuss more detailed questions regarding the design and implementation of your programs. However, you are not allowed to share code under any circumstances. For example, it is permitted for one student to ask another student how he/she did something or to ask for help debugging a problem in his/her code; it is not permitted for a student to take another student's code or to let another student write code for him/her. Remember that providing help beyond what is allowed here is as much of an infraction as receiving help. Once you have finished the course, sharing your work with future students taking the course is also a violation.

Use of the internet (e.g., Google) for reference purposes is allowed on lab assignments, such as looking up the use of a particular library function. Blindly copying sections of code found online, however, is not allowed, and you should never submit code that you do not understand or would not be able to clearly explain.

In the interest of fairness to all students, violations of this policy are grounds for me to initiate an action that would come before the Judicial Board. If you have any questions about this policy, please do not hesitate to ask for clarification.