計(jì)算機(jī)操作系統(tǒng)第三版第7章_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)第三版第7章_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)第三版第7章_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)第三版第7章_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)第三版第7章_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第七章 操作系統(tǒng)接口 7.1 7.1 聯(lián)機(jī)命令接口聯(lián)機(jī)命令接口 7.2 Shell7.2 Shell命令語(yǔ)言命令語(yǔ)言 7.3 7.3 系統(tǒng)調(diào)用系統(tǒng)調(diào)用 7.4 UNIX7.4 UNIX系統(tǒng)調(diào)用系統(tǒng)調(diào)用 7.5 7.5 圖形用戶接口圖形用戶接口 第七章第七章 操作系統(tǒng)接口操作系統(tǒng)接口 第七章 操作系統(tǒng)接口 7.1 聯(lián)機(jī)命令接口聯(lián)機(jī)命令接口 7.1.1 聯(lián)機(jī)命令的類型聯(lián)機(jī)命令的類型 為了能向用戶提供多方面的服務(wù),通常,OS都向用戶提供了幾十條甚至上百條的聯(lián)機(jī)命令。根據(jù)這些命令所完成功能的不同,可把它們分成以下幾類: 系統(tǒng)訪問類; 磁盤操作類; 文件操作類; 目錄操作類; 通信類; 其他命令。 第七

2、章 操作系統(tǒng)接口 1. 系統(tǒng)訪問類系統(tǒng)訪問類 在單用戶微型機(jī)中,一般沒有設(shè)置系統(tǒng)訪問命令; 然而在多用戶系統(tǒng)中,為了保證系統(tǒng)的安全性,都毫無例外地設(shè)置了系統(tǒng)訪問命令, 即注冊(cè)命令Login。 用戶在每次開始使用某終端時(shí),都須使用該命令,使系統(tǒng)能識(shí)別該用戶。凡要在多用戶系統(tǒng)的終端上上機(jī)的用戶,都必須先在系統(tǒng)管理員處獲得一合法的注冊(cè)名和口令。以后,每當(dāng)用戶在接通其所用終端的電源后,便由系統(tǒng)直接調(diào)用并在屏幕上顯示出以下的注冊(cè)命令: Login: /提示用戶鍵入自己的注冊(cè)名 當(dāng)用戶鍵入正確的注冊(cè)名,并按下回車鍵后,屏幕上又會(huì)出現(xiàn): Password: /提示用戶鍵入自己的口令第七章 操作系統(tǒng)接口 2.

3、 鍵盤操作命令鍵盤操作命令 (1) 磁盤格式化命令Format。 它被用于對(duì)指定驅(qū)動(dòng)器上的軟盤進(jìn)行格式化。 每張新盤在使用前都必須先格式化。 其目的是使其記錄格式能為操作系統(tǒng)所接受,可見,不同操作系統(tǒng)將磁盤初始化后的格式各異。此外,在格式化過程中,還將對(duì)有缺陷的磁道和扇區(qū)加保留記號(hào),以防止將它分配給數(shù)據(jù)文件。 第七章 操作系統(tǒng)接口 (2) 復(fù)制整個(gè)軟盤命令Diskcopy。 該命令用于復(fù)制整個(gè)磁盤,另外它還有附加的格式化功能。 如果目標(biāo)盤片是尚未格式化的,則該命令在執(zhí)行時(shí), 首先將未格式化的軟盤格式化,然后再進(jìn)行復(fù)制。 (3) 軟盤比較命令Diskcomp。 該命令用于將源盤與目標(biāo)盤的各磁道及

4、各扇區(qū)中的數(shù)據(jù)逐一進(jìn)行比較。 (4) 備份命令Backup。 該命令用于把硬盤上的文件復(fù)制到軟盤上;而RESTORE命令則完成相反的操作。 第七章 操作系統(tǒng)接口 3. 文件操作命令文件操作命令 (1) 顯示文件命令type。用于將指定文件顯示在屏幕上。 (2) 拷貝文件命令copy。 用于實(shí)現(xiàn)文件的拷貝。 (3) 文件比較命令comp。該命令用于對(duì)兩個(gè)指定文件進(jìn)行比較。 兩文件可以在同一個(gè)或不同的驅(qū)動(dòng)器上。 (4) 重新命名命令Rename。該命令用于將以第一參數(shù)命名的文件, 改成用第二參數(shù)給定的名字。 (5) 刪除文件命令erase。該命令用于刪除一個(gè)或一組文件,當(dāng)參數(shù)路徑名為*.BAK時(shí),

5、表示刪除指定目錄下的所有其擴(kuò)展名為.Bak的文件。 第七章 操作系統(tǒng)接口 4. 目錄操作命令目錄操作命令 (1) 建立子目錄命令mkdir。 用于建立指定名字的新目錄。 (2) 顯示目錄命令dir。顯示指定磁盤中的目錄項(xiàng)。 (3) 刪除子目錄命令rmdir。該命令用于刪除指定的子目錄文件,但不能刪除普通文件,而且,一次只能刪除一個(gè)空目錄(其中僅含“.”和“.”兩個(gè)文件),不能刪除根及當(dāng)前目錄。 (4) 顯示目錄結(jié)構(gòu)命令tree。該命令用于顯示指定盤上的所有目錄路徑及其層次關(guān)系。 (5) 改變當(dāng)前目錄命令chdir。該命令用于將當(dāng)前目錄改變?yōu)橛陕窂矫麉?shù)給定的目錄。用“.”作參數(shù)時(shí),表示應(yīng)返回到

