第3章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)1_概述及進(jìn)程管理_第1頁(yè)
第3章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)1_概述及進(jìn)程管理_第2頁(yè)
第3章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)1_概述及進(jìn)程管理_第3頁(yè)
第3章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)1_概述及進(jìn)程管理_第4頁(yè)
第3章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)1_概述及進(jìn)程管理_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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、軟件開發(fā)技術(shù)基礎(chǔ)普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材趙英良等.軟件開發(fā)技術(shù)基礎(chǔ)(第2版). 機(jī)械工業(yè)出版社第第3章章 操作系統(tǒng)及相關(guān)程序設(shè)計(jì)操作系統(tǒng)及相關(guān)程序設(shè)計(jì)西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心2 主主 要要 內(nèi)內(nèi) 容容l操作系統(tǒng)及其功能操作系統(tǒng)及其功能l進(jìn)程管理應(yīng)用程序設(shè)計(jì)進(jìn)程管理應(yīng)用程序設(shè)計(jì) l內(nèi)存管理應(yīng)用程序設(shè)計(jì)內(nèi)存管理應(yīng)用程序設(shè)計(jì) l設(shè)備與文件管理應(yīng)用程序設(shè)計(jì)設(shè)備與文件管理應(yīng)用程序設(shè)計(jì) l人機(jī)接口管理應(yīng)用程序設(shè)計(jì)人機(jī)接口管理應(yīng)用程序設(shè)計(jì) 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心331 操作系統(tǒng)概述l操作系統(tǒng)的發(fā)展操作系統(tǒng)的發(fā)展l操作系統(tǒng)的功能操作系統(tǒng)的功能l

2、操作系統(tǒng)的分類操作系統(tǒng)的分類l常見操作系統(tǒng)簡(jiǎn)介常見操作系統(tǒng)簡(jiǎn)介西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心4什么是操作系統(tǒng)?l定義定義l一組控制和管理計(jì)算機(jī)軟、硬件資源,合理組織計(jì)一組控制和管理計(jì)算機(jī)軟、硬件資源,合理組織計(jì)算機(jī)的工作流程,為用戶提供便捷使用計(jì)算機(jī)的程算機(jī)的工作流程,為用戶提供便捷使用計(jì)算機(jī)的程序的集合序的集合 l作用作用 l管理計(jì)算機(jī)和使用計(jì)算機(jī)管理計(jì)算機(jī)和使用計(jì)算機(jī) l特征特征 l并發(fā)性、共享性、虛擬性和不確定性并發(fā)性、共享性、虛擬性和不確定性 操作系統(tǒng)是連接硬件和軟件的橋梁操作系統(tǒng)是連接硬件和軟件的橋梁西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心53.1.1操作系統(tǒng)的發(fā)展操作系統(tǒng)的發(fā)展l手工操作手工

3、操作l單道批處理單道批處理l多道程序系統(tǒng)多道程序系統(tǒng)l分時(shí)操作系統(tǒng)分時(shí)操作系統(tǒng)l實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)l微機(jī)操作系統(tǒng)微機(jī)操作系統(tǒng)西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心6DOS中的批處理中的批處理dir /pcopy 批處理批處理.bat batch.batnotepadcalcpause西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心7 3.1.2 操作系統(tǒng)的功能l計(jì)算機(jī)的硬件、軟件資源有哪些?計(jì)算機(jī)的硬件、軟件資源有哪些?lCPU管理(進(jìn)程管理)管理(進(jìn)程管理)l存儲(chǔ)器管理存儲(chǔ)器管理l文件管理文件管理l設(shè)備管理設(shè)備管理l用戶接口用戶接口西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心8用戶接口類型用戶接口類型l命令接口命令接口,用戶

4、通過交互命令方式直接或,用戶通過交互命令方式直接或間接地對(duì)計(jì)算機(jī)進(jìn)行操作,間接地對(duì)計(jì)算機(jī)進(jìn)行操作,lDOS:是純命令行輸入方式,:是純命令行輸入方式,Windows:鼠標(biāo)操作方式:鼠標(biāo)操作方式l程序接口程序接口,供用戶以程序方式進(jìn)行操作,供用戶以程序方式進(jìn)行操作,或或API(Application Programming Interface),用戶通過,用戶通過API函數(shù)可以調(diào)用系函數(shù)可以調(diào)用系統(tǒng)提供的例行程序,實(shí)現(xiàn)既定的操作。統(tǒng)提供的例行程序,實(shí)現(xiàn)既定的操作。lDOS:中斷服務(wù)功能,:中斷服務(wù)功能,Windows:Windows API函函數(shù)數(shù)西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心3.1.3操作系統(tǒng)

