操作系統(tǒng)原理及應(yīng)用課件第7章 UNIX系統(tǒng)_第1頁(yè)
操作系統(tǒng)原理及應(yīng)用課件第7章 UNIX系統(tǒng)_第2頁(yè)
操作系統(tǒng)原理及應(yīng)用課件第7章 UNIX系統(tǒng)_第3頁(yè)
操作系統(tǒng)原理及應(yīng)用課件第7章 UNIX系統(tǒng)_第4頁(yè)
操作系統(tǒng)原理及應(yīng)用課件第7章 UNIX系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UNIX操作系統(tǒng)的第一個(gè)版本是在PDP-7計(jì)算機(jī)上用匯編語(yǔ)言編寫的。1972年才用C語(yǔ)言改寫而成,改寫后的UNIX系統(tǒng)提高了兼容性和可讀性(易讀性)。UNIX首先是在大學(xué)中流行起來的,到目前,已經(jīng)過了多次修改,產(chǎn)生過很多版本(現(xiàn)在已產(chǎn)生了第七版)。但它的根本思想沒有什么變化,只是在功能上進(jìn)行了一些有意義的擴(kuò)充。盡管UNIX的版本很多,并且也有很大變化,但它們都具有UNIX系統(tǒng)的特點(diǎn):(1)具有可裝卸的分層的樹形結(jié)構(gòu)文件系統(tǒng)。該系統(tǒng)具有完整的文件保護(hù)的功能,提高了設(shè)備的獨(dú)立性,使用戶程序設(shè)計(jì)更加簡(jiǎn)單、方便。(2)UNIX系統(tǒng)是一個(gè)可供多個(gè)用戶同時(shí)操作的會(huì)話式分時(shí)操作系統(tǒng)。不同的用戶可以在不同的終端上,同時(shí)通過會(huì)話方式與系統(tǒng)交互而感覺不到有人在同時(shí)使用同一系統(tǒng)。(3)把所有外部設(shè)備看作文件并分別賦以對(duì)應(yīng)的文件名,用戶使用設(shè)備就像使用文件那樣簡(jiǎn)單,而不必了解設(shè)備的內(nèi)部特性。這就使得對(duì)文件和對(duì)設(shè)備的操作統(tǒng)一起來,方便用戶使用。(4)UNIX系統(tǒng)主要用C語(yǔ)言編寫,因此使系統(tǒng)具有易讀、易懂、易修改和易移植等一系列優(yōu)點(diǎn)。(5)提供了功能完備、使用靈活的命令語(yǔ)言Shell。它既是一種交互式命令解釋程序,也是一種命令級(jí)程序設(shè)計(jì)語(yǔ)言解釋程序。即在UNIX中,Shell具有雙重功能,用戶可通過命令在終端上與操作系統(tǒng)對(duì)話,直接控制自己程序的運(yùn)行,也可像高級(jí)程序設(shè)計(jì)語(yǔ)言一樣,編制出功能強(qiáng)大,而又十分簡(jiǎn)潔明了的命令程序。

總的看來,UNIX操作系統(tǒng)的設(shè)計(jì)目標(biāo)是:(1)簡(jiǎn)單性:UNIX并不要求達(dá)到某些大型通用操作系統(tǒng)所希望達(dá)到的“無所不包、無所不能”的功能,它提供給用戶一些基本的必須的功能。因此,UNIX系統(tǒng)比較簡(jiǎn)單,使用方便,同時(shí)功能也非常強(qiáng)大。(2)通用性:它力求用一種方法,同一機(jī)構(gòu)來服務(wù)于幾個(gè)不同的目的。例如對(duì)文件、設(shè)備和進(jìn)程間的消息緩沖區(qū)的讀和寫操作都是同樣的系統(tǒng)調(diào)用,同樣的程序模塊。又如同樣的命名,別名和存取保護(hù)機(jī)構(gòu)都適用于數(shù)據(jù)文件、目錄文件和設(shè)備。再如處理機(jī)陷阱(TRAP)和軟中斷使用的也是同樣的機(jī)構(gòu)等。(3)程序開發(fā)的方便性:它創(chuàng)建了一個(gè)十分方便于程序開發(fā)的環(huán)境,使得一個(gè)新開發(fā)的大任務(wù)可由許多已有的小程序合成,而不必都重新設(shè)計(jì)。7.2系統(tǒng)結(jié)構(gòu)

整個(gè)UNIX系統(tǒng)可分成兩大部分:用戶層和UNIX操作系統(tǒng)(也稱為UNIX的內(nèi)核)。UNIX系統(tǒng)的內(nèi)核結(jié)構(gòu)如圖7-2-1所示。由圖7-2-1可知,UNIX內(nèi)核按功能可劃分為:1.存儲(chǔ)管理;2.進(jìn)程管理;3.進(jìn)程通信;4.中斷、陷阱與系統(tǒng)調(diào)用;5.輸入輸出管理;6.文件系統(tǒng)。7-2-1UNIX的內(nèi)核結(jié)構(gòu)

在UNIX核心之外運(yùn)行的是用戶態(tài)的程序,這包括用戶程序、大量的應(yīng)用程序和各種程序包子系統(tǒng),它們?cè)赟HELL命令解釋程序管理之下,作為進(jìn)程的用戶態(tài)的一部分來運(yùn)行。所有用戶進(jìn)程(或者說進(jìn)程的用戶態(tài))只能通過SHELL語(yǔ)言在終端上或后臺(tái)得到服務(wù)。7.3文件系統(tǒng)7.3.1UNIX文件系統(tǒng)概述7.3.2文件目錄結(jié)構(gòu)和文件(路徑)名

7.3.3與文件有關(guān)的系統(tǒng)調(diào)用

