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

下載本文檔

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

文檔簡介

1、第七章 操作系統(tǒng)接口 7.1 7.1 聯(lián)機(jī)命令接口聯(lián)機(jī)命令接口 7.2 Shell7.2 Shell命令語言命令語言 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)訪問命令, 即注冊命令Login。 用戶在每次開始使用某終端時,都須使用該命令,使系統(tǒng)能識別該用戶。凡要在多用戶系統(tǒng)的終端上上機(jī)的用戶,都必須先在系統(tǒng)管理員處獲得一合法的注冊名和口令。以后,每當(dāng)用戶在接通其所用終端的電源后,便由系統(tǒng)直接調(diào)用并在屏幕上顯示出以下的注冊命令: Login: /提示用戶鍵入自己的注冊名 當(dāng)用戶鍵入正確的注冊名,并按下回車鍵后,屏幕上又會出現(xiàn): Password: /提示用戶鍵入自己的口令第七章 操作系統(tǒng)接口 2.

3、 鍵盤操作命令鍵盤操作命令 (1) 磁盤格式化命令Format。 它被用于對指定驅(qū)動器上的軟盤進(jìn)行格式化。 每張新盤在使用前都必須先格式化。 其目的是使其記錄格式能為操作系統(tǒng)所接受,可見,不同操作系統(tǒng)將磁盤初始化后的格式各異。此外,在格式化過程中,還將對有缺陷的磁道和扇區(qū)加保留記號,以防止將它分配給數(shù)據(jù)文件。 第七章 操作系統(tǒng)接口 (2) 復(fù)制整個軟盤命令Diskcopy。 該命令用于復(fù)制整個磁盤,另外它還有附加的格式化功能。 如果目標(biāo)盤片是尚未格式化的,則該命令在執(zhí)行時, 首先將未格式化的軟盤格式化,然后再進(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。該命令用于對兩個指定文件進(jìn)行比較。 兩文件可以在同一個或不同的驅(qū)動器上。 (4) 重新命名命令Rename。該命令用于將以第一參數(shù)命名的文件, 改成用第二參數(shù)給定的名字。 (5) 刪除文件命令erase。該命令用于刪除一個或一組文件,當(dāng)參數(shù)路徑名為*.BAK時,

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

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

8、V, 則表示輸出不含指定字串的行。 第七章 操作系統(tǒng)接口 (4) 批命令。 為了能連續(xù)地使用多條鍵盤命令,或多次反復(fù)地執(zhí)行指定的若干條命令, 而又免去每次重敲這些命令的麻煩,可以提供一特定文件。在MS-DOS中提供了一種特殊文件,其后綴名用“.BAT”;在UNIX系統(tǒng)中稱為命令文件。它們都是利用一些鍵盤命令構(gòu)成一個程序,一次建立供多次使用。 在MS-DOS中用batch命令去執(zhí)行由指定或默認(rèn)驅(qū)動器的工作目錄上指定文件中所包含的一些命令。 第七章 操作系統(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ū)動程序只接收從終端打入的字符, 并且不加修改地將它傳送給用戶程序。這通常是一串未加工的ASCII碼。第七章 操作系統(tǒng)接口 (2) 面向行方式。面向行方式。 終端處理程序?qū)⑺邮盏淖址麜捍嬖谛芯彌_中, 并可對行內(nèi)字符進(jìn)行編輯。僅在收到行結(jié)束符后

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

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

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

13、應(yīng)打印在正確的位置上;當(dāng)光標(biāo)走到一行的最后一個位置后,便應(yīng)返回到下一行的開始位置。例如,當(dāng)所鍵入的字符數(shù)目超過一行的80個(字符)時, 應(yīng)自動地將下一個字符打印到下一行的開始位置。 第七章 操作系統(tǒng)接口 4. 屏幕編輯屏幕編輯 (1) 刪除字符鍵。 (2) 刪除一行鍵。 (3) 插入鍵。 (4) 移動光標(biāo)鍵。 (5) 屏幕上卷或下移鍵, 等等。 第七章 操作系統(tǒng)接口 5. 特殊字符處理特殊字符處理 (1) 中斷字符。 當(dāng)程序在運(yùn)行中出現(xiàn)異常情況時,用戶可通過鍵入中斷字符的辦法來中止當(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兩字符并不被存儲,而是被用去設(shè)置終端數(shù)據(jù)結(jié)構(gòu)中的某個標(biāo)志。每當(dāng)終端試圖輸出時,都須先檢查該標(biāo)志,若該標(biāo)志已被設(shè)置,便不再把字符送至屏幕 第七章 操作系統(tǒng)接口 7.1.3 命令解釋程序命令解釋程序 1. 命令解釋程序的作用命令解釋程序的作用 在聯(lián)機(jī)操作方式下,終端處理程序把用戶鍵入的

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

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

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

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

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

20、令名字符的個數(shù)及用于分隔命令名、選項(xiàng)、各參數(shù)間的空格數(shù)等,都是任意的。簡單命令的數(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),也稱為注冊。事先, 用戶須與系統(tǒng)管理員商定一個唯一的用戶名。管理員用該名字在系統(tǒng)文件樹上,為用戶建立一個子目錄樹的根結(jié)點(diǎn)。當(dāng)用戶打開自己的終端時,屏幕上會出現(xiàn)Login:提示,這時用戶便可鍵入自己的注冊名,并用回車符結(jié)束。然后,系統(tǒng)又詢問用戶口令,用戶可用回車符或事先約定的口令鍵入。第七章 操作系統(tǒng)接口 (2) 退出系統(tǒng)。退出系統(tǒng)。 每當(dāng)用戶用完系統(tǒng)后,

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

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

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

24、2) 詢問系統(tǒng)當(dāng)前用戶的命令who。 who命令可列出當(dāng)前每一個處在系統(tǒng)中的用戶的注冊名、終端名和注冊進(jìn)入時間,并按終端標(biā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)常在樹上移動。如果用戶忘記了自己在哪里,便可用pwd確定自己的位置。 第七章 操

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

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

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

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

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

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

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

