2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩83頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章 作業(yè)管理和用戶(hù)接口,2.1 作業(yè)組織和控制2.2 作業(yè)管理舉例2.3 系統(tǒng)調(diào)用(SYSTEM CALL)2.4 圖形用戶(hù)接口(GUI, GRAPHIC USER INTERFACE),在這一章中,我們討論OS向上提供的用戶(hù)接口,即系統(tǒng)命令接口和系統(tǒng)調(diào)用接口。系統(tǒng)命令接口可完成用戶(hù)作業(yè)的組織和控制。,2.1 作業(yè)組織和控制,2.1.1 作業(yè)和作業(yè)處理過(guò)程2.1.2 作業(yè)調(diào)度2.1.3 作業(yè)控制語(yǔ)言,返回,2.1.1 作業(yè)

2、和作業(yè)處理過(guò)程,1. 作業(yè)的概念2. 作業(yè)的組成3. 作業(yè)的處理過(guò)程4. 作業(yè)輸入方式5. 作業(yè)控制表(JCB, Job Control Block),1. 作業(yè)的概念,一個(gè)作業(yè)是指在一次應(yīng)用業(yè)務(wù)處理過(guò)程中,從輸入開(kāi)始到輸出結(jié)束,用戶(hù)要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部工作。用戶(hù)的觀(guān)點(diǎn):在一次業(yè)務(wù)處理過(guò)程中,從輸入程序和數(shù)據(jù)到輸出結(jié)果的全過(guò)程。作業(yè)步:形成中間結(jié)果文件。系統(tǒng)的觀(guān)點(diǎn)(針對(duì)作業(yè)進(jìn)行資源分配):作業(yè)由程序及數(shù)據(jù)(

3、作業(yè)體)和作業(yè)說(shuō)明書(shū)(作業(yè)控制語(yǔ)言)作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個(gè)作業(yè)的處理過(guò)程中,計(jì)算機(jī)所做的相對(duì)獨(dú)立的工作。,2. 作業(yè)的組成,作業(yè)說(shuō)明書(shū)包括作業(yè)基本情況、作業(yè)控制、作業(yè)資源要求的描述;它體現(xiàn)用戶(hù)的控制意圖。如:預(yù)計(jì)運(yùn)行時(shí)間、要求的資源情況、執(zhí)行優(yōu)先級(jí)等。作業(yè)基本情況:用戶(hù)名、作業(yè)名、編程語(yǔ)言、最大處理時(shí)間等;作業(yè)控制描述:作業(yè)控制方式、作業(yè)步的操作順序、作業(yè)執(zhí)行出錯(cuò)處理;作業(yè)資源要求描述:處理時(shí)間、優(yōu)先

4、級(jí)、內(nèi)存空間、外設(shè)類(lèi)型和數(shù)量等;,作業(yè)由程序、數(shù)據(jù)和作業(yè)說(shuō)明書(shū)三部分組成。,3. 作業(yè)的處理過(guò)程,作業(yè)提交:作業(yè)的輸入;作業(yè)執(zhí)行:先到"就緒",經(jīng)調(diào)度"運(yùn)行",有I/O請(qǐng)求"等待",I/O完成到"就緒"作業(yè)完成:作業(yè)的輸出;,4. 作業(yè)輸入方式,無(wú)通道處理方式:聯(lián)機(jī)(降低了CPU效率):由主機(jī)直接控制輸入/輸出;I/O與作業(yè)處理不能并行。脫機(jī)(

5、人工干預(yù)):通過(guò)磁帶或磁盤(pán)在外圍處理機(jī)與主機(jī)之間交換作業(yè)(需人工移動(dòng));用于主機(jī)不太快的情況。直接耦合:通過(guò)共享外存在外圍處理機(jī)與主機(jī)之間交換作業(yè);用于高速主機(jī)。有通道處理:輸入/輸出由主機(jī)和通道來(lái)承擔(dān)。假脫機(jī)(spooling, Simultaneously Peripheral Operation On Line):系統(tǒng)把作業(yè)處理的全過(guò)程劃分為相對(duì)獨(dú)立的三個(gè)部分--輸入流、處理流和輸出流。spooling-in/spoolin