7.3.1UNIX文件系統(tǒng)概述UNIX系統(tǒng)中把文件看成是由一串字符組成的無結(jié)構(gòu)的信息的有序集合。由用戶為每個(gè)文件指定一個(gè)文件名進(jìn)行標(biāo)識(shí),用戶可為保護(hù)自己文件的數(shù)據(jù)而進(jìn)行訪問權(quán)限的設(shè)置。文件大小按字符數(shù)計(jì)算,通常,一個(gè)文件最大不能超過百萬字節(jié)。文件常被存儲(chǔ)在大容量磁盤或磁帶上。UNIX文件系統(tǒng)將文件分成三類:1、普通文件:即通常的正文文件,是無結(jié)構(gòu)、無記錄概念的字符流序列。文件系統(tǒng)以512個(gè)字節(jié)為一塊,文件在塊內(nèi)連續(xù)存放。在文件的組織形式上無明顯的索引文件、連續(xù)文件,鏈接(串連)文件之分。在文件的訪問方式上也無順序和隨機(jī)訪問之別。用戶可通過系統(tǒng)調(diào)用seek原語(yǔ)預(yù)先確定下次文件讀寫的開始位置。用戶也可按自己需要來結(jié)構(gòu)自己的文件,只是文件系統(tǒng)不承認(rèn)也不了解這種結(jié)構(gòu)。2、目錄文件:如同所有的文件系統(tǒng)一樣,UNIX也把目錄本身看成是文件。目錄文件就是指作為文件內(nèi)容的數(shù)據(jù)是一些目錄項(xiàng)。這種文件在形式上同普通文件一樣,由系統(tǒng)將其解釋成目錄。在UNIX系統(tǒng)中,文件名與文件說明是分開的,后者形成一個(gè)稱為索引節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)稱為i節(jié)點(diǎn)。一個(gè)目錄文件包含有多個(gè)目錄項(xiàng),每個(gè)目錄項(xiàng)的格式如圖7-3-1所示。目錄項(xiàng)的長(zhǎng)度為16個(gè)字節(jié),文件名最多不超過14個(gè)字符,另外兩個(gè)字節(jié)用作該文件的i節(jié)點(diǎn)指針稱為i節(jié)點(diǎn)的索引號(hào)inode。這樣一個(gè)512字節(jié)的物理盤塊可以存放32個(gè)目錄項(xiàng)。如同其他文件系統(tǒng)一樣,一個(gè)駐留在盤上的文件,除了有文件正文本身外,還要在某個(gè)目錄文件中有一個(gè)文件目錄項(xiàng)和一個(gè)i節(jié)點(diǎn)。一個(gè)i節(jié)點(diǎn)包含該文件的更多的信息,主要有:圖

7-3-1目錄項(xiàng)格式

如同其他文件系統(tǒng)一樣,一個(gè)駐留在盤上的文件,除了有文件正文本身外,還要在某個(gè)目錄文件中有一個(gè)文件目錄項(xiàng)和一個(gè)i節(jié)點(diǎn)。一個(gè)i節(jié)點(diǎn)包含該文件的更多的信息,主要有:(1)文件主標(biāo)識(shí)。擁有該文件的用戶標(biāo)識(shí)符;(2)文件主的同組用戶標(biāo)識(shí);(3)文件的存取權(quán)限。UNIX把用戶分成三類:文件所有者、文件所有者的同組用戶和其他一般用戶。各類用戶在讀、寫和執(zhí)行等方面具有不同的存取權(quán)限。(4)存放文件的物理地址。通過直接或間接地址,給出文件數(shù)據(jù)占用的磁盤塊號(hào);

(5)文件長(zhǎng)度。即指明文件大小的字節(jié)數(shù);(6)文件存取時(shí)間。指出文件的建立時(shí)間、最近被使用的時(shí)間和最近被修改的時(shí)間;(7)與該文件進(jìn)行連接的進(jìn)程數(shù)目;(8)文件的類型。有正規(guī)文件、目錄文件、字符特別文件、塊特別文件及管道文件。一個(gè)物理設(shè)備上的所有文件的i節(jié)點(diǎn)放在一起形成i節(jié)點(diǎn)表,i節(jié)點(diǎn)表放在該文件卷的i節(jié)點(diǎn)表區(qū)中。但i節(jié)點(diǎn)表本身不被視為文件,而是數(shù)據(jù)結(jié)構(gòu)。3、特別文件:UNIX把I/O設(shè)備看成是一個(gè)特別文件,與普通的文件一樣處理,因此,對(duì)設(shè)備文件的讀、寫操作實(shí)際上是對(duì)設(shè)備的操作,而對(duì)設(shè)備文件的保護(hù)也就是對(duì)設(shè)備的保護(hù)。這樣就使得文件與設(shè)備的I/O操作統(tǒng)一起來了。7.3.2文件目錄結(jié)構(gòu)和文件(文件)名UNIX的文件系統(tǒng)是一個(gè)多層次的樹形結(jié)構(gòu)。樹的根是一個(gè)目錄文件,稱為根目錄,它是整個(gè)目錄結(jié)構(gòu)的基礎(chǔ)。從根目錄往下的各級(jí)節(jié)點(diǎn),都是目錄文件,而樹葉則是普通文件或特殊文件。在UNIX文件系統(tǒng)中,每個(gè)文件有兩個(gè)名字:用戶起的文件外部名(在目錄項(xiàng)中給出),另外還有唯一的內(nèi)部名。該內(nèi)部名由三部分組成:主設(shè)備號(hào),次級(jí)設(shè)備號(hào)和i節(jié)點(diǎn)號(hào)。主設(shè)備號(hào)對(duì)應(yīng)于一組設(shè)備驅(qū)動(dòng)程序入口點(diǎn)的索引號(hào)(設(shè)備類型號(hào)),次級(jí)設(shè)備號(hào)對(duì)應(yīng)于一組該類設(shè)備中某一臺(tái)的索引號(hào),i節(jié)點(diǎn)號(hào)是指該設(shè)備上的文件卷中i節(jié)點(diǎn)表區(qū)的索引號(hào)。在UNIX樹形目錄結(jié)構(gòu)中,指定一個(gè)文件需要將到達(dá)該文件所經(jīng)過的所有目錄按順序組織到一起,最后再加上該文件名組成路徑名來說明。其中,根目錄用“/”表示,各級(jí)目錄及文

