軟件開發(fā)技術(shù)基礎(chǔ)_第1頁
軟件開發(fā)技術(shù)基礎(chǔ)_第2頁
軟件開發(fā)技術(shù)基礎(chǔ)_第3頁
軟件開發(fā)技術(shù)基礎(chǔ)_第4頁
軟件開發(fā)技術(shù)基礎(chǔ)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件開發(fā)技術(shù)基礎(chǔ)第3章 操作系統(tǒng)及程序設(shè)計講授教師:衛(wèi)顏俊1 主 要 內(nèi) 容操作系統(tǒng)及其功能進程管理應(yīng)用程序設(shè)計 內(nèi)存管理應(yīng)用程序設(shè)計 設(shè)備與文件管理應(yīng)用程序設(shè)計 人機接口管理應(yīng)用程序設(shè)計 2 學(xué)時安排6個學(xué)時講授(36/6)2個學(xué)時實驗(12/6) 3 本章序計算機系統(tǒng)硬件系統(tǒng)主機、顯示器、打印機、鍵盤和鼠標(biāo)等 軟件系統(tǒng) 操作系統(tǒng)、瀏覽器、辦公軟件、殺毒軟件、多媒體軟件、軟件開發(fā)工具和數(shù)據(jù)庫軟件等Windows Server 2003是一種操作系統(tǒng)4 本章目標(biāo)大學(xué)計算機基礎(chǔ) 為先修課程回答了:操作系統(tǒng)在計算機中起的作用和它能干什么 未回答:如何干、又如何在操作系統(tǒng)下編寫程序 本課本章不對操作

2、系統(tǒng)的原理作深入的介紹,但以它的幾項重要功能為主線,以C+為工具,揭示了一部分操作系統(tǒng)“內(nèi)幕”,使讀者對操作系統(tǒng)的工作原理有進一步的了解,同時對程序設(shè)計語言的應(yīng)用有所加強5 31 操作系統(tǒng)及其功能 操作系統(tǒng)的發(fā)展手工操作、批處理、多道程序系統(tǒng)和分時操作系統(tǒng)等四個階段,其中分時操作系統(tǒng)為目前最為流行實用的操作系統(tǒng)Windows XDOSLinux 6 311 操作系統(tǒng)的定義 定義一組控制和管理計算機軟、硬件資源,為用戶提供便捷使用計算機的程序的集合 作用 管理計算機和使用計算機 特征 并發(fā)性、共享性、虛擬性和不確定性 計算機系統(tǒng)組成硬件、操作系統(tǒng)、其他系統(tǒng)軟件、應(yīng)用軟件和用戶接口 7 312 操

3、作系統(tǒng)的功能CPU與進程管理對處理器的時間進行合理分配、對處理器的運行實施有效的管理存儲器管理對存儲器進行分配、保護和擴充設(shè)備管理根據(jù)確定的設(shè)備分配原則對設(shè)備進行分配,使設(shè)備與主機能夠并行工作,為用戶提供良好的設(shè)備使用界面文件管理有效地管理文件的存儲空間,合理地組織和管理文件系統(tǒng),為文件訪問和文件保護提供更有效的方法及手段用戶接口用戶操作計算機的界面,或稱為用戶界面,通過用戶接口,用戶只需進行簡單操作,就能實現(xiàn)復(fù)雜的應(yīng)用處理 8用戶接口類型命令接口,用戶通過交互命令方式直接或間接地對計算機進行操作, DOS:是純命令行輸入方式,Windows:鼠標(biāo)操作方式程序接口,供用戶以程序方式進行操作,或

4、API(Application Programming Interface),用戶通過API函數(shù)可以調(diào)用系統(tǒng)提供的例行程序,實現(xiàn)既定的操作。 DOS:中斷服務(wù)功能,Windows:Windows API函數(shù)9313 DOS與Windows操作使用方法簡介 DOS常用命令:HELP DIR CLS CD RD COPY Windows 最常用的功能是:桌面、瀏覽器、資源管理器、我的電腦、網(wǎng)上鄰居、控制面板(Control)、任務(wù)管理器(taskmgr)、Word、Excel、VC+,記事本(Notepad),寫字板(write) 10314 DOS與Windows操作系統(tǒng)程序接口簡介 DOS單用

