Syllabus
CSCI 3000
Operating Systems
Section 001
Spring 2017

Class meeting MWF 2:00–2:50
Austin 304
Textbook Modern Operating Systems, fourth edition, by Andrew S. Tanenbaum and Herbert Bos.
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours M–Th 3:00–4:00,
F 11:00–12:00 or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/3000/spr17/
My web page www.cs.ecu.edu/~karl/

Contents

  1. Prerequisites
  2. Course topics
  3. Grading
  4. Incompletes
  5. Attendance policy
  6. Recommendations for success
  7. Ethical issues
  8. Additional information

Prerequisites

You should have a working knowledge of computer programming including basic algorithms, functions, and memory management. In this course, you will write programs in C.

You should have a working knowledge of gate-level computer architecture and elementary state machines.


Course Topics

  1. Introduction to operating systems
  2.  What is an operating system?
  3.  A brief history of operating systems
  4.  System calls and interrupts
  5.  The structure of an operating system
  6. Processes and threads
  7.  Synchronization
  8.  Inter-process and inter-thread communication
  9.  Scheduling
  10. Memory management and virtual memory
  11.  Paging and segmentation
  12. File systems
  13. I/O hardware and software
  14.  Disks and clocks
  15.  User interfaces
  16. Deadlock avoidance
  17. Virtualization

Grading

Grading will be based on three midterm exams, a comprehensive final exam and assignments to be assigned as the course proceeds.

The midterm exams will be on the following dates.

  1. Wednesday, February 8
  2. Wednesday, March 15
  3. Wednesday, April 19

The final exam is 2:00-4:30 Friday, April 28, in Austin 304.

Grades will be computed as follows.

Grading
3 midterm exams 42% (14% each)
A comprehensive final exam 37%
Assignments 21%

Tentative cutoffs for grades will be as follows. These cutoffs will not be raised.

Grade cutoffs
A 93%
A– 90%
B+ 87%
B 83%
B– 80%
C+ 76%
C 72%
C– 68%
D+ 64%
D 60%
D– 56%

Incompletes

No incompletes will be issued in this course except for extraordinary circumstances, and even then only if you are nearly done already and have done work of acceptable quality, so that it is realistic that you can pass the course. An incomplete will not be given simply because a student could not find the time to do the course work. By registering for this course, you are committing to finding time to do the work.


Attendance policy

You are expected to attend class. You are responsible for announcements and assignments given in class. If you miss a class, it is up to you to obtain notes and any other information that was provided in the class. Excuses that you did not know about something because you did not come to class and did not obtain the information will not count for anything at all.

Those who do not attend class can count on doing poorly in this course. If you choose not to attend class, then you must live with the consequences of that choice, however bad they are.

Recommendations for success

  1. Attend class. Arrive on time.

  2. Do not bring distractions to class. If you read your email, listen to music, send and receive text messages or engage in other distracting activities during class, you will get very little out of class. That will show up in your grade.

  3. Ask questions in class. If you do not understand something, ask a question about it.

  4. Ask questions outside of class.

  5. Get adequate sleep. Sleep is important both before and after you learn new concepts. Sleep before enables you to concentrate and think clearly, and sleep afterwards is critical for moving new information into permanent memory.


Ethical issues

You can feel free to get help from anyone on the following issues concerning programming assignments.

  1. Understanding the problem description.
  2. Using the system software and hardware.
  3. Understanding the source of compile errors.
  4. Understanding broad issues of program or algorithm design for the problem.

Otherwise, do your own work. You will learn nothing by letting others do your work for you.


Additional information

For information about

please see the auxiliary information at http://www.cs.ecu.edu/~karl/2530/spr17/syllabus-aux.html.