Lecture 1: Course Overviewcseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture1.pdf · Recap: Role...
Transcript of Lecture 1: Course Overviewcseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture1.pdf · Recap: Role...
Lecture1:CourseOverviewCSE120:PrinciplesofOpera;ngSystems
UCSanDiego:SummerSessionI,2009FrankUyeda
GoalsforToday
• Introduc;ontocourse:– Personnel,policiesandadministra;on
• Providehigh‐leveloverviewofcoursematerial– Specificgoals
• Defineanopera;ngsystem– Iden;fyitsrole
• Iden;fythehardwaremechanismsavailabletotheOpera;ngSystem
• Note:someslidecontentandimagesareadaptedfromAlvinAuYoung,GeoffVoelker,AlexSnoeren(UCSanDiego)andAnthonyJoseph(UCBerkeley)
Lecture1:Courseoverview
WhoamI?
• PhDcandidateinCSEdepartment– UCSDundergrad(Warrencollege)andUCSDgraduatestudent
– WorkingwithProfessorGeorgeVarghese&AminVahdatinSystemsandNetworkinggroup
– Conductresearchandpublishpapersinarea
• Iamfascinatedbythistopic,andwouldliketosharemyexcitementforitwithyou.
Lecture1:Courseoverview
BasicInforma;on
• Instructor:FrankUyeda– E‐mail:[email protected]– OfficeHours:Tues2‐4p,CSE2126
• Orbyappointment
• TA:MatusTelgarsky– E‐mail:[email protected]– OfficeHours:Wed?
• Mee;ng;mes:– Lecture:MWF,4p‐5:50p,Center201– Discussion:Thursday@??– FinalExam:Saturday,August1,3pm
Lecture1:Courseoverview
DiscussionSec;on
• Survey:Whenwouldyouliketohavediscussionsec;on?– Thursday11a–12p– Thursday12p–1p– Thursday1p–2p
Lecture1:Courseoverview
PurposeofthisCourse
• Goalistohelpyouunderstandstructureanddesignofmodernopera;ngsystems:– Lecturesandreadingstodis;llinforma;on– Homeworksetsandprogrammingprojectstoreinforceideas
• Attheendofthecourseyoushouldbeableto:– Iden;fycommondesignchallengesforanOS– Understandtradi;onalmechanismsandpoliciesusedtoaddressthesechallenges
– Hypothesizehowchangesintechnologywillimpactexis;ngOSmechanismsorpolicies
Lecture1:Courseoverview
Prerequisites
• Courses– CSE100(DataStructures),CSE101(Algorithms)required
– CSE141(notrequiredbutuseful)• Programming– Java‐basedprojects.CSE100shouldbeadequate.
• Hoursperweek– Studentsaveraged12hours/weekinregularterm(CAPEevalua;ons)
– ≈24hours/weekinsummer?
Lecture1:Courseoverview
Homework
• Purpose– Reinforceconceptsthroughprac;ce(therearechallengingconceptsinthisclass)
• Threehomeworkassignments– AssignmentsdueonMonday’satthebeginningofclass.
– Nolateassignments– Collabora;onencouraged,butmustbecompletedindividually
– Allanswersmustbelegible–ifwecan’treadit,youdon’tgetcredit.
Lecture1:Courseoverview
PeerWise
• Submitpoten;altestques;onsandanswers.• Readandrateques;onssubmikedbyothers.• hkp://peerwise.cs.auckland.ac.nz/
• Assignment:– Submit1ques;onandreview10others.– DueeveryTuesdayandThursday@11:59pm.
• Iwillshowsomeofthebest/worstques;onsinclass.• Atleastoneques;onsubmikedthroughPeerWisewillshowupontheFinal!
Lecture1:Courseoverview
Projects
• Purpose– Hands‐onexperience:implemen;ngismuchtrickierthandiscussingconcepts.
• Nachos– Instruc;onal‐basedOpera;ngSystemdevelopedatUCBerkeley(TomAnderson),runningonmachinesimulator
– You’llexpandNachosin3projectcomponents.– Significantpor;onofcourse(very;meconsuming)– Nolateassignmentsaccepted(3slipdaysallowed)
Lecture1:Courseoverview
Projects(2)
• Roughoutline:– Project1:Concurrencyandsynchroniza;on– Project2:Mul;programming– Project3:VirtualMemory
• Groups– Projectsmaybedoneonyourownorwithapartner.– Youwillhavethesamepartnerforthewholecourse.
– Pleaseiden;fyyourpartnerearlyandno;fymeviaemail.
Lecture1:Courseoverview
Exams
• Midterm– Date:Wednesday,7/17/09,4p‐5:20p
– Loca;on:Center201
• Final– Date:Saturday,8/01/08,3p‐6p– Loca;on:Center201
• Make‐uppolicy– Onlyunderextreme,university‐approvedcircumstances
Lecture1:Courseoverview
ClassResources
• ClassWebpage– hkp://www.cs.ucsd.edu/classes/su09/cse120– announcementsandscheduleupdates
• Messageboard– hkp://webct.ucsd.edu– Forumtodiscussissuerelatedtotheprojects.
• Textbooks– (Required)Silberschatz,GalvinandGagne,Opera&ngSystemsConcepts,7thedi;on,WileyandSons• Bookstorecurrentlycarriesthe8thedi;on(thisisfine,too).
– (Op;onal)Tanenbaum,ModernOpera&ngSystems,3rdedi;on,Pren;ceHall
Lecture1:Courseoverview
ClassResources(2)
• Labs– YoushouldhaveaccesstoaLinuxaccountandlabmachinesinbasementofEBU3B
• Youarefreetoworkfromhome– NachosworksonEclipse/Windows– WewillgradeonLinuxmachines,somakesurecoderunsonlabmachinesaswell
Lecture1:Courseoverview
Grading
• Homeworkassignments(15%)• PeerWisepar;cipa;on(5%)• Programmingprojects(30%)• Midtermexam(20%)• Finalexam(30%)
• Gradeswillassignedonastraightscale:– A:>90;B:>80;C:>70;etc…– +’sand–’sgivenatthediscre;onofinstructor
Lecture1:Courseoverview
CommonCSE120Pitalls
• Don’tspend;meonthehomework– It’sonly15%ofmygrade
– Conceptsmayseemeasy,butactuallyrequiresignificantprac;cetofullyunderstand
– Masteryofconceptscomeinhandyforprojectsandexams
• Putofftheproject– I’vegotbe=erthingstodo,ormypartnerwilldoit– Hardlyanybodyfinishesthemearly–tes;ngalonewillrequiresignificant;me
– Project‐relatedques;onsmayendupontheexam
Lecture1:Courseoverview
CommonCSE120Pitalls(2)
• Don’taskques;ons– Idon’twanttolookstupid– MatusandIareheretohelp– Chancesaremanyotherpeoplehavethesameques;on
– Puungoffques;onswilljustcreatemoreques;ons
Lecture1:Courseoverview
ModernComputerSystems
Lecture1:Courseoverview
Telema;cssystems
Cellphonesandhandhelddevices
Gamingconsoles
Sensornodes
Routers
ComputerOrganiza;on
Lecture1:Courseoverview
CPUVideo
controllerUSB
controllerDisk
controller
Memory
MonitorScanner
Keyboard
Printer
Diskdrive
WhatistheOpera;ngSystem?
Systembus
WhatisanOpera;ngSystem?
Lecture1:Courseoverview
Applica;ons
Opera;ngSystems
Hardware
)
VM
TheOSis“allthecodeyoudidn’thavetowrite”toimplementyourapplica;ons.
WhatisanOpera;ngSystem?
Lecture1:Courseoverview
Applica;ons
Opera;ngSystems
Hardware
Games(CSE125)Compilers(CSE130,131)Databases(CSE132A,B)WebApps(CSE134A,B)…
PrinciplesofOpera5ngSystems(CSE120)AdvancedOpera;ngSystems(CSE121))
Architecture(CSE141/L)DigitalSystems(CSE140/L)
TheOSis“theprogramthatisalwaysrunning”.
WhyStudyOpera;ngSystems?
• Understandwhatyouuse– Whichopera;ngsystemisrightforme?– MycomputerisslowandI’mnotsurewhy!– AmIprotectedagainstworms,viruses,andothersecurityvulnerabili;es?
• Learnthepastbeforeyoucreatethefuture– Pervasiveabstrac;ons(e.g.,threadsandsynchroniza;on)– Evolu;onofOSeshavefollowedadvancesintechnology
• Developexperiencedevelopingcomplexsystem– Largesystemwithmanymovingparts(HW,SW)– Manydesigngoals(efficiency,flexibility,security,…)
Lecture1:Courseoverview
CourseContent
• RoleofanOpera;ngSystem• ConcurrencyandSynchroniza;on
– Whatarethechallengestosupportmul;tasking?• CPUScheduling
– WhogetstheCPUandwhendotheygetit?• MemoryManagement
– Howdoprogramssharefinitememory?• FileSystemsandStorageManagement
– Howisdatastoredandwhathappenswhenthingsfail?• Selec;onofSpecialTopics(;mepermiung)
– Security,VirtualMachineMonitors,…..
Lecture1:Courseoverview
Midterm
RoleofanOpera;ngSystem
Lecture1:Courseoverview
Applica;ons
Opera;ngSystems
Hardware
)
VM
Provideabstrac;onstoeaseapplica;ondevelopment
RoleofanOpera;ngSystem
Lecture1:Courseoverview
Applica;ons
Hardware
VM
Provideabstrac;onstoeaseapplica;ondevelopment
1.Userinputdata
2.CPUcomputesnextframe
3.Renderimageonmonitor
• Anapplica;onneedstobeabletotalktoeachdevice:– Whatifaresourceisbusy/fails?– Whatifthehardwarechanges?
• Everyapplica;onwillbeextremelycomplex– Redundant,error‐pronecode– Notportable(hardwarelimita;ons)
RoleofanOpera;ngSystem
Lecture1:Courseoverview
Applica;ons
Opera;ngSystems
Hardware
)
VM
Managesresourceaccessamongapplica;ons
• OSschedulesresourceaccess– Significantperformanceimpact– Flexiblesharingpolicies
• OScanprovideprotec;onmechanisms– Privacy(filepermissions)– Flexiblepolicies(groups)
• OScanprovidecoordina;onmechanisms– Communica;on(pipes,cut+paste)– Synchroniza;on(monitors,
semaphores)
Recap:RoleofanOpera;ngSystem
• Provideabstrac;ons• Manageresources• Asaresult:
– Hardtoproperlydefineboundaries– OSesbecomingincreasinglycomplex
Breakfor5Minutes
• WhatbelongsintheOpera;ngSystemvs.Applica;ons?– Getuserinputfromperipheraldevice
• OS–centralmanagementfordevicedriversandcommoninterfaceexposedtouserprograms
– Setthesystem;me/date• OS‐allotherprograms/userssharethisvalue.
– Renderawebpage• Dependswhoyouask!
Lecture1:Courseoverview
WhatIsn’tanOpera;ngSystem?
• UnitedStatesvMicrosoz(2000)– MicrosozbundledIEwithWindows– USDOJbringsan;‐trustcaseagainstMicrosoz
• Outcome– Basicques;on:isbrowserpartoftheOS?– CSacademicstes;fied“no”– Seklement
• MicrosozmustshareAPIwiththird‐partycompanies
Difficulttodefineboundaries
RoleofanOpera;ngSystem
0.00
10.00
20.00
30.00
40.00
50.00
60.00
WindowsNT3.1
WindowsNT3.5
WindowsNT3.51
WindowsNT4.0
Windows2000 WindowsXP WindowsServer
WindowsVistaBeta
1993 1994 1995 1996 1999 2001 2003 2006
Source:LarryO’Brien,knowing.net(2008)
SLOC(m
illions)
OSesbecomingincreasinglycomplex
RoleofanOpera;ngSystem
0.00
10.00
20.00
30.00
40.00
50.00
60.00
70.00
80.00
90.00
100.00
WindowsNT3.1
WindowsNT3.5
WindowsNT3.51
WindowsNT4.0
Windows2000
RedHatLinux6.2
Debian2.2WindowsXP
RedHatLinux7.1
WindowsServer
MacOSX WindowsVistaBeta
1993 1994 1995 1996 1999 2000 2000 2001 2001 2003 2005 2006
Sources: debian‐coun;ng,escet.urjc.es(2002),SteveJobsWWDCkeynote(2006)
SLOC(m
illions)
OSesbecomingincreasinglycomplex
HardwareSupport
• Whydoweneedtodiscusshardware?– KeygoaloftheOSistoprovideresourcesharing.– WithgoodOSdesign,applica;onscanbeoblivioustoHWdetails(abstrac;on).
– TheOSstandsbetweentheHWandtheapplica;ons,soitmustconsidertherequirementsofboth.
HardwareSupport
• Earlyprocessorsofferedlikleinthewayofprotec;on– Aprocesscouldaccessanymemoryloca;on– Aprocesscouldaccessanyhardwaredevice– Couldimplementprotec;oninsozware,butreallyslow…
• HardwarefeaturesevolvetomeetneedsofOS– Ex.TLB,Testandsetinstruc;on,Noexecutebit
TypesofHardwareSupport
• Protec;on– OSwantstocontrolhardwareaccess– OSwantstokeeppar;culardata(registers,memory)privateandisolated
• Eventhandling– OSneedstobeawareofexternalevents– OSneedsawaytorespondtoexternalevents
• Performanceimprovements– Commonlyusedthreadsynchroniza;onprimi;ves
– Memoryaccess/Diskaccessspeed‐ups
Laterinthecourse
Protec;on
• Hardwarefeatures– Protec;onlevels,privilegedinstruc;ons(CPU)– VirtualMemory(MMU)
• Whatdoweneedtoprotect?– Directaccesstopar;culardevices,suchasstoragedevices,orinput/outputperipherals.(why?)
– Memorystate,suchaspagetableentries,TLBentries– Specialopera;ons,suchaschangingprotec;onlevel,interrupthandling,hal;ngthemachine
Markpar;cularinstruc;onsasprivileged
Suppor;ngPrivilegedInstruc;ons
• Hardware(CPU)offersprotec;onlevels– Processorsactuallyprovidemanylevels:x86architecture
supportsatleastfourmodes(“rings”)– Linuxandmostopera;ngsystemsusetwomodes:userand
kernelmode
• HowdoesanOSorCPUuseprotec;onlevels?– ThereisaspecialregisterontheCPUindica;ngthemode– CPUchecksmodebitwhenexecu;ngprivilegedinstruc;ons
– Userprogramsexecuteinusermode– OSexecutesinkernelmode
• Fornow,thinkofthekernelasequivalenttoanOS
UserandKernelMode
• Privilegedinstruc;onscanonlybeexecutedwhileinkernelmode– Whichinstruc;onsareprivileged?
• Examplesofprivilegedinstruc;ons:– Manipula;ngmemorystate,directaccesstoHW
• Examplesofnon‐privilegedinstruc;ons– Anythingthatcan’tbotherotherprograms/apps/processes
• Whydon’twejustmakeeveryinstruc;onprivileged?
UnixOrganiza;on
UserMode
KernelMode
Hardware
Applica;ons
StandardLibs
Example:MemoryProtec;on
• Remember:OSmustprotectprogramsfromeachotherandprotectitselffromprograms
• We’vetalkedabouttheCPU,butwhataboutMemory?– Containsalotofprogramstate– MemoryManagementUnit(MMU)providesprotec;on
• Baseandlimitregisters,segments,pagetables,TLB,VirtualMemory
• Manipula;onofthesestructuresareprotected
– Thepar;cularsofthesestructureswillmakemoresensewhenwetalkaboutmemorymanagement
Events
• Aneventisanunnaturalchangeincontrolflow– Eventscanstoporchangecurrentexecu;onpath– Eventscanchangemachinestate(protec;onlevel,registers,etc…)
• Kerneldefinesahandlerforeacheventtype– Eventhandlersruninkernelmode– Eventsaretheonlyentryintothekernel
Events
• Twotypesofevents– Interrupts:causedbyexternalevent– Excep;ons:causedbyaninstruc;on
• Eventscanbe:– Unexpected– Deliberate
Lecture1:Courseoverview
Unexpected Deliberate
Excep5on(sync) Fault Syscalltrap
Interrupt(async) Interrupt SozwareInterrupt
Interrupts
• AsignalissenttotheOSonaphysicalwire(Interrupt‐requestline)
• Hardwareinterrupts– Generallytheseeventsareasynchronous– e.g.,Networkpacketarrival,DMAcomple;on
• Hardware/SozwareTimers– Specialtypeofevent– AllowOStoregaincontrol(why?)
HandlingInterrupts
• Polling– Kernelbusy‐waitsforsignal
• Note:textbookusesslightlydifferentdefini;onanddis;nguishesitcompletelyfromIRQ
– Canbeinefficientdependingonfrequency
• InterruptHandler– Interruptcausesprocessortotrapintokernel– Kernelinvokesappropriateinterrupthandler– Interrupthandlersavesprocessstate,processesinterrupt,restoresstateandreturns
IssueswithInterrupts
• Whatifaninterruptoccurswhileinaninterrupthandler?– Canmaskinterrupts(seeNachos)– Interruptpriority(supportdifferentpolicies)
• Whatcangowrong?– Faultydriver
• Ininterruptchaining,OSquerieseachdriver’sinterrupthandler• Falseposi;vecancreatefloodofinterrupts
– Badstate(LiveLock)• Receiverlive‐lock:toomanypacketscreatetoomuchoverhead,noprogresscanbemade
– Possiblesolu;ons• Disableinterrupts• Pollingmode
Excep;ons
• Traps– Systemcallorexecu;onofaprivilegedinstruc;on– Note:textbookcallsthisa“sozwareinterrupt”
• Faults– e.g.,Pagefaults,segmenta;onfault,dividebyzero
– SimilartoJavaExcep;onhandling– Notneededforcorrectness,butaperformanceop;miza;on
SystemCalls
• Applica;oninvokesasystemcalltoexecuteaprivilegedopera;on– Raisesanexcep;on,whichinvokeskernelhandler– Passesparameterstohandler
• PredefinedSystemCallcode,anyotherarguments…
– Kernelhandlerdoestherest• savescallercontext(state)• callspropersystemcallrou;ne• restorescalledstateandreturns
SystemCallexample:read()1.Userapp:read(file_reference,buffer_addr,n_bytes)
Userspace
Kernelspace
n_bytes
buffer_addr
file_reference
Userstack 2.Pushargumentsontostack
3.CallLibraryprocedureforread()readsyscallcode
inregister
4.Traptokernel
5.KernelHandler 6.readsyscallhandler
7.returntocaller
8.Returnfromread()call
SystemCalls(2)
• Howdoesthekernelreturnparameterstousermode?– Whatisfile_referenceinread()syscall?
• Ifit’sthefilename,thenkernelhastoresolvefilenameandlocatefileeach;me
– Whatifkerneljustpasses“address”or“pointer”tothefile?• Userwouldbereferencingakernelobject(bad)
– Unixsolu;on:filedescriptors• Anobjecthandleuniquetoaprocess(literallyaninteger)• Essen;allyacapabilitytousearesource
Excep;ons
• Traps– Systemcallorexecu;onofaprivilegedinstruc;on– Note:textbookcallsthisa“sozwareinterrupt”
• Faults– e.g.,Pagefaults,segmenta;onfault,dividebyzero
– SimilartoJavaExcep;onhandling– Notneededforcorrectness,butaperformanceop;miza;on
Faults
• SomefaultsarefixedsilentlybytheOS– Processresumeswithoutknowledgeoffault– Faulthandlerhandlesinstruc;onresump;on
• Otherfaultsneedtobehandledbyapplica;on– Insteadofreturningcontrolfromthefaul;nginstruc;on,OSfaulthandlerreturnscontroltoauser‐levelhandler
– Applica;onsregisteruser‐levelhandlerswithOS• Unixsignals• WindowsNTAsynchronousProcedureCalls
Faults(2)
• Fatalfaults– FaultsthatarenothandledbyOSoruserapplica;on
• corefilescontainprocessstateforcrashedcprograms
– ThistypeoffaultwithinthekernelresultsinanOScrash(WindowsBSOD,Unixkernelpanic)
NextTime
• ReadChapters1and2(thislecture),3,13.1‐13.5(next)
• Startthinkingaboutprojectgroups.– UseWebCTdiscussionboardtofindpartners.
• HomeworkandProjectwillbepostedtomorrow.• FirstPeerWiseques;on&reviewsdueonThursday.
• CheckWebsiteforcourseannouncements– hkp://www.cs.ucsd.edu/classes/su09/cse120
Lecture1:Courseoverview