6、上一級(jí)目錄下。 第七章 操作系統(tǒng)接口 5. 其它命令其它命令 (1) 輸入輸出重定向命令。 在有的OS中定義了兩個(gè)標(biāo)準(zhǔn)I/O設(shè)備。通常,命令的輸入取自標(biāo)準(zhǔn)輸入設(shè)備,即鍵盤;而命令的輸出通常是送往標(biāo)準(zhǔn)輸出設(shè)備, 即顯示終端。 如果在命令中設(shè)置輸出重定向“”符,其后接文件名或設(shè)備名, 表示將命令的輸出改向, 送到指定文件或設(shè)備上。類似地,若在命令中設(shè)置輸入重定向“”符, 則不再是從鍵盤而是從重定向符左邊參數(shù)所指定的文件或設(shè)備上,取得輸入信息。 第七章 操作系統(tǒng)接口 (2) 管道連接。 這是指把第一條命令的輸出信息作為第二條命令的輸入信息;類似地,又可把第二條命令的輸出信息作為第三條命令的輸入信息。

7、這樣,由兩個(gè)(含兩條)以上的命令可形成一條管道。在MS-DOS和UNIX中,都用“|”作為管道符號(hào)。其一般格式為: Command1 |Command2| | Commandn; 第七章 操作系統(tǒng)接口 (3) 過濾命令。 在UNIX及MS-DOS中,都有過濾命令,用于讀取指定文件或標(biāo)準(zhǔn)輸入,從中找出由參數(shù)指定的模式,然后把所有包含該模式的行都打印出來。 例如, MS-DOS中用命令 find/N“erase”(路徑名)可對(duì)由路徑名指定的輸入文件逐行檢索,把含有字符串“erase”的行輸出。其中, /N是選擇開關(guān),表示輸出含有指定字串的行;如果不用N而用C, 則表示只輸出含有指定字串的行數(shù);若用

8、V, 則表示輸出不含指定字串的行。 第七章 操作系統(tǒng)接口 (4) 批命令。 為了能連續(xù)地使用多條鍵盤命令,或多次反復(fù)地執(zhí)行指定的若干條命令, 而又免去每次重敲這些命令的麻煩,可以提供一特定文件。在MS-DOS中提供了一種特殊文件,其后綴名用“.BAT”;在UNIX系統(tǒng)中稱為命令文件。它們都是利用一些鍵盤命令構(gòu)成一個(gè)程序,一次建立供多次使用。 在MS-DOS中用batch命令去執(zhí)行由指定或默認(rèn)驅(qū)動(dòng)器的工作目錄上指定文件中所包含的一些命令。 第七章 操作系統(tǒng)接口 7.1.2 鍵盤終端處理程序鍵盤終端處理程序 為了實(shí)現(xiàn)人機(jī)交互,還須在微機(jī)或終端上配置相應(yīng)的鍵盤終端處理程序,它應(yīng)具有下述幾方面的功能:

9、 (1) 接收用戶從終端上打入的字符。 (2) 字符緩沖, 用于暫存所接收的字符。 (3) 回送顯示。 (4) 屏幕編輯。 (5) 特殊字符處理。 第七章 操作系統(tǒng)接口 1. 字符接收功能字符接收功能 為了實(shí)現(xiàn)人機(jī)交互,鍵盤終端處理程序必須能夠接收從終端輸入的字符,并將之傳送給用戶程序。有兩種方式來實(shí)現(xiàn)字符接收功能: (1) 面向字符方式。面向字符方式。驅(qū)動(dòng)程序只接收從終端打入的字符, 并且不加修改地將它傳送給用戶程序。這通常是一串未加工的ASCII碼。第七章 操作系統(tǒng)接口 (2) 面向行方式。面向行方式。 終端處理程序?qū)⑺邮盏淖址麜捍嬖谛芯彌_中, 并可對(duì)行內(nèi)字符進(jìn)行編輯。僅在收到行結(jié)束符后

10、, 才將一行正確的信息送命令解釋程序。在有的計(jì)算機(jī)中,從鍵盤硬件送出的是鍵的編碼(簡(jiǎn)稱鍵碼),而不是ASCII碼。例如,當(dāng)打入a鍵時(shí),是將鍵碼“30”放入I/O寄存器,此時(shí),終端處理程序必須參照某種表格,將鍵碼轉(zhuǎn)換成ASCII碼。應(yīng)當(dāng)注意,某些IBM的兼容機(jī)使用的不是標(biāo)準(zhǔn)鍵碼。此時(shí),處理程序還須選用相應(yīng)的表格將其轉(zhuǎn)換成標(biāo)準(zhǔn)鍵碼。 第七章 操作系統(tǒng)接口 2. 字符緩沖功能字符緩沖功能 (1) 專用緩沖方式。專用緩沖方式。 這是指系統(tǒng)為每個(gè)終端設(shè)置一個(gè)緩沖區(qū),暫存用戶鍵入的一批字符,緩沖區(qū)的典型長(zhǎng)度為200個(gè)字符左右。這種方式較適合于單用戶微機(jī)或終端很少的多用戶機(jī)。當(dāng)終端數(shù)目較多時(shí),需要的緩沖數(shù)目

11、可能很大,且每個(gè)緩沖的利用率也很低。例如,當(dāng)有100個(gè)終端時(shí),要求有20 KB的緩沖區(qū)。 但專用緩沖方式可使終端處理程序簡(jiǎn)化。 第七章 操作系統(tǒng)接口 (2) 公用緩沖方式。公用緩沖方式。 系統(tǒng)不必為每個(gè)終端設(shè)置專用緩沖區(qū), 只須設(shè)置一個(gè)由多個(gè)緩沖區(qū)構(gòu)成的公用緩沖池。其中的每個(gè)緩沖區(qū)大小相同,如為20個(gè)字符,再將所有的空緩沖區(qū)鏈接成一個(gè)空緩沖區(qū)鏈。當(dāng)終端有數(shù)據(jù)輸入時(shí),可先向空緩沖區(qū)鏈申請(qǐng)一空緩沖區(qū)來接收輸入字符;當(dāng)該緩沖區(qū)裝滿后,再申請(qǐng)一空緩沖區(qū)。這樣, 直至全部輸入完畢,并利用鏈接指針將這些裝有輸入數(shù)據(jù)的緩沖區(qū)鏈接成一條輸入鏈。每當(dāng)該輸入鏈中一個(gè)緩沖區(qū)內(nèi)的字符被全部傳送給用戶程序后,便將該緩沖