6、g-out進(jìn)程:控制輸入/輸出;網(wǎng)絡(luò):在網(wǎng)絡(luò)上一臺(tái)機(jī)器進(jìn)行作業(yè)輸入/輸出,在另一臺(tái)主機(jī)上運(yùn)行;,5. 作業(yè)控制表(JCB, Job Control Block),作業(yè)名估計(jì)執(zhí)行時(shí)間優(yōu)先數(shù)(用于調(diào)度)作業(yè)說(shuō)明書(shū)文件名程序類(lèi)型(需調(diào)用的系統(tǒng)程序)資源要求:(靜態(tài),或中間可以隨作業(yè)步變化--效率不高;動(dòng)態(tài)分配作業(yè)狀態(tài):提交、后備、執(zhí)行、就緒、等待、完成;,在運(yùn)行過(guò)程中,系統(tǒng)對(duì)作業(yè)進(jìn)行管理的必要信息。,2.1.2 作業(yè)調(diào)度,作業(yè)調(diào)

7、度算法的評(píng)價(jià)因素作業(yè)吞吐量:運(yùn)行盡可能多的作業(yè);充分利用資源:CPU忙、I/O設(shè)備忙;對(duì)各作業(yè)公平、合理,使用戶(hù)滿(mǎn)意:執(zhí)行時(shí)間長(zhǎng)短、等待時(shí)間等;,檢查系統(tǒng)是否滿(mǎn)足作業(yè)的資源要求,并一定算法選取作業(yè)。作業(yè)調(diào)度也稱(chēng)為宏觀(guān)調(diào)度。,2. 作業(yè)調(diào)度算法,先來(lái)先服務(wù)(FCFS):按照作業(yè)進(jìn)入系統(tǒng)的先后次序進(jìn)行調(diào)度,先進(jìn)入系統(tǒng)者先調(diào)度;即啟動(dòng)等待時(shí)間最長(zhǎng)的作業(yè)。優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單、公平缺點(diǎn):沒(méi)考慮資源利用率和作業(yè)的特殊性短作業(yè)優(yōu)先(SJF):

8、以要求運(yùn)行時(shí)間長(zhǎng)短進(jìn)行調(diào)度,即啟動(dòng)要求運(yùn)行時(shí)間最短的作業(yè)。優(yōu)點(diǎn):易于實(shí)現(xiàn),強(qiáng)調(diào)了資源的充分利用,保證了系統(tǒng)的最大吞吐量(單位時(shí)間里處理作業(yè)的個(gè)數(shù))。缺點(diǎn):不公平,會(huì)造成長(zhǎng)作業(yè)長(zhǎng)期等待。結(jié)論:假設(shè)系統(tǒng)中所有作業(yè)同時(shí)到達(dá),可以證明采用SJF能得到最短的作業(yè)平均周轉(zhuǎn)時(shí)間。,實(shí)際的算法可能會(huì)是多種算法的綜合。,高響應(yīng)比優(yōu)先(HRF):響應(yīng)比最高的作業(yè)優(yōu)先啟動(dòng)。響應(yīng)比=(等待時(shí)間+估計(jì)運(yùn)行時(shí)間)/ 估計(jì)運(yùn)行時(shí)間該算法是FCFS和SJF的

9、結(jié)合,克服了兩種算法的缺點(diǎn)優(yōu)點(diǎn): 公平,吞吐率大缺點(diǎn): 增加了計(jì)算,增加了開(kāi)銷(xiāo)高優(yōu)先級(jí)優(yōu)先:由用戶(hù)指定作業(yè)優(yōu)先級(jí),優(yōu)先級(jí)高的作業(yè)先啟動(dòng)。資源均衡型調(diào)度:把作業(yè)分類(lèi),作業(yè)調(diào)度從不同類(lèi)型作業(yè)中去調(diào)度作業(yè)根據(jù)作業(yè)對(duì)資源要求分類(lèi):I/O型、CPU型和均衡型,2.1.3 作業(yè)控制語(yǔ)言,1. 命令行2. 環(huán)境變量,脫機(jī)作業(yè)控制:用戶(hù)輸入作業(yè)說(shuō)明書(shū),整個(gè)作業(yè)的運(yùn)行由系統(tǒng)控制。聯(lián)機(jī)作業(yè)控制:通過(guò)人-機(jī)會(huì)話(huà)方式控制作業(yè)運(yùn)行。用戶(hù)登錄(控制臺(tái)

10、登錄或遠(yuǎn)程登錄),由系統(tǒng)自動(dòng)執(zhí)行一些命令腳本后,并進(jìn)入shell(字符或GUI界面),接受用戶(hù)的命令和操作,最后退出系統(tǒng)。,1. 命令行,命令行:一行可有一個(gè)或多個(gè)命令,每次一行,包含一個(gè)或多個(gè)命令。shell給出提示符時(shí)可輸入,以回車(chē)鍵提交。如:“l(fā)s -a -l”列出當(dāng)前目錄文件列表;"gunzip mp1.tar.gz; tar -xvf mp1.tar; \rm -r -f mp1.tar"為解壓縮后再

11、展開(kāi)。命令格式:一個(gè)命令可有命令參數(shù),格式包括選項(xiàng)/開(kāi)關(guān) (option/switch)或參數(shù)(argument)。如UNIX系統(tǒng): cp -r doc /tmp--argv[0], argv[1], ...(含子目錄的文件復(fù)制:/tmp為目標(biāo)地址),命令分類(lèi):內(nèi)部命令和外部命令內(nèi)部命令:直接由shell本身完成,功能簡(jiǎn)單、使用頻繁;如:DOS的copy命令。外部命令:運(yùn)行相應(yīng)的可執(zhí)行文件,在使用時(shí)加載。如:DOS的xcopy命

12、令。命令簡(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)境變量也可以作為shell參數(shù),如命令提示符的式樣,外部命令的查找目錄路徑等。如:PA

13、TH=/bin:/usr/bin:/usr/sbin:.HOME=/home/thisuser環(huán)境變量是傳遞命令參數(shù)的另一種途徑。如:cd $HOME; 環(huán)境變量可按名字訪(fǎng)問(wèn),可以新建、賦值或撤銷(xiāo)。有效范圍:只對(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)

14、--應(yīng)用進(jìn)程地址空間中的特殊變量區(qū)。,2.2 作業(yè)管理舉例,2.2.1 MS DOS的作業(yè)管理2.2.2 UNIX的作業(yè)管理,返回,2.2.1 MS DOS的作業(yè)管理,命令分類(lèi):內(nèi)部命令:如dir, cd, copy外部命令:如format, xcopy命令行選項(xiàng)命令行選項(xiàng)通常是:/option;如:"/?"選項(xiàng)可顯示各命令的命令行選項(xiàng)列表。通配符:由外部命令自己處理。如:xcopy *.c . --ar

15、gv[1]="*.c",2.2.1.1. DOS命令處理程序,command.com(或其他程序如DOS shell):駐留內(nèi)存,在系統(tǒng)運(yùn)行期間不再退出。為了給應(yīng)用程序的執(zhí)行提供更大內(nèi)存空間,又分為常駐部分和暫駐部分(可被應(yīng)用程序覆蓋),輸入輸出重定向和管道(pipe), >>, |, 基于臨時(shí)文件"”為輸出重定向,“>>”為添加輸出重定向。如:“dir > temp.t

16、xt”將把“dir”命令在屏幕上的輸出保存在新文件“temp.txt”中;而"dir >> temp.txt"將屏幕輸出追加在文件"temp.txt"的結(jié)尾。管道"|"是將前一個(gè)命令的屏幕輸出作為后一個(gè)命令的鍵盤(pán)輸入。如:"dir | sort"將把"dir"命令的輸出按行進(jìn)行排序。環(huán)境變量set PATH=c:\to

17、ols;%PATH%--原PATH=c:\dos 則后PATH=c:\tools;c:\dos系統(tǒng)引導(dǎo)時(shí)加載系統(tǒng)引導(dǎo)時(shí)加載:autoexec.bat,2.2.1.2. DOS批處理:由command.com執(zhí)行,循環(huán):循環(huán)執(zhí)行命令。FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]遍歷根在[drive:]path上的目錄樹(shù),在樹(shù)的每個(gè)目

