University of Saskatchewan Department of Computer Science

Welcome to the Department of Computer Science

Courses >
Printer

CMPT 332 Operating Systems Concepts

Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.

Description

The purpose of CMPT 332 is to provide a basic understanding of operating systems principles: the parts of an operating system, how they are structured, the important policies governing their operation, and the implementation issues. Although examples will be drawn from several operating systems throughout the course, it is not the purpose of this course to provide training in any particular operating system.

The class will follow the textbook in content, but not necessarily organization. Students will be responsible for reading the text and learning the material in it. Lecture time will be used primarily for:

  • highlighting specific material in the text,
  • covering supplementary material as required, and
  • answering student questions. 

Prerequisites

CMPT 280, and CMPT 215 or EE 331. 


Instructor

Dwight Makaroff

makaroff@cs.usask.ca

966-8656

Office Location: Thorvaldson 281.3  


Schedule

MWF 9:30-10:20 Thorvaldson 205A    


Course Material

Textbooks:

Title: Modern Operating Systems
Author: Andrew S. Tanenbaum
Publisher: Pearson/Prentice Hall
Edition/Year: 3rd Edition/2008
ISBN: 0-13-6006633-2
Additional information: This book covers more material than we can do in one course. We will cover the first 5 chapters with some discussion on later chapters if time permits. 

Title: Operating Systems: Internals and Design Principles
Author: William Stallings
Publisher: Pearson/Prentice Hall
Edition/Year: 7th Edition/2012
ISBN: 0-13-230998-1
Additional information: optional, but not necessary for anyone. This provides a different point of view. 

Title: Operating System Concepts
Author: Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne
Publisher: John Wiley and Sons
Edition/Year: 8th Edition/2009
ISBN: 978-0-470-12872-5
Additional information: Yet a third option. 

Title: The C Programming Language
Author: Brian Kernighan and Dennis Ritchie
Publisher: Prentice Hall
Edition/Year: 2nd/1988
ISBN: 0-13-110362-8 
Additional Information: You will need a C reference book. This is the best.
Type: Recommended resource 

Grade Allocation

Requirements: There will be 4 equally-weighted assignments (due approximately every 3-4 weeks), a mid-term exam (held in-class), and a final examination during the regular examination period. Exact dates will be announced as the course progresses. The approximate weightings for the assignments and examinations are as follows: 

Component
Assignments 28%
Midterm Exam 17% (Tentatively Oct 31, 2012)
Participation 5%
Final Exam 50%

 


Tutorials

There are 2 tutorial slots. Tutorials will be held every week.

Location and Time: Monday 3:30, Wednesday, 2:30: Thorvaldson S320 (seating limit 33). You may attend either tutorial, depending on space only.

Teaching Assistants: Mahsa Naseri (man034) and Shaiful Chowdhury (sbc882) 


Learning Objectives

 After completing this course, students should be able to do the following tasks:

  1. Demonstrate and illustrate how application software accesses computer hardware through the abstractions provided by the operating system and how the operating system shares hardware resources between processes, tasks, threads, and users.
  2. Utilize system library functions robustly in the implementation of applications that access operating system facilities.
  3. Correctly abstract operations through the use of Application Programmer Interfaces and Virtual Function Interfaces.
  4. Design, implement and document system-level software in a small- team environment.
  5. Demonstrate the operation of well-known theoretical algorithms with respect to deadlock, process and disk scheduling, and memory management.
  6. Illustrate the separation of policy and mechanism with examples from operating system design and implementation.
  7. Design algorithms to provide concurrent access to shared resources and implement these algorithms in the following environments in the C programming language: UNIX processes, various UNIX and Windows threads packages.
  8. Explain time, space and complexity tradeoffs in operating system implementation issues, demonstrating their application with approximate solutions for various resource sharing problems.
  9. Modify existing system-level source code to add new functionality.
  10. Compare and evaluate options for filesystem implementation and use as well as alternative mechanisms for concurrency control between processes. 

Lessons

Introduction and Overview
Introduction
Objectives: Review and set up the scope of the course.
Topics: Overview, history of Operating Systems. Introduction to the computing environment for this course. Possible review of C and UNIX/ Linux.
Readings: Chapter 1.1-1.4 (pp. 1-37) - Tanenbaum

Lesson 2
Process Description, Concurrency Control and Inter-Process Communication
Topics: Subtopics:processes, threads, and address spaces; I/O devices; synchronization; mutual exclusion; semaphores; monitors; Inter-process communication; deadlock; examples.
Duration: 4.5 weeks.
Readings: Chapter 2.1, 2.2, 2.3, 5.1, 5.2, 6

Lesson 3
Process Scheduling
Topics: types of scheduling; uniprocessor scheduling; multiprocessor scheduling; examples.
Duration: 2 weeks Readings: Chapter 2.4
Lesson 4
Memory Management
Topics: address binding; virtual memory; address translation; management policies for demand paged virtual memory; examples.
Duration: 3 weeks Readings: Chapter 3
Lesson 5
I/O and File Systems
Topics: organizing the I/O function; disk architectures, RAID; disk caching; file organization; secondary storage management; protection and security; examples.
Duration: 2 weeks
Readings: Parts of Chapter 4 and Sections 5.3 and 5.4
Lesson 6
Distributed Systems and Virtualization
Topics: client-server paradigm; Remote Procedure Call; clusters; process migration; distributed file systems, virtual machines.
Duration: 2 weeks (If time permits)
Readings: Course Notes and Sections 8.3 and 8.4 

Policies

Facilities: Students will be using the Linux/Windows computers in the Spinks Lab to do most of their work, and are expected to be familiar with the use of these facilities.

 Other: A few miscellaneous points:

  • This course will be administered with BlackBoard. Those unfamiliar with the use of BlackBoard are strongly encouraged to make use of the resources available to learn BlackBoard. BlackBoard has a Discussion Forum and it will be used to disseminate answers to questions regarding assignments, lecture material, etc. Many important things may happen there that will not be repeated in class, so daily reading of the bulletin board is required.
  • The course will make regular use of Internet facilities. Page Locations will be given during lectures and on BlackBoard.
  • Assignment descriptions will be made available in electronic form only. Submissions will be in electronic form only.
  • Part of the evaluation in the course will include participation, including participation in the electronic component of the course through BlackBoard. Your involvement in this area of the course will be electronically tracked on a periodic basis.
Additional information:
Assignments are to be done in groups of at most two students.

Plagiarism is strongly forbidden (as in all courses). We will be checking assignments/projects for plagiarism using nifty cheating detection software and penalties will be enforced. Refer to the University policy on academic honesty