12、區(qū)從輸入鏈中移出,再重新鏈入空緩沖區(qū)鏈中。顯然,利用公用緩沖池方式可有效地提高緩沖的利用率。圖 7-1(b)示出了公用緩沖池方式。 第七章 操作系統(tǒng)接口 3. 回送顯示回送顯示 回送顯示(回顯)是指每當(dāng)用戶從鍵盤輸入一個(gè)字符后,終端處理程序便將該字符送往屏幕顯示。有些終端的回顯由硬件實(shí)現(xiàn), 其速度較快,但往往會(huì)引起麻煩。如當(dāng)用戶鍵入口令時(shí),為防止口令被盜用,顯然不該有回顯。此外,用硬件實(shí)現(xiàn)回顯也缺乏靈活性,因而近年來多改用軟件來實(shí)現(xiàn)回顯,這樣可以做到在用戶需要時(shí)才回顯。用軟件實(shí)現(xiàn)回顯,還可方便地進(jìn)行字符變換,如將鍵盤輸入的小寫英文字母變成大寫, 或相反。 驅(qū)動(dòng)程序在將輸入的字符送往屏幕回顯時(shí),

13、應(yīng)打印在正確的位置上;當(dāng)光標(biāo)走到一行的最后一個(gè)位置后,便應(yīng)返回到下一行的開始位置。例如,當(dāng)所鍵入的字符數(shù)目超過一行的80個(gè)(字符)時(shí), 應(yīng)自動(dòng)地將下一個(gè)字符打印到下一行的開始位置。 第七章 操作系統(tǒng)接口 4. 屏幕編輯屏幕編輯 (1) 刪除字符鍵。 (2) 刪除一行鍵。 (3) 插入鍵。 (4) 移動(dòng)光標(biāo)鍵。 (5) 屏幕上卷或下移鍵, 等等。 第七章 操作系統(tǒng)接口 5. 特殊字符處理特殊字符處理 (1) 中斷字符。 當(dāng)程序在運(yùn)行中出現(xiàn)異常情況時(shí),用戶可通過鍵入中斷字符的辦法來中止當(dāng)前程序的運(yùn)行。在許多系統(tǒng)中是利用Break或Delete或Ctrl+C鍵作為中斷字符。 (2) 停止上卷字符。

14、用戶鍵入此字符后,終端處理程序應(yīng)使正在上卷的屏幕暫停上卷,以便用戶仔細(xì)觀察屏幕內(nèi)容。在有的系統(tǒng)中,是利用Ctrl+S鍵來停止屏幕上卷的。第七章 操作系統(tǒng)接口 (3) 恢復(fù)上卷字符。 有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復(fù)上卷。終端處理程序收到該字符后, 便恢復(fù)屏幕的上卷功能。 上述的Ctrl+S與Ctrl+Q兩字符并不被存儲(chǔ),而是被用去設(shè)置終端數(shù)據(jù)結(jié)構(gòu)中的某個(gè)標(biāo)志。每當(dāng)終端試圖輸出時(shí),都須先檢查該標(biāo)志,若該標(biāo)志已被設(shè)置,便不再把字符送至屏幕 第七章 操作系統(tǒng)接口 7.1.3 命令解釋程序命令解釋程序 1. 命令解釋程序的作用命令解釋程序的作用 在聯(lián)機(jī)操作方式下,終端處理程序把用戶鍵入的

15、信息送鍵盤緩沖區(qū)中保存。一旦用戶鍵入回車符,便立即把控制權(quán)交給命令處理程序。顯然,對(duì)于不同的命令,應(yīng)有能完成特定功能的命令處理程序與之對(duì)應(yīng)??梢?,命令解釋程序的主要作用,是在屏幕上給出提示符,請(qǐng)用戶鍵入命令,然后讀入該命令,識(shí)別命令,再轉(zhuǎn)到相應(yīng)命令處理程序的入口地址,把控制權(quán)交給該處理程序去執(zhí)行,并將處理結(jié)果送屏幕上顯示。 若用戶鍵入的命令有錯(cuò),而命令解釋程序未能予以識(shí)別,或在執(zhí)行中間出現(xiàn)問題時(shí),則應(yīng)顯示出某一出錯(cuò)信息。 第七章 操作系統(tǒng)接口 2. 命令解釋程序的組成命令解釋程序的組成 (1) 常駐部分。 這部分包括一些中斷服務(wù)子程序。例如,正常退出中斷INT 20,它用于在用戶程序執(zhí)行完畢后

16、,退回操作系統(tǒng); 駐留退出中斷INT 27,用這種方式,退出程序可駐留在內(nèi)存中;還有用于處理和顯示標(biāo)準(zhǔn)錯(cuò)誤信息的INT 24等。常駐部分還包括這樣的程序:當(dāng)用戶程序終止后,它檢查暫存部分是否已被用戶程序覆蓋,若已被覆蓋,便重新將暫存部分調(diào)入內(nèi)存。 第七章 操作系統(tǒng)接口 (2) 初始化部分。 它跟隨在常駐內(nèi)存部分之后,在啟動(dòng)時(shí)獲得控制權(quán)。這部分還包括對(duì)AUTOEXEC.BAT文件的處理程序,并決定應(yīng)用程序裝入的基地址。每當(dāng)系統(tǒng)接電或重新啟動(dòng)后,由處理程序找到并執(zhí)行AUTOEXEC.BAT文件。由于該文件在用完后不再被需要,因而它將被第一個(gè)由COMMAND.COM裝入的文件所覆蓋。 第七章 操作系