18、錄中執(zhí)行 FOR 語(yǔ)句。如果在 /R 后沒(méi)有指定任何目錄規(guī)范,那么假設(shè)為當(dāng)前目錄。如果 set 僅是一個(gè)句號(hào)(.),那么它 將僅列出目錄樹(shù)。,有簡(jiǎn)單的變量替換,有條件轉(zhuǎn)移和跳轉(zhuǎn)、循環(huán)和注釋語(yǔ)句rem,關(guān)于循環(huán)的實(shí)例,如下面批處理將顯示當(dāng)前目錄及其子目錄所有文件名(含路徑名);for /R %%f in (*.*) do echo %%f如下面批處理將顯示當(dāng)前目錄及其子目錄所有后綴為ppt的文件名(含路徑名);for

19、/R %%f in (*.ppt) do echo %%f可能的顯示結(jié)果: C:\users\xyong\work\2001-02-20 chapter1.ppt C:\users\xyong\work\temp\2001-02-18 chapter1.ppt C:\users\xyong\work\temp\2000-08-09 Linux Lecture\2000-08-15 Linux.ppt,分支,IF [NO

20、T] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [NOT] EXIST filename command NOT 只有在條件為假時(shí),才需運(yùn)行命令。 ERRORLEVEL number 如果最近程序運(yùn)行返回的退出碼等于或大于指定的號(hào)碼時(shí),則設(shè)定條件為真。 command 當(dāng)符合條件時(shí),

21、指定要運(yùn)行的命令。 string1==string2 當(dāng)指定字符串匹配時(shí),設(shè)置條件為真。 EXIST filename 當(dāng)指定文件名存在時(shí),設(shè)置條件為真。如:IF ERRORLEVEL 1 goto okay:okayecho okay,2.2.2 UNIX的作業(yè)管理,2.2.2.1. shell命令處理程序2.2.2.2. shell批處理,2.2.2.1. shell命令處理程序,1. shell

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

23、面作得不如其他幾種 shell。Bourne shell 最大的缺點(diǎn)在于它處理用戶(hù)的輸入方面。在 Bourne shell 里鍵入命令會(huì)很麻煩,尤其當(dāng)你鍵入很多相似的命令時(shí)。C shell(/bin/csh)C shell 由 Bill Joy 所寫(xiě),它更多的考慮了用戶(hù)界面的友好性。它支持象命令補(bǔ)齊(command-line completion)等一些 Bourne shell 所不支持的特性。普遍認(rèn)為C shell 的編程接口

24、做的不如 Bourne shell, 但 C shell 被很多 C 程序員使用因?yàn)?C shell的語(yǔ)法和 C語(yǔ)言的很相似,這也是C shell名稱(chēng)的由來(lái)。,UNIX上有許多種shell,主要功能是相同的,在細(xì)節(jié)上有一些區(qū)別。幾種shell 都有它們的優(yōu)點(diǎn)和缺點(diǎn)。,Korn shell (ksh)Korn shell (ksh) 由 Dave Korn 所寫(xiě)。它集合了C shell 和 Bourne shell 的優(yōu)點(diǎn)并且和 Bo

25、urne 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í)又有很友好的用戶(hù)界面。 bash 有幾種特

26、性使命令的輸入變得更容易。 其他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í)行.profileC Shell執(zhí)行.cshrc和.login兩個(gè)文件K Shell執(zhí)行.profile和$ENV

27、兩個(gè)文件(sh) .profile與(csh) .login對(duì)應(yīng),進(jìn)行注冊(cè)時(shí)的初始化;而在csh在非注冊(cè)啟動(dòng)時(shí)都讀入.cshrc;,3. 基本特征,內(nèi)部命令:如cd, exec――區(qū)分大小寫(xiě),exec的功能是執(zhí)行一個(gè)命令;外部命令:如ls, mkdir命令行選項(xiàng)通常是:-option如:"ls -a -l"中的-a表示列出所有文件,-l表示列出所有信息。通配符:由shell處理后再傳遞給外部命令。如:ca

