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

 

Course Information

 

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:

 

Description

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.

 

Prerequisites

 

Textbooks

 

 

Syllabus (Tentative)

This is a tentative list of topics, subject to modification and reorganization.

  1. Introduction to Operating Systems

 

  1. Processes & Threads

 

  1. Concurrency & Synchronization

 

  1. Memory Management

 

  1. CPU Scheduling

 

  1. Input/Output

 

  1. File System

 

  1. Networking & Distributed Systems

 

Organization

 

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

Programming Assignments

30%

Quizzes

10%

Homework

10%

Midterm Exam

25%

Final Exam

25%

Late Assignment Policy

less than 1 day late

25% deducted

between 1 and 2 days late

50% deducted

between 2 and 3 days late

75% deducted

over 3 days late

100% deducted

Grading Scale (Tentative)

90% - 100%

A-, A

80% - 89%

B-, B, B+

65% - 79%

C-, C, C+

55% - 64%

D

0% - 54%

F

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

 

 

Acknowledgment

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