典型OS平臺下編程模式_第1頁
典型OS平臺下編程模式_第2頁
典型OS平臺下編程模式_第3頁
典型OS平臺下編程模式_第4頁
典型OS平臺下編程模式_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

典型OS平臺下編程模式

2本單元涉及的內容第5章5.1DOS操作系統(tǒng)編程模式5.2UNIX操作系統(tǒng)編程模式5.3Windows操作系統(tǒng)編程模式P156~P183

3一、DOS編程模式DOS是微機系統(tǒng)配備的主流操作系統(tǒng)之一,是單用戶、單任務的磁盤操作系統(tǒng)。DOS提供功能服務的兩種方式:鍵盤命令程序執(zhí)行方式

4DOS的主要功能:管理各種設備管理CPU管理各種文件管理內存支持用戶的各種命令和程序支持shell操作和Windows支持網絡環(huán)境

5⒈DOS系統(tǒng)結構DOS由4個模塊構成:引導模塊(BOOT引導區(qū))用于啟動DOS時自動引導、裝入DOS系統(tǒng)到內存。DOS內核模塊(MSDOS.SYS)由兩部分組成:內核初始化程序DOS-INIT和DOS中斷服務程序。前者僅用于啟動DOS;后者則是真正DOS的內核,提供系統(tǒng)的中斷服務功能。DOSI/O接口模塊(IO.SYS)是DOS的I/O設備處理程序.它與ROM-BIOS一起組成I/O處理的服務體系,完成所有的I/O操作.命令管理模塊(Command)主要負責接受并處理各種輸入命令.它是直接面向用戶操作的

6DOS模塊結構圖

DOS系統(tǒng)BOOT模塊Command模塊MD-DOS模塊IO模塊Command常駐部分Command暫駐部分COM-INIT初始化程序內核初始化程序DOS-INITDOS中斷服務程序IO初始化程序SYS-INIT標準設備驅動程序

7DOS的層次結構

ROM-BIOS硬件系統(tǒng)IO.SYS設備驅動MSDOS.SYS系統(tǒng)功能Command用戶程序鍵盤命令用戶的操作

8⒉DOS編程流程確定程序目標設計程序編碼編譯運行測試與調試維護與修改確定程序的目標,算法、語言、處理技巧等系統(tǒng)設計;包括用戶界面、數據結構等系統(tǒng)編程;用指定程序設計語言編寫源程序編譯產生可執(zhí)行文件運行可執(zhí)行文件對運行的程序進行正確性測試,修改錯誤對程序不斷進行建設性維護,使其完善

9DOS編程開發(fā)工具DOS環(huán)境下的程序設計語言,包括:Fortran、BASIC、Pascal、C、C++、匯編語言等。不同的語言有其各自的適用領域和特點。如果是科學計算應用,選Fortran語言比其它語言和合適。C和C++是比較流行的程序設計語言,但它們也不是萬能的。在C語言中做不到的,在C++語言中也做不到。但用C++編寫程序,比用C寫程序更容易閱讀和交流,編程效率更高、更好。

10匯編語言適合對硬件接口類快速響應的應用,但匯編語言編寫、調試、維護很困難,也不便于閱讀。具體使用哪一種語言,還是要具體情況具體分析,根據實際情況和需要進行選用。

11⒊DOS內存分配圖DOS內存可以劃分為四種類型:(1)基本內存主板上640KB以下的存儲空間。DOS的系統(tǒng)程序和用戶的應用程序都要使用這片空間。(2)擴展內存(Extended)主板上640KB以上的存儲空間。這部分空間DOS不能直接管理,而是要通過擴展內存管理程序HIMEM.SYS來使用這部分內存。

12(3)擴充內存(Expanded)插在計算機主板的擴充槽中的內存擴充板上的那部分存儲器,它們是通過EMS.SYS程序來管理的。(4)保留內存(Reserved)這是給計算機留做存儲I/O系統(tǒng)數據及各種接口驅動程序使用的存儲器,也稱適配器內存。

13⒋操作系統(tǒng)程序員接口在DOS平臺下,通過DOS、BIOS和應用程序都可以實現對計算機硬、軟件資源的操作。(1)BIOS提供最接近硬件的低層接口,操作最直接;DOS提供的是高層次的功能服務;而高級語言則是通過對DOS和BIOS功能的調用來實現對計算機硬件設備的操作。操作是間接的。

14(2)高級語言優(yōu)點:編程效率高、可移植性好、便于交流缺點:執(zhí)行效率較低(不如DOS、BIOS功能),不能直接對硬件進行操作在開發(fā)程序過程中,使用什么語言,采用何種編程方式,都要視具體情況和需要來選擇。

