作業(yè)管理舉例說(shuō)明.ppt

上傳人:xin****828 文檔編號(hào):14619944 上傳時(shí)間:2020-07-26 格式:PPT 頁(yè)數(shù):67 大小:404KB
收藏 版權(quán)申訴 舉報(bào) 下載
作業(yè)管理舉例說(shuō)明.ppt_第1頁(yè)
第1頁(yè) / 共67頁(yè)
作業(yè)管理舉例說(shuō)明.ppt_第2頁(yè)
第2頁(yè) / 共67頁(yè)
作業(yè)管理舉例說(shuō)明.ppt_第3頁(yè)
第3頁(yè) / 共67頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《作業(yè)管理舉例說(shuō)明.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《作業(yè)管理舉例說(shuō)明.ppt(67頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、2.5 用戶界面舉例,2.5.1 作業(yè)控制語(yǔ)言,1. 命令行 2. 環(huán)境變量,脫機(jī)作業(yè)控制:用戶輸入作業(yè)說(shuō)明書,整個(gè)作業(yè)的運(yùn)行由系統(tǒng)控制。 聯(lián)機(jī)作業(yè)控制:通過(guò)人-機(jī)會(huì)話方式控制作業(yè)運(yùn)行。用戶登錄(控制臺(tái)登錄或遠(yuǎn)程登錄),由系統(tǒng)自動(dòng)執(zhí)行一些命令腳本后,并進(jìn)入shell(字符或GUI界面),接受用戶的命令和操作,最后退出系統(tǒng)。,1. 命令行,命令行:一行可有一個(gè)或多個(gè)命令,每次一行,包含一個(gè)或多個(gè)命令。 shell給出提示符時(shí)可輸入,以回車鍵提交。如: “l(fā)s -a -l”列出當(dāng)前目錄文件列表; 命令格式:一個(gè)命令可有命令參數(shù),格式包括選項(xiàng)/開關(guān) (option/switch)或參數(shù)(argume

2、nt)。 如UNIX系統(tǒng): cp -r doc /tmpargv0, argv1, ...(含子目錄的文件復(fù)制:/tmp為目標(biāo)地址),命令分類:內(nèi)部命令和外部命令 內(nèi)部命令:直接由shell本身完成,功能簡(jiǎn)單、使用頻繁;常駐內(nèi)存,如:DOS的copy命令。 外部命令:運(yùn)行相應(yīng)的可執(zhí)行文件,在使用時(shí)加載。如:DOS的xcopy命令。 命令簡(jiǎn)化:利用參數(shù)替換可簡(jiǎn)化命令輸入,通配符(?, *)用于匹配一組文件名如:UNIX的cp命令:當(dāng)前目錄上有兩個(gè)1.tar和2.tar時(shí),cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp,2. 環(huán)境變量,環(huán)境變量也可以作為s

3、hell參數(shù),如命令提示符的式樣,外部命令的查找目錄路徑等。 如:PATH=/bin:/usr/bin:/usr/sbin:. HOME=/home/thisuser 環(huán)境變量是傳遞命令參數(shù)的另一種途徑。如: cd $HOME; 環(huán)境變量可按名字訪問(wèn),可以新建、賦值或撤銷。 有效范圍:只對(duì)本進(jìn)程里的環(huán)境變量能夠直接進(jìn)行操作, 此外,在執(zhí)行新進(jìn)程時(shí)(UNIX中是exec()調(diào)用),可以給出環(huán)境變量的初始值,通常就是直接復(fù)制當(dāng)前進(jìn)程的所有環(huán)境變量繼承。,環(huán)境變量(environment variable)應(yīng)用進(jìn)程地址空間中的特殊變量區(qū)。,2.5.2 作業(yè)管理舉例*,2.2.1 MS DOS的作業(yè)管

4、理 2.2.2 UNIX的作業(yè)管理,返回,2.5.3 MS DOS的作業(yè)管理,命令分類: 內(nèi)部命令:如dir, cd, copy 外部命令:如format, xcopy 命令行選項(xiàng) 命令行選項(xiàng)通常是:/option;如:/?選項(xiàng)可顯示各命令的命令行選項(xiàng)列表。 通配符:由外部命令自己處理。如:xcopy *.c . argv1=*.c,2.5.3.1. DOS命令處理程序,(或其他程序如DOS shell):駐留內(nèi)存,在系統(tǒng)運(yùn)行期間不再退出。為了給應(yīng)用程序的執(zhí)行提供更大內(nèi)存空間,又分為常駐部分和暫駐部分(可被應(yīng)用程序覆蓋),輸入輸出重定向和管道(pipe) , , |, 基于臨時(shí)文件 ”為輸出重

5、定向,“”為添加輸出重定向。如: “dir temp.txt”將把“dir”命令在屏幕上的輸出保存在新文件“temp.txt”中; 而dir temp.txt將屏幕輸出追加在文件temp.txt的結(jié)尾。,管道|是將前一個(gè)命令的屏幕輸出作為后一個(gè)命令的鍵盤輸入。如:dir | sort將把dir命令的輸出按行進(jìn)行排序。 環(huán)境變量 set PATH=c:tools;%PATH%原PATH=c:dos 則后PATH=c:tools;c:dos 系統(tǒng)引導(dǎo)時(shí)加載 系統(tǒng)引導(dǎo)時(shí)加載:autoexec.bat,2.5.3.2. DOS批處理:由執(zhí)行,循環(huán):循環(huán)執(zhí)行命令。 FOR /R drive:path %

6、variable IN (set) DO command command-parameters 遍歷根在drive:path上的目錄樹,在樹的每個(gè)目錄中執(zhí)行 FOR 語(yǔ)句。如果在 /R 后沒(méi)有指定任何目錄規(guī)范,那么假設(shè)為當(dāng)前目錄。如果 set 僅是一個(gè)句號(hào)(.),那么它 將僅列出目錄樹。,有簡(jiǎn)單的變量替換,有條件轉(zhuǎn)移和跳轉(zhuǎn)、循環(huán)和注釋語(yǔ)句rem,關(guān)于循環(huán)的實(shí)例,for %%字母 in (文件列表) do 命令 %%字母:命令描述時(shí)的某個(gè)參數(shù). 文件列表:可以是1個(gè)文件或多個(gè)文件. 命令:用戶指定. 例: c:for %A in (c:,d:) do chkdsk %A 依此對(duì)C:,D:進(jìn)行ch

7、kdsk命令,%A順序取C:,D:,如下面批處理將顯示當(dāng)前目錄及其子目錄所有后綴為ppt的文件名(含路徑名); for /R %f in (*.ppt) do echo %f 可能的顯示結(jié)果: C:usersxyongwork2001-02-20 chapter1.ppt C:usersxyongworktemp2001-02-18 chapter1.ppt C:usersxyongworktemp2000-08-09 Linux Lecture2000-08-15 Linux.ppt,分支,IF NOT ERRORLEVEL number command IF NOT string1==st

8、ring2 command IF NOT EXIST filename command NOT 只有在條件為假時(shí),才需運(yùn)行命令。 ERRORLEVEL number 如果最近程序運(yùn)行返回的退出碼等于或大于指定的號(hào)碼時(shí),則設(shè)定條件為真。 command 當(dāng)符合條件時(shí),指定要運(yùn)行的命令。 string1==string2 當(dāng)指定字符串匹配時(shí),設(shè)置條件為真。 EXIST filename 當(dāng)指定文件名存在時(shí),設(shè)置條件為真。 如: IF ERRORLEVEL 1 goto okay :okay echo okay,2.5.4 UNIX的用戶界面,2.2.2.1. shell命令處理程序 2.

9、2.2.2. shell批處理,2.5.4.1 shell命令處理程序,1. shell的類型 2. 初始化文件 3. 基本特征 4. 輸入輸出重定向 5. 管道 6. 后臺(tái)執(zhí)行 7. 環(huán)境變量和內(nèi)部變量 8. 別名 9. 常用的外部命令,shell的類型,Bourne shell(/bin/sh) Bourne shell 的作者是 Steven Bourne。它是 UNIX 最初使用的shell 并且在每種 UNIX 上都可以使用。Bourne shell 在 shell 編程方面相當(dāng)優(yōu)秀,但在處理與用戶的交互方面作得不如其他幾種 shell。 Bourne shell 最大的缺點(diǎn)在于它處

10、理用戶的輸入方面。在 Bourne shell 里鍵入命令會(huì)很麻煩,尤其當(dāng)你鍵入很多相似的命令時(shí)。,UNIX上有許多種shell,主要功能是相同的,在細(xì)節(jié)上有一些區(qū)別。幾種shell 都有它們的優(yōu)點(diǎn)和缺點(diǎn)。,C shell(/bin/csh) C shell 由 Bill Joy 所寫,它更多的考慮了用戶界面的友好性。它支持象命令補(bǔ)齊(command-line completion)等一些 Bourne shell 所不支持的特性。普遍認(rèn)為C shell 的編程接口做的不如 Bourne shell, 但 C shell 被很多 C 程序員使用因?yàn)?C shell的語(yǔ)法和 C語(yǔ)言的很相似,這也

