教學(xué)課件:《計(jì)算機(jī)操作系統(tǒng)原理》(第2版)王萬森_第1頁
教學(xué)課件:《計(jì)算機(jī)操作系統(tǒng)原理》(第2版)王萬森_第2頁
教學(xué)課件:《計(jì)算機(jī)操作系統(tǒng)原理》(第2版)王萬森_第3頁
教學(xué)課件:《計(jì)算機(jī)操作系統(tǒng)原理》(第2版)王萬森_第4頁
教學(xué)課件:《計(jì)算機(jī)操作系統(tǒng)原理》(第2版)王萬森_第5頁
已閱讀5頁,還剩420頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章操作系統(tǒng)概述1.1操作系統(tǒng)的定義1.2操作系統(tǒng)的形成過程1.3操作系統(tǒng)的基本類型1.4操作系統(tǒng)的特征1.5操作系統(tǒng)的服務(wù)1.6操作系統(tǒng)的功能1.7操作系統(tǒng)的結(jié)構(gòu)1.1操作系統(tǒng)的定義1.1.1操作系統(tǒng)的虛擬機(jī)觀點(diǎn)用戶1用戶2用戶3用戶4…應(yīng)用程序命令解釋程序、編譯程序、編輯程序等操作系統(tǒng)計(jì)算機(jī)硬件(裸機(jī))1.1.2操作系統(tǒng)的資源管理觀點(diǎn)

在一個(gè)計(jì)算機(jī)系統(tǒng)中,通常都含有各種各樣的硬件和軟件資源。歸納起來可將資源分為四類:處理器、存儲(chǔ)器、I/O設(shè)備以及信息(數(shù)據(jù)和程序)。相應(yīng)地,OS的主要功能也正是針對(duì)這四類資源進(jìn)行有效的管理,即:處理機(jī)管理,用于分配和控制處理機(jī);存儲(chǔ)器管理,主要負(fù)責(zé)內(nèi)存的分配與回收;I/O設(shè)備管理,負(fù)責(zé)I/O設(shè)備的分配與操縱;文件管理,負(fù)責(zé)文件的存取、共享和保護(hù)。可見,OS確是計(jì)算機(jī)系統(tǒng)資源的管理者。這是從管理者的角度來看。OS處于用戶與計(jì)算機(jī)硬件系統(tǒng)之間,用戶通過OS來使用計(jì)算機(jī)系統(tǒng)。或者說,用戶在OS幫助下,能夠方便、快捷、安全、可靠地操縱計(jì)算機(jī)硬件和運(yùn)行自己的程序。應(yīng)注意,OS是一個(gè)系統(tǒng)軟件,因而這種接口是軟件接口。

從用戶角度來看。1.1.3操作系統(tǒng)的用戶服務(wù)觀點(diǎn)(1)命令輸入。形式又分為以下幾種:命令行(CommandLineInput):由OS提供的一組聯(lián)機(jī)命令(語言),用戶可通過鍵盤輸入有關(guān)命令,來直接操縱計(jì)算機(jī)系統(tǒng)。圖形用戶界面(GUI):用戶通過顯示設(shè)備上的窗口和圖標(biāo)來操縱計(jì)算機(jī)系統(tǒng)和運(yùn)行自己的程序。自然輸入方式(NUI):用戶通過語音識(shí)別輸入來操縱計(jì)算機(jī)系統(tǒng)和運(yùn)行自己的程序。

(2)系統(tǒng)調(diào)用方式(SystemCall)。OS提供了一組系統(tǒng)調(diào)用,用戶可在自己的應(yīng)用程序中通過相應(yīng)的使用編程調(diào)用(API),來操縱計(jì)算機(jī)。

在一個(gè)計(jì)算機(jī)系統(tǒng)中,進(jìn)程是一個(gè)動(dòng)態(tài)的概念,并具有并發(fā)性。并發(fā)會(huì)引起資源的競爭、共享等制約和配合等問題。從并發(fā)過程的執(zhí)行來討論操作系統(tǒng)就是從進(jìn)程角度的觀點(diǎn)來觀察操作系統(tǒng)。

1.1.4操作系統(tǒng)的進(jìn)程管理觀點(diǎn)1.2操作系統(tǒng)的形成過程1.2.1人工操作階段

從第一臺(tái)計(jì)算機(jī)ENIAC誕生(1945年2月)到50年代中期的計(jì)算機(jī),屬于第一代。這種人工操作方式有以下兩方面的缺點(diǎn):

(1)用戶獨(dú)占全機(jī)

(2)串行工作

(3)CPU等待人工干預(yù)1.2.2單道批處理階段1.早期批處理2.脫機(jī)批處理這種脫機(jī)I/O方式的主要優(yōu)點(diǎn)如下:減少了CPU的空閑時(shí)間。(2)提高I/O速度。

當(dāng)引入中斷和通道技術(shù)后,計(jì)算機(jī)具備了處理機(jī)和外部設(shè)備并行操作的能力。執(zhí)行系統(tǒng)包含:

(1)IO控制程序

(2)中斷處理程序

(3)管理程序3.執(zhí)行系統(tǒng)階段1.2.3多道程序系統(tǒng)階段

1.多道程序設(shè)計(jì)的基本概念多道程序技術(shù)的主要思想是在內(nèi)存中同時(shí)放入若干道用戶作業(yè)或者說若干道用戶程序,并允許它們交替執(zhí)行,共享系統(tǒng)中的各種硬件與軟件資源。多道程序系統(tǒng)不僅使CPU得到了充分利用,還改善了I/O設(shè)備和內(nèi)存的利用率。2.多道程序設(shè)計(jì)需要妥善解決的問題

內(nèi)存的分配和保護(hù)處理機(jī)的管理和分配I/O設(shè)備的管理和分配文件存儲(chǔ)空間的組織與管理1.2.4進(jìn)一步發(fā)展階段

微型計(jì)算機(jī)操作系統(tǒng)指配置在微型計(jì)算機(jī)上的操作系統(tǒng)。目前比較流行的微型計(jì)算機(jī)操作系統(tǒng)有單用戶多任務(wù)(如Microsoft的Windows系列個(gè)人用戶版操作系統(tǒng))和多用戶多任務(wù)(如SUN公司的Solaris系列操作系統(tǒng)和Linux操作系統(tǒng)等)兩種類型。1.微型計(jì)算機(jī)操作系統(tǒng)

網(wǎng)絡(luò)操作系統(tǒng)是配置在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)上操作系統(tǒng)。網(wǎng)絡(luò)操作系統(tǒng)是使網(wǎng)絡(luò)上各計(jì)算機(jī)能方便而有效地共享網(wǎng)絡(luò)資源,并為網(wǎng)絡(luò)用戶提供所需的各種服務(wù)的軟件和有關(guān)規(guī)程的集合。網(wǎng)絡(luò)操作系統(tǒng)應(yīng)具有通用操作系統(tǒng)所具有的處理及管理、存儲(chǔ)管理、設(shè)備管理和文件管理外,還應(yīng)具有高效可靠的網(wǎng)絡(luò)通信能力和各種有效的網(wǎng)絡(luò)服務(wù)。2.網(wǎng)絡(luò)操作系統(tǒng)

分布式操作系統(tǒng)是配置在分布式計(jì)算機(jī)上的一種操作系統(tǒng)。分布式操作系統(tǒng)與網(wǎng)絡(luò)操作系統(tǒng)的最主要區(qū)別是系統(tǒng)對(duì)用戶的透明性。在網(wǎng)絡(luò)操作系統(tǒng)中,用戶通過網(wǎng)絡(luò)服務(wù)器的名稱來獲得資源,系統(tǒng)結(jié)構(gòu)對(duì)用戶是不透明的;在分布式操作系統(tǒng)中,用戶只需通過服務(wù)的名稱即可獲得資源,系統(tǒng)結(jié)構(gòu)對(duì)用戶是透明的。3.分布式操作系統(tǒng)

嵌入式操作系統(tǒng)是一種支持嵌入式應(yīng)用的操作系統(tǒng),是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)大多用于機(jī)電設(shè)備、儀器等專用控制方面,并具有十分廣泛的應(yīng)用和發(fā)展前景。4.嵌入式操作系統(tǒng)1.3操作系統(tǒng)的基本類型1.3.1多道批處理系統(tǒng)

多道批處理系統(tǒng)實(shí)際上是批處理技術(shù)和多道程序技術(shù)相結(jié)合的產(chǎn)物,出現(xiàn)于20世紀(jì)60年代初期。