28、t *.c 則argv[1]="a.c", argv[2]="b.c",而 cat "*.c" 則argv[1]="*.c"(cat的功能是讀入所有文件,并顯示),4. 輸入輸出重定向,""和">>"為標(biāo)準(zhǔn)輸出重定向;"2>"和"2>>"為標(biāo)準(zhǔn)錯(cuò)誤

29、輸出重定向(2表示標(biāo)準(zhǔn)錯(cuò)誤輸出的設(shè)備號(hào),只對(duì)sh有意義);" >&"是標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向;,基于內(nèi)核的緩沖區(qū),行輸入重定向:用定界符間的內(nèi)容作為標(biāo)準(zhǔn)輸入。如:下面命令的標(biāo)準(zhǔn)輸入為郵件內(nèi)容。 mail user2 << WARNING ... WARNING,5. 管道,如:"ls -l | wc -l"可給出文件數(shù)目。如:“cat sample.tex

30、t | grep "High" | wc -l” 這個(gè)管道將把 cat 命令(列出一個(gè)文件的內(nèi)容)的輸出送給grep命令。grep 命令在輸入里查找單詞 High,grep命令的輸出則是所有包含單詞 High的行,這個(gè)輸出又被送給 wc命令。帶 -l選項(xiàng)的 wc命令將統(tǒng)計(jì)輸入里的行數(shù)。,管道可以把一系列命令連接起來(lái)。第一個(gè)命令的輸出會(huì)通過(guò)管道傳給第二個(gè)命令而作為第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸

31、入,以此類(lèi)推。而管道行中最后一個(gè)命令的輸出才會(huì)顯示在屏幕上(如果命令行里使用了輸出重定向的話(huà),將會(huì)放進(jìn)一個(gè)文件里)。通過(guò)管道,可以將多個(gè)簡(jiǎn)單程序組合完成復(fù)雜的功能。,6. 后臺(tái)執(zhí)行,如:"xterm -display 166.111.68.56:0.0 &"為在后臺(tái)啟動(dòng)一個(gè)xterm窗口,并顯示到主機(jī)166.111.68.56上。,后臺(tái)執(zhí)行:cmd &;,7. 環(huán)境變量和內(nèi)部變量,"set&

32、quot;可給出內(nèi)部變量列表,"env"可給出環(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里的局部

33、變量);改環(huán)境變量就會(huì)自動(dòng)改內(nèi)部變量,反之不然。,8. 別名,alias 的格式:alias aliasname=string …. 把 aliasname 直接用來(lái)取代后面的 string ,如有任何跟在后面的 argument 將會(huì)出現(xiàn)的其后。利用該功能,使用者可以將常用卻冗長(zhǎng)的指令以其他的名字存起。如:"alias dir='ls -a -l'"為"ls -a -l"定

34、義了一個(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(修改文件所在的用戶(hù)組)文件權(quán)限和屬主;ca

35、t, more, tail(顯示文件的最后部分)查看文件;test, expr檢測(cè)和數(shù)值計(jì)算;vi全屏幕編輯;,2.2.2.2. 批處理,1. 變量替換2. 條件轉(zhuǎn)移3. 循環(huán)4. 分支5. 函數(shù),稱(chēng)為"腳本" shell script:注釋用 '#',續(xù)行用 " \"解釋執(zhí)行,效率較低;而且要加載外部命令;指定解釋執(zhí)行腳本的程序:#!/bin/sh或 #!/op

36、t/bin/perlperl, Practical Extraction and Report Language是一個(gè)文本文件分析工具。執(zhí)行腳本(sh):cmd([csh]source cmd), exec cmd, cmd(sh < cmd, sh cmd)"source"命令是運(yùn)行tcl腳本;"exec"是用指定命令新建shell,以取代當(dāng)前shell;"sh"

37、命令是運(yùn)行sh腳本。,1. 變量替換,如:下面是一個(gè)變量定義和引用的例子:temp="test message"echo $tempecho AAA${temp}BBBecho CCC"$temp"DDDecho '$temp',變量賦值格式:變量名=值值串中包括空格、制表符或換行符時(shí),值要放在""號(hào)內(nèi);變量引用格式:$變量名如引用前后緊接其它字

38、符,引用方式為:${變量名}或"$變量名"; $variable, 雙引號(hào):“進(jìn)行變量替換”, 單引號(hào):'不作任何替換';,其運(yùn)行結(jié)果為:test messageAAAtest messageBBBCCCtest messageDDD$temp,2. 條件轉(zhuǎn)移,if command; then ... ; else ... ; fi,例:# 調(diào)用test命令,注意:方括號(hào)和判斷條件之間必須

39、有空格 !!# 下面腳本在有參數(shù)時(shí)顯示"Have arguement(s)",無(wú)參數(shù)時(shí)顯示"No arguement";# 其中,"[ "a$1" = "a" ]"用于判斷$1是否為空串;if [ "a$1" = "a" ]; then echo "No argueme

40、nt" else echo "Have arguement(s)" fi,運(yùn)行結(jié)果為:[xyong@well ~/work]./temp.txtNo arguement[xyong@well ~/work]./temp.txt weHave arguement(s),例:# 下面腳本在命令行參數(shù)個(gè)數(shù)不對(duì)(其中,"test $# = 4"測(cè)試命令行參數(shù)個(gè)數(shù)是否為4),提

41、示出錯(cuò)信息;if test $# = 4 ; thenecho $4 $3 $2 $1elseecho $0 usage: arg1 arg2 arg3 arg4fi,運(yùn)行結(jié)果如下:[xyong@well ~/work]$ ./temp.txt./temp.txt usage: arg1 arg2 arg3 arg4[xyong@well ~/work]$ ./temp.txt a b c dd c b a,3.

42、循環(huán),while [ 1 ]; do ... ; done,例:# 下面腳本在文件lockfile可讀時(shí)每暫停5秒重復(fù)測(cè)試一次(其中,"test -r lockfile"判斷文件"lockfile"是否存在);while test -r lockfile; dosleep 5done運(yùn)行結(jié)果為:有文件"lockfile"時(shí),腳本一直不結(jié)束;直到該文件被刪除后,腳本

43、才結(jié)束。,4. 分支,基于模式匹配的多路分支結(jié)構(gòu),它依據(jù)word的不同,執(zhí)行不同的命令序列; case word in pattern1) pat1-list;; pattern2) pat2-list;; esac,例:# 下面腳本依據(jù)命令行參數(shù)的不同,顯示不同內(nèi)容;case $1 in *.c) echo C:"$1" ;; *.a) echo A:"$1" ;;