11、是C shell名稱的由來(lái)。,Korn shell (ksh) Korn shell (ksh) 由 Dave Korn 所寫。它集合了C shell 和 Bourne shell 的優(yōu)點(diǎn)并且和 Bourne shell 完全兼容。,Bourne Again shell (bash) Bourne Again shell (bash)是 Bourne shell 的擴(kuò)展。bash 與 Bourne shell 完全向后兼容,并且在 Bourne shell 的基礎(chǔ)上增加和增強(qiáng)了很多特性。bash 也包含了很多 C 和 Korn shell 里的優(yōu)點(diǎn)。bash 有很靈活和強(qiáng)大的編程接口,同時(shí)又有

12、很友好的用戶界面。 bash 有幾種特性使命令的輸入變得更容易。,其他shell 除了這些 shell 以外,許多其他的 shell 程序吸收了這些原來(lái)的 shell 程序的優(yōu)點(diǎn)而成為新的 shell 。如: tcsh (csh 的擴(kuò)展) Public Domain Korn shell (pdksh, ksh 的擴(kuò)展),2. 初始化文件,B Shell執(zhí)行.profile C Shell執(zhí)行.cshrc和.login兩個(gè)文件 K Shell執(zhí)行.profile和$ENV兩個(gè)文件 (sh) .profile與(csh) .login對(duì)應(yīng),進(jìn)行注冊(cè)時(shí)的初始化;而在csh在非注冊(cè)啟動(dòng)時(shí)都讀入.cs

