![期末復(fù)習(xí)操作系統(tǒng)_第1頁](http://file4.renrendoc.com/view12/M0A/2E/0D/wKhkGWcb5xCAHtwTAAA3XEkVjyA969.jpg)
![期末復(fù)習(xí)操作系統(tǒng)_第2頁](http://file4.renrendoc.com/view12/M0A/2E/0D/wKhkGWcb5xCAHtwTAAA3XEkVjyA9692.jpg)
![期末復(fù)習(xí)操作系統(tǒng)_第3頁](http://file4.renrendoc.com/view12/M0A/2E/0D/wKhkGWcb5xCAHtwTAAA3XEkVjyA9693.jpg)
![期末復(fù)習(xí)操作系統(tǒng)_第4頁](http://file4.renrendoc.com/view12/M0A/2E/0D/wKhkGWcb5xCAHtwTAAA3XEkVjyA9694.jpg)
![期末復(fù)習(xí)操作系統(tǒng)_第5頁](http://file4.renrendoc.com/view12/M0A/2E/0D/wKhkGWcb5xCAHtwTAAA3XEkVjyA9695.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Chapter3:ProcessesChapter3:ProcessesProcessConcept進(jìn)程的概念ProcessScheduling進(jìn)程調(diào)度OperationsonProcesses進(jìn)程的操作CooperatingProcesses進(jìn)程協(xié)作InterprocessCommunication進(jìn)程間通信CommunicationinClient-ServerSystems客戶機(jī)-服務(wù)器系統(tǒng)通信ConcurrenceCurrent-daycomputersystemsallowmultipleprogramstobeloadedintomemoryandexecutedconcurrently.EfficiencyEfficiencysequentialexecution:CumulativeTime:80CPUEfficiency:40/80=50%DEV1Efficiency:15/80=18.75%DEV2Efficiency:25/80=31.25%ConcurrenceCumulativeTime
:45CPUEfficiency:40/45=89%DEV1Efficiency:15/45=33%DEV2Efficiency:25/45=55.6%并行(Parallel)vs并發(fā)(Concurrency)Problem①②③④①②③④①②③④…2222…①③②④①③②④①③②④…1111…begin--------------------------------------------endCcompilerProcess1(datasection)Sourcecode1Objectcode1Process2(datasection)Sourcecode2Objectcode2Data是自己的,program是共享的進(jìn)程引入ProcessConcept進(jìn)程的概念A(yù)noperatingsystemexecutesavarietyofprograms:操作系統(tǒng)執(zhí)行一系列的程序Batchsystem–jobs批處理系統(tǒng):作業(yè)Time-sharedsystems–userprogramsortasks分時系統(tǒng):用戶程序或任務(wù)Textbookusesthetermsjobandprocessalmostinterchangeably本書中作業(yè)=進(jìn)程Process–aprograminexecution;processexecutionmustprogressinsequentialfashion進(jìn)程:程序的執(zhí)行,程序順序執(zhí)行進(jìn)程:1.程序在執(zhí)行中;2.一個具有一定獨(dú)立功能的程序在一個數(shù)據(jù)集合上的一次動態(tài)執(zhí)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單位進(jìn)程與程序有何差別?進(jìn)程是一個動態(tài)概念,程序是一個靜態(tài)概念;進(jìn)程有生命周期,有誕生有消亡,短暫的;而程序是相對長久的。進(jìn)程具有并發(fā)性,而程序沒有;進(jìn)程是競爭計算機(jī)系統(tǒng)資源的基本單位,其并發(fā)性受到系統(tǒng)本身的制約;不同的進(jìn)程可以包含同一程序,只要程序所對應(yīng)的數(shù)據(jù)集不同Main()-----------open()----------Open()-------------------------------returnSystemcallProcess1(usermode)UserstackProcess1(monitormode)Kernelstack一個進(jìn)程對應(yīng)多個程序例ProcessConcept進(jìn)程的概念A(yù)processincludes:Text
section文本段(代碼段)programcounter程序計數(shù)器Stack堆棧datasection數(shù)據(jù)段ProcessinMemory進(jìn)程的特征特征結(jié)構(gòu)特征動態(tài)性并發(fā)性獨(dú)立性異步性程序段、數(shù)據(jù)段、進(jìn)程控制塊PCB最基本的特征,進(jìn)程是動態(tài)產(chǎn)生,動態(tài)消亡的;進(jìn)程在其生命周期內(nèi),在三種基本狀態(tài)之間轉(zhuǎn)換(就緒、等待和執(zhí)行)任何進(jìn)程都可以同其他進(jìn)程一起向前推進(jìn)每個進(jìn)程都以其相對獨(dú)立的、不可預(yù)知的速度向前推進(jìn)進(jìn)程是一個能獨(dú)立運(yùn)行的基本單位,同時也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。進(jìn)程和程序的區(qū)別與聯(lián)系進(jìn)程程序動態(tài)靜態(tài)暫時永久并發(fā)PCB——多個一個一個多個ProcessState進(jìn)程狀態(tài)Asaprocessexecutes,itchangesstatenew:Theprocessisbeingcreated新的running:Instructionsarebeingexecuted運(yùn)行waiting:Theprocessiswaitingforsomeeventtooccur等待ready:Theprocessiswaitingtobeassignedtoaprocessor就緒terminated:Theprocesshasfinishedexecution終止DiagramofProcessState進(jìn)程狀態(tài)圖一個進(jìn)程的生命期中,每個狀態(tài)將經(jīng)歷幾次?進(jìn)程狀態(tài)轉(zhuǎn)換(1/2)就緒-->運(yùn)行調(diào)度程序選擇一個新的進(jìn)程運(yùn)行運(yùn)行-->就緒運(yùn)行進(jìn)程用完了時間片運(yùn)行進(jìn)程被中斷,因?yàn)橐桓邇?yōu)先級進(jìn)程處于就緒狀態(tài)進(jìn)程狀態(tài)轉(zhuǎn)換(2/2)運(yùn)行-->等待OS尚未完成服務(wù)對一資源的訪問尚不能進(jìn)行初始化I/O且必須等待結(jié)果等待某一進(jìn)程提供輸入(IPC)等待-->就緒當(dāng)所等待的事件發(fā)生時ProcessControlBlock(PCB)ContainerfortheuniqueinformationforeachprocesswhentheyarerunningintheoperatingsystemPCB用來保存程序運(yùn)行期間的重要信息(1)進(jìn)程存在的唯一標(biāo)識(2)記錄了OS所需的用于描述進(jìn)程及控制進(jìn)程所需的全部信息InformationassociatedwitheachprocessProcessstate進(jìn)程狀態(tài)Programcounter程序計數(shù)器CPUregisters
CPU寄存器CPUschedulinginformation
CPU調(diào)度信息Memory-managementinformation內(nèi)存管理信息Accountinginformation記賬信息I/Ostatusinformation
I/O狀態(tài)信息進(jìn)程與PCB是一一對應(yīng)的ProcessControlBlock(PCB)ConceptofProcess(進(jìn)程描述)Part1ofPCB:描述信息ProcessID(PID)進(jìn)程標(biāo)識號EachprocesshasauniquePIDUsernameorUserID(UID)用戶名或用戶標(biāo)識號FamilyRelationship家族關(guān)系ConceptofProcess(進(jìn)程描述)Part2ofPCB:ControlInformation控制信息ProcessStatus進(jìn)程當(dāng)前狀態(tài)ProcessPriority進(jìn)程優(yōu)先級Addressoftheprogramentrypoint程序的開始地址StatisticalInformation計時、資源使用等統(tǒng)計信息CommunicationInformation進(jìn)程間通信信息ConceptofProcess(進(jìn)程描述)Part3ofPCB:ResourceManagementInformation資源管理信息MemoryConsumptionInfo占用內(nèi)存資源信息FileSystemInfo文件系統(tǒng)使用信息,如打開的文件等DeviceUsageInfo設(shè)備、I/O資源使用情況信息ConceptofProcess(進(jìn)程描述)Part4ofPCB:CPUstatepreservationCPU現(xiàn)場信息通用寄存器(%eax,%ecx,…)
程序計數(shù)器PC(存放在寄存器IR中)
狀態(tài)PSW
棧指針(%ebp,%esp)…CPUSwitchFromProcesstoProcess
CPU在進(jìn)程間的切換ContextSwitch上下文切換WhenCPUswitchestoanotherprocess,thesystemmustsavethestateoftheoldprocessandloadthesavedstateforthenewprocess當(dāng)CPU切換到另一個進(jìn)程的時候,系統(tǒng)需要保存老進(jìn)程的狀態(tài),并且加載新進(jìn)程的狀態(tài)Context-switchtimeisoverhead;thesystemdoesnousefulworkwhileswitching上下文切換的時間是系統(tǒng)的額外開銷,切換時系統(tǒng)不做任何有用的工作Timedependentonhardwaresupport時間與硬件支持密切相關(guān)OrganizingPCBsProcessSpaceandSize進(jìn)程空間和大小每個進(jìn)程的控制塊PCB要占據(jù)一定的內(nèi)存系統(tǒng)中允許并發(fā)執(zhí)行的進(jìn)程數(shù)是有限的LinuxKernel2.2X中最多能夠支持4090個用戶進(jìn)程同時工作ProcessSchedulingQueues進(jìn)程調(diào)度隊(duì)列Jobqueue–setofallprocessesinthesystem作業(yè)隊(duì)列:保存系統(tǒng)中所有的進(jìn)程Readyqueue–setofallprocessesresidinginmainmemory,readyandwaitingtoexecute就緒隊(duì)列Devicequeues–setofprocesseswaitingforanI/Odevice設(shè)備隊(duì)列:等待I/O設(shè)備的進(jìn)程Processesmigrateamongthevariousqueues進(jìn)程在不同的隊(duì)列間移動ReadyQueueAndVariousI/ODeviceQueues
就緒隊(duì)列和各種不同的設(shè)備隊(duì)列每種設(shè)備擁有自己的設(shè)備隊(duì)列RepresentationofProcessSchedulingqueuingdiagram隊(duì)列狀態(tài)圖Schedulers調(diào)度程序Long-termscheduler(orjobscheduler)–selectswhichprocessesshouldbebroughtintothereadyqueue長期調(diào)度(作業(yè)調(diào)度):選擇一個進(jìn)程進(jìn)入內(nèi)存的就緒隊(duì)列Short-termscheduler(orCPUscheduler)–selectswhichprocessshouldbeexecutednextandallocatesCPU短期調(diào)度(CPU調(diào)度):從就緒隊(duì)列中選擇一個進(jìn)程,并為之分配CPUSchedulers(Cont.)Short-termschedulerisinvokedveryfrequently(milliseconds)(mustbefast)短期調(diào)度頻率高Long-termschedulerisinvokedveryinfrequently(seconds,minutes)(maybeslow)長期調(diào)度頻率低Thelong-termschedulercontrolsthedegreeofmultiprogramming
長期調(diào)度控制多道程序設(shè)計的程度Processescanbedescribedaseither:進(jìn)程分類I/O-boundprocess–spendsmoretimedoingI/Othancomputations,manyshortCPUbursts
I/O為主的進(jìn)程CPU-boundprocess–spendsmoretimedoingcomputations;fewverylongCPUbursts
CPU為主的進(jìn)程進(jìn)程的復(fù)雜狀態(tài)(1)多個進(jìn)程競爭內(nèi)存資源內(nèi)存資源緊張無就緒進(jìn)程,處理機(jī)空閑:I/0的速度比處理機(jī)的慢的多,可能出現(xiàn)全部進(jìn)程阻塞等待解決方案:Swapping(交換技術(shù)):換出一部分內(nèi)存到外存,以騰出內(nèi)存空間。VirtualMemory(虛擬存儲技術(shù)):每個進(jìn)程只裝入一部分程序和數(shù)據(jù)(存儲管理部分)。對換技術(shù)、交換技術(shù)(Swapping)將內(nèi)存中暫時不能運(yùn)行的進(jìn)程,或暫時不用的數(shù)據(jù)和程序,換出到外存,以騰出足夠的內(nèi)存空間,把已經(jīng)具備運(yùn)行條件的進(jìn)程,或進(jìn)程需要的數(shù)據(jù)和程序,換入內(nèi)存。分析:針對進(jìn)程的存在位置(內(nèi)存或者外存),進(jìn)一步增加“阻塞掛起”和“就緒掛起”兩種狀態(tài)AdditionofMediumTermScheduling
中期調(diào)度(交換)七狀態(tài)進(jìn)程模型活動掛起事件發(fā)生事件發(fā)生等待事件掛起調(diào)度超時釋放活動掛起概念:進(jìn)程控制:系統(tǒng)使用一些具有特定功能的程序段來創(chuàng)建、撤銷進(jìn)程以及完成進(jìn)程各狀態(tài)之間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效并發(fā)執(zhí)行和協(xié)調(diào),實(shí)現(xiàn)資源共享的目的。Atomicoperation(原語):指用機(jī)器語言書寫的,在系統(tǒng)態(tài)下運(yùn)行的,在執(zhí)行中不可被中斷的程序段。。機(jī)器指令級:不允許中斷,不可分割功能級:不允許并發(fā)執(zhí)行(原語本身由若干條指令組成,要么全做,要么全不做,且順序做)在OS中,大都把進(jìn)程控制用程序段做成原語。完成進(jìn)程控制的原語有:Create(創(chuàng)建),Termination(終止),Blocked(阻塞),
Wakeup(喚醒),Suspend(掛起)等。Primitives(OperationonProcesses)createterminationblockedwakeup
ProcessCreation進(jìn)程創(chuàng)建Parentprocesscreatechildrenprocesses,which,inturncreateotherprocesses,formingatreeofprocesses父進(jìn)程創(chuàng)建子進(jìn)程,子進(jìn)程繼續(xù)創(chuàng)建,從而形成一棵進(jìn)程樹Resourcesharing資源共享Parentandchildrenshareallresources父子進(jìn)程共享所有資源Childrensharesubsetofparent’sresources子進(jìn)程共享部分父進(jìn)程的資源Parentandchildsharenoresources父子進(jìn)程不共享任何資源ExecutionParentandchildrenexecuteconcurrently子進(jìn)程和父進(jìn)程并發(fā)執(zhí)行Parentwaitsuntilchildrenterminate父進(jìn)程等待直到子進(jìn)程終止AtreeofprocessesonatypicalSolarisProcessCreation(Cont.)Addressspace地址空間Childduplicateofparent子進(jìn)程是父進(jìn)程的復(fù)制品Childhasaprogramloadedintoit子進(jìn)程裝入另一個新程序UNIXexamplesforksystemcallcreatesnewprocess
execsystemcallusedafteraforktoreplacetheprocess’memoryspacewithanewprogramProcessCreation在進(jìn)程表中增加一項(xiàng),并從PCB池中取一個空白PCB;為新進(jìn)程分配資源,除內(nèi)存空間外,還有其他各種資源;初始化進(jìn)程控制塊,為新進(jìn)程分配進(jìn)程標(biāo)識符,初始化PSW;加入就緒進(jìn)程隊(duì)列ProcessCreationCProgramForkingSeparateProcessintmain(){pid_tpid; /*forkanotherprocess*/ pid=fork(); if(pid<0){/*erroroccurred*/ fprintf(stderr,"ForkFailed"); exit(-1); } elseif(pid==0){/*childprocess*/ execlp("/bin/ls","ls",NULL); } else{/*parentprocess*/ /*parentwillwaitforthechildtocomplete*/ wait(NULL); printf("ChildComplete"); exit(0); }}ProcessTermination進(jìn)程終止Processexecuteslaststatementandaskstheoperatingsystemtodeleteit(exit)進(jìn)程完成執(zhí)行最后的語句并使用系統(tǒng)調(diào)用exit請求操作系統(tǒng)刪除自身Outputdatafromchildtoparent(viawait)進(jìn)程可以返回狀態(tài)值給父進(jìn)程(通過wait)Process’resourcesaredeallocatedbyoperatingsystem進(jìn)程的資源被操作系統(tǒng)釋放Parentmayterminateexecutionofchildrenprocesses(abort)父進(jìn)程能夠中止子進(jìn)程的執(zhí)行Childhasexceededallocatedresources子進(jìn)程使用了超過它所分配到的一些資源Taskassignedtochildisnolongerrequired子進(jìn)程的任務(wù)不再需要Ifparentisexiting如果父進(jìn)程結(jié)束了Someoperatingsystemdonotallowchildtocontinueifitsparentterminates一些操作系統(tǒng)不允許子進(jìn)程繼續(xù)執(zhí)行Allchildrenterminated-cascadingtermination級聯(lián)終止ProcessTermination(進(jìn)程終止)終止事由正常結(jié)束異常結(jié)束外界的干預(yù)終止流程OS通過調(diào)用進(jìn)程終止原語完成進(jìn)程的終止。第一步:根據(jù)被終止進(jìn)程的標(biāo)識符,從PCB集合中查找對應(yīng)進(jìn)程控制塊并讀出該進(jìn)程的狀態(tài);第二步:若被終止進(jìn)程正處于執(zhí)行狀態(tài),則終止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度,選擇一新進(jìn)程,把處理機(jī)分配給它。第三步:若進(jìn)程還有子孫進(jìn)程,應(yīng)將其所有子孫進(jìn)程終止,以防它們成為不可控制的。第四步:將進(jìn)程所占有的全部資源釋放(還給父進(jìn)程或系統(tǒng)),釋放進(jìn)程控制塊(若該進(jìn)成為執(zhí)行態(tài),要進(jìn)行進(jìn)程調(diào)度)。第五步:將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其他程序來收集相關(guān)信息。Blockingprocess進(jìn)程阻塞引發(fā)事件請求系統(tǒng)服務(wù)啟動某種操作新數(shù)據(jù)尚未到達(dá)無新工作可做BlockingprocessSavestate(現(xiàn)場)UpdatePCB(state:running->waiting)PutthePCBintoawaitqueueGotoscheduler(why?)Wakeupprocess(喚醒進(jìn)程)UpdatePCB(state:waiting->ready)
PutPCBintoreadyqueue
MaybegotoschedulerCooperatingProcesses
進(jìn)程協(xié)作Independentprocesscannotaffectorbeaffectedbytheexecutionofanotherprocess獨(dú)立進(jìn)程不能影響或被在系統(tǒng)內(nèi)執(zhí)行的其他進(jìn)程所影響Cooperatingprocesscanaffectorbeaffectedbytheexecutionofanotherprocess協(xié)作進(jìn)程影響或被在系統(tǒng)內(nèi)執(zhí)行的其他進(jìn)程所影響Advantagesofprocesscooperation進(jìn)程協(xié)作的好處Informationsharing信息共享Computationspeed-up加快計算Modularity模塊化Convenience方便Producer-ConsumerProblem
生產(chǎn)者消費(fèi)者問題Paradigmforcooperatingprocesses,producerprocessproducesinformationthatisconsumedbyaconsumerprocessunbounded-bufferplacesnopracticallimitonthesizeofthebuffer無限緩沖bounded-bufferassumesthatthereisafixedbuffersize有限緩沖InterprocessCommunication(IPC)Mechanismforprocessestocommunicateandtosynchronizetheiractions(IPC指的操作系統(tǒng)中為了進(jìn)程之間相互通信以使得進(jìn)程之間的動作同步的基本機(jī)制)常見的兩種通信模式1.SharedMemory2.Messagesystem–processescommunicatewitheachotherwithoutresortingtosharedvariables
消息系統(tǒng)是一種典型的IPC形式,在基于消息系統(tǒng)實(shí)現(xiàn)的多進(jìn)程程序中進(jìn)程間的通信不依賴于共享變量兩種基本的IPC模式SharedMemory共享內(nèi)存MessagePassing消息傳遞Sharedmemory生產(chǎn)者/消費(fèi)者問題:生產(chǎn)者與消費(fèi)者通過共享緩沖區(qū),實(shí)現(xiàn)數(shù)據(jù)傳遞。屬于基于共享存儲區(qū)通信。這里的共享存儲區(qū)屬于每個互相通信進(jìn)程的組成部分。不要求數(shù)據(jù)移動,一般屬于本地通信。需要交換信息的進(jìn)程通過對同一共享數(shù)據(jù)區(qū)的操作來達(dá)到相互通信。對于遠(yuǎn)程通信來說,每臺計算機(jī)擁有各自的內(nèi)存區(qū),不容易實(shí)現(xiàn)共享存儲區(qū)的訪問。SharedmemoryShmget建立一個新的共享存儲區(qū)或返回一個已經(jīng)存在的共享存儲區(qū)Shmat從邏輯上把一個共享存儲區(qū)附接到一個進(jìn)程的虛擬地址空間Shmdt從一進(jìn)程的虛擬地址空間斷接一共享存儲區(qū)Shmctl對共享存儲區(qū)的相關(guān)聯(lián)的各種參數(shù)進(jìn)行操作基于消息系統(tǒng)的IPCIPCfacilityprovidestwooperations:send(message)–messagesizefixedorvariablereceive(message)
基于消息系統(tǒng)的IPC中,提供如下兩個基本的操作send(message)–發(fā)送消息,參數(shù)message的大小可以固定,也可以不固定receive(message)–接收消息IfPandQwishtocommunicate,theyneedto:establishacommunication
linkbetweenthem(首先,建立相互通信的通信鏈接)exchangemessagesviasend/receive(通過send/receive進(jìn)行消息交換)Implementationofcommunicationlink(通信鏈接的具體實(shí)現(xiàn)形式)physical(e.g.,sharedmemory,hardwarebus)
物理鏈接,如共享內(nèi)存、硬件總線等logical(e.g.,logicalproperties)基于消息系統(tǒng)的IPCImplementationQuestionsHowarelinksestablished?鏈接是如何建立的?Canalinkbeassociatedwithmorethantwoprocesses?一個鏈接能夠關(guān)聯(lián)多于兩個進(jìn)程嗎?Howmanylinkscantherebebetweeneverypairofcommunicatingprocesses?每一對通信進(jìn)程間能夠有多少條鏈接?Whatisthecapacityofalink?容量Isthesizeofamessagethatthelinkcanmodatefixedorvariable?消息的大???Isalinkunidirectionalorbi-directional?鏈接是雙向還是單向的?DirectCommunication直接通信Processesmustnameeachotherexplicitly:send(P,message)–sendamessagetoprocessPreceive(Q,message)–receiveamessagefromprocessQ直接通信模式下,發(fā)送消息的進(jìn)程必須指定消息發(fā)送的對象,接收消息的進(jìn)程也必須知道消息是來自于那一個進(jìn)程PropertiesofcommunicationlinkLinksareestablishedautomatically鏈接自動創(chuàng)建Alinkisassociatedwithexactlyonepairofcommunicatingprocesses一個鏈接僅與兩個進(jìn)程相關(guān)Betweeneachpairthereexistsexactlyonelink每對進(jìn)程間僅有一個鏈接Thelinkmaybeunidirectional,butisusuallybi-directional鏈接可以是單向的,但通常是雙向的IndirectCommunication間接通信Messagesaredirectedandreceivedfrommailboxes(alsoreferredtoasports)通過郵箱或端口來發(fā)送和接收消息Eachmailboxhasauniqueid每個郵箱有一個固定IDProcessescancommunicateonlyiftheyshareamailbox只有進(jìn)程共享一個郵箱時,才能通信PropertiesofcommunicationlinkLinkestablishedonlyifprocessesshareacommonmailbox只有進(jìn)程共享郵箱時,才能建立鏈接Alinkmaybeassociatedwithmanyprocesses一個鏈接可以跟多個進(jìn)程關(guān)聯(lián)Eachpairofprocessesmayshareseveralcommunicationlinks兩個進(jìn)程之間可以有多個不同的鏈接Linkmaybeunidirectionalorbi-directionalIndirectCommunication間接通信Operationscreateanewmailbox創(chuàng)建新郵箱sendandreceivemessagesthroughmailbox通過郵箱發(fā)送和接收消息destroyamailbox刪除郵箱Primitivesaredefinedas:原語
send(A,message)–sendamessagetomailboxA
receive(A,message)–receiveamessagefrommailboxAIndirectCommunicationMailboxsharingP1,P2,andP3sharemailboxAP1,sends;P2
andP3receiveWhogetsthemessage?Solutions解決方案Allowalinktobeassociatedwithatmosttwoprocesses一個鏈接最多與兩個進(jìn)程關(guān)聯(lián)Allowonlyoneprocessatatimetoexecuteareceiveoperation一次最多一個進(jìn)程執(zhí)行receiveAllowthesystemtoselectarbitrarilythereceiver.Senderisnotifiedwhothereceiverwas.允許系統(tǒng)任意選擇一個進(jìn)程接收消息,也可以發(fā)送者指定接收者SynchronizationMessagepassingmaybeeitherblockingornon-blockingBlockingisconsideredsynchronous阻塞也成為同步BlockingsendhasthesenderblockuntilthemessageisreceivedBlockingreceivehasthereceiverblockuntilamessageisavailableNon-blockingisconsideredasynchronous非阻塞也稱異步Non-blockingsendhasthesendersendthemessageandcontinueNon-blockingreceivehasthereceiverreceiveavalidmessageornullBuffering緩沖Queueofmessagesattachedtothelink;implementedinoneofthreeways鏈接的消息隊(duì)列實(shí)現(xiàn)方法1. Zerocapacity–0messages
0容量:必須阻塞發(fā)送
Sendermustwaitforreceiver(rendezvous)2. Boundedcapacity–finitelengthofnmessages
Sendermustwaitiflinkfull有限容量3. Unboundedcapacity–infinitelength
Senderneverwaits無限容量Client-ServerCommunication客戶機(jī)-服務(wù)器模式(C/S模式)的網(wǎng)絡(luò)通信也屬于一類進(jìn)程間通信方式典型方式SocketsRemoteProcedureCallsRemoteMethodInvocation(Java)SocketsAsocketisdefinedasanendpointforcommunication
一個套接字是通信的一個端點(diǎn)ConcatenationofIPaddressandport套接字的信息主要包含IP地址+通信端口例如,Thesocket161.25.19.8:1625referstoport1625onhost161.25.19.8Communicationconsistsbetweenapairofsockets通信在一對套接字之間發(fā)生SocketCommunicationRemoteProcedureCalls遠(yuǎn)程過程調(diào)用Remoteprocedurecall(RPC)abstractsprocedurecallsbetweenprocessesonnetworkedsystems. RPC提供了在聯(lián)網(wǎng)的計算機(jī)系統(tǒng)之間進(jìn)行過程調(diào)用的機(jī)制Stubs–client-sideproxyfortheactualprocedureontheserver.Theclient-sidestublocatestheserverandmarshallstheparameters.
客戶端的訪問代理負(fù)責(zé)確定server的位置,并將遠(yuǎn)程過程調(diào)用所需的參數(shù)按規(guī)定的格式封裝好Theserver-sidestubreceivesthismessage,unpacksthemarshalledparameters,a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版八年級道德與法治上冊聽課評課記錄《7.2服務(wù)社會》
- 2024-2025學(xué)年八年級物理全冊1.3站在巨人的肩膀上練習(xí)含解析新版滬科版
- 技術(shù)員年度工作規(guī)劃
- 公司行政部門個人工作計劃
- 年度幼兒教師個人工作計劃
- 物業(yè)客服部工作計劃范本
- 可調(diào)單價合同范本
- 知識產(chǎn)權(quán)授權(quán)協(xié)議書范本
- 商業(yè)店鋪?zhàn)赓U合同范本
- 紅河衛(wèi)生職業(yè)學(xué)院《物理化學(xué)(II)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報告
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計》課件-1:Python簡介與應(yīng)用領(lǐng)域
- 各類心理量表大全
- 體育概論(第二版)課件第三章體育目的
- DB11T 1481-2024生產(chǎn)經(jīng)營單位生產(chǎn)安全事故應(yīng)急預(yù)案評審規(guī)范
- 《氓》教學(xué)設(shè)計 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊
- 《網(wǎng)店運(yùn)營與管理》第3版 課件全套 白東蕊 第1-11章 網(wǎng)上開店概述- 移動網(wǎng)店運(yùn)營
- 2024年全國國家電網(wǎng)招聘之電網(wǎng)計算機(jī)考試歷年考試題(附答案)
- 化學(xué)元素周期表注音版
評論
0/150
提交評論