44、 *.f) echo F:"$1" ;; esac,運(yùn)行結(jié)果如下:[xyong@well ~/work]$ ./temp.txt c.aA:c.a[xyong@well ~/work]$ ./temp.txt c.cC:c.c[xyong@well ~/work]$ ./temp.txt c.fF:c.f,5. 函數(shù),例:#這里$*和$1是new_func的參數(shù),而$0為腳本的參數(shù))new_fu

45、nc () { echo $* echo $1 } new_func $0 arg2運(yùn)行結(jié)果為:[xyong@well ~/work]./temp.txt asb./temp.txt arg2./temp.txt,2.3 系統(tǒng)調(diào)用(SYSTEM CALL),2.3.1 系統(tǒng)調(diào)用及其功能2.3.2 系統(tǒng)調(diào)用的實(shí)現(xiàn)過(guò)程2.3.3 系統(tǒng)調(diào)用舉例2.3.4 系統(tǒng)調(diào)用與普通過(guò)程調(diào)用的相同點(diǎn)和不同點(diǎn),返回,系統(tǒng)調(diào)用是

46、操作系統(tǒng)提供給軟件開(kāi)發(fā)人員的唯一接口,開(kāi)發(fā)人員可利用它使用系統(tǒng)功能。OS核心中都有一組實(shí)現(xiàn)系統(tǒng)功能的過(guò)程(子程序),系統(tǒng)調(diào)用就是對(duì)上述過(guò)程的調(diào)用。,2.3.1 系統(tǒng)調(diào)用及其功能,每個(gè)操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用,包括:外存文件與目錄的讀寫(xiě),各種I/O設(shè)備的使用,在程序中啟動(dòng)另一個(gè)程序,查詢(xún)和統(tǒng)計(jì)系統(tǒng)資源使用情況等等。,1. 系統(tǒng)調(diào)用的功能,1) 設(shè)備管理:設(shè)備的讀寫(xiě)和控制;Ioctl設(shè)備配置Open設(shè)備打開(kāi)Close設(shè)備

47、關(guān)閉Read讀設(shè)備Write寫(xiě)設(shè)備,2) 文件管理:文件讀寫(xiě)和文件控制;Open文件打開(kāi)Close文件關(guān)閉Read讀文件Write寫(xiě)文件seek讀寫(xiě)指針定位Creat文件創(chuàng)建Stat讀文件狀態(tài)Mount安裝文件系統(tǒng)chmod修改文件屬性,3) 進(jìn)程控制:創(chuàng)建、中止、暫停等控制;Fork創(chuàng)建進(jìn)程Exit進(jìn)程自我終止Wait阻塞當(dāng)前進(jìn)程Sleep進(jìn)程睡眠Getpid讀父進(jìn)程標(biāo)識(shí)