17、統(tǒng)接口 (3) 暫存部分。 這部分主要是命令解釋程序,并包含了所有的內(nèi)部命令處理程序、批文件處理程序,以及裝入和執(zhí)行外部命令的程序。它們都駐留在內(nèi)存中,但用戶程序可以使用并覆蓋這部分內(nèi)存,在用戶程序結(jié)束時(shí),常駐程序又會(huì)將它們重新從磁盤 第七章 操作系統(tǒng)接口 3. 命令解釋程序的工作流程命令解釋程序的工作流程 系統(tǒng)在接通電源或復(fù)位后,初始化部分獲得控制權(quán),對(duì)整個(gè)系統(tǒng)完成初始化工作,并自動(dòng)執(zhí)行AUTOEXEC.BAT文件, 之后便把控制權(quán)交給暫存部分。暫存部分首先讀入鍵盤緩沖區(qū)中的命令,判別其文件名、擴(kuò)展名及驅(qū)動(dòng)器名是否正確。 若發(fā)現(xiàn)有錯(cuò),在給出出錯(cuò)信息后返回;若無錯(cuò),再識(shí)別該命令。一種簡(jiǎn)單的識(shí)別

18、命令的方法是基于一張表格,其中的每一表目都是由命令名及其處理程序的入口地址兩項(xiàng)所組成。 如果暫存部分在該表中能找到鍵入的命令,且是內(nèi)部命令,便可以直接從對(duì)應(yīng)表項(xiàng)中獲得該命令處理程序的入口地址,然后把控制權(quán)交給該處理程序去執(zhí)行該命令。 第七章 操作系統(tǒng)接口 7.2 Shell命令語(yǔ)言命令語(yǔ)言 7.2.1 簡(jiǎn)單命令簡(jiǎn)單命令 所謂簡(jiǎn)單命令,實(shí)際上是一個(gè)能完成某種功能的目標(biāo)程序的名字。UNIX系統(tǒng)規(guī)定的命令由小寫字母構(gòu)成(但僅前8個(gè)字母有效)。命令可帶有參數(shù)表,用于給出執(zhí)行命令時(shí)的附加信息。命令名與參數(shù)表之間還可使用一種稱為選項(xiàng)的自變量, 用破折號(hào)開始,后跟一個(gè)或多個(gè)字母、數(shù)字。 $ Command-

19、option argument list例如: $ LS file1 file2 第七章 操作系統(tǒng)接口 這是一條不帶選項(xiàng)的列目錄命令,$是系統(tǒng)提示符。該命令用于列出file1和file2兩個(gè)目錄文件中所包含的目錄項(xiàng), 并隱含地指出按英文字母順序列表。若給出tr選項(xiàng),該命令可表示成: $ LS-tr file1 file 2 其中,選項(xiàng)t和r分別表示按最近修改次序及按反字母順序列表。通常,命令名與該程序的功能緊密相關(guān),以便于記憶。命令參數(shù)可多可少,也可缺省。 第七章 操作系統(tǒng)接口 例如: $ LS 表示自動(dòng)以當(dāng)前工作目錄為缺省參數(shù),打印出當(dāng)前工作目錄所包含的目錄項(xiàng)。簡(jiǎn)單命令的格式比較自由,包括命

20、令名字符的個(gè)數(shù)及用于分隔命令名、選項(xiàng)、各參數(shù)間的空格數(shù)等,都是任意的。簡(jiǎn)單命令的數(shù)量易于擴(kuò)充。 系統(tǒng)管理員與用戶自行定義的命令,其執(zhí)行方式與系統(tǒng)標(biāo)準(zhǔn)命令的執(zhí)行方式相同。第七章 操作系統(tǒng)接口 1. 進(jìn)入與退出系統(tǒng)進(jìn)入與退出系統(tǒng) (1) 進(jìn)入系統(tǒng),也稱為注冊(cè)。事先, 用戶須與系統(tǒng)管理員商定一個(gè)唯一的用戶名。管理員用該名字在系統(tǒng)文件樹上,為用戶建立一個(gè)子目錄樹的根結(jié)點(diǎn)。當(dāng)用戶打開自己的終端時(shí),屏幕上會(huì)出現(xiàn)Login:提示,這時(shí)用戶便可鍵入自己的注冊(cè)名,并用回車符結(jié)束。然后,系統(tǒng)又詢問用戶口令,用戶可用回車符或事先約定的口令鍵入。第七章 操作系統(tǒng)接口 (2) 退出系統(tǒng)。退出系統(tǒng)。 每當(dāng)用戶用完系統(tǒng)后,

21、應(yīng)向系統(tǒng)報(bào)告自己不再往系統(tǒng)裝入任何處理要求。系統(tǒng)得知后,便馬上為用戶記賬, 清除用戶的使用環(huán)境。 若用戶使用系統(tǒng)是免費(fèi)的,退出操作僅僅是一種禮貌。如果用戶使用的是多終端中的一個(gè)終端,為了退出,用戶只須按下Control-D鍵即可,系統(tǒng)會(huì)重新給出提示符即Login,以表明該終端可供另一新用戶使用。 用戶的進(jìn)入與退出過程,實(shí)際上是由系統(tǒng)直接調(diào)用Login及Logout程序完成的。 第七章 操作系統(tǒng)接口 2. 文件操作命令文件操作命令 (1) 顯示文件內(nèi)容命令cat。如果用戶想了解自己在當(dāng)前目錄中的某個(gè)或某幾個(gè)指定文件的內(nèi)容時(shí),便可使用下述格式的cat命令: $ cat filename1 file

