CS 446/646
Principles of Operating Systems

Department of Computer Science & Engineering
UNR, Fall 2005
Course Information - Description - Prerequisites - Textbooks - Topics
Organization - Grading - Schedule, Notes & Assignments - ABET Criteria

Course Information

  • Credits: 3.0
  • Class hours: Tuesday & Thursday, 4:00 - 5:15pm, OSN 203 (Orvis School of Nursing)
  • Call numbers:
    • CS 446: #28032 (max. enrollment 20)
    • CS 646: #29598 (max. enrollment 10)

  • Instructor: Dr. René Doursat
  • Phone: (775) 327-2246 / (775) 784-6974
  • Web page: http://www.cse.unr.edu/~doursat
  • Office: SEM 230 (Scrugham Engineering-Mines)
  • Office hours:
    • Monday, 2:00 - 5:30pm
    • Wednesday, 4 - 5:30pm
    • or by appointment

  • Teaching Assistant: Xavier Palathingal
  • E-mail: xavier@cse.unr.edu
  • Office: SEM 255A (Scrugham Engineering-Mines)
  • Office hours:
    • Monday, 9 - 11am
    • Wednesday, 9 - 11am

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

Topics Covered (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

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

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

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

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

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

  7. Case Studies
    • Linux
    • BSD
    • Windows

Organization

  • 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 and quizzes   There will be two exams (see Schedule for tentative dates) and one comprehensive final. Additionally, short quizzes might pop up (announced or unannounced) at the beginning of some meetings.

  • Academic integrity   There will be no team projects or reports in this class, therefore all assignments, quizzes 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 assignments component or the lecture component (written assignments, quizzes, and exams) will result in failure in the course.

Grading Policy

Assignments40%
Quizzes10%
Exams15% + 15%
Final20%
Late Assignment Policy

less than 1 day late10% deducted
between 1 and 2 days late25% deducted
between 2 and 3 days late40% deducted
between 3 and 4 days late60% deducted
between 4 and 5 days late80% deducted
over 5 days late100% deducted
Grading Scale

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 here. Please check again frequently. Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.

Date Lectures & Notes Assignments & Quizzes
Tue, Aug 30 1. Introduction (1) - Role of an O/S • Read Stallings' chapter 1
Thu, Sep 1 1. Introduction (2) - O/S History & Features • Read Stallings' chapter 2
Tue, Sep 6 1. Introduction (3) - Types & Components of O/S • Quiz 1
Thu, Sep 8 1. Introduction (4) - System Calls & O/S Architecture • Programming Assignment 1:
   - Read Molay's chapters 1, 8 & 9
   - Assignment 1, due Sep 23, 2pm
Tue, Sep 13 2. Processes (1) - Process Description • Read Stallings' chapter 3
Thu, Sep 15 2. Processes (2) - Threads • Read Stallings' chapter 4
• Quiz 1 as a homework:
   - Re-read Stallings' pages 56-66
   - Read Tanenbaum's pages 6-18
   - due Sep 23, 2pm
Tue, Sep 20 2. Processes (3)-(7) - Concurrency  
Thu, Sep 22 • Read Stallings' chapter 5
• Read Stallings' appendix A
Tue, Sep 27 • Quiz 2
• Written Assignment 2:
   - Assignment 2, due Oct 4, 4pm
Thu, Sep 29  
Tue, Oct 4 Exam 1  
Thu, Oct 6 2. Processes (7) - see slides above • Read Stallings' chapter 6
Tue, Oct 11 3. Memory Management (1) - Overview & Partitioning • Quiz 3
• Programming Assignment 3:
   - Read Molay's sections 14.1 to 14.5
   - Assignment 3, due Oct 24, 2pm
Thu, Oct 13 3. Memory Management (2) - Loading & Simple Paging • Read Stallings' chapter 7
Tue, Oct 18 3. Memory Management, by SILBERSCHATZ et al.  
Thu, Oct 20 3. Virtual Memory, by SILBERSCHATZ et al. • Read Stallings' chapter 8
Tue, Oct 25 4. CPU Scheduling (1)-(2) - Concepts & Algorithms • Quiz 4
Thu, Oct 27 • Read Stallings' chapter 9
Tue, Nov 1 Guest talk: Sebastian Smith,
Community Director of the Reno Linux Users Group
7. Case Study (1) - Linux
• Programming Assignment 4:
   - Assignment 4, due Nov 15, 4pm
   - Assignment 4 - Appendix
Thu, Nov 3 Exam 2  
Tue, Nov 8 Exam 2 Review  
Thu, Nov 10 5. Input/Output (1) - Principles of Hardware  
Tue, Nov 15 Guest talk: Brandon Mitchell,
Network Consultant at Sierra Computers
7. Case Study (2) - BSD
 
Thu, Nov 17 5. Input/Output (2) - Software Layers  
Tue, Nov 22 5. Input/Output (3) - Disk Management • Read Stallings' chapter 11
Thu, Nov 24 Thanksgiving - no class • Programming Assignment 5:
   - Assignment 5, due Dec 13, 4pm
   - Assignment 5 - Appendix
Tue, Nov 29 6. File System (1) - Overview & Interface  
Thu, Dec 1 Class cancelled  
Tue, Dec 6 Guest lecture: Dr. Ed Wishart,
Professor Emeritus, CSE Department, UNR
The What and Why of Open Source Software
 
Thu, Dec 8 6. File System (2) - Implementation • Read Stallings' chapter 12
Tue, Dec 13  
THU, Dec 15 Comprehensive Final, 4:30pm - 6:30pm

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 - Topics
Organization - Grading - Schedule, Notes & Assignments - ABET Criteria
Created and maintained by
René Doursat
Last update: 12/15/2005