程序代做CS代考 python data structure c/c++ Java file system GPU computer architecture concurrency algorithm Course Introduction – cscodehelp代写
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