5、的分類操作系統(tǒng)的分類l批處理操作系統(tǒng)批處理操作系統(tǒng)l嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)l分時(shí)操作系統(tǒng)分時(shí)操作系統(tǒng)l實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)l網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)l分布式操作系統(tǒng)分布式操作系統(tǒng)9西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心10l實(shí)用的操作系統(tǒng)實(shí)用的操作系統(tǒng)lWindows:l窗口式圖形界面、網(wǎng)絡(luò)功能、分布式功能窗口式圖形界面、網(wǎng)絡(luò)功能、分布式功能,個(gè)人計(jì)個(gè)人計(jì)算機(jī)操作系統(tǒng)算機(jī)操作系統(tǒng)lDOS:l磁盤操作系統(tǒng)磁盤操作系統(tǒng), ,個(gè)人計(jì)算機(jī)操作系統(tǒng)個(gè)人計(jì)算機(jī)操作系統(tǒng),單道程序系單道程序系統(tǒng)、批處理統(tǒng)、批處理lLinux l分時(shí)操作系統(tǒng)、多任務(wù)、多用戶、網(wǎng)絡(luò)分時(shí)操作系統(tǒng)、多任務(wù)、多用戶、網(wǎng)絡(luò)西安交通大學(xué)

6、計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心3.1.4 常見操作系統(tǒng)簡(jiǎn)介常見操作系統(tǒng)簡(jiǎn)介lDOSlDisk Operating Systeml1979年,微軟公司為年,微軟公司為IBM公司的公司的16位位Intel 8086 PC設(shè)計(jì)和開發(fā)了一個(gè)磁盤操作系統(tǒng)設(shè)計(jì)和開發(fā)了一個(gè)磁盤操作系統(tǒng)MS-DOS 1.0,l1981年推出了支持內(nèi)存為年推出了支持內(nèi)存為320KB的的MS-DOS 1.1版,后更名為版,后更名為PC-DOS 1.0。l1982年,支持年,支持PC/XT 硬盤的硬盤的MS-DOS 2.0問問世世11西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心l1984年年11月,月,MS-DOS3.1 ,加入對(duì)網(wǎng)絡(luò)支持。,加入對(duì)網(wǎng)絡(luò)支持

7、。l1991年年6月,月,MS-DOS5.0,繼承,繼承4.0對(duì)于內(nèi)存對(duì)于內(nèi)存管理進(jìn)行的改進(jìn),是管理進(jìn)行的改進(jìn),是EMM 規(guī)格最為穩(wěn)定、普規(guī)格最為穩(wěn)定、普及的版本,也加入了許多內(nèi)存管理的程式,如及的版本,也加入了許多內(nèi)存管理的程式,如EMM386、MEM 等等等等l1994年年6月,月,MS-DOS6.22 ,最后一個(gè)銷售版,最后一個(gè)銷售版本。本。l2000年年9月,月,MS-DOS8.0 ,dos的最后一個(gè)版的最后一個(gè)版本,取消了部分功能,例如不再支持本,取消了部分功能,例如不再支持SYS命令、命令、打印機(jī)操作打印機(jī)操作12西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心lDOSlDOS是一種單用戶、單任務(wù)的

8、磁盤操作系統(tǒng)是一種單用戶、單任務(wù)的磁盤操作系統(tǒng) lDOS操作系統(tǒng)包含四大模塊:操作系統(tǒng)包含四大模塊:l引導(dǎo)模塊引導(dǎo)模塊l內(nèi)核模塊內(nèi)核模塊l輸入輸出接口模塊輸入輸出接口模塊l命令管理模塊命令管理模塊13西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心14DOS的組成的組成西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心15DOS命令的執(zhí)行過程命令的執(zhí)行過程16DOS的常用命令的常用命令(命令提示符方式可測(cè)試命令提示符方式可測(cè)試)lCD 進(jìn)入子目錄進(jìn)入子目錄lCLS 清除屏幕清除屏幕lCOPY 復(fù)制文件復(fù)制文件lDEL刪除文件刪除文件lDIR 列目錄列目錄lFORMAT 格式化格式化磁盤磁盤lMD創(chuàng)建子目錄創(chuàng)建子目錄lPATH 設(shè)置

