1 CSC 452 – Principles of Operating Systems Summer 2021 Lecture: Tuesdays and Thursdays from 1:00–2:55pm Description of Course Modern computer software can run without specific knowledge of the underlying components of the physical machine. For instance, a program such as Microsoft Word can run on computers with varying amounts of RAM and can print a document without needing to know the make and model of the target printer. Physical resources such as memory and peripheral hardware are managed by the computer’s Operating System software. This course examines the abstractions that an Operating System provides to user-level software, and how to most efficiently allocate resources between competing programs. Specifically, we will examine how to share and manage the CPU, memory, persistent storage, I/O devices, and communications. Description from the course catalog: Concepts of modern operating systems; concurrent processes; process synchronization and communication; resource allocation; kernels; deadlock; memory management; file systems Course Prerequisites or Co-requisites Successful completion of CSC 252 – Computer Organization, CSC 345 – Analysis of Discrete Structures, and CSC 352 – Systems Programming & UNIX are required to enroll in CSC 452. If you have any questions about the prerequisite material for the course, please ask at the beginning of the term. Instructor and Contact Information Instructor: Jonathan Misurda Email: jmisurda@cs.arizona.edu Office Hours: Tuesday/Thursday: 11:00am to noon Wednesday: 1:00pm to 3:00pm https://arizona.zoom.us/j/248939301 Website: http://www.u.arizona.edu/~jmisurda Teaching Assistant Email Office Hours Yangzi Lu yangzilu@email.arizona.edu Mon, Fri 9:00AM – 10:30AM https://arizona.zoom.us/j/84060297499 CSC COVID 19 Policy: All Summer 2021 CSC courses, whether In-Person, In-Person Flex, or Live Online, will provide recorded lectures for students along with office hour accommodations via Zoom. Additionally, In-Person and In-Person Flex courses will accommodate students who cannot attend class to take midterm exams and attendance will not be factored into final grades. Course Format and Teaching Methods This class is scheduled to be taught in the LIVE ONLINE modality which means that you are expected to join via Zoom during the class times whenever possible. I will be doing my best to teach with an interactive lecture style. This means students are expected to ask and answer 2 questions during the class. ● Meeting Times: The class will meet Tuesdays and Thursdays from 1:00pm to 2:55pm via Zoom. Our synchronous meetings will give us the opportunity to cover new material, review previous material, and interact in a style that mimics to a reasonable level an in-person class. We will have opportunities to do activities, ask questions, and for me to ask you questions to engage with the material. ● Class attendance: ● If you feel sick, or may have been in contact with someone who is infectious, stay home. Except for seeking medical care, avoid contact with others and do not travel. ● Campus Health is testing for COVID-19. Please call (520) 621-9202 before you visit in person. ● Visit the UArizona COVID-19 page for regular updates. Pandemic-Related Information for All Modalities ● Academic advising: If you have questions about your academic progress this semester, or your chosen degree program, consider contacting your department’s academic advisor(s). Your academic advisor and the Advising Resource Center can guide you toward university resources to help you succeed. Computer Science major students are encouraged to email advising@cs.arizona.edu for academic advising related questions. ● Life challenges: If you are experiencing unexpected barriers to your success in your courses, please note the Dean of Students Office is a central support resource for all students and may be helpful. The Dean of Students Office can be reached at 520-621-2057 or DOS- deanofstudents@email.arizona.edu. ● Physical and mental-health challenges: If you are facing physical or mental health challenges this semester, please note that Campus Health provides quality medical and mental health care. For medical appointments, call (520-621-9202. For After Hours care, call (520) 570-7898. For the Counseling & Psych Services (CAPS) 24/7 hotline, call (520) 621- 3334. ● Exams: Exams will be administered via D2L as “quizzes”. They will be available at normal class time and will be open for the length of the class (75 minutes for the midterm and two hours for the final.) If you are ill or otherwise unable to take the exams at the appointed time, let me know prior to the exam opening. Excused absences from the exam will be handled via a makeup exam that may vary in the questions or format from the original exam. ● Equipment and software requirements: For this class you will need daily access to the following hardware: laptop or web-enabled device with microphone; regular access to reliable internet signal; ability to download and run the following software: web browser and the QEMU and VirtualBox VM software (links and instructions to be provided). ● Class Recordings: ● Lectures are recorded and posted to D2L (and automatically to Panopto). If you do not wish to be identified by name in those recordings, please email me at the start of the term to discuss ways to avoid this. ● For lecture recordings, students must access content in D2L only. Students may not modify content or re-use content for any purpose other than personal educational reasons. All recordings are subject to government and university regulations. Therefore, students accessing unauthorized recordings or using them in a manner inconsistent with UArizona values and educational policies are subject to suspension or 3 civil action. Course Objectives This course is intended to introduce the fundamental concepts that modern operating systems use to manage the physical computer. Beyond the concepts introduced in lecture, course projects will take one such operating system, Linux, and examine source code. Students will be asked to implement additional features into the core of the operating system, known as the kernel. Expected Learning Outcomes By the end of the course, students will be able to: Explain the fundamental challenges of resource management Motivate and use various data structures and algorithms with which to solve those challenges Weigh the advantages and disadvantages of the different management schemes/algorithms Modify the Linux kernel and write userspace programs to demonstrate mastery of those techniques Absence and Class Participation Policy The UA’s policy concerning Class Attendance, Participation, and Administrative Drops is available at http://catalog.arizona.edu/policy/class-attendance-participation-and-administrative-drop The UA policy regarding absences for any sincerely held religious belief, observance or practice will be accommodated where reasonable: http://policy.arizona.edu/human-resources/religious- accommodation-policy. Absences preapproved by the UA Dean of Students (or dean’s designee) will be honored. See https://deanofstudents.arizona.edu/absences Course Communications Most announcements for the course will be posted to the D2L. This is where projects and related materials will be posted, as well as slides when we are done covering them in class. Urgent announcements will be made by announcements via D2L and/or emailing your university email account. D2L will hold the zoom link and password and be used to administer quizzes and exams. Required Textbook While we will not be doing assigned exercises from the chapters, you should have access to this textbook for supplementary readings throughout the term: A. Tanenbaum and H. Bos, Modern Operating Systems (4th Edition), Pearson, 2014. ISBN: 9780133591620 Old editions may have chapters that don’t line up, but the material is otherwise very similar. Assignments and Examinations Projects: There will be five out-of-class assignments given. These are to be completed in the given time (no extensions will be given without a valid excuse. LATE WORK IS NOT 4 ACCEPTED. Contact me before the deadline for clarifications.) These are meant to be your own work; anyone found to be collaborating will be disciplined in accordance to University policy. Cheating means (but is not limited to): using code from previous terms, other universities, your friends, finding it on the Internet, getting help from unapproved forums, or outsourcing it. We will be using Moss, a tool from Stanford to help catch unauthorized collaboration this term. Quizzes: There will be short quizzes to make sure you are keeping up with the class material. Exams: There will be a midterm and a final. Both will be given on D2L during class time. The exams will be closed book/notes/internet/other people. Final Examination The final exam is Tuesday, August 10, 2021, during the normal class meeting time on D2L Final Exam Regulations https://www.registrar.arizona.edu/courses/final-examination- regulations-and-information, Final Exam Schedule: http://www.registrar.arizona.edu/schedules/finals.htm Grading Scale and Policies University policy regarding grades and grading systems is available at http://catalog.arizona.edu/policy/grades-and-grading-system Your grade will be based upon 2 exams, 5 projects, and quizzes (the lowest one quiz will be dropped): Midterm Exam 20% Final Exam 20% Project 1 10% Project 2 10% Project 3 10% Project 4 10% Project 5 10% Quizzes 10% Total 100% Unexcused late submissions of projects are not accepted for a grade. An unexcused missed quiz will be the lowest one and dropped. Exams may only be made up with an excused absence and notification at least 24 hours in advance. Your grade will be computed from the points earned on the above coursework, there will not be any extra credit. The grading scale for the term is: >= 89.5 >= 79.5 >= 69.5 >= 59.5 < 59.5 A B C D E Requests for incomplete (I) or withdrawal (W) must be made in accordance with University policies, which are available at http://catalog.arizona.edu/policy/grades-and-grading- system#incomplete and http://catalog.arizona.edu/policy/grades-and-grading- system#Withdrawal, respectively. Dispute of Grade Policy: Disputes must be brought within one week of the grade being returned. 5 Scheduled Topics/Activities Week 1: 6/8/2021 – 6/10/2021 Readings for this week: Chapter 1 Topics: History of OS System Calls Week 2: 6/15/2021 – 6/17/2021 Readings for this week: Sections 2.1-2.2, 2.4 Topics: Processes and Threads Scheduling Week 3: 6/22/2021 – 6/24/2021 Readings for this week: Sections 2.3 and 2.5 Topics: Interprocess Communication Race conditions Synchronization Week 4: 6/29/2021 – 7/1/2021 Readings for this week: Chapter 6, Sections 3.1-3.2 Topics: Deadlocks Basic memory management Week 5: 7/6/2021 – 7/8/2021 Readings for this week: Section 3.3 Thursday, July 8, 2021 –Midterm Exam Topics: Virtual Memory Week 6: 7/13/2021 – 7/15/2021 Readings for this week: Section 3.3 (still) Topics: Virtual Memory (continued) Week 7: 7/20/2021 – 7/22/2021 Readings for this week: Sections 3.4-3.6 Topics: Page replacement Miscellaneous memory management topics 6 Week 8: 7/27/2021 – 7/29/2021 Readings for this week: Sections 5.1-5.6 Topics: I/O Devices Disks and Disk arm scheduling Week 9: 8/3/2021 – 8/5/2021 Readings for this week: Sections 4.1-4.2 Topics: Files and Directories File system implementation Week 10: 8/10/2021 Readings for this week: Review Tuesday, August 10, 2021 – Final Exam Topics: Review for the final exam Department of Computer Science Code of Conduct The Department of Computer Science is committed to providing and maintaining a supportive educational environment for all. We strive to be welcoming and inclusive, respect privacy and confidentiality, behave respectfully and courteously, and practice intellectual honesty. Disruptive behaviors (such as physical or emotional harassment, dismissive attitudes, and abuse of department resources) will not be tolerated. The complete Code of Conduct is available on our department web site. We expect that you will adhere to this code, as well as the UA Student Code of Conduct, while you are a member of this class. Classroom Behavior Policy To foster a positive learning environment, students and instructors have a shared responsibility. We want a safe, welcoming, and inclusive environment where all of us feel comfortable with each other and where we can challenge ourselves to succeed. To that end, our focus is on the tasks at hand and not on extraneous activities (e.g., texting, chatting, reading a newspaper, making phone calls, web surfing, etc.). Students are asked to refrain from disruptive conversations with people sitting around them during lecture. Students observed engaging in disruptive activity will be asked to cease this behavior. Those who continue to disrupt the class will be asked to leave lecture or discussion and may be reported to the Dean of Students. Threatening Behavior Policy The UA Threatening Behavior by Students Policy prohibits threats of physical harm to any member of the University community, including to oneself. See http://policy.arizona.edu/education-and-student-affairs/threatening-behavior-students. Accessibility and Accommodations The Disability Resources Offices provides guidelines regarding accessibility and accommodations: http://drc.arizona.edu/instructors/syllabus-statement. 7 Code of Academic Integrity Students are encouraged to share intellectual views and discuss freely the principles and applications of course materials. However, graded work/exercises must be the product of independent effort unless otherwise instructed. Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog. See http://deanofstudents.arizona.edu/academic-integrity/students/academic-integrity. Selling class notes and/or other course materials to other students or to a third party for resale is not permitted without the instructor’s express written consent. Violations to this and other course rules are subject to the Code of Academic Integrity and may result in course sanctions. Additionally, students who use D2L or UA e-mail to sell or buy these copyrighted materials are subject to Code of Conduct Violations for misuse of student e-mail addresses. This conduct may also constitute copyright infringement. UA Nondiscrimination and Anti-harassment Policy The University of Arizona is committed to creating and maintaining an environment free of discrimination. In support of this commitment, the University prohibits discrimination, including harassment and retaliation, based on a protected classification, including race, color, religion, sex, national origin, age, disability, veteran status, sexual orientation, gender identity, or genetic information. For more information, including how to report a concern, please see http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy Additional Resources for Students UA Academic policies and procedures are available at http://catalog.arizona.edu/policies Campus Health http://www.health.arizona.edu/ Campus Health provides quality medical and mental health care services through virtual and in-person care. Phone: 520-621-9202 Counseling and Psych Services (CAPS) https://health.arizona.edu/counseling-psych-services CAPS provides mental health care, including short-term counseling services. Phone: 520-621-3334 The Dean of Students Office’s Student Assistance Program http://deanofstudents.arizona.edu/student-assistance/students/student-assistance Student Assistance helps students manage crises, life traumas, and other barriers that impede success. The staff addresses the needs of students who experience issues related to social adjustment, academic challenges, psychological health, physical health, victimization, and relationship issues, through a variety of interventions, referrals, and follow up services. Email: DOS-deanofstudents@email.arizona.edu Phone: 520-621-7057 Survivor Advocacy Program https://survivoradvocacy.arizona.edu/ The Survivor Advocacy Program provides confidential support and advocacy services to student survivors of sexual and gender-based violence. The Program can also advise students about relevant non-UA resources available within the local community for support. Email: survivoradvocacy@email.arizona.edu Phone: 520-621-5767 Campus Pantry Any student who has difficulty affording groceries or accessing sufficient food to eat every day, 8 or who lacks a safe and stable place to live and believes this may affect their performance in the course, is urged to contact the Dean of Students for support. In addition, the University of Arizona Campus Pantry is open for students to receive supplemental groceries at no cost. Please see their website at: campuspantry.arizona.edu for open times. Furthermore, please notify me if you are comfortable in doing so. This will enable me to provide any resources that I may possess. Preferred Gender Pronoun This course affirms people of all gender expressions and gender identities. If you prefer to be called a different name than what is on the class roster, please let me know. Feel free to correct instructors on your preferred gender pronoun. If you have any questions or concerns, please do not hesitate to contact me directly in class or via email (instructor email). If you wish to change your preferred name or pronoun in the UAccess system, please use the following guidelines: Preferred name: University of Arizona students may choose to identify themselves within the University community using a preferred first name that differs from their official/legal name. A student’s preferred name will appear instead of the person’s official/legal first name in select University-related systems and documents, provided that the name is not being used for the purpose of misrepresentation. Students are able to update their preferred names in UAccess. Pronouns: Students may designate pronouns they use to identify themselves. Instructors and staff are encouraged to use pronouns for people that they use for themselves as a sign of respect and inclusion. Students are able to update and edit their pronouns in UAccess. More information on updating your preferred name and pronouns is available on the Office of the Registrar site at https://www.registrar.arizona.edu/. Confidentiality of Student Records http://www.registrar.arizona.edu/personal-information/family-educational-rights-and- privacy-act-1974-ferpa topic=ferpa Subject to Change Statement Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor. Land Acknowledgement Statement The University of Arizona sits on the original homelands of indigenous peoples who have stewarded this land since time immemorial. Aligning with the university’s core value of a diverse and inclusive community, it is an institutional responsibility to recognize and acknowledge the people, culture, and history that make up the Wildcat community. At the institutional level, it is important to be proactive in broadening awareness throughout campus to ensure our students feel represented and valued.