15二、UNIXOS編程模式UNIX結構UNIX編程流程及開發(fā)包多進程編程特點常見進程通信方式程序員接口

16⒈UNIX結構UNIX系統(tǒng)分為三層:(1)內層:核心層UNIX內核,是OS管理和控制中心,常駐內存。(2)中間層:系統(tǒng)調用層界于核心層和應用層(外層)之間,是供程序員設計、開發(fā)應用程序時調用的。UNIX系統(tǒng)調用包括:進程管理、文件管理、終端狀態(tài)等。

17(3)外層:應用層包括各種開發(fā)工具、高級語言編譯器、網絡通訊處理程序等。所有應用層程序都是在shell(命令語言解釋程序)的管理和控制下為用戶服務的,是面向用戶操作的界面。

18UNIX系統(tǒng)結構圖

裸機存儲程序、進程管理、文件管理、I/O設備管理系統(tǒng)調用應用程序、各種語言處理程序Shell命令解釋程序系統(tǒng)程序員終端機用戶n用戶n用戶n應用層系統(tǒng)調用層內核層

19⒉UNIX編程流程及開發(fā)包UNIX編程流程:(1)源代碼編輯UNIX的編輯器是vi、ed。(2)編譯對源程序文件進行編譯,產生目標程序。UNIC的C編譯命令是cc,創(chuàng)建類庫的命令是ar,編譯大的應用程序用make命令。

20(3)調式三種調試工具Lint:檢查源代碼的錯誤;Prof:分析程序運行花費的時間;Sdb:符號診錯器,也提供斷點支持及編程環(huán)境中的交互式的程序調用。(4)鏈接將目標程序和庫函數等鏈接、裝配成可直接執(zhí)行的程序。(5)執(zhí)行程序運行可執(zhí)行程序。

21創(chuàng)建可執(zhí)行C程序的操作步驟1)預處理程序替換符號名,接受來自用戶源文件中的指令、用戶程序中命名文件的內容等。2)編譯程序把用戶源代碼文件中的c語言代碼翻譯成匯編語言代碼。

223)匯編程序把匯編語言代碼翻譯為目標機器的機器指令,并將這些指令保存在目標文件中。4)鏈接程序把目標文件、用戶程序中調用的庫函數進行鏈接,生成可執(zhí)行程序。

23UNIX開發(fā)包(1)MOTIFAPI提供一致性外觀和用戶接口的窗口部件的集合;(2)TCL/TK一種解釋性語言,也是一套C的函數庫,可提供基本的命令與控制結構;而TK是一個XWindow的工具包,是TCL在XWindow系統(tǒng)的應用。

24(3)GTK(GIMPToolKit)開發(fā)工具,基本是面向對象的應用程序設計的一套API,有些類似于Microsoft的MFC編程。(4)開發(fā)語言包括:C、C++、Fortran、Ada、Pascal、Lisp、SmallTalk等。

25⒊多進程編程特點UNIX是分時多用戶系統(tǒng)。由于每個進程都有各自的運行環(huán)境,在進程狀態(tài)轉換控制過程中要考慮處理不同的內容數據:用戶數據保存:包括正文段、數據段、堆棧段和共享內存段;寄存器數據保存:PC(指向下一條要執(zhí)行的地址)PSW(處理機狀態(tài))SP(堆棧指針)PCBP(進程控制塊指針)

26FP(指向堆棧中一個函數的Local變量的地址)AP(指向堆棧中函數調用的實參位置)ISP(中斷堆棧指針)及其他通用寄存器。系統(tǒng)層次保存:包括虛擬存儲空間管理表格,中斷處理堆棧。當該進程再得到CPU時間片時,能夠從“斷點”處開始正常地運行處理。

27多進程程序的特點(1)并行化將一個大而復雜的問題,劃分為一系列小而簡單的問題進行處理。處理時,各個小處理可以同時進行,而在一些關鍵點的處理時,再采用集中式。(2)簡單有序經并行化分解的程序是簡單的,可以單獨處理,但相互之間通過通訊機制而有機地結合成一個整體。

28(3)互不干擾各個進程是獨立的。(4)事物化將程序設計成一個進程只進行一次處理,相當于完成一個事物。進程處理完相當于一次事物完成。這樣的變成簡單易行。