9、或顯示設(shè)置或顯示搜索路徑搜索路徑lRD 刪除子目錄刪除子目錄lREM重新命名重新命名lType 顯示文件顯示文件l管道管道|l重定向重定向兩個(gè)有用的命令:兩個(gè)有用的命令:ping 、ipconfig/all西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心17Windows操作系統(tǒng)操作系統(tǒng)lWindowsl多用戶、多任務(wù)、圖形化多用戶、多任務(wù)、圖形化l支持網(wǎng)絡(luò)、支持多媒體、支持多種硬件和應(yīng)支持網(wǎng)絡(luò)、支持多媒體、支持多種硬件和應(yīng)用程序用程序西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心18Windows NT體系結(jié)構(gòu)體系結(jié)構(gòu) 登錄進(jìn)程和會(huì)話管理器 事件日志、調(diào)度服務(wù)、SQL ServerOS/2;Win32; POSIX等MS-D

10、OS程序和Win32程序進(jìn)程線程管理、I/O和內(nèi)存管理 線程調(diào)度、中斷和異常處理 將內(nèi)核、設(shè)備驅(qū)動(dòng)程序和執(zhí)行體分離以適應(yīng)不同的平臺(tái) 將I/O函數(shù)調(diào)用轉(zhuǎn)換為I/O請(qǐng)求 窗口和繪制 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心19Windows操作系統(tǒng)操作系統(tǒng)lWindowsl最常用的功能是:桌面、瀏覽器、資源最常用的功能是:桌面、瀏覽器、資源管理器、我的電腦、網(wǎng)上鄰居、控制面管理器、我的電腦、網(wǎng)上鄰居、控制面板板(Control)、任務(wù)管理器、任務(wù)管理器(taskmgr)、lW o r d 、 E x c e l 、 V C + + , 記 事 本記 事 本(Notepad),寫字板,寫字板(write) 西

11、安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心20窗口窗口 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心21l過程驅(qū)動(dòng)的程序結(jié)構(gòu)過程驅(qū)動(dòng)的程序結(jié)構(gòu)lWindows事件驅(qū)動(dòng)的程序結(jié)構(gòu)(消息驅(qū)動(dòng)的程事件驅(qū)動(dòng)的程序結(jié)構(gòu)(消息驅(qū)動(dòng)的程序結(jié)構(gòu))序結(jié)構(gòu))l系統(tǒng)消息隊(duì)列系統(tǒng)消息隊(duì)列l(wèi)Windows也為每個(gè)應(yīng)用程序創(chuàng)建一個(gè)也為每個(gè)應(yīng)用程序創(chuàng)建一個(gè)應(yīng)用消息應(yīng)用消息隊(duì)列隊(duì)列。事件所產(chǎn)生的消息,。事件所產(chǎn)生的消息,首先首先進(jìn)入系統(tǒng)消息進(jìn)入系統(tǒng)消息隊(duì)列,隊(duì)列,然后然后再被傳送到對(duì)應(yīng)的應(yīng)用消息隊(duì)列,再被傳送到對(duì)應(yīng)的應(yīng)用消息隊(duì)列,最后最后才被送到消息所對(duì)應(yīng)的窗口。才被送到消息所對(duì)應(yīng)的窗口。Windows應(yīng)用程序設(shè)計(jì)模式應(yīng)用程序設(shè)計(jì)模式西安交通大學(xué)計(jì)算機(jī)

12、教學(xué)實(shí)驗(yàn)中心22Windows中的消息循環(huán)中的消息循環(huán)23消息類型消息類型l 標(biāo)準(zhǔn)消息標(biāo)準(zhǔn)消息(windows消消息息): 任何以任何以WM_開頭開頭的消息的消息(WM_COMMAND除外除外);如:如:WM_QUIT,WM_CREATE;l命令消息命令消息: WM_COMMAND;l子窗口通知子窗口通知(控件通知控件通知): 由子窗口(大多為控件)由子窗口(大多為控件)產(chǎn)生并發(fā)送到該控件所產(chǎn)生并發(fā)送到該控件所屬的父窗口的消息。屬的父窗口的消息。l常見消息宏常見消息宏lWM_LBUTTONDOWN lWM_RBUTTONDOWNlWM_LBUTTONUP lWM_PAINT西安交通大學(xué)計(jì)算機(jī)教

