第3章 操作系統及相關程序設計1-概述及進程管理_第1頁
第3章 操作系統及相關程序設計1-概述及進程管理_第2頁
第3章 操作系統及相關程序設計1-概述及進程管理_第3頁
第3章 操作系統及相關程序設計1-概述及進程管理_第4頁
第3章 操作系統及相關程序設計1-概述及進程管理_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第3章 操作系統及相關程序設計西安交通大學計算機教學實驗中心2 主 要 內 容操作系統及其功能進程管理應用程序設計 內存管理應用程序設計 設備與文件管理應用程序設計 人機接口管理應用程序設計 331 操作系統概述操作系統的發展操作系統的功能操作系統的分類常見操作系統簡介4什么是操作系統?定義一組控制和管理計算機軟、硬件資源,合理組織計算機的工作流程,為用戶提供便捷使用計算機的程序的集合 作用 管理計算機和使用計算機 特征 并發性、共享性、虛擬性和不確定性 操作系統是連接硬件和軟件的橋梁53.1.1操作系統的發展手工操作單道批處理多道程序系統分時操作系統實時操作系統微機操作系統6DOS中的批處理

2、dir /pcopy 批處理.bat batch.batnotepadcalcpause7 3.1.2 操作系統的功能計算機的硬件、軟件資源有哪些?CPU管理(進程管理)存儲器管理文件管理設備管理用戶接口8用戶接口類型命令接口,用戶通過交互命令方式直接或間接地對計算機進行操作,DOS:是純命令行輸入方式,Windows:鼠標操作方式程序接口,供用戶以程序方式進行操作,或API(Application Programming Interface),用戶通過API函數可以調用系統提供的例行程序,實現既定的操作。DOS:中斷服務功能,Windows:Windows API函數3.1.3操作系統的分類

3、批處理操作系統嵌入式操作系統分時操作系統實時操作系統網絡操作系統分布式操作系統910實用的操作系統Windows:窗口式圖形界面、網絡功能、分布式功能,個人計算機操作系統DOS:磁盤操作系統, ,個人計算機操作系統,單道程序系統、批處理Linux 分時操作系統、多任務、多用戶、網絡3.1.4 常見操作系統簡介DOSDisk Operating System1979年,微軟公司為IBM公司的16位Intel 8086 PC設計和開發了一個磁盤操作系統MS-DOS 1.0,1981年推出了支持內存為320KB的MS-DOS 1.1版,后更名為PC-DOS 1.0。1982年,支持PC/XT 硬盤的

4、MS-DOS 2.0問世111984年11月,MS-DOS3.1 ,加入對網絡支持。1991年6月,MS-DOS5.0,繼承4.0對于內存管理進行的改進,是EMM 規格最為穩定、普及的版本,也加入了許多內存管理的程式,如EMM386、MEM 等等1994年6月,MS-DOS6.22 ,最后一個銷售版本。2000年9月,MS-DOS8.0 ,dos的最后一個版本,取消了部分功能,例如不再支持SYS命令、打印機操作12DOSDOS是一種單用戶、單任務的磁盤操作系統 DOS操作系統包含四大模塊:引導模塊內核模塊輸入輸出接口模塊命令管理模塊1314DOS的組成15DOS命令的執行過程16DOS的常用命

5、令(命令提示符方式可測試)CD 進入子目錄CLS 清除屏幕COPY 復制文件DEL刪除文件DIR 列目錄FORMAT 格式化磁盤MD創建子目錄PATH 設置或顯示搜索路徑RD 刪除子目錄REM重新命名Type 顯示文件管道|重定向兩個有用的命令:ping 、ipconfig/all17Windows操作系統Windows多用戶、多任務、圖形化支持網絡、支持多媒體、支持多種硬件和應用程序18Windows NT體系結構 登錄進程和會話管理器 事件日志、調度服務、SQL ServerOS/2;Win32; POSIX等MS-DOS程序和Win32程序進程線程管理、I/O和內存管理 線程調度、中斷和

