CS 4315: Operating Systems

Fall 2009 (CRN: 10761, 3 credit hours, Class times: Monday-Wednesday 11:30am-12:45pm)

Instructor:             Dr. Hong Lin

Office:                    S717                 Tel: (713) 221-2781

E-mail:                    linh@uhd.edu    URL: http://cms.dt.uh.edu/faculty/linh

Office Hours:        2:00-4:30pm MTWR

Catalog description: (3-3-0) This course will introduce you to the concepts of operating systems. We will focus on traditional systems utilizing a single processor and the issues that arise when multiple processes must share the processor, memory and I/O resources. The course focuses on three main operating system functions: device management, process management, and storage management (main memory and file system management). Programming examples will be carried out on UNIX.

Textbook: "Operating Systems", 3rd edition, by Gary Nutt, Addison Wesley, 2004.

References:  Any book on UNIX/LINUX, any book on C/C++ ).  Some of these include: 

Course Web Page: The course web page is at: http://cms.dt.uh.edu/faculty/linh/courses/cs4315/index.htm.  As the semester progresses, various material will be posted and/or updated in the course schedule including, the course syllabus, projects, homework assignments, and lecture notes.   I will also post course announcements such as exam dates, project/homework deadlines  as well as urgent messages, if needed, on that page.  So you may want to check it regularly. Original Powerpoint presentations are developed by Dr. Gary Nutt (The author of the textbook) and Dr. Ali Berrached. However, updates may be added to the lecture notes in the progress of the course.

Course prerequisites: CS 3304 and CS 3306

Topic prerequisites: i) Familiarity with computer hardware organizations ii) programming experience with C or C++, and iii) programming experience using data structures such as those discussed in CS3304.

Topic content:

Topic

Textbook Chapter

Introduction

Chapter 1

Quick Overview of UNIX

Chapter 2 & Unix Refs

Operating System Organization

Chapter 3

Computer Organization

Chapter 4

Device Management

Chapter 5

Processes

Chapter 6

CPU Scheduling

Chapter 7

Process Synchronization

Chapter 8

Deadlock

Chapter 10

Memory Management

Chapter 11

Virtual Memory

Chapter 12

File Systems

Chapter 13 (optional)

 

 

Learning Outcomes: At the completion of the course, the student should be able to: 

 

1.

Understand fundamental operating system abstractions such as processes, threads, files, semaphores, IPC abstractions, shared memory regions, etc.

2.

Understand how the operating system abstractions can be used in the development of application programs, or to build higher level abstractions.

3.

Understand how the operating system abstractions can be implemented.

4.

Understand the principles of concurrency and synchronization, and apply them to write correct concurrent programs/software.

5.

Understand basic resource management techniques (scheduling or time management, space management) and principles and how they can be implemented. These also include issues of performance and fairness objectives, avoiding deadlocks, as well as security and protection.

 

Programming Assignments:   There will be some programming assignments to reinforce some of the theoretical concepts discussed in class. Programming assignments are to be written in C on LINUX. You may get a LINUX account on gator in the Academic Computing Lab (800 South Bld). Also, a telnet software "putty.exe" is available here.

Course grade: Course grades will be determined as follows:

Assignment

Weight

2 Midterm Exams

20 % each

Programming Assign.

20 %

Final Exam

30 %

Labs & Participation

10 %

Total

100%

 

  • Exam dates will be posted at course schedule.
  • Your final course grade will be determined by the standard college formula based on your course average: 90-100à "A", 80-89à "B", 70-79à "C", 60-69à "D", 0-59à "F".
  • You must have a passing average (60+) on both the major tests and the programming assignments to pass this course.
  • The Last day to withdraw from a course with a grade of "W" is October 29, 2009 (6pm).

Make-up exam late assignments: Homework/programming assignments are to be completed and turned in by the due date at the beginning of class. Late assignment will not be accepted. There are no makeup exams. If you miss one exam, your grade of the final exam will be counted twice. At most one exam can be missing. All missed grades will be recorded as zeros.

Academic Dishonesty: For this class, all work must be done individually -- no group work is allowed. You are encouraged to generally discuss assignments with fellow students, but may not copy their solution or code. Doing so constitutes academic dishonesty which will be sanctioned with a grade of F, and possibly further disciplinary actions by the University.

Statement on reasonable accommodations: UHD adheres to all applicable federal, state, and local laws, regulations, and guidelines with respect to providing reasonable accommodations for students with disabilities. Students with disabilities should be notified to register with Disabled Student Services and contact the instructor in a timely manner to arrange for appropriate accommodations.

 

Course Schedule

(This schedule is subject to update. You should check it regularly for assignments and due dates)

Week

Monday

Wednesday

1

8/24
Chapter 1

8/26

Chapter 1

2

8/31

Chapter 2

9/2

Linux Tutorial - Part 1

Lab1 & Lab2

Project 1 Handout

3

9/7

Labor Day Holiday

9/9

Linux Tutorial - Part 2

Lab3

4

9/14
Chapter 3

Lab 3.1 Observing OS Behavior

9/16
Chapter 4 – Part 1

5

9/21
Chapter 4 – Part 2

9/23

Review for the 1st test

6

9/28

1st Test

9/30

Chapter 5 - Part 1

Project 1 Due
Project 2 Handout

7

10/5

Chapter 5 - Part 2

10/7

Chapter 6 - Part 1

8

10/12

Chapter 6 - Part 2

10/14
Lab exercise - fork()/wait()

9

10/19
Chapter 7 - Part 1

10/21

Chapter 7 - Part 2

10

10/26

Review for the 2nd test

10/28
2nd Test

11

11/2

Chapter 8 - Part 1

11/4

Chapter 8 - Part 2

Project 2 Due

Project 3 Handout

12

11/9

Lab exercise - Mutual exclusion

11/11
Chapter 10 - Part 1

13

11/16

No class

11/18

Chapter 10 - Part 2

14

11/23
Chapter 11 – Part 1

11/25
No class

15

11/30

Chapter 11 - Part 2

Project 3 Due

12/2

Review for Final Exam

16

12/7

Reading Day

12/9

17

12/14

12/16

Final Exam 11:30am – 2:00pm