CS 446/646 Principles of Computer Operating Systems

Department of Computer Science & Engineering
UNR, Fall 2008

Course Information - Description - Prerequisites - Textbooks - Syllabus
Organization - Grading - Schedule, Notes & Assignments - Acknowledgment -  ABET Criteria

Course Information

  • Credits: 3
  • Class hours: Tuesday & Thursday, 8:00 - 9:15pm, SEM 261
  • Call numbers:
    • CS 446: #31164 (max. enrollment 25)
    • CS 646: #32729 (max. enrollment 10)


  • Instructor: Dr. Murat Yuksel
  • E-mail: yuksem@cse.unr.edu 
  • Phone: (775) 327-2246 / (775) 784-6974
  • Web page: http://www.cse.unr.edu/~yuksem
  • Office: SEM 237 (Scrugham Engineering-Mines)
  • Office hours:
    • Tuesday, 12-2pm
    • Thursday, 11am-1pm
    • or by appointment



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.



Data Structures (CS 302), Microprocessor System Design (CPE 301).



  • Required Textbooks


·        Stallings, W. (2009) Operating Systems: Internals and Design Principles (6th Edition). Prentice Hall (ISBN: 0136006329)


·        Molay, B. (2002) Understanding Unix/Linux Programming: A Guide to Theory and Practice (1st Edition). Prentice Hall (ISBN: 0130083968).


  • Recommended Textbooks


·        Tanenbaum, A. S. and Woodhull A. S. (2006) Operating Systems Design and Implementation (3rd Edition). Prentice Hall (ISBN: 0131429388).


·        Silberschatz, A., Galvin, P. B. and Gagne. G. (2007) Operating Systems Concepts with Java (7th Edition). John Wiley & Sons (ISBN: 9780471769071).


·        Stevens, W. R. and Rago, S. A. (2005) Advanced Programming in the UNIX Environment (2nd Edition). Addison-Wesley Professional (ISBN: 0201433079).


Syllabus (Tentative)

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

  1. Introduction to Operating Systems
    • Role of an O/S
    • O/S History and Features
    • Types of O/S
    • Major O/S Components
    • System Calls
    • O/S Software Architecture
    • Examples of O/S


  1. Processes
    • Process Description & Control
    • Threads
    • Concurrency
    • Deadlocks & Starvation


  1. Memory Management
    • Partitioning
    • Paging
    • Segmentation
    • Virtual Memory
    • Page Replacement


  1. CPU Scheduling
    • Scheduling Algorithms
    • Performance Evaluation
    • Multiprocessor Scheduling
    • Thread Scheduling
    • Real-Time Scheduling
    • Examples of CPU Scheduling


  1. Input/Output
    • I/O Devices
    • I/O Software
    • Disk Scheduling
    • Disk Caching
    • Examples of I/O


  1. File System
    • File Description
    • File Directories
    • File Storage Implementation
    • Examples of File Systems


  1. Networking & Distributed Systems
    • Distributed vs. Centralized Systems
    • Types of Networks
    • Protocols
    • Routing



  • WebCT   Except this web page, all course materials will be posted at the WebCT.
  • Lab Assignments   There will be four lab assignments involving quite a bit of programming in UNIX environment. 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 sometimes a report documenting this program (specifications, implementation, user manual, etc.).
  • Quizzes   There will be in-class quizzes approximately one in every three weeks. 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-30mins. Questions in these quizzes will be designed to give you an opportunity to test and affirm your knowledge of the course content.
  • Activities   There will be in-class activities approximately one in every four weeks. There will be a quiz associated with each of these activities. The activities will require participation from every student.
  • Homework   There will be homework assignments approximately one in every three weeks.
  • Late policy   Late assignments will be penalized according to the sliding scale below.
  • Exams   There will be one midterm exam and one comprehensive exam (see Schedule for tentative dates). All exams will be open book/notes.
  • Academic Integrity   There will be no team projects or reports in this class, therefore all assignments and exams must be prepared strictly individually. 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.
  • Disability Statement   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 - 107) as soon as possible.


Grading (Tentative)

Both grading policy and scale are subject to change. Failure in either the assignments or the tests (quizzes + homework + midterm exam + comprehensive exam) will result in failure in the course.

Grading Policy

Lab Assignments

5%  + 15% + 15% = 35%





Midterm Exam


Comprehensive Exam


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%


0% - 54%


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.


Lectures & Notes


Tue, Aug 26

Lecture #1: Introduction (1) - Role of an O/S

• Read Stallings, Ch. 1

Thu, Aug 28

Lecture #2: Introduction (2) - O/S Types, Components & Architecture

• Read Molay, Ch. 1

Tue, Sep 2

Lecture #3: Introduction (3) - O/S History & Features

• Read Stallings, Ch. 2.1-2.4

Thu, Sep 4

Lecture #4: Processes (1) - Processes & Threads

• Read Stallings, Ch. 3.1-3.4

• Read Molay, Ch. 8

Tue, Sep 9

Lecture #5: Processes (2) - Processes & Threads

• Read Molay, Ch. 14.1-14.2

• Read Stallings, Ch. 4.1

Thu, Sep 11

Activity #1: Multiprogramming, Threads of Execution


Tue, Sep 16

Lecture #6: Processes (3) - Processes & Threads


Thu, Sep 18

Lecture #7: Processes (4) - Concurrency & Synchronization

• Read Stallings, Ch. 5.1-5.2

Tue, Sep 23

Lecture #8: Processes (5) - Concurrency & Synchronization

• Assignment 1 out