13、學(xué)實(shí)驗(yàn)中心24消息的結(jié)構(gòu)消息的結(jié)構(gòu)l消息結(jié)構(gòu):消息號(hào)和參數(shù)組成消息結(jié)構(gòu):消息號(hào)和參數(shù)組成typedef struct tagMSG HWND hwnd;窗口句柄,為窗口句柄,為NULL,則可檢索所有駐留在,則可檢索所有駐留在消息隊(duì)列中的消息消息隊(duì)列中的消息 UINT message;消息值,由消息值,由windows.h頭文件中的宏定義頭文件中的宏定義來(lái)標(biāo)識(shí)來(lái)標(biāo)識(shí) WPARAM wParam;包含有關(guān)消息的附加信息包含有關(guān)消息的附加信息,不同消息其不同消息其值有所不同值有所不同 LPARAM lParam; DWORD time; 指定消息送至隊(duì)列的時(shí)間指定消息送至隊(duì)列的時(shí)間 POINT pt

14、;指定消息發(fā)送時(shí)屏幕光標(biāo)的位置,指定消息發(fā)送時(shí)屏幕光標(biāo)的位置, 其數(shù)據(jù)類型其數(shù)據(jù)類型POINT也是一個(gè)結(jié)構(gòu)體也是一個(gè)結(jié)構(gòu)體MSG;西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心25句柄句柄l多個(gè)程序或一個(gè)程序的多個(gè)副本,多個(gè)程序或一個(gè)程序的多個(gè)副本,稱為實(shí)例。稱為實(shí)例。l為了對(duì)同一程序的多個(gè)副本進(jìn)行管理,為了對(duì)同一程序的多個(gè)副本進(jìn)行管理,Windows引入了引入了實(shí)例句柄實(shí)例句柄。Windows為每個(gè)為每個(gè)應(yīng)用程序建立一張表,實(shí)例句柄就好象是這應(yīng)用程序建立一張表,實(shí)例句柄就好象是這張表的一個(gè)索引。張表的一個(gè)索引。l句柄指句柄指Windows使用的一個(gè)唯一使用的一個(gè)唯一的整數(shù)值的整數(shù)值,西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)

15、驗(yàn)中心26l使用使用VC+編寫編寫Windows程序通程序通常有三種方式:常有三種方式:l直接使用直接使用Windows API函數(shù),函數(shù),l通過通過VC+提供的工具生成對(duì)話框框架程序提供的工具生成對(duì)話框框架程序l文檔文檔視圖框架程序視圖框架程序 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心例例 文檔視圖框架程序文檔視圖框架程序 l步驟步驟 l打開打開VC+ l工程類型為工程類型為“MFC AppWizard(exe) ”l程序類型為程序類型為“Single document ”l改變窗口標(biāo)題改變窗口標(biāo)題l在視圖類的在視圖類的OnDraw函數(shù)中添加代碼:函數(shù)中添加代碼:“pDC-TextOut(100,10

16、0,MFC文檔文檔/視圖演示程視圖演示程序序);” 27西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心28void CTest_winView:OnDraw(CDC* pDC) CTest_winDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CString m_str;int c,a=2,b=123;c=a+b;m_str=Hello;pDC-TextOut (10,10,m_str);m_str.Format (%d,c);pDC-TextOut (10,30,m_str);pDC-Rectangle (100,100,400,400); 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)