48、4) 進(jìn)程通信:消息隊(duì)列、共享存儲(chǔ)區(qū)、socket等通信渠道的建立、使用和刪除;5) 存儲(chǔ)管理:內(nèi)存的申請(qǐng)和釋放;6) 系統(tǒng)管理:設(shè)置和讀取時(shí)間、讀取用戶(hù)和主機(jī)標(biāo)識(shí)等;gtime讀取時(shí)間Stime設(shè)置時(shí)間getuid讀取用戶(hù)標(biāo)識(shí),2. 通過(guò)系統(tǒng)調(diào)用接口使用系統(tǒng)命令,通過(guò)系統(tǒng)調(diào)用接口也可使用系統(tǒng)命令。C語(yǔ)言里的system()函數(shù)可調(diào)用shell來(lái)完成命令如 UNIX系統(tǒng): system("cp -r

49、 doc /tmp"),2.3.2 系統(tǒng)調(diào)用的實(shí)現(xiàn)過(guò)程,實(shí)際上系統(tǒng)調(diào)用語(yǔ)句本身是硬件提供的(機(jī)器指令),但其所調(diào)用的功能是操作系統(tǒng)提供的。每種機(jī)器的機(jī)器指令集中都有一條系統(tǒng)調(diào)用指令。,設(shè)置系統(tǒng)調(diào)用號(hào)和參數(shù)。調(diào)用號(hào)作為指令的一部分(如早期UNIX),或裝入到特定寄存器里(如:DOS int 21h,AH=調(diào)用號(hào)。)參數(shù)裝入到特定寄存器里,或以寄存器指針指向參數(shù)表(內(nèi)存區(qū)域)。執(zhí)行trap(int)指令:入口的一般性處理,查

50、入口跳轉(zhuǎn)表,跳轉(zhuǎn)到相應(yīng)功能的過(guò)程。保護(hù)CPU現(xiàn)場(chǎng)(將PC與PSW入棧),改變CPU執(zhí)行狀態(tài)(處理機(jī)狀態(tài)字PSW切換,地址空間表切換)將參數(shù)取到核心空間執(zhí)行操作系統(tǒng)內(nèi)部代碼;執(zhí)行iret指令:將執(zhí)行結(jié)果裝入適當(dāng)位置(類(lèi)似于參數(shù)帶入),恢復(fù)CPU現(xiàn)場(chǎng)(以棧頂內(nèi)容置PSW和PC)。,2.3.3 系統(tǒng)調(diào)用舉例,凡是與硬件相關(guān)、與應(yīng)用無(wú)關(guān)的工作,都通過(guò)操作系統(tǒng)程序來(lái)完成。,1. 利用系統(tǒng)調(diào)用向打印機(jī)輸出5個(gè)字符,方法1:調(diào)用DOS功能向打

51、印機(jī)輸出 MOVE A,PARA1 MOVE B,PARA2 INT 21H,方法2:用OUT指令直接打印 L1:MOVE A,I IN ADDR1,B OR B,BS JNC L1 OUT ADDR2,A RET,利用系統(tǒng)調(diào)用和out指令完成打印功能的比較,I/O設(shè)

52、備的硬件接口,一般由四種寄存器(地址,數(shù)據(jù),狀態(tài),控制)或其子集組成,任一程序中若要使用I/O設(shè)備來(lái)輸出數(shù)據(jù)或接受輸入,必須通過(guò)對(duì)這四種寄存器讀寫(xiě)的I/O機(jī)器指令進(jìn)行。使用系統(tǒng)調(diào)用的程序段則簡(jiǎn)單許多。程序員不再需要與接口寄存器打交道,只需一個(gè)簡(jiǎn)單的調(diào)用即可。,2. 利用系統(tǒng)調(diào)用實(shí)現(xiàn)硬盤(pán)文件內(nèi)容讀寫(xiě),在應(yīng)用程序中直接利用I/O指令進(jìn)行硬盤(pán)文件內(nèi)容讀寫(xiě)將是十分復(fù)雜和困難的。原因?yàn)椋捍疟P(pán)的控制和狀態(tài)接口寄存器比打印機(jī)的復(fù)雜的多,而且還有地

53、址接口寄存器,涉及像磁道號(hào),磁面號(hào),扇區(qū)號(hào)這樣復(fù)雜的外存物理地址;通常一個(gè)外存存儲(chǔ)介質(zhì)上可以存放多個(gè)文件,隨著文件的建立、刪除和拷貝在不停地變化,每個(gè)文件的長(zhǎng)度隨著其內(nèi)容的變化而不停地變化,安全問(wèn)題;,MOVE DX,OFFSETBUFFMOVE CX,BYTEMOVE BX,HANDLEMOVE AH,3FHINT 21H,2.3.4 系統(tǒng)調(diào)用與普通過(guò)程調(diào)用的相同點(diǎn)和不同點(diǎn),相同點(diǎn)改變指令流程重復(fù)執(zhí)行和公用改變指令流

54、程后需要返回原處不同點(diǎn)系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用;執(zhí)行狀態(tài)不同進(jìn)入方式不同與進(jìn)程調(diào)度的關(guān)系不同:嵌套或遞歸調(diào)用,1. 系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用;,系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,程序中不包含被調(diào)用代碼,好處:(1)用戶(hù)程序長(zhǎng)度縮短(2)當(dāng)OS升級(jí)時(shí),調(diào)用方不必改變系統(tǒng)調(diào)用方式的調(diào)用地址和返回地址都是不固定的,系統(tǒng)調(diào)用指令中不包含調(diào)用地址,只包含功能號(hào),是按功能號(hào)(在可執(zhí)行目標(biāo)程序中)調(diào)

55、用的。在操作系統(tǒng)內(nèi)部,由系統(tǒng)調(diào)用處理程序通過(guò)系統(tǒng)調(diào)用分支表(OS的一個(gè)數(shù)據(jù)結(jié)構(gòu))將功能號(hào)轉(zhuǎn)換為相應(yīng)的指令地址。系統(tǒng)調(diào)用返回指令中不包括返回地址,通過(guò)棧保存和彈出返回地址。系統(tǒng)調(diào)用返回地址不固定,因?yàn)橛脩?hù)程序在不同的地方調(diào)用OS。CALL調(diào)用方式是靜態(tài)調(diào)用,被調(diào)用代碼與調(diào)用代碼在同一程序之內(nèi)。CALL調(diào)用方式,其調(diào)用地址是固定的,包含在調(diào)用語(yǔ)句中;返回地址是不固定的(同一子程序可能被不同處多次調(diào)用),在程序執(zhí)行過(guò)程中通過(guò)棧的實(shí)現(xiàn)來(lái)保存

