CS 446/646 Principles of Computer Operating Systems
Department
of Computer Science & Engineering
University
of Nevada, Reno, Spring 2011
Course Information - Description
- Prerequisites - Textbooks
- Syllabus - Organization -
Grading - Schedule, Notes &
Assignments - Acknowledgment - ABET
Criteria
E-mail: yuksem@cse.unr.edu
Phone: (775) 327-2246
Web page: http://www.cse.unr.edu/~yuksem
Office: SEM 237 (Scrugham Engineering-Mines)
Office
hours:
E-mail: ravi@cse.unr.edu
Phone: (703) 203-1566
Web page: TBA
Office: SEM 255 (Scrugham Engineering-Mines)
Office hours:
The principles, components, and design of modern operating systems, focusing on the UNIX platform. Topics include: concurrent processes, inter-process communication, processor management, virtual and real memory management, deadlock, file systems, disk management, performance issues, case studies, etc.
This is a tentative list of topics, subject to modification and reorganization.
Grading (Tentative)
Both grading policy and scale are subject to change. Failure in either the programming assignments or the tests (i.e., quizzes + homework + midterm exam + final exam) will result in failure in the course.
• Grading Policy
|
• Late Assignment Policy
|
• Grading Scale (Tentative)
|
Note: Saturdays and Sundays do not count toward missed days. For example, there is 1 "day" between Friday 2pm and Monday 2pm. Similarly, there is 1 day between Monday 2pm and Tuesday 2pm.
Important Note: Re-grading requests can only be made within the first week after the graded assignments/tests are returned to the students.
Schedule (Tentative), Notes & Assignments
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. Slides presented in class and assignments will be posted at the WebCT. See the acknowledgment for the course materials. Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.
Date |
Lectures |
Assignments & Notes |
Tue, Jan 18 |
Lecture #1: Introduction (1) - Role of an O/S |
• Read Silberschatz et al., Ch. 1.1-1.2 |
Thu, Jan 20 |
Lecture #2: Introduction (2) - O/S Types, Components & Architecture |
• Read Silberschatz et al., Ch. 1.3-1.10, 2.1-2.8 • Read Molay, Ch. 1 |
Tue, Jan 25 |
Lecture #3: Introduction (3) - O/S History & Features |
• Read Silberschatz et al., Ch. 1.11-1.13 |
Thu, Jan 27 |
Lecture #4: Processes & Threads (1) |
• Read Silberschatz et al., Ch. 3.1-3.3 |
Tue, Feb 1 |
Lecture #5: Processes & Threads (2) |
• Read Silberschatz et al., Ch. 4.1-4.4 |
Thu, Feb 3 |
Lecture #6: Processes & Threads (3) |
• Programming Assignment 1 out |
Tue, Feb 8 |
Review of Processes & Threads |
• Homework 1 out |
Thu, Feb 10 |
Review of Processes & Threads |
|
Tue, Feb 15 |
Activity 1 |
|
Thu, Feb 17 |
Lecture #7: Concurrency & Synchronization (1) |
• Read Silberschatz et al., Ch. 6.1-6.2 • Homework 1 due • Homework 2 out |
Tue, Feb 22 |
Lecture #8: Concurrency & Synchronization (2) |
• Read Silberschatz et al., Ch. 6.3 • Programming Assignment 1 due • Programming Assignment 2 out |
Thu, Feb 24 |
Lecture #9: Concurrency & Synchronization (3) |
• Read Silberschatz et al., Ch. 6.4-6.6 |
Tue, Mar 1 |
Lecture #10: Deadlocks |
• Read Silberschatz et al., Ch. 7.1-7.6 |
Thu, Mar 3 |
Activity 2 |
• Homework 2 due |
Tue, Mar 8 |
Review |
• Programming Assignment 2 due • Programming Assignment 3 out |
Thu, Mar 10 |
Midterm Exam (in-class) |
|
Tue, Mar 15 |
Spring Break – NO CLASSES |
|
Thu, Mar 17 |
Spring Break – NO CLASSES |
|
Tue, Mar 22 |
Lecture #11: CPU Scheduling (1) |
• Read Silberschatz et al., Ch. 5.1, 5.2 |
Thu, Mar 24 |
Lecture #12: CPU Scheduling (2) |
• Read Silberschatz et al., Ch. 5.3 • Homework 3 out |
Tue, Mar 29 |
Lecture #13: CPU Scheduling (3) |
|
Thu, Mar 31 |
Lecture #14: Memory Management (1) |
• Read Silberschatz et al., Ch. 8.1-8.3 |
Tue, Apr 5 |
Lecture #15: Memory Management (2) |
• Read Silberschatz et al., Ch. 8.4, 8.6 • Programming Assignment 3 due • Programming Assignment 4 out |
Thu, Apr 7 |
Lecture #16: Memory Management (3) |
• Read Silberschatz et al., Ch. 8.5, 9.1-9.3 • Homework 3 due • Homework 4 out |
Tue, Apr 12 |
Lecture #17: Memory Management (4) |
• Read Silberschatz et al., Ch. 9.4-9.6 |
Thu, Apr 14 |
Lecture #18: Memory Management (5) |
|
Tue, Apr 19 |
Lecture #19: Input/Output (1) |
• Read Silberschatz et al., Ch. 13.1-13.5 |
Thu, Apr 21 |
Lecture #20: Input/Output (2) |
• Read Silberschatz et al., Ch. 12.1, 12.2, 12.4, 12.5 • Homework 4 due • Homework 5 out |
Tue, Apr 26 |
Lecture #21: File System (1) |
• Read Silberschatz et al., Ch. 10.1-10.3 |
Thu, Apr 28 |
Lecture #22: File System (2) |
• Read Silberschatz et al., Ch. 11.1-11.6 |
Tue, May 3 |
Lecture #23: Networking & Distributed Systems |
• Programming Assignment 4 due • Homework 5 due |
Thu, May 5 (at 4:30pm) |
Final Exam |
|
The slides and other materials for this course are in-part based upon the materials from a number of people/sources, including:
· Official website for the Stallings text: companion site
·
Official website for the Silberschatz
text: companion
site
·
René Doursat from UNR http://www.cse.unr.edu/~doursat/teaching_unr_cs446_s06.html
· Ben Y. Zhao from UCSB: http://www.cs.ucsb.edu/~ravenben/classes/cs170
· Sushil Louis from UNR: http://www.cse.unr.edu/~sushil/class/os/index.html
ABET Criteria
Program Outcomes |
Course Outcomes |
Program
Objectives Impacted |
2 |
Students are able to
quantitatively evaluate different resource allocation and scheduling methods
of an operating system. |
2 |
5 |
Students
design and understand various resource management tasks undertaken by an
operating system. |
2, 3 |
6 |
Students
define and explain design and implementation issues of operating system
software components. |
1, 2 |
10 |
Students express a thorough
knowledge of the fundamental components of an operating system. |
2 |
11 |
Students can define and
explain various tradeoffs between resource management techniques. |
3 |
12 |
Students know
system-programming techniques and are able to use related system calls. |
1, 3 |
Program Outcomes:
1. an ability to apply knowledge of computing, mathematics, science, and engineering.
2. an ability to design and conduct experiments, as well as to analyze and interpret data.
3. 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.
4. an ability to function effectively on multi-disciplinary teams.
5. an ability to analyze a problem, and identify, formulate and use the appropriate computing and engineering requirements for obtaining its solution.
6. an understanding of professional, ethical, legal, security and social issues and responsibilities.
7. an ability to communicate effectively with a range of audiences.
8. the broad education necessary to analyze the local and global impact of computing and engineering solutions on individuals, organizations, and society.
9. a recognition of the need for, and an ability to engage in continuing professional development and life-long learning.
10. a knowledge of contemporary issues.
11. an ability to use current techniques, skills, and tools necessary for computing and engineering practice.
12. 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.
13. an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity.
Program Objectives:
Within 3 to 5 years of graduation our graduates will:
1. be employed as computer science and engineering professionals beyond entry level positions or be making satisfactory progress in graduate programs.
2. have peer-recognized expertise together with the ability to articulate that expertise as computer science and engineering professionals.
3. apply good analytic, design, and implementation skills required to formulate and solve computer science and engineering problems.
4. demonstrate that they can function, communicate, collaborate and continue to learn effectively as ethically and socially responsible computer science and engineering professionals.
Course Information - Description
- Prerequisites - Textbooks
- Syllabus - Organization -
Grading - Schedule, Notes &
Assignments - Acknowledgment - ABET
Criteria
Last updated on April 26, 2011