29⒋常見進程通信方式UNIX系統(tǒng)中的進程間的通訊有兩層含義:單一進程內部各個模塊間的通訊作為單獨單位的各個不同進程間的通訊前者沿襲了單任務操作系統(tǒng)中的模塊通訊方法;后者必須保證各個進程在通訊過程中互不干擾從而保持其通信的一致性。

30UNIX采用的進程通信方式(1)文件和記錄鎖定為避免兩個進程間同時要求訪問同一共享資源而引起訪問和操作的混亂,在進程對共享資源進行訪問前必須對其進行鎖定,該進程訪問完后再釋放。這是UNIX為共享資源提供的互斥性保障。(2)管道管道一般用于兩個不同進程之間的通信。當一個進程創(chuàng)建一個管道,并調用fork創(chuàng)建自己的一個子進程后,父進程關閉讀管道端,子進程關閉寫管道端,這樣提供了兩個進程之間數據流動的一種方式。

31(3)FIFOFIFO是一種先進先出的隊列。它類似于一個管道,只允許數據的單向流動。每個FIFO都有一個名字,允許不相關的進程訪問同一個FIFO。因此也成為命名管道。(4)消息隊列UNIX下不同進程之間可實現共享資源的一種機制;UNIX允許不同進程將格式化的數據流以消息形式發(fā)送給任意進程。對消息隊列具有操作權限的進程都可以使用msget完成對消息隊列的操作控制。通過使用消息類型,進程可以按任何順序讀消息,或為消息安排優(yōu)先級順序。

32(5)信號燈作為進程間通訊的一種方法,它不是用于交換大批數據,而用于多進程之間的同步(協(xié)調對共享存儲段的存取)。(6)共享內存通過信號燈實現存儲共享(類似“紅燈停、綠燈行”)

33⒌程序員接口UNIX提供了在POSIX(計算機環(huán)境的可移植操作系統(tǒng)界面)的UNIXAPI,使其成為跨平臺的編程接口。UNIX是一套類庫中可調用的函數集,它的主要函數功能包括:標準C類庫的I/O功能、文件及目錄操作、進程的創(chuàng)建與終止、通信設施、設備驅動函數、系統(tǒng)數據庫、數據交換格式等。

34三、Windwos編程模式Windows結構WOSA及WindowsDNA事件及消息機制多線程編程流程幾開發(fā)包程序員接口

35⒈Windows結構

基本系統(tǒng)設備驅動程序虛擬機管理程序子系統(tǒng)操作系統(tǒng)服務網絡子系統(tǒng)文件管理子系統(tǒng)WindowsKernelWindowsGDIWindowsUserWindows子系統(tǒng)WindowsAPI層32位Windows應用程序WindowsKernel外殼16位Windows應用程序系統(tǒng)虛擬機器共享地址空間MS-DOS虛擬機

36Windows結構(續(xù))(1)系統(tǒng)虛擬機器VM是系統(tǒng)的環(huán)境名,在這種環(huán)境下,系統(tǒng)將支持所有的Windows應用程序和Windows子系統(tǒng)組件。如圖形設備接口(GDI)等。(2)32位Windows應用程序是一種新的Windows應用程序,是MicrosoftWin32應用程序編程接口API的一個子集。

37(3)外殼是一種32位的Windows應用程序,它為系統(tǒng)提供必須的用戶界面。(4)16位Windows應用程序在Windwos3.x上使用的應用程序。(5)Windows內核支持Windows應用程序所要求的低級服務,如動態(tài)內存分配。

38(6)GDI是Windows圖形功能的核心。(7)User是Windows管理程序。(8)MS-DOS虛擬機器支持在Windows下的MS-DOS應用程序。

39⒉WOSAWOSA(開放服務體系結構WindowsOpenServiceArchitecture)是Windows為實現分布式計算而設計的一套API。該結構模型可以使不同的提供商提供訪問多個后端的服務程序。WOSA包括:(1)MAPI:消息API。在不同網絡類型上,給Windows程序提供不同類型的透明的消息服務。

40(2)ODBC:開放數據庫連接。ODBC允許不同的Windows應用程序訪問任何企業(yè)網絡上的、多種類型數據庫系統(tǒng)。(3)RPC:遠程方法調用。使Windows應用程序可以跨異質的網絡去調用遠程的方法或應用。

41WOSA(續(xù))(4)WindowsSoketS:Windows套接字。使網絡上使用不同類型數據傳輸協(xié)議的程序通過套接字進行透明的操作。(5)LicenseServicesAPI:驗證字服務API。這是一個軟件驗證字的編程接樓,可以實行對不同公司產品的監(jiān)控以及控制網絡程序的應用。(6)TAPI:提供一個應用的API接口。使Windows應用程序可以對傳統(tǒng)的網絡及設備進行透明存取。

