Welcome to CS 431 Introduction to Operating Systems !

  This website is provided for general information only. For announcements, discussions, assignments, scores and lecture notes please refer to the blackboard.umkc.edu site associated with this course.
New ! I have started a blog site for this course at: http://cs431-umkc.blogspot.com to complement the lecture notes in blackboard.

Course Overview Objectives Text and useful links Grading Instructor/TA
Schedule/Syllabus Prerequisites Survival Guide Special Needs Academic Dishonesty


Course Overview

CS431 will focus on the role of an operating system, its internals and design principles. "Role" means the importance of an OS in seperating the knowledge of the hardware from applications. The internals of an operating system refer to its major data structures and algorithms that constitute different subsystems of an OS and design principles refers to the interface between these subsystems as well the optimizations made. The course will cover the most important concepts of an operating system which include: process and storage management, I/O subsystems, and protection and security.


At the end of this course a student should have deep working knowledge of the key data structures, algorithms and design decisions made in developing most modern operating systems with emphasis on the differences in Windows and Linux. In addition, the student must have honed the following skills:
  • Ability to design and understand large software applications. An operating system is nothing but a complex software program consisting of different subsystems that usually have well-defined interfaces to interact with each other. Understanding the abstract mechanisms that allow for efficient scheduling of resources, and the actual implementation of some of these mechansims will give a clear picture of how most computing infrastructures work.
  • Experience in designing and implementing programs. Understanding issues such as concurrency and mechanisms to handle them. Improve programming skills in C/C++ and UNIX.


Teaching Assistant(s)

Prem Uppuluri
Office: 550H Flarsheim Hall
email: uppulurip@umkc.edu
Office Hours: Tue, Thu  9:00 - 11:00

Praveen Lella
email: PraveenLella@umkc.edu
Office: Room 508, Flarsheim Hall
Office hours: TBA


    TR 11:00 a.m. - 12:15 p.m.
    Room: 104 Royall Hall


  The formal pre-requisites for the course are:
  • CS281 Introduction to Computer Architecture
  • CS352 Introduction to Data Structures
  • CS394 Applied Probability and Stochasitic Processes


Operating System Concepts
Silberschatz, Galvin and Gagne
Seventh Edition, John Wiley and Sons
ISBN: 0-471-69466-5
Click on the book title to access the student resource page.

Useful links


    • Programming Assignments (4): 30%
    • Written Homeworks (2): 10%
    • MidTerm Exams (2): 30%
    • Comprehensive Final Exam: 30%
    Exams will only be conducted during the days and times announced on the schedule page. None of the exams will be re-scheduled unless due to an excused absence as stated in the University's attendance policy . You should note that if you miss an exam due to an excused absence, I reserve the right to set a different exam from the regular exam taken by the class. I will ofcourse, try to keep the balance of questions the same for the make up exam.

    Grading of Programming Assignments
    These are the approximate grading criteria that will used for programming assignments. However I may change them for any given assignment, in which case the new criteria will be posted before the assignment deadline.
    • Design 20%
      • Comprehensive error checking
      • Data structure design
      • Use of novel approaches (if any)
    • Documentation 20%
      • Source code documentation
      • Availability of README file
      • Availability of a Makefile
    • Program compilation 20%
    • Program operation 40%
    Late Submission Policy
      Programming and written assignments, must be submitted by 11:59 pm (1 minute before midnight) of the deadline date. Programming assignments must be submitted using Blackboard's digital drop box feature. Written assignments must be either handed in the class or submitted using the CSEE main office's drop box. The late submission policy is as follows:
      • 24 hours late: 10% penalty
      • more than 24 hours, but less than 48 hours late: 25% penalty
      • more than 48 hours but less than 72 hours late: 50% penalty
      • assignments cannot be submitted more than 72 hours late.
      • ONE assignment either programming or written CAN be submitted upto 7 working days late during the semester without incurring any penalty. You must clearly state on your assignment that you are using this rule.

Special Needs

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS) at UMKC. You can call them at (816) 235 5696. Individuals with speech or hearing impediments may use Relay Missouri, 1-800-735-2966(TT) or 1-800-735-2466. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

The Importance of Persevering in Class.

A crucial goal of this course is to teach professionalism. Academic dishonesty runs contrary to this goal and will be dealt very seriously. You can read more about UMKC's academic dishonesty policy here.. The following guidelines will help clarify what type of collaboration is allowed or prohibited in this course.

For all assignments
  • Discussion related to understanding a problem is allowed. Any discussion of the solution is however prohibited. Though problems may have similar solutions, there are different ways to formulate the solutions. Infact, in a classroom if students do the assignments individually, the solutions have differences. Any suspciously similar assignments will be considered as copied.
  • Copying from the internet is prohibited.
  • Allowing any other student to copy your work either willingly or due to improper protection of your files is prohibited. In case your files are copied without your permission you must demonstrate that you have taken adequate security measures to prevent others from viewing or copying them. If you are not sure what permissions to associate with your files, please contact me.

    For programming assignments
    • No code from the internet should be copied
    • Exchange of program design, program fragments or the whole program is prohibited
    If you are not sure if what you are doing constitutes "cheating" please contact me. Finally, to emphasize again, cheating will be dealt with utmost seriousness. It may be to your advantage to talk to me if you have any problems in assignments than talking to your peers !

Survival Guide.

  • Do not postpone working on assignments and homeworks. The sooner you finish the sooner you can do other things.
  • Design before you code. As a rule of thumb plan on investing majority of your time in developing a good design. This will help you avoid wasting too on debugging the code. Why debug and waste time, when you can design well and party ?
  • Read the blackboard.umkc.edu site pertaining to this course regularly.