22、name2 (2) 復(fù)制文件副本的命令cp。其格式為: cp source target該命令用于對(duì)已存在的文件source建立一個(gè)名為target的副本。 第七章 操作系統(tǒng)接口 (3) 對(duì)已有文件改名的命令mv。 其格式為: mv oldname newname 用于把原來的老名字改成指定的新名字。 (4) 撤消文件的命令rm。它給出一個(gè)參數(shù)表, 是要撤消的文件名清單。 (5) 確定文件類型的命令file。該命令帶有一個(gè)參數(shù)表, 用于給出想了解其(文件)類型的文件名清單。命令執(zhí)行的結(jié)果,將在屏幕上顯示出各個(gè)文件的類型。 第七章 操作系統(tǒng)接口 3. 目錄操作命令目錄操作命令(1) 建立目錄的命

23、令mkdir(簡(jiǎn)稱md)。(2) 撤消目錄的命令rmdir(簡(jiǎn)稱rd)。(3) 改變工作目錄的命令cd。(4) 改變對(duì)文件的存取方式的命令chmod。 其格式為: chmodwho op-code permission filename第七章 操作系統(tǒng)接口 4. 系統(tǒng)詢問命令系統(tǒng)詢問命令 (1)訪問當(dāng)前日期和時(shí)間命令date。例如,用命令 $ date 屏幕上將給出當(dāng)前的日期和時(shí)間,如為: Wed Ang 14 09:27:20 PDT 1991 表示當(dāng)前日期是1991年9月14日、星期三,還有時(shí)間信息若在命令名后給出參數(shù),則date程序把參數(shù)作為重置系統(tǒng)時(shí)鐘的時(shí)間。 第七章 操作系統(tǒng)接口 (

24、2) 詢問系統(tǒng)當(dāng)前用戶的命令who。 who命令可列出當(dāng)前每一個(gè)處在系統(tǒng)中的用戶的注冊(cè)名、終端名和注冊(cè)進(jìn)入時(shí)間,并按終端標(biāo)志的字母順序排序。例如,報(bào)告有下列三用戶: Veronica bxo66 Aug 27 13:28 Rathomas dz24 Aug 28 07:42 Jlyates tty5 Aug 28 07:39第七章 操作系統(tǒng)接口 (3) 顯示當(dāng)前目錄路徑名的命令pwd。當(dāng)前目錄的路徑名是從根結(jié)點(diǎn)開始,通過分支上的所有結(jié)點(diǎn)到達(dá)當(dāng)前目錄結(jié)點(diǎn)為止的路徑上的所有結(jié)點(diǎn)的名字拼起來構(gòu)成的。 用戶的當(dāng)前目錄可能經(jīng)常在樹上移動(dòng)。如果用戶忘記了自己在哪里,便可用pwd確定自己的位置。 第七章 操

25、作系統(tǒng)接口 7.2.2 重定向與管道命令重定向與管道命令 1. 重定向命令重定向命令 在UNIX系統(tǒng)中,由系統(tǒng)定義了三個(gè)文件。其中,有兩個(gè)分別稱為標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出的文件,各對(duì)應(yīng)于終端鍵盤輸入和終端屏幕輸出。它們是在用戶注冊(cè)時(shí),由Login程序打開的。 這樣,在用戶程序執(zhí)行時(shí),隱含的標(biāo)準(zhǔn)輸入是鍵盤輸入,標(biāo)準(zhǔn)輸出即屏幕(輸出)顯示。但用戶程序中可能不要求從鍵盤輸入,而是從某個(gè)指定文件上讀取信息供程序使用;同樣,用戶可能希望把程序執(zhí)行時(shí)所產(chǎn)生的結(jié)果數(shù)據(jù),寫到某個(gè)指定文件中而非屏幕上。這就使用戶必須去改變輸入與輸出文件,即不使用標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出,而是把另外的某個(gè)指定文件或設(shè)備,作為輸入或輸出文件。

26、 第七章 操作系統(tǒng)接口 Shell向用戶提供了這種用于改變輸入、輸出設(shè)備的手段,此即標(biāo)準(zhǔn)輸入與標(biāo)準(zhǔn)輸出的重新定向。用重定向符“”和“”分別表示輸入轉(zhuǎn)向與輸出轉(zhuǎn)向。例如, 對(duì)于命令 $ cat file1 表示將文件file1的內(nèi)容,在標(biāo)準(zhǔn)輸出上打印出來。若改變其輸出,用命令 $ cat file1file2 時(shí),表示把文件file1的內(nèi)容,打印輸出到文件file2上。同理, 對(duì)于命令 $ wc 表示對(duì)標(biāo)準(zhǔn)輸入中的行中字和字符進(jìn)行計(jì)數(shù)。 若改變其輸入, 用命令 第七章 操作系統(tǒng)接口 $ wcfile3 則表示把從文件file3中讀出的行中的字和字符進(jìn)行計(jì)數(shù)。 須指明的是,在做輸出轉(zhuǎn)向時(shí),若上述的

27、文件file2并不存在,則先創(chuàng)建它;若已存在,則認(rèn)為它是空白的,執(zhí)行上述輸出轉(zhuǎn)向命令時(shí),是用命令的輸出數(shù)據(jù)去重寫該文件;如果文件file2事先已有內(nèi)容,則命令執(zhí)行結(jié)果將用文件file1的內(nèi)容去更新文件file2的原有內(nèi)容?,F(xiàn)在,如果又要求把file4的內(nèi)容附加到現(xiàn)有的文件file2的末尾,則應(yīng)使用另一個(gè)輸出轉(zhuǎn)向符“”, 即此時(shí)應(yīng)再用命令 $ cat file4file2 第七章 操作系統(tǒng)接口 便可在文件file2中,除了上次復(fù)制的file1內(nèi)容外,后面又附加了file4的內(nèi)容。 當(dāng)然,若想一次把兩個(gè)文件file1和file4全部復(fù)制到file2中,則可用命令 $ cat file1 file4

