The document provides an overview of operating systems including definitions, key components, and a brief history. It discusses how an OS acts as an interface between the user and computer hardware by managing resources and coordinating system and application programs. Early operating systems like batch processing systems allowed one job to run at a time by loading programs into memory via cards. Modern OSes allow concurrent execution of multiple processes and include components for process, memory, file and I/O management.
Download as DOC, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
139 views
CMPS 431 OS Course Notes
The document provides an overview of operating systems including definitions, key components, and a brief history. It discusses how an OS acts as an interface between the user and computer hardware by managing resources and coordinating system and application programs. Early operating systems like batch processing systems allowed one job to run at a time by loading programs into memory via cards. Modern OSes allow concurrent execution of multiple processes and include components for process, memory, file and I/O management.
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 49
1.
0 CMPS 431 (Operating Systems) Course Notes
1. Overview of Operating Systems a. Wat is an OS ! "t is a #ontro$ program tat provi%es an interfa#e &etween te #omputer ar%ware an% te user. Part of tis interfa#e in#$u%es too$s an% servi#es for te user. 'rom Si$&ers#at( (page 3)) *+n operating system is a program tat a#ts as an interme%iary &etween a user of #omputer an% #omputer ar%ware. ,e purpose of te OS is provi%e an environment in wi# te user #an e-e#ute programs. ,e primary goa$ of an OS is tus to ma.e te #omputer #onvenient to use. + se#on%ary goa$ is to use te #omputer ar%ware in an effi#ient manner./ Computer Hardware ! CP01 memory1 "2O %evi#es provi%e &asi# #omputing resour#es. System and Application Programs ! Compi$ers1 %ata&ase systems1 games1 &usiness programs1 et#. %efine te ways te #omputing resour#es are use% to so$ve te users pro&$ems. Operating System ! Contro$s an% #oor%inates te #omputing resour#es among te system an% app$i#ation programs for te users. 1 End User ! 3iews te #omputer system as a set of app$i#ations. ,e 4n% 0ser is genera$$y not #on#erne% wit various %etai$s of te ar%ware. Programmer ! 0ses $anguages1 uti$ities (fre5uent$y use% fun#tions) an% OS servi#es ($in.ers1 assem&$ers1 et#.) to %eve$op app$i#ations instea%. ,is meto% is use% to re%u#e #omp$e-ity &y a&stra#ting te %etai$ of ma#ine %epen%ant #a$$s into +P"s an% various uti$ities an% OS servi#es. OS Mas.s te ar%ware %etai$s from te programmer an% provi%es an interfa#e to te system. Manages te #omputers resour#es. ,e OS %esigner as to &e fami$iar wit user re5uirements an% ar%ware %etai$s. &. OS attri&utes i. Convenien#e ! ma.e te #omputer easy to use ii. 4ffi#ien#y ! manage #omputer resour#es in an effi#ient manner iii. +&i$ity to 4vo$ve ! +n OS sou$% &e a&$e to integrate new system fun#tions an% a%%itions2mo%ifi#ations witout interfering wit servi#e or over &ur%ening users. #. OS #an &e tougt of as) i. Contro$ Program an% 6esour#e +$$o#ator ! ,e OS is a program1 $i.e oter programs in te system. 7i.e oter programs1 it ma%e of instru#tions1 &ut its instru#tions serve te purpose to a$$o#ate resour#es (CP01 memory1 %is. storage1 i2o) so tat oter programs #an operate. ,o %o tis it must stop itse$f from running an% $et oter programs run. Wen te oter program8s turn to run is over1 te OS runs $ong enoug to prepare te resour#es for te ne-t pro#ess to run1 an% so on. 9 ii. 0ser to Computer "nterfa#e ! Provi%es an frien%$y environment from wi# user #an a##omp$is teir goa$s. %. OS from te viewpoint tat it is 0ser2Computer "nterfa#e ! ,e OS a#ts as an interme%iary &etween te 0sers2Programmers an% te ar%ware1 ma.ing it easier for users1 programmers1 an% app$i#ations to a##ess te OS8s fa#i$ities1 servi#es (fa#i$ities #an &e tougt of as te system8s resour#es1 servi#es are te meto%s tat te OS provi%es to use te fa#i$ities). Servi#es are typi#a$$y provi%e% in te fo$$owing areas) i. Program :eve$opment ! e%itors1 %e&uggers1 #ompi$ers1 et#. ii. Program 4-e#ution ! $oa%ers1 $in.ers1 system prote#tion. iii. +##ess to "2O %evi#es ! Provi%es a uniform interfa#e1 usua$$y simp$e rea%s an% writes1 tat i%es te %etai$s of i2o %evi#e operation. iv. 'i$e a##ess an% prote#tion ! Must &e a&$e to manage storage %evi#es1 a##ess %ata in fi$e1 an% provi%es a##ess #ontro$ to fi$es. v. 4rror %ete#tion ! Must &e a&$e to gra#efu$$y an%$e various errors1 su# as memory a##ess vio$ations1 %ivi%e &y (ero1 %evi#e errors1 et#. vi. System 7ogging ! $og important system events for system tuning1 error #orre#tion an%2or &i$$ing information. e. ;rief istory (Wi.ipe%ia) i. ,e first #omputers %i% not ave an OS &ut programs for managing te system an% using te ar%ware 5ui#.$y appeare%. ii. ;y te ear$y 1<=0s1 #ommer#ia$ #omputer ven%ors1 su# as 0N"3+C an% Contro$ :ata Corporation1 were supp$ying 5uite e-tensive too$s for stream$ining te %eve$opment1 s#e%u$ing1 an% e-e#ution of >o&s on &at# pro#essing systems. iii. "n te 1<=0s ";M System23=0 OS 3=0 was %eve$ope% to run on a wo$e $ine of #omputers. "t was a first1 an OS for severa$ %ifferent ma#ines in ";M8s pro%u#t $ine. 'eatures in#$u%e%) 1. ?ar% %is. storage %eve$opment. 9. ,ime saring environment. ,ime saring provi%e% users te i$$usion of aving te wo$e ma#ine to temse$ves. iv. Mu$ti#s was anoter we$$ .nown OS tat use% te time saring #on#epts. "t inspire% severa$ OS8s in#$u%ing 0ni- an% 3MS. v. ,e first mi#ro#omputers (pre%e#essors to PCs) %i% not re5uire2use most of te a%van#e% features use% for mainframes an% mini #omputers. vi. CP2M (Contro$ Program2Monitor) was #reate% &y :igita$8s @ary Ai$%a$$ for "nte$ B0B02B0BC an% Di$og DB0 pro#essors in a&out 1<E4. "t is te pre%e#essor for ";M8s PC :OS an% MS :OS. :OS8s ma>or #ontri&ution was its '+, fi$e system. vii. "n te 1<B08s :OS %ominate% te "nte$ &ase% PC8s wi$e te Ma#intos operating system1 patterne% after F46OF #orporations ear$y win%ow &ase% %o#ument e%iting operating systems1 provi%e% #ompetition on te +pp$e p$atform. f. Computer System Stru#tures ! + mo%ern #omputer #onsists of) 3 i. CP0 ! Centra$ Pro#essing 0nit. "s responsi&$e for e-e#ution of aritmeti#1 $ogi#a$1 %ata transfer1 an% #ontro$ operations. ii. :evi#e Contro$$ers 1. %is. %rive #ontro$$er 9. au%io %evi#e #ontro$$er 3. vi%eo #ontro$$er 4. et#. iii. System ;us ! Serves as a #ommuni#ation #anne$ &etween te various system #omponents. iv. Memory ! Storage of instru#tions an% %ata for system an% user pro#esses. ,e CP0 an% %evi#e #ontro$$ers #an run #on#urrent$y. + memory #ontro$$er syn#roni(es te CP08s an% %evi#e #ontro$$er8s a##ess to memory.
0pon power up) o ;ootstrap program initia$i(es a$$ system aspe#ts. CP0 6egisters :evi#e Contro$$ers Memory Contents o 7oa%s OS an% starts its e-e#ution. 7o#ates OS in storage (%is.). 4 7oa%s OS .erne$ (&asi# OS fun#tions) ;egins OS fun#tion (init1 or monitor) Storage :evi#es) o Main Memory ! re$ative$y sma$$ in si(e (39. to 4gig)1 re$ative$y fast a##ess spee%1 ran%om a##ess1 vo$ati$e. ,e on$y $arge storage area tat te CP0 #an %ire#t$y a##ess. ,e oter memory areas tat te CP0 #an a##ess are) 6egisters (typi#a$$y 9C= &ytes) rea$$y fast Ca#e (=4. ! 9C=.) fast o :is. ! 7arge in si(e1 me%ium a##ess spee%1 ran%om a##ess1 nonG vo$ati$e 4$e#troni# %is. Magneti# %is. Opti#a$ %rive o Magneti# ,ape ! 6ea$$y 7arge1 $ow spee%1 se5uentia$ a##ess1 nonG vo$ati$e g. Operating System Components (Capter 31 Si$&ers#at() ! Main #omponents are pro#ess1 memory1 fi$e1 "2O system1 an% se#on%ary storage management. i. Pro#ess Management responsi&i$ities. 1. Creation an% :e$etion of user an% system pro#esses. 9. Suspension an% resumption of pro#esses. 3. Provision of me#anisms for pro#ess syn#roni(ation. 4. Provision of me#anisms for pro#ess #ommuni#ation. C. Provision of me#anisms for %ea%$o#. an%$ing. ii. Main Memory Management responsi&i$ities 1. Aeep tra#. of wi# parts of memory are &eing use% an% &y wat pro#esses. 9. :e#i%e wi# pro#esses are to &e $oa%e% into memory wen memory spa#e &e#omes avai$a&$e. 3. +$$o#ate an% %eGa$$o#ate memory as nee%e%. iii. 'i$e Management responsi&i$ities 1. Creation an% %e$etion of fi$es. 9. Creation an% %e$etion of %ire#tories. 3. ,e support of primitives for manipu$ating fi$es an% %ire#tories. 4. Mapping of fi$es onto se#on%ary storage. C. ;a#.up of fi$es onto sta&$e storage me%ia. iv. "2O System Management ! i%es te pe#u$iarities of spe#ifi# ar%ware %evi#es from te user. ,e su&Gsystem (in 0N"F) #onsists of) 1. Memory management #omponent in#$u%ing &uffering1 #a#ing an% spoo$ing (spooling refers to putting >o&s in a &uffer1 a spe#ia$ area in memory1 or on a %is. were a %evi#e #an a##ess tem wen it is rea%y. Spool is an a#ronym for simultaneous peripheral operations on-line. 4ar$y mainframe #omputers a% re$ative$y sma$$ an% e-pensive (&y #urrent stan%ar%s) ar% C %is.s. ,ese #osts ma%e it ne#essary to reserve te %is.s for fi$es tat required ran%om a##ess1 wi$e writing $arge se5uentia$ fi$es to ree$s of tape. ,ypi#a$ programs wou$% run for ours an% pro%u#e un%re%s or tousan%s of pages of printe% output. Perio%i#a$$y te program wou$% stop printing for a wi$e to %o a $engty sear# or sort. ;ut it was %esira&$e to .eep te printer(s) running #ontinuous$y. ,us wen a program was running1 it wou$% write te printa&$e fi$e to a spool of tape1 wi# wou$% $ater &e rea% &a#. in &y te program #ontro$$ing te printer. Wi.ipe%ia.org) 9. + genera$ %evi#e %river interfa#e. 3. :rivers for spe#ifi# ar%ware %evi#es. On$y te %evi#e %river .nows te operation spe#ifi#s of te %evi#e to wi# it is assigne%. v. Se#on%ary Storage Management 1. 'reeGspa#e management. 9. Storage a$$o#ation 3. :is. s#e%u$ing . 'irst Operating Systems i. Simp$e ;at# (One Ho& at a time) 1. ;at# refers to an ear$y type of pro#essing in wi# te user wou$% su&mit a >o& (program1 %ata1 an% #ontro$ information a&out te nature of te >o& (usua$$y on #ar%s)) to an operator. a. ,e operator wou$% group te >o&s into $i.e *&at#es/ (for e-amp$e1 a$$ 'O6,6+N programs may &e groupe% = togeter1 saving $oa% time for te #ompi$er) an% put tem into te #ar% rea%er. &. + program #a$$e% a *monitor/ signa$s te #ar% rea%er to rea% a >o&. On#e te >o& is $oa%e%1 te monitor an%s e-e#ution over to te >o&. Wen >o& #omp$etes1 te monitor ta.es over an% pro#ess repeats. i. + monitor tat a$ways is in main memory is #a$$e% a *resi%ent monitor/. #. ,e output wou$% &e spoo$e% to a printer. "f te program fai$e%1 error messages from te #ompi$er or a memory %ump wou$% &e#ome te output. 9. + %efinitive feature of ;at# Pro#essing is te $a#. of intera#tion &etween te user an% program wi$e te program is e-e#uting. 3. Ho&s are usua$$y run one at a time1 first #ome first serve. 4. ,e $anguage tat instru#ts te monitor on te parti#u$ars ($anguage1 tape mounting1 et#) is #a$$e% Ho& Contro$ 7anguage (HC7). C. ,e %e$ay &etween >o& su&mission an% #omp$etion is #a$$e% turnaround time. =. ;e#ause te CP0 is or%ers of magnitu%e faster tan te #ar% rea%ers an% printers1 tere is $ots of CP0 i%$e time. E. ,wo e-e#ution mo%es are often use% to ai% in system prote#tion) a. 0ser mo%e) ,e app$i#ation program run in tis mo%e. "t as a##ess to a su&set of te systems #omman%s an% memory spa#e. Certain areas of memory (te area in wi# te monitor resi%es) are off $imits. &. Aerne$ mo%e) Sometimes #a$$e% privi$ege% mo%e. ,e monitor as a##ess to a$$ instru#tions an% memory areas of te system. ii. Mu$tiGprogramme% &at# ! Simi$ar to simp$e &at# e-#ept tat te #omputer e-e#utes >o&s from a poo$ of >o&s tat ave &een $oa%e% into te memory. ,e a%vantage is tat CP0 i%$e time is re%u#e%1 an% "2O %evi#es %o not sit i%$e. 1. Ho&s are $oa%e% #ontinua$$y from #ar%s into te >o& poo$ (in memory). 9. ,e OS se$e#ts a >o& to &e run. 3. Wen te >o& as to wait for some tas. (su# as a tape to &e mounte% or an "2O operation (#ar% rea%1 or print resu$t) te CP0 swit#es e-e#ution to anoter >o& from te >o& poo$. 4. Wen tat >o& as to wait1 te CP0 is swit#e% to anoter >o& an% so on. Wen ea# >o& finises its waiting time1 it eventua$$y gets te CP0 &a#.. "n tis way CP0 i%$e time is re%u#e%. C. ,is s#eme intro%u#es two new #on#epts) E a. Memory management &. CP0 s#e%u$ing iii. ,imesaring (Mu$tiGtas.ing) ! Mainframe #omputers use% time saring to give users1 $o#ate% at remote termina$s1 (sometimes #a$$e% *%um& termina$s/) te i$$usion tat ea# user a% te #omputer to temse$ves. 1. "ntro%u#es user2#omputer intera#tion. 9. "ntera#tion e$ps in) a. 'in%ing #ompi$er time errors. &. 'i$e e%iting. #. :e&ugging #o%e wi$e it is running. %. 4-e#ution of mu$tiGstep >o&s in wi# $ater >o&s %epen% on resu$ts of ear$ier >o&s. 3. Mu$tip$e >o&s are e-e#ute% &y te CP0 swit#ing &etween tem (a swit# from one >o& to anoter is referre% to as *#onte-t swit#/)1 &ut te swit#es o##ur so fre5uent$y tat te users may intera#t wit te programs as tey run. CP0 is *time mu$tip$e-e% &etween te users/. 4. 6e5uires) a. 0ser a##essi&$e onG$ine fi$e system. &. :ire#tory system #. CP0 s#e%u$ing %. Mu$tiprogramming. C. Common$y uses) a. 3irtua$ memory (a te#ni5ue tat a$$ows e-e#ution of a >o& tat may not &e #omp$ete$y in memory). 9. ;a#.groun% an% ;asi#s a. Computer System review i. +r#ite#ture (Sta$$ings1 page <) 1. Pro#essor ! Carries out te operation of te #omputer. ,e pro#essor #onsists of at $east one +ritmeti# 7ogi# 0nit (+70) an% severa$ registers. ,e registers are use% for a%%ressing1 #omparisons1 aritmeti# operations et#. 9. Main Memory ! Stores %ata an% programs. Main memory is usua$$y vo$ati$e (wen power is sut %own1 #ontents are $ost). 3. "2O Mo%u$es ! Moves %ata &etween system an% e-terna$ environment (se#on%ary memory %evi#es G %is.s1 termina$s1 et#) 4. System &us ! Provi%es #ommuni#ation among system #omponents. B :efinitions (e-presse% using C notation) PC ! Program Counter1 #ontains te a%%ress of te ne-t instru#tion to &e fet#e% from memory. "6 ! "nstru#tion 6egister1 #ontains te instru#tion most re#ent$y fet#e%. M+6 ImemoryJ&uffer 2K +%%ress of &uffer $o#ation for ne-t rea% or write. K2 M;6 (ImemoryJ&uffer) /* Contains %ata to &e written or re#eive% from memory. */ "2O +6 ! :enotes "2O %evi#e "2O ;6 ! +%%ress in "2O &uffer of %ata to &e move% ii. "nstru#tion #y#$e 1. + program is a $ist of instru#tions. 9. ,o e-e#ute a program te instru#tions are e-e#ute% se5uentia$$y (usua$$y) from start to en%. 3. ,e instru#tion e-e#ution pro#ess as two steps. a. 'et# stage ! ,e instru#tion at te $o#ation pointe% to &y te PC is $oa%e% in te "6. &. 4-e#ute stage ! ,e instru#tion in te "6 is e-e#ute% &y te CP0. "n genera$1 tere are four #ategories of instru#tions) i. Pro#essor to Memory transfer ii. Pro#essor to "2O transfer iii. :ata Pro#essing ! +n aritmeti# or $ogi#a$ operation is performe% on %ata < iv. Contro$ ! ,e se5uen#e of e-e#ution is a$tere%. 'or e-amp$e a *>ump #omman%/. iii. Pro#ess Contro$ ;$o#. ! 4very program tat is e-e#uting as a Pro#ess Contro$ ;$o#. (PC;) asso#iate% wit it. ,e PC; is a &$o#. of %ata tat OS uses to .eep tra#. of te status of te running program. "t #ontains pro#ess state information1 e-e#ution s#e%u$ing %ata1 memory management information1 et#. 3. Pro#esses a. :efinition ! + #omputer program is a passive entity tat is store% in fi$e. Wen te program is &eing e-e#ute%1 it is #a$$e% a *pro#ess/. + pro#ess is more tan te #o%e &eing e-e#ute%L it a$so in#$u%es information su# as) i. ,e #urrent part of te program &eing e-e#ute%. ii. CP0 register %ata1 program sta#. %ata (temporary %ata use% &y te program in#$u%ing su&routine parameter1 return a%%resses an% temporary varia&$es) iii. + g$o&a$ %ata se#tion. &. Pro#ess States i. C state mo%e$ ew ! ,e pro#ess is &eing #reate%. PC; is &eing #reate% an% initia$i(e%. !unning ! "nstru#tions are &eing e-e#ute%. "aiting #$loc%ed& ! ,e pro#ess is waiting for some event to o##ur (su# as "2O #omp$etion or re#eiving a signa$). !eady ! ,e pro#ess is waiting for te CP0. 'erminated ! ,e pro#ess as finise% e-e#ution. 10 #. Pro#ess stru#ture ! ,e OS .eeps tra#. of ea# pro#ess &y maintaining a %ata stru#ture #a$$e% a Pro#ess Contro$ ;$o#. (PC;). i. PC; an% #omponents (typi#a$) (Sta$$ings1 page 111) 1. Pro#ess ": (P":) ! uni5ue i%entifier 9. Pro#ess State ! New1 running1 waiting1 rea%y1 or terminate%. 3. Priority ! Priority $eve$ in re$ation to oter pro#esses. 4. Program Counter (PC) ! +%%ress of te ne-t instru#tion to &e e-e#ute% in te pro#ess. C. Conte-t %ata ! Current register va$ues =. "2O status information ! Outstan%ing "2O re5uests1 "2O %evi#es1 open fi$es use% &y te pro#ess1 et#. E. +##ounting "nformation ! CP0 time1 e$apse% time1 run time $imit1 et#. B. Oter information #ommon$y in#$u%e%) a. Memory "nformation ! ;ase an% 7imit registers1 page ta&$e %ata. &. S#e%u$ing information ! Pointers to s#e%u$ing 5ueues. %. Operations on Pro#esses i. Creation 1. +ssign uni5ue P": 9. +$$o#ate memory for te pro#ess. Can use %efau$ts for te type of pro#ess1 or use spe#ifi# num&ers as re5ueste% &y te pro#ess. a. Co%e spa#e &. Sta#. spa#e 3. "nitia$i(e te PC; ! "nitia$i(e te PC; va$ues. 4. Put pro#ess in appropriate 5ueue ! Most new pro#esses are put into te new pro#ess 5ueue (or 6ea%y2Suspen%e% 5ueue). C. "nitia$i(e Pro#ess +##ounting Parameters ! 0p%ate system $og fi$es. ii. Pro#ess Spawning ! Creation of a pro#ess &y anoter pro#ess. 1. Parent ! Creating pro#ess. 9. Ci$% ! New$y #reate% pro#ess. "t wi$$ nee% resour#es (CP0 time1 memory1 fi$es1 "2O %evi#es). ,ey #ome from eiter te parent pro#ess or te OS. 3. 4-e#ution of parent an% #i$% #an ta.e severa$ forms) a. Con#urrent e-e#ution of parent an% #i$%. &. Parent waits unti$ some or a$$ of its #i$% pro#esses #omp$ete. 4. Nature of parent2#i$%) a. Ci$% pro#ess is #opy of parent. i. 0N"F for. #a$$ #an &e use%. Ci$% is i%enti#a$ e-#ept tat te return #o%e for te parent is 0 an% te return #o%e for te #i$% is non(ero. ii. 4-amp$e of 0ni- for.) 11 Pi% M for.()L "f (Pi% N 0) O Printf(*Ci$% pro#ess #reation fai$e%. Pn/)L Q e$se if (Pi% MM 0) O 2K :o parent operations. K2 Q e$se O 2K :o #i$% operations. K2 Q iii. :e$etion (,ermination) 1. Norma$ ,ermination G Pro#ess terminates wen $ast instru#tion is as #omp$ete%. + #a$$ to e-it() re5uests tat te OS %e$etes te pro#ess. 9. Parent #an terminate #i$% using a&ort #a$$ for te fo$$owing reasons) a. Ci$% e-#ee%e% use of its resour#es. &. Ci$%8s tas. is no $onger nee%e%. #. Parent is e-iting1 many OS8s %o not a$$ow #i$% pro#ess to #ontinue after parent terminates. e. ,rea%s ! Sometimes #a$$e% a *$igtweigt pro#ess/ or 7WP. "t as its own) i. Program Counter (PC) ii. 6egister set iii. Sta#. spa#e f. 7igtweigt pro#esses sares wit peer trea%s. i. Co%e se#tion ii. :ata se#tion iii. OS resour#e su# as open fi$es an% signa$s g. ,rea%s are use% wen trea%s wor. on re$ate% >o&s. "t #an &e more effi#ient to use mu$tip$e trea%s1 for e-amp$e provi%ing %ata to mu$tip$e remote ma#ines on a networ.. ?aving one pro#ess wit mu$tip$e trea%s1 ea# e-e#uting te same #o%e1 &ut aving %ifferent %ata an% fi$e se#tions is more effi#ient tan mu$tip$e eavy weigt pro#esses. 4. CP0 S#e%u$ing a. CP0 G "2O &urst #y#$e ! Pro#ess e-e#ution a$ternates &etween perio%s of CP0 use an% "2O waiting. ,ese pases are #a$$e% CP0 &urst an% "2O &urst. + pro#ess starts wit a CP0 &urst an% ten a$ternates &etween "2O &urst an% CP0 &urst unti$ #omp$etion wit a CP0 &urst1 a system re5uest for termination of te pro#ess. ,e amount of CP0 &urst an% "2O &urst vary great$y from pro#ess to pro#ess. Some e-amp$es are &e$ow. i. :ata&ase program ! "2O intense (%is.) ii. Simu$ation ! CP0 intense (#a$#u$ation of matemati#a$ mo%e$s) iii. Pi#ture 6en%ering ! CP0 intense iv. 4-#e$ ! "2O intense (most$y waits on user to enter %ata) v. @ames ! &ot CP0 intense (ren%ering of s#enes)1 an% "2O intense (%isp$ay of s#enes1 an% user inputs) 19 &. Conte-t Swit#ing G Canging of pro#ess states. ,e more #onte-t swit#ing1 te iger te overea%1 meaning $ess app$i#ation wor. is &eing a##omp$ise%. Conte-t swit#ing invo$ves) i. Saving te state of te running pro#ess in its PC;. ii. 7oa%ing a save% pro#ess. #. S#e%u$ing i. Sort ,erm ! Wen te CP0 &e#omes i%$e1 a >o& from te 6ea%y Rueue is se$e#te% to run. ,is is te >o& of te sort term s#e%u$er. 1. Operates very fre5uent$y. 9. Cou$% &e invo.e% at a rate of 10 times a se#on%. 3. ;e#ause it operates often it must &e fast. 4. :ispat#er. "t is te %ispat#er8s >o& to give #ontro$ of te CP0 to te mo%u$e se$e#te% &y te Sort ,erm S#e%u$er. :ispat#ing invo$ves) a. Swit#ing Conte-t. &. Swit#ing to user mo%e. #. Humping te proper $o#ation in te program (i%entifie% in te PC;) an% restarting te program. ii. 7ong ,erm ! "t is te >o& of te $ong term s#e%u$er to se$e#t >o&s from te >o& poo$ an% $oa% tem into memory for e-e#ution. "n genera$ te 7ong ,erm s#e%u$er wi$$ attempt to &a$an#e te system &etween CP0 an% "2O &oun% pro#esses to ma.e greatest use of avai$a&$e resour#es. 1. Operates $ess fre5uent$y. 9. Cou$% minutes &etween #a$$s. 3. ;e#ause it is #a$$e% infre5uent$y1 it #an ta.e time to %e#i%e wi# pro#esses sou$% &e se$e#te% for e-e#ution. 4. Some systems %on8t use 7ong ,erm s#e%u$ers1 or tey are very minima$. ,ime saring systems are a goo% e-amp$e. ,ey >ust put every new pro#ess into te 6ea%y Rueue. iii. Preemptive ! S#e%u$er %oes not wait for an "2O re5uest or an interrupt to move a >o& from te running 5ueue to te rea%y 5ueue. 1. ,ime Saring System ! 4a# pro#ess in te running 5ueue gets an a$$otment of CP0 #y#$es. "f te pro#ess %oes not terminate or ma.e an "2O re5uest &efore its a$$otment #omp$etes te s#e%u$er moves to anoter running pro#ess. %. S#e%u$ing Criteria ! :ifferent s#e%u$ing a$goritms try to optimi(e te fo$$owing #riteria to %ifferent %egrees) i. CP0 0ti$i(ation ! Aeep te CP0 as &usy as possi&$e. "n a rea$ system a $igt $oa% is a&out 40S1 eavy <0S. ii. ,rougput ! ,e num&er of pro#ess #omp$ete% per time unit. Can range anywere &etween more tan 10 pro#ess per se#on% to $ess tan 1 per our. iii. ,urnaroun% time ! ,is is a measure of ow $ong a pro#ess spen%s in te system. "t is te time from wen te pro#ess is su&mitte% to #omp$etion. 13 iv. Waiting time ! ,e s#e%u$ing a$goritm %oes not effe#t te amount of time spent e-e#uting or %oing "2OL it on$y affe#ts te time spent in te rea%y 5ueue. Waiting time is te sum of time perio%s waiting in te rea%y 5ueue. v. 6esponse time ! ,e amount of time tat from su&mission of te >o& to its first response to te user. @oo% response time is important in time saring systems. e. +$goritms i. 'irst Come 'irst Serve ! Pro#esses are serve% in te or%er tey are re#eive%. Can &e imp$emente% wit a '"'O 5ueue. 1. Waiting time is ig$y %epen%ent on or%er of >o&s an% #an &e $ong. 9. NonGPreemptive 3. CP0 intense >o&s #an #ause a$$ "2O &oun% >o&s to wait for tem to #omp$ete. +s "2O &oun% >o&s wait for "2O tey a$$ move from te waiting 5ueue to te rea%y 5ueue an% te CP0 intense >o& %ominates te CP0. ii. Sortest Ho& 'irst ! ,e >o& in te rea%y 5ueue wit te sortest ne-t CP0 &urst is se$e#te%. "f two >o&s ave e5ua$ ne-t CP0 &urst1 'C'S &rea.s te tie. 1. +$goritm is prova&$y optima$. "t gives te minimum waiting time for a set of pro#esses. 14 9. ,e ma>or %raw&a#. is .nowing wat te $engt of te ne-t CP0 &urst for ea# pro#ess wi$$ &e. a. No pra#ti#a$ way to .now its va$ue. &. 3a$ue #an &e pre%i#te%L #ou$% &e simi$ar in $engt to previous &ursts. 3. SH' #an &e preemptive or nonGpreemptive. 1C iii. Priority S#e%u$ing ! "nstea% of $oo.ing at te or%er in wi# >o&s arrive an%2or teir estimate% CP0 &ursts1 >o&s run in or%er of importan#e (priority). 1. Ho&s of e5ua$ priority are s#e%u$e% 'C'S 9. SH' is a spe#ia$ #ase of priority s#e%u$ing1 in wi# te priority is te inverse of te estimate% CP0 &urst. 3. Priority s#e%u$ing #an &e preemptive or nonGpreemptive. 4. Suffers from in%efinite &$o#.ing or starvation. + $ow priority >o& #an &e #ause% to wait in%efinite$y &y iger priority >o&s. a. 'rom Si$&ers#at( page 134 *6umor as it tat 1 wen tey sut %own te ";M E0<4 at M", in 1<E31 tey foun% a $owGpriority pro#ess tat a% &een su&mitte% in 1<=E an% not yet &een run./ &. *+ging/ is a pro#ess in wi# te priority of pro#esses tat ave &een waiting for a $ong time is in#rease%. iv. 6oun% 6o&in ! 'C'S a$goritm in wi# ea# pro#ess in te rea%y 5ueue is preempte% after a sort time (time 5uantum). 1. ,e rea%y 5ueue is treate% as a #ir#u$ar 5ueue. 9. ,e s#e%u$er goes aroun% te rea%y 5ueue a$$o#ating te CP0 ea# pro#ess for a ma-imum of 1 time 5uantum. 3. +verage waiting time #an &e $ong. 4. 0se% in time saring systems were response time is important (nee%s to &e sort). f. +ssignment 1 ! Program a s#e%u$er1 imp$ement 'C'S1 SH'1 an% 6oun% 6o&in (:ue in 3 wee.s). C. Rui( 1 6eview ! 6eview of se#tions 1 troug 4 (Wee. 4) =. Rui( 1 E. Pro#ess Syn#roni(ation G Wat meto%s are avai$a&$e for #oor%inating #ooperating pro#esses tat sare resour#es1 su# as memory1 so tat tey e-e#ute #orre#t$y every timeT 1= a. "nstru#tions from te pro#esses are inter$eave% in an unpre%i#ta&$e way. &. Criti#a$ Se#tion Pro&$em ! + region of #o%e in wi# a pro#ess may &e #anging #ommon varia&$es1 &uffers1 et#. Wi$e te pro#ess is in its #riti#a$ se#tion no oter pro#ess #an &e in teir #orrespon%ing #riti#a$ se#tion. (Mutua$ e-#$usion). 1E "n te #o%e i$$ustration a&ove a #onte-t swit# from te pro%u#er to te #onsumer is e-e#ute% wi$e te pro%u#er is e-e#uting te #ount in#rement instru#tion. +s a resu$t an item is $ost (te pro%u#er wi$$ write over it) &e#ause te #ount varia&$e is %e#remente% an% in#remente% witout any a#tion %ata transfer a#tions o##urring. #. So$utions #enter aroun% te fo$$owing strategies) i. "n#rement2:e#rement operations are atomi# (#annot &e &ro.en %own into a series of instru#tions) ii. Prote#t te in#rement an% %e#rement #a$$s in #riti#a$ se#tions. 1. Software so$ution (@enera$ #riti#a$ se#tion so$ution) 9. ?ar%ware so$ution (,est an% set1 semapores1 et#.) %. ,o so$ve te #riti#a$ se#tion pro&$em1 te fo$$owing re5uirements must &e satisfie%) i. Mutua$ 4-#$usion ! "f pro#ess p(i) is e-e#uting its #riti#a$ se#tion1 ten no oter pro#esses #an &e e-e#uting teir #riti#a$ se#tions. ii. Progress ! "f te #riti#a$ se#tions are va#ant an% a pro#ess wises to enter1 ten on$y pro#esses tat wis to enter a #riti#a$ se#tion #an parti#ipate in te %e#ision a&out wi# pro#ess enters ne-t1 an% tis pro#ess #annot ta.e an in%efinite amount of time. iii. ;oun%e% Waiting ! ,ere is a $imit on te num&er of times tat a pro#ess #an &e as.e% to %efer entry into its #riti#a$ se#tion in favor of oters. e. ,wo Pro#ess So$utions 1B i. Stru#ture of so$ution) 6epeat Entry into critical section Criti#a$ se#tion . . . E(it )rom critical section 0nti$ %one ii. +$goritm 1 Pro#ess P(i) Entry* wi$e(turn UM i) O :o notingL Q . . . E(it* turn M (1Gi) turn M O01 1Q1 initia$$y 0 P0 P1 turn 4nters Waits 0 4-it Wait 0 to 1 wait 4nter 1 Wait e-it 1 to 0 "f P0 uses its turn ten (upon e-it1 turn is set to 1) an% ten P1 %oes not enter its #riti#a$ se#tion (it never sets turn &a#. to 0) ten if P0 wants to enter its #riti#a$ se#tion1 it wi$$ wait forever (or at $east unti$ P1 resets turn &a#. to 0). So tis a$goritm vio$ates &oun%e% waiting. iii. +$goritm 9 Pro#ess P(i) Entry* f$agViW M ,604L Wi$e(f$agV1 ! iW) O :o notingL Q . . . E(it* f$agViW M '+7S4L 1< "n tis a$goritm te pro#ess sets its f$ag in%i#ating tat it is entering its #riti#a$ se#tion an% ten waits for te oter pro#ess to $eave its #riti#a$ se#tion. "f &ot pro#esses it te f$agViW M ,604 statement at te same time %ea%$o#. o##urs. ;ot pro#esses wi$$ wait on ea# oter forever in te wi$e $oop. iv. +$goritm 3 Pro#ess P(i) Entry* f$agViW M ,604L ,urn M 1GiL Wi$e(f$agViG1W II (turn M 1 ! i)) O :o notingL Q . . . E(it* f$agViW M '+7S4L "n tis a$goritm te pro#ess in%i#ates tat it %esires to enter te #riti#a$ region1 &ut %efers to te oter pro#ess. "f &ot pro#ess it te entry point at te same time1 te $ast pro#ess to %efer to te oter pro#ess waits. +s soon tat pro#ess #$ears its #riti#a$ se#tion it resets its f$ag a$$owing te oter pro#ess to enter its #riti#a$ se#tion. P0 P1 1 '$agV0W M ,604 9 '$agV1W M ,604 3 ,urn M 1 4 ,urn M 0 C Wi$e M '+7S4 C Wi$e M ,604 v. ;a.ery +$goritm ! ,e mu$tip$e pro#ess version of a$goritm 3 is #a$$e% te ;a.ery +$goritm. f. Syn#roni(ation ?ar%ware ! ?ar%ware provision #an ma.e #riti#a$ se#tion so$utions easier. One option is to %isa$$ow interrupts wi$e a pro#ess in a #riti#a$ se#tion. "nterrupt %isa&$ing is not a goo% so$ution for mu$tiGpro#essor ma#ines &e#ause it ta.es time to %isa&$e1 an% to pass te message to oter pro#essors to %isa&$e. +noter %isa%vantage is tat some system #$o#.s are .ept up%ate% &y interrupts. i. ,est an% Set G ,e test an% set operation is a ma#ine instru#tion in te CP08s instru#tion set1 meaning tat it operates atomi#a$$y (as one unG interrupti&$e unit) . "t8s fun#tion is to pro&e retrieve te #ontents of a varia&$e1 return it va$ue1 an% at te same time set its va$ue to ,604L 90 ,est+n%Set(-) O temp M -L - M ,604L return tempL Q Entry* wi$e(,est+n%Set(-)) O :o notingL Q . . . E(it* - M '+7S4L "f - is '+7S4 it is set to ,604 an% we fa$$ out of te $oop1 e-e#ute te #riti#a$ se#tion1 an% up e-it1 reset it to '+7S4. "f - is ,6041 we it set it to ,604 an% wait in te $oop unti$ anoter pro#ess sets - to '+7S4L ii. Swap. iii. ?omewor. pro&$em ! %efine te swap() fun#tion. 4-p$ain ow it wor.s. Compare an% #ontrast it to te ,est+n%Set() fun#tion. g. Semapores i. ,e previous so$utions are not easy to genera$i(e to mu$tip$e pro#ess so$utions. Semapores are a too$ to e$p wit tis. ii. + semapore1 s1 is an integer varia&$e. "n or%er to use semapores1 two atomi# operations are %efine%) 1. Wait(s) M P(s) M test 9. Signa$(s) M 3(s) M in#rement 3. ,ey are sometimes referre% to as P(s) an% 3(s) for te :ut# wor%s proberen (wait)1 an% verhogen (signa$). wait(S) O wi$e(SNM 0) O %o notingL Q S M SG1L Q 91 signa$(S) O S M SX1L Q 4. ;ot operations must &e atomi#1 tat is on$y one pro#ess #an mo%ify te semapore va$ue at any given time. C. Stru#ture of te so$ution is as &efore) 2K mute- is initia$i(e% to 1 K2 repeat O wait(mute-)L #riti#a$ se#tion signa$(mute-) unti$ fa$seL =. Consi%er two pro#esses using semapores to syn#roni(e teir operations. ,o %o so tey wi$$ sare a #ommon varia&$e1 synch. a. ,is time1 initia$i(e syn# to 0. P1() O . . . S1L signa$(syn#)L . . Q P9() O . . . wait(syn#)L S9L . . Q 99 &. Statements $o#ate% after te wait() statement in P9 wi$$ on$y &e e-e#ute% after te signa$() in P11 meaning a$$ statements &efore te signa$() statement in P1 wi$$ e-e#ute &efore a$$ statements after te wait() statement in P9. #. "mp$ementation :etai$s) i. ,e ear$ier so$utions a$ong wit te semapore so$ution re$y on busy waiting. ;usy waiting is wen te pro#ess $oops #ontinuous$y in te #riti#a$ se#tion entry #o%e. 1. 6eferre% to sometimes as a spinG$o#.. 9. "n a sing$e CP0 system tat is mu$tiG programme%1 spinG$o#.s #an eat va$ua&$e CP0 s$i#es. 3. ;e#ause tey re5uire no #onte-t swit# spinG$o#.s #an &e goo%1 as $ong as te time in tem is sort. 4. ,e #ure) a. 6e%efine te wait statement to use &$o#.ing instea% of &usy waiting. i. ;$o#.ing means tat te pro#ess puts itse$f into te wait 5ueue wen te wait() is en#ountere%. ii. Wen a signa$() #a$$ is ma%e1 &$o#.e% pro#esses are restarte% &y a wa.eup() operation tat puts tem into te rea%y 5ueue. On#e tey are in te run 5ueue tey #e#. teir semapore. "f it is Y 0 ten tey pass te wait() #a$$ is e-ite%1 oterwise tey return temse$ves to te wait 5ueue. iii. So &usy waiting (te wasting of CP0 #y#$es) is $arge$y e$iminate%1 &ut not #omp$ete$y. "t %oes so at te e-pense of rea#tion time to te signa$. 93 . :ea%$o#.s an% Starvation i. Wen two or more pro#esses are waiting in%efinite$y for a signa$ tat #an on$y &e sent &y one of te waiting pro#esses te pro#esses are sai% to &e *%ea%$o#.e%/. See te e-amp$e &e$ow) 2K "nitia$i(e te semapores to 1. K2 S M 1L R M 1L P0 P1 Wait(S)L wait(R)L Wait(R)L Wait(S)L . . . . . . signa$(S)L signa$(R)L signa$(R)L signa$(S)L ,e first series of waits %e#rements te semapores1 S an% R1 to 0 an% fa$$s out of te wait #a$$s. ,e ne-t set puts &ot pro#esses P0 an% P1 into te wait 5ueue1 resu$ting in a %ea%$o#. &e#ause te on$y way to get out is to in#rement te S an% R semapores an% te in#rement #a$$ is in te pro#esses tat are &eing &$o#.e%. ii. Note) :ea%$o#.s #an &e #ause% &y many oter #on%itions1 su# as pro#esses #ompeting for resour#es1 et#. More %is#ussion on tat $ater. i. C$assi# Syn#roni(ation Pro&$ems i. ;oun%e% &uffer ! ,ere is a #ommon &uffer tat is &eing use% to store pro%u#e% items tat are to &e #onsume%. ,e semapores fun#tion to .eep it from overf$owing1 or from &eing a##esse% wen it is empty1 an% to ma.e sure tat on$y one pro#ess a##ess te &uffer at a time. 2K :e#$arations. K2 &uffer is a pie#e of memory of si(e n. mute-1 empty1 an% fu$$ are semapores. 2K "nitia$i(e varia&$es. K2 mute- M 1L 2K Provi%es mutua$ e-#$usion wen a##essing &uffer. K2 empty M nL 2K Counts te num&er of empty s$ots in te &uffer. K2 fu$$ M 0L 2K Counts te num&er of fu$$ s$ots in te &uffer. K2 94 Pro%u#erPro#ess() O repeat Z pro%u#e an itemL Z wait(empty)L wait(mute-)L Z a%% item to &ufferL Z signa$(mute-)L signa$(fu$$)L unti$(fa$se)L Q ConsumerPro#ess() O repeat wait(fu$$)L wait(mute-)L Z remove item from &ufferL Z signa$(mute-)L signa$(empty)L Z #onsume item from &ufferL Z unti$(fa$se)L Q ii. 6ea%ers2Writers Wen %ata is to &e sare% &y severa$ pro#esses1 it is o.ay for many to rea% it at on#e1 &ut on$y one pro#ess may #ange te o&>e#t at on#e. Wen te writing pro#ess is up%ating te pro#ess1 on$y it #an a##ess it1 no oter rea%ers or writers are permitte% a##ess. 2K :e#$arations. K2 mute-1 wrt are semaporesL rea%#ount is integerL 2K "nitia$i(ations. K2 mute- M 1L 2K 4nsures mutua$ e-#$usion wen rea%#ount is up%ate%. K2 wrt M 1L 2K 4nsures mutua$ e-#$usion for te writing pro#esses. K2 rea%#ount M 0L 2K ,ra#.s te num&er of pro#esses rea%ing te %ata. K2 9C WriterPro#ess() O wait(wrt)L Z 2K Writing is performe%. K2 Z signa$(wrt)L Q 6ea%erPro#ess() O wait(mute-)L rea%#ount M rea%#ount X 1L if (rea%#ount MM 1) ten wait(wrt)L 2K Prote#ts o&>e#t from &eing #ange% wi$e it is &eing rea%. K2 signa$(mute-)L Z 2K 6ea%ing is performe%. K2 Z wait(mute-)L rea%#ount M rea%#ount !1L if (rea%#ount MM 0) ten signa$(wrt)L 2K Signa$s writers tat a$$ rea%ing is #omp$ete%. K2 signa$(mute-)L Q 9= iii. :ining Pi$osopers ! ,is is a #$assi# pro&$em in wi# mu$tip$e pro#esses must #oor%inate te use of mu$tip$e resour#es. 1. :es#ription ! C pi$osopers are seate% at a roun% ta&$e. ,eir wo$e $ife revo$ves aroun% tin.ing an% eating. "n te mi%%$e of te ta&$e is a &ig &ow$ of ri#e1 te ta&$e is $ai% out wit C #opsti#.s. Wen a pi$osoper gets ungry1 tey get te two #opsti#.s #$osest to tem. 9. Simp$e so$ution is represent ea# #opsti#. wit a semapore. 2K :e#$arations. K2 semapore #opsti#.VCWL repeat wait(#opsti#.ViW)L wait(#opsti#.V(iX1)SCW)L Z eat Z signa$(#ops #opsti#.ViW)L signa$(#opsti#.V(iX1)SCW)L Z tin. Z unti$ (fa$se)L 3. ,is so$ution wi$$ en#ounter a %ea%$o#. if a$$ te pi$osopers get ungry at te same time. Some so$utions are) a. +$$ow on$y 4 pi$osopers at te ta&$e at on#e. 9E &. +$$ow a pi$osoper to pi#. #opsti#.s on$y if &ot are avai$a&$e. #. 0se an asymmetri# so$ution. O%% pi$osopers pi#. up $eft #opsti#. ten rigt1 even pi$osopers >ust te opposite. 4. So$ution must &e %ea%$o#. free1 &ut not a$$ow a pi$osoper to starve. :ea%$o#. free %oes not guarantee starvation free. >. "ntro%u#tion to Anoppi- .. +ssignment 9 ! "nsta$$ Anoppi- $. +ssignment 3 ! 6un some statisti#s on te rea%ers2writers programs B. :ea%$o#.s ! "n a mu$tiGprogramming environment tere wi$$ e-ist severa$ pro#esses an% severa$ resour#es. Wen a pro#ess re5uest a resour#e tat is not avai$a&$e te pro#ess wi$$ enter a wait state unti$ te resour#e &e#omes avai$a&$e. On#e te resour#e is a#5uire%1 te pro#ess #an #ontinue it e-e#ution trea%. "t #an appen tat a pro#ess wi$$ never $eave its wait state &e#ause te resour#es re5ueste% are e$% an% not re$ease% &y oter waiting pro#esses. ,is situation is #a$$e% a %ea%$o#.. a. 4-amp$e) We are eating stea.s. " ave a .nife1 you ave a for.. " gra& my .nife an% you gra& your for.. " won8t $et you use my .nife unti$ you give me your for.1 an% you won8t $et me use your for. unti$ " $oan you my .nife. Wat appens1 we starve $i.e i%iots. &. System Mo%e$ ! te system is a finite num&er of resour#es %istri&ute% among a num&er of #ompeting pro#esses. i. 6esour#es) severa$ types1 ea# aving some num&er of instan#es. 4-amp$es may in#$u%e memory spa#e1 CP0 #y#$es1 fi$es1 "2O %evi#es (printers1 tape %rives1 an% watnot). ii. + pro#ess re5uests a resour#e &efore using it1 uses it1 an% ten re$eases it. 1. 6e5uest) "f te re5uest #annot &e grante% imme%iate$y (some oter pro#ess is using it) te re5uesting pro#ess must wait unti$ it #an a#5uire te resour#e. 9. 0se) ,e pro#ess operates using te resour#e. 3. 6e$ease) Wen te pro#ess %oes not nee% te resour#e anymore it re$eases it. iii. System #a$$s are use% to re5uest an% re$ease resour#es. 1. 4-amp$es in#$u%e) open1 #$ose1 ma$$o#1 free1 new1 %e$eteZ. et#. #. Ne#essary Con%itions for a %ea%$o#. i. Mutua$ 4-#$usion ! at $east one resour#e is e$% in a nonGsara&$e mo%e1 tat is on$y one pro#ess at a time #an use te resour#e ! e-amp$e1 a #riti#a$ se#tion. "f anoter pro#ess re5uests tat resour#e wi$e its &eing use%1 tat pro#ess wi$$ ave to wait. ii. ?o$% an% Wait ! ,ere must e-it a pro#ess tat is o$%ing at $east one resour#e an% waiting to a#5uire oter resour#es tat are e$% &y oter pro#esses. iii. No Preemption ! 6esour#es #annot &e preempte% ($i.e te CP0 is preempte% in a ,ime Saring system)1 tey are on$y re$ease% vo$untari$y &y te pro#ess using tem. 9B iv. Cir#u$ar wait ! ,ere must &e a set of pro#esses OP01 P1Z.PnQ su# tat P0 is waiting on a resour#e e$% &y P11 P1 is waiting on a pro#ess e$% &y P9 Z..PnG1 is waiting for a resour#e e$% &y Pn1 an% Pn is waiting on a pro#ess e$% &y P0. Cir#u$ar wait imp$ies ?o$% an% Wait. %. 6esour#e +$$o#ation @raps ! a set of verti#es 31 an% e%ges 4. ,e verti#es represent pro#esses an% resour#es1 te e%ges represent re5uests an% assignments (a$$o#ations of resour#es). i. 3 #onsists of pro#esses1 P1 an% resour#es1 6. ii. 4 #onsists of %ire#te% e%ges tat go from a pro#ess to a resour#e1 in%i#ating a re5uest1 or from a resour#e to a pro#ess1 in%i#ating an assignment of te resour#e to te pro#ess (assignment)1 or tin. of it as te resour#e is a$$o#ate% to te pro#ess. iii. 4-amp$e) ,e grap is %efine% &y te sets1 P (pro#esses)1 6 (resour#es)1 an% 4 (e%ges). 1. P M OP11 P91 P3Q 9. 6 M O611 691 631 64Q 3. 4 M OP1 611 P9 631 61 P91 69 P91 69 P11 63 P3Q 4. Noti#e tat in te a&ove e-amp$e tere are no #y#$es in te grap. + resour#e a$$o#ation grap wit out #y#$es in%i#ates tat no %ea%$o#.s e-ist. 9< C. P11 P91an% P3 are %ea%$o#.e%. ,ere are two #y#$es) a. OP11 611 P91 631 P31 691 P1Q &. OP91 631 P31 691 P9Q #. ,e %ea%$o#. e-ists &e#ause no pro#ess #an re$ease a resour#e &e#ause tey #annot run &e#ause tey are waiting for resour#es e$% &y oter pro#esses. =. ?ere is a grap wit a #y#$e tat is not %ea%$o#.e%. 30 E. Cy#$e is) a. OP11 611 P31 691 P1Q B. ,ere is no %ea% $o#. &e#ause P9 or P4 #an #omp$ete pro#essing an% re$ease instan#es of 61 an% 691 a$$owing P1 an% P3 to a#5uire te resour#es nee%e% to #omp$ete. <. Meto%s for an%$ing %ea%$o#.s an% te ;an.ers a$goritm. e. +ssignment C ! So$ve te 6esour#e +$$o#ation @raps f. ?an%$ing :ea%$o#.s ! Meto%s of for %ea$ing wit te %ea%$o#. pro&$em) i. :ea%$o#. Prevention) 0se of a proto#o$ to ensure tat system never enters a %ea%$o#. state. ,is meto% tries to ensure tat at $east one of te #on%itions for %ea%$o#. #annot o##ur &y #onstraining ow resour#es re5uests are ma%e. 1. Mutua$ 4-#$usion) ,is must o$% for nonGsara&$e resour#es1 su# as printers1 &ut resour#es su# as rea%Gon$y fi$es #an &e sare%1 tus &rea.ing mutua$ e-#$usion. "n genera$ toug %ea%$o#. prevention #annot &e a##omp$ise% &y %enying mutua$ e-#$usionL some resour#es are not sara&$e. 9. ?o$% an% Wait) Pro#esses #an &e as.e% to re5uest an% a#5uire a$$ resour#es &efore tey &eginL a$$ resour#es are o&taine% &y using system #a$$s1 wi# are move% to te &eginning of te pro#ess. +$ternative$y tey #an &e for#e% to re5uest resour#es on$y wen tey ave none. Pro&$ems wit tese meto%s) 31 a. Starvation) + pro#ess may ave to wait in%efinite$y for resour#es &efore it #an start. 3. No Preemption) ,o ensure tat tis #on%ition %oes not o$%1 te fo$$owing $ogi# #an &e use%. "f a pro#ess is o$%ing resour#es an% as outstan%ing re5uests for more resour#es tat #annot &e satisfie%1 ten it #an &e for#e% to re$ease te resour#es it is o$%ing. ,e pro#ess wi$$ &e restarte% on$y wen it #an regain its o$% resour#es an% te oter ones tat it nee%e%. Or wen a pro#ess is starting1 te OS #e#.s to see if te resour#es te pro#ess nee%s are avai$a&$e. "f so tey are a$$o#ate%1 if not1 te OS #e#.s to see if te nee%e% resour#es are &eing e$% &y oter waiting pro#esses. "f so1 tese resour#es are preempte% an% te pro#ess runs1 oterwise1 te pro#ess wit its partia$ $ist of resour#es is put into te wait 5ueue1 were its resour#es #an &e preempte% &y oter pro#esses. 4. Cir#u$ar Wait) +n of resour#e types is impose% an% ea# pro#ess re5uests resour#es in an in#reasing or%er of enumeration. ii. :ea%$o#. +voi%an#e) OS is given information a&out a pro#esses re5uire% resour#es of a pro#ess %uring its $ifetime. 'or ea# resour#e re5uest1 te system must #onsi%er wi# resour#es are #urrent$y avai$a&$e1 te resour#es #urrent$y a$$o#ate% to ea# pro#ess1 an% te future re5uests an% re$eases of ea# pro#ess1 to %e#i%e if te resour#e re5uest sou$% &e satisfie% or %e$aye%. ,ese a$goritms avoi% %ea%$o#.s &y using te resour#e state information to avoi% #ir#u$ar wait #on%itions. 1. Safe State) + state is safe if te system #an a$$o#ate resour#es up to its ma-imum in some or%er an% sti$$ avoi% a %ea%$o#.. 9. ,e system is in a safe state if tere e-ists a safe se5uen#e. 3. Safe Se5uen#e) 'or ea# P(i)1 te resour#es nee%e% #an &e satisfie% &y #urrent$y avai$a&$e resour#es an% te resour#es e$% &y te pro#esses P(>) tat #ame &efore it. P(>)) > N " Se5uen#e of Pro#esses) OP11 P91 P3Z..PnQ +$$ te resour#es Pi wi$$ nee% are avai$a&$e (not a$$o#ate% to any pro#ess) or are e$% &y P1 to P(iG1). 39 ;an.ers +$goritm ! n ! num&er of Pro#esses m ! num&er of resour#e types +vai$ViW ! num&er of resour#es of type i avai$a&$e Ma-Vi1 >W ! ma- [ of resour#es of type > tat pro#ess i wi$$ nee% +$$o#Vi1>W ! pro#ess i as tis man resour#es of type > Nee%Vi1 >W M ma-V"1 >W ! a$$o#Vi1 >WL Wor. M +vai$ 'inisViW M '+7S4L Wi$e tere e-ist i su# tat) 'inisViW M '+7S4 Nee%ViW NM Wor. O Wor. M Wor. X +$$o#L 'inisViW M ,604L Q "f a$$ of 'inis M ,6041 ten system is in a safe state. (4nter my e-amp$e ere) iii. System is a$$owe% to enter a %ea%$o#. state an% re#over. +n a$goritm monitors system state to %etermine if a %ea%$o#. as o##urre%1 an% uses a %ea%$o#. re#overy a$goritm wen one is %ete#te%. iv. "gnore te pro&$em a$$ togeter. @ive te responsi&i$ity for an%$ing %ea%$o#.s to te users. Many systems1 in#$u%ing 0N"F ave use% tis strategy. "n some systems %ea%$o#.s o##ur infre5uent$y (may&e on#e a year). Wen tis is te #ase1 it may ma.e more e#onomi# sense to ignore te pro&$em. <. Rui( 9 6eview (Wee. B) 10. Rui( 9 11. Memory Management ! Main memory is a $arge array of &ytes1 ea# wit its own a%%ress. a. Memory &asi#s i. One unit ($i.e a swit#) ;it (021) ii. Ni&&$e ! 4 &its iii. ;yte ! B &its 33 iv. Wor% ! B1 1=1 391 =4 &its v. Memory a%%ressing G ,e sma$$est pie#e of spa#e tat a CP0 #an usua$$y a%%ress is a &yte. + wor% is 4 &ytes1 some CP0s a%%ress on wor% or a$f wor% &oun%aries. +##ess to an% from memory is an%$e% &y te memory unit (memory #ontro$$er). 1. &yte a%%ressa&$e ! a$$ &ytes are a%%ressa&$e 9. wor% a%%ressa&$e ! #an on$y a%%ress on wor% &oun%aries 3. &us error ! attempt to a##ess memory on in#orre#t &oun%ary. a. ?ow %o we get aroun% tisT We use mas.ing an% sifting. &. ;in%ing ! a mapping from one a%%ress spa#e to anoter. #. Pro#ess of &in%ing) %. 7in.ing types) i. Stati# ! $i&rary routines in#$u%e% in #o%e. ii. :ynami# ! $i&raries $in.e% in at runtime. ,e :77 is $o#ate% &y $oo.ing at a stu& inserte% at #ompi$e time. Saves memory1 &ut more #omp$e-1 ta.es $onger to #ome up initia$$y1 an% is not as porta&$e. e. +%%ress types) i. Sym&o$i# ! a%%ress in a program1 $i.e a varia&$e name (CO0N,) 34 ii. 6e$o#ata&$e ! ,ese a%%ress are #a$#u$ate% from a referen#e point1 $i.e te &eginning of te program. ,e #ompi$er wi$$ generate tese at #ompi$e time. 1. offset ! is position of a%%ress #a$#u$ate% from program start. 9. Pysi#a$ +%%ress M Program Start a%%ress X offset. iii. +&so$ute (unre$o#ata&$e) ! ,ese are pysi#a$ a%%resses of te ma#ines main memory. iv. Position in%epen%ent ! runs anywere. 3aria&$es use re$ative $o#ations1 re$ative to PC. ;ase an% 7imit meto%. f. +%%ress ;in%ing i. Compi$e time ! 0sua$$y te #ompi$er turns sym&o$i# a%%resses into re$o#ata&$e a%%resses1 &ut if it is .nown aea% of time were a pro#ess as to resi%e in memory1 pysi#a$ a%%ress #an &e generate%. +&so$ute #o%e is generate%. ii. 7oa% time ! "f at #ompi$e time it is not .nown were te pro#ess wi$$ pysi#a$$y resi%e in memory te #ompi$er generates re$o#ata&$e #o%e. ,e $oa%er #onverts tis to a&so$ute a%%resses wen te program is $oa%e% into pysi#a$ memory. iii. 4-e#ution time ! Wen pro#esses are move% aroun% %uring teir e-e#ution1 fina$ &in%ing is save% for wen tey run. ,is &in%ing is %one &y te memory management unit (MM0) g. :ynami# 7oa%ing ! "n some #ases (many in fa#t) te entire program may not fit in pysi#a$ memory. "f noting is %one a&out tis1 pro#ess si(es are $imite% to te si(e of memory. + wor. aroun% tis is :ynami# 7oa%ing. i. "n tis te#ni5ue1 routines are .ept on %is. in re$o#ata&$e format. ii. Program starts1 main routine is in memory. Wen a su& routine is #a$$e%1 te #a$$ing routine #e#.s for its presen#e in memory1 if tere it #ontro$ transfers to it1 oterwise1 te re$o#ata&$e $in.ing $oa%er is #a$$e% an% te routine is $oa%e% from %is.. iii. @oo% wen program #ontains $arge amounts of #o%e tat are rare$y #a$$e%. iv. :oes not re5uire support from OS. Programmers responsi&i$ity to %esign program to use s#eme. OS provi%es $i&rary routines in support of %ynami# $oa%ing sometimes. . :ynami# 7in.e% 7i&raries ! Wi%e$y supporte%. 7in.ing of system $i&raries is postpone% unti$ run time. + stu& is in#$u%e% in te &inary image tat in%i#ates ow to $o#ate or $oa% te appropriate routine if te routines is not a$rea%y present. i. 0n%er tis s#eme a$$ pro#esses tat use te :77s e-e#ute on$y one #opy of te #o%e. ii. +%vantages in#$u%e) 1. Co%e savings. 9. 4asier to imp$ement up%ates an% &ug fi-es trougout te system. (saves reG$in.ing of a$$ programs using new $i&raries. iii. 0sua$$y re5uires OS support. 3C i. Over$ays ! + programmer imp$emente% te#ni5ue of e-e#uting #o%e tat is &igger tan te pysi#a$ memory. "n tis meto% te programmer %ivi%es te #o%e into se#tions tat wi$$ fit into memory. Wen te program as to swit# #o%e se#tions an Over$ay %river swaps in te nee%e% part of te #o%e an% restarts te program. >. 4-amp$e) 9 pass assem&$er tat re5uires 900. memory. "f on$y 1C0 . is avai$a&$e1 te over$ays #an &e %esigne% wit te fo$$owing memory re5uirements. Pass 1 ! E0. Pass 9 ! B0. Sym&o$ ta&$e ! 90. Common routines ! 30. Over$ay %river ! 10. Pass 1 wit nee%e% routines M E0. X 90. X 30. M 190. wit over$ay %river ! 130. Pass 9 wit nee%e% routines M B0. X 90. X 30. M 130. wit over$ay %river ! 140. So te assem&$er #an &e run wit 1C0. of memory. ,is s#eme %oes not re5uire spe#ia$ OS support &ut %oes re5uire te programmer to ave a goo% .now$e%ge of te program stru#ture. .. 7ogi#a$ versus Pysi#a$ +%%ress Spa#e ! CP0 generates a $ogi#a$ a%%ress (sometimes #a$$e% a virtua$ a%%ress)1 memory management unit MM0 turns te $ogi#a$ a%%ress into a pysi#a$ a%%ress an% $oa%s it into te M+6 (memory a%%ress register). i. ,e set of a$$ a%%resses generate% &y a program is #a$$e% te $ogi#a$ a%%ress spa#e. ,e ar%ware memory a%%resses #orrespon%ing to tese a%%resses are referre% to as pysi#a$ a%%ress spa#e. ii. Compi$e time &in%ing an% $oa% time &in%ing resu$t in $ogi#a$ a%%resses tat are te same as pysi#a$ a%%resses. iii. 4-e#ution time &in%ing ! $ogi#a$ an% pysi#a$ a%%resses are %ifferent from one anoter. iv. +%%ress trans$ation an%$e% &y te MM0. 1. Pysi#a$ +%%ress M 7ogi#a$ X &ase register (sometimes #a$$e% re$o#ation register) 9. ,e program on$y wor.s wit $ogi#a$ a%%resses (0 to program ma- a%%ress). ,ey are mappe% to 6 X ma- program a%%ress in pysi#a$ memory1 were 6 is te va$ue for te &ase register. 3. 7ogi#a$ to Pysi#a$ a%%ress mapping is te #entra$ #on#ept in memory management. v. 0ser Mo%e ! a##esses virtua$ a%%ress spa#e vi. Supervisor Mo%e ! a##esses pysi#a$ a%%ress spa#e 3= $. Swapping ! Pro#ess are memory resi%ent wen tey are running. "f tere are more pro#esses tan te memory #an o$%1 ten te OS swaps tem in an% out of memory from %is. so tey #an run. i. Wit a%%ress &in%ing is %one at #ompi$e or $oa% time1 te pro#ess must resi%e at a spe#ifi# p$a#e in pysi#a$ memory to run1 an% must &e swappe% &a#. an% fort from %is. to tat p$a#e. ii. ,is re5uirement is re$a-e% wit e-e#ution time &in%ing. iii. Pro#esses tat are swappe% out are tra#.e% &y te OS. iv. Swapping ta.es time. ,e time is proportiona$ to te amount of %ata tat must &e move% from %is. to memory. 4-amp$e) 1. a 100. pro#ess at 1000. per se#on% wit a B ms %is. $aten#y wou$% ta.e) a. 100.21000. X B ms M 10Bms. &. ,o swap watever was in memory out an% tis pro#ess &a#. in wou$% ta.e) 9 K 10Bms M 91=ms. v. 'or effi#ien#y reasons time in memory an% running sou$% &e $ong #ompare% to te time to swap te pro#ess from %is. to memory. m. Contiguous +$$o#ation ! Main memory a##ommo%ates te OS an% te user pro#esses. OS resi%es in one partition1 user pro#ess in te oter. OS is #ommon$y p$a#e% in $ow memory (a%%ress num&ers starting at 0) &e#ause interrupt ve#tors is often in $ow memory. +%vantages) Simp$e1 'ast. :isa%vantages) 'ragments memory1 tere may &e programs too &ig for memory. i. Sing$e Partition ! OS resi%es in $ow memory. 0ser pro#esses resi%e in ig memory. 1. Pro#esses an% OS are prote#te% from ea# oter &y using te &ase an% $imit register s#eme. 9. 4very a%%ress te CP0 generates is #e#.e% against tese registers. ?ar%ware is use% so it #an &e %one 5ui#.$y. 3. "t provi%es OS an% user programs prote#tion from running pro#esses. 3E ii. Mu$tip$e Partition ! "n te most &asi# #ase of mu$tip$e partition memory management memory is %ivi%e% into n e5ua$ si(e partitions (";M 3=0 use% tis s#eme). ,e num&er of partitions in te memory %etermines te %egree of mu$tiprogramming. Wen a partition is free1 te OS se$e#ts a pro#ess from te input 5ueue an% $oa%s into tat partition. iii. 7ater1 te e5ua$ num&er of partitions was %roppe% for a %ynami# system in wi# memory is .ept tra#. of &y using a ta&$e tat te$$s wi# part of memory is empty an% wi# is o##upie%. 1. "nitia$$y a$$ pro#ess memory is empty. 9. +s pro#esses are s#e%u$e%1 tey are move% into *o$es/ (areas of uno##upie% memory). ,e OS fin%s a o$e $arge enoug to o$% te pro#ess. Memory is a$$o#ate% unti$ tere is no o$e $arge enoug to o$% te ne-t pro#ess. ,e OS ten must wait unti$ a pro#ess #omp$etes an% frees its memory or s.ip %own te input 5ueue unti$ it fin%s a pro#ess sma$$ enoug to fit in one of te o$es. +%>a#ent o$es #an &e merge% to form $arger o$es. ,ere are severa$ a$$o#ation s#emes) a. 'irstG'it ! Put te pro#ess in te first o$e foun% tat wi$$ a##ommo%ate its memory re5uirements. Sear#ing stops as soon as a wo$e is foun% tat wor.s. 3B &. ;estG'it ! Put te pro#ess in to te sma$$est o$e tat wi$$ a##ommo%ate its memory re5uirements. ,is strategy pro%u#es te sma$$est remaining o$e2o$es. #. WorstG'it ! Put te pro#ess in to te $argest o$e tat wi$$ a##ommo%ate its memory re5uirements. ,is strategy pro%u#es te $argest remaining o$e2o$es. 3. Simu$ations sow tat firstGfit an% &estGfit wor. &est in terms of %e#reasing time an% storage uti$i(ation. Neiter is #$ear$y &etter1 &ut firstGfit is genera$$y faster. iv. "nterna$ an% 4-terna$ 'ragmentation 1. 4-terna$ 'ragmentation is wen te sum of te memory of te o$es is enoug to satisfy a memory re5uest &ut it not #ontiguous1 it is fragmente% into a $arge num&er of sma$$ o$es. ,o so$ve tis pro&$em (#an waste up to a tir% of te memory) #ompa#tion #an &e use%. Perio%i#a$$y suff$e te memory an% #reate a &ig &$o#. of free memory. 9. "nterna$ 'ragmentation ! Sometimes a o$e may &e &are$y $arger tan te pro#ess it is a$$o#ate% to. "n or%er to avoi% te overea% of tra#.ing very sma$$ o$es (te memory re5uire% to tra#. te tiny o$e wou$% &e more tan te o$e itse$f) more memory tan is re5uire% wou$% &e a$$o#ate% so tat te tra#.ing pro&$em #an &e $essene% (a$$o#ate te tiny o$e as part of te $arger re5uest). ,e memory tat is te %ifferen#e &etween te o$e si(e an% pro#ess si(e is interna$ fragmentation. 19. Paging an% 3irtua$ Memory ! 0se% to avoi% fragmentation. a. ;asi#s ! 4a# pro#ess as a page ta&$e. PageNum M $ogi#a$ a%%ress2pageSi(eL 'rameNum M page,a&$eVpageNumW.page Offset M $ogi#a$ a%%ress ! pageNumKpageSi(e Pysi#a$ +%%ress M 'rameNum K 'rameSi(e X Offset
3< Page si(es are usua$$y .ept to &e a power of 91 typi#a$$y &etween C19 &ytes an% 1= megs. ,is ma.es page an% offset #a$#u$ation a matter of sifting &its. 40 41 Paging attri&utes) 'orm of %ynami# re$o#ation. 7ogi#a$ a%%resses &oun% &y paging ar%ware to pysi#a$ a%%resses. No e-terna$ fragmentation. +ny free frame #an &e a$$o#ate% to any pro#ess tat nee%s it. Wi$$ ave interna$ fragmentation on $ast frame of pro#ess. Page si(e is a #ompromise &etween wanting to minimi(e interna$ page fragmentation an% minimi(ing te num&er of %is. a##esses1 an% te overea% re5uire% to store te paging ta&$es. Narrative of Paging Pro#ess ) Pro#ess arrives in system o "ts si(e is e-presse% in pages. o "f it re5uires n pages1 tere must &e n frames avai$a&$e in memory. "f te frames are avai$a&$e1 tey are a$$o#ate% to te pro#ess1 ea# frame $o#ation &eing re#or%e% in te pro#esses page ta&$e. 0ser program views memory as one #ontiguous pie#e even toug it is pysi#a$$y s#attere% trougout memory. +s program runs $ogi#a$ a%%resses are #onverte% to pysi#a$ a%%resses. 49 OS .eeps tra#. of wi# frames are use% an% wi# are avai$a&$e in te 'rame ta&$e. "ssues wit Paging) ,o a##ess a &yte of memory it ta.es 9 memory a##esses1 one for te page ta&$e1 one for te a##ess to memory. o ,rans$ation $oo.Gasi%e &uffers (,7;) are use% to a$$eviate tis pro&$em. ,7; is a sma$$ fast pie#e of asso#iative memory tat o$%s part of te page ta&$e in it. 7ogi#a$ a%%ress generate% &y CP01 page num&er presente% to ,7;. "f te page num&er is foun%1 ,7; outputs te mat#ing frame num&er. Pro#ess ta.es 10S $onger tan a %ire#t memory referen#e. "f page num&er not in ,7;1 page ta&$e is referen#e% an% a%%ress is forme%. ,7; up%ate%1 if fu$$ one of te entries is rep$a#e%. ,e per#ent of times tat a page num&er is foun% in ta&$e is te it ratio. 0sing te it ratio we #an #a$#u$ate te effe#tive memory a##ess time. B0 per#ent it ratio 90 nanose#on% ,7; sear# time 100 nanose#on% memory a##ess time. 4ffe#tive a##ess time M .B0 #+, - .,,& - /+,(90 X 100 X 100) M 140 nanose#on%s o Wen memory is fu$$ (page ta&$e fu$$) pages must &e swappe% in an% out from %is.. 13. Paging imp$ementation an% a$goritms a. 7o#a$ity of referen#e ! programs ten% to wor. in a parti#u$ar memory area an% move s$ow$y troug tem. &. :eman% Paging ! pages are on$y &rougt in wen tey are nee%e%. #. Page 'au$t ! event tat o##urs wen a page is not in 6+M %. :irty ;it ! in%i#ates if te page as &een #ange% sin#e it #ame into memory. "f it as1 wen it is e>e#te%1 it nee%s to &e written &a#. to %is. &efore it is .i#.e% out. e. Page 6ep$a#ement f. Page 6ep$a#ement +$goritms i. '"'O ! 'irst "n 'irst Out 1. ;e$a%y8s anoma$y ! give a system more resour#es (memory frames) an% it ma.es more fau$ts. '"'O is sus#epti&$e1 760 is not. ii. Optima$ (;e$a%y) ! fartest in te future. ,is is goo%1 &ut we ave a ar% time .nowing wat te future wi$$ &ring. iii. 760 ! 7east 6e#ent$y 0se%. @oo% in teory an% in pra#ti#e. (:irty &it set wen page #ange%1 ea# time page a##esse%1 time stamp 43 up%ate% or referen#e &it set. "f using referen#e &it1 ea# time 5uanta sifts referen#e wor% to te rigt. g. 4-amp$e of '"'O1 7601 an% optima$L page2frame si(e M 100L ma-frames M C e$$o tv $an%U num+%%s M 90 +%%ress Stream. E91 43 191 999 44 39E 4C 49B 993 39B 4C 39< 994 199 99C 4= 193 E99 4E 194 Page rep$a#ement ('"'O) 'rame ,a&$e G E [ [ [ [ 'rame ,a&$e G E 0 [ [ [ 'rame ,a&$e G E 0 1 [ [ 'rame ,a&$e G E 0 1 9 [ 'rame ,a&$e G E 0 1 9 [ 'rame ,a&$e G E 0 1 9 3 'rame ,a&$e G E 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 YYY page fau$t 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 E 1 9 3 YYY page fau$t 44 'rame ,a&$e G 4 E 0 9 3 YYY page fau$t 'rame ,a&$e G 4 E 0 1 3 YYY page fau$t page'au$ts M 4 Page rep$a#ement (760) 'rame ,a&$e G E [ [ [ [ 'rame ,a&$e G E 0 [ [ [ 'rame ,a&$e G E 0 1 [ [ 'rame ,a&$e G E 0 1 9 [ 'rame ,a&$e G E 0 1 9 [ 'rame ,a&$e G E 0 1 9 3 'rame ,a&$e G E 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 YYY page fau$t 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G 4 0 1 9 3 'rame ,a&$e G E 0 1 9 3 YYY page fau$t 'rame ,a&$e G E 0 1 9 3 'rame ,a&$e G E 0 1 9 3 page'au$ts M 9 ?ere is an optima$ (;e$a%y) e-amp$e. E [ [ [ [ E 0 [ [ [ E 0 1 [ [ E 0 1 9 [ E 0 1 9 [ E 0 1 9 3 E 0 1 9 3 4 0 1 9 3 YYY page fau$t . / / / / / / / / 4C E 0 1 9 3 YYY page fau$t E 0 1 9 3 E 0 1 9 3 . ;e$a%y8s anoma$y ! sometimes wit '"'O1 aving more resour#es resu$ts in more page fau$ts. i. Page referen#e string ! 11 91 31 41 11 91 C1 11 91 31 41 C 1. '"'O ! wit 4 frames resu$ts in 10 page fau$ts 1 9 3 4 1 9 C 1 9 3 4 C 1 1 1 1 C C C C 4 4 9 9 9 9 1 1 1 1 C 3 3 3 3 9 9 9 9 4 4 4 4 3 3 3 9. '"'O ! wit 3 frames resu$ts in < page fau$ts. 1 9 3 4 1 9 C 1 9 3 4 C 1 1 1 4 4 4 C C C 9 9 9 1 1 1 3 3 3 3 3 9 9 9 4 i. Counting a$goritms i. 7'0 ! 7east fre5uent$y use%. ii. M'0 ! Most fre5uenty use%. 14. +ssignment C ! Program a page swapper1 imp$ement '"'O an% 7601 sow some run statisti#s for various provi%e% %ata sets. (:ue in 9 wee.s) 1C. Pure :eman% Paging ! initia$$y a$$ pages on &a#.ing store (fast %is. or fast part of %is.). On initia$ startup1 or restarting after a #onte-t swit#1 many page fau$ts o##ur. 1=. :eman% Paging wit preGpaging ! #ompi$er te$$s system wi# pages are nee%e% for startup. +fter startup pages use% #an &e swappe%. ,is meto% e$ps to re%u#e te amount of page fau$ts on startup. 1E. ,rasing ! Wen a pro#ess #annot &e a$$o#ate% te minimum num&er of pages it nee%s to run it #an generate many page fau$ts. +t some point te OS is spen%ing most of te CP0 #y#$es servi#ing page fau$ts1 instea% of e-e#uting user pro#esses. 1B. Storage a. 'i$es Systems ! + fi$e is a #o$$e#tion of re$ate% %ata items (program1 te-t1 imageZ.) &. ,wo ways of %e#i%ing wat is in a fi$e) i. 0ser #onvention (K.o$% in 0ni- is usua$$y an o$% version of a fi$e1 wi$e K.#o$% wou$% usua$$y &e an o$% C sour#e #o%e fi$e. ) ii. OS %efine% (K.%o# in win%ows is a wor% fi$e) #. +##ess Meto%s) i. Se5uentia$ 4= ii. "n%e-e% ! Consists of an in%e- fi$e an% a %ata fi$e %. +ttri&utes i. name ii. type iii. $o#ation (on %is.) iv. si(e (num&er of re#or%s1 or &ytes) v. prote#tion info vi. owner vii. $ast mo%ifie% e. Operations i. #reation ii. trun#ate iii. %e$ete iv. open v. #$ose vi. appen% vii. rea% viii. write i-. see. -. te$$ f. :ire#tory ! #o$$e#tion of fi$es. "n :OS $in.s #an on$y go to $eaves. ,is .eeps #y#$es from o##urring. i. ,ree Stru#ture% ! a#y#$i# graps ii. + fi$e is %e$ete% on$y wen tere are no more $in.s to it. + fi$e may &e referen#e% from more tan one %ire#tory. g. Patnames i. +&so$ute ! &a#. to root ii. 6e$ative ! re$ative to #urrent wor.ing %ire#tory . Prote#tion i. +gainst oter users ii. +gainst se$f iii. Contro$ 1. wat ! rea%2write2e-e#ute1 appen%2%e$ete2$ist 9. wo ! you1 your group1 everyone 1<. 'i$e System "mp$ementation a. 'i$e Contro$ ;$o#. ! 'C;) :ire#tory ;$o#.1 %ata &. 'i$e System ! Consists of a$$ fi$es ('C;1 %ata)1 ar%ware1 %ire#tories1 format information (&$o#. si(e1 free &$o#.s) i. ;$o#.s ! ea# &$o#. as pysi#a$ a%%ress (tra#.1 se#tor) ii. :is. is a&stra#te% to an array of &$o#.s (B. ! 1=.) 1. ,o get %ata from %is. ! move ea% (see. time)1 wait for p$atter to spin aroun% to rigt p$a#e (rotationa$ $aten#y). 9. ,o rea%2write 5ui#.$y ! group &$o#.s of fi$e #$ose to ea# oter. We wou$% $i.e to a$$o#ate #ontiguous$y in ar%ware an% software. #. Meto%s of +$$o#ation 4E i. Contiguous ! suffers from e-terna$ fragmentation ii. 7in.e% a$$o#ation 1. 4$iminates e-terna$ fragmentation 9. 7ea%s to nonG#ontiguous fi$e %ata %istri&ution 3. On$y goo% for se5uentia$ a##esse% fi$es. 4. 7ost fi$e pointers #an #ause a fi$e to &e %amage%. C. :ire#tory wi$$ store) a. Name &. first &$o#. #. $ast &$o#. %. 4a# &$o#. as a pointer to te ne-t &$o#.. iii. '+, ('i$e +ttri&ute ,a&$e) 1. Simp$e an% effi#ient 9. 7in.e% a$$o#ation meto%. 3. "f '+, is not #a#e%1 it #an $ea% to $ots of %is. see.s. 4. '+, ! a. '+, at &eginning of ea# %is. partition. &. "t as one entry for ea# %is. &$o#. an% is in%e-e% &y num&er. #. ,e %ire#tory entry as entry for first fi$e &$o#.1 '+, as entry for te ne-t &$o#.. %. ,e $ast &$o#. in fi$e is signa$e% &y 4O' va$ue. e. 4mpty &$o#.s mar.e% &y 08s. f. "f '+, ta&$e gets wipe% out1 $oo. out. iv. "n%e-e% 1. :ire#tory as fi$e name an% $o#ation in%e- &$o#.. "n%e- &$o#. is a se5uentia$ $ist of te &$o#.s in te fi$e. v. 'ree Spa#e ! $in.e% into on fi$e. ;it 3e#tor (1 per &$o#. in%i#ates if te &$o#. is free or not. vi. :ire#tories ! simp$est way is to ma.e $inear ta&$e1 some systems use a as ta&$e. 90. "2O Systems a. 7ots of OS %ea$s wit fi$es (E0S) i. ?ar%ware %evi#es) 1. po$$ing 9. interrupt 3. interrupt wit :M+ ii. :evi#e types 1. ;$o#. a. :is. &. ,ape 9. Cara#ter a. Aey&oar% &. Seria$ i2o (COMM port) &. :is.s i. Stru#ture 4B ii. ?ea% S#e%u$ing 1. 'C'S ! 'irst Come 'irst Serve 9. SS,' ! Sortest See. ,ime 'irst 3. SC+N ! (e$evator a$goritm) ! serve a$$ re5uests going one way1 ten go te oter. a. Cy#$i# e$evator ! goes one %ire#tion1 ten ea% moves &a#. to start. 91. Rui( 3 review 99. Rui( 3 4<