CS441 Operating System Concepts

Instructor information

Instructor: W. Michael Petullo
Office location: 210 Wing Technology Center
Office hours: Monday, Tuesday, Wednesday, and Thursday 2:10 p.m–3:00 and by appt.
Telephone: (608) 785-6817
Email: wpetullo@uwlax.edu

Catalog description

The study of the structures and algorithms of operating systems. Operating systems are viewed as managers and controllers of resources such as processors, memory, input and output devices, and data. Topics include multiprogramming systems, CPU scheduling, memory management, and device management. This course is taught largely at an undergraduate level. Graduate students will have additional course requirements/expectations.

Prerequisites

CS340, CS370, and junior standing

Time and location

Tuesday and Thursday at 9:25–10:50 a.m. in Centennial 1401

Student learning objectives

This course follows the Computer Science Department’s learning objectives for CS441, which are listed below.

  1. Explain what constitutes an operating system and why it is needed.
  2. Describe the services an operating system provides to users, processes, and other systems.
  3. Identify the major components of an operating system.
  4. Understand the notion of a process (a program in execution) and how it forms the basis of all computation.
  5. Describe the various aspects of processes, including scheduling, creation and termination, and communication.
  6. Explain different approaches to communication in client-server systems.
  7. Know the difference between a thread and a process and to explain the benefits of multithreading.
  8. Explain various CPU-scheduling algorithms and compare them with respect to turnaround time, throughput, and risk of starvation.
  9. Explain process synchronization and the critical-section problem.
  10. Identify both software and hardware solutions to the critical-section problem.
  11. Understand the nature of deadlocks in a computer system.
  12. Identify and understand different methods for preventing, avoiding, and detecting deadlocks.
  13. Understand the major memory-management techniques: contiguous allocation, paging, and segmentation.
  14. Describe the benefits of a virtual memory system.
  15. Explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames.
  16. Understand the principles of the working-set model.
  17. Explain the properties of file systems and their interfaces.
  18. Understand file-system design tradeoffs, including access methods, file sharing, protection, and directory structures.
  19. Discuss file block allocation and free-block algorithms.
  20. Identify potential threats to operating systems and security features designed to guard against them.
  21. Explain the mechanisms available in an operating system to control access to resources.

Textbook

The authors distribute the textbook for free at https://pages.cs.wisc.edu/~remzi/OSTEP/.

Classroom standards

Please be prepared to take notes using a pen and paper, or use discipline while taking digital notes. Do not use the Internet for personal reasons during class. Do bring a laptop or other device capable of running the compilers and other tools we use in class; any lecture might include hands-on exercises.

Perform your assigned reading and other preparation before arriving for class. I will expect you to participate in class discussions, and I might call on you to contribute.

Review the Board of Regents’ Student Academic Disciplinary Procedures concerning academic integrity. Cheating undermines the integrity of this university and shows disrespect toward the work of your classmates. Starting coursework early will help you to avoid the temptation of cheating. Plagiarism or cheating in any form may result in a failing grade, and it might also warrant harsher disciplinary action. “Students are responsible for the honest completion and representation of their work, for the appropriate citation of sources, and for respect of others’ academic endeavors.”

On perseverance and the scientific method

You will inevitably encounter problems while trying to complete your coursework. Sometimes the confusing interfaces that our software applications present will lead you astray, and other times you will simply make an error. When something goes wrong, try to fix the problem! Make small, incremental changes, and observe their effects. Most importantly, think about how systems work, and then consider why the error you are observing might have arisen. Occasionally, you should stop what you are doing and start from scratch. Learning how to better troubleshoot should be a beneficial side effect of this course.

Graded events

Homework will be submitted through Aquinas, a grading system that provides immediate feedback. Refer to the course schedule for the sequence of homework assignments and exams. Your running grade will be available through Aquinas. Refer to the following table for the weight of each graded event.

Event Portion of grade
Homework 44% (4% per assignment)
Midterm exam 21%
Instructor points 5%
Final exam 30%

Grade scale

Grades are assigned based on the following scale.

Range Grade
93–100% A
89–92% AB
83–88% B
79–82% BC
70–78% C
60–69% D
0–59% F

Late policy

Assignments are due the moment class starts. Late assignments will lose points according to the table below.

Tardiness Penalty
Up to 24 hours late 15% reduction
24–48 hours late 30% reduction
More than 48 hours late No credit

If some external circumstance causes you to be late, then you must notify your instructor in writing and before the assignment deadline in order to be considered for an exception. The act of notification does not automatically grant you an exception.