17、驗(yàn)中心293.2 進(jìn)程管理lCPU與進(jìn)程管理的相關(guān)概念與進(jìn)程管理的相關(guān)概念 lWindows操作系統(tǒng)的進(jìn)程和線程操作系統(tǒng)的進(jìn)程和線程管理管理 l進(jìn)程和線程的應(yīng)用進(jìn)程和線程的應(yīng)用 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心30 3.2.1 CPU與進(jìn)程管理 l主要任務(wù)主要任務(wù)l對(duì)處理器的時(shí)間進(jìn)行合理分配、對(duì)處理器的對(duì)處理器的時(shí)間進(jìn)行合理分配、對(duì)處理器的運(yùn)行實(shí)施有效的管理運(yùn)行實(shí)施有效的管理 l程序程序l由輸入、處理和輸出三部分組成,有嚴(yán)格時(shí)由輸入、處理和輸出三部分組成,有嚴(yán)格時(shí)間順序的可執(zhí)行指令序列間順序的可執(zhí)行指令序列l(wèi)是一個(gè)靜態(tài)概念是一個(gè)靜態(tài)概念西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心l順序執(zhí)行順序執(zhí)行l(wèi)操作系統(tǒng)依

18、次執(zhí)行各個(gè)程序,在一個(gè)程序的操作系統(tǒng)依次執(zhí)行各個(gè)程序,在一個(gè)程序的整個(gè)執(zhí)行過程中由該程序占有全部系統(tǒng)資源整個(gè)執(zhí)行過程中由該程序占有全部系統(tǒng)資源l單道程序執(zhí)行的特征單道程序執(zhí)行的特征l順序性、封閉性、可再現(xiàn)性順序性、封閉性、可再現(xiàn)性l并發(fā)執(zhí)行并發(fā)執(zhí)行l(wèi)多個(gè)程序在一個(gè)處理器上的交替執(zhí)行,其目多個(gè)程序在一個(gè)處理器上的交替執(zhí)行,其目的主要是為了提高計(jì)算機(jī)資源的利用率的主要是為了提高計(jì)算機(jī)資源的利用率l多道程序并發(fā)執(zhí)行的特征多道程序并發(fā)執(zhí)行的特征l間斷(異步)性、失去封閉性、失去可再現(xiàn)性。間斷(異步)性、失去封閉性、失去可再現(xiàn)性。31西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心l進(jìn)程的定義進(jìn)程的定義l進(jìn)程的特點(diǎn)進(jìn)程的

19、特點(diǎn)l進(jìn)程的狀態(tài)進(jìn)程的狀態(tài) 32西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心進(jìn)程的狀態(tài)轉(zhuǎn)換進(jìn)程的狀態(tài)轉(zhuǎn)換33西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心進(jìn)程管理的關(guān)鍵問題進(jìn)程管理的關(guān)鍵問題l進(jìn)程的同步進(jìn)程的同步l進(jìn)程的互斥進(jìn)程的互斥lPCB的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)l進(jìn)程的調(diào)度進(jìn)程的調(diào)度l進(jìn)程調(diào)度的算法進(jìn)程調(diào)度的算法l進(jìn)程與程序的區(qū)別進(jìn)程與程序的區(qū)別34西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心35 3.2.2 進(jìn)程程序設(shè)計(jì)lWindows API函數(shù)庫(kù),它以函數(shù)庫(kù),它以C語(yǔ)言標(biāo)準(zhǔn)提語(yǔ)言標(biāo)準(zhǔn)提供給程序員,供給程序員,CreateProcess函數(shù)在一個(gè)函數(shù)在一個(gè)進(jìn)程中建立另一個(gè)子進(jìn)程,還可以通過進(jìn)程中建立另一個(gè)子進(jìn)程,還可以通過Termi

