版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第七章 操作系統(tǒng)接口 7.1 7.1 聯(lián)機命令接口聯(lián)機命令接口 7.2 Shell7.2 Shell命令語言命令語言 7.3 7.3 系統(tǒng)調用系統(tǒng)調用 7.4 UNIX7.4 UNIX系統(tǒng)調用系統(tǒng)調用 7.5 7.5 圖形用戶接口圖形用戶接口 第七章第七章 操作系統(tǒng)接口操作系統(tǒng)接口 第七章 操作系統(tǒng)接口 7.1 聯(lián)機命令接口聯(lián)機命令接口 7.1.1 聯(lián)機命令的類型聯(lián)機命令的類型 為了能向用戶提供多方面的服務,通常,OS都向用戶提供了幾十條甚至上百條的聯(lián)機命令。根據這些命令所完成功能的不同,可把它們分成以下幾類: 系統(tǒng)訪問類; 磁盤操作類; 文件操作類; 目錄操作類; 通信類; 其他命令。 第七
2、章 操作系統(tǒng)接口 1. 系統(tǒng)訪問類系統(tǒng)訪問類 在單用戶微型機中,一般沒有設置系統(tǒng)訪問命令; 然而在多用戶系統(tǒng)中,為了保證系統(tǒng)的安全性,都毫無例外地設置了系統(tǒng)訪問命令, 即注冊命令Login。 用戶在每次開始使用某終端時,都須使用該命令,使系統(tǒng)能識別該用戶。凡要在多用戶系統(tǒng)的終端上上機的用戶,都必須先在系統(tǒng)管理員處獲得一合法的注冊名和口令。以后,每當用戶在接通其所用終端的電源后,便由系統(tǒng)直接調用并在屏幕上顯示出以下的注冊命令: Login: /提示用戶鍵入自己的注冊名 當用戶鍵入正確的注冊名,并按下回車鍵后,屏幕上又會出現: Password: /提示用戶鍵入自己的口令第七章 操作系統(tǒng)接口 2.
3、 鍵盤操作命令鍵盤操作命令 (1) 磁盤格式化命令Format。 它被用于對指定驅動器上的軟盤進行格式化。 每張新盤在使用前都必須先格式化。 其目的是使其記錄格式能為操作系統(tǒng)所接受,可見,不同操作系統(tǒng)將磁盤初始化后的格式各異。此外,在格式化過程中,還將對有缺陷的磁道和扇區(qū)加保留記號,以防止將它分配給數據文件。 第七章 操作系統(tǒng)接口 (2) 復制整個軟盤命令Diskcopy。 該命令用于復制整個磁盤,另外它還有附加的格式化功能。 如果目標盤片是尚未格式化的,則該命令在執(zhí)行時, 首先將未格式化的軟盤格式化,然后再進行復制。 (3) 軟盤比較命令Diskcomp。 該命令用于將源盤與目標盤的各磁道及
4、各扇區(qū)中的數據逐一進行比較。 (4) 備份命令Backup。 該命令用于把硬盤上的文件復制到軟盤上;而RESTORE命令則完成相反的操作。 第七章 操作系統(tǒng)接口 3. 文件操作命令文件操作命令 (1) 顯示文件命令type。用于將指定文件顯示在屏幕上。 (2) 拷貝文件命令copy。 用于實現文件的拷貝。 (3) 文件比較命令comp。該命令用于對兩個指定文件進行比較。 兩文件可以在同一個或不同的驅動器上。 (4) 重新命名命令Rename。該命令用于將以第一參數命名的文件, 改成用第二參數給定的名字。 (5) 刪除文件命令erase。該命令用于刪除一個或一組文件,當參數路徑名為*.BAK時,
5、表示刪除指定目錄下的所有其擴展名為.Bak的文件。 第七章 操作系統(tǒng)接口 4. 目錄操作命令目錄操作命令 (1) 建立子目錄命令mkdir。 用于建立指定名字的新目錄。 (2) 顯示目錄命令dir。顯示指定磁盤中的目錄項。 (3) 刪除子目錄命令rmdir。該命令用于刪除指定的子目錄文件,但不能刪除普通文件,而且,一次只能刪除一個空目錄(其中僅含“.”和“.”兩個文件),不能刪除根及當前目錄。 (4) 顯示目錄結構命令tree。該命令用于顯示指定盤上的所有目錄路徑及其層次關系。 (5) 改變當前目錄命令chdir。該命令用于將當前目錄改變?yōu)橛陕窂矫麉到o定的目錄。用“.”作參數時,表示應返回到
6、上一級目錄下。 第七章 操作系統(tǒng)接口 5. 其它命令其它命令 (1) 輸入輸出重定向命令。 在有的OS中定義了兩個標準I/O設備。通常,命令的輸入取自標準輸入設備,即鍵盤;而命令的輸出通常是送往標準輸出設備, 即顯示終端。 如果在命令中設置輸出重定向“”符,其后接文件名或設備名, 表示將命令的輸出改向, 送到指定文件或設備上。類似地,若在命令中設置輸入重定向“”符, 則不再是從鍵盤而是從重定向符左邊參數所指定的文件或設備上,取得輸入信息。 第七章 操作系統(tǒng)接口 (2) 管道連接。 這是指把第一條命令的輸出信息作為第二條命令的輸入信息;類似地,又可把第二條命令的輸出信息作為第三條命令的輸入信息。
7、這樣,由兩個(含兩條)以上的命令可形成一條管道。在MS-DOS和UNIX中,都用“|”作為管道符號。其一般格式為: Command1 |Command2| | Commandn; 第七章 操作系統(tǒng)接口 (3) 過濾命令。 在UNIX及MS-DOS中,都有過濾命令,用于讀取指定文件或標準輸入,從中找出由參數指定的模式,然后把所有包含該模式的行都打印出來。 例如, MS-DOS中用命令 find/N“erase”(路徑名)可對由路徑名指定的輸入文件逐行檢索,把含有字符串“erase”的行輸出。其中, /N是選擇開關,表示輸出含有指定字串的行;如果不用N而用C, 則表示只輸出含有指定字串的行數;若用
8、V, 則表示輸出不含指定字串的行。 第七章 操作系統(tǒng)接口 (4) 批命令。 為了能連續(xù)地使用多條鍵盤命令,或多次反復地執(zhí)行指定的若干條命令, 而又免去每次重敲這些命令的麻煩,可以提供一特定文件。在MS-DOS中提供了一種特殊文件,其后綴名用“.BAT”;在UNIX系統(tǒng)中稱為命令文件。它們都是利用一些鍵盤命令構成一個程序,一次建立供多次使用。 在MS-DOS中用batch命令去執(zhí)行由指定或默認驅動器的工作目錄上指定文件中所包含的一些命令。 第七章 操作系統(tǒng)接口 7.1.2 鍵盤終端處理程序鍵盤終端處理程序 為了實現人機交互,還須在微機或終端上配置相應的鍵盤終端處理程序,它應具有下述幾方面的功能:
9、 (1) 接收用戶從終端上打入的字符。 (2) 字符緩沖, 用于暫存所接收的字符。 (3) 回送顯示。 (4) 屏幕編輯。 (5) 特殊字符處理。 第七章 操作系統(tǒng)接口 1. 字符接收功能字符接收功能 為了實現人機交互,鍵盤終端處理程序必須能夠接收從終端輸入的字符,并將之傳送給用戶程序。有兩種方式來實現字符接收功能: (1) 面向字符方式。面向字符方式。驅動程序只接收從終端打入的字符, 并且不加修改地將它傳送給用戶程序。這通常是一串未加工的ASCII碼。第七章 操作系統(tǒng)接口 (2) 面向行方式。面向行方式。 終端處理程序將所接收的字符暫存在行緩沖中, 并可對行內字符進行編輯。僅在收到行結束符后
10、, 才將一行正確的信息送命令解釋程序。在有的計算機中,從鍵盤硬件送出的是鍵的編碼(簡稱鍵碼),而不是ASCII碼。例如,當打入a鍵時,是將鍵碼“30”放入I/O寄存器,此時,終端處理程序必須參照某種表格,將鍵碼轉換成ASCII碼。應當注意,某些IBM的兼容機使用的不是標準鍵碼。此時,處理程序還須選用相應的表格將其轉換成標準鍵碼。 第七章 操作系統(tǒng)接口 2. 字符緩沖功能字符緩沖功能 (1) 專用緩沖方式。專用緩沖方式。 這是指系統(tǒng)為每個終端設置一個緩沖區(qū),暫存用戶鍵入的一批字符,緩沖區(qū)的典型長度為200個字符左右。這種方式較適合于單用戶微機或終端很少的多用戶機。當終端數目較多時,需要的緩沖數目
11、可能很大,且每個緩沖的利用率也很低。例如,當有100個終端時,要求有20 KB的緩沖區(qū)。 但專用緩沖方式可使終端處理程序簡化。 第七章 操作系統(tǒng)接口 (2) 公用緩沖方式。公用緩沖方式。 系統(tǒng)不必為每個終端設置專用緩沖區(qū), 只須設置一個由多個緩沖區(qū)構成的公用緩沖池。其中的每個緩沖區(qū)大小相同,如為20個字符,再將所有的空緩沖區(qū)鏈接成一個空緩沖區(qū)鏈。當終端有數據輸入時,可先向空緩沖區(qū)鏈申請一空緩沖區(qū)來接收輸入字符;當該緩沖區(qū)裝滿后,再申請一空緩沖區(qū)。這樣, 直至全部輸入完畢,并利用鏈接指針將這些裝有輸入數據的緩沖區(qū)鏈接成一條輸入鏈。每當該輸入鏈中一個緩沖區(qū)內的字符被全部傳送給用戶程序后,便將該緩沖
12、區(qū)從輸入鏈中移出,再重新鏈入空緩沖區(qū)鏈中。顯然,利用公用緩沖池方式可有效地提高緩沖的利用率。圖 7-1(b)示出了公用緩沖池方式。 第七章 操作系統(tǒng)接口 3. 回送顯示回送顯示 回送顯示(回顯)是指每當用戶從鍵盤輸入一個字符后,終端處理程序便將該字符送往屏幕顯示。有些終端的回顯由硬件實現, 其速度較快,但往往會引起麻煩。如當用戶鍵入口令時,為防止口令被盜用,顯然不該有回顯。此外,用硬件實現回顯也缺乏靈活性,因而近年來多改用軟件來實現回顯,這樣可以做到在用戶需要時才回顯。用軟件實現回顯,還可方便地進行字符變換,如將鍵盤輸入的小寫英文字母變成大寫, 或相反。 驅動程序在將輸入的字符送往屏幕回顯時,
13、應打印在正確的位置上;當光標走到一行的最后一個位置后,便應返回到下一行的開始位置。例如,當所鍵入的字符數目超過一行的80個(字符)時, 應自動地將下一個字符打印到下一行的開始位置。 第七章 操作系統(tǒng)接口 4. 屏幕編輯屏幕編輯 (1) 刪除字符鍵。 (2) 刪除一行鍵。 (3) 插入鍵。 (4) 移動光標鍵。 (5) 屏幕上卷或下移鍵, 等等。 第七章 操作系統(tǒng)接口 5. 特殊字符處理特殊字符處理 (1) 中斷字符。 當程序在運行中出現異常情況時,用戶可通過鍵入中斷字符的辦法來中止當前程序的運行。在許多系統(tǒng)中是利用Break或Delete或Ctrl+C鍵作為中斷字符。 (2) 停止上卷字符。
14、用戶鍵入此字符后,終端處理程序應使正在上卷的屏幕暫停上卷,以便用戶仔細觀察屏幕內容。在有的系統(tǒng)中,是利用Ctrl+S鍵來停止屏幕上卷的。第七章 操作系統(tǒng)接口 (3) 恢復上卷字符。 有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復上卷。終端處理程序收到該字符后, 便恢復屏幕的上卷功能。 上述的Ctrl+S與Ctrl+Q兩字符并不被存儲,而是被用去設置終端數據結構中的某個標志。每當終端試圖輸出時,都須先檢查該標志,若該標志已被設置,便不再把字符送至屏幕 第七章 操作系統(tǒng)接口 7.1.3 命令解釋程序命令解釋程序 1. 命令解釋程序的作用命令解釋程序的作用 在聯(lián)機操作方式下,終端處理程序把用戶鍵入的
15、信息送鍵盤緩沖區(qū)中保存。一旦用戶鍵入回車符,便立即把控制權交給命令處理程序。顯然,對于不同的命令,應有能完成特定功能的命令處理程序與之對應。可見,命令解釋程序的主要作用,是在屏幕上給出提示符,請用戶鍵入命令,然后讀入該命令,識別命令,再轉到相應命令處理程序的入口地址,把控制權交給該處理程序去執(zhí)行,并將處理結果送屏幕上顯示。 若用戶鍵入的命令有錯,而命令解釋程序未能予以識別,或在執(zhí)行中間出現問題時,則應顯示出某一出錯信息。 第七章 操作系統(tǒng)接口 2. 命令解釋程序的組成命令解釋程序的組成 (1) 常駐部分。 這部分包括一些中斷服務子程序。例如,正常退出中斷INT 20,它用于在用戶程序執(zhí)行完畢后
16、,退回操作系統(tǒng); 駐留退出中斷INT 27,用這種方式,退出程序可駐留在內存中;還有用于處理和顯示標準錯誤信息的INT 24等。常駐部分還包括這樣的程序:當用戶程序終止后,它檢查暫存部分是否已被用戶程序覆蓋,若已被覆蓋,便重新將暫存部分調入內存。 第七章 操作系統(tǒng)接口 (2) 初始化部分。 它跟隨在常駐內存部分之后,在啟動時獲得控制權。這部分還包括對AUTOEXEC.BAT文件的處理程序,并決定應用程序裝入的基地址。每當系統(tǒng)接電或重新啟動后,由處理程序找到并執(zhí)行AUTOEXEC.BAT文件。由于該文件在用完后不再被需要,因而它將被第一個由COMMAND.COM裝入的文件所覆蓋。 第七章 操作系
17、統(tǒng)接口 (3) 暫存部分。 這部分主要是命令解釋程序,并包含了所有的內部命令處理程序、批文件處理程序,以及裝入和執(zhí)行外部命令的程序。它們都駐留在內存中,但用戶程序可以使用并覆蓋這部分內存,在用戶程序結束時,常駐程序又會將它們重新從磁盤 第七章 操作系統(tǒng)接口 3. 命令解釋程序的工作流程命令解釋程序的工作流程 系統(tǒng)在接通電源或復位后,初始化部分獲得控制權,對整個系統(tǒng)完成初始化工作,并自動執(zhí)行AUTOEXEC.BAT文件, 之后便把控制權交給暫存部分。暫存部分首先讀入鍵盤緩沖區(qū)中的命令,判別其文件名、擴展名及驅動器名是否正確。 若發(fā)現有錯,在給出出錯信息后返回;若無錯,再識別該命令。一種簡單的識別
18、命令的方法是基于一張表格,其中的每一表目都是由命令名及其處理程序的入口地址兩項所組成。 如果暫存部分在該表中能找到鍵入的命令,且是內部命令,便可以直接從對應表項中獲得該命令處理程序的入口地址,然后把控制權交給該處理程序去執(zhí)行該命令。 第七章 操作系統(tǒng)接口 7.2 Shell命令語言命令語言 7.2.1 簡單命令簡單命令 所謂簡單命令,實際上是一個能完成某種功能的目標程序的名字。UNIX系統(tǒng)規(guī)定的命令由小寫字母構成(但僅前8個字母有效)。命令可帶有參數表,用于給出執(zhí)行命令時的附加信息。命令名與參數表之間還可使用一種稱為選項的自變量, 用破折號開始,后跟一個或多個字母、數字。 $ Command-
19、option argument list例如: $ LS file1 file2 第七章 操作系統(tǒng)接口 這是一條不帶選項的列目錄命令,$是系統(tǒng)提示符。該命令用于列出file1和file2兩個目錄文件中所包含的目錄項, 并隱含地指出按英文字母順序列表。若給出tr選項,該命令可表示成: $ LS-tr file1 file 2 其中,選項t和r分別表示按最近修改次序及按反字母順序列表。通常,命令名與該程序的功能緊密相關,以便于記憶。命令參數可多可少,也可缺省。 第七章 操作系統(tǒng)接口 例如: $ LS 表示自動以當前工作目錄為缺省參數,打印出當前工作目錄所包含的目錄項。簡單命令的格式比較自由,包括命
20、令名字符的個數及用于分隔命令名、選項、各參數間的空格數等,都是任意的。簡單命令的數量易于擴充。 系統(tǒng)管理員與用戶自行定義的命令,其執(zhí)行方式與系統(tǒng)標準命令的執(zhí)行方式相同。第七章 操作系統(tǒng)接口 1. 進入與退出系統(tǒng)進入與退出系統(tǒng) (1) 進入系統(tǒng),也稱為注冊。事先, 用戶須與系統(tǒng)管理員商定一個唯一的用戶名。管理員用該名字在系統(tǒng)文件樹上,為用戶建立一個子目錄樹的根結點。當用戶打開自己的終端時,屏幕上會出現Login:提示,這時用戶便可鍵入自己的注冊名,并用回車符結束。然后,系統(tǒng)又詢問用戶口令,用戶可用回車符或事先約定的口令鍵入。第七章 操作系統(tǒng)接口 (2) 退出系統(tǒng)。退出系統(tǒng)。 每當用戶用完系統(tǒng)后,
21、應向系統(tǒng)報告自己不再往系統(tǒng)裝入任何處理要求。系統(tǒng)得知后,便馬上為用戶記賬, 清除用戶的使用環(huán)境。 若用戶使用系統(tǒng)是免費的,退出操作僅僅是一種禮貌。如果用戶使用的是多終端中的一個終端,為了退出,用戶只須按下Control-D鍵即可,系統(tǒng)會重新給出提示符即Login,以表明該終端可供另一新用戶使用。 用戶的進入與退出過程,實際上是由系統(tǒng)直接調用Login及Logout程序完成的。 第七章 操作系統(tǒng)接口 2. 文件操作命令文件操作命令 (1) 顯示文件內容命令cat。如果用戶想了解自己在當前目錄中的某個或某幾個指定文件的內容時,便可使用下述格式的cat命令: $ cat filename1 file
22、name2 (2) 復制文件副本的命令cp。其格式為: cp source target該命令用于對已存在的文件source建立一個名為target的副本。 第七章 操作系統(tǒng)接口 (3) 對已有文件改名的命令mv。 其格式為: mv oldname newname 用于把原來的老名字改成指定的新名字。 (4) 撤消文件的命令rm。它給出一個參數表, 是要撤消的文件名清單。 (5) 確定文件類型的命令file。該命令帶有一個參數表, 用于給出想了解其(文件)類型的文件名清單。命令執(zhí)行的結果,將在屏幕上顯示出各個文件的類型。 第七章 操作系統(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)訪問當前日期和時間命令date。例如,用命令 $ date 屏幕上將給出當前的日期和時間,如為: Wed Ang 14 09:27:20 PDT 1991 表示當前日期是1991年9月14日、星期三,還有時間信息若在命令名后給出參數,則date程序把參數作為重置系統(tǒng)時鐘的時間。 第七章 操作系統(tǒng)接口 (
24、2) 詢問系統(tǒng)當前用戶的命令who。 who命令可列出當前每一個處在系統(tǒng)中的用戶的注冊名、終端名和注冊進入時間,并按終端標志的字母順序排序。例如,報告有下列三用戶: Veronica bxo66 Aug 27 13:28 Rathomas dz24 Aug 28 07:42 Jlyates tty5 Aug 28 07:39第七章 操作系統(tǒng)接口 (3) 顯示當前目錄路徑名的命令pwd。當前目錄的路徑名是從根結點開始,通過分支上的所有結點到達當前目錄結點為止的路徑上的所有結點的名字拼起來構成的。 用戶的當前目錄可能經常在樹上移動。如果用戶忘記了自己在哪里,便可用pwd確定自己的位置。 第七章 操
25、作系統(tǒng)接口 7.2.2 重定向與管道命令重定向與管道命令 1. 重定向命令重定向命令 在UNIX系統(tǒng)中,由系統(tǒng)定義了三個文件。其中,有兩個分別稱為標準輸入和標準輸出的文件,各對應于終端鍵盤輸入和終端屏幕輸出。它們是在用戶注冊時,由Login程序打開的。 這樣,在用戶程序執(zhí)行時,隱含的標準輸入是鍵盤輸入,標準輸出即屏幕(輸出)顯示。但用戶程序中可能不要求從鍵盤輸入,而是從某個指定文件上讀取信息供程序使用;同樣,用戶可能希望把程序執(zhí)行時所產生的結果數據,寫到某個指定文件中而非屏幕上。這就使用戶必須去改變輸入與輸出文件,即不使用標準輸入、標準輸出,而是把另外的某個指定文件或設備,作為輸入或輸出文件。
26、 第七章 操作系統(tǒng)接口 Shell向用戶提供了這種用于改變輸入、輸出設備的手段,此即標準輸入與標準輸出的重新定向。用重定向符“”和“”分別表示輸入轉向與輸出轉向。例如, 對于命令 $ cat file1 表示將文件file1的內容,在標準輸出上打印出來。若改變其輸出,用命令 $ cat file1file2 時,表示把文件file1的內容,打印輸出到文件file2上。同理, 對于命令 $ wc 表示對標準輸入中的行中字和字符進行計數。 若改變其輸入, 用命令 第七章 操作系統(tǒng)接口 $ wcfile3 則表示把從文件file3中讀出的行中的字和字符進行計數。 須指明的是,在做輸出轉向時,若上述的
27、文件file2并不存在,則先創(chuàng)建它;若已存在,則認為它是空白的,執(zhí)行上述輸出轉向命令時,是用命令的輸出數據去重寫該文件;如果文件file2事先已有內容,則命令執(zhí)行結果將用文件file1的內容去更新文件file2的原有內容。現在,如果又要求把file4的內容附加到現有的文件file2的末尾,則應使用另一個輸出轉向符“”, 即此時應再用命令 $ cat file4file2 第七章 操作系統(tǒng)接口 便可在文件file2中,除了上次復制的file1內容外,后面又附加了file4的內容。 當然,若想一次把兩個文件file1和file4全部復制到file2中,則可用命令 $ cat file1 file4
28、file2 此外,也可在一個命令行中,同時改變輸入與輸出。例如, 命令行 a.outfile1file0 表示,在可執(zhí)行文件a.out執(zhí)行時,將從文件file1中提取數據, 而把a.out的執(zhí)行結果數據輸出到文件file0中。 第七章 操作系統(tǒng)接口 2. 管道命令管道命令 在有了上述的重定向思想后,為了進一步增強功能, 人們又進一步把這種思想加以擴充,用符號“|”來連接兩條命令,使其前一條命令的輸出作為后一條命令的輸入。 即 $ command 1|command 2 例如,對于下述輸入 cat file|wc 將使命令cat把文件file中的數據,作為wc命令的計數用輸入。 第七章 操作系統(tǒng)
29、接口 7.2.3 通信命令通信命令 1. 信箱通信命令信箱通信命令mail 它被作為在UNIX的各用戶之間, 進行非交互式通信的工具。mail采用信箱通信方式。發(fā)信者把要發(fā)送的消息寫成信件,“郵寄”到對方的信箱中。通常各用戶的私有信箱采用各自的注冊名命名,即它是目錄/usr/spool/mail中的一個文件,而文件名又是用接收者的注冊名來命名的。信箱中的信件可以一直保留到被信箱所有者消除為止。因而,用mail進行通信時,不要求接收者利用終端與發(fā)送者會話。亦即,在發(fā)信者發(fā)送信息時,雖然接收者已在系統(tǒng)中注冊過,但允許他此時沒有使用系統(tǒng);也可以是雖在使用系統(tǒng),但拒絕接收任何信息。 第七章 操作系統(tǒng)接
30、口 接收者也用mail命令讀取信件,可使用可選項r、q或p等。 其命令格式為: mail-r-q-p-file-F persons由于信箱中可存放所接收的多個信件,這就存在一個選取信件的問題。上述幾個選項分別表示:按先進先出順序顯示各信件的內容;在打入中斷字符(DEL或RETURN)后,退出mail程序而不改變信箱的內容;以及一次性地顯示信箱全部內容而不帶詢問,把指定文件當作信件來顯示。在不使用-p選項時,表示在顯示完一個信件后,便出現“?”,以詢問用戶是否繼續(xù)顯示下一條消息,或選讀完最后一條消息后退出mail。 第七章 操作系統(tǒng)接口 2. 對話通信命令對話通信命令write 命令格式為: w
31、rite userttyname 當接收者只有一個終端時,終端名可缺省。當接收者的終端被允許接收消息時,屏幕提示會通知接收者源用戶名及其所用終端名。 第七章 操作系統(tǒng)接口 3. 允許或拒絕接收消息的允許或拒絕接收消息的mesg命令命令 其格式為: mesg-n-y選項n表示拒絕對方的寫許可(即拒絕接收消息);選項y指示恢復對方的寫許可,僅在此時,雙方才可聯(lián)機通信。當用戶正在聯(lián)機編寫一份資料而不愿被別人干擾時,常選用n選項來拒絕對方的寫許可。編輯完畢,再用帶有y選項的mesg命令來恢復對方的寫許可,不帶自變量的mesg命令只報告當前狀態(tài)而不改變它。 第七章 操作系統(tǒng)接口 7.2.4 后臺命令后臺
32、命令 UNIX系統(tǒng)提供了這種機制, 用戶可以在這種命令后面再加上“&”號,以告訴Shell將該命令放在后臺執(zhí)行, 以便用戶在前臺繼續(xù)鍵入其它命令。 在后臺運行的程序仍然把終端作為它的標準輸出和標準錯誤文件,除非對它們進行重新定向。其標準輸入文件是自動地被從終端定向到一個被稱為“/dev/null”的空文件中。若shell未重定向標準輸入, 則shell和后臺進程將會同時從終端進行讀入。這時,用戶從終端鍵入的字符可能被發(fā)送到一個進程或另一個進程, 并不能預測哪個進程將得到該字符。第七章 操作系統(tǒng)接口 7.3 系系 統(tǒng)統(tǒng) 調調 用用 7.3.1 系統(tǒng)調用的基本概念系統(tǒng)調用的基本概念 (1) 運行在
33、不同的系統(tǒng)狀態(tài)。 (2) 通過軟中斷進入。(3) 返回問題。(4) 嵌套調用。第七章 操作系統(tǒng)接口 7.3.2 系統(tǒng)調用的類型系統(tǒng)調用的類型 1. 進程控制類系統(tǒng)調用進程控制類系統(tǒng)調用 (1) 創(chuàng)建和終止進程的系統(tǒng)調用。 (2) 獲得和設置進程屬性的系統(tǒng)調用。 (3) 等待某事件出現的系統(tǒng)調用。 第七章 操作系統(tǒng)接口 2. 文件操縱類系統(tǒng)調用文件操縱類系統(tǒng)調用 (1) 創(chuàng)建和刪除文件。 (2) 打開和關閉文件。 (3) 讀和寫文件。 第七章 操作系統(tǒng)接口 3. 進程通信類系統(tǒng)調用進程通信類系統(tǒng)調用 在OS中經常采用兩種進程通信方式,即消息傳遞方式和共享存儲區(qū)方式。當系統(tǒng)中采用消息傳遞方式時,在
34、通信前, 必須先打開一個連接。為此,應由源進程發(fā)出一條打開連接的系統(tǒng)調用open connection, 而目標進程則應利用接受連接的系統(tǒng)調用accept connection表示同意進行通信;然后, 在源和目標進程之間便可開始通信。 可以利用發(fā)送消息的系統(tǒng)調用send message或者用接收消息的系統(tǒng)調用receive message來交換信息。通信結束后,還須再利用關閉連接的系統(tǒng)調用close connection結束通信。 第七章 操作系統(tǒng)接口 7.3.3 系統(tǒng)調用的實現系統(tǒng)調用的實現 1. 中斷和陷入硬件機構中斷和陷入硬件機構 (1) 什么是中斷和陷入。 中斷是指CPU對系統(tǒng)發(fā)生某事
35、件時的這樣一種響應:CPU暫停正在執(zhí)行的程序,在保留現場后自動地轉去執(zhí)行該事件的中斷處理程序;執(zhí)行完后,再返回到原程序的斷點處繼續(xù)執(zhí)行 。第七章 操作系統(tǒng)接口 (2) 中斷和陷入向量。 第七章 操作系統(tǒng)接口 2. 系統(tǒng)調用號和參數的設置系統(tǒng)調用號和參數的設置 (1) 直接將參數送入相應的寄存器中。 (2) 參數表方式。 圖 7 - 6 系統(tǒng)調用的參數形式 第七章 操作系統(tǒng)接口 3. 系統(tǒng)調用的處理步驟系統(tǒng)調用的處理步驟 首先,將處理機狀態(tài)由用戶態(tài)轉為系統(tǒng)態(tài);之后,由硬件和內核程序進行系統(tǒng)調用的一般性處理,即首先保護被中斷進程的CPU環(huán)境,將處理機狀態(tài)字PSW、程序計數器PC、系統(tǒng)調用號、用戶棧
36、指針以及通用寄存器內容等,壓入堆棧;然后,將用戶定義的參數傳送到指定的地方保存起來。 其次,是分析系統(tǒng)調用類型,轉入相應的系統(tǒng)調用處理子程序。 最后,在系統(tǒng)調用處理子程序執(zhí)行完后,應恢復被中斷的或設置新進程的CPU現場,然后返回被中斷進程或新進程, 繼續(xù)往下執(zhí)行。 第七章 操作系統(tǒng)接口 4. 系統(tǒng)調用處理子程序的處理過程系統(tǒng)調用處理子程序的處理過程 進入Creat的處理子程序后,核心將根據用戶給定的文件路徑名Path, 利用目錄檢索過程,去查找指定文件的目錄項。查找目錄的方式可以用順序查找法,也可用Hash查找法。如果在文件目錄中找到了指定文件的目錄項,表示用戶要利用一個已有文件來建立一個新文
37、件。但如果在該已有(存)文件的屬性中有不允許寫屬性,或者創(chuàng)建者不具有對該文件進行修改的權限,使認為是出錯而做出錯處理;若不存在訪問權限問題,便將已存文件的數據盤塊釋放掉,準備寫入新的數據文件。如未找到指名文件,則表示要創(chuàng)建一個新文件,核心便從其目錄文件中找出一個空目錄項,并初始化該目錄項,包括填寫文件名、文件屬性、文件建立日期等,然后將新建文件打開。 第七章 操作系統(tǒng)接口 7.4 UNIX系統(tǒng)調用系統(tǒng)調用 7.4.1 UNIX系統(tǒng)調用的類型系統(tǒng)調用的類型 1. 進程控制進程控制 (1) 創(chuàng)建進程(fork)。(2) 終止進程(exit)。 (3) 等待子進程結束(wait)。 (4) 執(zhí)行一個
38、文件(exec)。 (5) 獲得進程ID。 (6) 獲得用戶ID。 (7) 進程暫停(pause)。 第七章 操作系統(tǒng)接口 2. 文件操縱文件操縱 (1) 創(chuàng)建文件(creat)。 (2) 打開文件(open)。 (3) 關閉文件(close)。 (4) 讀和寫文件read和write。 (5) 連接和去連接(link和unlink)。 文件描述符fd; buf緩沖區(qū)首址。 用戶要求傳送的字節(jié)數nbyte。 第七章 操作系統(tǒng)接口 3. 進程間通信進程間通信 (1) 消息機制。 (2) 共享存儲器機制。 (3) 信號量機制。 第七章 操作系統(tǒng)接口 4. 信息維護信息維護 (1) 設置和獲得時間。
39、(2) 獲得進程和子進程時間(times)。 (3) 設置文件訪問和修改時間(utime)。 (4) 獲得當前UNIX系統(tǒng)的名稱(uname)。 第七章 操作系統(tǒng)接口 7.4.2 被中斷進程的環(huán)境保護被中斷進程的環(huán)境保護 1. CPU環(huán)境保護環(huán)境保護 當用戶程序處在用戶態(tài),且在執(zhí)行系統(tǒng)調用命令(即CHMK命令)之前,應在用戶空間提供系統(tǒng)調用所需的參數表,并將該參數表的地址送入R0寄存器。在執(zhí)行CHMK命令后,處理機將由用戶態(tài)轉為核心態(tài),并由硬件自動地將處理機狀態(tài)長字(PSL)、程序計數器(PC)和代碼操作數(code)壓入用戶核心棧,繼而從中斷和陷入向量表中取出trap.S的入口地址然后便轉入
40、中斷和陷入總控程序trap.S中執(zhí)行。 第七章 操作系統(tǒng)接口 trap.S程序執(zhí)行后,繼續(xù)將陷入類型type和用戶棧指針usp壓入用戶核心棧,接著還要將被中斷進程的CPU環(huán)境中的一系列寄存器如R0R11的部分或全部內容壓入棧中。至于哪些寄存器的內容要壓入棧中,這取決于特定寄存器中的屏蔽碼,該屏蔽碼的每一位都與R0R11中的一個寄存器相對應。當某一位置成1時,表示對應寄存器的內容應壓入棧中。 第七章 操作系統(tǒng)接口 2. AP和和FP指針指針 圖 7 - 7 用戶核心棧 第七章 操作系統(tǒng)接口 7.4.3 系統(tǒng)調用陷入后需處理的若干公共問題系統(tǒng)調用陷入后需處理的若干公共問題 1. 確定系統(tǒng)調用號確定
41、系統(tǒng)調用號 trap(usp, type, code, PC, PSL)其中,參數PSL為陷入時處理機狀態(tài)字長,PC為程序計數器,code為代碼操作數,type為陷入類型號,usp為用戶棧指針。對陷入的處理可分為多種情況,如果陷入是由于系統(tǒng)調用所引起的,則對此陷入的第一步處理, 便是確定系統(tǒng)調用號。通常,系統(tǒng)調用號是包含在代碼操作數中,故可利用code來確定系統(tǒng)調用號i。 其方法是: 令 i=code & 0377 第七章 操作系統(tǒng)接口 2. 參數傳送參數傳送 這是對因系統(tǒng)調用引起的陷入的第二步處理。參數傳送是指由trap.C程序將系統(tǒng)調用參數表中的內容,從用戶區(qū)傳送到User結構的U.U-arg 中,供系統(tǒng)調用處理程序使用。由于用戶程序在執(zhí)行系統(tǒng)調用命令之前,已將參數表的首址放入R0寄存器中,在進入trap.C程序后,該程序便將該首址賦予U.U-arg 指針, 因此, trap.C在處理參數傳送時,可讀取該指針的內容,以獲得用戶所提供的參數表, 并將之送至U.U-arg 中。應當注意,對不同的系統(tǒng)調用所需傳送參數的個數并不相同,trap.C程序應根據在系統(tǒng)調用定義表中所規(guī)定的參數個數來進行傳送,最多允許10個參數。 第七章 操作系統(tǒng)接口 3. 利用系統(tǒng)調用定義表轉入相應的處理程序利用系統(tǒng)調用定義表轉入相應的處理程序 在U
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流園區(qū)承包租賃管理合同4篇
- 2025年度35KV變電站電氣設備改造工程咨詢合同3篇
- 二零二五年度洗浴中心品牌連鎖加盟承包合作協(xié)議3篇
- 二零二五版旅游車輛租賃合同(含景區(qū)交通票務服務)3篇
- 2025年度棉花產業(yè)節(jié)能減排技術合作合同4篇
- 2025年度定制化產品物流配送承包合同4篇
- 二零二五年度節(jié)水灌溉項目設計施工一體化合同4篇
- 二零二五年度洗碗設備節(jié)能改造合同4篇
- 中藥材2024年進出口合同
- 2025年度文化演出活動聘用勞務合同范本4篇
- 《工貿企業(yè)有限空間作業(yè)安全規(guī)定》知識培訓
- 高層次人才座談會發(fā)言稿
- 垃圾清運公司管理制度(人員、車輛、質量監(jiān)督、會計管理制度)
- 《建筑工程設計文件編制深度規(guī)定》(2022年版)
- 營銷人員薪酬考核方案
- 2024年版的企業(yè)績效評價標準
- 2024至2030年中國it外包服務行業(yè)市場深度分析及發(fā)展趨勢預測報告
- 工程項目計價結算付款情況統(tǒng)計表
- GB/T 20554-2024海帶
- 廣東廣州中醫(yī)藥大學第一附屬醫(yī)院招聘筆試真題2022
- ISO 15189醫(yī)學實驗室認可內審員培訓試題附答案
評論
0/150
提交評論