件名也用“/”隔開。如文件xyf存在于目錄/usr/user/xu中,則要找到該文件,我們應(yīng)提供這樣的路徑名/usr/user/xu/xyf。為了方便和加速對(duì)文件的訪問,在UNIX系統(tǒng)中,專門開辟了一塊內(nèi)存區(qū)作為整個(gè)系統(tǒng)的打開文件表,最多可登記100個(gè)表目。UNIX在內(nèi)存還專門設(shè)置了一個(gè)活動(dòng)i節(jié)點(diǎn)表,該表登記所有已被打開的文件的i節(jié)點(diǎn)內(nèi)容,以免每次訪問文件時(shí)都要從文件卷(盤)上的i節(jié)點(diǎn)表中去查找該i節(jié)點(diǎn)。每個(gè)用戶也都有一個(gè)打開文件表,最多能登記15個(gè)表項(xiàng),它存在于每個(gè)進(jìn)程的PCB結(jié)構(gòu)中,也就是說,每個(gè)進(jìn)程最多可以同時(shí)打開15個(gè)文件。每一表項(xiàng)登記了一個(gè)系統(tǒng)打開文件表中的一個(gè)入口指針。用戶打開文件表項(xiàng)通過系統(tǒng)打開文件表項(xiàng)連接到活動(dòng)i節(jié)點(diǎn),而不是直接與i節(jié)點(diǎn)連接,這是為了便于文件共享和存取控制。7.3.3與文件有關(guān)的系統(tǒng)調(diào)用UNIX文件系統(tǒng)為用戶提供了如下的幾種操作方式:1.文件的建立格式:fd=creat(name,mode)

該調(diào)用的主要功能是根據(jù)用戶提供的文件名及文件屬性建立一個(gè)文件并打開。如果系統(tǒng)中有同名的文件,則系統(tǒng)將釋放原文件占用的存儲(chǔ)空間,重新建立文件。2.文件的打開文件必須打開后才能使用,打開文件的過程就是把文件名轉(zhuǎn)換成內(nèi)部名并進(jìn)行存取控制檢查。格式:fd=open(name,flag)flag是打開類型(讀或?qū)懀W⒁猓阂粋€(gè)文件在用完之后必須關(guān)閉

3.文件的讀和寫操作當(dāng)文件被打開后,就可以執(zhí)行讀或?qū)懙牟僮髁?。格式:fn=read(fd,buf,n)fd是內(nèi)部文件名,buf為用戶要求信息傳送到的緩沖區(qū)地址,n為讀出的字符數(shù),單位是字節(jié)。寫操作原語(yǔ)write與讀原語(yǔ)類似。UNIX提供流式文件,用戶每次可以連續(xù)讀寫若干字符,用讀寫指針記錄當(dāng)前位置,下次可以接著由指針處進(jìn)行讀或?qū)懙牟僮鳌?.文件的連接與斷開為了實(shí)現(xiàn)文件共享,UNIX提供了一個(gè)系統(tǒng)調(diào)用原語(yǔ)link:格式:link(oldname,newname)link的主要功能就是將一個(gè)已建立的文件連接到另一個(gè)新文件名上。當(dāng)用戶不再需要某文件時(shí),可以調(diào)用unlink原語(yǔ)斷開與該文件的連接。格式:unlink(name)利用這一系統(tǒng)調(diào)用可以解除與指定文件的連接,并清除指定文件的目錄項(xiàng)。7.4進(jìn)程管理7.4.1進(jìn)程和進(jìn)程控制塊PCB7.4.2進(jìn)程控制7.4.1進(jìn)程和進(jìn)程控制塊PCB1、UNIX系統(tǒng)中進(jìn)程的概念在UNIX系統(tǒng)中,進(jìn)程具有如下特定的含義和特點(diǎn):(1)一個(gè)進(jìn)程是對(duì)一個(gè)程序的執(zhí)行。(2)一個(gè)進(jìn)程的存在意味著系統(tǒng)中存在著一個(gè)相應(yīng)的常駐內(nèi)存的proc結(jié)構(gòu),其中包含著該進(jìn)程的控制信息。(3)對(duì)每一個(gè)進(jìn)程,有一個(gè)被稱為user結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),這個(gè)結(jié)構(gòu)中存放該進(jìn)程的私用控制信息。該結(jié)構(gòu)只有該進(jìn)程運(yùn)行時(shí),才會(huì)調(diào)入內(nèi)存。(4)一個(gè)進(jìn)程可以創(chuàng)建或撤消其子進(jìn)程。(5)進(jìn)程是系統(tǒng)進(jìn)行資源分配的基本單位。上面的描述既反映了進(jìn)程的動(dòng)態(tài)特性,如(1),同時(shí)又反映了進(jìn)程的靜態(tài)特性,如(2)和(3),而從(4)和(5)則可以看出,在UNIX系統(tǒng)中進(jìn)程之間的相互關(guān)系是怎樣的及UNIX系統(tǒng)中不存在作業(yè)的概念的特性。2、進(jìn)程的結(jié)構(gòu)

UNIX系統(tǒng)中,進(jìn)程包含三部分內(nèi)容:進(jìn)程控制塊、程序段以及數(shù)據(jù)段。下面我們分別對(duì)這三部分來進(jìn)行討論。(1)進(jìn)程控制塊PCB

在UNIX系統(tǒng)中,整個(gè)系統(tǒng)的活動(dòng)是以進(jìn)程為基本單位來組織進(jìn)行的。為了管理進(jìn)程的活動(dòng),系統(tǒng)為每個(gè)進(jìn)程設(shè)立了一個(gè)進(jìn)程控制塊(PCB)來記錄各個(gè)進(jìn)程的狀態(tài)以及與進(jìn)程相關(guān)的數(shù)據(jù)。在UNIX系統(tǒng)中,進(jìn)程控制塊也是進(jìn)程是否存在的標(biāo)志。因?yàn)檫M(jìn)程控制塊中包含的信息量很大,所以占用的空間也很大。為了節(jié)省進(jìn)程控制塊所占的內(nèi)存空間,UNIX系統(tǒng)把每個(gè)進(jìn)程的進(jìn)程控制塊分為兩部分:(a)常駐內(nèi)存部分,稱proc結(jié)構(gòu),該結(jié)構(gòu)中包含著進(jìn)程調(diào)度時(shí)必須使用的一些主要信息;(b)非常駐內(nèi)存部分,稱user結(jié)構(gòu),該結(jié)構(gòu)登記了

進(jìn)程運(yùn)行時(shí)才要用到的更多的信息,它可以隨用戶的程序和數(shù)據(jù)在內(nèi)存中換進(jìn)換出。

