Spring 2012»CSCI 340 Course Syllabus

CSCI 340 Course Syllabus

College of CharlestonJanuary 6, 2012

CSCI 340 Operating Systems

Course Syllabus


Dr. Bill Manaris


Room: 223 J.C. Long Building
Phone: (95)3-8159
E-mail: manarisb@cofc.edu
Web: http://www.cs.cofc.edu/~manaris/

Office Hours:

Monday, Wednesday, Friday 1 - 2PM.
Tuesday 1:15 - 2:15PM
Other hours available by appointment.

Course Description:

A course introducing operating systems principles including device management, process management, memory management, virtual memory, file management, and protection mechanisms. Laboratory exercises (using Unix) will allow students to gain hands-on experience with the details of how these operating systems principles are implemented.

Prerequisites: CSCI 230, CSCI 250, and MATH 207.

Tentative Outline:

Syllabus, Survey, Intro to Unix, Intro to C, Definition, History of Operating Systems and Concepts, Processes and Threads, Memory Management, File Systems, I/O, Deadlocks, and other topics as time permits.


  • Andrew Tanenbaum, (2008), ''Modern Operating Systems", 3rd ed., Prentice Hall - recipient of the Text and Authors Association (TAA) 2010 Longevity Award.


  • Daniel J. Barrett, "Linux Pocket Guide", O'Reilly.
  • Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language", Prentice Hall.
  • H.M. Deitel and P.J. Deitel, "C - How to Program", Prentice Hall.

Additional reading materials will provided via handouts and the class website.

Learning Outcomes:

  1. Understand the function, basic principles, and desirable characteristics of an operating system (OS).
  2. Understand the historical milestones, advances, and terms in OS evolution.
  3. Learn and apply the fundamentals of the Unix OS (architecture, file system, editor, basic utilities and shell commands).
  4. Learn and apply the C programming language for systems development (on Unix environments).
  5. Understand and explain OS architectures including monolithic, layered, virtual machine, client-server, kernel, multiprocessor.
  6. Understand the relationship between an OS and hardware (including processor, memory, disks, I/O devices, and buses).
  7. Understand the concept of process (vs. thread), as well as key elements of process description and control, states, and scheduling algorithms (both preemptive and non-preemptive).
  8. Understand the principles of interprocess communication, including mutual exclusion, synchronization, semaphores, monitors, and message passing.
  9. Understand the principles of memory management, including memory partitioning, fitting algorithms, swapping, paging and replacement algorithms, segmentation, virtual memory, working sets, Belady's Anomaly, and thrashing.
  10. Understand the principles of deadlocks, including prerequisite conditions (mutual exclusion, hold-and-wait, no preemption, circular wait), avoidance, prevention, detection, and recovery.
  11. Understand basic principles of file management and I/O device management.


To receive a passing grade for the course, you must average a passing grade on each of the following: assignments, tests, and final exam.

Scale: A: 90-100; B: 80-89; C: 70-79; D: 60-69; F: <60. The grades of B+/, C+/, and D+/ may be given at the professor's discretion.

Final Grade Computation: Assignments (4-6) 30%, Tests (2) 40%, Comprehensive Final Exam or Final Project 20%, and Class Participation 10%.

Honor Code:

  • You must do your assignments alone (or with your teammates, for group assignments).
    • It is relatively easy to find related code, modify it, incorporate it into (or even worse, present it as) your own work. Such activity is considered cheating. This is a serious offense and will affect your grade in this class and your academic career at the College. If in doubt, check with the instructor before you look at any code or solution related to your assignment.
  • You are not allowed to discuss assignments and possible solutions with any person other than the instructor, lab instructor, tutor, grader (or with your teammates, for group assignments).
  • On assignments you will be asked to identify the person(s) you received help from, if any.
  • Any violation of these rules is an honor offense. Also see the College of Charleston Student Handbook, especially sections on The Honor Code (p. 11), and Student Code of Conduct (p. 12). There is other useful information there.

Test Policies:

  • Attendance at tests is mandatory. You must complete tests with no discussion or sharing of information with other students.
  • Calculators, computers, cell phones, etc. may not be used during a test, unless otherwise directed.

Classroom Policies:

  • You are expected to take good notes during lecture.
  • You are expected to participate in class with questions and invited discussion.
  • You are expected to attend all classes. You are responsible for announcements made in class, assignment due dates, etc. If you miss class, you must get an absence memo from the Associate Dean of Students Office. The grade 'WA' may be given for excessive (> 4) absences.
  • You should turn off all electronic devices (e.g., cell phones, pagers, etc.).
  • You must use computers only as directed (e.g., no checking email, or playing games) during class.
  • In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn
    • See College of Charleston Student Handbook, section on Classroom Code of Conduct (p. 58).

Assignment Policies:

  • No compilation policy: No credit will be given for an assignment which does not compile. It is your responsibility to verify that what you submit compiles on stono. If you develop your lab on another system, port it to stono and re-compile (and run) it there (before you submit it) to verify that everything works.
  • Submission policy: All assignments must be submitted electronically using the submission instructions provided. No email submissions will be accepted.

Late Policy:

  • You have four "late" days for the whole semester. You may use these days as you wish for assignment submission. If you use them up, no late assignments will be accepted.
  • If you submit everything on time (i.e., use no late days), you will earn an additional 2.5 bonus points on your course grade.