13、hrc;,3. 基本特征,內(nèi)部命令:如cd, exec區(qū)分大小寫,exec的功能是執(zhí)行一個(gè)命令; 外部命令:如ls, mkdir 命令行選項(xiàng)通常是:-option 如:ls -a -l中的-a表示列出所有文件,-l表示列出所有信息。 通配符:由shell處理后再傳遞給外部命令。 如:cat *.c 則argv1=a.c, argv2=b.c,而 cat *.c 則argv1=*.c(cat的功能是讀入所有文件,并顯示),4. 輸入輸出重定向,和為標(biāo)準(zhǔn)輸出重定向; 2和2為標(biāo)準(zhǔn)錯(cuò)誤輸出重定向(2表示標(biāo)準(zhǔn)錯(cuò)誤輸出的設(shè)備號(hào),只對(duì)sh有意義); ,7. 環(huán)境變量和內(nèi)部變量,set可給出內(nèi)部變量列表,e

14、nv可給出環(huán)境變量列表。繼承只對(duì)環(huán)境變量有效。 sh: PATH=/usr/bin:$PATH ; export PATH注意:在export前為內(nèi)部變量,之后為環(huán)境變量。 csh: set setenv PATH /usr/bin:$PATH--注意:在csh中環(huán)境變量的賦值(setenv)沒(méi)有等號(hào),而內(nèi)部變量的賦值(set)有等號(hào)。,內(nèi)部變量不能被子進(jìn)程繼承(如同C里的局部變量);改環(huán)境變量就會(huì)自動(dòng)改內(nèi)部變量,反之不然。,8. 別名,alias 的格式: alias aliasname=string . 把 aliasname 直接用來(lái)取代后面的 string ,如有任何跟在后面的 arg