UNIX系統(tǒng)將所有進(jìn)程的proc結(jié)構(gòu)組織到一起,形成一個(gè)進(jìn)程表,也稱為proc數(shù)組,表中的每一個(gè)proc結(jié)構(gòu)是該數(shù)組的一個(gè)元素,成為該進(jìn)程表的一個(gè)表目。進(jìn)程表中的proc結(jié)構(gòu)數(shù)量是有限制的,在UNIX系統(tǒng)中最多允許有50個(gè)。UNIX系統(tǒng)的proc結(jié)構(gòu)主要包括以下各項(xiàng):(a)進(jìn)程標(biāo)識(shí)符(PID)。它是標(biāo)識(shí)一個(gè)進(jìn)程的標(biāo)識(shí)數(shù);(b)用戶標(biāo)識(shí)符(UID)。標(biāo)識(shí)擁有該進(jìn)程的用戶;(c)進(jìn)程狀態(tài)。記錄該進(jìn)程的當(dāng)前狀態(tài);(d)事件描述符。記錄使進(jìn)程進(jìn)入睡眠狀態(tài)的事件;(e)存儲(chǔ)區(qū)位置和長(zhǎng)度。指出進(jìn)程在內(nèi)存或在外存中的位置及大小。這些信息在進(jìn)程換進(jìn)換出以及狀態(tài)轉(zhuǎn)換時(shí)用到;(f)軟中斷信號(hào)。記錄其他進(jìn)程發(fā)來的軟中斷信號(hào);(g)計(jì)時(shí)域。給出進(jìn)程的執(zhí)行時(shí)間和對(duì)資源的利用情況;(h)進(jìn)程的大小。進(jìn)程的大小是內(nèi)核為進(jìn)程分配存儲(chǔ)空間的依據(jù);(i)調(diào)度參數(shù),包括優(yōu)先數(shù)等。核心用它們決定進(jìn)程轉(zhuǎn)換到核心態(tài)和用戶態(tài)的次序以及占有處理機(jī)的次序。user結(jié)構(gòu)主要包括以下各項(xiàng):(a)指向proc結(jié)構(gòu)的指針。標(biāo)識(shí)出對(duì)應(yīng)于該user結(jié)構(gòu)的proc結(jié)構(gòu);(b)真正用戶標(biāo)識(shí)符(realuserID)。它是超級(jí)用戶分配給用戶的標(biāo)識(shí)符,以后每次用戶登錄進(jìn)入系統(tǒng)時(shí),均需送入此標(biāo)識(shí)符;(c)有效用戶標(biāo)識(shí)符(effectiveuserID)。一般情況下,它與真正用戶標(biāo)識(shí)符相同,但在其它用戶允許的情況下,可用系統(tǒng)調(diào)用setuid將它改變?yōu)槠渌脩魳?biāo)識(shí)符,以獲得對(duì)該用戶的文件進(jìn)行操作的權(quán)力;(d)用戶文件描述符表。記錄了該進(jìn)程已打開的所有文件;(e)當(dāng)前目錄和當(dāng)前根。給出進(jìn)程的文件系統(tǒng)環(huán)境;(f)計(jì)時(shí)器。記錄進(jìn)程及其子進(jìn)程在用戶態(tài)和核心態(tài)運(yùn)行的時(shí)間;(g)內(nèi)部I/O參數(shù)。給出要傳輸?shù)臄?shù)據(jù)量、源數(shù)據(jù)或目標(biāo)數(shù)據(jù)的地址、文件的輸入、輸出偏移量;(h)限制值。對(duì)進(jìn)程的大小及其能“寫”的文件大小的限制;(i)系統(tǒng)調(diào)用信息。記錄當(dāng)前系統(tǒng)調(diào)用的參數(shù)、結(jié)果、返回值以及錯(cuò)誤碼等。(2)數(shù)據(jù)段它分為三部分:進(jìn)程數(shù)據(jù)區(qū)(PPDA)、用戶的程序和數(shù)據(jù)區(qū)、用戶棧區(qū)。其中,底部為進(jìn)程數(shù)據(jù)區(qū),共1024個(gè)字節(jié)。進(jìn)程數(shù)據(jù)區(qū)又分為兩部分:最底部的289個(gè)字節(jié)是進(jìn)程控制塊的一部分USER結(jié)構(gòu),它含有進(jìn)程的更多的信息;另一部分是該進(jìn)程的系統(tǒng)棧,自頂向下擴(kuò)展。進(jìn)程數(shù)據(jù)區(qū)是屬于進(jìn)程的核心空間的一部分,因此進(jìn)程的用戶程序部分不能訪問這一部分,只有該進(jìn)程的系統(tǒng)程序部分才能訪問進(jìn)程數(shù)據(jù)部分。數(shù)據(jù)段的頂部是用戶棧區(qū),物理上是從頂向下擴(kuò)展。數(shù)據(jù)段的中間部分是可讀寫的用戶的程序和數(shù)據(jù)區(qū)。圖

7-4-1進(jìn)程數(shù)據(jù)段結(jié)構(gòu)(3)正文段正文段包括該進(jìn)程所執(zhí)行的所有可共享的、可再入的純代碼和常數(shù)。一個(gè)進(jìn)程的正文段也可以不存在。

UNIX系統(tǒng)為了方便管理,將系統(tǒng)中所有這些只讀的可共享的正文段組織在一個(gè)正文表中,在內(nèi)存中的所有正文段均在這個(gè)正文表中有一個(gè)對(duì)應(yīng)表目。該表目中包含有該正文段在內(nèi)存和磁盤上的地址,該段大小和使用此段的進(jìn)程數(shù)目等信息。該正文表又叫TEXT數(shù)組。UNIX系統(tǒng)中最多允許在內(nèi)存中同時(shí)存放40個(gè)正文段,也就是說TEXT數(shù)組的元素最多為40個(gè)。整個(gè)系統(tǒng)中的進(jìn)程控制如圖7-4-2所示。圖

7-4-2進(jìn)程的組成