1.運(yùn)行方式:2.多道批處理系統(tǒng)的特征多道性。(2)無序性。(3)調(diào)度性。3.多道批處理系統(tǒng)的優(yōu)缺點(diǎn)資源利用率高。(2)系統(tǒng)吞吐量大。(3)平均周轉(zhuǎn)時(shí)間長。(4)無交互能力。1.3.2分時(shí)系統(tǒng)1.分時(shí)系統(tǒng)(Time-SharingSystem)的產(chǎn)生如果說,推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的主要?jiǎng)恿?,是提高資源利用率和系統(tǒng)吞吐量,那么,推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿?,則是用戶的需求。或者說,分時(shí)系統(tǒng)是為了滿足用戶需求所形成的一種新型OS。它與多道批處理系統(tǒng)之間,有著截然不同的性能差別。用戶的需求具體表現(xiàn)在以下幾個(gè)方面:

(1)人—機(jī)交互。

(2)共享主機(jī)。

(3)便于用戶上機(jī)。2.分時(shí)系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵問題

為實(shí)現(xiàn)分時(shí)系統(tǒng),其中,最關(guān)鍵的問題是如何使用戶能與自己的作業(yè)進(jìn)行交互,即當(dāng)用戶在自己的終端上鍵入命令時(shí),系統(tǒng)應(yīng)能及時(shí)接收并及時(shí)處理該命令,再將結(jié)果返回給用戶。此后,用戶可繼續(xù)鍵入下一條命令,此即人—機(jī)交互。應(yīng)強(qiáng)調(diào)指出,即使有多個(gè)用戶同時(shí)通過自己的鍵盤鍵入命令,系統(tǒng)也應(yīng)能全部地及時(shí)接收并處理,評(píng)價(jià)其性能好壞的主要指標(biāo)是響應(yīng)時(shí)間。(1)及時(shí)接收。(2)及時(shí)處理。3.分時(shí)系統(tǒng)的特征多路性。(2)獨(dú)立性。(3)及時(shí)性。(4)交互性。1.3.3實(shí)時(shí)系統(tǒng)

所謂“實(shí)時(shí)”,是表示“及時(shí)”,而實(shí)時(shí)系統(tǒng)(Real-TimeSystem)是指系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。1.實(shí)時(shí)系統(tǒng)的類型實(shí)時(shí)控制系統(tǒng)。

(2)實(shí)時(shí)信息處理系統(tǒng)。2.實(shí)時(shí)系統(tǒng)的特征

多路性。(2)獨(dú)立性。(3)及時(shí)性。(4)交互性。(5)可靠性。1.3.4通用操作系統(tǒng)

批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)只是3種基本的操作系統(tǒng)類型,一個(gè)實(shí)際的操作系統(tǒng)則可能同時(shí)兼有其中三者或兩者的功能,如果一個(gè)操作系統(tǒng)同時(shí)具有其中兩者或兩者以上的功能,則稱為通用操作系統(tǒng)1.4操作系統(tǒng)的基本特性1并發(fā)(Concurrence)

并行性和并發(fā)性是既相似又有區(qū)別的兩個(gè)概念,并行性是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生;而并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。在多道程序環(huán)境下,并發(fā)性是指在一段時(shí)間內(nèi),宏觀上有多個(gè)程序在同時(shí)運(yùn)行,但在單處理機(jī)系統(tǒng)中,每一時(shí)刻卻僅能有一道程序執(zhí)行,故微觀上這些程序只能是分時(shí)地交替執(zhí)行。倘若在計(jì)算機(jī)系統(tǒng)中有多個(gè)處理機(jī),則這些可以并發(fā)執(zhí)行的程序便可被分配到多個(gè)處理機(jī)上,實(shí)現(xiàn)并行執(zhí)行,即利用每個(gè)處理機(jī)來處理一個(gè)可并發(fā)執(zhí)行的程序,這樣,多個(gè)程序便可同時(shí)執(zhí)行。2共享(Sharing)

在操作系統(tǒng)環(huán)境下,所謂共享是指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程(線程)共同使用。由于資源屬性的不同,進(jìn)程對(duì)資源共享的方式也不同,目前主要有以下兩種資源共享方式。(1).互斥共享方式

系統(tǒng)中的某些資源,如打印機(jī)、磁帶機(jī),雖然它們可以提供給多個(gè)進(jìn)程(線程)使用,但為使所打印或記錄的結(jié)果不致造成混淆,應(yīng)規(guī)定在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程(線程)訪問該資源。為此,當(dāng)一個(gè)進(jìn)程A要訪問某資源時(shí),必須先提出請(qǐng)求,如果此時(shí)該資源空閑,系統(tǒng)便可將之分配給請(qǐng)求進(jìn)程A使用,此后若再有其它進(jìn)程也要訪問該資源時(shí)(只要A未用完)則必須等待。僅當(dāng)A進(jìn)程訪問完并釋放該資源后,才允許另一進(jìn)程對(duì)該資源進(jìn)行訪問。我們把這種資源共享方式稱為互斥式共享,而把在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問的資源稱為臨界資源或獨(dú)占資源。計(jì)算機(jī)系統(tǒng)中的大多數(shù)物理設(shè)備,以及某些軟件中所用的棧、變量和表格,都屬于臨界資源,它們要求被互斥地共享。

(2).同時(shí)訪問方式

系統(tǒng)中還有另一類資源,允許在一段時(shí)間內(nèi)由多個(gè)進(jìn)程“同時(shí)”對(duì)它們進(jìn)行訪問。這里所謂的“同時(shí)”往往是宏觀上的,而在微觀上,這些進(jìn)程可能是交替地對(duì)該資源進(jìn)行訪問。典型的可供多個(gè)進(jìn)程“同時(shí)”訪問的資源是磁盤設(shè)備,一些用重入碼編寫的文件,也可以被“同時(shí)”共享,即若干個(gè)用戶同時(shí)訪問該文件。并發(fā)和共享是操作系統(tǒng)的兩個(gè)最基本的特征,它們又是互為存在的條件。一方面,資源共享是以程序(進(jìn)程)的并發(fā)執(zhí)行為條件的,若系統(tǒng)不允許程序并發(fā)執(zhí)行,自然不存在資源共享問題;另一方面,若系統(tǒng)不能對(duì)資源共享實(shí)施有效管理,協(xié)調(diào)好諸進(jìn)程對(duì)共享資源的訪問,也必然影響到程序并發(fā)執(zhí)行的程度,甚至根本無法并發(fā)執(zhí)行。

3虛擬(Virtual)

操作系統(tǒng)中的所謂“虛擬”,是指通過某種技術(shù)把一個(gè)物理實(shí)體變?yōu)槿舾蓚€(gè)邏輯上的對(duì)應(yīng)物。物理實(shí)體(前者)是實(shí)的,即實(shí)際存在的;而后者是虛的,是用戶感覺上的東西。相應(yīng)地,用于實(shí)現(xiàn)虛擬的技術(shù),稱為虛擬技術(shù)。在OS中利用了多種虛擬技術(shù),分別用來實(shí)現(xiàn)虛擬處理機(jī)、虛擬內(nèi)存、虛擬外部設(shè)備和虛擬信道等。

在虛擬處理機(jī)技術(shù)中,是通過多道程序設(shè)計(jì)技術(shù),讓多道程序并發(fā)執(zhí)行的方法,來分時(shí)使用一臺(tái)處理機(jī)的。此時(shí),雖然只有一臺(tái)處理機(jī),但它能同時(shí)為多個(gè)用戶服務(wù),使每個(gè)終端用戶都認(rèn)為是有一個(gè)CPU在專門為他服務(wù)。亦即,利用多道程序設(shè)計(jì)技術(shù),把一臺(tái)物理上的CPU虛擬為多臺(tái)邏輯上的CPU,也稱為虛擬處理機(jī),我們把用戶所感覺到的CPU稱為虛擬處理器。

類似地,可以通過虛擬存儲(chǔ)器技術(shù),將一臺(tái)機(jī)器的物理存儲(chǔ)器變?yōu)樘摂M存儲(chǔ)器,以便從邏輯上來擴(kuò)充存儲(chǔ)器的容量。此時(shí),雖然物理內(nèi)存的容量可能不大(如32MB),但它可以運(yùn)行比它大得多的用戶程序(如128MB)。這使用戶所感覺到的內(nèi)存容量比實(shí)際內(nèi)存容量大得多,認(rèn)為該機(jī)器的內(nèi)存至少也有128MB。當(dāng)然這時(shí)用戶所感覺到的內(nèi)存容量是虛的。我們把用戶所感覺到的存儲(chǔ)器稱為虛擬存儲(chǔ)器。

