Instructor: Micah Beck
Office: Min Kao 433
Office Hours: Wednesday 2:30-3:30pm
Class Time: 10:10 am - 11:00 am MWF
Classroom: Min Kao Engineering 524
TA: Rui Ma (homework)
TA Office Hours: 1-3pm Thurs or by appointment
TA Office: 349 Min Kao
TA email: firstname.lastname@example.org
Operating System Concepts
Authors: Abraham Silberschatz, Peter B. Galvin, Greg Gagne
Edition: 7 or higher
Editions 7, 8 and 9 are available at a variety of prices, in hardback, paperback and for the Kindle e-book reader.
All reading assignments refer to the eigth edition of Silberschatz
(ISBN 978-0-470-12872-5), but the corresponding sections in the seveth or
nineth editions are equivalent and may be substituted.
|Reading Assignment for 1/13/2014
||Chapters 1 & 2
|Reading for 1/15/2013
|Reading for 1/27/2014
|Reading for 2/7/2014
|Reading for 2/24/2014
|Reading for 3/10/2014
|Reading for 3/24/2014
|Reading for 4/7/2014
|Reading for 4/21/2013
||Chapters 10 & 11|
All reading assignments refer to the eigth edition of Silberschatz.
Students using other editions may obtain the homework problems from Dr. Beck.
|#1||Homework due 1/27/2013
||2.13, 2.14, 2.16, 2.17, 2.18, 3.2, 3.3, 3.4, 3.7||
|#2||Homework due 2/10/2014
||4.8, 4.10, 4.11, 4.13, 4.14||
|#3||Homework due 2/28/2014
||5.9, 5.10, 5.11, 5.13, 5.14, 5.17||
|#4||Homework due 3/14/2014
||6.8, 6.12, 6.16, 6.17, 6.32||pdf
|#5||Homework due 3/25/2014
||7.10, 7.11, 7.15, 7.17||pdf
|#6||Homework due 4/9/2014
|| 8.9, 8.11, 8.12, 8.15, 8.17, 8.18, 8.24||pdf
|#7||Homework due 4/21/2013
||9.14 - 16, 9.18 - 9.20, 9.22, 9.23, 9.25, 9.30, 9.33, 9.35 ||pdf
Annotated Course Syllabus
The couse syllabus and reading will mirror the first 13 chapters of the book.
Chapters 11, 12 and 13 may be combined or abbreviated depending on the
- Chapter 1: Introduction
- Chapter 2: Operating-System Structures
- What are the reasons for using libraries?
- What is a protected resource?
- What is a manager?
- How is virtualization used to manage resources?
- Chapter 3: Processes
- What is a process? How does it differ from a task or a thread?
- What are the elements of process context?
- How is the process/task control block used in operating systems?
- What are the steps in kernel/user and user/user context switches?
- How are runnable processes managed, and how is the next to run chosen?
- How are processes created?
- Chapter 4: Threads
- What are the major reasons for programming with threads?
- What is the difference between a thread and a (heavyweight) process?
- What are the different modes of support that an OS kernel may provide for threads?
- What are the strengths of preemptive vs. non-preemptive threads?
- How are threads used in the programming of multicore architectures?
- Chapter 5: CPU Scheduling
- What is the CPU-I/O burst cycle?
- What is the function of a CPU scheduler? When are scheduling decisions made?
- What are the usual criteria used in making scheduling decisions?
- What are the criteria used in making preemptive scheduling decisions?
- What is the ideal or optimal scheduler? Why can't it be implemented?
- What is the definition and important attributes of these CPU scheduling algorithms: FCFS, SJF, priority, RR and multilevel?
- Chapter 6: Process Synchronization
- Why is mutual exclusion important in preemptive and parallel systems?
- What are the requirements for a solution to the critical section problem?
- How does Peterson's Solution to the Critical Section problem work?
- How can Test & Set and Swap hardware be used to solve the Critical Section problem?
- What are Semaphores and Monitors and how are they used for process synchronization?
- What are Deadlock and Priority Inversion?
- Explain the Bounded Buffer and Dining Philosophers' problems and their solutions.
- Chapter 7: Deadlocks
- What are the requirements for deadlock to be possible in a system?
- What are the techniques for handling deadlocks?
- How can deadlock be prevented/avoided/detected?
- How is recovery from deadlock possible?
- Chapter 8: Main Memory
- What are the definitions and uses for swapping, paging and segmentation?
- Describe a straightforward hardware implementation of paging.
- What is a Translation Look Aside Buffer, and why is it important in paging?
- How does a multi-level page table work? A hashed page table? An inverted page page table?
- Chapter 9: Virtual Memory
- How is page management hardware used to support demand paging? copy-on-write?
- Define and explain one strength and one weakness of random, FIFO, optimal, LRU and LRU approximation page replacement algorithms.
- Explain one explain one LRU algorithm and the second chance LRU approximation algorithms, and compare their use of resources.
- What are the causes of thrashing and what can be done to avoid it?
- Explain three advantages of memory-mapped files.
- Chapter 10: File-System Interface
- Chapter 11: File-System Implementation
Course Requirements and Grading
The final exam will have three sections:
- There will be two midterm exams and a final exam.
- Homework will be assigned on a regular basis.
- section 1 focuses on the material covered in midterm 1,
- section 2 focuses on the material covered in midterm 2,
- section 3 focuses on the rest of the course.
The final course grade will be calculated as
10%(H) + 25%(M1') + 25%(M2') + 40%(F)
- H = homework grade
- M1' = MAX(final exam grade, midterm 1 grade)
- M2' = MAX(final exam grade, midterm 2 grade)
- F = final exam grade
For example, a student who scores 70 on midterm 1, 85 on midterm 2, 84 on the final, and 75 on the homework will have an overall score of
10%(75) + 25%(MAX(84, 70)) + 25%(MAX(84, 85)) + 40%(84) = 83.35
The intention of this grading scheme is that students have two chances to show their mastery of the material covered in the two midterms: on the midterm and on the cummulative final.
The 90% of the course grade that is awarded on the basis of exams is available to every student at the time they take the final.
While it is possible for a student to skip the midterm exams and rely solely on the homework and final for their course grade, students are strongly advised against this approach.
Taking the midterm exams is a no-risk proposition: it can only improve a student's final course grade.
Taking the midterms is also the best preparation for the final exam.
For students doing the the course as Honors By Contract
The steps to your honors project are:
- The operating system you will be using for this project is XinuPi, a port of the Embedded Xinu operating system to the Raspberry Pi.
- A variety of tools and notes about working with the Raspberry Pi can be found on this page.
- Arrange for a Pi execution platform, either hardware or virtual machine.
- Put a Xinu image on the Raspberry Pi. You can start with a prebuild image if that is easier, but you will have to create your own image to do the next step. (see this link for more information about installing Xinu on a Virtual Box virtual machine)
- Implement Shortest Burst First process scheduling in Xinu.
- Perform an experiment to show a difference in performance between standzard Xinu process scheduling and your implementation of SBF.