在UNIX系統(tǒng)中,每個(gè)進(jìn)程都包括兩部分:系統(tǒng)程序部分和用戶程序部分。當(dāng)進(jìn)程在用戶模式下運(yùn)行時(shí),執(zhí)行的是用戶程序。此時(shí)若發(fā)生中斷或陷阱,則轉(zhuǎn)入核心模式,執(zhí)行系統(tǒng)核心程序。值得注意的是,UNIX系統(tǒng)核心的所有程序都是作為進(jìn)程的一部分來運(yùn)行,它們被包括在每個(gè)進(jìn)程的虛地址空間中。有時(shí),我們把進(jìn)程的用戶程序部分叫做用戶進(jìn)程,而把核心程序部分叫做系統(tǒng)進(jìn)程。在UNIX系統(tǒng)的一個(gè)進(jìn)程中,無論是用戶進(jìn)程還是系統(tǒng)進(jìn)程,都是進(jìn)程的一部分,它們擁有同一個(gè)進(jìn)程控制塊,只不過這兩個(gè)進(jìn)程所執(zhí)行的程序不同,映射的物理地址空間不同,使用的堆棧不同而已。7.4.2進(jìn)程控制UNIX系統(tǒng)中進(jìn)程控制子系統(tǒng)主要負(fù)責(zé)進(jìn)程同步、進(jìn)程間通信、存儲(chǔ)管理及進(jìn)程調(diào)度。下面我們分別做一下簡(jiǎn)單介紹。1.進(jìn)程控制

UNIX系統(tǒng)中,用戶可以通過一些系統(tǒng)調(diào)用對(duì)進(jìn)程進(jìn)行控制。對(duì)應(yīng)進(jìn)程的創(chuàng)建、執(zhí)行和自我終止,UNIX系統(tǒng)提供了相應(yīng)的系統(tǒng)調(diào)用fork()、exec()和exit(),以便在用戶級(jí)上實(shí)現(xiàn)上述功能。(1)進(jìn)程的創(chuàng)建在UNIX系統(tǒng)中,除了0#進(jìn)程是在系統(tǒng)引導(dǎo)時(shí)被創(chuàng)建外,其他進(jìn)程都是由父進(jìn)程通過調(diào)用系統(tǒng)原語(yǔ)fork來創(chuàng)建的。該原語(yǔ)為新建立進(jìn)程分配一個(gè)proc表目并賦予一個(gè)唯一的進(jìn)程標(biāo)識(shí)符pid,此外,內(nèi)核還將

proc表目初始化。在UNIX中子進(jìn)程共享父進(jìn)程的所有打開文件和當(dāng)前目錄,但并不共享父進(jìn)程的內(nèi)存。所以初始化的主要工作是復(fù)制父進(jìn)程的proc表目中的某些項(xiàng)目以共享其打開的文件,復(fù)制正文段和當(dāng)前目錄表的表目(i節(jié)點(diǎn)),為子進(jìn)程申請(qǐng)內(nèi)存并把父進(jìn)程所有可寫的數(shù)據(jù)段部分復(fù)制到內(nèi)存中去。(2)進(jìn)程的執(zhí)行子進(jìn)程被建立后繼承了父進(jìn)程的正文段和數(shù)據(jù)段,這就限制了子進(jìn)程可以執(zhí)行的程序規(guī)模。為了擴(kuò)充子進(jìn)程的執(zhí)行能力,使它可以執(zhí)行不屬于父進(jìn)程的正文段和數(shù)據(jù)段,UNIX系統(tǒng)提供了一個(gè)系統(tǒng)調(diào)用原語(yǔ)exec來執(zhí)行一個(gè)新的文件。這使得該進(jìn)程以在此文件中指出的新的正文段和數(shù)據(jù)段來調(diào)換當(dāng)前的正文段和數(shù)據(jù)段。這個(gè)操作僅改變進(jìn)程執(zhí)行的程序,而并不改變進(jìn)程的標(biāo)識(shí)符,它在進(jìn)程樹中的位置也未變。(3)進(jìn)程的終止在UNIX系統(tǒng)中,一般的用戶進(jìn)程在完成其任務(wù)后應(yīng)盡快予以撤消,以便及時(shí)收回其占用的資源。為了及時(shí)回收資源并減少父進(jìn)程的干預(yù),UNIX系統(tǒng)通過系統(tǒng)調(diào)用原語(yǔ)exit來實(shí)現(xiàn)自己的終結(jié)。進(jìn)程被終止時(shí),關(guān)閉所有文件,將當(dāng)前目錄項(xiàng)的訪問計(jì)數(shù)減1,釋放正文段。將進(jìn)程數(shù)據(jù)ppda寫入盤對(duì)換區(qū),釋放數(shù)據(jù)段空間,喚醒父進(jìn)程和1進(jìn)程,最后,自我終止進(jìn)程放棄處理機(jī),內(nèi)核再調(diào)度另一進(jìn)程執(zhí)行。2.進(jìn)程的同步和通信

UNIX中對(duì)可寫的公用變量通常只允許系統(tǒng)進(jìn)程訪問。那么這些系統(tǒng)進(jìn)程間如何實(shí)現(xiàn)臨界段互斥執(zhí)行呢。其主要的方法是:(1)UNIX的調(diào)度策略規(guī)定在系統(tǒng)進(jìn)程執(zhí)行期間發(fā)生中斷或陷阱時(shí),不進(jìn)行進(jìn)程的轉(zhuǎn)換調(diào)度。只有在用戶程序執(zhí)行過程中被中斷或陷阱、并且在處理中斷后返回時(shí),才可以進(jìn)行進(jìn)程的調(diào)度以重新分配處理機(jī)。所以在系統(tǒng)進(jìn)程執(zhí)行期間不會(huì)有別的進(jìn)程操作插入。(2)提高臨界段等代碼段的處理機(jī)中斷優(yōu)先級(jí)以屏蔽某些類別的中斷,用來防止在系統(tǒng)進(jìn)程中插入中斷和陷阱處理程序時(shí),可能改變進(jìn)程的狀態(tài)或修改公共數(shù)據(jù)等情況。系統(tǒng)進(jìn)程還可利用系統(tǒng)調(diào)用sleep和wakeup原語(yǔ)實(shí)現(xiàn)進(jìn)程間同步。sleep原語(yǔ)使調(diào)用者進(jìn)程以指定的原因和優(yōu)先數(shù)睡眠(阻塞),而wakeup原語(yǔ)則喚醒在指定原因上睡眠的所有進(jìn)程。這兩個(gè)原語(yǔ),用戶進(jìn)程是不能使用的,但用戶進(jìn)程之間可以利用核心程序提供的軟中斷信號(hào)機(jī)制來實(shí)現(xiàn)少量信息的傳輸和同步。它是某一個(gè)進(jìn)程向另一個(gè)與之相關(guān)的進(jìn)程發(fā)送一個(gè)