32、命令 UNIX系統(tǒng)提供了這種機(jī)制, 用戶可以在這種命令后面再加上“&”號,以告訴Shell將該命令放在后臺執(zhí)行, 以便用戶在前臺繼續(xù)鍵入其它命令。 在后臺運(yùn)行的程序仍然把終端作為它的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤文件,除非對它們進(jìn)行重新定向。其標(biāo)準(zhǔn)輸入文件是自動地被從終端定向到一個被稱為“/dev/null”的空文件中。若shell未重定向標(biāo)準(zhǔn)輸入, 則shell和后臺進(jìn)程將會同時從終端進(jìn)行讀入。這時,用戶從終端鍵入的字符可能被發(fā)送到一個進(jìn)程或另一個進(jìn)程, 并不能預(yù)測哪個進(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)程通信方式,即消息傳遞方式和共享存儲區(qū)方式。當(dāng)系統(tǒng)中采用消息傳遞方式時,在

34、通信前, 必須先打開一個連接。為此,應(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對系統(tǒng)發(fā)生某事

35、件時的這樣一種響應(yīng):CPU暫停正在執(zhí)行的程序,在保留現(xiàn)場后自動地轉(zhuǎn)去執(zhí)行該事件的中斷處理程序;執(zhí)行完后,再返回到原程序的斷點(diǎn)處繼續(xù)執(zhí)行 。第七章 操作系統(tǒng)接口 (2) 中斷和陷入向量。 第七章 操作系統(tǒng)接口 2. 系統(tǒng)調(diào)用號和參數(shù)的設(shè)置系統(tǒng)調(dià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)用號、用戶棧

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)場,然后返回被中斷進(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),表示用戶要利用一個已有文件來建立一個新文

37、件。但如果在該已有(存)文件的屬性中有不允許寫屬性,或者創(chuàng)建者不具有對該文件進(jìn)行修改的權(quán)限,使認(rèn)為是出錯而做出錯處理;若不存在訪問權(quán)限問題,便將已存文件的數(shù)據(jù)盤塊釋放掉,準(zhǔn)備寫入新的數(shù)據(jù)文件。如未找到指名文件,則表示要創(chuàng)建一個新文件,核心便從其目錄文件中找出一個空目錄項(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í)行一個

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) 共享存儲器機(jī)制。 (3) 信號量機(jī)制。 第七章 操作系統(tǒng)接口 4. 信息維護(hù)信息維護(hù) (1) 設(shè)置和獲得時間。

39、(2) 獲得進(jìn)程和子進(jìn)程時間(times)。 (3) 設(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),并由硬件自動地將處理機(jī)狀態(tài)長字(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的部分或全部內(nèi)容壓入棧中。至于哪些寄存器的內(nèi)容要壓入棧中,這取決于特定寄存器中的屏蔽碼,該屏蔽碼的每一位都與R0R11中的一個寄存器相對應(yīng)。當(dāng)某一位置成1時,表示對應(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)用號確定

41、系統(tǒng)調(diào)用號 trap(usp, type, code, PC, PSL)其中,參數(shù)PSL為陷入時處理機(jī)狀態(tài)字長,PC為程序計(jì)數(shù)器,code為代碼操作數(shù),type為陷入類型號,usp為用戶棧指針。對陷入的處理可分為多種情況,如果陷入是由于系統(tǒng)調(diào)用所引起的,則對此陷入的第一步處理, 便是確定系統(tǒng)調(diào)用號。通常,系統(tǒng)調(diào)用號是包含在代碼操作數(shù)中,故可利用code來確定系統(tǒng)調(diào)用號i。 其方法是: 令 i=code & 0377 第七章 操作系統(tǒng)接口 2. 參數(shù)傳送參數(shù)傳送 這是對因系統(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ù)傳送時,可讀取該指針的內(nèi)容,以獲得用戶所提供的參數(shù)表, 并將之送至U.U-arg 中。應(yīng)當(dāng)注意,對不同的系統(tǒng)調(diào)用所需傳送參數(shù)的個數(shù)并不相同,trap.C程序應(yīng)根據(jù)在系統(tǒng)調(diào)用定義表中所規(guī)定的參數(shù)個數(shù)來進(jìn)行傳送,最多允許10個參數(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論