28、file2 此外,也可在一個(gè)命令行中,同時(shí)改變輸入與輸出。例如, 命令行 a.outfile1file0 表示,在可執(zhí)行文件a.out執(zhí)行時(shí),將從文件file1中提取數(shù)據(jù), 而把a(bǔ).out的執(zhí)行結(jié)果數(shù)據(jù)輸出到文件file0中。 第七章 操作系統(tǒng)接口 2. 管道命令管道命令 在有了上述的重定向思想后,為了進(jìn)一步增強(qiáng)功能, 人們又進(jìn)一步把這種思想加以擴(kuò)充,用符號(hào)“|”來連接兩條命令,使其前一條命令的輸出作為后一條命令的輸入。 即 $ command 1|command 2 例如,對(duì)于下述輸入 cat file|wc 將使命令cat把文件file中的數(shù)據(jù),作為wc命令的計(jì)數(shù)用輸入。 第七章 操作系統(tǒng)

29、接口 7.2.3 通信命令通信命令 1. 信箱通信命令信箱通信命令mail 它被作為在UNIX的各用戶之間, 進(jìn)行非交互式通信的工具。mail采用信箱通信方式。發(fā)信者把要發(fā)送的消息寫成信件,“郵寄”到對(duì)方的信箱中。通常各用戶的私有信箱采用各自的注冊(cè)名命名,即它是目錄/usr/spool/mail中的一個(gè)文件,而文件名又是用接收者的注冊(cè)名來命名的。信箱中的信件可以一直保留到被信箱所有者消除為止。因而,用mail進(jìn)行通信時(shí),不要求接收者利用終端與發(fā)送者會(huì)話。亦即,在發(fā)信者發(fā)送信息時(shí),雖然接收者已在系統(tǒng)中注冊(cè)過,但允許他此時(shí)沒有使用系統(tǒng);也可以是雖在使用系統(tǒng),但拒絕接收任何信息。 第七章 操作系統(tǒng)接

30、口 接收者也用mail命令讀取信件,可使用可選項(xiàng)r、q或p等。 其命令格式為: mail-r-q-p-file-F persons由于信箱中可存放所接收的多個(gè)信件,這就存在一個(gè)選取信件的問題。上述幾個(gè)選項(xiàng)分別表示:按先進(jìn)先出順序顯示各信件的內(nèi)容;在打入中斷字符(DEL或RETURN)后,退出mail程序而不改變信箱的內(nèi)容;以及一次性地顯示信箱全部?jī)?nèi)容而不帶詢問,把指定文件當(dāng)作信件來顯示。在不使用-p選項(xiàng)時(shí),表示在顯示完一個(gè)信件后,便出現(xiàn)“?”,以詢問用戶是否繼續(xù)顯示下一條消息,或選讀完最后一條消息后退出mail。 第七章 操作系統(tǒng)接口 2. 對(duì)話通信命令對(duì)話通信命令write 命令格式為: w

31、rite userttyname 當(dāng)接收者只有一個(gè)終端時(shí),終端名可缺省。當(dāng)接收者的終端被允許接收消息時(shí),屏幕提示會(huì)通知接收者源用戶名及其所用終端名。 第七章 操作系統(tǒng)接口 3. 允許或拒絕接收消息的允許或拒絕接收消息的mesg命令命令 其格式為: mesg-n-y選項(xiàng)n表示拒絕對(duì)方的寫許可(即拒絕接收消息);選項(xiàng)y指示恢復(fù)對(duì)方的寫許可,僅在此時(shí),雙方才可聯(lián)機(jī)通信。當(dāng)用戶正在聯(lián)機(jī)編寫一份資料而不愿被別人干擾時(shí),常選用n選項(xiàng)來拒絕對(duì)方的寫許可。編輯完畢,再用帶有y選項(xiàng)的mesg命令來恢復(fù)對(duì)方的寫許可,不帶自變量的mesg命令只報(bào)告當(dāng)前狀態(tài)而不改變它。 第七章 操作系統(tǒng)接口 7.2.4 后臺(tái)命令后臺(tái)

32、命令 UNIX系統(tǒng)提供了這種機(jī)制, 用戶可以在這種命令后面再加上“&”號(hào),以告訴Shell將該命令放在后臺(tái)執(zhí)行, 以便用戶在前臺(tái)繼續(xù)鍵入其它命令。 在后臺(tái)運(yùn)行的程序仍然把終端作為它的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤文件,除非對(duì)它們進(jìn)行重新定向。其標(biāo)準(zhǔn)輸入文件是自動(dòng)地被從終端定向到一個(gè)被稱為“/dev/null”的空文件中。若shell未重定向標(biāo)準(zhǔn)輸入, 則shell和后臺(tái)進(jìn)程將會(huì)同時(shí)從終端進(jìn)行讀入。這時(shí),用戶從終端鍵入的字符可能被發(fā)送到一個(gè)進(jìn)程或另一個(gè)進(jìn)程, 并不能預(yù)測(cè)哪個(gè)進(jìn)程將得到該字符。第七章 操作系統(tǒng)接口 7.3 系系 統(tǒng)統(tǒng) 調(diào)調(diào) 用用 7.3.1 系統(tǒng)調(diào)用的基本概念系統(tǒng)調(diào)用的基本概念 (1) 運(yùn)行在

