2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  完成端口技術(shù)在學(xué)生管理系統(tǒng)中的應(yīng)用</p><p><b>  【摘要】 </b></p><p>  當(dāng)前,各大學(xué)、學(xué)院都非常重視學(xué)生管理工作,以學(xué)生為根本的教育理念已經(jīng)漸漸成為教育界的廣泛同識(shí)。學(xué)生管理系統(tǒng)解決了學(xué)生管理工作繁瑣、量大、雜亂的問(wèn)題。在設(shè)計(jì)和開(kāi)發(fā)管理系統(tǒng)的時(shí)候如何解決大規(guī)模并發(fā)問(wèn)題成為一個(gè)難點(diǎn),而Windows完成端口技術(shù)(IO

2、CP)為此問(wèn)題提供了很好的解決方案。 </p><p><b>  【關(guān)鍵詞】 </b></p><p>  學(xué)生管理;系統(tǒng);完成端口;IOCP;重疊IO </p><p>  學(xué)生管理系統(tǒng)大多采用C/S結(jié)構(gòu)設(shè)計(jì)模式。在日常生活中,對(duì)于一個(gè)中等規(guī)模的學(xué)院來(lái)說(shuō),同時(shí)達(dá)到千人以上在線的情況經(jīng)常發(fā)生,如果采用一個(gè)用戶一個(gè)線程的設(shè)計(jì)方式那將造成CPU在

3、這成千上萬(wàn)的線程間進(jìn)行切換,后果不可想象。Windows IOCP完成端口技術(shù)則完全顛覆傳統(tǒng)設(shè)計(jì)模式,它在將并行的線程數(shù)量設(shè)計(jì)上限。目前,IOCP完成端口是Windows下性能最好的I/O模型,同時(shí)它也是最復(fù)雜的內(nèi)核對(duì)象。它避免了大量用戶并發(fā)時(shí)原有模型采用的方式,極大的提高了程序的并行處理能力。 </p><p><b>  1系統(tǒng)設(shè)計(jì) </b></p><p>  

4、系統(tǒng)采用B/S結(jié)構(gòu)設(shè)計(jì),主要分為登錄、用戶管理、信息管理、學(xué)生處分管理、評(píng)分管理等大模塊。服務(wù)器端應(yīng)用完成端口技術(shù),客戶端采用普通的Socket連接方式。服務(wù)器端數(shù)據(jù)庫(kù)系統(tǒng)采用Sqlserver2000。系統(tǒng)通過(guò)IOCP服務(wù)器來(lái)訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng),用戶通過(guò)客戶端軟件進(jìn)行Socket短連接到IOCP服務(wù)器,進(jìn)行數(shù)據(jù)操作。系統(tǒng)結(jié)構(gòu)圖如圖1所示。 </p><p><b>  圖1系統(tǒng)結(jié)構(gòu)圖 </b>

5、</p><p>  2完成端口技術(shù)的應(yīng)用 </p><p>  2.1完成端口的優(yōu)點(diǎn) </p><p>  完成端口會(huì)充分利用Windows內(nèi)核來(lái)進(jìn)行I/O的調(diào)度,是C/S通信模式中性能最好的網(wǎng)絡(luò)通信模型。使用“同步”的方式操作會(huì)阻塞住來(lái)自同一個(gè)線程的任何其他操作,所以要寫高性能的服務(wù)器程序,通信一定要是異步的。微軟提出完成端口模型的初衷,就是為了解決這種“one

6、threadperclient”的缺點(diǎn)的,它充分利用內(nèi)核對(duì)象的調(diào)度,只使用少量的幾個(gè)線程來(lái)處理和客戶端的所有通信,消除了無(wú)謂的線程上下文切換,最大限度的提高了網(wǎng)絡(luò)通信的性能。 </p><p>  2.2使用完成端口的流程 </p><p>  (1)調(diào)用CreateIoCompletionPort函數(shù)創(chuàng)建完成端口,將返回句柄保存。 </p><p> ?。?)根據(jù)