• Read Stallings, Ch. 5.3, 5.6, A.1, A.2

• Read Molay, Ch. 14.3-14.5

Thu, Sep 25

Lecture #9: Processes (6) - Concurrency & Synchronization


Tue, Sep 30

Lecture #10: Processes (7) – Deadlocks

• Assignment 1 due

• Homework 1 out

• Read Stallings, Ch. 6.1-6.4, 6.6

Thu, Oct 2

Activity #2: Concurrency & Synchronization


Tue, Oct 7

Lecture #11: Memory Management (1)

• Homework 1 due

• Read Stallings, Ch. 7.1,7.2

• Read Stallings App 7A

Thu, Oct 9

Lecture #12: Memory Management (2)

• Assignment 2 out

• Homework 2 out

• Read Stallings, Ch. 7.3, 7.4, 7.6

Tue, Oct 14

Lecture #13: Memory Management (3)

• Read Stallings, Ch. 8.1

Thu, Oct 16

Lecture #14: Memory Management (4)

• Homework 2 due

• Homework 3 out

• Read Stallings, Ch. 8.2

Tue, Oct 21



Thu, Oct 23

Midterm Exam (in-class)


Tue, Oct 28

Lecture #15: CPU Scheduling (1)

• Assignment 2 due

• Read Stallings, Ch. 9.1

• Read Stallings, Ch. 9.2

Thu, Oct 30

Lecture #16: CPU Scheduling (2)

• Homework 3 due

• Read Stallings, App. 9B

Tue, Nov 4

Lecture #17: Input/Output (1)

• Assignment 3 out

• Read Stallings, Ch. 11.1-11.4

Thu, Nov 6

Lecture #18: Input/Output (2)

• Read Stallings, Ch. 1

• Read Tanenbaum, pp. 221-237

Tue, Nov 11

Veterans Day - NO CLASSES


Thu, Nov 13

Lecture #19: Input/Output (3)

• Read Stallings, Ch. 11.5

Tue, Nov 18

Lecture #20: File System (1)

• Read Stallings, Ch. 12.1-12.4

• Read Molay, Ch. 2-4

Thu, Nov 20

Activity #3: Input/Output

• Homework 4 out

Tue, Nov 25

Lecture #21: File System (2)

• Read Tanenbaum, pp. 379-399

Thu, Nov 27

Thanksgiving Day - NO CLASSES


Tue, Dec 2

Lecture #22: Networking & Distributed Systems (1)

• Read Silberschatz, Ch. 16.1-16.6, 16.9-16.10

Thu, Dec 4

Lecture #23: Networking & Distributed Systems (2)

• Assignment 3 due

• Homework 4 due

Tue, Dec 9



Tue, Dec 16

Final Exam




The slides and other materials for CS 446/646 have been mainly based upon the original slides/notes of:

·        René Doursat from UNR http://www.cse.unr.edu/~doursat/teaching_unr_cs446_s06.html


Slides/notes from the following people and resources were also used in-part:

·        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

·        William Stallings official website for the textbook of this course: http://www.williamstallings.com/OS/OS5e.html


ABET Criteria

ABET Criterion 3 Outcomes

Course Outcomes

Assessment Methods/Metrics

CS Program

Objectives Impacted

CIE Program

Objectives Impacted

a, b, c, e, j

Knowledge of the fundamental components of an operating system.

·         Define and explain the followings in written assignments and exams:

o        the origins and challenges of automated system operation,

o        strategies and components of modern operating systems, and

o        various tradeoffs between resource management techniques.

·         Design and implement the resource management tasks undertaken by an operating system in programming assignments.


2, 3

2, 3

a, b, c, k


Knowledge of system programming techniques as well as the ability to use related system calls.

·         Use system calls and system programming techniques in program assignments.

·         Define and explain design and implementation issues of operating system software components in written assignments and exams.


2, 3


a, b, c

Ability to quantitatively evaluate different software implementation techniques.

·         Solve and model quantitative performance evaluation methods of an operating system in written assignments and exams.

·         Model and simulate of resource allocation and scheduling algorithms of an operating system in programming assignments.


2, 3

2, 3

ABET Criterion 3 Outcomes:

a)      an ability to apply knowledge of 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 a system, component, or process to meet desired needs

d)      an ability to function on multi-disciplinary teams

e)      an ability to identify, formulate, and solve engineering problems

f)        an understanding of professional and ethical responsibility

g)      an ability to communicate effectively

h)      the broad education necessary to understand the impact of engineering solutions in a global and societal context

i)        a recognition of the need for, and an ability to engage in life-long learning

j)        a knowledge of contemporary issues

k)      an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice

Computer Science Program Objectives:

Our graduates will have achieved:

1)      a broad general education assuring an adequate foundation in science and mathematics relevant to computing.

2)      a solid understanding of concepts fundamental to the discipline of computer science.

3)      good analytic, design, and implementation skills required to formulate and solve computing problems.

4)      the ability to function, communicate, and continue to learn effectively as ethically and socially responsible computer science professionals.

Computer and Information Engineering Program Objectives:

Within 3 to 5 years of graduation our graduates will:

1)      be employed as computer 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 engineering professionals.

3)      apply good analytic, design, and implementation skills required to formulate and solve computer engineering problems.

4)      demonstrate that they can function, communicate, collaborate and continue to learn effectively as ethically and socially responsible computer engineering professionals.

Course Information - Description - Prerequisites - Textbooks - Syllabus
Organization - Grading - Schedule, Notes & Assignments - Acknowledgment - ABET Criteria

Last updated on August 25, 2008