CSCE 451/851
Operating Systems Principles
Fall 1999
TuTh 2:00 – 3:15pm
Ferguson 111
Instructor: |
Prof. Steve Goddard |
Office Hours: |
3:30-4:30pm W |
|
Ferg 215A |
1:00-2:00pm TTh |
|||
472-9968 |
(Or by appt.) |
|||
goddard@cse.unl.edu |
||||
http://www.cse.unl.edu/~goddard |
||||
TA: |
Caina Wei |
Office Hours: |
TBD |
|
501 Bldg, Rm 6, Sect 6.2 |
|
|||
472-3485 |
(Or by appt.) |
|||
cwei@cse.unl.edu |
Course Overview
An operating system is an essential part of almost all computer systems. The operating system is the software system that provides the interface between users, their applications, and the underlying hardware. The purpose of this course is to introduce some of the fundamental concepts in the design of an operating system including:
Course Materials
The textbook for this course is
• Operating System Concepts, fifth edition, by Silberschatz & Galvin, Addison Wessley, 1998.
We will cover (almost) all of Parts 1-6. Chapters 1-13 will definitely be covered. Chapters 15-17 and 19-20 will be covered as time permits.
This course has a laboratory component. You will be asked develop several components of a toy operating system using the UNIX (or Linux) operating system and the C or C++ programming language.
In addition to the texts, I will hand out a set of lecture notes at each class. These notes are purposely incomplete and are meant to simply be a note-taking aid. If you miss class, copies of lecture notes, as well as copies of all class handouts, can be found on the CSCE 451/851 home page on the Web at URL:
http://www.cse.unl.edu/~goddard/Courses/CSCE451/
Prerequisites
Prerequisites for this course are CSCE 231 (Assembly Language and Systems Programming) and CSCE 310 (Data Structures and Algorithms). As part of our ongoing accreditation process, there will be an evaluation of your understanding of the material covered in the prerequisite courses. This evaluation will be graded as a homework assignment.
Grading
Your grade in this class will based on:
• class participation (10%),
• homework and programming assignments (40%),
• midterm examinations (25%), and
• final examination (25%).
Homework will be assigned approximately on a bi-weekly basis. Assignments will range from programming exercises to pen and paper problems. All pen and paper assignments will be collected at the start of class on the day on which they are due. All programming assignments will be due at 6pm on the day on which they are due. (Programming assignments will usually be due on Wednesdays.) Written homework will be collected by the instructor; programming assignments will be submitted via the handin program.
All homework submitted after its deadline is considered late. Assignments that are submitted within 24 hours after the original deadline are considered to be "one day late," within 48 hours, "two days late," etc. A late homework assignment will be accepted without penalty if the following conditions are met:
• the total "lateness" of all homework assignments received to date (including the current assignment) does not exceed 4 days.
• the student does not miss class on the day the assignment is due (or on the day after the assignment is due in the case of programming assignments). Exceptions to this requirement must be approved by the instructor in advance.
Late programs should be handed in with the handin program. Late written assignments must be hand delivered to either the instructor or the TA.
The penalty for late assignments is 25% per day they are late. An assignment that is 4 days late will receive no credit. Weekends count in evaluating the lateness of an assignment.
Students who submit all homework assignments on time will receive a 10% homework grade bonus at the end of the semester. That is, a student will receive a bonus of 10%*40% = 4% for his/her final grade if all homework assignments are submitted on time.
There will be two midterm exams; the first will be given on October 14, and the second on November 18. The final exam for this course is scheduled for Thursday, December 16 at 1:00 pm. The second midterm will only cover material presented in class since the first midterm (i.e., not on the first midterm); the final exam covers the entire course.
Course Conduct and the Honor Code
Students are encouraged to work together on homeworks and programming assignments. Acceptable collaboration on homework includes:
• discussing the assigned problems to understand their meaning,
• discussing possible approaches to assigned problems,
• discussing the UNIX system features, or general programming principles in the solution of programming problems.
In all cases you must explicitly acknowledge any and all substantive help received from other individuals during the course of the preparation of your homework solution. That is, if you collaborate with other individuals then you must include an explicit acknowledgment in your homework solution of the persons from whom you received aid.
Unacceptable collaboration, unless explicitly stated, on homework includes:
• copying (verbatim use) of physical papers or computer files.
• submission of solutions that are jointly authored, or authored either wholly or in part by other individuals (unless the assignment is a group project).
The general rule to be followed is that the strategy and approach of solutions may be developed jointly but all actual solutions (i.e., the final solution) must be constructed and written up individually. Work done jointly should not be done in sufficient detail as to make it a solution. For example, the design of a program solution made be performed jointly, however, each student must write all the code they eventually submit as their solution. No code may be shared between students, unless the assignment is a group project. Similarly, for written assignments, solutions may sketched out jointly, however each student must construct the final form of their solution individually and write-up their own solution.
Unacceptable collaboration will be considered a violation of the Student Code of Conduct, and will result in a failing grade for the course. In other words: if you cheat, you will fail!
Should questions arise the course of working on a problem please feel free to immediately contact the instructor either by telephone, electronic mail, or by an office visit. In principle, if you work with others in good faith and are honest and generous with your attributions of credit you will have no problems.
Course Outline
The following is the ideal outline for this course. The only dates on this outline that are guaranteed to be correct are that of the first lecture, the midterm exams, and the final exam. The readings listed for each lecture should be completed prior to the lecture.
Introduction |
Chapters 1-3 |
||||||||
Aug. 24 Aug. 26 |
Chapters 1 – 2 Chapter 3 |
Introduction. |
|||||||
Processes |
Chapter 4 |
||||||||
Aug. 26 |
Sections 4.1 – 4.3 |
Process concept. |
|||||||
Aug. 31 |
Section 4.4 – 4.5 |
Context switching and Producer/Consumer Paradigm |
|||||||
Sept. 2 |
Section 4.6 |
Interprocess communication (IPC). |
|||||||
Sept. 7,9 |
Sect. 21.9, Handout |
UNIX IPC and PA2 |
|||||||
Scheduling |
Chapter 5 |
||||||||
Sept. 14,16 |
Sections 5.1 – 5.3 |
Scheduling concept and algorithms. |
|||||||
Synchronization |
Chapter 6 |
||||||||
Sept. 16,21,23 |
Sections 6.1, 6.2 |
Critical section problem. |
|||||||
Sept. 23,28 |
Sections 6.3 – 6.6 |
Semaphores and critical regions. |
|||||||
Sept. 28 |
Sections 6.7 – 6.10 |
Monitors. |
|||||||
Deadlock |
Chapter 7 |
||||||||
Sept. 30 |
Sections 7.1 – 7.3 |
Deadlock concept. |
|||||||
Oct. 5 |
Sections 7.4 – 7.9 |
Deadlock prevention and avoidance. Deadlock detection and recovery |
|||||||
Memory Management |
Chapter 8 |
||||||||
Oct. 7 |
Sections 8.1 – 8.4 |
Address spaces. Swapping. Contiguous Allocation. |
|||||||
Oct. 12 |
Review HW |
||||||||
Oct. 14 |
Midterm Exam I |
Chapters 1-6 |
|||||||
Oct. 19 |
Fall Break |
||||||||
Oct. 21 |
Review Midterm |
||||||||
Virtual Memory |
Chapter 9 |
||||||||
Oct. 21 |
Section 8.5 |
Paging. |
|||||||
Oct. 26 |
Sections 9.1 – 9.3 |
Virtual memory concept. |
|||||||
Oct 28, Nov. 2 |
Sections 9.4 – 9.6 |
Page replacement algorithms. Frame allocation. |
|||||||
Nov. 4 |
Sections 9.7 – 9.10 |
Working sets. Performance considerations. |
|||||||
Nov. 9 |
Sections 8.6 – 8.7 |
Segmentation and Shared Memory. |
|||||||
File Systems and Secondary Storage |
Chapters 10, 11, 13 |
||||||||
Nov. 9 |
Sections 10.1 – 10.6 |
File concept and organization. |
|||||||
Nov. 11 |
Sections 11.1, 13.1 Sections 11.2, 11.3 |
File system and disk structure. Allocation methods. Free space management. |
|||||||
Nov. 16 |
Sections 13.2 – 13.7 |
Disk scheduling and management. Providing stable storage. |
|||||||
Nov. 18 |
Midterm II |
Chapters 7 - 9 |
|||||||
Nov. 23 |
Review Midterm |
||||||||
Nov. 25 |
Thanksgiving Break |
||||||||
Protection and Security |
Chapters 19, 20 |
||||||||
Nov. 30 |
Sections 19.1 – 19.6 |
Goals and domain of protection. Access-based systems. Capability-based systems |
|||||||
Dec. 2 |
Sections 20.1 – 20.6 |
Authentication. One-time passwords. |
|||||||
Introduction to Real-Time Systems |
|||||||||
Dec. 7 |
Lecture Notes |
Real-Time Systems Overview |
|||||||
Dec. 9 |
Lecture Notes |
Scheduling Issues |
|||||||
Course Review and Evaluation |
|||||||||
Dec. 9 |
|||||||||
Final Exam |
|||||||||
Thurs, Dec. 16, 1:00pm |
Chapters 1 – 13, 19 – 20 |