CS 4348 Operating Systems

Objectives
This course is designed to train students in both theory and practice in the operating systems area. Lectures will introduce the important issues and teniques in operating systems design. Projects are designed to enhance students' ability in concurrent programming.

Topics
l l l l l l

Introduction to Operating Systems Processes, Threads, and Processor Scheduling Concurrency Control, Synchronization, and Deadlocks Memory Management and Virtual Memory Concept Disk Device/Storage Management and File Systems Introduction to Distributed Systems

Readings
1. Operating Systems by William Stallings, Fifth Edition, Prentice Hall 2. Class notes.

Recommended Books for Projects
1. Advanced Programming in the UNIX Environment by W. Richard Stevens R. Richard Stevens, Addison Wesley, ISBN 0201563177 2. Multithreaded Programming with Pthreads, by Bil Lewis and Daniel J. Berg, Prentice Hall, ISBN 0-13-680729-1.

Notes
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Overview of Operating Systems Processes and Threads Processor Scheduling Algorithms Concurrency Overview Concurrency Control: Shared Memory Concurrency Control: Message Passing Deadlock Memory Management Virtual Memory Management I/O Device Management File Systems

12. ------------------------------------------------13. Example questions for tests

Additional Examples
l

Example of process states

Homework Assignments
l l l

Homework # 1: ps version pdf version Answer Key Homework # 2: ps version pdf version (tentative) Homework # 3: ps version pdf version (tentative)

Projects
l

Project Descriptions
¡ ¡ ¡

Project #1 Sample sequence.dat File Project # 2. Language: Java or C++.

l

Examples Related to Projects
¡ ¡ ¡

Here is a very simple sample of Makefile. Here is a sample program on using fork and pipe. Here is a sample program on creating threads

l

Tutorial sites for thread programming
¡ ¡ ¡ ¡ ¡

A good tutorial for Pthread A reasonable tutorial for Pthread An OK tutorial for Java Thread A so so tutorial for Java Thread A good tutorial for Solaris Thread

l

Socket Programming Related
¡

¡ ¡

Reference Book: Unix Network programming: Networking APIs: Sockets and XTI (2nd edition), by W. Richard Stevens, Prentice Hall; ISBN: 013490012 A good online tutorial for socket programming. Tutorial for socket programming. Potential dates: 2/26 or 2/27

Grade Distribution

l l l l l l

Exam 1: 20% Exam 2: 20% Exam 3: 20% Projects 1: 8% Projects 2: 24% Homework Assignments: 8%

Important Dates (may change as the semester goes)
l l l

l l l

Project 1 due: Feb 8 (Tuesday), 2005 Project 2 due: April 16 (Sat), 2005 Homework 1 due: Feb 1 (Tue), 2005 (Penalty for late project within one week: 1+2+3+3+3+3+3. No project assignment is acceptable one week after the deadline.) Exam 1: Feb 22 (Tue), 2005 Exam 2: April 5 (Tue), 2005 Exam 3: April 28 (Thu), 2005

Instructor and TA information
l l l l

Instructor: Dr. I-Ling Yen, ilyen@utdallas.edu, (972)883-6446 Instructor Office Hours: 11:00am-12:00pm, Tuesdays and Thursdays, ES 4.402 TA: Dongfeng Wang, dongfeng.wang@student.utdallas.edu TA Office Hours: 6:00pm-8:00pm, Tuesdays and Thursdays, ES 3.213

Policies
l

l

l

l

Homework will be collected at the beginning of the class period on the day it is due. No late homework will be accepted. Lab assignments are due at the midnight of the due date. Late lab assignments incur a 15% per day penalty. No discussions among students are allowed for homework and lab assignments. Questions regarding assignments can be discussed with the TA or instructor. All exams will be close book, close notes in the regularly scheduled class room.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.