我們還可以通過虛擬設(shè)備技術(shù),將一臺(tái)物理I/O設(shè)備虛擬為多臺(tái)邏輯上的I/O設(shè)備,并允許每個(gè)用戶占用一臺(tái)邏輯上的I/O設(shè)備,這樣便可使原來僅允許在一段時(shí)間內(nèi)由一個(gè)用戶訪問的設(shè)備(即臨界資源),變?yōu)樵谝欢螘r(shí)間內(nèi)允許多個(gè)用戶同時(shí)訪問的共享設(shè)備。例如,原來的打印機(jī)屬于臨界資源,而通過虛擬設(shè)備技術(shù),可以把它變?yōu)槎嗯_(tái)邏輯上的打印機(jī),供多個(gè)用戶“同時(shí)”打印。此外,也可以把一條物理信道虛擬為多條邏輯信道(虛信道)。在操作系統(tǒng)中,虛擬的實(shí)現(xiàn)主要是通過分時(shí)使用的方法。顯然,如果n是某物理設(shè)備所對(duì)應(yīng)的虛擬的邏輯設(shè)備數(shù),則虛擬設(shè)備的平均速度必然是物理設(shè)備速度的1/n。

4異步性(Asynchronism)

在多道程序環(huán)境下,允許多個(gè)進(jìn)程并發(fā)執(zhí)行,但只有進(jìn)程在獲得所需的資源后方能執(zhí)行。在單處理機(jī)環(huán)境下,由于系統(tǒng)中只有一個(gè)處理機(jī),因而每次只允許一個(gè)進(jìn)程執(zhí)行,其余進(jìn)程只能等待。當(dāng)正在執(zhí)行的進(jìn)程提出某種資源要求時(shí),如打印請(qǐng)求,而此時(shí)打印機(jī)正在為其它某進(jìn)程打印,由于打印機(jī)屬于臨界資源,因此正在執(zhí)行的進(jìn)程必須等待,且放棄處理機(jī),直到打印機(jī)空閑,并再次把處理機(jī)分配給該進(jìn)程時(shí),該進(jìn)程方能繼續(xù)執(zhí)行??梢?,由于資源等因素的限制,使進(jìn)程的執(zhí)行通常都不是“一氣呵成”,而是以“停停走走”的方式運(yùn)行。

內(nèi)存中的每個(gè)進(jìn)程在何時(shí)能獲得處理機(jī)運(yùn)行,何時(shí)又因提出某種資源請(qǐng)求而暫停,以及進(jìn)程以怎樣的速度向前推進(jìn),每道程序總共需多少時(shí)間才能完成,等等,都是不可預(yù)知的。由于各用戶程序性能的不同,比如,有的側(cè)重于計(jì)算而較少需要I/O;而又有的程序其計(jì)算少而I/O多,這樣,很可能是先進(jìn)入內(nèi)存的作業(yè)后完成;而后進(jìn)入內(nèi)存的作業(yè)先完成。或者說,進(jìn)程是以人們不可預(yù)知的速度向前推進(jìn),此即進(jìn)程的異步性。盡管如此,但只要運(yùn)行環(huán)境相同,作業(yè)經(jīng)多次運(yùn)行,都會(huì)獲得完全相同的結(jié)果。因此,異步運(yùn)行方式是允許的,是操作系統(tǒng)的一個(gè)重要特征。1.5操作系統(tǒng)的服務(wù)1.5.1操作系統(tǒng)的公共服務(wù)程序執(zhí)行I/O操作文件系統(tǒng)管理通信資源分配差錯(cuò)處理1.5.2操作系統(tǒng)的服務(wù)方式系統(tǒng)調(diào)用系統(tǒng)程序1.6操作系統(tǒng)的功能1.6.1用戶接口1.命令接口(1)聯(lián)機(jī)用戶接口。這是為聯(lián)機(jī)用戶提供的,它由一組鍵盤操作命令及命令解釋程序所組成。當(dāng)用戶在終端或控制臺(tái)上每鍵入一條命令后,系統(tǒng)便立即轉(zhuǎn)入命令解釋程序,對(duì)該命令加以解釋并執(zhí)行該命令。在完成指定功能后,控制又返回到終端或控制臺(tái)上,等待用戶鍵入下一條命令。這樣,用戶可通過先后鍵入不同命令的方式,來實(shí)現(xiàn)對(duì)作業(yè)的控制,直至作業(yè)完成。(2)脫機(jī)用戶接口。該接口是為批處理作業(yè)的用戶提供的,故也稱為批處理用戶接口。該接口由一組作業(yè)控制語言JCL組成。批處理作業(yè)的用戶不能直接與自己的作業(yè)交互作用,只能委托系統(tǒng)代替用戶對(duì)作業(yè)進(jìn)行控制和干預(yù)。這里的作業(yè)控制語言JCL便是提供給批處理作業(yè)用戶的、為實(shí)現(xiàn)所需功能而委托系統(tǒng)代為控制的一種語言。用戶用JCL把需要對(duì)作業(yè)進(jìn)行的控制和干預(yù),事先寫在作業(yè)說明書上,然后將作業(yè)連同作業(yè)說明書一起提供給系統(tǒng)。當(dāng)系統(tǒng)調(diào)度到該作業(yè)運(yùn)行時(shí),又調(diào)用命令解釋程序,對(duì)作業(yè)說明書上的命令,逐條地解釋執(zhí)行。如果作業(yè)在執(zhí)行過程中出現(xiàn)異?,F(xiàn)象,系統(tǒng)也將根據(jù)作業(yè)說明書上的指示進(jìn)行干預(yù)。這樣,作業(yè)一直在作業(yè)說明書的控制下運(yùn)行,直至遇到作業(yè)結(jié)束語句時(shí),系統(tǒng)才停止該作業(yè)的運(yùn)行。2.程序接口該接口是為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置的,是用戶程序取得操作系統(tǒng)服務(wù)的惟一途徑。它是由一組系統(tǒng)調(diào)用組成,每一個(gè)系統(tǒng)調(diào)用都是一個(gè)能完成特定功能的子程序,每當(dāng)應(yīng)用程序要求OS提供某種服務(wù)(功能)時(shí),便調(diào)用具有相應(yīng)功能的系統(tǒng)調(diào)用。早期的系統(tǒng)調(diào)用都是用匯編語言提供的,只有在用匯編語言書寫的程序中,才能直接使用系統(tǒng)調(diào)用;但在高級(jí)語言以及C語言中,往往提供了與各系統(tǒng)調(diào)用一一對(duì)應(yīng)的庫函數(shù),這樣,應(yīng)用程序便可通過調(diào)用對(duì)應(yīng)的庫函數(shù)來使用系統(tǒng)調(diào)用。但在近幾年所推出的操作系統(tǒng)中,如UNIX、OS/2版本中,其系統(tǒng)調(diào)用本身已經(jīng)采用C語言編寫,并以函數(shù)形式提供,故在用C語言編制的程序中,可直接使用系統(tǒng)調(diào)用。3.圖形用戶接口用戶雖然可以通過聯(lián)機(jī)用戶接口來取得OS的服務(wù),但這時(shí)要求用戶能熟記各種命令的名字和格式,并嚴(yán)格按照規(guī)定的格式輸入命令,這既不方便又花時(shí)間,于是,圖形用戶接口便應(yīng)運(yùn)而生。圖形用戶接口采用了圖形化的操作界面,用非常容易識(shí)別的各種圖標(biāo)(icon)來將系統(tǒng)的各項(xiàng)功能、各種應(yīng)用程序和文件,直觀、逼真地表示出來。用戶可用鼠標(biāo)或通過菜單和對(duì)話框,來完成對(duì)應(yīng)用程序和文件的操作。此時(shí)用戶已完全不必像使用命令接口那樣去記住命令名及格式,從而把用戶從繁瑣且單調(diào)的操作中解脫出來。1.6.2處理機(jī)管理功能1.進(jìn)程控制

在傳統(tǒng)的多道程序環(huán)境下,要使作業(yè)運(yùn)行,必須先為它創(chuàng)建一個(gè)或幾個(gè)進(jìn)程,并為之分配必要的資源。當(dāng)進(jìn)程運(yùn)行結(jié)束時(shí),立即撤消該進(jìn)程,以便能及時(shí)回收該進(jìn)程所占用的各類資源。進(jìn)程控制的主要功能是為作業(yè)創(chuàng)建進(jìn)程、撤消已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。在現(xiàn)代OS中,進(jìn)程控制還應(yīng)具有為一個(gè)進(jìn)程創(chuàng)建若干個(gè)線程的功能和撤消(終止)已完成任務(wù)的線程的功能。

2.進(jìn)程同步

為使多個(gè)進(jìn)程能有條不紊地運(yùn)行,系統(tǒng)中必須設(shè)置進(jìn)程同步機(jī)制。進(jìn)程同步的主要任務(wù)是為多個(gè)進(jìn)程(含線程)的運(yùn)行進(jìn)行協(xié)調(diào)。有兩種協(xié)調(diào)方式:①進(jìn)程互斥方式,這是指諸進(jìn)程(線程)在對(duì)臨界資源進(jìn)行訪問時(shí),應(yīng)采用互斥方式;②進(jìn)程同步方式,指在相互合作去完成共同任務(wù)的諸進(jìn)程(線程)間,由同步機(jī)構(gòu)對(duì)它們的執(zhí)行次序加以協(xié)調(diào)。為了實(shí)現(xiàn)進(jìn)程同步,系統(tǒng)中必須設(shè)置進(jìn)程同步機(jī)制。最簡單的用于實(shí)現(xiàn)進(jìn)程互斥的機(jī)制,是為每一個(gè)臨界資源配置一把鎖W,當(dāng)鎖打開時(shí),進(jìn)程(線程)可以對(duì)該臨界資源進(jìn)行訪問;而當(dāng)鎖關(guān)上時(shí),則禁止進(jìn)程(線程)訪問該臨界資源。