7、系統(tǒng)中處理器個(gè)數(shù),創(chuàng)建工作者(Worker)線程,用來(lái)處理和客戶端的通信請(qǐng)求。Worker線程個(gè)數(shù):N=2*處理器個(gè)數(shù)+2。 </p><p> ?。?)接收Socket連接,兩種實(shí)現(xiàn)方式:一是啟動(dòng)一個(gè)獨(dú)立的線程,專門用來(lái)accept接收客戶端的連接請(qǐng)求;二是用性能優(yōu)異的異步AcceptEx請(qǐng)求。 </p><p> ?。?)當(dāng)客戶端連入,調(diào)用CreateIoCompletionPort函

8、數(shù),這里不用新建完成端口,而是把新連入的socket(前面創(chuàng)建設(shè)備句柄),與1)完成端口綁定在一起。至此,完成端口的相關(guān)部署工作完成。 </p><p> ?。?)客戶端接入后,在這個(gè)Socket上提交一個(gè)網(wǎng)絡(luò)請(qǐng)求,WSARecv負(fù)責(zé)處理請(qǐng)求,執(zhí)行接收數(shù)據(jù)的操作。 </p><p> ?。?)此時(shí),其它幾個(gè)Worker線程分別執(zhí)行4、5步操作。 </p><p>&

9、lt;b>  2.3系統(tǒng)實(shí)現(xiàn) </b></p><p>  (1)創(chuàng)建完成端口 </p><p>  HANDLE m_hIOCompletionPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); </p><p>  (2)根據(jù)系統(tǒng)中CPU核心的數(shù)量建立對(duì)應(yīng)的Worke

10、r線程 </p><p>  SYSTEM_INFO si; </p><p>  GetSystemInfo(&si) ; </p><p>  int m_nProcessors = si.dwNumberOfProcessors; </p><p>  m_phWorkerThreads[i] = ::CreateThread(

11、0, 0, _WorkerThread, …) ; </p><p> ?。?)創(chuàng)建用于監(jiān)聽(tīng)的Socket,綁定到完成端口上,然后開(kāi)始在指定的端口上監(jiān)聽(tīng)連接請(qǐng)求 </p><p>  SOCKET m_sockListen = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED); </p><

12、p>  If(SOCKET_ERROR==bind(m_sockListen,(struct sockaddr*)&ServerAddress, sizeof(ServerAddress))); </p><p>  listen(m_sockListen,SOMAXCONN)) ; </p><p> ?。?)在這個(gè)監(jiān)聽(tīng)Socket上投遞AcceptEx請(qǐng)求 </p&

13、gt;<p>  GUID GuidAcceptEx = WSAID_ACCEPTEX; WSAIoctl(m_pListenContext>m_Socket, SIO_GET_EXTENSI ON_FUNCTION_POINTER, &GuidAcceptEx,sizeof(GuidAcceptEx), &m_lpfnAcceptEx, sizeof(m_lpfnAcceptEx) , &d

14、wBytes, NULL,NULL) ; </p><p> ?。?)Worker線程的工作 </p><p>  BOOL bReturn = GetQueuedCompletionStatus(pIOCPModel>m_hIOCompletionPort, </p><p>  (LPDWORD)&lpContext,&pOverlappe

15、d,INFINITE ); </p><p> ?。?)收到Accept通知時(shí)執(zhí)行_DoAccept </p><p>  (7)當(dāng)收到Recv通知時(shí), _DoRecv </p><p><b>  3界面展示 </b></p><p>  3.1用戶登錄頁(yè)面(圖2) </p><p><b

16、>  圖2登陸界面 </b></p><p>  3.2系統(tǒng)主界面(圖3) </p><p><b>  圖3系統(tǒng)主界面 </b></p><p><b>  參考文獻(xiàn): </b></p><p>  [1]郭峰.深入淺出設(shè)計(jì)模式.北京:中國(guó)鐵道出版社,2013 </p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論