33、不同的系統(tǒng)狀態(tài)。 (2) 通過軟中斷進(jìn)入。(3) 返回問題。(4) 嵌套調(diào)用。第七章 操作系統(tǒng)接口 7.3.2 系統(tǒng)調(diào)用的類型系統(tǒng)調(diào)用的類型 1. 進(jìn)程控制類系統(tǒng)調(diào)用進(jìn)程控制類系統(tǒng)調(diào)用 (1) 創(chuàng)建和終止進(jìn)程的系統(tǒng)調(diào)用。 (2) 獲得和設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用。 (3) 等待某事件出現(xiàn)的系統(tǒng)調(diào)用。 第七章 操作系統(tǒng)接口 2. 文件操縱類系統(tǒng)調(diào)用文件操縱類系統(tǒng)調(diào)用 (1) 創(chuàng)建和刪除文件。 (2) 打開和關(guān)閉文件。 (3) 讀和寫文件。 第七章 操作系統(tǒng)接口 3. 進(jìn)程通信類系統(tǒng)調(diào)用進(jìn)程通信類系統(tǒng)調(diào)用 在OS中經(jīng)常采用兩種進(jìn)程通信方式,即消息傳遞方式和共享存儲(chǔ)區(qū)方式。當(dāng)系統(tǒng)中采用消息傳遞方式時(shí),在

34、通信前, 必須先打開一個(gè)連接。為此,應(yīng)由源進(jìn)程發(fā)出一條打開連接的系統(tǒng)調(diào)用open connection, 而目標(biāo)進(jìn)程則應(yīng)利用接受連接的系統(tǒng)調(diào)用accept connection表示同意進(jìn)行通信;然后, 在源和目標(biāo)進(jìn)程之間便可開始通信。 可以利用發(fā)送消息的系統(tǒng)調(diào)用send message或者用接收消息的系統(tǒng)調(diào)用receive message來交換信息。通信結(jié)束后,還須再利用關(guān)閉連接的系統(tǒng)調(diào)用close connection結(jié)束通信。 第七章 操作系統(tǒng)接口 7.3.3 系統(tǒng)調(diào)用的實(shí)現(xiàn)系統(tǒng)調(diào)用的實(shí)現(xiàn) 1. 中斷和陷入硬件機(jī)構(gòu)中斷和陷入硬件機(jī)構(gòu) (1) 什么是中斷和陷入。 中斷是指CPU對(duì)系統(tǒng)發(fā)生某事

35、件時(shí)的這樣一種響應(yīng):CPU暫停正在執(zhí)行的程序,在保留現(xiàn)場(chǎng)后自動(dòng)地轉(zhuǎn)去執(zhí)行該事件的中斷處理程序;執(zhí)行完后,再返回到原程序的斷點(diǎn)處繼續(xù)執(zhí)行 。第七章 操作系統(tǒng)接口 (2) 中斷和陷入向量。 第七章 操作系統(tǒng)接口 2. 系統(tǒng)調(diào)用號(hào)和參數(shù)的設(shè)置系統(tǒng)調(diào)用號(hào)和參數(shù)的設(shè)置 (1) 直接將參數(shù)送入相應(yīng)的寄存器中。 (2) 參數(shù)表方式。 圖 7 - 6 系統(tǒng)調(diào)用的參數(shù)形式 第七章 操作系統(tǒng)接口 3. 系統(tǒng)調(diào)用的處理步驟系統(tǒng)調(diào)用的處理步驟 首先,將處理機(jī)狀態(tài)由用戶態(tài)轉(zhuǎn)為系統(tǒng)態(tài);之后,由硬件和內(nèi)核程序進(jìn)行系統(tǒng)調(diào)用的一般性處理,即首先保護(hù)被中斷進(jìn)程的CPU環(huán)境,將處理機(jī)狀態(tài)字PSW、程序計(jì)數(shù)器PC、系統(tǒng)調(diào)用號(hào)、用戶棧

36、指針以及通用寄存器內(nèi)容等,壓入堆棧;然后,將用戶定義的參數(shù)傳送到指定的地方保存起來。 其次,是分析系統(tǒng)調(diào)用類型,轉(zhuǎn)入相應(yīng)的系統(tǒng)調(diào)用處理子程序。 最后,在系統(tǒng)調(diào)用處理子程序執(zhí)行完后,應(yīng)恢復(fù)被中斷的或設(shè)置新進(jìn)程的CPU現(xiàn)場(chǎng),然后返回被中斷進(jìn)程或新進(jìn)程, 繼續(xù)往下執(zhí)行。 第七章 操作系統(tǒng)接口 4. 系統(tǒng)調(diào)用處理子程序的處理過程系統(tǒng)調(diào)用處理子程序的處理過程 進(jìn)入Creat的處理子程序后,核心將根據(jù)用戶給定的文件路徑名Path, 利用目錄檢索過程,去查找指定文件的目錄項(xiàng)。查找目錄的方式可以用順序查找法,也可用Hash查找法。如果在文件目錄中找到了指定文件的目錄項(xiàng),表示用戶要利用一個(gè)已有文件來建立一個(gè)新文

37、件。但如果在該已有(存)文件的屬性中有不允許寫屬性,或者創(chuàng)建者不具有對(duì)該文件進(jìn)行修改的權(quán)限,使認(rèn)為是出錯(cuò)而做出錯(cuò)處理;若不存在訪問權(quán)限問題,便將已存文件的數(shù)據(jù)盤塊釋放掉,準(zhǔn)備寫入新的數(shù)據(jù)文件。如未找到指名文件,則表示要?jiǎng)?chuàng)建一個(gè)新文件,核心便從其目錄文件中找出一個(gè)空目錄項(xiàng),并初始化該目錄項(xiàng),包括填寫文件名、文件屬性、文件建立日期等,然后將新建文件打開。 第七章 操作系統(tǒng)接口 7.4 UNIX系統(tǒng)調(diào)用系統(tǒng)調(diào)用 7.4.1 UNIX系統(tǒng)調(diào)用的類型系統(tǒng)調(diào)用的類型 1. 進(jìn)程控制進(jìn)程控制 (1) 創(chuàng)建進(jìn)程(fork)。(2) 終止進(jìn)程(exit)。 (3) 等待子進(jìn)程結(jié)束(wait)。 (4) 執(zhí)行一個(gè)