0~19之間的數(shù)(放在接收進(jìn)程的proc結(jié)構(gòu)p-sig中)。接收者進(jìn)程在退出陷阱處理程序、時(shí)鐘中斷程序,和sleep原語(yǔ)時(shí)均要檢查是否收到某個(gè)軟中斷信號(hào),如已收到,則執(zhí)行預(yù)先規(guī)定好的程序。UNIX系統(tǒng)的進(jìn)程通信功能是很弱的,為了滿足協(xié)同進(jìn)程間的通信需要而設(shè)置了這一最簡(jiǎn)單的通信功能。4.進(jìn)程調(diào)度與存儲(chǔ)管理在UNIX系統(tǒng)中進(jìn)程調(diào)度的功能是由一個(gè)專門的進(jìn)程—0#進(jìn)程來負(fù)責(zé)的,由于UNIX系統(tǒng)的進(jìn)程調(diào)度的主要功能是響應(yīng)分時(shí)用戶,所以0#進(jìn)程包括兩部分任務(wù):(1)把進(jìn)程的映象從內(nèi)存換出到磁盤;(2)分配處理機(jī)。UNIX系統(tǒng)的進(jìn)程調(diào)度是按照其優(yōu)先級(jí)的高低進(jìn)行調(diào)度的,每次調(diào)度擁有最高優(yōu)先級(jí)的進(jìn)程去占有處理機(jī)。每一個(gè)進(jìn)程從它被創(chuàng)建時(shí)起,就擁有了一個(gè)隨時(shí)間動(dòng)態(tài)變化的優(yōu)先級(jí)。系統(tǒng)進(jìn)程的優(yōu)先級(jí)高于用戶進(jìn)程的優(yōu)先級(jí),其最初的優(yōu)先級(jí)取決于進(jìn)程所等待的事件,事件優(yōu)先級(jí)的排列次序?yàn)椋捍疟P事件,終端事件,時(shí)鐘事件和用戶進(jìn)程事件。用戶進(jìn)程的優(yōu)先級(jí)是基于其所使用了的處理機(jī)時(shí)間的多少而動(dòng)態(tài)地變化,使用處理機(jī)時(shí)間越長(zhǎng),優(yōu)先級(jí)越低。優(yōu)先級(jí)高的進(jìn)程優(yōu)先得到處理機(jī)。UNIX每秒為每個(gè)用戶進(jìn)程計(jì)算一次優(yōu)先級(jí),優(yōu)先數(shù)愈小,優(yōu)先級(jí)愈高。在分時(shí)系統(tǒng)中,各交互進(jìn)程需要經(jīng)常在內(nèi)存和磁盤之間進(jìn)行交換。實(shí)際上,任何一個(gè)待執(zhí)行的進(jìn)程,如果它不能在內(nèi)存中占據(jù)必需的容量,它是不能被執(zhí)行的。然而,內(nèi)存是一種有限卻很昂貴的資源,它不可能容納系統(tǒng)中所有活動(dòng)的進(jìn)程。為使內(nèi)存的緊張狀況得到緩解,UNIX系統(tǒng)采用一種交換策略。一個(gè)在內(nèi)存中非運(yùn)行狀態(tài)的進(jìn)程,其進(jìn)程的映象將被從內(nèi)存中換出而存入磁盤的對(duì)換區(qū)中。而一個(gè)被選中運(yùn)行的磁盤上的就緒進(jìn)程,其映象可以被換入內(nèi)存。在這兩種情況下,均有內(nèi)存或磁盤空間的分配和釋放問題。在UNIX中內(nèi)存的磁盤空間的分配和釋放模塊是相同的,所使用的分配算法是最先適應(yīng)法。一個(gè)進(jìn)程在運(yùn)行過程中如果要求增加分給它的的內(nèi)存塊數(shù)時(shí),系統(tǒng)就重新分給它一塊足夠大的內(nèi)存空間,并把舊的內(nèi)存區(qū)中的內(nèi)容復(fù)制到新分給的內(nèi)存區(qū)中同時(shí)釋放舊的內(nèi)存區(qū)。如果進(jìn)程要求增加內(nèi)存空間而系統(tǒng)不能滿足其要求時(shí),就將該進(jìn)程換出內(nèi)存而放入磁盤對(duì)換區(qū)中,直到以后有足夠內(nèi)存時(shí)才將它重新?lián)Q入內(nèi)存。所有進(jìn)程的對(duì)換工作全是由0#進(jìn)程負(fù)責(zé),其對(duì)換過程是這樣的:當(dāng)0#進(jìn)程決定要從磁盤上換入進(jìn)程時(shí),它首先掃描系統(tǒng)的proc結(jié)構(gòu)表,以找出不在內(nèi)存但在磁盤上駐留時(shí)間最長(zhǎng)的就緒進(jìn)程并將其換入內(nèi)存。如果內(nèi)存不夠,0#進(jìn)程要從進(jìn)程表中查找在內(nèi)存駐留時(shí)間最長(zhǎng),并正等待慢速事件的那些進(jìn)程(像輸入輸出之類),將它們換出以騰出更多的內(nèi)存空間。進(jìn)程被換入內(nèi)存后,就同內(nèi)存中的進(jìn)程一起爭(zhēng)奪對(duì)CPU的控制權(quán)。在UNIX系統(tǒng)V中,除具有交換功能外,還支持請(qǐng)求調(diào)頁(yè)的存儲(chǔ)管理策略,在這種方式下,一個(gè)進(jìn)程只須將其一部分(頁(yè)或段)調(diào)入內(nèi)存便可運(yùn)行。這里我們不再討論。7.5設(shè)備管理

