CS 446/646 Principles of Computer Operating Systems

Department of Computer Science & Engineering
UNR, Fall 2006


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

Course Information

  • Credits: 3.0
  • Class hours: Tuesday & Thursday, 4:00 - 5:15pm, SEM 257 (Scrugham Engineering-Mines)
  • Call numbers:
    • CS 446: #34286 (max. enrollment 20)
    • CS 646: #32727 (max. enrollment 15)

 

  • 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 230 (Scrugham Engineering-Mines)
  • Office hours:
    • Tuesday, 5:30pm – 7pm
    • Thursday, 10am – noon
    • or by appointment

 

  • Teaching Assistant: Mustafa Omer Kilavuz
  • E-mail: mkilavuz@cse.unr.edu
  • Office: SEM 255A (Scrugham Engineering-Mines), Room 4
  • Office hours:
    • Monday, Wednesday, 1:30pm – 3:30pm

 

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).

 

Textbooks

  • Required Textbooks

 

·        Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). Prentice Hall (ISBN: 0131479547).
Please pencil in the book the corrections listed in this online errata sheet now!

 

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

 

  • Recommended Textbooks

 

·        Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition). Prentice Hall (ISBN: 0130313580).

 

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

 

·        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

 

  1. Case Studies
    • Linux
    • BSD
    • Windows

 

 

Organization

  • WebCT   Except this web page, all course materials will be posted at the WebCT.
  • Assignments   Programming assignments and/or written assignments will be handed out approximately every other week and due generally one or two weeks later (exact deadline specified in each assignment). Programming 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 this program (specifications, implementation, user manual, etc.). Written assignments are exercises consisting of practice questions intended to test and affirm your knowledge of the course content.
  • Late policy   Late assignments will be penalized according to the sliding scale below.
  • Exams   There will be two exams (see Schedule for tentative dates) and one comprehensive final.
  • 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 (exams + final) will result in failure in the course.

Grading Policy

Assignments

5% + 10% + 10% + 10% = 35%

Exams

20% + 20% = 40%

Final

25%

Late Assignment Policy

less than 1 day late

10% deducted

between 1 and 2 days late

25% deducted

between 2 and 3 days late

40% deducted

between 3 and 4 days late

60% deducted

between 4 and 5 days late

80% deducted

over 5 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.

 

Schedule (Tentative), Notes & Assignments

This is a tentative schedule including the two 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 & Notes

Assignments

Tue, Aug 29

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

• Read Stallings, Ch. 1

Thu, Aug 31

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

• Read Stallings, Ch. 2.1-2.4

Tue, Sep 5

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

• Read Molay, Ch. 1

Thu, Sep 7

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

• Read Stallings, Ch. 3.1-3.4

• Assignment 1 out

Tue, Sep 12

First Assignment Due – NO LECTURE

• Assignment 1 due

Thu, Sep 14

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

• Read Molay, Ch. 8, Ch. 14.1-14.2

• Read Stallings, Ch. 4.1

Tue, Sep 19

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

• Assignment 2 out

Thu, Sep 21

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

• Read Stallings, Ch. 5.1-5.2

Tue, Sep 26

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

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

• Read Molay, Ch. 14.3-14.5

Thu, Sep 28

Lecture #9: Processes (6) – Deadlocks

• Read Stallings, Ch. 6.1-6.4, 6.6

Tue, Oct 3

Review

 

Thu, Oct 5

Exam 1

 

Tue, Oct 10

Lecture #10: Memory Management (1)

• Read Stallings, Ch. 7.1,7.2

• Read Stallings App 7A

Thu, Oct 12

Lecture #11: Memory Management (2)

• Read Stallings, Ch. 7.3-7.5

Tue, Oct 17

Lecture #12: Memory Management (3)

• Read Stallings, Ch. 8.1

Thu, Oct 19

Lecture #13: Memory Management (4)

• Read Stallings, Ch. 8.2

• Assignment 2 due

• Assignment 3 out

Tue, Oct 24

Lecture #14: CPU Scheduling (1)

• Read Stallings, Ch. 9.1

Thu, Oct 26

Lecture #15: CPU Scheduling (2)

• Read Stallings, Ch. 9.2

Tue, Oct 31

Lecture #16: CPU Scheduling (3)

• Read Stallings, App. 9B

Thu, Nov 2

Lecture #17: Input/Output (1)

• Read Stallings, Ch. 11.1-11.4

Tue, Nov 7

Lecture #18: Case Study – System Admin

• Assignment 3 due

Thu, Nov 9

Lecture #19: Input/Output (2)

• Read Stallings, Ch. 1

• Read Tanenbaum, pp. 221-237

• Assignment 4 out

Tue, Nov 14

Extra Prep Day – NO CLASS

 

Thu, Nov 16

Exam 2

 

Tue, Nov 21

Lecture #20: Input/Output (3)

 

Thu, Nov 23

Thanksgiving – NO CLASS

 

Tue, Nov 28

Lecture #21: Input/Output (4)

• Read Stallings, Ch. 11.5

Thu, Nov 30

Lecture #22: File System (1)

• Read Stallings, Ch. 12.1-12.4

• Read Molay, Ch. 2-4

Tue, Dec 5

Lecture #23: File System (2)

• Read Tanenbaum, pp. 379-399

Thu, Dec 7

Lecture #24: Networking & Distributed Systems (1)

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

• Assignment 4 due

Tue, Dec 12

Lecture #25: Networking & Distributed Systems (2)

 

Thu, Dec 14

Comprehensive Final

 

Acknowledgment

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

Course Outcomes:

  • Students will demonstrate knowledge of operating system concepts.
    • Strategies and actions used to produce the outcome:
      • Study of the origins and challenges of automated system operation.
      • Study of the strategies and components of modern operating systems.
      • Study of resource management techniques for each subsystem in the OS.
      • Study of the trade-off between different resource management techniques.
    • ABET criteria covered:
      • (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.
      • (e) An ability to identify, formulate, and solve engineering problems.
      • (g) An ability to communicate effectively.
      • (j) A knowledge of contemporary issues.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of computer science.
      • (3) Our graduates will have achieved good analytic, design, and implementation skills required to formulate and solve computing problems.
    • Assessment methods:
      • Programming Assignments (code design and implementation)
      • Written Assignments (theoretical concept definitions and practical computational & numerical problems)
      • Quizzes & Exams (theoretical concept definitions and practical computational & numerical problems)

 

  • Students will demonstrate knowledge of system programming techniques as well as the ability to use related system calls.
    • Strategies and actions used to produce the outcome:
      • Study of design and implementation of operating systems.
      • Study of system calls and system programming techniques.
    • ABET criteria covered:
      • (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.
      • (k) An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of computer science.
      • (3) Our graduates will have achieved good analytic, design, and implementation skills required to formulate and solve computing problems.
    • Assessment methods:
      • Programming Assignments (focus on system programming)

 

  • Students will demonstrate the ability to quantitatively evaluate different software implementation techniques.
    • Strategies and actions used to produce the outcome:
      • Study of quantitative performance evaluation methods.
      • Modeling and simulation of resource allocation algorithms.
    • ABET criteria covered:
      • (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.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of computer science.
      • (3) Our graduates will have achieved good analytic, design, and implementation skills required to formulate and solve computing problems.
    • Assessment methods:
      • Programming Assignments (focus on modeling & simulation)

 

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

Last update: 8/28/2006