15、ument 將會(huì)出現(xiàn)的其后。利用該功能,使用者可以將常用卻冗長(zhǎng)的指令以其他的名字存起。 如:alias dir=ls -a -l為ls -a -l定義了一個(gè)別名dir;,給復(fù)雜命令定義別名:alias/unalias,9. 常用的外部命令,man查看手冊(cè) echo, wc, grep, sed, awk(用于文本掃描和處理), sort, cut(對(duì)每行進(jìn)行特定刪除處理)字符串操作; pwd, ls, mkdir, rmdir, cp, rm, mv, ln文件和目錄操作; chmod, chown, chgrp(修改文件所在的用戶組)文件權(quán)限和屬主; cat, more, tail(顯示文件

16、的最后部分)查看文件; test, expr檢測(cè)和數(shù)值計(jì)算; vi全屏幕編輯;,2.5.4.2. 批處理,1. 變量替換 2. 條件轉(zhuǎn)移 3. 循環(huán) 4. 分支 5. 函數(shù),稱為腳本 shell script:注釋用 #,續(xù)行用 解釋執(zhí)行,效率較低;而且要加載外部命令; 指定解釋執(zhí)行腳本的程序:#!/bin/sh或 #!/opt/bin/perl perl, Practical Extraction and Report Language是一個(gè)文本文件分析工具。 執(zhí)行腳本(sh):cmd(cshsource cmd), exec cmd, cmd(sh < cmd, sh cmd) sour

17、ce命令是運(yùn)行tcl腳本;exec是用指定命令新建shell,以取代當(dāng)前shell;sh命令是運(yùn)行sh腳本。,1. 變量替換,如:下面是一個(gè)變量定義和引用的例子: temp=test message echo $temp echo AAA$tempBBB echo CCC$tempDDD echo $temp,變量賦值格式:變量名=值 值串中包括空格、制表符或換行符時(shí),值要放在號(hào)內(nèi);變量引用格式:$變量名 如引用前后緊接其它字符,引用方式為:$變量名或$變量名; $variable, 雙引號(hào):“進(jìn)行變量替換”, 單引號(hào):不作任何替換;,其運(yùn)行結(jié)果為: test message AAAtest

18、messageBBB CCCtest messageDDD $temp,2. 條件轉(zhuǎn)移,if command; then ... ; else ... ; fi,例: # 調(diào)用test命令,注意:方括號(hào)和判斷條件之間必須有空格 !! # 下面腳本在有參數(shù)時(shí)顯示Have arguement(s),無(wú)參數(shù)時(shí)顯示No arguement; # 其中, a$1 = a 用于判斷$1是否為空串; if a$1 = a ; then echo No arguement else echo Have arguement(s) fi,運(yùn)行結(jié)果為: xyongwell /work./temp.txt No ar

19、guement xyongwell /work./temp.txt we Have arguement(s),例: # 下面腳本在命令行參數(shù)個(gè)數(shù)不對(duì)(其中,test $# = 4測(cè)試命令行參數(shù)個(gè)數(shù)是否為4),提示出錯(cuò)信息; if test $# = 4 ; then echo $4 $3 $2 $1 else echo $0 usage: arg1 arg2 arg3 arg4 fi,運(yùn)行結(jié)果如下: xyongwell /work$ ./temp.txt ./temp.txt usage: arg1 arg2 arg3 arg4 xyongwell /work$ ./temp.txt a b