3.進(jìn)程通信

在多道程序環(huán)境下,為了加速應(yīng)用程序的運(yùn)行,應(yīng)在系統(tǒng)中建立多個(gè)進(jìn)程,并且再為一個(gè)進(jìn)程建立若干個(gè)線程,由這些進(jìn)程(線程)相互合作去完成一個(gè)共同的任務(wù)。而在這些進(jìn)程(線程)之間,又往往需要交換信息。例如,有三個(gè)相互合作的進(jìn)程,它們是輸入進(jìn)程、計(jì)算進(jìn)程和打印進(jìn)程。輸入進(jìn)程負(fù)責(zé)將所輸入的數(shù)據(jù)傳送給計(jì)算進(jìn)程;計(jì)算進(jìn)程利用輸入數(shù)據(jù)進(jìn)行計(jì)算,并把計(jì)算結(jié)果傳送給打印進(jìn)程;最后,由打印進(jìn)程把計(jì)算結(jié)果打印出來。進(jìn)程通信的任務(wù)就是用來實(shí)現(xiàn)在相互合作的進(jìn)程之間的信息交換。當(dāng)相互合作的進(jìn)程(線程)處于同一計(jì)算機(jī)系統(tǒng)時(shí),通常在它們之前是采用直接通信方式,即由源進(jìn)程利用發(fā)送命令直接將消息(message)掛到目標(biāo)進(jìn)程的消息隊(duì)列上,以后由目標(biāo)進(jìn)程利用接收命令從其消息隊(duì)列中取出消息。4.調(diào)度

在后備隊(duì)列上等待的每個(gè)作業(yè),通常都要經(jīng)過調(diào)度才能執(zhí)行。在傳統(tǒng)的操作系統(tǒng)中,包括作業(yè)調(diào)度和進(jìn)程調(diào)度兩步。作業(yè)調(diào)度的基本任務(wù),是從后備隊(duì)列中按照一定的算法,選擇出若干個(gè)作業(yè),為它們分配其必需的資源(首先是分配內(nèi)存)。在將它們調(diào)入內(nèi)存后,便分別為它們建立進(jìn)程,使它們都成為可能獲得處理機(jī)的就緒進(jìn)程,并按照一定的算法將它們插入就緒隊(duì)列。而進(jìn)程調(diào)度的任務(wù),則是從進(jìn)程的就緒隊(duì)列中選出一新進(jìn)程,把處理機(jī)分配給它,并為它設(shè)置運(yùn)行現(xiàn)場,使進(jìn)程投入執(zhí)行。值得提出的是,在多線程OS中,通常是把線程作為獨(dú)立運(yùn)行和分配處理機(jī)的基本單位,為此,須把就緒線程排成一個(gè)隊(duì)列,每次調(diào)度時(shí),是從就緒線程隊(duì)列中選出一個(gè)線程,把處理機(jī)分配給它。

1.6.3存儲(chǔ)管理1.內(nèi)存分配

OS在實(shí)現(xiàn)內(nèi)存分配時(shí),可采取靜態(tài)和動(dòng)態(tài)兩種方式。在靜態(tài)分配方式中,每個(gè)作業(yè)的內(nèi)存空間是在作業(yè)裝入時(shí)確定的;在作業(yè)裝入后的整個(gè)運(yùn)行期間,不允許該作業(yè)再申請(qǐng)新的內(nèi)存空間,也不允許作業(yè)在內(nèi)存中“移動(dòng)”;在動(dòng)態(tài)分配方式中,每個(gè)作業(yè)所要求的基本內(nèi)存空間,也是在裝入時(shí)確定的,但允許作業(yè)在運(yùn)行過程中,繼續(xù)申請(qǐng)新的附加內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)的動(dòng)態(tài)增漲,也允許作業(yè)在內(nèi)存中“移動(dòng)”。

為了實(shí)現(xiàn)內(nèi)存分配,在內(nèi)存分配的機(jī)制中應(yīng)具有這樣的結(jié)構(gòu)和功能:

①內(nèi)存分配數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用于記錄內(nèi)存空間的使用情況,作為內(nèi)存分配的依據(jù);

②內(nèi)存分配功能,系統(tǒng)按照一定的內(nèi)存分配算法,為用戶程序分配內(nèi)存空間;

③內(nèi)存回收功能,系統(tǒng)對(duì)于用戶不再需要的內(nèi)存,通過用戶的釋放請(qǐng)求,去完成系統(tǒng)的回收功能。

2.內(nèi)存保護(hù)

內(nèi)存保護(hù)的主要任務(wù),是確保每道用戶程序都只在自己的內(nèi)存空間內(nèi)運(yùn)行,彼此互不干擾。為了確保每道程序都只在自己的內(nèi)存區(qū)中運(yùn)行,必須設(shè)置內(nèi)存保護(hù)機(jī)制。一種比較簡單的內(nèi)存保護(hù)機(jī)制,是設(shè)置兩個(gè)界限寄存器,分別用于存放正在執(zhí)行程序的上界和下界。系統(tǒng)須對(duì)每條指令所要訪問的地址進(jìn)行檢查,如果發(fā)生越界,便發(fā)出越界中斷請(qǐng)求,以停止該程序的執(zhí)行。如果這種檢查完全用軟件實(shí)現(xiàn),則每執(zhí)行一條指令,便須增加若干條指令去進(jìn)行越界檢查,這將顯著降低程序的運(yùn)行速度。因此,越界檢查都由硬件實(shí)現(xiàn)。當(dāng)然,對(duì)發(fā)生越界后的處理,還須與軟件配合來完成。

3.地址映射

一個(gè)應(yīng)用程序(源程序)經(jīng)編譯后,通常會(huì)形成若干個(gè)目標(biāo)程序;這些目標(biāo)程序再經(jīng)過鏈接便形成了可裝入程序。這些程序的地址都是從“0”開始的,程序中的其它地址都是相對(duì)于起始地址計(jì)算的;由這些地址所形成的地址范圍稱為“地址空間”,其中的地址稱為“邏輯地址”或“相對(duì)地址”。此外,由內(nèi)存中的一系列單元所限定的地址范圍稱為“內(nèi)存空間”,其中的地址稱為“物理地址”。在多道程序環(huán)境下,每道程序不可能都從“0”地址開始裝入(內(nèi)存),這就致使地址空間內(nèi)的邏輯地址和內(nèi)存空間中的物理地址不相一致。使程序能正確運(yùn)行,存儲(chǔ)器管理必須提供地址映射功能,以將地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中與之對(duì)應(yīng)的物理地址。該功能應(yīng)在硬件的支持下完成。4.內(nèi)存擴(kuò)充

存儲(chǔ)器管理中的內(nèi)存擴(kuò)充任務(wù),并非是去擴(kuò)大物理內(nèi)存的容量,而是借助于虛擬存儲(chǔ)技術(shù),從邏輯上去擴(kuò)充內(nèi)存容量,使用戶所感覺到的內(nèi)存容量比實(shí)際內(nèi)存容量大得多;或者是讓更多的用戶程序能并發(fā)運(yùn)行。這樣,既滿足了用戶的需要,改善了系統(tǒng)的性能,又基本上不增加硬件投資。為了能在邏輯上擴(kuò)充內(nèi)存,系統(tǒng)必須具有內(nèi)存擴(kuò)充機(jī)制,用于實(shí)現(xiàn)下述各功能:

(1)請(qǐng)求調(diào)入功能。

(2)置換功能。1.6.4設(shè)備管理設(shè)備管理用于管理計(jì)算機(jī)系統(tǒng)中所有的外圍設(shè)備,而設(shè)備管理的主要任務(wù)是,完成用戶進(jìn)程提出的I/O請(qǐng)求;為用戶進(jìn)程分配其所需的I/O設(shè)備;提高CPU和I/O設(shè)備的利用率;提高I/O速度;方便用戶使用I/O設(shè)備。為實(shí)現(xiàn)上述任務(wù),設(shè)備管理應(yīng)具有緩沖管理、設(shè)備分配和設(shè)備處理,以及虛擬設(shè)備等功能。1.緩沖管理