5、戶單任務(wù)的磁盤操作系統(tǒng) 功能體現(xiàn)在系統(tǒng)提供的DOS和BIOS層上,借助于高級語言和匯編語言,并通過調(diào)用中斷服務(wù)程序,可以完成大部分編程工作。 Windows一種多用戶多任務(wù)、圖形化的新型操作系統(tǒng) 11Windows NT體系結(jié)構(gòu) 登錄進程和會話管理器 事件日志、調(diào)度服務(wù)、SQL ServerWin32 MS-DOS程序和Win32程序進程線程管理、I/O和內(nèi)存管理 線程調(diào)度、中斷和異常處理 將內(nèi)核、設(shè)備驅(qū)動程序和執(zhí)行體分離以適應(yīng)不同的平臺 將I/O函數(shù)調(diào)用轉(zhuǎn)換為I/O請求 窗口和繪制 12窗口 13消息 Windows程序是以事件為驅(qū)動、消息機制為基礎(chǔ) 消息定義:由用戶操作而向應(yīng)用程序發(fā)出的信

6、息,也包括操作系統(tǒng)內(nèi)部產(chǎn)生的消息。消息類型:windows消息,命令消息和控件通知 WM_LBUTTONDOWN 、WM_PAINT消息結(jié)構(gòu):消息號和參數(shù)組成typedef struct tagMSG HWND hwnd;窗口句柄,為NULL,則可檢索所有駐留在消息隊列中的消息 UINT 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

7、;14Windows數(shù)據(jù)類型 15Windows程序框架 WinMain框架結(jié)構(gòu)例3-1對話框框架程序例3-2文檔視圖框架程序 例3-316例3-1 WinMain框架結(jié)構(gòu)要求:顯示一個窗口在窗口中顯示一段文字步驟:打開VC+新鍵工程類型為“Win32 Application” 添加C+源程序17例3-1 WinMain框架結(jié)構(gòu)(2)用到的主要數(shù)據(jù)結(jié)構(gòu):UINT 無符號整數(shù) 等價于 unsigned intHINSTANCE 實例句柄等價于 unsigned ongPSTR 字符指針等價于 char *TCHAR 字符等價于 charHWND窗口句柄等價于 unsigned longMSG 消

8、息結(jié)構(gòu)WINAPI CDECLLRESULT 消息返回值等價于longCALLBACK PASCALWPARAM 消息參數(shù) 等價于UINTLPARAM 消息參數(shù) 等價于longPAINTSTRUCT 窗口繪制信息結(jié)構(gòu)HDC設(shè)備環(huán)境句柄等價于unsigned longWNDCLASS 窗口結(jié)構(gòu)體 18例3-1 WinMain框架結(jié)構(gòu)(3)typedef struct _WNDCLASS UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HANDLE hInstance; HICON hIcon; HCURSOR hC

9、ursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; WNDCLASS; 19例3-2對話框框架程序步驟 打開VC+ 工程類型為“MFC AppWizard(exe) ”程序類型為“Dialog based ”改變窗口標(biāo)題改變靜態(tài)控件標(biāo)題20例3-3文檔視圖框架程序 步驟 打開VC+ 工程類型為“MFC AppWizard(exe) ”程序類型為“Single document ”改變窗口標(biāo)題在視圖類的OnDraw函數(shù)中添加代碼:“pDC-TextOut(100,100,MFC文檔/視圖演示程序);”

10、 21 32 進程管理應(yīng)用程序設(shè)計 CPU與進程管理的相關(guān)概念 Windows操作系統(tǒng)的進程和線程管理 進程和線程的應(yīng)用 22 321 CPU與進程管理 主要任務(wù)對處理器的時間進行合理分配、對處理器的運行實施有效的管理 程序的概念 一個靜態(tài)概念,代表有嚴格時間順序的可執(zhí)行指令序列,輸入、處理和輸出三部分組成指令序列特征 并發(fā)性、共享性、虛擬性和不確定性 進程的概念 程序的一次執(zhí)行。系統(tǒng)進行資源調(diào)度和分配的獨立單位 23 321 CPU與進程管理(2) 進程與程序的主要區(qū)別進程是動態(tài)的,而程序是靜態(tài)的 進程的特點 動態(tài)性、并發(fā)性、獨立性、異步性、結(jié)構(gòu)性和制約性 進程的狀態(tài) 就緒狀態(tài)、運行狀態(tài)和停