20、nateProcess函數(shù)退出該子進(jìn)程的函數(shù)退出該子進(jìn)程的執(zhí)行。執(zhí)行。西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心36進(jìn)程函數(shù)進(jìn)程函數(shù)lCreateProcessCreateProcess函數(shù)來(lái)創(chuàng)建一個(gè)函數(shù)來(lái)創(chuàng)建一個(gè)進(jìn)程進(jìn)程 lOpenProcessOpenProcess:獲得一個(gè)已經(jīng)存:獲得一個(gè)已經(jīng)存在的進(jìn)程對(duì)象的句柄在的進(jìn)程對(duì)象的句柄lTerminateProcessTerminateProcess終止指定進(jìn)程終止指定進(jìn)程 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心37CreateProcessbRet = CreateProcess(NULL, /不在此指定可執(zhí)行文檔的文檔名不在此指定可執(zhí)行文檔的文檔名szCom

21、mandLine, /命令行參數(shù)命令行參數(shù)NULL, /默認(rèn)進(jìn)程安全性默認(rèn)進(jìn)程安全性NULL, /默認(rèn)線程安全性默認(rèn)線程安全性FALSE, /當(dāng)前進(jìn)程內(nèi)的句柄不能夠被子進(jìn)程繼承當(dāng)前進(jìn)程內(nèi)的句柄不能夠被子進(jìn)程繼承CREATE_NEW_CONSOLE, /為新進(jìn)程創(chuàng)建一個(gè)新的控為新進(jìn)程創(chuàng)建一個(gè)新的控制臺(tái)窗口制臺(tái)窗口NULL, /使用本進(jìn)程的環(huán)境變量使用本進(jìn)程的環(huán)境變量NULL, /使用本進(jìn)程的驅(qū)動(dòng)器和目錄使用本進(jìn)程的驅(qū)動(dòng)器和目錄&si, /父進(jìn)程傳給子進(jìn)程的一些信息父進(jìn)程傳給子進(jìn)程的一些信息&pi); /保存新進(jìn)程信息的結(jié)構(gòu)保存新進(jìn)程信息的結(jié)構(gòu)西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心38獲得

22、一個(gè)已經(jīng)存在的進(jìn)程對(duì)象的句柄獲得一個(gè)已經(jīng)存在的進(jìn)程對(duì)象的句柄HANDLE OpenProcess( DWORD dwDesiredAccess, /訪問權(quán)限訪問權(quán)限 BOOL bInheritHandle, /若要子進(jìn)程獲得對(duì)該若要子進(jìn)程獲得對(duì)該對(duì)象的權(quán)限,應(yīng)為對(duì)象的權(quán)限,應(yīng)為TRUE,否則為,否則為FALSEDWORD dwProcessId /進(jìn)程標(biāo)識(shí)號(hào)進(jìn)程標(biāo)識(shí)號(hào)); 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心39終止進(jìn)程終止進(jìn)程lBOOL TerminateProcess(BOOL TerminateProcess( HANDLE hProcess, HANDLE hProcess, / / 進(jìn)程句

23、柄進(jìn)程句柄,由,由OpenProcessOpenProcess函數(shù)返函數(shù)返回回 UINT uExitCode UINT uExitCode / / 進(jìn)程退出碼,這里可以設(shè)為進(jìn)程退出碼,這里可以設(shè)為0 0);); 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心40進(jìn)程終止實(shí)例進(jìn)程終止實(shí)例l使用任務(wù)管理器查到待終止的進(jìn)使用任務(wù)管理器查到待終止的進(jìn)程號(hào)為程號(hào)為:2212lHANDLE hProcess3;lhProcess3=OpenProcess(PROCESS_TERMINATE,FALSE,2212);lTerminateProcess(hProcess3,0);西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心41保存創(chuàng)建的進(jìn)

24、程信息保存創(chuàng)建的進(jìn)程信息PROCESS_INFORMATIONPROCESS_INFORMATION結(jié)構(gòu)體保存創(chuàng)建的進(jìn)程信息,結(jié)構(gòu)體保存創(chuàng)建的進(jìn)程信息,其格式如下:其格式如下:typedef struct _PROCESS_INFORMATION typedef struct _PROCESS_INFORMATION HANDLE hProcess; / HANDLE hProcess; /進(jìn)程句柄進(jìn)程句柄 HANDLE hThread; /HANDLE hThread; /主線程句柄主線程句柄 DWORD dwProcessId; /DWORD dwProcessId; /進(jìn)程編號(hào)進(jìn)程編號(hào)

25、DWORD dwThreadId; /DWORD dwThreadId; /主線程編號(hào)主線程編號(hào) PROCESS; PROCESS; 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心42【例例3-23-2】編程顯示當(dāng)前系統(tǒng)所有進(jìn)編程顯示當(dāng)前系統(tǒng)所有進(jìn)程的編號(hào)和名稱。程的編號(hào)和名稱。lCreateToolhelp32SnapshotCreateToolhelp32SnapshotlTakes a snapshot of the processes and Takes a snapshot of the processes and the heaps, modules, and threads used the h