20、c d d c b a,3. 循環(huán),while 1 ; do ... ; done,例: # 下面腳本在文件lockfile可讀時(shí)每暫停5秒重復(fù)測(cè)試一次(其中,test -r lockfile判斷文件lockfile是否存在); while test -r lockfile; do sleep 5 done 運(yùn)行結(jié)果為:有文件lockfile時(shí),腳本一直不結(jié)束;直到該文件被刪除后,腳本才結(jié)束。,4. 分支,基于模式匹配的多路分支結(jié)構(gòu),它依據(jù)word的不同,執(zhí)行不同的命令序列; case word in pattern1) pat1-list;; pattern2) pat2-list;; es

21、ac,例: # 下面腳本依據(jù)命令行參數(shù)的不同,顯示不同內(nèi)容; case $1 in *.c) echo C:$1 ;; *.a) echo A:$1 ;; *.f) echo F:$1 ;; esac,運(yùn)行結(jié)果如下: xyongwell /work$ ./temp.txt c.a A:c.a xyongwell /work$ ./temp.txt c.c C:c.c xyongwell /work$ ./temp.txt c.f F:c.f,5. 函數(shù),例: #這里$*和$1是new_func的參數(shù),而$0為腳本的參數(shù)) new_func () echo $* echo $1 new_fun

22、c $0 arg2 運(yùn)行結(jié)果為: xyongwell /work./temp.txt asb ./temp.txt arg2 ./temp.txt,2.5.4.3圖形用戶接口(GUI, GRAPHIC USER INTERFACE),2.4.1 概述 2.4.2 MS Windows* 2.4.3 X Window* 2.4.4 事件驅(qū)動(dòng)模式(event-driven)*,返回,在命令行方式下,用戶與操作系統(tǒng)的交互要求用戶記憶命令格式。在圖形用戶接口方式下,用戶可利用鼠標(biāo)對(duì)屏幕上的圖標(biāo)進(jìn)行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶使用。它的技術(shù)基礎(chǔ)是高分辯顯示器和鼠標(biāo)。,1 概述,

23、1. 窗口系統(tǒng)(window system)的特點(diǎn) 2. 窗口系統(tǒng)的圖形元素及其狀態(tài) 3. 窗口管理器(window manager),1. 窗口系統(tǒng)(window system)的特點(diǎn),利用圖形元素表示功能: 同屏多窗口與并發(fā)進(jìn)程相對(duì)應(yīng): 輸入方式:鼠標(biāo)指針點(diǎn)擊 一致的圖形元素風(fēng)格 優(yōu)點(diǎn):操作直觀 交互的并發(fā)性好、傳遞信息量大,2. 窗口系統(tǒng)的圖形元素及其狀態(tài),窗口(window):屏幕上的矩形區(qū)域(可以通過(guò)掩模mask來(lái)顯示任意形狀) 包括:標(biāo)題條(title bar)、邊框(border)、窗口角(corner)、系統(tǒng)菜單框(system menu box)、最大化/最小化按鈕(maxi

24、mize/minimize)、滾動(dòng)條(scroll bar)等 狀態(tài):當(dāng)前/非當(dāng)前窗口(active/inactive) 接受輸入,最大化/最小化/恢復(fù)原大小(restore),窗口的前后遮蓋Z軸,焦點(diǎn)(focus)接受鍵盤輸入(而非鼠標(biāo)) 桌面(desktop)和墻紙(wallpaper) 圖標(biāo)(icon):,鼠標(biāo)指針(mouse pointer): 按鈕(button): 菜單(menu): 對(duì)話框(dialog box):,3. 窗口管理器(window manager):形成統(tǒng)一的使用風(fēng)格,處理窗口的普遍特性,如:窗口的大小、位置(窗口的標(biāo)題條、邊框、控制菜單框)窗口中由應(yīng)用程序管理的