設(shè)備管理的主要任務(wù)是管理除CPU和內(nèi)存之外的所有輸入、輸出設(shè)備。UNIX系統(tǒng)將設(shè)備分為兩類:(1)塊設(shè)備。指以數(shù)據(jù)塊為單位,來組織和傳送的數(shù)據(jù)的設(shè)備,如磁盤、磁帶等;(2)字符設(shè)備。指以單個(gè)字符為單位來傳送信息的設(shè)備,如終端、打印機(jī)等。通過前面的學(xué)習(xí)我們知道,CPU和I/O設(shè)備之間存在速度不匹配的問題。在UNIX系統(tǒng)中是如何處理這個(gè)問題的呢?UNIX系統(tǒng)在文件系統(tǒng)塊設(shè)備驅(qū)動(dòng)程序之間,設(shè)置了大量的數(shù)據(jù)緩沖區(qū),這些緩沖區(qū)形成一個(gè)緩沖池,塊設(shè)備驅(qū)動(dòng)程序只與緩沖池交換數(shù)據(jù)。而且UNIX還采用“提前讀”、“延遲寫”的技術(shù)。即在可能的情況下把用戶即將使用的文件內(nèi)容提前讀到緩沖區(qū);將用戶寫入文件的內(nèi)容暫放在緩沖區(qū),等到有了相當(dāng)數(shù)量(或緩沖池空間緊張)時(shí)再寫回磁盤。這樣,不必出現(xiàn)用戶每次使用文件(讀/寫)一定導(dǎo)致啟動(dòng)磁盤的現(xiàn)象,從而提高效率;而且還可以將塊設(shè)備作為字符設(shè)備來使用,方便用戶。同理,在鍵盤、顯示器和打印機(jī)等字符設(shè)備與內(nèi)存之間也存在存取速度的不平衡,UNIX系統(tǒng)也設(shè)置了字符緩沖區(qū)以減少這種存取速度的不平衡。7.6管道pipe

UNIX系統(tǒng)最重要的貢獻(xiàn)之一是提出了關(guān)于pipe(管道)的概念,它的定義在前面我們已經(jīng)介紹過了。UNIX系統(tǒng)通過系統(tǒng)調(diào)用pipe()來創(chuàng)建管道文件。在核心創(chuàng)建管道時(shí),系統(tǒng)必須為它分配一對(duì)文件描述符、一對(duì)文件表項(xiàng)以及一個(gè)索引節(jié)點(diǎn)。如果創(chuàng)建成功,它返回兩個(gè)文件描述符:fildes[0]和fildes[1],分別對(duì)應(yīng)于管道的入口和出口。于是,寫入進(jìn)程A可用fildes[0]進(jìn)行寫,讀出進(jìn)程B可用fildes[1]進(jìn)行讀,因?yàn)閜ipe文件一次存放量不多于4096個(gè)字節(jié),因此利用管道一次最多可傳送4096個(gè)字節(jié)。但兩進(jìn)程對(duì)pipe文件的訪問必須是互斥的。UNIX為此設(shè)置了一個(gè)管道封鎖標(biāo)志,其作用類似于以P,V操作實(shí)現(xiàn)互斥的功能。圖7-6-1給出了管道工作原理。每當(dāng)進(jìn)程訪問pipe文件前,先檢查一下該索引節(jié)點(diǎn)是否已經(jīng)上鎖。若已經(jīng)上鎖,則進(jìn)程便睡眠等待,否則它將索引節(jié)點(diǎn)上鎖,然后進(jìn)行讀或?qū)懖僮?。另外,因?yàn)閜ipe文件一次存放量不多于4096個(gè)字節(jié),所以寫進(jìn)程只能超前讀進(jìn)程最多為4096個(gè)字節(jié)。若超前多于4096個(gè)字節(jié),系統(tǒng)會(huì)對(duì)索引節(jié)點(diǎn)作出標(biāo)志,讓寫進(jìn)程等待;而當(dāng)pipe文件讀空,系統(tǒng)也會(huì)讓讀進(jìn)程等待;若整個(gè)pipe文件傳輸量大于4096個(gè)字節(jié),則分批傳送。pipe機(jī)構(gòu)中的這些互斥、同步、緩沖區(qū)管理完全由系統(tǒng)自動(dòng)進(jìn)行,用戶沒有必要考慮。圖

7-6-1管道工作原理

7.7系統(tǒng)調(diào)用

系統(tǒng)調(diào)用的主要目的是使得用戶可以使用操作系統(tǒng)提供的有關(guān)設(shè)備管理、輸入輸出系統(tǒng)、文件系統(tǒng)和進(jìn)程控制、通信以及存儲(chǔ)管理等方面的功能,而不必了解系統(tǒng)程序的內(nèi)部結(jié)構(gòu)和有關(guān)硬件細(xì)節(jié),從而起到減輕用戶負(fù)擔(dān)和保護(hù)系統(tǒng)以提高資源利用率的作用。UNIX系統(tǒng)的系統(tǒng)調(diào)用以標(biāo)準(zhǔn)實(shí)用子程序的形式提供給用戶在編程中使用,從而減少用戶程序設(shè)計(jì)和編程難度,節(jié)省用戶的程序設(shè)計(jì)和編程時(shí)間。UNIX系統(tǒng)的系統(tǒng)調(diào)用大致分為以下幾類:(1)與進(jìn)程管理有關(guān)的系統(tǒng)調(diào)用,如創(chuàng)建進(jìn)程的調(diào)用fork、進(jìn)程自我終止用的exit、將調(diào)用進(jìn)程掛起的wait等等。(2)與文件管理有關(guān)的系統(tǒng)調(diào)用,主要包括文件的打開open、關(guān)閉close、讀read、寫write、創(chuàng)建creat和刪除unlink等。(3)與設(shè)備管理有關(guān)的系統(tǒng)調(diào)用,如系統(tǒng)調(diào)用read,write可用來對(duì)執(zhí)行設(shè)備進(jìn)行讀寫,系統(tǒng)調(diào)用open和close可用來打開和關(guān)閉某一指定設(shè)備等。(4)與存儲(chǔ)管理有關(guān)的系統(tǒng)調(diào)用,如獲取現(xiàn)有內(nèi)存空間大小的調(diào)用、改變堆棧大小的系統(tǒng)調(diào)用等。(5)其它的一些系統(tǒng)調(diào)用。在UNIX系統(tǒng)中,用戶程序(進(jìn)程的用戶態(tài)或用戶進(jìn)程)與系統(tǒng)程序(該進(jìn)程的核心態(tài)或系統(tǒng)進(jìn)程)間的唯一通路是陷阱指令trap。該指令是一條機(jī)器硬指令,其操作數(shù)部分對(duì)應(yīng)于系統(tǒng)調(diào)用的編號(hào)。另外,在系統(tǒng)中有一張系統(tǒng)調(diào)用入口表,用來指示各系統(tǒng)調(diào)用處理程序的入口地址,從而,只要把系統(tǒng)調(diào)用的編號(hào)與系統(tǒng)調(diào)用入口表中處理程序的入口地址對(duì)應(yīng)起來,系統(tǒng)就能夠在用戶使用系統(tǒng)調(diào)用之后,通過陷阱指令找到并執(zhí)行有關(guān)的處理程序以完成系統(tǒng)調(diào)用的功能,使用戶獲得所要求的系統(tǒng)服務(wù)。7.8SHELL語(yǔ)言簡(jiǎn)介