CPU運(yùn)行的高速性和I/O低速性間的矛盾自計(jì)算機(jī)誕生時(shí)起便已存在。而隨著CPU速度迅速、大幅度的提高,使得此矛盾更為突出,嚴(yán)重降低了CPU的利用率。如果在I/O設(shè)備和CPU之間引入緩沖,則可有效地緩和CPU和I/O設(shè)備速度不匹配的矛盾,提高CPU的利用率,進(jìn)而提高系統(tǒng)吞吐量。因此,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,都毫無例外地在內(nèi)存中設(shè)置了緩沖區(qū),而且還可通過增加緩沖區(qū)容量的方法,來改善系統(tǒng)的性能。最常見的緩沖區(qū)機(jī)制有單緩沖機(jī)制、能實(shí)現(xiàn)雙向同時(shí)傳送數(shù)據(jù)的雙緩沖機(jī)制,以及能供多個(gè)設(shè)備同時(shí)使用的公用緩沖池機(jī)制。

2.設(shè)備分配

設(shè)備分配的基本任務(wù),是根據(jù)用戶進(jìn)程的I/O請(qǐng)求、系統(tǒng)的現(xiàn)有資源情況以及按照某種設(shè)備分配策略,為之分配其所需的設(shè)備。如果在I/O設(shè)備和CPU之間,還存在著設(shè)備控制器和I/O通道時(shí),還須為分配出去的設(shè)備分配相應(yīng)的控制器和通道。為了實(shí)現(xiàn)設(shè)備分配,系統(tǒng)中應(yīng)設(shè)置設(shè)備控制表、控制器控制表等數(shù)據(jù)結(jié)構(gòu),用于記錄設(shè)備及控制器的標(biāo)識(shí)符和狀態(tài)。據(jù)這些表格可以了解指定設(shè)備當(dāng)前是否可用,是否忙碌,以供進(jìn)行設(shè)備分配時(shí)參考。在進(jìn)行設(shè)備分配時(shí),應(yīng)針對(duì)不同的設(shè)備類型而采用不同的設(shè)備分配方式。對(duì)于獨(dú)占設(shè)備(臨界資源)的分配,還應(yīng)考慮到該設(shè)備被分配出去后,系統(tǒng)是否安全。設(shè)備使用完后,還應(yīng)立即由系統(tǒng)回收。

3.設(shè)備處理

設(shè)備處理程序又稱為設(shè)備驅(qū)動(dòng)程序。其基本任務(wù)是用于實(shí)現(xiàn)CPU和設(shè)備控制器之間的通信,即由CPU向設(shè)備控制器發(fā)出I/O命令,要求它完成指定的I/O操作;反之由CPU接收從控制器發(fā)來的中斷請(qǐng)求,并給予迅速的響應(yīng)和相應(yīng)的處理。處理過程是:設(shè)備處理程序首先檢查I/O請(qǐng)求的合法性,了解設(shè)備狀態(tài)是否是空閑的,了解有關(guān)的傳遞參數(shù)及設(shè)置設(shè)備的工作方式。然后,便向設(shè)備控制器發(fā)出I/O命令,啟動(dòng)I/O設(shè)備去完成指定的I/O操作。設(shè)備驅(qū)動(dòng)程序還應(yīng)能及時(shí)響應(yīng)由控制器發(fā)來的中斷請(qǐng)求,并根據(jù)該中斷請(qǐng)求的類型,調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。對(duì)于設(shè)置了通道的計(jì)算機(jī)系統(tǒng),設(shè)備處理程序還應(yīng)能根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。1.6.5文件管理1.文件存儲(chǔ)空間的管理

由文件系統(tǒng)對(duì)諸多文件及文件的存儲(chǔ)空間,實(shí)施統(tǒng)一的管理。其主要任務(wù)是為每個(gè)文件分配必要的外存空間,提高外存的利用率,并能有助于提高文件系統(tǒng)的運(yùn)行速度。為此,系統(tǒng)應(yīng)設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu),用于記錄文件存儲(chǔ)空間的使用情況,以供分配存儲(chǔ)空間時(shí)參考;系統(tǒng)還應(yīng)具有對(duì)存儲(chǔ)空間進(jìn)行分配和回收的功能。為了提高存儲(chǔ)空間的利用率,對(duì)存儲(chǔ)空間的分配,通常是采用離散分配方式,以減少外存零頭,并以盤塊為基本分配單位。盤塊的大小通常為512B~8KB。

2.目錄管理

為了使用戶能方便地在外存上找到自己所需的文件,通常由系統(tǒng)為每個(gè)文件建立一個(gè)目錄項(xiàng)。目錄項(xiàng)包括文件名、文件屬性、文件在磁盤上的物理位置等。由若干個(gè)目錄項(xiàng)又可構(gòu)成一個(gè)目錄文件。目錄管理的主要任務(wù),是為每個(gè)文件建立其目錄項(xiàng),并對(duì)眾多的目錄項(xiàng)加以有效的組織,以實(shí)現(xiàn)方便的按名存取。即用戶只須提供文件名,即可對(duì)該文件進(jìn)行存取。其次,目錄管理還應(yīng)能實(shí)現(xiàn)文件共享,這樣,只須在外存上保留一份該共享文件的副本。此外,還應(yīng)能提供快速的目錄查詢手段,以提高對(duì)文件的檢索速度。3.文件的讀/寫管理和保護(hù)

(1)文件的讀/寫管理。該功能是根據(jù)用戶的請(qǐng)求,從外存中讀取數(shù)據(jù);或?qū)?shù)據(jù)寫入外存。在進(jìn)行文件讀(寫)時(shí),系統(tǒng)先根據(jù)用戶給出的文件名,去檢索文件目錄,從中獲得文件在外存中的位置。然后,利用文件讀(寫)指針,對(duì)文件進(jìn)行讀(寫)。一旦讀(寫)完成,便修改讀(寫)指針,為下一次讀(寫)做好準(zhǔn)備。由于讀和寫操作不會(huì)同時(shí)進(jìn)行,故可合用一個(gè)讀/寫指針。

(2)文件保護(hù)。①防止未經(jīng)核準(zhǔn)的用戶存取文件;②防止冒名頂替存取文件;③防止以不正確的方式使用文件。1.7操作系統(tǒng)的結(jié)構(gòu)1.7.1整體式系統(tǒng)

整體式結(jié)構(gòu)是早期操作系統(tǒng)和一些較小的操作系統(tǒng)所采用的一種結(jié)構(gòu)模式。它實(shí)際上是沒有結(jié)構(gòu)的,整個(gè)系統(tǒng)是一堆過程的集合,每個(gè)過程都可以隨意調(diào)用其他過程。整體式系統(tǒng)提供了兩種處理機(jī)模式:

(1)用戶態(tài)(運(yùn)行用戶程序)

(2)核心態(tài)(運(yùn)行操作系統(tǒng))

整體式系統(tǒng)也存在一些很低的結(jié)構(gòu)化,一般來說,其所有過程可大致分為3層:最高層:主程序,調(diào)用所需的服務(wù)過程中間層:一組服務(wù)過程,執(zhí)行系統(tǒng)調(diào)用最底層:一組公共過程,用來支持各服務(wù)過程1.7.2層次式系統(tǒng)

層次系統(tǒng)是指按照操作系統(tǒng)中模塊的功能和相互依存關(guān)系將其劃分為若干個(gè)層次,除最底層模塊外,任一層模塊都建立在下一層模塊的基礎(chǔ)上,即任一層模塊都只能調(diào)用其下層模塊來得到服務(wù),而不能調(diào)用其上層模塊。層次式系統(tǒng)的結(jié)構(gòu)1.7.3客戶/服務(wù)器系統(tǒng)

在客戶/服務(wù)器系統(tǒng)中,需要把操作系統(tǒng)的服務(wù)功能劃分為若干個(gè)服務(wù)進(jìn)程,并讓這些進(jìn)程在用戶態(tài)下運(yùn)行。其中的每一個(gè)服務(wù)進(jìn)程稱為一個(gè)服務(wù)器,如內(nèi)存服務(wù)器、進(jìn)程服務(wù)器、終端服務(wù)器、文件服務(wù)器等。用戶進(jìn)程則稱為客戶進(jìn)程。客戶/服務(wù)器系統(tǒng)的結(jié)構(gòu)

客戶/服務(wù)器系統(tǒng)的主要優(yōu)點(diǎn)有兩方面。第一,提高系統(tǒng)的可靠性。由于每個(gè)服務(wù)器都以獨(dú)立的用戶態(tài)進(jìn)程方式運(yùn)行,因此,當(dāng)單個(gè)服務(wù)器出現(xiàn)故障時(shí),不會(huì)引起操作系統(tǒng)其他部分的崩潰。第二,適合于分布式系統(tǒng)中的應(yīng)用。如果一個(gè)客戶與一個(gè)服務(wù)器通信,當(dāng)客戶把請(qǐng)求發(fā)送給服務(wù)器后,不必知道該請(qǐng)求是在本地計(jì)算機(jī)上處理,還是通過網(wǎng)絡(luò)被發(fā)送到其他計(jì)算機(jī)上進(jìn)行處理。第二章操作系統(tǒng)用戶接口2.1用戶接口概述2.2命令接口2.3程序接口2.4圖形接口2.1用戶接口概述2.1.1程序的執(zhí)行和作業(yè)的概念計(jì)算機(jī)編程解題過程

