CS 446/646 Principles of Computer Operating Systems
Department of Computer Science & Engineering
UNR, spring 2009
Course Information -
Description -
Objective -
Prerequisites -
Textbooks -
Syllabus
Organization -
Grading -
ABET Criteria -
Schedule -
Announcements
| Class hours |
Monday & Wednesday, 4:00 - 5:15pm, SEM 234 |
|
|
| Instructor |
Dr. Mehmet Gunes |
| E-mail |
mgunes (at) cse (dot) unr (dot) edu |
| Phone |
(775) 784 - 4313 |
| Web page |
http://www.cse.unr.edu/~mgunes |
| Office |
SEM 230 (Scrugham Engineering-Mines) |
| Office hours |
Monday & Wednesday 2:30 - 4:00 pm or by appointment |
Concurrent processes, interprocess communication, processor management,
virtual and real memory management, deadlock, file systems, disk management,
performance issues, case studies. Practical experience with UNIX.
The principles, components, and design of modern operating systems, focusing on the UNIX platform.
- Data Structures (CS 302),
- Microprocessor System Design (CPE 301),
- C/C++ or Java programming experience in UNIX-like environment.
Required
Recommended
This is a tentative list of topics, subject to modification and reorganization.
- Introduction to Operating Systems
- What Operating Systems Do
- Operating-System Operations
- Protection and Security
- Distributed Systems
- Special-Purpose Systems
- Computing Environments
- Open-Source Operating Systems
- Operating-System Structures
- Operating-System Services
- User Operating-System Interface
- System Calls
- System Programs
- Virtual Machines
- Processes
- Process Concept
- Process Scheduling
- Operations on Processes
- Interprocess Communication
- Threads
- Multithreading Models
- Thread Libraries
- Threading Issues
- CPU Scheduling
- Scheduling Criteria
- Scheduling Algorithms
- Thread Scheduling
- Multiple-Processor Scheduling
- Process Synchronization
- The Critical-Section Problem
- Synchronization Hardware
- Semaphores
- Monitors
- Atomic Transactions
- Deadlocks
- Deadlock Characterization
- Methods for Handling Deadlocks
- Deadlock Prevention
- Deadlock Avoidance
- Deadlock Detection
- Memory Management
- Swapping
- Contiguous Memory Allocation
- Paging
- Segmentation
- Virtual Memory
- Storage Management
- File-System Interface
- File-System Implementation
- Mass-Storage Structure
- RAID Structure
- I/O Systems
- Distributed Systems
- Protection & Security
- Distributed System Structures
- Types of Networks
- Distributed Coordination
- Except this web page, all course materials will be posted at the WebCT.
- Class participation in terms of asking questions is highly encouraged.
Please do not be afraid to ask questions no matter how simple you might think the answer could be.
This type of interaction helps improve the effectiveness of the class and breaks the monotony.
- Presentation slides will be available on the class web page.
I will try to put them up before each class meeting but no guarantees on that.
- There will be three in-class activities.
There will be a quiz associated with each of these activities.
The activities will require participation from every student.
- There will be four homework assignments.
Late assignments will be penalized by 25% per day, except holidays.
If I am not available, ask department secretary to stamp late assignments and then place them in my mail box.
You are responsible to make sure the stamp has both the date and the time.
Assignments will be accepted only through WebCT.
- There will be three lab assignments involving quite a bit of programming in UNIX environment.
Late lab assignments will be penalized by 10% per day, except holidays.
These lab assignments can be considered "mini-projects" with the same topic for everyone.
They will require turning in code that compiles and runs properly and a report
documenting the program (specifications, implementation, user manual, etc.).
Note that knowledge of C/C++ or Java in UNIX environment is required for these assignments.
- There will be four in-class quizzes.
Exact date for some of these quizzes will not be exposed beforehand.
These quizzes will be open book/notes and extremely time-constrained, i.e., 15-30 mins.
Questions in these quizzes will be designed to give you an opportunity to test and
affirm your knowledge of the course content.
- There will be one midterm exam and one final exam.
You should plan on taking the exams on the scheduled times.
No late/early exams unless in case of an emergency situation such as health emergency
or similar un-avoid-able situations and you need to provide convincing documentation for it.
The exams will be closed books and closed notes. No calculators (unless otherwise stated)
and no other electronic devices such as cell phones, beepers, etc. should be used during the exam.
- There will be extra questions in assignments and exams for CS 646 students.
- There will be no team assignments in this class,
therefore all assignments and exams must be prepared strictly individually.
You are welcome to discuss the problems or solution strategies with your class mates
but the resulting work should be your own.
Copying from each other or from other sources is considered as cheating.
Any form of cheating such as plagiarism or ghostwriting will incur a severe penalty,
usually failure in the course.
Please refer to the UNR policy on Academic Standards.
- If you have a disability for which you will need to request accommodations,
please contact the instructor or someone at the
Disability Resource Center
(Thompson Student Services - 101) as soon as possible.
Both grading policy and scale are subject to change.
Failure in either the assignments or the tests will result in failure in the course.
Grading Policy
10 - Homework (4)
30 - Lab Assignments (3)
10 - Quizzes (4)
25 - Midterm Exam
25 - Final Exam
Grading Scale
A : 90 - 100
B : 80 - 89
C : 70 - 79
D : 60 - 69
F : 0 - 59 (or caught cheating)
Important Note: You will have one week to appeal for your grades after the graded assignments/tests are returned.
So, please keep this in mind if you think that there is a problem/issue with the grading of your work.
ABET Accreditation Criterion 3 Program Outcomes that are relevant to this course are:
(a) an ability to apply knowledge of computing, mathematics, science, and engineering
(b) an ability to design and conduct experiments, as well as to analyze and interpret data
(c) an ability to design, implement, and evaluate a computer-based system, process, component,
or program to meet desired needs, within realistic constraints specific to the field
(d) an ability to analyze a problem, and identify, formulate and use the appropriate computing
and engineering requirements for obtaining its solution
(e) a knowledge of contemporary issues
(f) an ability to use current techniques, skills, and tools necessary for computing and engineering practice
(g) an ability to apply mathematical foundations, algorithmic principles, and computer science
and engineering theory in the modeling and design of computer-based systems in a way that
demonstrates comprehension of the tradeoffs involved in design choices
This is a tentative schedule including the exam dates.
It is subject to readjustment depending on the time we actually spend in class covering the topics.
Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.
| Date |
Lectures |
Assignments & Notes |
| Wed, Jan 21 |
Lecture #1: Introduction |
|
| Mon, Jan 26 |
Lecture #2: Introduction (cont) |
|
| Wed, Jan 28 |
Lecture #3: Operating-System Structures |
|
| Mon, Feb 2 |
Lecture #4: Processes |
|
| Wed, Feb 4 |
Lecture #5: Processes (cont) |
Homework 1 |
| Mon, Feb 9 |
Activity 1: Multiprogramming |
Lab 1: Message passing
|
| Wed, Feb 11 |
Lecture #6: Threads |
|
| Mon, Feb 16 |
President's day (no class) |
|
| Wed, Feb 18 |
Lecture #7: Threads (cont) |
|
| Mon, Feb 23 |
Lecture #8: CPU Scheduling |
|
| Wed, Feb 25 |
Lecture #9: CPU Scheduling (cont) |
|
| Mon, Mar 2 |
Lecture #10: Process Synchronization |
Homework 2 |
| Wed, Mar 4 |
Lecture #11: Process Synchronization (cont) |
|
| Mon, Mar 9 |
Lecture #12: Process Synchronization (cont) |
Lab 2: Producer-Consumer problem |
| Wed, Mar 11 |
Midterm Exam |
|
| Mon, Mar 16 |
Spring break (no class) |
|
| Wed, Mar 18 |
Spring break (no class) |
|
| Mon, Mar 23 |
Lecture #13: Deadlocks |
|
| Wed, Mar 25 |
Lecture #14: Deadlocks (cont) |
|
| Mon, Mar 30 |
Activity 2: Concurrency & Synchronization |
Homework 3 |
| Wed, Apr 1 |
Activity 2: Concurrency & Synchronization (cont) |
|
| Mon, Apr 6 |
Lecture #15: Memory Management |
Lab 3: Dispatcher simulation |
| Wed, Apr 8 |
Lecture #16: Memory Management (cont) |
|
| Mon, Apr 13 |
Lecture #17: Memory Management (cont) |
|
| Wed, Apr 15 |
Lecture #18: Storage Management |
|
| Mon, Apr 20 |
Lecture #19: Storage Management (cont) |
|
| Wed, Apr 22 |
Lecture #20: Storage Management (cont) |
|
| Mon, Apr 27 |
Lecture #21: Protection |
Homework 4 |
| Wed, Apr 29 |
Lecture #22: Security |
|
| Mon, May 4 |
Lecture #23: Distributed Systems |
|
Mon, May 11 at 4:30 pm |
Final Exam
(Exam covers post-midterm material. However, students are expected to remember important pre-midterm concepts.) |
|
Acknowledgements: Slides are modified from the original slides of the textbook by Prof. Silberschatz, Galvin, and Gagne.
Announcements regarding the course will be posted on this web page
and WebCT. Please check your WebCT e-mail daily.
- Jan 18, 2009 : You can access student resources of textbook at
http://codex.cs.yale.edu/avi/os-book/os8/.
- Jan 25, 2009 : Assignments will be accepted only through WebCT.
Hence, either prepare your reports in digital form or scan handwritten pages.
- Feb 4, 2009 : There are some nice animations about Operating System concepts at
http://williamstallings.com/OS/Animations.html.
- Feb 4, 2009 : Homework 1 is posted and is due on
Wednesday, February 11 at 12:00 pm .
- Feb 8, 2009 : Lab 1 is posted and is due on
Tuesday, March 3 at 12:00 pm .
- Feb 9, 2009 : Do not forget to drop Quiz 1 by
12:00 pm, Tuesday, February 10.
Questions will be posted on WebCT.
You may e-mail your solutions on WebCT.
- Mar 2, 2009 : Homework 2 is posted and is due on
Monday, March 9 at 12:00 pm .
- Mar 8, 2009 : Lab 2 is posted and is due on
Tuesday, March 31 at 12:00 pm .
- Mar 10, 2009 : Homework 2 solutions are posted on
WebCT.
- Mar 30, 2009 : Homework 3 is posted and is due on
Monday, April 6 at 12:00 pm .
- April 6, 2009 : Lab 3 is posted and is due on
Tuesday, April 28 at 12:00 pm .
- April 23, 2009 : Sample files added to Lab 3.
- April 27, 2009 : Homework 4 is posted and is due on
Tuesday, May 5 at 12:00 pm .
- April 29, 2009 : You can schedule for Lab 3 demo through WebCT.
Demos will be on Thursday April 30.
- May 1, 2009 : You can schedule for Lab 3 demo on May 8, Friday through WebCT.
- May 1, 2009 : Course evaluations are on WebCT.
Do not forget to complete your evaluations before May 6th.
- May 28, 2009 : Check out www.stopthehacker.com:
a very interesting startup on web security from a friend of mine.
Course Information -
Description -
Objective -
Prerequisites -
Textbooks -
Syllabus
Organization -
Grading -
ABET Criteria -
Schedule -
Announcements
Last updated on May 28, 2009