CS计算机代考程序代写 data structure algorithm c/c++ computer architecture Operating Systems CMPSC 473

Operating Systems CMPSC 473
Introduction and Overview
January 19, 2021 – Lecture 1 Instructor: Bhuvan Urgaonkar

• Bhuvan Urgaonkar
– Office hours: 1:30-3:30pm Thursdays – E-mail: bhuvan@cse.psu.edu
Welcome!
Instructor

Teaching Assistants
• Avimita Chatterjee
– Officehours:Tuesdays10am-noon
• Rubaba Hasan
– Officehours:Wednesdaysnoon-2pm
• Vijay Nadella
– Officehours:Tuesdays5pm–7pm
• Avik Mukherjee – Officehours:
• Ranjitha Ramesh
– Officehours:Wednesdays8am-10am
• Raj Kumar Pandey
– Officehours:Fridays4pm–6pm

Online resources and
text-book
• Course Web page:
– http://www.cse.psu.edu/~bhuvan/teaching/spring21/473.html
• Slides and projects will be posted on the course’s Canvas page
• Text-book
– “Operating Systems: Three Easy Pieces,” Remzi and Andrea Arpaci-Dusseau
– http://pages.cs.wisc.edu/~remzi/OSTEP/

Seeking help
• Preferred way: talk to me or the TAs – During/afterclass
– Officehours
– Seekadifferentmeetingtimeifofficehoursdon’twork – TrytofirstgethelpfromTAsbeforeemailingme
• Usepiazzafordiscussions,especiallyforclarificationsrelated to projects
– CheckyourPSUemailforinvitationtojointhepiazzapageforthis course
– ContacttheTAsifyoudon’treceivethisemailbyThursday

Grading
• http://www.cse.psu.edu/~buu1/teaching/spring21/grading.html
• Projects (4): 15+20+20+20 = 75%
• In-class mid-term exam: 10%
• Final exam: 15%
• General grading scale (changes a bit every semester and involves curving, will only know once all the grades are in):
– 90+:A
– 85+: A-
– 80+: B+
– 75+:B –…
– 50+:D – 50-:F

Projects
• Grades based on tests run by TAs on your submissions (and reports if any)
– Detailed grading template and test cases will be provided with each project
– TAs will use some “surprise” tests when grading
• Will use Github
• Late policy:
– Delay of 1 day allowed with a penalty of 20%
– InformTAswellinadvanceifthereisarealreason(medicalorotherpersonalemergency) for a delay in submission
• Projectswillbedoneingroupsof2
– OK to change groups across projects
– OKtoworkonyourownifthatiswhatyouprefer

Practice problems, in-class quizzes
• Will help you test your understanding on a continual basis • Willhelpyouprepareforexams

Computing resources
• Departmental Linux machines – Make sure VPN, 2FA works
• E-mail TAs if you don’t have an account or have any doubts/problems
• All labs will be graded on dept machines

Academic honesty
• Do all your work on your own
– Please do not copy, lift code off the Web, etc.
• Please do not use rentacoder.com etc.
• We will use software to compare project source codes
– You are expected to know everything about each project
– If in doubt, talk to me
– Warning: MANY students caught cheating last semester, disciplinary actions taken

Assumed background
• First course on algorithms and data structures
• Programmingexperience
– Comfortable programming in C/C++
– Comfortable with a debugger like gdb, creating/linking against libraries, using make, using a repo (we will use gitlab), shell scripting and utilities
• Preliminaryunderstandingofcomputerarchitecture – We will cover some basics in this course
• Talktomeifyouhavedoubts

Today’s Agenda
• Scope and goals of this course
• Begin discussing CPU virtualization
• Some reading tasks for you – OS history
– Nomenclature/convention for version names, kernel vs. OS distros

How This Course Fits in the Penn State CSE Curriculum
• CMPSC 311: Systems Programming
– How to use the operating system interface
• CMPSC 331/431: Computer Architecture – How CPU and memory are designed
– Familiarity with an ISA
• CMPSC 473: Operating Systems
– How an operating system is designed

A Canonical Computer

Recall: Programmer’s View
• Recall these interfaces from CMPSC 311 and 331 • SystemISAasupersetofUserISA
• ABI=UserISA+systemcallinterface
• API = User ISA + HLL library calls

Recall: Compilation steps

Recall: Von-Neumann Computer
• ACPUthatfetches,decodes,executesinstructions from a memory that holds both instructions and data

Recall: ISA
• The set of instructions the CPU offers (and a few other things)
– Interface provided by CPU to software
• Examples
– Load (from memory to register) – Store (from register to memory) – Jump
– ALU instructions (add, sub)
– Halt (the computer)
– IO instructions, and many more

Recall: Instructions Involving Registers and Memory
• Generic examples
– Load Reg, @MemAdd – Store Reg, @MemAdd
– Add Reg1, Reg2, Reg3