26、eaps, modules, and threads used by the processes.by the processes.l取得進(jìn)程快照取得進(jìn)程快照西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心43CreateToolhelp32Snapshotl為指定的進(jìn)程、進(jìn)程使用的堆為指定的進(jìn)程、進(jìn)程使用的堆HEAP、模塊、模塊MODULE、線、線程程THREAD)建立一個(gè)快照)建立一個(gè)快照snapshot。西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心44函數(shù)格式函數(shù)格式lHANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS ,

27、 /TH32CS_SNAPTHREAD DWORD th32ProcessID /進(jìn)程標(biāo)識(shí)號(hào),當(dāng)前進(jìn)程為進(jìn)程標(biāo)識(shí)號(hào),當(dāng)前進(jìn)程為0);ldwFlags輸入輸入指定快照中包含的系統(tǒng)內(nèi)容。指定快照中包含的系統(tǒng)內(nèi)容。 TH32CS_SNAPPROCESS - 在快照中包含系統(tǒng)中所有的在快照中包含系統(tǒng)中所有的進(jìn)程進(jìn)程.lth32ProcessID輸入輸入指定將要快照的進(jìn)程指定將要快照的進(jìn)程ID。如果該參數(shù)為。如果該參數(shù)為0表示快照當(dāng)前表示快照當(dāng)前進(jìn)程。進(jìn)程。西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心45PROCESSENTRY32 結(jié)構(gòu)體格式結(jié)構(gòu)體格式typedef struct tagPROCESSENTRY32

28、 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /進(jìn)程編號(hào)進(jìn)程編號(hào) DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFileMAX_PATH; /進(jìn)程執(zhí)行文件名進(jìn)程執(zhí)行文件名 PROCESSENTRY32;西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心463.2.3 線程程序設(shè)計(jì)l線程是進(jìn)程內(nèi)一個(gè)可以獨(dú)立執(zhí)行線程是進(jìn)程內(nèi)一個(gè)可以獨(dú)立執(zhí)

29、行的子任務(wù),也是進(jìn)程內(nèi)的一個(gè)可的子任務(wù),也是進(jìn)程內(nèi)的一個(gè)可調(diào)度的實(shí)體。調(diào)度的實(shí)體。西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心47引入原因引入原因 引入思想引入思想 進(jìn)程兩個(gè)基本特性:進(jìn)程兩個(gè)基本特性:資源分配的獨(dú)立單位資源分配的獨(dú)立單位調(diào)度的基本單位調(diào)度的基本單位引入思想引入思想:將進(jìn)程資源分配和調(diào)度分開,引:將進(jìn)程資源分配和調(diào)度分開,引 入線程。入線程。西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心48引入益處引入益處 開銷開銷 通信通信引入原因引入原因西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心49從開銷角度來(lái)說(shuō):從開銷角度來(lái)說(shuō):?jiǎn)?dòng)一個(gè)新進(jìn)程必須分配獨(dú)立地址空間,建立啟動(dòng)一個(gè)新進(jìn)程必須分配獨(dú)立地址空間,建立眾多的數(shù)據(jù)表來(lái)維護(hù)它的

30、代碼段、堆棧段,眾多的數(shù)據(jù)表來(lái)維護(hù)它的代碼段、堆棧段,這這是一種很是一種很“昂貴昂貴”的多任務(wù)工作方式的多任務(wù)工作方式 。運(yùn)行于一個(gè)進(jìn)程中的多個(gè)線程,彼此之間使用運(yùn)行于一個(gè)進(jìn)程中的多個(gè)線程,彼此之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動(dòng)一個(gè)相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動(dòng)一個(gè)線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動(dòng)一個(gè)進(jìn)程所花線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動(dòng)一個(gè)進(jìn)程所花費(fèi)的空間。費(fèi)的空間。線程間彼此切換所需的時(shí)間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間線程間彼此切換所需的時(shí)間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間切換所需要的時(shí)間切換所需要的時(shí)間時(shí)間。時(shí)間。引入原因引入原因西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心50從通信角度來(lái)說(shuō):從通信角度來(lái)說(shuō):不同進(jìn)程具有