6、異常處理 將內核、設備驅動程序和執行體分離以適應不同的平臺 將I/O函數調用轉換為I/O請求 窗口和繪制 19Windows操作系統Windows最常用的功能是:桌面、瀏覽器、資源管理器、我的電腦、網上鄰居、控制面板(Control)、任務管理器(taskmgr)、Word、Excel、VC+,記事本(Notepad),寫字板(write) 20窗口 21過程驅動的程序結構Windows事件驅動的程序結構(消息驅動的程序結構)系統消息隊列Windows也為每個應用程序創建一個應用消息隊列。事件所產生的消息,首先進入系統消息隊列,然后再被傳送到對應的應用消息隊列,最后才被送到消息所對應的窗口。W

7、indows應用程序設計模式22Windows中的消息循環23消息類型 標準消息(windows消息): 任何以WM_開頭的消息(WM_COMMAND除外);如:WM_QUIT,WM_CREATE;命令消息: WM_COMMAND;子窗口通知(控件通知): 由子窗口(大多為控件)產生并發送到該控件所屬的父窗口的消息。常見消息宏WM_LBUTTONDOWN WM_RBUTTONDOWNWM_LBUTTONUP WM_PAINT24消息的結構消息結構:消息號和參數組成typedef struct tagMSG HWND hwnd;窗口句柄,為NULL,則可檢索所有駐留在消息隊列中的消息 UINT

8、message;消息值,由windows.h頭文件中的宏定義來標識 WPARAM wParam;包含有關消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至隊列的時間 POINT pt;指定消息發送時屏幕光標的位置, 其數據類型POINT也是一個結構體MSG;25句柄多個程序或一個程序的多個副本,稱為實例。為了對同一程序的多個副本進行管理,Windows引入了實例句柄。Windows為每個應用程序建立一張表,實例句柄就好象是這張表的一個索引。句柄指Windows使用的一個唯一的整數值,26使用VC+編寫Windows程序通常有三種方式:直接使

9、用Windows API函數,通過VC+提供的工具生成對話框框架程序文檔視圖框架程序 例 文檔視圖框架程序 步驟 打開VC+ 工程類型為“MFC AppWizard(exe) ”程序類型為“Single document ”改變窗口標題在視圖類的OnDraw函數中添加代碼:“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 進程管理CPU與進程管理的相關概念 Windows操作系統的進程和線程管理 進程和線程的應用 30 3.2.1 CPU與進程管理 主要任務對處理器的時間進行合理分配、對處理器的運行實施有效的管理 程序由輸入、處理和輸出三部分組成,有嚴格時間順序的可執行指令序列是一個靜態概念順序執行操作系統依次執行各個程序,在一個程序的整個執行過程中由該程序占有全

11、部系統資源單道程序執行的特征順序性、封閉性、可再現性并發執行多個程序在一個處理器上的交替執行,其目的主要是為了提高計算機資源的利用率多道程序并發執行的特征間斷(異步)性、失去封閉性、失去可再現性。31進程的定義進程的特點進程的狀態 32進程的狀態轉換33進程管理的關鍵問題進程的同步進程的互斥PCB的數據結構進程的調度進程調度的算法進程與程序的區別3435 3.2.2 進程程序設計Windows API函數庫,它以C語言標準提供給程序員,CreateProcess函數在一個進程中建立另一個子進程,還可以通過TerminateProcess函數退出該子進程的執行。36進程函數CreateProce

12、ss函數來創建一個進程 OpenProcess:獲得一個已經存在的進程對象的句柄TerminateProcess終止指定進程 37CreateProcessbRet = CreateProcess(NULL, /不在此指定可執行文檔的文檔名szCommandLine, /命令行參數NULL, /默認進程安全性NULL, /默認線程安全性FALSE, /當前進程內的句柄不能夠被子進程繼承CREATE_NEW_CONSOLE, /為新進程創建一個新的控制臺窗口NULL, /使用本進程的環境變量NULL, /使用本進程的驅動器和目錄&si, /父進程傳給子進程的一些信息&pi); /保存新進程信息的

