operatingsystem《操作系统》ch_第1页
operatingsystem《操作系统》ch_第2页
operatingsystem《操作系统》ch_第3页
operatingsystem《操作系统》ch_第4页
operatingsystem《操作系统》ch_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chapter3:Processes,ChapterObjectives,Tointroducethenotionofaprocess-aprograminexecution,whichformsthebasisofallcomputation.Todescribethevariousfeaturesofprocesses,includingscheduling,creationandtermination,andcommunication.Todescribecommunicationinclient-serversystems.,ContentOverview,ProcessConceptProcessSchedulingOperationsonProcessesCooperatingProcessesInterprocessCommunicationCommunicationinClient-ServerSystems,3.1ProcessConcept,Anoperatingsystemexecutesavarietyofprograms:BatchsystemjobsTime-sharedsystemsuserprogramsortasksTextbookusesthetermsjobandprocessalmostinterchangeablyProcessaprograminexecution;processexecutionmustprogressinsequentialfashionAprocessincludes:programcounterStackheapdatasectiontextsection,ProcessinMemory,ProcessState,Asaprocessexecutes,itchangesstatenew:Theprocessisbeingcreatedready:Theprocessiswaitingtobeassignedtoaprocessorrunning:Instructionsarebeingexecutedwaiting:Theprocessiswaitingforsomeeventtooccurterminated:Theprocesshasfinishedexecution,DiagramofProcessState,ProcessControlBlock(PCB),InformationassociatedwitheachprocessProcessstateProgramcounterCPUregistersCPUschedulinginformationMemory-managementinformationAccountinginformationI/Ostatusinformation,ProcessControlBlock(PCB),CPUSwitchFromProcesstoProcess,3.2ProcessScheduling,Theobjectiveofmultiprogrammingistohavesomeprocessrunningatalltimes,tomaximizeCPUutilization.TheobjectiveoftimesharingistoswitchtheCPUamongprocessessofrequentlythatuserscaninteractwitheachprogramwhileitisrunning.Tomeettheseobjectives,theprocessschedulerselectsanavailableprocess(possiblyfromasetofseveralavailableprocesses)forprogramexecutionontheCPU.Forasingle-processorsystem,therewillneverbemorethanonerunningprocess.Iftherearemoreprocesses,therestwillhavetowaituntiltheCPUisfreeandcanberescheduled.,ProcessSchedulingQueues,JobqueuesetofallprocessesinthesystemReadyqueuesetofallprocessesresidinginmainmemory,readyandwaitingtoexecuteDevicequeuessetofprocesseswaitingforanI/OdeviceProcessesmigrateamongthevariousqueues,ReadyQueueAndVariousI/ODeviceQueues,RepresentationofProcessScheduling,Schedulers,Long-termscheduler(orjobscheduler)selectswhichprocessesshouldbebroughtintothereadyqueueShort-termscheduler(orCPUscheduler)selectswhichprocessshouldbeexecutednextandallocatesCPU,AdditionofMediumTermScheduling,Schedulers(Cont.),Short-termschedulerisinvokedveryfrequently(milliseconds)(mustbefast)Long-termschedulerisinvokedveryinfrequently(seconds,minutes)(maybeslow)Thelong-termschedulercontrolsthedegreeofmultiprogrammingProcessescanbedescribedaseither:I/O-boundprocessspendsmoretimedoingI/Othancomputations,manyshortCPUburstsCPU-boundprocessspendsmoretimedoingcomputations;fewverylongCPUbursts,ContextSwitch,WhenCPUswitchestoanotherprocess,thesystemmustsavethestateoftheoldprocessandloadthesavedstateforthenewprocessContext-switchtimeisoverhead;thesystemdoesnousefulworkwhileswitchingTimedependentonhardwaresupport,3.3OperationsonProcesses,ProcessCreationParentprocesscreatechildrenprocesses,which,inturncreateotherprocesses,formingatreeofprocessesResourcesharingParentandchildrenshareallresourcesChildrensharesubsetofparentsresourcesParentandchildsharenoresourcesExecutionParentandchildrenexecuteconcurrentlyParentwaitsuntilchildrenterminate,ProcessCreation(Cont.),AddressspaceChildduplicateofparentChildhasaprogramloadedintoitUNIXexamplesforksystemcallcreatesnewprocessexecsystemcallusedafteraforktoreplacetheprocessmemoryspacewithanewprogram,ProcessCreation,CProgramForkingSeparateProcess,intmain()pid_tpid;pid=fork();/*forkanotherprocess*/if(pid0)/*erroroccurred*/fprintf(stderr,ForkFailed);exit(-1);elseif(pid=0)/*childprocess*/execlp(/bin/ls,ls,NULL);else/*parentprocess*/wait(NULL);/*parentwillwaitforthechildtocomplete*/printf(ChildComplete);exit(0);,AtreeofprocessesonatypicalSolaris,ProcessTermination,Processexecuteslaststatementandaskstheoperatingsystemtodeleteit(exit)Outputdatafromchildtoparent(viawait)ProcessresourcesaredeallocatedbyoperatingsystemParentmayterminateexecutionofchildrenprocesses(abort)for:ChildhasexceededallocatedresourcesTaskassignedtochildisnolongerrequiredIfparentisexitingSomeoperatingsystemdonotallowchildtocontinueifitsparentterminatesAllchildrenterminated-cascadingtermination,3.4InterProcessCommunication,IndependentprocesscannotaffectorbeaffectedbytheexecutionofanotherprocessCooperatingprocesscanaffectorbeaffectedbytheexecutionofanotherprocessAdvantagesofprocesscooperationInformationsharingComputationspeed-upModularityConvenienceCooperatingprocessesrequireanInterprocesscommunication(IPC)mechanismsharedmemory/messagepassing,CommunicationsModels,MessagePassingSharedMemory,Shared-MemorySolutionProducer-ConsumerProblem,Paradigmforcooperatingprocesses,producerprocessproducesinformationthatisconsumedbyaconsumerprocessunbounded-bufferplacesnopracticallimitonthesizeofthebufferbounded-bufferassumesthatthereisafixedbuffersize,Bounded-Buffer,Shareddata#defineBUFFER_SIZE10typedefstruct.item;itembufferBUFFER_SIZE;intin=0;intout=0;Solutioniscorrect,butcanonlyuseBUFFER_SIZE-1elements,Bounded-BufferInsert()Method,while(true)/*Produceanitem*/while(in=(in+1)%BUFFERSIZEcount)=out);/*donothing-nofreebuffers*/bufferin=item;in=(in+1)%BUFFERSIZE;,BoundedBufferRemove()Method,while(true)while(in=out);/donothing-nothingtoconsume/removeanitemfromthebufferitem=bufferout;out=(out+1)%BUFFERSIZE;returnitem;,Message-PassingSystems,MessagesystemprocessescommunicatewitheachotherwithoutresortingtosharedvariablesIPCfacilityprovidestwooperations:send(message)messagesizefixedorvariablereceive(message)IfPandQwishtocommunicate,theyneedto:establishacommunicationlinkbetweenthemexchangemessagesviasend/receiveImplementationofcommunicationlinkphysical(e.g.,sharedmemory,hardwarebus)logical(e.g.,logicalproperties)DirectorindirectcommunicationSynchronousorasynchronouscommunicationAutomaticorexplicitbuffering,*ImplementationQuestions,Howarelinksestablished?Canalinkbeassociatedwithmorethantwoprocesses?Howmanylinkscantherebebetweeneverypairofcommunicatingprocesses?Whatisthecapacityofalink?Isthesizeofamessagethatthelinkcanaccommodatefixedorvariable?Isalinkunidirectionalorbi-directional?,DirectCommunication-Naming,Processesmustnameeachotherexplicitly:send(P,message)sendamessagetoprocessPreceive(Q,message)receiveamessagefromprocessQPropertiesofcommunicationlinkLinksareestablishedautomaticallyAlinkisassociatedwithexactlyonepairofcommunicatingprocessesBetweeneachpairthereexistsexactlyonelinkThelinkmaybeunidirectional,butisusuallybi-directional,IndirectCommunication-mailbox,Messagesaredirectedandreceivedfrommailboxes(alsoreferredtoasports)EachmailboxhasauniqueidProcessescancommunicateonlyiftheyshareamailboxPropertiesofcommunicationlinkLinkestablishedonlyifprocessesshareacommonmailboxAlinkmaybeassociatedwithmanyprocessesEachpairofprocessesmayshareseveralcommunicationlinksLinkmaybeunidirectionalorbi-directional,IndirectCommunication,OperationscreateanewmailboxsendandreceivemessagesthroughmailboxdestroyamailboxPrimitivesaredefinedas:send(A,message)sendamessagetomailboxAreceive(A,message)receiveamessagefrommailboxA,IndirectCommunication,MailboxsharingP1,P2,andP3sharemailboxAP1,sends;P2andP3receiveWhogetsthemessage?SolutionsAllowalinktobeassociatedwithatmosttwoprocessesAllowonlyoneprocessatatimetoexecuteareceiveoperationAllowthesystemtoselectarbitrarilythereceiver.Senderisnotifiedwhothereceiverwas.,Synchronization,Messagepassingmaybeeitherblockingornon-blockingBlockingisconsideredsynchronousBlockingsendhasthesenderblockuntilthemessageisreceivedBlockingreceivehasthereceiverblockuntilamessageisavailableNon-blockingisconsideredasynchronousNon-blockingsendhasthesendersendthemessageandcontinueNon-blockingreceivehasthereceiverreceiveavalidmessageornull,Buffering,Queueofmessagesattachedtothelink;implementedinoneofthreeways1.Zerocapacity0messagesSendermustwaitforreceiver2.BoundedcapacityfinitelengthofnmessagesSendermustwaitiflinkfull3.UnboundedcapacityinfinitelengthSenderneverwaits,*3.5ExamplesofI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论