Computer Operating Systems: Internals and Design Principles
|
Instructor: Paul Roper Email: proper@cs.byu.edu |
Section 001 1:00-1:50 pm MWF 373 MARB |
Section 002 2:00-2:50 pm MWF 373 MARB |
CS 345
· The prerequisite for CS 345 is CS 240, a knowledge of C, or the instructor’s consent.
· The text for the course is “Operating Systems Internals and Design Principles (6th Edition)” by William Stallings. This book will be used extensively throughout the course including homework assignments.
· All class materials are available on the CS 345 Web Site (http://students.cs.byu.edu/~cs345ta/) with Blackboard being used for recording grades. This includes the class syllabus, schedule, PowerPoint lectures, homework, programming assignments, a discussion board, messages, and most importantly, grades. It is the responsibility of each to student to verify that homework, exam, and programming assignment grades have been correctly recorded.
· Each student will individually implement a preemptive, prioritized operating system with virtual memory and file management capabilities.
Course Objectives
The objective of this course is to introduce the student to the principles underlying the design and implementation of contemporary computer operating systems. CS 345 is designed for students majoring in Computer Science or in areas having a strong emphasis in Computer Science. At the end of the course, the student will have a basic understanding of the following:
· Design and implementation issues of contemporary operating systems.
· Detailed analysis of process, multithreading, symmetric multiprocessing, and microkernels.
· Memory management techniques, including virtual memory.
· Various approaches to process scheduling.
· Operating system control of Input/Output.
· File management.
· Distributed systems.
· Computer security.
Course Activities
Class Lectures
PowerPoint lectures and class discussions will be presented each class period as outlined on the course schedule. There will be times when information is given in class that is not in the text nor on the class website. It is very important that students attend class and take careful notes. You will be held responsible for this information.
Computer Programming Assignments
CS 345 programming assignments consist of six projects that build upon each other and are designed to emphasize topics and objectives discussed in class.
o Project 1: Shell. Write a Shell (Command Language Interpreter) to parse textual commands entered from the user’s keyboard, malloc argument variables, handle signals, and execute programs directly or as child processes.
o Project 2: Scheduler. Write a five-state task scheduler capable of executing up to 128 tasks in a preemptive, prioritized, round-robin manner. Implement binary and counting semaphores and schedule your shell as its first task with pseudo-interrupt driven character input. Add timer semaphores and tasks to validate your implementation.
o Project 3: Jurassic Park. Jurassic Park is an inter-process communication and synchronization problem between multiple tasks. Visitors to the park purchase a ticket, wait to take a ride on a park tour car to see the dinosaurs, and then visit the museum and gift shops before leaving the park. Since the park is on a limited budget, drivers must perform double duty when not sleeping by selling tickets and driving the tour cars. Visitors, drivers, and cars are represents by concurrent tasks while an additional task is used to display the park status every second.
o Project 4: Distributed Mutual Exclusion. Integrate a distributed banking system consisting of nine remote ATM’s (clients) and one centralized Bank (server) into your OS and implement a distributed mutual exclusion mechanism (Lamport’s algorithm) to protect asynchronous accesses to the Bank (critical section).
o Project 5: Virtual Memory. Add a Memory Management Unit to your OS that translates virtual addresses to physical addresses in a restricted memory space such that 32 LC-3 crawler and/or memory test programs execute concurrently in 2 frames of physical memory (128 words).
o Project 6: FAT. Add a MS-DOS® FAT-12 file manager to your OS that is able to traverse file directories, view file data, and load/execute LC-3 programs from files. In addition, use system buffering, file descriptors, and file pointers to modify file allocation tables (FAT), directory structures and cluster chains.
Please pay careful attention to the following programming guidelines:
· Programming assignments can be found under "Projects" on the on the CS 345 Website (http://students.cs.byu.edu/~cs345ta/).
· Programming assignments must be completed and passed off with a “Date Modified” timestamp dated on or before the due date to receive full credit. Timestamps cannot be used for extra credit points nor older than two days.
· Any programming assignment completed and passed off after the due date will lose 10% per school day. (After 2 weeks, an assignment has no grading value!).
· Programming assignments are to be passed off by a TA during regular TA hours in the TA offices or programming labs and web submitted before a grade can be awarded.
· Programming assignments can be passed off on school computers or personal laptops (see Programming Environments below).
· As an incentive to get your programming assignments done early and to motivate you to thoroughly check your work, assignments completed and passed off at least one day before the due date (timestamps do not count) with a TA will receive 10% extra credit.
· Any grade points earned on programming assignments above the allotted percentage may apply to your overall grade.
· All six programming assignments must be completed to receive an ‘A’ or ‘A-’ grade.
· All programming assignments and homework MUST BE COMPLETED, PASSED OFF AND SUBMITTED on or before the final day of class (December 10).
Programming Environments
The choice of the software tools and programming environment is left up to the student’s discretion. The C programming language will be used for the programming assignments. This can be accomplished in several ways:
· Windows users can download a very good C compiler at the LCC website (http://www.cs.virginia.edu/~lcc-win32/) for free!
· For those wanting to use Linux on their home computers, look at the KNOPPIX website (http://www.knoppix.net/) for a free Linux system bootable from CD ROM.
· For those who do not own a computer or would just rather do their work using BYU facilities, there are Windows/Linux/Unix labs available in the Computer Science building. A gcc compiler is available on all Linux machines.
· In any case, it is the student’s responsibility to present their work to a TA for pass-off.
Homework
Homework assignments are designed to reinforce class material and help in exam preparation.
· Homework assignments can be found under "Homework" on the CS345 Website.
· Homework is due on Fridays at the beginning of class. At that time, homework will be discussed and graded with students being called upon to present their solutions.
· Most homework will consist of 5 to 10 questions and cover the material from the previous class discussions.
· Homework must have the student’s name, section, and homework number clearly indicated at the top of the homework to be accepted for grading. Answers must be clearly legible as well to be graded.
· Any homework submitted after the due date will lose 50% per week. (After 1 week, an assignment has no grading value!).
You are welcome and encouraged to discuss the homework with your classmates and others. However, you are to do and submit your own work. Submitting someone's work is considered cheating for which you will receive an E grade for the class and be reported to the Honor Code Office. No grade is worth the consequences of dishonesty!
Class Participation
In-class participation is an indication of a student’s understanding of the subject matter. As such, attendance, reading quizzes, and on-board presentation of homework questions will be used to encourage students to stay current with reading assignments and homework. Students will be randomly selected each Friday and asked to present their homework solutions to the class. In addition, each student is asked to prepare a short presentation on an assigned topic as it relates to a contemporary operating system and present it to the class at the end of the term.
Course Assessment
Exams
Two midterms will be administered during the course of the semester and a final exam during finals week. All exams will be administered in the testing center and be available from Friday until closing on Saturday. (You should plan at least 1-2 hours for each exam.) Any exam taken after the scheduled exam days will be worth (at maximum) half credit unless prior arrangements have been made with the instructor.
Grades
Your grade will be based on programming assignments (50%), homework (10%), presentation (10%), and four exams (30%) as follows:
· Programming assignments (50%)
o Project 1: Shell (Sep 17) 6%
o Project 2: Scheduler (Oct 1) 8%
o Project 3: Jurassic Park (Oct 15) 10%
o Project 4: DME (Oct 29) 6%
o Project 5: Virtual Memory (Nov 12) 10%
o Project 6: FAT (Dec 3) 10%
· Homework 10%
· Participation and Presentation 10%
· Midterm 1 (Oct 1-3) 9%
· Midterm 2 (Nov 5-7) 9%
· Final Exam (Dec 14-18) 12%
Grades are assigned on the following scale from the composite total of above areas:
|
100-93 |
A |
82-80 |
B- |
69-67 |
D+ |
|
92-90 |
A- |
79-77 |
C+ |
66-63 |
D |
|
89-87 |
B+ |
76-73 |
C |
62-60 |
D- |
|
86-83 |
B |
72-70 |
C- |
59-0 |
E |
Remember, all lab source files must be electronically submitted before any grading points can be awarded.
In order to receive an A or A- grade, a student must complete all six programming assignments. Any student who completes all six programming assignments, regardless of the points awarded, and passes the final exam (70% or better), will receive at least a passing grade (C-).
Please note that I reserve the right to modify the grading percentages in favor of a student as deemed advisable at the end of the semester.
The university policies on 'UW' and 'I' grades will strictly be followed.
Grading Verification and Appeal Policy
It is the student’s responsibility to verify that we have correctly recorded scores. If a score is incorrect on Blackboard, then the student must follow the appeal process to correct the score. Incorrectly recorded grades become final after the appeal time frame expires.
The student can appeal a grade on a homework or assignment through email to the grading TA. The appeal must be submitted within 1 week of the score being posted on Blackboard. Scores are posted on blackboard within one week after the homework or assignment is due. The student can appeal a grade on an exam directly to the instructor through email. Midterm appeals must be submitted within one week of when the midterm closed at the testing center. The final exam may be appealed within one week of when the grade is posted on Blackboard. Verbal appeals are not considered.
Academic Honesty
The Honor Code includes a statement of standards regarding academic honesty. Academic honesty includes completing your own homework, programming assignments, midterms, and final. Students should work together to help each other understand material, but should always turn in their own work. Examples of academic dishonesty include sharing code for assignments with other students, turning in someone else’s code as your own, sharing exam material with other students, and cheating on an exam. Any violation of academic honesty standards will result in failing the class. All violations of academic honesty are documented and reported to the Honor Code office.
Preventing Sexual Harassment and Discrimination
Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity that receives federal funds. The act is intended to eliminate sex discrimination in education. Title IX covers discrimination in programs, admissions, activities, and student-to-student sexual harassment. The BYU policy against sexual harassment extends not only to employees of the university but to students as well. If you encounter unlawful sexual harassment or gender based discrimination, please talk to your professor; contact the Equal Employment Office at 378-5895 or 367-5689 (24-hours); or contact the Honor Code Office at 378-2847.
Students with Disabilities
Brigham Young University is committed to providing a working and learning atmosphere which reasonably accommodates qualified persons with disabilities. If you have any disability which may impair your ability to complete this course successfully, please contact the Services for Students with Disabilities Office (378-2767). Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by the SSD Office. If you need assistance or if you feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established grievance policy and procedures. You should contact the Equal Employment Office at 378-5895, D-282 ASB.
Disclaimer
This syllabus is subject to change during the semester in favor of the student as deemed necessary by the instructor. It is the student’s responsibility to stay current with class policies and check the class website, Blackboard, and their email often during the week.