程序代做CS代考 python data structure c/c++ Java file system GPU computer architecture concurrency algorithm Course Introduction

Course Introduction
CSci4061: Introduction to Operating Systems

September 7, 2021
Computer Science & Engineering, University of Minnesota
1

About COVID-19

Face-Coverings, Symptoms, and Vaccination
• The University of Minnesota currently requires all students, staff, and faculty to wear masks when indoors regardless of vaccination status.
• August 27, 2021, the U launched a vaccine requirement process for students
• See the Get the Vax 2.0 initiative (https://safe-campus.umn.edu/return-campus/get-the-vax)
• For COVID-19 excused absences, I will work with you to find the best course of action for missed work and/or class experiences.
2

Vaccination requirements
• FDA fully approved the Pfizer COVID-19 vaccine
• The U requires students to be vaccinated for COVID-19
• Students must complete this Student COVID-19 Immunization Vaccination
Form (https://umn.qualtrics.com/jfe/form/SV_0ARkX5YLQIScxPU) by
Oct. 8
• Exemptions may be requested for religious or medical reasons
Best defenses: Vaccination and masking
3

Other recommendations
• Stable seating: The University recommends that students try to sit in the same seat for every lecture. This will facilitate contact tracing in the event someone tests Covid-positive during the semester.
• Other than the lectures and labs, all interaction with the instructor and TAs (e.g., office hours, after-class discussions, etc.) will be online only (over Zoom). Please avoid milling around in groups before/after class.
• Coursework submission: To minimize potential virus transmission via surface contact, there will be no exchange of any paper materials during the semester. • All coursework (homework assignments and exams) will be submitted, graded,
and returned online only.
4

• While this set-up is far from ideal, every effort will be made to make the course as accessible, engaging, and useful as possible. Thanks for your understanding and cooperation
Let’s maintain a culture of safety to protect all members of our community
5

Teaching Staff

Instructor information
• , Assistant Professor
• Working on systems and security
• Experienced with OS kernels
• Office: 5-217
• Office hours: 10:30AM-12:00PM Tuesdays, or by appointment
• https://umn.zoom.us/j/94600277254 • May extend, depending on needs
• Meet at least once to have my feedback
• Email:
• Webpage: https://www-users.cs.umn.edu/~kjlu
6

Three TAs
• Wenlong Wang Labs 22 and 23
• OH: TBD
• Lab 21
• OH: 12:00-1:00pm Thursdays
• TBD, Lab 24
Each student has a primary TA based on your lab section
7

Why We Should Learn OS

The computing we need
Scenario: Alice is chatting with Bob on iMessage while watching YouTube videos. What is happening behind the scene?
8

The computing we need
Scenario: Alice is chatting with Bob on iMessage while watching YouTube videos. What is happening behind the scene?
• Receiving inputs
• Keyboard, camera, network
• Managing resources
• I/O, screen, CPU, DMA, GPU
• Processing data
• Displaying results, sending data over network • Storing data
• Concurrency control
• Many others
8

What if applications ran directly on hardware?
Any challenges?
9

What if applications ran directly on hardware?
Any challenges?
• How to manage this complexity?
• How to utilize various hardware resources (CPUs, memory, network, disk,
etc.)?
• Virtualization, persistence
• How to manage concurrency, non-determinism?
• Sharing, synchronization
• How to protect data and privacy?
• Access control, trusted computing
Therefore, we need an intermediate layer—Operating System.
9

What is an Operating System (OS)?
+——————+
| Alice | Bob | …| <- Root and regular users +------------------+ | App1 | app2 |... | <- Sharing, communication, etc. +------------------+ **| Operating System |** +------------------+ | Hardware devices | <- CPU, Memory, Disks, Devices, etc. +------------------+ 10 Roles of OS • Resource manager • Memory, I/O, devices, etc. • Service provider • System calls, sharing, communication, etc. • Property ensurer • Concurrency, security, etc. 11 Why you should care this course (challenging and coding- intensive) • OS is the foundation of computers • You get to understand how they work • You are learning general concepts and designs • Many other systems share similar design principles, from small IoT systems to large server systems • Help your develop applications better and more efficiently • Application performance is also controlled by the OS; potential perfromance penalty • More? A important question for you 12 Course Overview Course logistics • Section 20 • Tu/Th 4:00PM - 5:15PM • 105 • Course Web page • https://www-users.cs.umn.edu/~kjlu/teaching/csci4061-fall21 • Canvas page • https://canvas.umn.edu/courses/268630 • Discussion forum, submissions, etc. 13 Course objectives • Learn Operating-System concepts • Processes, file systems, virtual memory, synchronization, security, communication, etc. • A “Programmer’s view” of Operating Systems • Focus on external OS interfaces and services • Strong emphasis on systems programming • At the end of the course, you should be able to: • Understand OS concepts, structures, interfaces, utilities • Use several OS APIs, tools, and libraries • Develop better programs and systems • Reliable, efficient, secure 14 Out-of-scope objectives What you won’t be taught in this course: • C programming: You’ll have to pick it up yourself • OS internals: This would be covered in 5103 • Will cover a few important ones • Unix Tools: Some tools would be covered, but this is not a Unix tutorial course. • Hacking techniques - 4271W and 5271 are about security 15 Prerequisites CSCi 4061 is a rigorous course, programming intensive, and potentially challenging Prerequisites: • CSCI 2021 (Computer Architecture) or CSCI 3081 (C/C++ development) • C programming • Good understanding of computer organization and hardware concepts • Familiarity with Unix environment • Good understanding of data structures and algorithm fundamentals 16 Survey time • How many have taken CSCi 2021? • How many have taken CSCi 3081 (C/C++)? • How many are experienced C programmers? • More than 1000 lines of code, multiple modules, pointers, malloc • No C experience at all? 17 Textbooks • Required • “Unix Systems Programming” by Robbins & Robbins, Available electronically via UMN Libraries • “Operating Systems: Three Easy Pieces” by Remzi H. Arpaci-Dusseau and . Arpaci-Dusseau, Free textbook! • Optional • “Operating System Concepts”, 9th Ed. by Silberschatz et al. • Unix System Programming, by Haviland, Gray, and Salima. • Note the U has a backorder issue. If you don’t have a copy, please use a pdf version online 18 Class resources • Course web page • Syllabus • Schedule: dates, links, readings, etc. (it is tentative) • Forum: Canvas • Lecture video and slides • Projects • Discussion • Textbooks • Zoom links • Live streaming: https://umn.zoom.us/j/94757148230 • Office hours 19 Discussion forum • On Canvas class site (one for each lecture section) • You can post questions, clarifications, discuss ideas, course material • Try responding to each other as far as possible • Instructor, TAs will regularly monitor the forum • However: • No irrelevant, abusive posts • No posts that break the rules/spirit of honesty • Don’t ask for solutions or post parts of your solution 20 Coursework • Lectures • Readings from textbooks, lecture notes, and additional materials • May have in-class quizzes • 5 programming projects (40%) • Tobedoneinteamsof3 • Each project due in about 2-3 weeks • Schedules available on course page • Exams (50%) • 2 Mid-term Exams: In-class (15% each) • Final Exam: 2 hrs (20%) • Lab quizzes and exercises (10%): • In recitation section Mondays; exercise deadline: midnight Tuesdays • 1% each (quiz 0.3; exercise 0.7) • Check out the schedule page for details 21 Readings • Students are expected to read the listed chapters and articles before the lectures • Reading materials would be on the course web-page 22 Lectures and slides • Live streaming and recorded videos should be available • Will do our best • Lecture slides would be available within one day after the lecture • On Canvas files 23 Programming projects • You will be given a set of functional specifications • Implement a program to satisfy these specs • Programs must be written in C • Why C? - To better understand how the system works • C provides a closer interface to the OS compared to many other languages (like Java, Python, etc.) • C allows more control over program state and performance (e.g., pointers, memory management) • C has traditionally been used for systems programming and for building OSes (e.g., Unix/Linux) 24 Programming projects (contd.) • The programs should be well-documented • Provide full code, header files, makefiles, testfiles, README file Online submission by 11:59 pm on due date (via Canvas site) • One submission per team • Late submission policy: • 10% penalty for <24 hrs late • No submission allowed beyond that (0 point, strict) 25 Programming projects (contd.) • The code must be original • Not copied or derived from the Web, from past offerings, other students, programmer friend, . . . • No sharing of code across teams • Team members should work together • Do NOT upload your solutions to public repo like github • Ask questions and clarifications on class forum, from TAs or instructor • Grading: Points for • Functionality and correctness • Code readability and documentation • Read specifications very carefully! 26 Forming a team (Important! Do it early) • 3 students each team • If you are very experienced • Be willing to take on someone less experienced • If you are not very experienced . . . • Be willing to approach someone more experienced • By 09/16, submit the list of team members on Canvas • One submission per team 27 Recipe for programming projects • Start early! • “Unexpected” issues are common • First conceptually understand the project • Fail and fail again • Debug, debug, debug. . . • Success! 28 Exams (online, probably using Proctorio) • Mid-term exams take place in class time but online, covering taught periodical materials • Final exam would be comprehensive 2-hour exam, also online • Make sure to attend the exam in your lecture session; this is section 010 (the other one is different!) • Close book/note • Questions come from: Lectures (majority), readings, and lab sections • So you are expected to attend lectures and labs, and to read materials 29 Recitation, discussion, and lab sections • Must attend recitation in addition to lectures • Will try to also provide live streaming and videos • TAs would conduct the recitations • Discussion of course material • Quiz • Hands-on lab exercises • Submission required • Clarifications on projects 30 Lab exercises • Exercise to be done and submitted by midnight Tuesdays • Must be done individually - reflect your own effort understanding • Open resource/open collaboration • No late submission allowed • Grading: Each exercise 0.7 point • 0.7 if the student attended the lab and submitted the exercise; • 0.3 if the student submitted the exercise but did not attend lab; • Otherwise 0 even if the student attended the lab 31 Lab quizzes • Quiz (0.3 point each) • 3 questions • Scored as per the number of correct answers; • 0 if not attended • Can submit up to 10 quizzes and 10 exercises for a total of 10% of grade If you submit more than that, we will pick the highest 10 Attending the lab sections is important! 32 Grading policy • Absolute scale (not grading on a curve) • Grade minimum score: • A 92.00 • A- 89.00 • B+ 86.00 • B 83.00 • B- 79.00 • C+ 75.00 • C 70.00 • C- 65.00 • D+ 60.00 • D 50.00 • F <50.00 33 Regrading policy Any issues with grading must be resolved within ONE week from getting back the graded material • Send an email to your primary TA • For exams, cc me 34 Academic dishonesty • What does it include? • • • Can • • Copying assignments, cheating on exams, plagiarism Programming assignments: Code must be original (not copied or derived from the web, other teams or external sources) result in serious consequences: Can range from 0 on assignment to F in class or worse U requires report to Office of Student Affairs • Take this issue very seriously • All parties involved in cheating (helper and helpee) will be considered equally culpable • If unsure, just ask! 35 Disability statement • If you have, or think you have, a disability, please contact Disability Services • Please get a letter from DS for any special accommodation request on course work • We will try our best to make the required accommodations 36 Lecture sections • Separate sections • Different order of covered topics • Contents also vary • Do not seek or render unauthorized help from students or staff in the other section 37 To succeed in 4061 • Be motivated and interested to learn and code • Understand the fundamentals • Time management: Start early • Read materials before each lecture • Make sure to attend lectures, discussions, and office hours • Teamwork: Be able to work effectively with others 38 Topics covered in this course OS Basics • OS and Unix Overview • Programs • Processes • Threads and scheduling • Address Space • System I/O 39 Storage management • Files and Directories • File Systems 40 Memory management • Memory Hierarchy • Virtual Memory • Address Translation • Paging 41 Concurrency • Synchronization: Problems and Concepts • Synchronization Mechanisms • Deadlocks 42 Communication • Inter-process communication (Local Communication) • Signals • Networking (Remote Communication) • Sockets 43 Protection • Access control • Isolation • Trust 44 Next lecture • OS and Unix Overview • Reading: . 1 45