42⒊WindowsDNAWindowsDNA(WindowsDistibutedinterNetApplicationsArchitecture)。Windows分布式Internet應用結構。目的是創(chuàng)建一個框架,用以建立基于微軟Windows平臺的各種應用程序,從而使PC機和Internet完美結合。WindwosDNA建立了一個計算模型,它實現了Web和客戶機/服務器計算的集成。

43在最高層次上,WindowsDNA融合PC機和Internet是通過兩種途徑:一是使計算機之間通過協(xié)作望、公眾網能很好地湖用和共同運作;二是將應用的核心服務或“管道”服務更深地綜合于操作系統(tǒng)。更重要的是WindwosDNA提供了一個基于開放式協(xié)議和公開界面的互用性框架,這一框架能使用戶以新功能(Web)擴展現有系統(tǒng)。

44WindowsDNA的核心是通過一個公共對象模型(COM)將Web和客戶機/服務器應用開發(fā)模式結合起來。WindowsDNA通過構件對象模型使用一套通用的服務集,如構件,動態(tài)HTML、網絡瀏覽器和服務器、腳本、事物處理、消息序列、安全性、目錄、DB和數據存取、系統(tǒng)管理以及用戶界面。這些服務一統(tǒng)一的方式公開于各個層面,供應用程序使用。

45WindowsDNA體系結構1、Windows平臺:WindowsOS、Win32技術2、部件對象模型COM:COM、DCOM及與之相關的技術3、Internet技術:MS-IE、動態(tài)HTML(DHTML)、IIS、MS-SiteServer、JAVA

464、WindowsDNA服務:包括安全性、目錄、事物處理、消息隊列、DB管理、數據存取、E-mail與協(xié)作、腳本、系統(tǒng)管理等;5、WindowsDNA的工具:快速應用開發(fā)工具、組件的創(chuàng)建、協(xié)同開發(fā)、內容的創(chuàng)建與發(fā)布、Web網站的開發(fā)。6、其他WindowsDNA服務器的應用。MS-BackOffice等。

47WindowsDNA體系結構示意圖

工具集用戶接口及瀏覽事務處理集成化存儲分布式操作系統(tǒng)(DOE)

48⒋事件及消息機制Windows是事件驅動(消息驅動)的OS,也是基于消息的OS。Windows應用程序中消息有兩種送出途徑;直接和排隊。Windows或某些運行的應用程序可直接發(fā)布消息給窗口過程,或者,消息可送到消息隊列,在應用程序執(zhí)行期間應用程序對象連續(xù)不斷輪詢消息隊列的消息。凡是以排隊方式送出的消息都被送到一個由操作系統(tǒng)提供的消息隊列的保留區(qū)。在OS中當前執(zhí)行的每個進程都有各自的消息隊列。

49事件驅動程序不是由事件的順序來控制,而是由事件的發(fā)生來控制,而事件的發(fā)生是隨機的、不確定的,這就允許程序的用戶用各種合理的順序來安排程序的流程。事件驅動圍繞消息的產生與處理展開,它是靠消息循環(huán)機制來實現的,消息是一種報告有關事件發(fā)生的通知。

50Windows應用程序的消息來源(1)輸入消息包括鍵盤和鼠標的輸入。這類消息首先放在系統(tǒng)消息隊列中,然后由Windows將它們送到應用程序的消息隊列中,由應用程序來處理消息。(2)控制信息用來與Windows的控制對象(列表框、按鈕等)進行雙向通信。這類信息一般不經過應用程序消息隊列,而是直接發(fā)送到控制對象上去。

51(3)系統(tǒng)消息對程序化的事件或系統(tǒng)時鐘中斷作出反映。有些消息(動態(tài)數據交換消息DDE)要通過Windows的系統(tǒng)消息隊列,而有的則不通過系統(tǒng)消息隊列而直接送入應用程序的消息隊列(如創(chuàng)建窗口消息)。(4)用戶消息這是程序員自己定義并在應用程序中主動發(fā)出的消息,一般由應用程序的某一部分內部處理。

52⒌多線程(1)Win32分配CPU的基本單位。是代碼執(zhí)行的流程,它可以執(zhí)行應用程序代碼的任何部分。(2)32位的Windows應用程序可包含一個或多個進程,每個進程由一個或多個線程構成。(3)線

溫馨提示

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

最新文檔

評論

0/150

提交評論