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 |
News
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