56、和彈出返回地址。,2. 執(zhí)行狀態(tài)不同,狀態(tài)切換:系統(tǒng)調(diào)用、中斷、異常trap陷入特權(quán)指令(訪(fǎng)問(wèn)關(guān)鍵寄存器、停機(jī)指令)和I/O敏感指令(中斷屏蔽、端口讀寫(xiě)),調(diào)用和返回經(jīng)歷了不同的系統(tǒng)狀態(tài)。通常核心和應(yīng)用程序的代碼分別運(yùn)行在CPU的不同的狀態(tài)下(系統(tǒng)態(tài)/核心態(tài)/管態(tài)和用戶(hù)態(tài)/目態(tài)),所用地址空間也不同――核心的代碼可以直接訪(fǎng)問(wèn)應(yīng)用進(jìn)程的地址空間,反之不然。,3. 進(jìn)入方式不同,CALL指令的內(nèi)部實(shí)現(xiàn)過(guò)程:返回地址壓棧(即該CALL指

57、令所在的地址);將該CALL指令中所含的地址(即被調(diào)用代碼所在地址)送入PCRET指令的內(nèi)部實(shí)現(xiàn)過(guò)程:從棧頂彈出返回地址送入程序計(jì)數(shù)器PC,利用int或trap指令進(jìn)行系統(tǒng)調(diào)用;利用call或jmp指令進(jìn)入普通的過(guò)程調(diào)用;,4. 與進(jìn)程調(diào)度的關(guān)系不同,采用搶先式調(diào)度的系統(tǒng),在系統(tǒng)調(diào)用返回時(shí),要進(jìn)行重新調(diào)度的檢查――是否有更高優(yōu)先級(jí)的任務(wù)就緒(創(chuàng)建或喚醒)。,5. 嵌套或遞歸調(diào)用,對(duì)系統(tǒng)調(diào)用,一般不允許在同一個(gè)進(jìn)程中發(fā)生嵌套或遞歸(

58、不同進(jìn)程可以重入同一個(gè)系統(tǒng)調(diào)用)。,2.4 圖形用戶(hù)接口(GUI, GRAPHIC USER INTERFACE),2.4.1 概述2.4.2 MS Windows2.4.3 X Window2.4.4 事件驅(qū)動(dòng)模式(event-driven),返回,在命令行方式下,用戶(hù)與操作系統(tǒng)的交互要求用戶(hù)記憶命令格式。在圖形用戶(hù)接口方式下,用戶(hù)可利用鼠標(biāo)對(duì)屏幕上的圖標(biāo)進(jìn)行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶(hù)使用。它的技術(shù)

59、基礎(chǔ)是高分辯顯示器和鼠標(biāo)。,2.4.1 概述,1. 窗口系統(tǒng)(window system)的特點(diǎn)2. 窗口系統(tǒng)的圖形元素及其狀態(tài)3. 窗口管理器(window manager),1. 窗口系統(tǒng)(window system)的特點(diǎn),利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶(hù)可以通過(guò)操縱圖形元素(如菜單、圖標(biāo))來(lái)執(zhí)行相應(yīng)的功能同屏多窗口與并發(fā)進(jìn)程相對(duì)應(yīng):屏幕上同時(shí)顯示多個(gè)窗口;一個(gè)進(jìn)程可以對(duì)應(yīng)一個(gè)或多個(gè)窗口;窗口動(dòng)態(tài)創(chuàng)建、

60、改變、撤銷(xiāo)輸入方式:鼠標(biāo)指針點(diǎn)擊(或其他定位設(shè)備)和鍵盤(pán)輸入;通常是即時(shí)交互一致的圖形元素風(fēng)格可方便用戶(hù)學(xué)習(xí)和使用:如按鈕、滾動(dòng)條優(yōu)點(diǎn):操作直觀(guān)(不必記命令行參數(shù)),可與多個(gè)進(jìn)程交互,便于進(jìn)行多媒體處理--簡(jiǎn)而言之:交互的并發(fā)性好、傳遞信息量大,2. 窗口系統(tǒng)的圖形元素及其狀態(tài),窗口(window):屏幕上的矩形區(qū)域(可以通過(guò)掩模mask來(lái)顯示任意形狀)包括:標(biāo)題條(title bar)、邊框(border)、窗口角(corne

61、r)、系統(tǒng)菜單框(system menu box)、最大化/最小化按鈕(maximize/minimize)、滾動(dòng)條(scroll bar)等狀態(tài):當(dāng)前/非當(dāng)前窗口(active/inactive) --接受輸入,最大化/最小化/恢復(fù)原大小(restore),窗口的前后遮蓋--Z軸,焦點(diǎn)(focus)--接受鍵盤(pán)輸入(而非鼠標(biāo))桌面(desktop)和墻紙(wallpaper)圖標(biāo)(icon):一個(gè)小圖象(如32x32或64x64

62、 pixel),通常供鼠標(biāo)指針點(diǎn)擊。通過(guò)不同的圖標(biāo)可以標(biāo)識(shí)不同的對(duì)象。如:可執(zhí)行程序、最小化的窗口、文件--動(dòng)畫(huà)圖標(biāo),鼠標(biāo)指針(mouse pointer):鼠標(biāo)指針通常對(duì)應(yīng)屏幕上的光標(biāo)(cursor)。光標(biāo)在屏幕上只有一個(gè),在不同屏幕位置(上下文)可以呈現(xiàn)不同形狀,可以獨(dú)立于鼠標(biāo)來(lái)直接操縱光標(biāo)。鼠標(biāo)點(diǎn)擊:左鍵/右鍵/中鍵(left/right/middle button),單擊(click)/雙擊(double-click),拖曳