31、獨(dú)立的數(shù)據(jù)空間,要進(jìn)行不同進(jìn)程具有獨(dú)立的數(shù)據(jù)空間,要進(jìn)行數(shù)據(jù)的傳遞只能通過數(shù)據(jù)的傳遞只能通過通信方式通信方式進(jìn)行,這進(jìn)行,這種方式不僅費(fèi)時(shí),而且很不方便。種方式不僅費(fèi)時(shí),而且很不方便。線程由于同一進(jìn)程下的線程之間共享數(shù)線程由于同一進(jìn)程下的線程之間共享數(shù)據(jù)空間,所以一個(gè)線程的數(shù)據(jù)可以直接據(jù)空間,所以一個(gè)線程的數(shù)據(jù)可以直接為其他線程所用,這不僅快捷,而且方為其他線程所用,這不僅快捷,而且方便。便。引入原因引入原因西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心51總之:總之:創(chuàng)建一個(gè)新線程花費(fèi)時(shí)間少(結(jié)束亦創(chuàng)建一個(gè)新線程花費(fèi)時(shí)間少(結(jié)束亦如此)如此)兩個(gè)線程的切換花費(fèi)時(shí)間少兩個(gè)線程的切換花費(fèi)時(shí)間少同一進(jìn)程內(nèi)的線程共

32、享內(nèi)存和文件,同一進(jìn)程內(nèi)的線程共享內(nèi)存和文件,因此它們之間相互通信無(wú)須調(diào)用內(nèi)核因此它們之間相互通信無(wú)須調(diào)用內(nèi)核適合多處理機(jī)系統(tǒng)適合多處理機(jī)系統(tǒng)引入原因引入原因西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心52線程的屬性線程的屬性l(1)每個(gè)線程具有一個(gè)唯一的標(biāo)識(shí)。)每個(gè)線程具有一個(gè)唯一的標(biāo)識(shí)。l(2)不同的線程可以執(zhí)行相同的程序。)不同的線程可以執(zhí)行相同的程序。l(3)同一進(jìn)程的多個(gè)線程共享該進(jìn)程的)同一進(jìn)程的多個(gè)線程共享該進(jìn)程的主存空間。主存空間。資源的擁有者是進(jìn)程或稱任務(wù)。資源的擁有者是進(jìn)程或稱任務(wù)。l(4)線程是處理機(jī)獨(dú)立調(diào)度的單位。)線程是處理機(jī)獨(dú)立調(diào)度的單位。l(5)線程有其生命周期。)線程有其生命

33、周期。l就緒、阻塞(等待)和執(zhí)行狀態(tài)。就緒、阻塞(等待)和執(zhí)行狀態(tài)。l線程線程可由內(nèi)核控制,也可由用戶控制可由內(nèi)核控制,也可由用戶控制西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心53有時(shí)稱輕量級(jí)進(jìn)程有時(shí)稱輕量級(jí)進(jìn)程進(jìn)程中的一個(gè)運(yùn)行實(shí)體進(jìn)程中的一個(gè)運(yùn)行實(shí)體是一個(gè)是一個(gè)CPUCPU調(diào)度單位調(diào)度單位線程也描述為:線程也描述為:進(jìn)程的執(zhí)行體、一個(gè)執(zhí)行單元、進(jìn)程內(nèi)的一個(gè)進(jìn)程的執(zhí)行體、一個(gè)執(zhí)行單元、進(jìn)程內(nèi)的一個(gè)可調(diào)度實(shí)體等。可調(diào)度實(shí)體等。 線程的其他定義線程的其他定義西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心54l線程與進(jìn)程的區(qū)別線程與進(jìn)程的區(qū)別 l線程是比進(jìn)程更小的單位,從運(yùn)行角度來(lái)講,線程是比進(jìn)程更小的單位,從運(yùn)行角度來(lái)講,同類線程的數(shù)據(jù)和代碼區(qū)是共享的,這有利同類線程的數(shù)據(jù)和代碼區(qū)是共享的,這有利于線程的快速調(diào)度和切換,而進(jìn)程之間的數(shù)于線程的快速調(diào)度和切換,而進(jìn)程之間的數(shù)據(jù)和代碼區(qū)是獨(dú)立的。據(jù)和代碼區(qū)是獨(dú)立的。 西安交通大學(xué)計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心55Windows中的線程函數(shù)中的線程函數(shù)lCreateThread /創(chuàng)建線程創(chuàng)建線程lCTerminateThread /終止線程終止線程lWaitForSingleObject /等待新線程運(yùn)行結(jié)等待新線程運(yùn)行結(jié)束束lCloseHandle /關(guān)閉線程

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論