Bill Manaris : Spring 2011 / CSCI 340 Course Syllabus
College of CharlestonJanuary 10, 2011

CSCI 340 Operating Systems

Course Syllabus

Professor:

Dr. Bill Manaris

Office:

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 10 - 11AM & 1 - 2:30PM.
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.

Textbook:

  • Andrew Tanenbaum, (2008), ''Modern Operating Systems", 3rd ed., Prentice Hall.

References:

  • 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:

  • Demonstrate understanding of basic operating system (OS) principles and major OS design issues.
  • Demonstrate an understanding of the context within which an OS works, as well as what an OS is expected to accomplish.
  • Demonstrate historical knowledge of OS evololution (development) including major milestones and advances.
  • Demonstrate understanding of the relationship of an OS to, and dependence on, hardware (processor, memory, disks, I/O devices, Buses, and BIOS).
  • Demonstrate understanding, including supported services, of the different OS varieties including: mainframes, server, multiprocessor, personal, handheld, embedded, sensor, real-time, and smart-card.
  • Demonstrate understanding of the concepts of the process and of the thread, as well as the key elements of process description and control, the relationship of threads to processes, and thread management.
  • Demonstrate understanding of scheduling issues in both uniprocessor and symmetric multiprocessor environments, of the major scheduling algorithms, both pre-emptive and non-pre-emptive, their advantages and disadvantages, and the special problems related to scheduling in a real-time environment.
  • Demonstrate understanding of the principles of memory management, including memory partitioning, segmentation, swapping, paging, and virtual memory (including working sets and thrashing).
  • Demonstrate understanding of the basic principles of file management, including file organization, file directories, file sharing, record blocking, and management of secondary storage.
  • Demonstrate understanding of the major issues in I/O device management, including buffering, disk scheduling, disk caching, RAID, and recovery from failure.
  • Demonstrate understanding of concurrent processing and of the interrelated principles of mutual exclusion, synchronization, semaphores, monitors, message passing, deadlock (including the techniques of deadlock avoidance, deadlock prevention, deadlock detection, and deadlock resolution), and livelock.
  • Demonstrate capability of writing a simple shell script which executes successfully in the GNU/Linux environment.
  • Demonstrate capability of modifying an existing program and of writing a new program in the language, C, which executes successfully as part of the GNU/Linux kernel, as well as the use of Makefiles.

Grading:

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 solutions (or related code), modify them, incorporate them into (or even worse, present them as) your own work. Such activity is considered cheating. This is a serious offense and will affect your academic career. 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. 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 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 a lab 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.
(Some material adopted from Prof. Leclerc's CSCI 340 syllabus)
(Printable View of http://www.cs.cofc.edu/~manaris/?n=Spring2011.CSCI340CourseSyllabus)