CS 446/646 Principles of Computer Operating Systems

Department of Computer Science & Engineering
UNR, Fall 2009


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

Course Information

  • Credits: 3.0
  • Class hours: Tuesday & Thursday, 1:00 - 2:15pm, SEM 234
  • Call numbers:
    • CS 446: #34294 (max. enrollment 25)
    • CS 646: #31171 (max. enrollment 10)

 

  • Instructor: Dr. Murat Yuksel
  • 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:
    • Tuesday, 11am-12:30pm
    • Wednesday, 3-5pm
    • Thursday, 11am-12:30pm
    • or by appointment

 

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

  • Data Structures (CS 302)
  • Microprocessor System Design (CPE 301)
  • C/C++ or Java programming experience in UNIX-like environment

 

Textbooks

  • Required Textbooks

 

·        A. Silberschatz, P. B. Galvin, and G. Gagne. (2009) Operating Systems Concepts, 8th Edition. John Wiley & Sons, Inc. (ISBN: 978-0-470-12872-5) companion site

  • Recommended Textbooks

 

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

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

 

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 & Threads
    • Process Description & Control
    • Process Scheduling
    • Threads
    • Multithreading Models
    • Thread Libraries

 

  1. Concurrency & Synchronization
    • The Critical-Section Problem
    • Synchronization Hardware
    • Semaphores
    • Deadlock & Starvation
    • Deadlock Prevention
    • Deadlock Avoidance
    • Deadlock Detection

 

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

 

  1. CPU Scheduling
    • Scheduling Algorithms
    • Performance Evaluation
    • Multiprocessor Scheduling
    • Thread Scheduling
    • Real-Time 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

 

Organization

  • WebCT   Except this web page, all course materials will be posted at the WebCT.
  • Lab Assignments   There will be three 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.). Note that knowledge of C/C++ or Java in UNIX environment is required for these assignments.
  • 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 three in-class activities. 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 final 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 programming (i.e., lab assignments) or the tests (i.e., quizzes + homework + midterm exam + final exam) will result in failure in the course.

Grading Policy

Lab 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, Aug 25

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

• Read Silberschatz et al., Ch. 1.1-1.2

• Read Stallings, Ch. 1

Thu, Aug 27

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, Sep 1

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

• Read Silberschatz et al., Ch. 1.11-1.13

• Read Stallings, Ch. 2.1-2.4

Thu, Sep 3

Lecture #4: Processes & Threads (1)

• Read Silberschatz et al., Ch. 3.1-3.3

• Read Stallings, Ch. 3.1-3.4

Tue, Sep 8

Lecture #5: Processes & Threads (2)

• Read Silberschatz et al., Ch. 4.1-4.4

Thu, Sep 10

Quiz 1

 

Tue, Sep 15

Lecture #6: Processes & Threads (3)

• Assignment 1 out

Thu, Sep 17

Lecture #7: Concurrency & Synchronization (1)

• Read Silberschatz et al., Ch. 6.1, 6.2

Tue, Sep 22

Lecture #8: Concurrency & Synchronization (2)

• Read Silberschatz et al., Ch. 6.3

Thu, Sep 24

Lecture #9: Concurrency & Synchronization (3)

• Read Silberschatz et al., Ch. 6.4-6.6

Tue, Sep 29

Activity 1, Quiz 2

• Read Silberschatz et al., Ch. 7.1-7.3

• Assignment 1 due

• Homework 1 out

Thu, Oct 1

Lecture #10: Deadlocks (1)

• Read Silberschatz et al., Ch. 7.4-7.6

• Assignment 2 out

Tue, Oct 6

Lecture #11: Deadlocks (2)

 

Thu, Oct 8

Activity 2, Quiz 3

• Homework 1 due

Tue, Oct 13

Lecture #12: Memory Management (1)

• Read Silberschatz et al., Ch. 8.1-8.3

Thu, Oct 15

Midterm Exam (in-class)

 

Tue, Oct 20

Lecture #13: Memory Management (2)

• Read Silberschatz et al., Ch. 8.4, 8.6

Thu, Oct 22

Lecture #14: Memory Management (3)

• Read Silberschatz et al., Ch. 8.5, 9.1-9.3

Tue, Oct 27

Lecture #15: Memory Management (4)

• Read Silberschatz et al., Ch. 9.4-9.6

Thu, Oct 29

Lecture #16: CPU Scheduling (1)

• Homework 2 out

• Read Silberschatz et al., Ch. 5.1, 5.2

Tue, Nov 3

Lecture #17: CPU Scheduling (2)

• Read Silberschatz et al., Ch. 5.3

• Assignment 2 due

• Assignment 3 out

Thu, Nov 5

Lecture #18: CPU Scheduling (3)

 

Tue, Nov 10

Lecture #19: Input/Output (1)

• Read Silberschatz et al., Ch. 13.1-13.5

Thu, Nov 12

Lecture #20: Input/Output (2)

 

Tue, Nov 17

Lecture #21: Input/Output (3)

• Read Silberschatz et al., Ch. 12.1, 12.2, 12.4, 12.5

• Homework 2 due

Thu, Nov 19

Activity 3

• Homework 3 out

Tue, Nov 24

Lecture #22: File System (1)

 

Thu, Nov 26

Thanksgiving Break – NO CLASSES

 

Tue, Dec 1

Lecture #23: File System (2)

 

Thu, Dec 3

Lecture #24: Networking & Distributed Systems (1)

• Assignment 3 due

Tue, Dec 8

Lecture #25: Networking & Distributed Systems (2)

• Homework 3 due

Thu, Dec 10

Final Exam (in-class, at noon)

 

 

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

ABET Criterion 3 Outcomes

Course Outcomes

Assessment Methods/Metrics

a, b, c, 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.

 

a, b, c, i

 

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.

 

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.

 

ABET Criterion 3 Outcomes:

a)      an ability to apply knowledge of computing and mathematics appropriate to the discipline

b)      an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution

c)      an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs

d)      an ability to function effectively on teams to accomplish a common goal

e)      an understanding of professional, ethical, legal, security and social issues and responsibilities

f)        an ability to communicate effectively with a range of audiences

g)      an ability to analyze the local and global impact of computing on individuals, organizations, and society

h)      recognition of the need for and an ability to engage in continuing professional development

i)        an ability to use current techniques, skills, and tools necessary for computing practice

j)        an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices

k)      an ability to apply design and development principles in the construction of software systems of varying complexity

 

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

Last updated on August 21, 2009