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. Students will also be introduced to
Linux in both user and system/kernel modes.
Prerequisites
CSC 222
Time & Room
T-TH 8:00 - 9:50, Nethken 120
Course URL
http://www.latech.edu/~box/oss2006.htm
Instructor
Dr. Chokchai (Box) Leangsuksun
Grader Apurba dhungana <catchapurba@gmail.com>
Texts
Silberschatz, Abraham, and Peter Galvin, Operating
System Concepts, 7th or 8th Ed., John Wiley &
Sons, ISBN 0- 471-69466-5, 921 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/assignments 30%
(see more details below)
2-5 Homework
assignments
15%
Term Paper
10% April 28, 2011
Midterm
Examination
20%
April 14, 2011
Final Examination (comp.)
25%
May 12, 2011 (Grade for Degree Candidate - May 17)
Peer Evaluation form and calculation formula
for team projects
Presentations will be graded using this grade sheet
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 |
|
week1 |
Class
syllabus, intro of Linux
and Chapter 1 Introduction
|
|
week
2 |
Chapter 1 Introduction ( ppt )& Chapter 2 Operating System Structure
& emacs quick ref card |
|
|
www.latech.edu/~box/os/Project1.pdf
(programming assignment #1) & Intro to Unix & Chapter 4 Process |
|
|
Chapter 3 new (chap 4 of 6th
edition) Process (process concept, scheduling queue, context switching) |
|
|
Chapter 3
Process (Collaborating processes, IPC and Unix IPC) |
|
|
Chapter 3
Process (Unix IPC) sample2.tar |
|
|
|
|
|
|
|
|
Midterm exam |
|
|
|
|
|
project
2 (see sample code in
sample codes) |
|
|
|
|
|
Chapter 11 File System Implementation |
|
|
|
|
|
Linux Device Driver
presentation and sample
code |
|
|
Chapter 8
& 9: Memory Management and
Virtual Memory Homework 3 http://www.latech.edu/~box/os/hw3.pdf |
|
May 12, 2011 |
Final exam |
|
|
|
News
Term
paper topics can be found at http://www.latech.edu/~box/os/termproj.htm