Have you taken a class survey? Please take few minutes to do so by clicking on this moving letters... Thanks Box

Course              CSC 345 - Operating Systems

Description       This is an introductory course to the theory, design and implementation of operating systems. A typical operating system is the software layer between user programs and the computer hardware.  It provides abstractions (processes, file system, etc.) of the underlying hardware that are easier to program, and it manages the hardware resources.
We will cover the following
basic operating system topics, including processes, CPU scheduling, synchronization, deadlock detection/avoidance, memory management, and file and I/O systems. Basic security and one of case studies may be covered as time permits.

Prerequisites     CSC 240 and CSC 265

Time & Room    MWF 9:30 - 10:45, Nethken 243

Course URL       http://www.latech.edu/~box/os.htm

Instructor          Dr. Chokchai (Box) Leangsuksun

Grader              Nikhil Reddy Tummula, 318-513-2948

Texts                Silberschatz, Abraham, and Peter Galvin, Operating System Concepts, 6th Ed., John Wiley & Sons, 2002, ISBN 0-471-41743-2, 887 pp.

 In addition to materials from the above main textbook, Iíll provide more references (URL or some books) when we  discuss on some particular topics in the programming projects..

Grading Policy   3 Programming Projects                  45%     (see more details below)

                         4 Homework assignments               10%

                         Midterm Examination                      20%     Wednesday, April 10

                         Final Examination (comp.)   25%     Wednesday, May 15

Programming     There will be three programming projects and objective. I will explain

Projects             More detail for each project and my expectation. Additional references will be provided in the class.

1.      A simple shell is a basic shell program that supports commands with I/O re-direction.

Objective: To learn a user interface aspect (shell), how to interface to process management and basic I/O system calls.

2.      Dining Philosophers: You will implement the DP solution using some synchronization mechanisms (e.g semaphore) and analyze the solution with regards to starvation of processes to see if it occurs regularly in practice.

Objective: To understand synchronization issues and to learn how to use process management and synchronization system calls

3.      FIFO device driver

Objective: To understand I/O system and learn how to develop a device driver interface to a kernel.


Class Materials

Date Topics
3/6/2002 Class syllabus and Chapter 1 Introduction
3/8/2002 Chapter 1 Introduction (pdf, ppt )& Chapter 3 Operating System Structure (pdf, ppt)
3/11/2002 Chapter 3 Operating System Structure (continue)
3/13/2002 Chapter 3 & Project 1 & sample code
3/15/2002 Project1 & Intro to Unix & Chapter 4 Process
3/18/2002 Chapter 4 Process (process concept, scheduling queue, context switching)
3/20/2002 Chapter 4 Process (Collaborating processes, IPC and Unix IPC)
3/22/2002 Chapter 4 Process (Unix IPC)
3/25/2002 Chapter 5 Thread
3/27/2002 Chapter 6 CPU Scheduling
4/5/2002 Chapter 6 CPU Scheduling (homework #2)
4/8/2002 Chapter 6 CPU Scheduling & midterm review
4/10/2002 Midterm exam
4/12/2002 Chapter 7 Process Synchronization
4/15/2002 review Midterm exam and give out project 2 (see sample code in sample3.tar)
4/17/2002 Chapter 7 Process Synchronization
4/19/2002 Chapter 8 Deadlock Detection
4/22/2002 Chapter 8 Deadlock Detection & Chapter 13 I/O Hardware
4/24/2002 Chapter 13 I/O Hardware
4/26/2002 Project 3 and Linux Device Driver
4/29/2002 Chapter 11 File System Interface & home work 3
5/1/2002 Chapter 12 File System implementation
5/3/2002 Chapter 12 File System implementation
5/6/2002 Chapter 9 & 10: Memory Management
5/8/2002 Chapter 9 & 10: Memory Management & Virtual Memory
5/10/2003 Review and ready for the final
5/13/2002 Final exam
5/15/2002-5/17/2002 Case study (by Dr. Edwin) & survey


3/8/2002 If you have not taken our class survey, please take few minutes to do so. This survey will help enhancing your learning experiences. Click here to take survey.

3/13/2002. Uploading our Project 1 description  & sample code tar file (forking and executing and skeleton code with makefile).

3/14/2002. A link to UNIX "top" command manpage is added and available via this link.

3/18/2002. Intro to Unix presentation is uploaded.

3/21/2002. Unix IPC, socket sample code (sample2.tar) is uploaded

3/25/2002. An update on class materials with references to original sources

4/7/2002. This page is updated with , our grader name & his contact info, links to chap4, 5 and 6 PowerPoint slides and homework #2.

4/7/2002. Upload sample3.tar that includes a semaphore sample code (for simple DP problem).

4/28/2002. Update sample4.tar (very simple device driver code for the  project #3)

5/8/2002. Upload the rest of class materials upto the final exam