SHELL是UNIX操作系統(tǒng)的命令語(yǔ)言,同時(shí)又是該命令語(yǔ)言的解釋程序的簡(jiǎn)稱。SHELL作為語(yǔ)言來說,它既是終端上的用戶與UNIX操作系統(tǒng)會(huì)話的語(yǔ)言,又可作為程序設(shè)計(jì)的語(yǔ)言,所以SHELL是用戶與系統(tǒng)之間的接口,而且是一種比較高級(jí)、易被用戶理解和使用的程序設(shè)計(jì)語(yǔ)言,它為用戶提供了使用方便、功能強(qiáng)、又容易擴(kuò)充的程序設(shè)計(jì)環(huán)境。1.SHELL的一般用法(1)一般命令一般命令是由一個(gè)命令名和用空格分隔的多個(gè)參數(shù)名所組成(參數(shù)名可為空)。例如用戶打入如下命令pwp該命令就顯示出該用戶的當(dāng)前目錄的路徑名(由根目錄開始的完整路徑名)。又如

ls-1ls是命令名,它打印當(dāng)前目錄中的所有文件名。-1是參數(shù),它要求該命令不但要打印當(dāng)前目錄中的文件名,而且還要給出每個(gè)文件的存取控制、聯(lián)接數(shù)、文件主、文件大小和生成日期。系統(tǒng)提供的簡(jiǎn)單命令有100多條,下面只給出最常用的幾條:login向系統(tǒng)注冊(cè)命令ed文本編輯命令cc調(diào)用C編譯程序編譯文件cal顯示日歷date顯示并設(shè)置日期cp復(fù)制文件cate連接并顯示文件ls列出當(dāng)前目錄內(nèi)容pr打印文件ps顯示進(jìn)程狀態(tài)mail在用戶之間發(fā)送或接收信件mkdir構(gòu)造一個(gè)文件目錄cd改變工作目錄rm刪除文件mv換文件名或移動(dòng)文件(2)后臺(tái)命令用交互方式使用簡(jiǎn)單命令,用戶必須等待前一命令執(zhí)行結(jié)束在終端上出現(xiàn)提示符$之后,才能打入下一命令。為了提高系統(tǒng)和用戶的工作效率,可以讓那些執(zhí)行時(shí)間較長(zhǎng)而且執(zhí)行過程中不一定需要與用戶進(jìn)行交互作用的命令,放在后臺(tái)執(zhí)行。此時(shí)只要在該命令后加一個(gè)后臺(tái)命令運(yùn)算符“&”,Shell解釋程序就不再等待執(zhí)行此命令的子進(jìn)程結(jié)束,便可開始處理下一條命令。例如:ls>dir;edp1ls>dir&edp1

這兩組命令中,前一組是將當(dāng)前目錄中的內(nèi)容放到“dir”文件中后,才能開始編輯文件p1,而后一組則是將前一個(gè)任務(wù)轉(zhuǎn)為后臺(tái)運(yùn)行,而前臺(tái)可同時(shí)進(jìn)行編輯文件p1的工作(3)輸入輸出重新定向

UNIX的標(biāo)準(zhǔn)輸入設(shè)備和輸出設(shè)備分別是終端設(shè)備鍵盤和顯示器,所以除非由用戶作了改變,否則標(biāo)準(zhǔn)輸入來自鍵盤,而標(biāo)準(zhǔn)輸出則是送到顯示器。但用戶可以指定文件或其他設(shè)備作為Shell的輸入、輸出設(shè)備,這就是輸入輸出重新定向的功能。此功能允許用戶指定一個(gè)文件代替輸入或輸出設(shè)備,并用符號(hào)“<”、“《”、“>”、“》”分別來表示輸入和輸出的重新定向。例如ls命令是在終端屏幕上列出當(dāng)前目錄的內(nèi)容,而命令

ls>file則是輸出重定向,當(dāng)前目錄的內(nèi)容不再列到顯示器上而是列入到file中。若file文件不存在,則建立此文件,否則將新內(nèi)容取代舊內(nèi)容。而命令:

ls>>file也是輸出重定向,只不過是將輸出內(nèi)容附加到file的末尾。標(biāo)準(zhǔn)輸入也可以重定向。例如:

wc<filewc命令的功能是將標(biāo)準(zhǔn)輸入文件包含的行數(shù)、字?jǐn)?shù)送向標(biāo)準(zhǔn)輸出,即在終端屏幕上顯示出剛剛敲進(jìn)的文件的行數(shù)和字?jǐn)?shù)?,F(xiàn)在使用了標(biāo)準(zhǔn)輸入轉(zhuǎn)向符“<”,wc命令是將指定的文件file中的行數(shù)、字?jǐn)?shù)顯示出來了。(4)管道命令管道的概念前面我們已經(jīng)介紹過,它是UNIX系統(tǒng)為兩個(gè)進(jìn)程之間的信息傳送提供的一種簡(jiǎn)單、方便的工具。用戶使用管道功能,除了在程序級(jí)可使用pipe系統(tǒng)調(diào)用外,還可以在作業(yè)控制級(jí)直接使用Shell的管道命令,只要在兩個(gè)命令之間加上管道符“|”即可。例如:

catfile1file2|wc

此命令把file1,file2連接后產(chǎn)生的文件作為wc命令的輸入,即在屏幕上顯示出file1和file2連接之后的總行數(shù)和總字?jǐn)?shù)。

Shell除了上述命令之外,還可以構(gòu)成組合命令,支持“?”、“*”、“[…]”等文件名參數(shù)的匹配方式以及特殊字符的轉(zhuǎn)義等。2.Shell過程Shell除了提供交互的命令方式外,還可用另一種方式使用它,即命令文件的方式。我們可以像使用程序設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論