25、部分稱為客戶區(qū)(client area) 協(xié)調(diào)各窗口間的相互關(guān)系,如:窗口之間的前后遮蓋關(guān)系,桌面,MS Windows,1. 特點(diǎn) 2. MS Windows結(jié)構(gòu) 3. 基本概念 4. 消息處理:兩種方法,1. 特點(diǎn),是OS 的一部分,提供默認(rèn)的窗口風(fēng)格(如菜單、對(duì)話框) 除Windows2000外,窗口應(yīng)用程序只能在控制臺(tái)(本地)執(zhí)行。,2. MS Windows結(jié)構(gòu),OS系統(tǒng)服務(wù)(KERNEL):內(nèi)存管理、程序加載(包括DLL)、任務(wù)調(diào)度、文件管理 用戶接口(USER):窗口和消息管理,以及菜單、控制、對(duì)話框、定時(shí)器等 圖形設(shè)備接口(GDI, Graphic Device Interfa

26、ce):管理顯示器,為USER與應(yīng)用程序提供與硬件設(shè)備獨(dú)立的接口,可分成三個(gè)部分。,3. 基本概念,消息(message):消息作為窗口的輸入,如用戶操作、其他窗口或系統(tǒng)發(fā)出的請(qǐng)求或通知。 窗口過(guò)程(window procedure):消息由各窗口自己的窗口過(guò)程來(lái)作處理。 窗口過(guò)程的調(diào)用參數(shù):接收窗口句柄(可以在多個(gè)窗口共用一個(gè)窗口過(guò)程時(shí)加以區(qū)分)、消息ID(消息的類型)、消息參數(shù)(16+32位或32+32位值,整數(shù)或指針) 還可以取得消息的發(fā)生時(shí)間和屏幕坐標(biāo),4. 消息處理:兩種方法,排隊(duì)消息:放到進(jìn)程(線程)的FIFO消息隊(duì)列里。如應(yīng)用程序發(fā)送的消息,系統(tǒng)的鼠標(biāo)、鍵盤、定時(shí)器、窗口繪制和退

27、出等。排隊(duì)消息所用的API: 發(fā)送消息到消息隊(duì)列PostMessage; 從消息隊(duì)列讀取消息GetMessage, PeekMessage; 分發(fā)一個(gè)消息到相應(yīng)窗口DispatchMessage; 非排隊(duì)消息:直接發(fā)送到指定窗口的窗口過(guò)程。非排隊(duì)消息所用的API: SendMessage,直到接收方窗口過(guò)程處理完才返回 接收方正處于GetMessage,而接受并處理SendMessage送來(lái)的消息之后,仍處于GetMessage。為防止死鎖,一般要:if (InSendMessage()) ReplyMessage(TRUE);,消息循環(huán):不斷移出消息,并加以處理。用戶不作處理的消息,應(yīng)傳給默

28、認(rèn)窗口過(guò)程加以處理:DefWindowProc() WM_PAINT消息:通知窗口客戶區(qū)中的某部分(region)已被改變,應(yīng)用程序應(yīng)該對(duì)其重新繪制??偸潜慌旁诰€程消息隊(duì)列的最后,并且多個(gè)WM_PAINT消息中的region會(huì)自動(dòng)被合并為一個(gè)。,X Window,1.特點(diǎn) 2. X Window的結(jié)構(gòu) 3. 基本概念 4. X lib和工具箱(toolkit) 5. X Window的使用,Client-Server結(jié)構(gòu):X client和server都是應(yīng)用程序 一個(gè)server可以為不同計(jì)算機(jī)上的多個(gè)client提供服務(wù), server對(duì)有關(guān)I/O設(shè)備具有訪問(wèn)權(quán) 一個(gè)client也可以連接