作業(yè):就是計(jì)算機(jī)系統(tǒng)按指定的步驟,為用戶一次業(yè)務(wù)處理所完成的全部工作的總和。從程序運(yùn)行的角度看,作業(yè)又由一些相對(duì)獨(dú)立的順序執(zhí)行的步驟所組成,這些相對(duì)獨(dú)立的執(zhí)行步驟通常被稱為作業(yè)步。從系統(tǒng)管理角度看,作業(yè)由程序、數(shù)據(jù)和作業(yè)說明書3部分組成。作業(yè)包含的程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。作業(yè)說明書包含3個(gè)方面的內(nèi)容,即作業(yè)的基本描述、作業(yè)控制描述和資源要求描述2.1.2作業(yè)管理概述

作業(yè)管理是指當(dāng)一個(gè)用戶的作業(yè)提交給系統(tǒng)后,操作系統(tǒng)對(duì)其實(shí)施的所有管理和控制工作。其主要任務(wù)包括建立作業(yè),提供必需的資源系統(tǒng),控制其開始運(yùn)行,運(yùn)行結(jié)束后撤銷該作業(yè)。這些任務(wù)可分為兩類:(1)作業(yè)控制:主要討論系統(tǒng)通過何種方式使用戶方便地描述和控制解題過程,或者說操作系統(tǒng)為用戶提供了什么樣的接口,用戶又如何利用這些接口使用計(jì)算機(jī)。也稱為操作系統(tǒng)的用戶接口(2)作業(yè)調(diào)度:包括作業(yè)的進(jìn)入、調(diào)度算法的選擇、為選中的作業(yè)分配系統(tǒng)資源及作業(yè)完成后的善后處理等2.2命令接口2.2.1脫機(jī)命令接口

脫機(jī)命令接口是操作系統(tǒng)為脫機(jī)工作方式下的用戶提供的一種接口。在這種方式下,用戶必須事先將作業(yè)的指令、執(zhí)行順序以及出錯(cuò)的處理方法等以作業(yè)說明書或命令文件的方式交給系統(tǒng),由系統(tǒng)按作業(yè)說明書或命令文件所規(guī)定的順序控制作業(yè)的執(zhí)行。

在脫機(jī)工作方式下,用戶利用作業(yè)語言(JCL)來編寫表示用戶控制意圖的作業(yè)控制程序。JCL語句功能包括:(1)對(duì)作業(yè)進(jìn)行標(biāo)識(shí)、說明并給出一組調(diào)度參數(shù)(包括記帳號(hào)、用戶名、作業(yè)類別、時(shí)間限制、存儲(chǔ)空間要求、作業(yè)優(yōu)先級(jí)等)(2)對(duì)資源的申請(qǐng)要求(3)對(duì)程序及數(shù)據(jù)的控制功能(4)轉(zhuǎn)移控制(5)調(diào)試功能(6)標(biāo)識(shí)各種事件(包括錯(cuò)誤、設(shè)備故障等)及與之相關(guān)的條件轉(zhuǎn)移(7)視線設(shè)備獨(dú)立性功能的語句(8)作業(yè)撤離語句2.2.2聯(lián)機(jī)命令接口1.鍵盤命令方式系統(tǒng)訪問類命令系統(tǒng)管理類命令文件管理類命令編輯、編譯、鏈接及運(yùn)行類命令系統(tǒng)查詢類命令通信類命令資源請(qǐng)求類命令2.命令文件方式所謂命令文件方式,即用鍵盤命令語言編寫一個(gè)鍵盤命令語言程序——命令文件。建立命令文件后,系統(tǒng)可連續(xù)執(zhí)行若干條命令并且可以多次重復(fù)執(zhí)行。在命令文件中可以進(jìn)行參數(shù)傳遞,也可以以嵌套的方式調(diào)用其他命令文件。2.3程序接口2.3.1系統(tǒng)調(diào)用概述

計(jì)算機(jī)系統(tǒng)中的各種資源必須由操作系統(tǒng)統(tǒng)一管理。通常,在操作系統(tǒng)的內(nèi)核中都設(shè)置了一組用于實(shí)現(xiàn)各種特定系統(tǒng)功能的子程序(過程),并將它們提供給應(yīng)用程序調(diào)用。這樣,在編程過程中,需要系統(tǒng)完成特定的功能時(shí),即可調(diào)用系統(tǒng)中特定的子程序完成,這就是系統(tǒng)調(diào)用。系統(tǒng)調(diào)用與一般過程調(diào)用的區(qū)別運(yùn)行在不同的系統(tǒng)狀態(tài)計(jì)算機(jī)系統(tǒng)中,程序的運(yùn)行態(tài)分為兩種:核心態(tài)和用戶態(tài)。在一般的過程調(diào)用中,調(diào)用程序和被調(diào)用程序都運(yùn)行在相同的狀態(tài)——核心態(tài)或用戶態(tài)。系統(tǒng)調(diào)用與一般調(diào)用最大區(qū)別就在于:調(diào)用程序(用戶程序)運(yùn)行在用戶態(tài),而被調(diào)用程序運(yùn)行在核心態(tài)。

通過軟中斷進(jìn)入運(yùn)行系統(tǒng)調(diào)用時(shí),由于調(diào)用和被調(diào)用過程工作在不同的系統(tǒng)狀態(tài),同時(shí)被調(diào)用的系統(tǒng)調(diào)用子程序是操作系統(tǒng)程序模塊的一部分,不允許用戶程序直接訪問,因而不允許調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程。當(dāng)用戶使用系統(tǒng)調(diào)用時(shí),通常都是通過軟中斷機(jī)制產(chǎn)生一條相應(yīng)的指令,處理機(jī)在執(zhí)行到該指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有關(guān)信號(hào)給處理機(jī)機(jī)制,該處理機(jī)制在收到處理機(jī)發(fā)來的信號(hào)后,啟動(dòng)相關(guān)的處理程序完成系統(tǒng)調(diào)用所要求的功能。2.3.2系統(tǒng)調(diào)用類型系統(tǒng)維護(hù)類調(diào)用設(shè)備管理類調(diào)用文件管理類調(diào)用進(jìn)程控制類調(diào)用進(jìn)程通信類調(diào)用存儲(chǔ)管理類調(diào)用2.3.3系統(tǒng)調(diào)用過程

由于在實(shí)現(xiàn)系統(tǒng)調(diào)用時(shí)要用到相應(yīng)計(jì)算機(jī)的中斷系統(tǒng),所以,系統(tǒng)調(diào)用的執(zhí)行過程與計(jì)算機(jī)的結(jié)構(gòu)有關(guān)。系統(tǒng)調(diào)用命令在執(zhí)行時(shí)可能需要做一些參數(shù)傳遞,實(shí)現(xiàn)參數(shù)傳遞的方法有兩種:(1)訪管指令自帶參數(shù)(2)直接使用通用寄存器傳遞

為了實(shí)現(xiàn)系統(tǒng)調(diào)用,系統(tǒng)設(shè)計(jì)人員還必須為實(shí)現(xiàn)各種系統(tǒng)調(diào)用的子程序編制入口地址表,每個(gè)入口地址都與相應(yīng)的子程序?qū)?yīng)起來。然后,由陷阱處理機(jī)構(gòu)把訪管指令中包含的功能號(hào)與該入口地址表中的有關(guān)項(xiàng)對(duì)應(yīng)起來,從而由系統(tǒng)調(diào)用功能號(hào)驅(qū)動(dòng)有關(guān)系統(tǒng)子程序執(zhí)行。

系統(tǒng)調(diào)用處理過程2.4圖形接口

通過操作系統(tǒng)的命令接口來控制計(jì)算機(jī),用戶必須熟悉并能夠正確使用計(jì)算機(jī)系統(tǒng)所提供的命令的名稱、功能和格式,因此增加了用戶使用計(jì)算機(jī)的難度。隨著計(jì)算機(jī)應(yīng)用的發(fā)展,圖形用戶界面(GUI)應(yīng)運(yùn)而生。圖形接口向用戶提供了一種簡單、直觀地使用操作系統(tǒng)服務(wù)的方法,促進(jìn)了計(jì)算機(jī)應(yīng)用的發(fā)展,但這并不意味著基于字符方式的命令接口已經(jīng)退出了歷史舞臺(tái)。為了滿足不同層次人員的應(yīng)用需求,現(xiàn)代操作系統(tǒng)在提供圖形接口的同時(shí),仍然支持命令接口的使用。