11、止?fàn)顟B(tài) 24 321 CPU與進程管理(3) 進程數(shù)據(jù)結(jié)構(gòu)進程描述信息進程標(biāo)識符(process ID),唯一,通常是一個整數(shù);進程名,通常基于可執(zhí)行文件名(不唯一);用戶標(biāo)識符(user ID);進程組關(guān)系(process group) 進程控制信息當(dāng)前狀態(tài);優(yōu)先級(priority);代碼執(zhí)行入口地址;程序的外存地址;運行統(tǒng)計信息(執(zhí)行時間、頁面調(diào)度);進程間同步和通信;阻塞原因 資源占用信息虛擬地址空間的現(xiàn)狀、打開文件列表 CPU現(xiàn)場保護結(jié)構(gòu) 寄存器值(通用、程序計數(shù)器PC、狀態(tài)PSW,地址包括棧指針 25 321 CPU與進程管理(4) 多個進程并發(fā)執(zhí)行 同步和互斥 協(xié)調(diào)點 26 32

12、1 CPU與進程管理(5) Windows進程的建立 函數(shù)CreateProcess 使一個程序運行使用C的spawnlp函數(shù)使用Win API 函數(shù)ShellExecute27 例3-4 編程啟動兩個子進程 _spawnlp函數(shù)格式“process.h” int _spawnlp( int mode, const char *cmdname, const char *arg0, const char *arg1, . const char *argn, NULL );其中mode表示運行方式,cmdname為進程名,arg0,argn為若干個進程參數(shù),NULL為終止符。返回值:-1 Erro

13、r其他:進程返回碼28 例3-5編程顯示當(dāng)前系統(tǒng)所有進程PROCESSENTRY32 結(jié)構(gòu)體格式typedef struct tagPROCESSENTRY32 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /進程編號 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExe; /進程執(zhí)行文件名 PROCESSENTRY32;

14、29 例3-5編程顯示當(dāng)前系統(tǒng)所有進程(2)CreateToolhelp32Snapshot函數(shù)格式HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS , TH32CS_SNAPTHREAD DWORD th32ProcessID /進程標(biāo)識好,當(dāng)前進程為0);30 例3-5編程顯示當(dāng)前系統(tǒng)所有進程(3)Process32First函數(shù)格式BOOL WINAPI Process32First( HANDLE hSnapshot, LPPROCESSENTRY32 lppe );31 例3-5編程顯

15、示當(dāng)前系統(tǒng)所有進程(4)Process32Next函數(shù)格式BOOL WINAPI Process32Next( HANDLE hSnapshot, LPPROCESSENTRY32 lppe );32 例3-5編程顯示當(dāng)前系統(tǒng)所有進程(5)TerminateProcess函數(shù)格式BOOL TerminateProcess( HANDLE hProcess, / 進程句柄 UINT uExitCode / 進程退出碼);33 322 線程及其應(yīng)用 線程的概念 指令序列 程序運行的基本單位,不過它是作為CPU調(diào)度單位,它只擁有必不可少的資源 線程的優(yōu)點 減小并發(fā)執(zhí)行的時間和空間開銷 線程的狀態(tài)就緒

16、、阻塞(等待)和執(zhí)行 34 322 線程及其應(yīng)用(2) 線程與進程的區(qū)別 線程是比進程更小的單位,從運行角度來講,同類線程的數(shù)據(jù)和代碼區(qū)是共享的,這有利于線程的快速調(diào)度和切換,而進程之間的數(shù)據(jù)和代碼區(qū)是獨立的。 35 Windows操作系統(tǒng)下的線程狀態(tài)轉(zhuǎn)換 36 例3-6編寫一個動態(tài)顯示時鐘時間的線程 CTime類 時間CString類字符串CreateThread 函數(shù)格式HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, / 線程安全屬性 DWORD dwStackSize, / 初始線程棧大小 LPTHREAD_START_ROUTINE lpStartAddress, /線程函數(shù) LPVOID lpParameter, / 參數(shù) DWORD dwCreationFlags, / 標(biāo)志 LPDWORD lpThreadId / 保存線程號);返回線程句柄37 例3-6編寫一個動態(tài)顯示時鐘時間的線程(2) TerminateThread 函數(shù)格式BOOL TerminateThread( HANDLE hThread, / 線程句柄

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論