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    T-TH 8:00 - 9:50, Nethken 243

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

Instructor          Dr. Chokchai (Box) Leangsuksun

Grader              Sonal Dekhan, ssd002@latech.edu

Texts                Silberschatz, Abraham, and Peter Galvin, Operating System Concepts, 6th Ed., John Wiley & Sons, 2003, ISBN 0-471-25060-0, 951 pp.

                        Linux Kernel/device drivers books (e.g.  Linux Device Drivers 2nd Edition by Rubini & Corbet, O'Reilly  Pub, ISBN 0-596-00008-1)

                        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 17

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

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/13/2003 Class syllabus and Chapter 1 Introduction
  Chapter 1 Introduction (pdf, ppt )& Chapter 3 Operating System Structure (pdf, ppt)
  Chapter 3 Operating System Structure (continue)
  Project1 & Intro to Unix & Chapter 4 Process
  Chapter 3 & Project 1 & sample code
  Homework 1 & Chapter 2 Computer System Structure
  Chapter 4 Process (process concept, scheduling queue, context switching)
  Chapter 4 Process (Collaborating processes, IPC and Unix IPC)
  Chapter 4 Process (Unix IPC) sample2.tar
  Chapter 5 Thread , Midterm review
4/17/2003 Midterm exam
4/18/2003-4/21/2003 Easter Holiday 
  Chapter 6 CPU Scheduling
  Chapter 6 CPU Scheduling (homework #2)
  Chapter 6 CPU Scheduling & midterm review
  Chapter 7 Process Synchronization
  give out project 2 (see sample code in sample3.tar)
  Chapter 7 Process Synchronization
  Project 3, Linux Device Driver presentation and sample code
  Homework3: Linux util/subsystem case study, Chapter 8 Deadlock Detection
  Chapter 8 Deadlock Detection
  Chapter 9 & 10: Memory Management & home work 4
  Class Presentation
  Review and ready for the final
5/20/2003 Final exam


3/18/2003    Class survey

5/6/2003    Homework #3 topics and presentation schedules