- Session: Fall 2016
- Credits: 3.0
- Class Interaction:
- Class hours: Monday & Wednesday, 4:00 - 5:15PM
- Classroom: LLC 141
- Instructor: Suman Bhunia
- E-mail: webcampus email
- Web page: sbhunia.me/cs446
- Office: LLC 147F
- Office hours: Monday & Wednesday, 3-4 PM and after the class
- Teaching Assistant: Mustafa Solmaz
- E-mail: webcampus email
- Office: SEM 230
- Office hours: Monday & Wednesday 5:30 - 6pm.
- SI session on Programming Assignments
- Instructor: Cayler Miley
- Venue: SEM 201
- Hours: Mondays 5:30 - 6 pm
The principles, components, and design of modern operating systems, focusing on the UNIX platform. Topics include concurrent processes, inter-process communication, processor management, virtual and real memory management, deadlock, file systems, disk management, performance issues, case studies, etc.
Graduate-Level Extended Requirements For This Course:
- To achieve deeper understanding of the concepts of this course, graduate students will: 1) be assigned extended or expanded activities in all of the laboratory activities, and 2) be required to answer extended or expanded questions on selected quizzes as well as the examinations
- Graduate students will be assigned research components related to, and in addition to the laboratory activities assigned to the undergraduate students; this will extend the need and support for 1) independent study, 2) synthesis, and 3) contact with the Instructor; it will also require graduate students to work at a higher academic level
- All graduate student extensions assigned or executed in this course will be evaluated with graduate-level expectations; examples of this will be graduate-level research quality expectations, extended or expanded laboratory requirement expectations, and quiz and/or examination depth of knowledge expectations
- Through the extended requirements specified here, graduate students will realize the deeper and broader experience and the standard of learning they should expect from a graduate-level course
- Data Structures (CS 302)
- Microprocessor System Design (CPE 301)
- C/C++ or Java programming experience in UNIX-like environment
- Required Textbooks
- A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts, 9th Edition (2012), John Wiley & Sons, Inc. companion site
- Reference Books and Other Materials
- Stallings, W. (2009) Operating Systems: Internals and Design Principles, 6th Edition. Prentice Hall (ISBN: 0136006329). Companion site
- A. S. Tanenbaum, Modern Operating Systems, 4th Edition (2015), Pearson
- Molay, B. (2002) Understanding Unix/Linux Programming: A Guide to Theory and Practice (1st Edition). Prentice Hall (ISBN: 0130083968).
Outcomes and Objectives:
CSE Student Learning Outcomes (SLOs). The CSE student learning outcomes are skills, and abilities students should have acquired by the end of the course. These outcomes are defined in terms of the ABET Accreditation Criterion 3 Program Outcomes which are relevant to this course. The outcomes specifically satisfied by this course are:
- 2)an ability to design and conduct experiments, as well as to analyze and interpret data.
- 5)an ability to analyze a problem, and identify, formulate and use the appropriate computing and engineering requirements for obtaining its solution.
- 6)an understanding of professional, ethical, legal, security and social issues and responsibilities.
- 10)a knowledge of contemporary issues.
- 11)an ability to use current techniques, skills, and tools necessary for computing and engineering practice.
- 12)an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
The following table shows the student learning outcomes and core objectives used for both assessment systems and how they are assessed. As a requirement of ABET accreditation, all of the following student learning outcomes are regularly assessed using the direct assessment methods and metrics provided in the table below.
|CSE SLOs||Course Specific SLOs||Assessment Methods/Metrics|
|2||Students will be able to evaluate quantitatively different resource allocation and scheduling methods of an operating system||Selected quiz, mid-term, and final examination written components that demonstrate the specified characteristics|
|5||Students will be able to design and understand various resource management tasks undertaken by an operating system||Selected quiz, mid-term, and final examination written components that demonstrate the specified characteristics|
|6||Students will be able to analyze design and implementation issues of operating system software components, including consideration for legal, ethical, and security issues||Selected assessment components, including both laboratory implementations and scenario-based analyses that demonstrate the specified characteristics|
|10||Students will be able to identify and analyze current and contemporary issues related to the development, implementation, and management of an operating system||Selected quiz, mid-term, and final examination written components that demonstrate the specified characteristics|
|11||Students will be able to identify and apply system-programming techniques and are able to use related system calls.||Selected assessment components, including both laboratory and quiz, mid-term, and final examination written components that demonstrate the specified characteristics|
|12||Students will be able to define and explain various tradeoffs between resource management techniques|
- Introduction to Operating Systems
- Role of an O/S
- O/S History and Features
- Types of O/S
- Major O/S Components
- System Calls
- O/S Software Architecture
- Examples of O/S
- Processes & Threads
- Process Description & Control
- Process Scheduling
- Multithreading Models
- Thread Libraries
- Concurrency & Synchronization
- The Critical-Section Problem
- Synchronization Hardware
- Deadlock & Starvation
- Deadlock Prevention
- Deadlock Avoidance
- Deadlock Detection
- Memory Management
- Virtual Memory
- Page Replacement
- CPU Scheduling
- Scheduling Algorithms
- Performance Evaluation
- Multiprocessor Scheduling
- Thread Scheduling
- Real-Time Scheduling
- I/O Devices
- I/O Software
- Disk Scheduling
- Disk Caching
- Examples of I/O
- File System
- File Description
- File Directories
- File Storage Implementation
- Examples of File Systems
- Protection and Security
- Principles of protection
- Domain of protection
- Security problems
- Program threats
- Computer Security classifications
|Date||Lectures||Lecture Topics||Assignments & Notes|
|Mon, Aug 29||1||Introduction (Chapter 1)||Asgn 1 out|
|Wed, Aug 31||2||OS overview (Chapter 1)|
|Mon, Sep 5||Labor Day (no classes, campus closed)|
|Wed, Sep 7||3||OS Structure (Chapter 2)|
|Mon, Sep 12||4||Process (Chapter 3)|
|Wed, Sep 14||5||Process (Chapter 3)||Assgn 1 due|
|Mon, Sep 19||6||Threads (Chapter 4)|
|Wed, Sep 21||7||Threads (Chapter 4)|
|Mon, Sep 26||8||Midterm review – 1|
|Wed, Sep 28||9||Midterm - 1|
|Mon, Oct 3||10||Process Synchronization (Chapter 5)|
|Wed, Oct 5||11||Process Synchronization (Chapter 5)||Assgn 2 due|
|Mon, Oct 10||12||CPU scheduling (chapter 6)|
|Wed, Oct 12||13||CPU scheduling (chapter 6)|
|Mon, Oct 17||14||Deadlocks (Chapter 7)|
|Wed, Oct 19||15||Deadlocks (Chapter 7)|
|Mon, Oct 24||16||Main memory (chapter 8)||Assgn 3 due|
|Wed, Oct 26||17||Main memory (chapter 8)|
|Mon, Oct 31||18||Midterm review -2|
|Wed, Nov 2||19||Midterm – 2|
|Mon, Nov 7||20||Virtual Memory (Chapter 9)|
|Wed, Nov 9||21||Virtual Memory (Chapter 9)|
|Mon, Nov 14||22||Mass Storage Structure (Chapter 10)||Assgn 4 due|
|Wed, Nov 16||23||File System (Chapter 11)|
|Mon, Nov 21||24||File System (Chapter 12)|
|Wed, Nov 23||25||No class for Thanksgiving|
|Mon, Nov 28||26||Input/Output (Chapter 13)|
|Wed, Nov 30||27||Protection (Chapter 14)|
|Mon, Dec 5||28||Security (Chapter 15)||Assgn 5 due|
|Wed, Dec 7||29||Linux System (Chapter 18)|
|Mon, Dec 12||30||Final exam review||Assgn 6 due|
|Wed, Dec 14||Prep Day (no classes - campus open)|
|Mon, Dec 19||Final Exam (2:45-4:45pm)|
|Wed, Dec 21||INSTRUCTION ENDS|
- Programming Assignments: There will be a number of programming assignments involving quite a bit of programming in the Linux/UNIX environment. These programming assignments can be considered “mini-projects” with the same topic for everyone. They will require turning in code that compiles and runs properly and sometimes a report documenting this program (specifications, implementation, user manual, etc.). Note that knowledge of C/C++ in UNIX environment is required for these assignments. Also, note that a programming standards document will be provided; all students must closely follow the requirements in this document.
- Quizzes: Quizzes may occur very regularly – commonly at least once a week – and may or may not be announced. The quizzes will likely be timed commonly between 10 and 30 minutes. Questions in these quizzes will be designed to give you an opportunity to test and affirm your knowledge of the course content.
- Class Activities: There will be in-class activities and quite a bit of discussion and interaction. You must be prepared for each class time by reading, studying, and preparing for the topics specified. Students will be randomly chosen and asked questions during class.
- Homework: Other than the assigned readings and PowerPoint assignments, there will be little if any actual homework activities. However, there will be programming opportunities, as mentioned previously in this document.
- Exams: Two mid-term examinations and one final examination are planned during this course.
- Late Submission Policy: Generally speaking, most materials will not be accepted if they are late. You are invited to check with your Instructor if special circumstances arise, but he will make the final decision.
The final grade will be based on the following. The Instructor reserves the right to modify the grading weights to adapt to circumstances encountered during the semester
|Quizes and other Activities||20%|
- Each graded item will be scored on a simple rubric, scores will be added and normalized to a percentage, and then multiplied by the appropriate weight specified above. Letter grades are earned as follows: A: 90% and above, B: 80% and above, C: 70% and above, D: 60% and above, F: below 60%. A plus/minus (+/-) grade will only be assigned when it accurately represents a grade very near a cutoff point, and there is no automatic rounding (in either direction)
- Note that the final calculated grade is used as a consideration, but not necessarily the absolute standard, when grading is finalized; all four course components are considered prior to awarding the final letter grade. A C- grade or below is likely to be earned by students who do not achieve the minimum 70% in the course components specified in the table above
- You will be provided your ongoing grade on WebCampus which, barring unusual circumstances, will never be more than 5 week days behind. Check this regularly for errors and/or omissions. If a mistake is made, it will be corrected as long as the issue can be verified. Grades posted and not challenged for three weeks after a graded activity date will be considered correct, and are unlikely to be subject to modification
- Attendance: Students are expected to attend, and be on time, for every class. This demonstrates professionalism and consideration for your fellow students and your Instructor. While the course does not have an attendance policy, students who miss class and/or are late for class may experience an impact on their grade by missing classroom activities and/or homework submission opportunities
- Student Class Preparation: Some reading and other study activities will be assigned for every class. Students are expected to come to class having completed the specified activities and should be prepared for active discussion of the topics during the class time
- Home and Class Work: Students are responsible for implementing all assigned activities, and for turning in all assigned materials as specified in the assignments. In most cases, students will be provided with PowerPoint lectures more than one week in advance of their class discussion along with a list of questions/objectives for which students are responsible. For most class days, students must come prepared in advance to discuss the content and materials provided; in addition, there will usually be a quiz at least once per week so that students can demonstrate their knowledge and gain feedback in their areas of strength or weakness in the content. With very few, if any exceptions*, homework, class work, quizzes, programming assignments, and/or any other graded activities may not be made up, or turned in after their due date. *See Athletics and Illness topics below
- Electronic Devices - Noise: Students are expected to demonstrate professionalism and courtesy by either silencing or turning off all cell phones and/or other alarm or audible indicator devices. If any device causes a disturbance in the class, the student owned by this device may be asked to leave the class
- Electronic Devices - Distractions: Students are expected to demonstrate professionalism and courtesy by coming to class prepared to be engaged and involved with the class activities, whatever they may be. Students using electronic devices such as cell phones, netbooks, laptops, etc., must be using them exclusively for classroom involvement. If it is observed that students are using any of these devices for reasons other than classroom involvement, a two-tiered response will be set in motion: 1) individually identified students who have abused this policy will no longer be allowed to use electronic devices in the classroom; or, if this does not curtail the inappropriate behavior, 2) all visible electronic devices will be banned from the classroom. Note: If you appreciate the opportunity to use your electronic device(s) in the classroom and you notice someone else abusing the privilege, you may save yourself some difficulty by advising the individual to change his or her behavior
- Student Engagement: There will be a great deal of interaction and class/group activity in this course. For that reason, students are expected to be engaged in, and focused on, the classroom discussion and/or activities. Students may be randomly asked questions during class. In addition, everyone involved with this class is expected to act in a professional manner, and interact with her or his peers with that same professional demeanor
- Classwork Paper: As a result of some of the classroom activities, you may be turning in your activities on paper. Unless otherwise specified, the paper should be 8½ x 11 inch (or close to this measurement), and it may not have shredded edges such as occurs when paper is torn from a spiral notebook. Since shredded edges and smaller sized paper are difficult to manage, and may easily be lost, your quiz, activity, or other response may not be accepted if your paper does not meet these specifications.
- WebCampus: It is expected that you have access to WebCampus on the first day of class. In addition, you are expected to check on WebCampus for news or updates, your grades, emails, announcements, and so on every week day. It is a really good idea to check it once or twice on weekends as well.
- Engineering Computing Center (ECC): These facilities are available for your use since you are enrolled in this course. Your NetID will be used to log in to the ECC computers. Note that all programming assignments for this course must compile and run correctly on a Linux-booted computer in the ECC.
- Working with Others: Unless you are otherwise informed, you are to assume that all assigned homework or programming projects are your own, and no one other than the Instructor may view it. Discussing concepts or strategies is invited, but sharing code or homework with any other student (including on WebCampus), unless otherwise previously approved, will be considered a breach of integrity. See the Academic Integrity section below for a complete description and potential sanctions.
- Course/Policy Modification: The Instructor reserves the right to add to, and/or modify any of the above policies as needed to maintain an appropriate and effective educational atmosphere in the classroom and the laboratory. In the case that this occurs, all students will be notified in advance of implementation of the new and/or modified policy
UNR Athletics: If you are involved with any university-sponsored athletic activities that will have an impact on your attendance, you must provide your Instructor with a letter from your coach and/or the UNR Athletic Department as soon as possible, but no later than the end of the second week of classes. If possible, this must include the official schedule of your activities which will impact your attendance throughout the semester
- Illness: If you are sick or have a health-related reason for not attending class, it is in your best interest to find someone who attends the class and acquire class notes from her or him. In preparation for this situation, you would be wise to get the phone numbers of at least two other students in the class. You are invited to ask questions of the Instructor when you return to school, however there will not be enough time during office hours to go over previously delivered lectures or class discussions
- Any student with a disability needing academic adjustments or accommodations is requested to speak with the Disability Resource Center (Pennington Student Achievement Center, Suite 230) as soon as possible to arrange for appropriate accommodations.
- Cheating, plagiarism or otherwise obtaining grades under false pretenses constitute academic dishonesty according to the code of this university. Academic dishonesty will not be tolerated and penalties can include filing a final grade of “F”; reducing the student’s final course grade one or two full grade points; awarding a failing mark on the coursework in question; or requiring the student to retake or resubmit the coursework. For more details, see the University of Nevada, Reno General Catalog.
Audio and Video Recording:
- Surreptitious or covert video-taping of class or unauthorized audio recording of class is prohibited by law and by Board of Regents policy. This class may be videotaped or audio recorded only with the written permission of the instructor. In order to accommodate students with disabilities, some students may be given permission to record class lectures and discussions. Therefore, students should understand that their comments during class may be recorded.
Academic Success Services:
- Your student fees cover usage of the Math Center (775) 784-4433, Tutoring Center (775) 784-6801, and University Writing Center (775) 784-6030. These centers support your classroom learning; it is your responsibility to take advantage of their services. Keep in mind that seeking help outside of class is the sign of a responsible and successful student.
Campus Safety (from the Campus Police Department):
- Make personal safety your number one priority. Awareness, Avoidance, and Risk Reduction is the best way not to be a victim.
- Travel in groups of two or more and always travel in well-lit, heavily traveled areas.
- Tell someone where you are going and when you will return.
- Carry a whistle or noise maker. This can serve as a reminder to exercise caution, and can alert someone in the area that you need help.
- Be alert! Look around you; be aware of who is on the street and in the area. Make it difficult for anyone to take you by surprise.
- If listening to music, keep the volume low so you can hear what is going on around you.
- If you know you are going to be working late, plan ahead as to how you will get to your vehicle or home safely.
- Use Campus Escort or University Police Cadets to get you to your vehicle safely. Campus Escort operates 7 days a week during academic semesters from 7:00 P.M. – 1:00 A.M and can be contacted at 742-6808. Police Services Cadets operate Monday through Thursday from 6:00 P.M. – 12:00 A.M. during academic semesters. Student cadets can be contacted at 745-5921 or 745-7505. When these services are not operating, contact the duty officer through regional dispatch at 334-COPS (2677) and request an escort.
Operating Systems are the ultimate evidence of human command of computing machinery. They can also demonstrate evidence that humans do not have complete command over computing machinery. The dynamic between these two conditions is what we will be studying. We will be looking at operating systems from several levels of abstraction, and you are expected to leave the course capable of understanding and discussing operating system components with other knowledgeable people. This can only happen if you engage in the learning and the materials aggressively and systematically. The topics are interesting and interested students can make them even more so.