29、不同計(jì)算機(jī)上的多個(gè)server 顯示設(shè)備獨(dú)立性和支持多種網(wǎng)絡(luò)協(xié)議:(在TCP/IP, DECnet之上的X protocol) X不是計(jì)算機(jī)操作系統(tǒng)的一部分:其他大部分窗口系統(tǒng)都是以O(shè)S核心為基礎(chǔ)的,如:MS Windows, Macintosh, SunView 支持自由風(fēng)格(policy free):只提供機(jī)制不提供風(fēng)格;包括窗口管理器、菜單、按鈕、滾動(dòng)條等的管理和操作,如:Motif, Open Look, Tcl/Tk等,1. 特點(diǎn),2. X Window的結(jié)構(gòu),X Window的結(jié)構(gòu),各client、窗口管理器和X server可以在一臺(tái)或多臺(tái)計(jì)算機(jī)上 用戶對(duì)server所控制設(shè)備的

30、操作都使server發(fā)送事件(event),如:鼠標(biāo)移動(dòng)、點(diǎn)擊,鍵盤輸入; 事件是一個(gè)數(shù)據(jù)塊,內(nèi)容包括:事件類型、相關(guān)的窗口等 client對(duì)來(lái)自server的事件進(jìn)行處理,然后向server發(fā)送請(qǐng)求(request),如:窗口操作、顯示圖形或正文 X protocol使用的傳送信道:異步字節(jié)流。server不斷發(fā)送事件而由client中的先進(jìn)先出FIFO隊(duì)列加以緩沖,client不斷發(fā)送請(qǐng)求而由server中的FIFO隊(duì)列加以緩沖。,X Window的隊(duì)列,3. 基本概念,屏幕(screen)和顯示器(display):屏幕指顯示設(shè)備硬件,而顯示器指X server(及其控制的鍵盤、鼠標(biāo)和屏

31、幕)。X允許一個(gè)顯示器控制多個(gè)屏幕(即顯示設(shè)備硬件)。 資源(resource):是X window使用的窗口、位圖(bitmap)、字體(font)、調(diào)色板(color map)和其他數(shù)據(jù)結(jié)構(gòu)的總稱。 資源在X server中創(chuàng)建和存儲(chǔ),按照client的請(qǐng)求來(lái)加以管理,而client退出時(shí)撤銷對(duì)應(yīng)的資源。 通過(guò)資源標(biāo)識(shí)(resource ID,整數(shù)類型)來(lái)標(biāo)識(shí)不同的資源(包括系統(tǒng)資源)資源的自身不體現(xiàn)風(fēng)格 窗口樹:層次,子窗口只顯示出被父窗口剪切(clip)的區(qū)域,4. X lib和工具箱(toolkit),X lib函數(shù)庫(kù),將接收到的X protocol轉(zhuǎn)換為事件,并將請(qǐng)求轉(zhuǎn)換為發(fā)送X

32、protocol。其代碼鏈接在X client中。如: 打開顯示器:XOpenDisplay(char *display_name)與X server建立連接 取得X connection的文件描述符:XConnectionNumber(),X toolkit:提供各種構(gòu)件的例程庫(kù),便于用戶使用,體現(xiàn)不同的風(fēng)格。如:Motif, Open Look, Tcl/Tk構(gòu)件的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在X client Xt Intrinsics:對(duì)構(gòu)件的管理和操作,如:建立和撤銷widget、管理資源(包括widget的初始值)、處理事件并調(diào)用相應(yīng)的處理程序(回調(diào)過(guò)程call-back) widget set:

33、構(gòu)件集合構(gòu)件類(widget class)和構(gòu)件實(shí)例(widget instance),構(gòu)件(widget):由多個(gè)資源(最終是resource ID)復(fù)合而成,具有特定外觀和功能的部件,如:按鈕、菜單和滾動(dòng)條如同建筑上的預(yù)制件。本質(zhì)是:對(duì)某些事件給出了默認(rèn)響應(yīng)(通常是改變外觀),并可以掛接回調(diào)過(guò)程來(lái)進(jìn)行用戶定義的處理,方便用戶使用。如Tcl/Tk:button .app.button2 -image icon2 -command incr x0 各個(gè)widget也構(gòu)成widget tree,最頂層是top-level widget(在toolkit初始化時(shí)建立) editres命令:查看wi