用戶接口一直是計(jì)算機(jī)操作系統(tǒng)中發(fā)展最快的一個(gè)部分。在早期的計(jì)算機(jī)系統(tǒng)中,用戶只能通過讀卡機(jī)、卡片、紙帶機(jī)和紙帶等輸入控制命令,而且系統(tǒng)調(diào)用大都是以匯編語言或更低級(jí)的機(jī)器語言方式提供給編程人員,除了專業(yè)人員外,幾乎很少有人能夠使用計(jì)算機(jī)。

20世紀(jì)70年代,特別是80年代后,計(jì)算機(jī)軟件與硬件技術(shù)的發(fā)展帶來了輸入/輸出方式的巨大變化,大容量直接存取存儲(chǔ)器的出現(xiàn)使用戶可以直接把作業(yè)說明書通過鍵盤輸入計(jì)算機(jī),并且可以把結(jié)果寫入文件系統(tǒng)。20世紀(jì)90年代后推出新型操作系統(tǒng),進(jìn)一步方便用戶使用計(jì)算機(jī),又普遍增加了一種基于圖像的圖形用戶接口。隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,特別是Internet廣為流行的今天,又出現(xiàn)了一種面向網(wǎng)絡(luò)的網(wǎng)絡(luò)用戶接口第三章進(jìn)程管理

3.1進(jìn)程的基本概念3.2進(jìn)程的描述3.3進(jìn)程狀態(tài)及其轉(zhuǎn)換3.4經(jīng)典控制3.5進(jìn)程互斥與同步3.6進(jìn)程間通信3.7線程的概念3.1進(jìn)程的基本概念3.1.1進(jìn)程的引入1.程序的順序執(zhí)行及其特性僅當(dāng)前一操作(程序段)執(zhí)行完后,才能執(zhí)行后繼操作。例如,在進(jìn)行計(jì)算時(shí),總須先輸入用戶的程序和數(shù)據(jù),然后進(jìn)行計(jì)算,最后才能打印計(jì)算結(jié)果。

S1:a

∶=x+y;

S2:b

∶=a-5;

S3:c

∶=b+1;程序順序執(zhí)行時(shí)的特征:順序性:(2)封閉性:(3)可再現(xiàn)性:2程序的并發(fā)執(zhí)行及其特征

程序的并發(fā)執(zhí)行

在該例中存在下述前趨關(guān)系:

Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之間,可以并發(fā)執(zhí)行。對(duì)于具有下述四條語句的程序段:

S1:a∶=x+2

S2:b∶=y+4

S3:c∶=a+b

S4:d∶=c+b程序并發(fā)執(zhí)行時(shí)的特征:間斷性2)失去封閉性3)不可再現(xiàn)性

例如,有兩個(gè)循環(huán)程序A和B,它們共享一個(gè)變量N。程序A每執(zhí)行一次時(shí),都要做N∶=N+1操作;程序B每執(zhí)行一次時(shí),都要執(zhí)行Print(N)操作,然后再將N置成“0”。程序A和B以不同的速度運(yùn)行。

(1)N∶=N+1在Print(N)和N∶=0之前,此時(shí)得到的N值分別為n+1,n+1,0。

(2)N∶=N+1在Print(N)和N∶=0之后,此時(shí)得到的N值分別為n,0,1。

(3)N∶=N+1在Print(N)和N∶=0之間,此時(shí)得到的N值分別為n,n+1,0。3進(jìn)程的引入

由于程序在順序執(zhí)行時(shí)具有順序性、封閉性和可再現(xiàn)性,使程序和其執(zhí)行過程之間存在一一對(duì)應(yīng)的關(guān)系,因此程序這個(gè)靜態(tài)概念完全可以用來代替程序執(zhí)行過程中這個(gè)動(dòng)態(tài)概念。但是,程序的并發(fā)執(zhí)行破壞了程序順序執(zhí)行的特性,并產(chǎn)生了一些新的特點(diǎn),使程序這個(gè)靜態(tài)概念不足以描述程序的執(zhí)行過程。因此,需要引入一個(gè)新的概念來描述程序的并發(fā)執(zhí)行過程,這個(gè)新的概念就是“進(jìn)程”。3.1.2進(jìn)程的定義和特征1.進(jìn)程的定義

較典型的進(jìn)程定義有:

(1)進(jìn)程是程序的一次執(zhí)行。

(2)進(jìn)程是可以和別的計(jì)算并發(fā)執(zhí)行的計(jì)算。

(3)進(jìn)程可以定義為一個(gè)數(shù)據(jù)結(jié)構(gòu)以及能在其上執(zhí)行的一個(gè)程序。

(4)進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。

(5)進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

在引入了進(jìn)程實(shí)體的概念后,我們可以把傳統(tǒng)OS中的進(jìn)程定義為:“進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位”。2.進(jìn)程的特征結(jié)構(gòu)特征動(dòng)態(tài)性并發(fā)性獨(dú)立性異步性3.進(jìn)程與程序的聯(lián)系和區(qū)別進(jìn)程是程序的一次執(zhí)行,屬于動(dòng)態(tài)概念;而程序僅是指令的有序集合,屬于靜態(tài)概念進(jìn)程有一個(gè)生命周期,它的存在是暫時(shí)的;而程序的存在則是永久的。一個(gè)進(jìn)程可以執(zhí)行一個(gè)或幾個(gè)程序,一個(gè)程序可產(chǎn)生多個(gè)進(jìn)程。3.2.1進(jìn)程控制塊

進(jìn)程控制塊(PCB)作為進(jìn)程實(shí)體的一個(gè)重要組成部分,包含了進(jìn)程的所有描述信息和控制信息,是系統(tǒng)對(duì)進(jìn)程實(shí)施管理的唯一依據(jù)和系統(tǒng)能夠感知到進(jìn)程存在的唯一標(biāo)識(shí)。進(jìn)程控制塊和進(jìn)程之間存在一一對(duì)應(yīng)的關(guān)系。當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程時(shí),必須為其建立相應(yīng)的進(jìn)程控制塊;當(dāng)系統(tǒng)撤銷一個(gè)進(jìn)程時(shí),又必須收回其進(jìn)程控制塊。由于進(jìn)程控制塊的重要性,幾乎所有的多道操作系統(tǒng)都是將其全部或部分駐留在內(nèi)存的。3.2進(jìn)程的描述

1.進(jìn)程描述信息

(1)進(jìn)程標(biāo)識(shí)符。進(jìn)程標(biāo)識(shí)符也稱為進(jìn)程進(jìn)程名或進(jìn)程內(nèi)部名,是操作系統(tǒng)為每一個(gè)進(jìn)程所賦予的唯一內(nèi)部標(biāo)識(shí),通常是一個(gè)進(jìn)程的序號(hào),不同進(jìn)程的標(biāo)識(shí)符不允許相同。系統(tǒng)每創(chuàng)建一個(gè)進(jìn)程時(shí),都要給它分配一個(gè)空閑的進(jìn)程控制塊,并為之分配一個(gè)唯一的標(biāo)識(shí)符。

(2)用戶標(biāo)識(shí)符。用戶標(biāo)識(shí)符也稱為進(jìn)程用戶名或進(jìn)程外部名,是進(jìn)程創(chuàng)建者為了增強(qiáng)進(jìn)程名的可讀性為進(jìn)程提供的一個(gè)名字

(3)家族聯(lián)系。在樹狀結(jié)構(gòu)的進(jìn)程系統(tǒng)中,進(jìn)程之間存在家族關(guān)系。因此,其進(jìn)程控制塊中應(yīng)有相應(yīng)的項(xiàng)來描述它們之間的家族聯(lián)系。通常,進(jìn)程的家族聯(lián)系是通過一個(gè)進(jìn)程指向其父進(jìn)程或子進(jìn)程的指針來實(shí)現(xiàn)的。

在PCB中還存放一些與進(jìn)程調(diào)度和進(jìn)程對(duì)換有關(guān)的信息,包括:①進(jìn)程狀態(tài),指明進(jìn)程的當(dāng)前狀態(tài),作為進(jìn)程調(diào)度和對(duì)換時(shí)的依據(jù);②進(jìn)程優(yōu)先級(jí),用于描述進(jìn)程使用處理機(jī)的優(yōu)先級(jí)別的一個(gè)整數(shù),優(yōu)先級(jí)高的進(jìn)程應(yīng)優(yōu)先獲得處理機(jī);③進(jìn)程調(diào)度所需的其它信息,它們與所采用的進(jìn)程調(diào)度算法有關(guān),比如,進(jìn)程已等待CPU的時(shí)間總和、進(jìn)程已執(zhí)行的時(shí)間總和等;④事件,是指進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即阻塞原因。2.進(jìn)程調(diào)度信息