38、文件(exec)。 (5) 獲得進(jìn)程ID。 (6) 獲得用戶ID。 (7) 進(jìn)程暫停(pause)。 第七章 操作系統(tǒng)接口 2. 文件操縱文件操縱 (1) 創(chuàng)建文件(creat)。 (2) 打開文件(open)。 (3) 關(guān)閉文件(close)。 (4) 讀和寫文件read和write。 (5) 連接和去連接(link和unlink)。 文件描述符fd; buf緩沖區(qū)首址。 用戶要求傳送的字節(jié)數(shù)nbyte。 第七章 操作系統(tǒng)接口 3. 進(jìn)程間通信進(jìn)程間通信 (1) 消息機(jī)制。 (2) 共享存儲(chǔ)器機(jī)制。 (3) 信號(hào)量機(jī)制。 第七章 操作系統(tǒng)接口 4. 信息維護(hù)信息維護(hù) (1) 設(shè)置和獲得時(shí)間。

39、(2) 獲得進(jìn)程和子進(jìn)程時(shí)間(times)。 (3) 設(shè)置文件訪問和修改時(shí)間(utime)。 (4) 獲得當(dāng)前UNIX系統(tǒng)的名稱(uname)。 第七章 操作系統(tǒng)接口 7.4.2 被中斷進(jìn)程的環(huán)境保護(hù)被中斷進(jìn)程的環(huán)境保護(hù) 1. CPU環(huán)境保護(hù)環(huán)境保護(hù) 當(dāng)用戶程序處在用戶態(tài),且在執(zhí)行系統(tǒng)調(diào)用命令(即CHMK命令)之前,應(yīng)在用戶空間提供系統(tǒng)調(diào)用所需的參數(shù)表,并將該參數(shù)表的地址送入R0寄存器。在執(zhí)行CHMK命令后,處理機(jī)將由用戶態(tài)轉(zhuǎn)為核心態(tài),并由硬件自動(dòng)地將處理機(jī)狀態(tài)長(zhǎng)字(PSL)、程序計(jì)數(shù)器(PC)和代碼操作數(shù)(code)壓入用戶核心棧,繼而從中斷和陷入向量表中取出trap.S的入口地址然后便轉(zhuǎn)入

40、中斷和陷入總控程序trap.S中執(zhí)行。 第七章 操作系統(tǒng)接口 trap.S程序執(zhí)行后,繼續(xù)將陷入類型type和用戶棧指針usp壓入用戶核心棧,接著還要將被中斷進(jìn)程的CPU環(huán)境中的一系列寄存器如R0R11的部分或全部?jī)?nèi)容壓入棧中。至于哪些寄存器的內(nèi)容要壓入棧中,這取決于特定寄存器中的屏蔽碼,該屏蔽碼的每一位都與R0R11中的一個(gè)寄存器相對(duì)應(yīng)。當(dāng)某一位置成1時(shí),表示對(duì)應(yīng)寄存器的內(nèi)容應(yīng)壓入棧中。 第七章 操作系統(tǒng)接口 2. AP和和FP指針指針 圖 7 - 7 用戶核心棧 第七章 操作系統(tǒng)接口 7.4.3 系統(tǒng)調(diào)用陷入后需處理的若干公共問題系統(tǒng)調(diào)用陷入后需處理的若干公共問題 1. 確定系統(tǒng)調(diào)用號(hào)確定

41、系統(tǒng)調(diào)用號(hào) trap(usp, type, code, PC, PSL)其中,參數(shù)PSL為陷入時(shí)處理機(jī)狀態(tài)字長(zhǎng),PC為程序計(jì)數(shù)器,code為代碼操作數(shù),type為陷入類型號(hào),usp為用戶棧指針。對(duì)陷入的處理可分為多種情況,如果陷入是由于系統(tǒng)調(diào)用所引起的,則對(duì)此陷入的第一步處理, 便是確定系統(tǒng)調(diào)用號(hào)。通常,系統(tǒng)調(diào)用號(hào)是包含在代碼操作數(shù)中,故可利用code來確定系統(tǒng)調(diào)用號(hào)i。 其方法是: 令 i=code & 0377 第七章 操作系統(tǒng)接口 2. 參數(shù)傳送參數(shù)傳送 這是對(duì)因系統(tǒng)調(diào)用引起的陷入的第二步處理。參數(shù)傳送是指由trap.C程序?qū)⑾到y(tǒng)調(diào)用參數(shù)表中的內(nèi)容,從用戶區(qū)傳送到User結(jié)構(gòu)的U.U-arg 中,供系統(tǒng)調(diào)用處理程序使用。由于用戶程序在執(zhí)行系統(tǒng)調(diào)用命令之前,已將參數(shù)表的首址放入R0寄存器中,在進(jìn)入trap.C程序后,該程序便將該首址賦予U.U-arg 指針, 因此, trap.C在處理參數(shù)傳送時(shí),可讀取該指針的內(nèi)容,以獲得用戶所提供的參數(shù)表, 并將之送至U.U-arg 中。應(yīng)當(dāng)注意,對(duì)不同的系統(tǒng)調(diào)用所需傳送參數(shù)的個(gè)數(shù)并不相同,trap.C程序應(yīng)根據(jù)在系統(tǒng)調(diào)用定義表中所規(guī)定的參數(shù)個(gè)數(shù)來進(jìn)行傳送,最多允許10個(gè)參數(shù)。 第七章 操作系統(tǒng)接口 3. 利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應(yīng)的處理程序利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應(yīng)的處理程序 在U

溫馨提示

  • 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)論