CS 4315: Operating Systems
Fall 2016 (CRN: 11567, Class mode: Hybrid, Class time: Wednesday 4:00pm-5:15pm)
Instructor: Dr. Hong Lin
Office: N-704A Tel: (713) 221-2781
E-mail: linh@uhd.edu URL:
http://cms.dt.uh.edu/faculty/linh
Office Hours: Monday-Thursday 2:30pm-3:30pm, and by appointment.
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.
Supplemental: “The Art of Multiprocessor Programming”, by Maurice Herlihy & Nir Shavit, Elsevier, 2008.
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). However, updates may be added to the lecture notes in the progress of the course.
Course prerequisites: CS 3304
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 |
Labs & Programming Assign. |
30 % |
Final Exam |
30 % |
Total |
100% |
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.
Attendance Policy: Your failure to attend class (face to face or
hybrid), engage course material (Online only); or make contact with faculty to
adequately explain your absence by the 10th class calendar day of
the semester will result in your being administratively dropped from this
course. Being dropped from this course may affect your enrollment status
and/or your financial aid eligibility.
Statement
on reasonable accommodations: The
University of Houston-Downtown complies with Section 504 of the Rehabilitation
Act of 1973 and the Americans with Disabilities Act of 1990, pertaining to the
provision of reasonable academic adjustments/auxiliary aids for students with a
disability. In accordance with Section 504 and ADA guidelines, UHD
strives to provide reasonable academic adjustments/auxiliary aids to students
who request and require them. If you believe that you have a disability
requiring an academic adjustments/auxiliary aids, please contact the Office of
Disability Services, One Main St. Suite 409-South Houston, TX 77002.
(Office) 713-226-5227; (Website) www.uhd.edu/disability/;
(Email) disabilityservices@uhd.edu.
Course Schedule
(This schedule is subject to update. You should check it regularly for assignments and due dates)
Week |
Monday |
Wednesday |
1 |
8/22 |
8/24 Chapter 2 |
2 |
8/29 |
8/31 |
3 |
9/5 Labor Day |
9/7 |
4 |
9/12 |
9/14 |
5 |
9/19 Review for the 1st test |
9/21 1st Test |
6 |
9/26 |
9/28 |
7 |
10/3 |
10/5 Multicore
Lab 2 – Cache Coherence |
8 |
10/10 |
10/12 |
9 |
10/17 |
10/19 |
10 |
10/24 Review for the 2nd test |
10/26 |
11 |
10/31 |
11/2 |
12 |
11/7 |
|
13 |
11/14 |
11/16 Chapter 10 Lab – Dining Philosopher’s Problem |
14 |
11/21 |
11/23 |
15 |
11/28 |
11/30 Review for Final Exam |
16 |
12/5 |
12/7 Final Exam
4:00-6:30pm |