當(dāng)一個(gè)進(jìn)程因?yàn)槟硞€(gè)事件而不能在CPU上繼續(xù)執(zhí)行時(shí),必須將自己的CPU現(xiàn)場信息保存在該進(jìn)程的進(jìn)程控制塊內(nèi),以便其重新獲得CPU再次運(yùn)行時(shí)能夠恢復(fù)這些現(xiàn)場信息。通常這些被保護(hù)的CPU現(xiàn)場信息也稱為進(jìn)程上下文,主要包括:①通用寄存器信息。通用寄存器是用戶程序可以直接訪問的寄存器,包括數(shù)據(jù)寄存器和段寄存器。②程序狀態(tài)字(PSW)信息。PSW包含著程序的狀態(tài)信息,如條件碼、執(zhí)行方式、中斷屏蔽標(biāo)志等。③指令計(jì)數(shù)器(IC)信息。IC用于存放要訪問的下一條指令的地址。④用戶堆棧指針。用戶堆棧指針用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址。3.進(jìn)程上下文

進(jìn)程控制信息包括:①程序和數(shù)據(jù)的地址,是指進(jìn)程的程序和數(shù)據(jù)所在的內(nèi)存或外存地(首)址,以便再調(diào)度到該進(jìn)程執(zhí)行時(shí),能從PCB中找到其程序和數(shù)據(jù);②進(jìn)程同步和通信機(jī)制,指實(shí)現(xiàn)進(jìn)程同步和進(jìn)程通信時(shí)必需的機(jī)制,如消息隊(duì)列指針、信號(hào)量等,它們可能全部或部分地放在PCB中;③資源清單,是一張列出了除CPU以外的、進(jìn)程所需的全部資源及已經(jīng)分配到該進(jìn)程的資源的清單;④鏈接指針,它給出了本進(jìn)程(PCB)所在隊(duì)列中的下一個(gè)進(jìn)程的PCB的首地址。4.進(jìn)程控制信息3.2.2進(jìn)程控制塊的組織方式

1)鏈接方式2)索引方式3.3.1進(jìn)程的基本狀態(tài)就緒(Ready)狀態(tài)2)執(zhí)行狀態(tài)3)阻塞狀態(tài)3.3進(jìn)程的狀態(tài)及其轉(zhuǎn)換

3.3.2進(jìn)程基本狀態(tài)的轉(zhuǎn)換進(jìn)程狀態(tài)的轉(zhuǎn)換

活動(dòng)就緒→靜止就緒。(2)活動(dòng)阻塞→靜止阻塞。(3)靜止就緒→活動(dòng)就緒。(4)靜止阻塞→活動(dòng)阻塞。掛起狀態(tài)引入掛起狀態(tài)的原因

終端用戶的請(qǐng)求。(2)父進(jìn)程請(qǐng)求。(3)負(fù)荷調(diào)節(jié)的需要。(4)操作系統(tǒng)的需要。3.4進(jìn)程控制3.4.1進(jìn)程控制機(jī)制

為了實(shí)現(xiàn)對(duì)進(jìn)程的有效控制,操作系統(tǒng)必須建立一套控制機(jī)制,用于創(chuàng)建新進(jìn)程、撤銷執(zhí)行結(jié)束的進(jìn)程以及實(shí)現(xiàn)進(jìn)程狀態(tài)的轉(zhuǎn)換。這套機(jī)制屬于操作系統(tǒng)的內(nèi)核,常駐內(nèi)存,其執(zhí)行過程通常是由一些原語來完成的。原語(primitive),是指由若干條機(jī)器指令組成的,用于完成一定功能的一個(gè)過程,并且該過程的執(zhí)行是不可打斷的。原語和一般過程的主要區(qū)別在于,原語是原子操作。原子操作是指該操作一個(gè)不可分割的基本單位,要么全都執(zhí)行,要么全不執(zhí)行,中間不允許插入任何其他操作。3.4.2進(jìn)程控制原語進(jìn)程創(chuàng)建原語

(1)進(jìn)程創(chuàng)建的原因和方式。在操作系統(tǒng)中,進(jìn)程的創(chuàng)建方式有兩種,一種是由系統(tǒng)創(chuàng)建,另一種是由父進(jìn)程創(chuàng)建。導(dǎo)致系統(tǒng)創(chuàng)建進(jìn)程的原因主要有3個(gè):①作業(yè)調(diào)度②用戶登錄③提供服務(wù)由父進(jìn)程創(chuàng)建是指由執(zhí)行狀態(tài)的用戶進(jìn)程根據(jù)自身需要?jiǎng)?chuàng)建相應(yīng)的子進(jìn)程。在這種創(chuàng)建方式中,父進(jìn)程與其創(chuàng)建的子進(jìn)程之間存在隸屬關(guān)系和資源繼承關(guān)系,實(shí)際上是一種樹狀結(jié)構(gòu)的家族關(guān)系。(2)進(jìn)程創(chuàng)建原語的描述。無論是由系統(tǒng)創(chuàng)建還是父進(jìn)程創(chuàng)建,創(chuàng)建者都需要調(diào)用進(jìn)程創(chuàng)建原語來創(chuàng)建新的進(jìn)程。進(jìn)程創(chuàng)建原語的主要工作是要為被創(chuàng)建的進(jìn)程建立一個(gè)進(jìn)程控制塊。2.進(jìn)程撤銷原語引起進(jìn)程撤銷的原因:①進(jìn)程正常終止②進(jìn)程異常終止③父進(jìn)程要求撤銷某一子孫進(jìn)程(2)進(jìn)程撤銷原語的描述。無論是哪種原因引起的進(jìn)程撤銷,都需要調(diào)用撤銷原語來完成撤銷工作。進(jìn)程撤銷原語的主要工作是釋放被撤銷進(jìn)程所占用的全部資源和進(jìn)程控制塊結(jié)構(gòu)本身。3.進(jìn)程阻塞原語進(jìn)程阻塞原語的作用是將一個(gè)進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)。當(dāng)一個(gè)處于執(zhí)行狀態(tài)的進(jìn)程需要等待某一事件發(fā)生時(shí),自己調(diào)用阻塞原語阻塞自己,以便讓出CPU。進(jìn)程阻塞原語的主要處理過程是:首先中斷當(dāng)前進(jìn)程的CPU,并將其現(xiàn)場保存到進(jìn)程控制塊中;然后置該進(jìn)程狀態(tài)為“阻塞”,并插入阻塞隊(duì)列;隨后再激活進(jìn)程調(diào)度程序,重新分配CPU4.進(jìn)程喚醒原語進(jìn)程喚醒原語的作用是將一個(gè)處于阻塞狀態(tài)的進(jìn)程由阻塞狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)一個(gè)處于阻塞狀態(tài)的進(jìn)程所等待的事件發(fā)生時(shí),將由發(fā)現(xiàn)者進(jìn)程調(diào)用進(jìn)程喚醒原語將其喚醒。進(jìn)程喚醒原語的主要操作是:將被喚醒進(jìn)程從阻塞隊(duì)列中移出,狀態(tài)改為“就緒”,并插入就緒隊(duì)列。3.5進(jìn)程互斥與同步3.5.1互斥的概念1.臨界資源臨界資源是指一次僅允許一個(gè)進(jìn)程使用的資源。在多進(jìn)程系統(tǒng)中,諸進(jìn)程之間除了競爭CPU外,還會(huì)競爭各種臨界資源。許多物理設(shè)備都屬于臨界資源,如輸入設(shè)備,打印機(jī)等。只有當(dāng)一個(gè)進(jìn)程使用完釋放后,才允許另一個(gè)進(jìn)程使用這些資源。

看一個(gè)例子,設(shè)有兩個(gè)并發(fā)進(jìn)程P1和P2共享變量count,進(jìn)程P1或P2的功能是每執(zhí)行完某些操作后,將count的值取出來加1,R1和R2是工作寄存器。當(dāng)P1和P2按如下順序執(zhí)行時(shí):P1:R1=count;R1=R1+1;count=R1;P2:R2=count;R2=R2+1;count=R2;

其結(jié)果使count增加了2,這是正確的。但由于P1和P2是兩個(gè)并發(fā)過程,如果對(duì)它們的執(zhí)行不加限制,則有可能出現(xiàn)不同的執(zhí)行順序。

例如按下面對(duì)順序執(zhí)行P1:R1=count;P2:R2=count;P1:R1=R1+1;count=R1;P2:R2=R2+1;count=R2;

雖然P1和P2都各自對(duì)count做了一次加1操作,但count的值最后卻僅增加了1。顯然,這種錯(cuò)誤與執(zhí)行順序有關(guān),因此也稱其為與執(zhí)行順序有關(guān)的錯(cuò)誤。產(chǎn)生這種錯(cuò)誤的主要原因是沒有將變量count按臨界資源處理。2.臨界區(qū)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論