34、dget tree,并對(duì)X 應(yīng)用進(jìn)程中的資源進(jìn)行動(dòng)態(tài)修改,5. X Window的使用,1)本地,起動(dòng)X server 2)本地,允許訪問(wèn)X server:xhost +hostC 3)本地,發(fā)起遠(yuǎn)程登錄:telnet hostC并輸入用戶名和口令 4)遠(yuǎn)地,運(yùn)行X終端程序:/usr/openwin/bin/xterm -display hostS:0.0 /usr/openwin/bin/xterm /* C1:管道1可讀*/ if (C2) P2; /* C2:管道2可寫*/ if (C3) P3;/* C3:定時(shí)器的時(shí)間到*/ ,事件驅(qū)動(dòng)模式,While (!done) NextEve

35、nt(Event); /* 獲取下一個(gè)事件,若無(wú)事件則等待直到有事件*/ switch (Event.Type) case C1:P1; case C2:P2; case C3:P3; ,將多路判斷和等待匯集為一路 UNIX系統(tǒng)中相應(yīng)的系統(tǒng)調(diào)用或庫(kù)函數(shù)為:select()(Solaris 2.3庫(kù)函數(shù),Linux系統(tǒng)調(diào)用), poll()(Solaris 2.3系統(tǒng)調(diào)用) 特點(diǎn): 節(jié)省運(yùn)行CPU開銷無(wú)事件時(shí)等待而不是反復(fù)查詢,有事件時(shí)才處理 當(dāng)處理分支較多時(shí),switch語(yǔ)句變得復(fù)雜和不易掌握,3. 分發(fā)驅(qū)動(dòng)模式,特點(diǎn): 通過(guò)對(duì)象管理機(jī)構(gòu)(如X toolkit)創(chuàng)建多個(gè)對(duì)象或構(gòu)件,輸入事件通

36、過(guò)對(duì)象各自的回調(diào)過(guò)程(call-back procedure)來(lái)處理 通過(guò)對(duì)象管理機(jī)構(gòu),將輸入事件分發(fā)給適當(dāng)?shù)脑責(zé)o須了解分發(fā)過(guò)程的實(shí)現(xiàn),CreateObject(object1, P1); CreateObject(object2, P2); CreateObject(object3, P3); While (!done) NextEvent(Event); /* 獲取下一個(gè)事件,若無(wú)事件則等待直到有事件*/ Dispatch(Event);/* 分發(fā)事件給相應(yīng)的回調(diào)過(guò)程*/ ,4. 舉例,MS Windows的消息處理:,WinMain(...) CreateWindow(MainWn

37、dClass, SampleName, ...); /* 窗口過(guò)程的人口指針包括在WNDCLASS結(jié)構(gòu)中,通過(guò)RegisterClass注冊(cè)窗口類*/ while (GetMessage( ,X Window的事件處理:Xt Intrinsics,main(..) topWidget = XtAppInitialize(...); XtRealizeWidget(...); while (1) /* 這里的while循環(huán)等價(jià)于XtAppMainLoop 函數(shù)*/ XtAppNextEvent(..., ,小結(jié),作業(yè)組織和控制:脫機(jī)、聯(lián)機(jī)(命令行) 系統(tǒng)調(diào)用:與普通過(guò)程調(diào)用的區(qū)別、與高級(jí)語(yǔ)言函數(shù)庫(kù)的區(qū)別、實(shí)現(xiàn)過(guò)程 作業(yè)管理舉例:DOS、UNIX(shell) 圖形用戶接口(GUI):概述、X Window、MS Windows、事件驅(qū)動(dòng)模式,謝謝!,Thank you,

展開閱讀全文
溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!