63、(drag)/拖放(drag-and-drop);按鈕(button):鼠標(biāo)點(diǎn)擊或按回車(chē)鍵/空格鍵時(shí)執(zhí)行相應(yīng)功能,如 menu button;提供單項(xiàng)或多項(xiàng)選擇,如radiobutton和checkbutton;當(dāng)前按鈕及其切換。菜單(menu):臨時(shí)窗口,菜單條(menu bar)、彈出式菜單、下拉式菜單(上下文相關(guān)菜單)對(duì)話(huà)框(dialog box):臨時(shí)窗口,顯示提示信息(message)或填寫(xiě)用戶(hù)設(shè)置。,3. 窗口管理器(

64、window manager):形成統(tǒng)一的使用風(fēng)格,處理窗口的普遍特性,如:窗口的大小、位置(窗口的標(biāo)題條、邊框、控制菜單框)--窗口中由應(yīng)用程序管理的部分稱(chēng)為"客戶(hù)區(qū)(client area)"協(xié)調(diào)各窗口間的相互關(guān)系,如:窗口之間的前后遮蓋關(guān)系,桌面,2.4.2 MS Windows,1. 特點(diǎn)2. MS Windows結(jié)構(gòu)3. 基本概念4. 消息處理:兩種方法,1. 特點(diǎn),是OS 的一部分,提供默認(rèn)的窗口

65、風(fēng)格(如菜單、對(duì)話(huà)框)除Windows2000外,窗口應(yīng)用程序只能在控制臺(tái)(本地)執(zhí)行。,2. MS Windows結(jié)構(gòu),OS系統(tǒng)服務(wù)(KERNEL):內(nèi)存管理、程序加載(包括DLL)、任務(wù)調(diào)度、文件管理用戶(hù)接口(USER):窗口和消息管理,以及菜單、控制、對(duì)話(huà)框、定時(shí)器等圖形設(shè)備接口(GDI, Graphic Device Interface):管理顯示器,為USER與應(yīng)用程序提供與硬件設(shè)備獨(dú)立的接口,可分成三個(gè)部分。,3. 基

66、本概念,消息(message):消息作為窗口的輸入,如用戶(hù)操作、其他窗口或系統(tǒng)發(fā)出的請(qǐng)求或通知。窗口過(guò)程(window procedure):消息由各窗口自己的窗口過(guò)程來(lái)作處理。窗口過(guò)程的調(diào)用參數(shù):接收窗口句柄(可以在多個(gè)窗口共用一個(gè)窗口過(guò)程時(shí)加以區(qū)分)、消息ID(消息的類(lèi)型)、消息參數(shù)(16+32位或32+32位值,整數(shù)或指針)還可以取得消息的發(fā)生時(shí)間和屏幕坐標(biāo),4. 消息處理:兩種方法,排隊(duì)消息:放到進(jìn)程(線(xiàn)程)的FIFO消息

67、隊(duì)列里。如應(yīng)用程序發(fā)送的消息,系統(tǒng)的鼠標(biāo)、鍵盤(pán)、定時(shí)器、窗口繪制和退出等。排隊(duì)消息所用的API:發(fā)送消息到消息隊(duì)列PostMessage;從消息隊(duì)列讀取消息GetMessage, PeekMessage;分發(fā)一個(gè)消息到相應(yīng)窗口DispatchMessage;非排隊(duì)消息:直接發(fā)送到指定窗口的窗口過(guò)程。非排隊(duì)消息所用的API:SendMessage,直到接收方窗口過(guò)程處理完才返回接收方正處于GetMessage,而接受并處理Se

68、ndMessage送來(lái)的消息之后,仍處于GetMessage。為防止死鎖,一般要:if (InSendMessage()) ReplyMessage(TRUE);,消息循環(huán):不斷移出消息,并加以處理。用戶(hù)不作處理的消息,應(yīng)傳給默認(rèn)窗口過(guò)程加以處理:DefWindowProc()WM_PAINT消息:通知窗口客戶(hù)區(qū)中的某部分(region)已被改變,應(yīng)用程序應(yīng)該對(duì)其重新繪制。總是被排在線(xiàn)程消息隊(duì)列的最后,并且多個(gè)WM_PAINT消息中的

69、region會(huì)自動(dòng)被合并為一個(gè)。,2.4.3 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è)備具有訪(fǎng)問(wèn)權(quán)一個(gè)client也可以連接不同計(jì)算機(jī)上的多個(gè)server顯示設(shè)

70、備獨(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)

71、,X Window的結(jié)構(gòu),各client、窗口管理器和X server可以在一臺(tái)或多臺(tái)計(jì)算機(jī)上用戶(hù)對(duì)server所控制設(shè)備的操作都使server發(fā)送事件(event),如:鼠標(biāo)移動(dòng)、點(diǎn)擊,鍵盤(pán)輸入;事件是一個(gè)數(shù)據(jù)塊,內(nèi)容包括:事件類(lèi)型、相關(guān)的窗口等client對(duì)來(lái)自server的事件進(jìn)行處理,然后向server發(fā)送請(qǐng)求(request),如:窗口操作、顯示圖形或正文X protocol使用的傳送信道:異步字節(jié)流。server不斷

72、發(fā)送事件而由client中的先進(jìn)先出FIFO隊(duì)列加以緩沖,client不斷發(fā)送請(qǐng)求而由server中的FIFO隊(duì)列加以緩沖。,X Window的隊(duì)列,3. 基本概念,屏幕(screen)和顯示器(display):屏幕指顯示設(shè)備硬件,而顯示器指X server(及其控制的鍵盤(pán)、鼠標(biāo)和屏幕)。X允許一個(gè)顯示器控制多個(gè)屏幕(即顯示設(shè)備硬件)。資源(resource):是X window使用的窗口、位圖(bitmap)、字體(font)、調(diào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論