版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3章 操作系統(tǒng)及相關(guān)程序設(shè)計西安交通大學(xué)計算機(jī)教學(xué)實(shí)驗(yàn)中心2 主 要 內(nèi) 容操作系統(tǒng)及其功能進(jìn)程管理應(yīng)用程序設(shè)計 內(nèi)存管理應(yīng)用程序設(shè)計 設(shè)備與文件管理應(yīng)用程序設(shè)計 人機(jī)接口管理應(yīng)用程序設(shè)計 331 操作系統(tǒng)概述操作系統(tǒng)的發(fā)展操作系統(tǒng)的功能操作系統(tǒng)的分類常見操作系統(tǒng)簡介4什么是操作系統(tǒng)?定義一組控制和管理計算機(jī)軟、硬件資源,合理組織計算機(jī)的工作流程,為用戶提供便捷使用計算機(jī)的程序的集合 作用 管理計算機(jī)和使用計算機(jī) 特征 并發(fā)性、共享性、虛擬性和不確定性 操作系統(tǒng)是連接硬件和軟件的橋梁53.1.1操作系統(tǒng)的發(fā)展手工操作單道批處理多道程序系統(tǒng)分時操作系統(tǒng)實(shí)時操作系統(tǒng)微機(jī)操作系統(tǒng)6DOS中的批處理
2、dir /pcopy 批處理.bat batch.batnotepadcalcpause7 3.1.2 操作系統(tǒng)的功能計算機(jī)的硬件、軟件資源有哪些?CPU管理(進(jìn)程管理)存儲器管理文件管理設(shè)備管理用戶接口8用戶接口類型命令接口,用戶通過交互命令方式直接或間接地對計算機(jī)進(jìn)行操作,DOS:是純命令行輸入方式,Windows:鼠標(biāo)操作方式程序接口,供用戶以程序方式進(jìn)行操作,或API(Application Programming Interface),用戶通過API函數(shù)可以調(diào)用系統(tǒng)提供的例行程序,實(shí)現(xiàn)既定的操作。DOS:中斷服務(wù)功能,Windows:Windows API函數(shù)3.1.3操作系統(tǒng)的分類
3、批處理操作系統(tǒng)嵌入式操作系統(tǒng)分時操作系統(tǒng)實(shí)時操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)分布式操作系統(tǒng)910實(shí)用的操作系統(tǒng)Windows:窗口式圖形界面、網(wǎng)絡(luò)功能、分布式功能,個人計算機(jī)操作系統(tǒng)DOS:磁盤操作系統(tǒng), ,個人計算機(jī)操作系統(tǒng),單道程序系統(tǒng)、批處理Linux 分時操作系統(tǒng)、多任務(wù)、多用戶、網(wǎng)絡(luò)3.1.4 常見操作系統(tǒng)簡介DOSDisk Operating System1979年,微軟公司為IBM公司的16位Intel 8086 PC設(shè)計和開發(fā)了一個磁盤操作系統(tǒng)MS-DOS 1.0,1981年推出了支持內(nèi)存為320KB的MS-DOS 1.1版,后更名為PC-DOS 1.0。1982年,支持PC/XT 硬盤的
4、MS-DOS 2.0問世111984年11月,MS-DOS3.1 ,加入對網(wǎng)絡(luò)支持。1991年6月,MS-DOS5.0,繼承4.0對于內(nèi)存管理進(jìn)行的改進(jìn),是EMM 規(guī)格最為穩(wěn)定、普及的版本,也加入了許多內(nèi)存管理的程式,如EMM386、MEM 等等1994年6月,MS-DOS6.22 ,最后一個銷售版本。2000年9月,MS-DOS8.0 ,dos的最后一個版本,取消了部分功能,例如不再支持SYS命令、打印機(jī)操作12DOSDOS是一種單用戶、單任務(wù)的磁盤操作系統(tǒng) DOS操作系統(tǒng)包含四大模塊:引導(dǎo)模塊內(nèi)核模塊輸入輸出接口模塊命令管理模塊1314DOS的組成15DOS命令的執(zhí)行過程16DOS的常用命
5、令(命令提示符方式可測試)CD 進(jìn)入子目錄CLS 清除屏幕COPY 復(fù)制文件DEL刪除文件DIR 列目錄FORMAT 格式化磁盤MD創(chuàng)建子目錄PATH 設(shè)置或顯示搜索路徑RD 刪除子目錄REM重新命名Type 顯示文件管道|重定向兩個有用的命令:ping 、ipconfig/all17Windows操作系統(tǒng)Windows多用戶、多任務(wù)、圖形化支持網(wǎng)絡(luò)、支持多媒體、支持多種硬件和應(yīng)用程序18Windows NT體系結(jié)構(gòu) 登錄進(jìn)程和會話管理器 事件日志、調(diào)度服務(wù)、SQL ServerOS/2;Win32; POSIX等MS-DOS程序和Win32程序進(jìn)程線程管理、I/O和內(nèi)存管理 線程調(diào)度、中斷和
6、異常處理 將內(nèi)核、設(shè)備驅(qū)動程序和執(zhí)行體分離以適應(yīng)不同的平臺 將I/O函數(shù)調(diào)用轉(zhuǎn)換為I/O請求 窗口和繪制 19Windows操作系統(tǒng)Windows最常用的功能是:桌面、瀏覽器、資源管理器、我的電腦、網(wǎng)上鄰居、控制面板(Control)、任務(wù)管理器(taskmgr)、Word、Excel、VC+,記事本(Notepad),寫字板(write) 20窗口 21過程驅(qū)動的程序結(jié)構(gòu)Windows事件驅(qū)動的程序結(jié)構(gòu)(消息驅(qū)動的程序結(jié)構(gòu))系統(tǒng)消息隊列Windows也為每個應(yīng)用程序創(chuàng)建一個應(yīng)用消息隊列。事件所產(chǎn)生的消息,首先進(jìn)入系統(tǒng)消息隊列,然后再被傳送到對應(yīng)的應(yīng)用消息隊列,最后才被送到消息所對應(yīng)的窗口。W
7、indows應(yīng)用程序設(shè)計模式22Windows中的消息循環(huán)23消息類型 標(biāo)準(zhǔn)消息(windows消息): 任何以WM_開頭的消息(WM_COMMAND除外);如:WM_QUIT,WM_CREATE;命令消息: WM_COMMAND;子窗口通知(控件通知): 由子窗口(大多為控件)產(chǎn)生并發(fā)送到該控件所屬的父窗口的消息。常見消息宏WM_LBUTTONDOWN WM_RBUTTONDOWNWM_LBUTTONUP WM_PAINT24消息的結(jié)構(gòu)消息結(jié)構(gòu):消息號和參數(shù)組成typedef struct tagMSG HWND hwnd;窗口句柄,為NULL,則可檢索所有駐留在消息隊列中的消息 UINT
8、message;消息值,由windows.h頭文件中的宏定義來標(biāo)識 WPARAM wParam;包含有關(guān)消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至隊列的時間 POINT pt;指定消息發(fā)送時屏幕光標(biāo)的位置, 其數(shù)據(jù)類型POINT也是一個結(jié)構(gòu)體MSG;25句柄多個程序或一個程序的多個副本,稱為實(shí)例。為了對同一程序的多個副本進(jìn)行管理,Windows引入了實(shí)例句柄。Windows為每個應(yīng)用程序建立一張表,實(shí)例句柄就好象是這張表的一個索引。句柄指Windows使用的一個唯一的整數(shù)值,26使用VC+編寫Windows程序通常有三種方式:直接使
9、用Windows API函數(shù),通過VC+提供的工具生成對話框框架程序文檔視圖框架程序 例 文檔視圖框架程序 步驟 打開VC+ 工程類型為“MFC AppWizard(exe) ”程序類型為“Single document ”改變窗口標(biāo)題在視圖類的OnDraw函數(shù)中添加代碼:“pDC-TextOut(100,100,MFC文檔/視圖演示程序);” 2728void CTest_winView:OnDraw(CDC* pDC)CTest_winDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CString m_str;int c,a=2,b=123;c=a
10、+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); 293.2 進(jìn)程管理CPU與進(jìn)程管理的相關(guān)概念 Windows操作系統(tǒng)的進(jìn)程和線程管理 進(jìn)程和線程的應(yīng)用 30 3.2.1 CPU與進(jìn)程管理 主要任務(wù)對處理器的時間進(jìn)行合理分配、對處理器的運(yùn)行實(shí)施有效的管理 程序由輸入、處理和輸出三部分組成,有嚴(yán)格時間順序的可執(zhí)行指令序列是一個靜態(tài)概念順序執(zhí)行操作系統(tǒng)依次執(zhí)行各個程序,在一個程序的整個執(zhí)行過程中由該程序占有全
11、部系統(tǒng)資源單道程序執(zhí)行的特征順序性、封閉性、可再現(xiàn)性并發(fā)執(zhí)行多個程序在一個處理器上的交替執(zhí)行,其目的主要是為了提高計算機(jī)資源的利用率多道程序并發(fā)執(zhí)行的特征間斷(異步)性、失去封閉性、失去可再現(xiàn)性。31進(jìn)程的定義進(jìn)程的特點(diǎn)進(jìn)程的狀態(tài) 32進(jìn)程的狀態(tài)轉(zhuǎn)換33進(jìn)程管理的關(guān)鍵問題進(jìn)程的同步進(jìn)程的互斥PCB的數(shù)據(jù)結(jié)構(gòu)進(jìn)程的調(diào)度進(jìn)程調(diào)度的算法進(jìn)程與程序的區(qū)別3435 3.2.2 進(jìn)程程序設(shè)計Windows API函數(shù)庫,它以C語言標(biāo)準(zhǔn)提供給程序員,CreateProcess函數(shù)在一個進(jìn)程中建立另一個子進(jìn)程,還可以通過TerminateProcess函數(shù)退出該子進(jìn)程的執(zhí)行。36進(jìn)程函數(shù)CreateProce
12、ss函數(shù)來創(chuàng)建一個進(jìn)程 OpenProcess:獲得一個已經(jīng)存在的進(jìn)程對象的句柄TerminateProcess終止指定進(jìn)程 37CreateProcessbRet = CreateProcess(NULL, /不在此指定可執(zhí)行文檔的文檔名szCommandLine, /命令行參數(shù)NULL, /默認(rèn)進(jìn)程安全性NULL, /默認(rèn)線程安全性FALSE, /當(dāng)前進(jìn)程內(nèi)的句柄不能夠被子進(jìn)程繼承CREATE_NEW_CONSOLE, /為新進(jìn)程創(chuàng)建一個新的控制臺窗口NULL, /使用本進(jìn)程的環(huán)境變量NULL, /使用本進(jìn)程的驅(qū)動器和目錄&si, /父進(jìn)程傳給子進(jìn)程的一些信息&pi); /保存新進(jìn)程信息的
13、結(jié)構(gòu)38獲得一個已經(jīng)存在的進(jìn)程對象的句柄HANDLE OpenProcess( DWORD dwDesiredAccess, /訪問權(quán)限 BOOL bInheritHandle, /若要子進(jìn)程獲得對該對象的權(quán)限,應(yīng)為TRUE,否則為FALSEDWORD dwProcessId /進(jìn)程標(biāo)識號); 39終止進(jìn)程BOOL TerminateProcess( HANDLE hProcess, / 進(jìn)程句柄,由OpenProcess函數(shù)返回 UINT uExitCode / 進(jìn)程退出碼,這里可以設(shè)為0); 40進(jìn)程終止實(shí)例使用任務(wù)管理器查到待終止的進(jìn)程號為:2212HANDLE hProcess3;hP
14、rocess3=OpenProcess(PROCESS_TERMINATE,FALSE,2212);TerminateProcess(hProcess3,0);41保存創(chuàng)建的進(jìn)程信息PROCESS_INFORMATION結(jié)構(gòu)體保存創(chuàng)建的進(jìn)程信息,其格式如下:typedef struct _PROCESS_INFORMATION HANDLE hProcess; /進(jìn)程句柄 HANDLE hThread; /主線程句柄 DWORD dwProcessId; /進(jìn)程編號 DWORD dwThreadId; /主線程編號 PROCESS; 42【例3-2】編程顯示當(dāng)前系統(tǒng)所有進(jìn)程的編號和名稱。Cre
15、ateToolhelp32SnapshotTakes a snapshot of the processes and the heaps, modules, and threads used by the processes.取得進(jìn)程快照43CreateToolhelp32Snapshot為指定的進(jìn)程、進(jìn)程使用的堆HEAP、模塊MODULE、線程THREAD)建立一個快照snapshot。44函數(shù)格式HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS , /TH32CS_SNAPTHREAD DW
16、ORD th32ProcessID /進(jìn)程標(biāo)識號,當(dāng)前進(jìn)程為0);dwFlags輸入指定快照中包含的系統(tǒng)內(nèi)容。 TH32CS_SNAPPROCESS - 在快照中包含系統(tǒng)中所有的進(jìn)程.th32ProcessID輸入指定將要快照的進(jìn)程ID。如果該參數(shù)為0表示快照當(dāng)前進(jìn)程。45PROCESSENTRY32 結(jié)構(gòu)體格式typedef struct tagPROCESSENTRY32 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /進(jìn)程編號 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cn
17、tThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFileMAX_PATH; /進(jìn)程執(zhí)行文件名 PROCESSENTRY32;463.2.3 線程程序設(shè)計線程是進(jìn)程內(nèi)一個可以獨(dú)立執(zhí)行的子任務(wù),也是進(jìn)程內(nèi)的一個可調(diào)度的實(shí)體。47引入原因 引入思想 進(jìn)程兩個基本特性:資源分配的獨(dú)立單位調(diào)度的基本單位引入思想:將進(jìn)程資源分配和調(diào)度分開,引 入線程。48引入益處 開銷 通信引入原因49從開銷角度來說:啟動一個新進(jìn)程必須分配獨(dú)立地址空間,建立眾多的數(shù)據(jù)表來維護(hù)它的代碼段、堆棧段,這是一種很
18、“昂貴”的多任務(wù)工作方式 。運(yùn)行于一個進(jìn)程中的多個線程,彼此之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動一個線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動一個進(jìn)程所花費(fèi)的空間。線程間彼此切換所需的時間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間切換所需要的時間時間。引入原因50從通信角度來說:不同進(jìn)程具有獨(dú)立的數(shù)據(jù)空間,要進(jìn)行數(shù)據(jù)的傳遞只能通過通信方式進(jìn)行,這種方式不僅費(fèi)時,而且很不方便。線程由于同一進(jìn)程下的線程之間共享數(shù)據(jù)空間,所以一個線程的數(shù)據(jù)可以直接為其他線程所用,這不僅快捷,而且方便。引入原因51總之:創(chuàng)建一個新線程花費(fèi)時間少(結(jié)束亦如此)兩個線程的切換花費(fèi)時間少同一進(jìn)程內(nèi)的線程共享內(nèi)存和文件,因此它們之間相互通信無須調(diào)用內(nèi)核適合
19、多處理機(jī)系統(tǒng)引入原因52線程的屬性(1)每個線程具有一個唯一的標(biāo)識。(2)不同的線程可以執(zhí)行相同的程序。(3)同一進(jìn)程的多個線程共享該進(jìn)程的主存空間。資源的擁有者是進(jìn)程或稱任務(wù)。(4)線程是處理機(jī)獨(dú)立調(diào)度的單位。(5)線程有其生命周期。就緒、阻塞(等待)和執(zhí)行狀態(tài)。線程可由內(nèi)核控制,也可由用戶控制53有時稱輕量級進(jìn)程進(jìn)程中的一個運(yùn)行實(shí)體是一個CPU調(diào)度單位線程也描述為:進(jìn)程的執(zhí)行體、一個執(zhí)行單元、進(jìn)程內(nèi)的一個可調(diào)度實(shí)體等。 線程的其他定義54線程與進(jìn)程的區(qū)別 線程是比進(jìn)程更小的單位,從運(yùn)行角度來講,同類線程的數(shù)據(jù)和代碼區(qū)是共享的,這有利于線程的快速調(diào)度和切換,而進(jìn)程之間的數(shù)據(jù)和代碼區(qū)是獨(dú)立的。 55Windows中的線程函數(shù)CreateThread /創(chuàng)建線程CTerminateThread /終止線程WaitForSingleObject /等待新線程運(yùn)行結(jié)束CloseHandle /關(guān)閉線程#include 使用MFC56【例3-3】【例3-3】編寫一個動態(tài)顯示計算機(jī)時間的線程程序57CreateT
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度洗滌房租賃與洗滌技術(shù)培訓(xùn)合同3篇
- 二零二五年度城市綠化工程臨時工派遣服務(wù)合同模板4篇
- 2025年昌月離婚協(xié)議書全新版本2篇
- 2025年度鋁合金模板工程安裝與綠色認(rèn)證合同4篇
- 2025年版校企合作人才引進(jìn)與培養(yǎng)合同模板2篇
- 二零二五版出租車廣告位租賃與收益分成合同2篇
- 二零二五年度數(shù)據(jù)中心建設(shè)與維護(hù)合同4篇
- 2025年度煤礦井巷工程安全文化建設(shè)與宣傳承包合同范本4篇
- 二零二五年綠色交通基礎(chǔ)設(shè)施建設(shè)合伙投資協(xié)議3篇
- 高師音樂課程設(shè)計理念
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機(jī)化學(xué)機(jī)理題(福山)
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
- 7.6用銳角三角函數(shù)解決問題 (2)
評論
0/150
提交評論