13、結構38獲得一個已經存在的進程對象的句柄HANDLE OpenProcess( DWORD dwDesiredAccess, /訪問權限 BOOL bInheritHandle, /若要子進程獲得對該對象的權限,應為TRUE,否則為FALSEDWORD dwProcessId /進程標識號); 39終止進程BOOL TerminateProcess( HANDLE hProcess, / 進程句柄,由OpenProcess函數返回 UINT uExitCode / 進程退出碼,這里可以設為0); 40進程終止實例使用任務管理器查到待終止的進程號為:2212HANDLE hProcess3;hP

14、rocess3=OpenProcess(PROCESS_TERMINATE,FALSE,2212);TerminateProcess(hProcess3,0);41保存創建的進程信息PROCESS_INFORMATION結構體保存創建的進程信息,其格式如下:typedef struct _PROCESS_INFORMATION HANDLE hProcess; /進程句柄 HANDLE hThread; /主線程句柄 DWORD dwProcessId; /進程編號 DWORD dwThreadId; /主線程編號 PROCESS; 42【例3-2】編程顯示當前系統所有進程的編號和名稱。Cre

15、ateToolhelp32SnapshotTakes a snapshot of the processes and the heaps, modules, and threads used by the processes.取得進程快照43CreateToolhelp32Snapshot為指定的進程、進程使用的堆HEAP、模塊MODULE、線程THREAD)建立一個快照snapshot。44函數格式HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS , /TH32CS_SNAPTHREAD DW

16、ORD th32ProcessID /進程標識號,當前進程為0);dwFlags輸入指定快照中包含的系統內容。 TH32CS_SNAPPROCESS - 在快照中包含系統中所有的進程.th32ProcessID輸入指定將要快照的進程ID。如果該參數為0表示快照當前進程。45PROCESSENTRY32 結構體格式typedef struct tagPROCESSENTRY32 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /進程編號 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cn

17、tThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFileMAX_PATH; /進程執行文件名 PROCESSENTRY32;463.2.3 線程程序設計線程是進程內一個可以獨立執行的子任務,也是進程內的一個可調度的實體。47引入原因 引入思想 進程兩個基本特性:資源分配的獨立單位調度的基本單位引入思想:將進程資源分配和調度分開,引 入線程。48引入益處 開銷 通信引入原因49從開銷角度來說:啟動一個新進程必須分配獨立地址空間,建立眾多的數據表來維護它的代碼段、堆棧段,這是一種很

18、“昂貴”的多任務工作方式 。運行于一個進程中的多個線程,彼此之間使用相同的地址空間,共享大部分數據,啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的空間。線程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間時間。引入原因50從通信角度來說:不同進程具有獨立的數據空間,要進行數據的傳遞只能通過通信方式進行,這種方式不僅費時,而且很不方便。線程由于同一進程下的線程之間共享數據空間,所以一個線程的數據可以直接為其他線程所用,這不僅快捷,而且方便。引入原因51總之:創建一個新線程花費時間少(結束亦如此)兩個線程的切換花費時間少同一進程內的線程共享內存和文件,因此它們之間相互通信無須調用內核適合

19、多處理機系統引入原因52線程的屬性(1)每個線程具有一個唯一的標識。(2)不同的線程可以執行相同的程序。(3)同一進程的多個線程共享該進程的主存空間。資源的擁有者是進程或稱任務。(4)線程是處理機獨立調度的單位。(5)線程有其生命周期。就緒、阻塞(等待)和執行狀態。線程可由內核控制,也可由用戶控制53有時稱輕量級進程進程中的一個運行實體是一個CPU調度單位線程也描述為:進程的執行體、一個執行單元、進程內的一個可調度實體等。 線程的其他定義54線程與進程的區別 線程是比進程更小的單位,從運行角度來講,同類線程的數據和代碼區是共享的,這有利于線程的快速調度和切換,而進程之間的數據和代碼區是獨立的。 55Windows中的線程函數CreateThread /創建線程CTerminateThread /終止線程WaitForSingleObject /等待新線程運行結束CloseHandle /關閉線程#include 使用MFC56【例3-3】【例3-3】編寫一個動態顯示計算機時間的線程程序57CreateT

溫馨提示

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

評論

0/150

提交評論