版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第2章 操作系統(tǒng)用戶界面2.1 簡介 2.2一般用戶的輸入輸出界面 2.3 命令控制界面2.4 Linux與Windows的命令控制界面 2.5 系統(tǒng)調(diào)用 2.6 Linux與Windows的系統(tǒng)調(diào)用本章小結(jié)習(xí)題2.1 簡介計(jì)算機(jī)系統(tǒng)用戶分類操作系統(tǒng)為普通用戶與管理員用戶提供不同的用戶界面不同計(jì)算機(jī)操作系統(tǒng)為用戶提供的界面不同操作系統(tǒng)的操作命令界面稱為命令控制界面圖2.1 一般編程過程2.2 一般用戶的輸入輸出界面 2.2.1作業(yè)的定義 在圖2.1中,直到編輯為止的各步都可認(rèn)為是可由人工獨(dú)立完成的(盡管也有許多支撐軟件存在),但從編輯輸入開始的以下各步卻是在用戶的要求控制下由計(jì)算機(jī)完成。在一次
2、應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到輸出結(jié)束,用戶要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部工作稱為一個(gè)作業(yè)。作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個(gè)作業(yè)的處理過程中,計(jì)算機(jī)所做的相對獨(dú)立的工作。一般來說,每一個(gè)作業(yè)步產(chǎn)生下一個(gè)作業(yè)步的輸入文件。從系統(tǒng)的角度看,作業(yè)則是一個(gè)比程序更廣的概念。它由程序、數(shù)據(jù)和作業(yè)說明書組成。系統(tǒng)通過作業(yè)說明書控制文件形式的程序和數(shù)據(jù),使之執(zhí)行和操作。而且,在批處理系統(tǒng)中,作業(yè)是搶占內(nèi)存的基本單位。也就是說,批處理系統(tǒng)以作業(yè)為單位把程序和數(shù)據(jù)調(diào)入內(nèi)存以便執(zhí)行。需要說明的是,作業(yè)的概念一般用于早期批處理系統(tǒng)和現(xiàn)在的大型機(jī)、巨型機(jī)系統(tǒng)中,對于廣為流行的微機(jī)和工作站系統(tǒng)
3、,人們一般不太使用作業(yè)的概念。2.2.2 作業(yè)組織如上所述,作業(yè)由三部分組成,即程序、數(shù)據(jù)和作業(yè)說明書。一個(gè)作業(yè)可以包含多個(gè)程序和多個(gè)數(shù)據(jù)集,但必須至少包含一個(gè)程序。否則將不成為作業(yè)。作業(yè)中包含的程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作。作業(yè)說明書則體現(xiàn)用戶的控制意圖。由作業(yè)說明書在系統(tǒng)中生成一個(gè)稱為作業(yè)控制塊(job control block,JCB)的表格。該表格登記該作業(yè)所要求的資源情況、預(yù)計(jì)執(zhí)行時(shí)間和執(zhí)行優(yōu)先級等。從而,操作系統(tǒng)通過該表了解到作業(yè)要求,并分配資源和控制作業(yè)中程序和數(shù)據(jù)的編譯、鏈接、裝入和執(zhí)行等。作業(yè)說明書主要包含三方面內(nèi)容,即作業(yè)的基本描述、作業(yè)控制描述和資源要求描述。
4、作業(yè)基本描述包括用戶名、作業(yè)名、使用的編程語言名、允許的最大處理時(shí)間等。而作業(yè)控制描述則大致包括作業(yè)在執(zhí)行過程中的控制方式。資源要求描述包括要求內(nèi)存大小、外設(shè)種類和臺數(shù)、處理機(jī)優(yōu)先級、所需處理時(shí)間、所需庫函數(shù)或?qū)嵱贸绦虻?。作業(yè)說明書的主要內(nèi)容如圖2.2 所示。一般來說,作業(yè)說明書方式主要用在批處理系統(tǒng)中,且各計(jì)算機(jī)廠家都對自己的系統(tǒng)定義有各自的作業(yè)說明書的格式和內(nèi)容。另外,在微機(jī)系統(tǒng)和工作站系統(tǒng)中,人們常用批處理文件或shell程序方式編寫作業(yè)說明書。圖2.2 作業(yè)說明書的主要內(nèi)容2.2.3 作業(yè)輸入輸出方式作業(yè)輸入方式可分為5種,即聯(lián)機(jī)輸入方式、脫機(jī)輸入方式、直接耦合方式、SPOOLING(
5、Simultaneous Peripheral Operations On-Line)系統(tǒng)和網(wǎng)絡(luò)輸入方式。1. 聯(lián)機(jī)輸入方式大多用在交互式系統(tǒng)中,用戶和系統(tǒng)通過交互會話來輸入作業(yè)。外圍設(shè)備直接和主機(jī)相連接。一臺主機(jī)可以連接一臺或多臺外圍設(shè)備。在單臺設(shè)備和主機(jī)相連接進(jìn)行作業(yè)輸入時(shí),由于外圍設(shè)備的輸入輸出速度遠(yuǎn)遠(yuǎn)低于CPU處理速度,有可能造成CPU資源的浪費(fèi)。如果使用多臺外圍設(shè)備同時(shí)聯(lián)機(jī)輸入的話,則又成為下面將要介紹的SPOOLING系統(tǒng)。2. 脫機(jī)輸入方式又稱為預(yù)輸入方式。脫機(jī)輸入方式利用低檔個(gè)人計(jì)算機(jī)作為外圍處理機(jī)進(jìn)行輸入處理。在低檔個(gè)人機(jī)上,用戶通過聯(lián)機(jī)方式把作業(yè)首先輸入到后援存儲器,例如磁
6、盤或磁帶上;然后,用戶把裝有輸入數(shù)據(jù)的后援存儲器拿到主機(jī)的高速外圍設(shè)備上和主機(jī)連接,從而在較短的時(shí)間內(nèi)完成作業(yè)的輸入工作。3. 直接耦合方式保留脫機(jī)輸入方式的快速輸入的優(yōu)點(diǎn),又沒有脫機(jī)輸入方式的人工干預(yù)的缺點(diǎn)和具有較強(qiáng)靈活性的輸入方式是直接耦合方式。直接耦合方式把主機(jī)和外圍低檔機(jī)通過一個(gè)公用的大容量外存直接耦合起來,從而省去了在脫機(jī)輸入中那種依靠人工干預(yù)來傳遞后援存儲器的過程。在直接耦合方式中,慢速的輸入輸出過程仍由外圍低檔機(jī)自己管理,而對公用存儲器中的大量數(shù)據(jù)的高速讀寫則由主機(jī)完成。直接耦合方式的原理如圖2.3所示。圖2.3 直接耦合輸入方式4. SPOOLING系統(tǒng)SPOOLING又可譯作
7、外圍設(shè)備同時(shí)聯(lián)機(jī)操作。SPOOLING系統(tǒng)的工作原理如圖2.4所示。在SPOOLING系統(tǒng)中,多臺外圍設(shè)備通過通道或DMA器件和主機(jī)與外存連接起來。作業(yè)的輸入輸出過程由主機(jī)中的操作系統(tǒng)控制。操作系統(tǒng)中的輸入程序包含兩個(gè)獨(dú)立的過程,一個(gè)過程負(fù)責(zé)從外部設(shè)備把信息讀入緩沖區(qū);另一個(gè)是寫過程,負(fù)責(zé)把緩沖區(qū)的信息送到外存輸入井中。這里,外圍設(shè)備既可以是各種終端,也可以是其他的輸入設(shè)備,例如紙帶輸入機(jī)或讀卡機(jī)等。圖2.4 SPOOLING系統(tǒng)5. 網(wǎng)絡(luò)輸入方式網(wǎng)絡(luò)輸入方式以上述幾種輸入方式為基礎(chǔ)。當(dāng)用戶需要把在計(jì)算機(jī)網(wǎng)絡(luò)中某一臺主機(jī)上輸入的信息傳送到同一網(wǎng)中另一臺主機(jī)上進(jìn)行操作或執(zhí)行時(shí),就構(gòu)成了網(wǎng)絡(luò)輸入方
8、式。因?yàn)榫W(wǎng)絡(luò)輸入方式涉及到不同計(jì)算機(jī)間的通信問題,且該問題的討論已超出了本書的范圍,因此,本書中不準(zhǔn)備進(jìn)一步討論。2.3 命令控制界面操作系統(tǒng)為用戶提供兩個(gè)接口界面。一個(gè)是系統(tǒng)為用戶提供的各種命令接口界面。用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計(jì)算機(jī)系統(tǒng)。另一個(gè)接口是系統(tǒng)調(diào)用。編程人員使用系統(tǒng)調(diào)用來請求操作系統(tǒng)提供服務(wù)。操作系統(tǒng)的命令控制界面就是用來組織和控制作業(yè)運(yùn)行的。使用操作命令進(jìn)行作業(yè)控制的主要方式有兩種。脫機(jī)方式即用戶將作業(yè)的執(zhí)行順序和出錯處理方法一并以作業(yè)控制說明書的方式或命令文件方式提交給系統(tǒng),由系統(tǒng)按照作業(yè)說明書或命令文件中所規(guī)定的順序控制作業(yè)執(zhí)行。執(zhí)行過程中,用戶無法
9、干涉,只能等待作業(yè)正常執(zhí)行結(jié)束或出錯停止之后查看執(zhí)行結(jié)果或出錯信息,以便修改作業(yè)內(nèi)容或控制過程。脫機(jī)控制方式利用作業(yè)控制語言來編寫表示用戶控制意圖的作業(yè)控制程序,也就是作業(yè)說明書。作業(yè)控制語言的語句就是作業(yè)控制命令。不同的批處理系統(tǒng)提供不同的作業(yè)控制語言。聯(lián)機(jī)控制方式不要求用戶填寫作業(yè)說明書,系統(tǒng)只為用戶提供一組鍵盤或其他操作方式的命令。用戶使用系統(tǒng)提供的操作命令和系統(tǒng)會話,交互地控制程序執(zhí)行和管理計(jì)算機(jī)系統(tǒng)。其工作過程是,用戶在系統(tǒng)給出的提示符下敲入特定的命令,系統(tǒng)在執(zhí)行完該命令后向用戶報(bào)告執(zhí)行結(jié)果;然后,用戶決定下一步的操作。如此反復(fù),直到作業(yè)執(zhí)行結(jié)束。凡是使用過DOS、Windows或U
10、NIX系統(tǒng)的讀者,對聯(lián)機(jī)控制方式都應(yīng)該是不陌生的。與脫機(jī)控制方式相比,聯(lián)機(jī)控制方式的命令種類要豐富得多。這些命令可大致分為以下幾類:(1) 環(huán)境設(shè)置。(2) 執(zhí)行權(quán)限管理。(3) 系統(tǒng)管理。(4) 文件管理。(5) 編輯、編譯、鏈接裝配和執(zhí)行。 (6) 通信。(7) 資源要求。聯(lián)機(jī)控制方式大大地方便了用戶。但在某些情況下,用戶反復(fù)輸入眾多的命令也會浪費(fèi)不必要的時(shí)間。因此,在現(xiàn)代操作系統(tǒng)中,大都提供批處理方式和聯(lián)機(jī)控制方式。這里,批處理方式既指傳統(tǒng)的作業(yè)控制語言編寫的作業(yè)說明書方式,也指那些把不同的交互命令按一定格式組合后的命令文件方式。近年來,命令控制界面的人機(jī)交互方式發(fā)生了革命性變化。無論是
11、Windows系列,還是UNIX系列的操作系統(tǒng),它們的命令控制界面都是由多窗口的按鈕式圖形界面組成。在這些系統(tǒng)中,命令已被開發(fā)成一條條能用鼠標(biāo)點(diǎn)擊而執(zhí)行的簡單的菜單或小巧的圖標(biāo)。而且,用戶也可以在提示符的提示下用普通字符方式輸入各種命令??梢灶A(yù)計(jì),計(jì)算機(jī)系統(tǒng)的命令控制界面將會越來越方便和越來越擬人化。2.4 Linux與Windows的命令控制界面 2.4.1 Linux的命令控制界面 圖2.5 Ubuntu系統(tǒng)的窗口界面示例常用linux命令cp file1 file2 文件復(fù)制cat file1 在屏幕上打印文件pwd 顯示當(dāng)前工作目錄ls 列出目錄內(nèi)容mkdir 創(chuàng)建目錄rmdir 刪除
12、目錄cd 改變目錄vi 編輯文件 :wq filename 保存文件 :q! 不保存退出Gcc test.c 編譯test.c 生成a.out 文件./a.out 運(yùn)行a.outFind / -name ls 在根目錄下查找ls文件Grep F test /etc/passwd 查找test用戶建立并且運(yùn)行一個(gè)腳本 執(zhí)行腳本 正好自己寫一下腳本。建立一個(gè)目錄 /scripts 來存放你的腳本將會是個(gè)好主意。把此目錄添加到 PATH 變量中: export PATH=$PATH:/scripts 這是執(zhí)行腳本最普通的方法。在子shell中一般都是這么執(zhí)行腳本。建立在子shell中的變量,函數(shù)和別
13、名等只有子shell使用。當(dāng)那個(gè)shell退出,父shell重新得到控制的時(shí)候,所有的東西都被清空,腳本對shell狀態(tài)所作的改變耶全部清除。如果你沒有把 scripts的目錄放到PATH里面,當(dāng)前目錄也不在PATH變量中,那么你可以這樣來執(zhí)行腳本: ./script_name.sh 腳本基礎(chǔ) 哪個(gè)Shell來執(zhí)行腳本? 當(dāng)在子shell運(yùn)行腳本時(shí),你應(yīng)該定義哪個(gè)shell來運(yùn)行腳本,你編寫的腳本的shell類型可能不是你系統(tǒng)默認(rèn)的,所以用錯誤的shell來運(yùn)行你輸入的命令可能最終出錯。第一行決定了啟動的shell,第一行的開始2個(gè)字符應(yīng)該是#!,然后緊跟解釋后面命令的shell的路徑??瞻仔?/p>
14、也被認(rèn)為是一行,所以不要讓你的腳本以空白行開始。 出于本教程的考慮,所有的腳本都這樣開頭:#!/bin/bash 和先前提到過的一樣,這樣表明Bash可以在 /bin 里面找到。加入注釋 你應(yīng)該知道事實(shí)上你不會閱讀你自己腳本的唯一的一個(gè)人。很多用戶和系統(tǒng)管理員運(yùn)行別人編寫的腳本。如果他們想知道你是如何做到的,注釋能很好的提醒讀者。注釋也同樣讓你自己更方便。你一定閱讀了很多幫助頁面通過腳本中的一些命令來得到特定的結(jié)果。如果不對腳本加上注釋,幾個(gè)星期或者幾個(gè)月后你需要更改你的腳本,你會忘記腳本做了些什么事,你怎么做的和為什么要這么做。2.4.2Windows的命令控制界面2.5 系統(tǒng)調(diào)用系統(tǒng)調(diào)用是
15、操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調(diào)用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調(diào)用系統(tǒng)中已有的系統(tǒng)功能來完成那些與機(jī)器硬件部分相關(guān)的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調(diào)用像一個(gè)黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關(guān)的功能。事實(shí)上,命令控制界面也是在系統(tǒng)調(diào)用的基礎(chǔ)上開發(fā)而成的。系統(tǒng)調(diào)用大致可分為如下幾類:(1) 設(shè)備管理。該類系統(tǒng)調(diào)用被用來請求和釋放有關(guān)設(shè)備、以及啟動設(shè)備操作等。(2) 文件管理。對文件的讀、寫、創(chuàng)建和刪除等。(3) 進(jìn)程控制。進(jìn)程是一個(gè)在功能上獨(dú)立的程序的一次執(zhí)行過程。進(jìn)程控制的有關(guān)系統(tǒng)調(diào)用包括進(jìn)程創(chuàng)建、進(jìn)程執(zhí)行、進(jìn)程撤消、執(zhí)行等待和執(zhí)行優(yōu)先
16、級控制等。(4) 進(jìn)程通信。該類系統(tǒng)調(diào)用被用在進(jìn)程之間傳遞消息或信號。(5) 存儲管理。包括調(diào)查作業(yè)占據(jù)內(nèi)存區(qū)的大小、獲取作業(yè)占據(jù)內(nèi)存區(qū)的始址等。(6) 線程管理。包括線程的創(chuàng)建、調(diào)度、執(zhí)行、撤銷等。不同的系統(tǒng)提供有不同的系統(tǒng)調(diào)用。一般,每個(gè)系統(tǒng)為用戶提供幾十到幾百條系統(tǒng)調(diào)用。為了提供系統(tǒng)調(diào)用功能,操作系統(tǒng)內(nèi)必須有事先編制好的實(shí)現(xiàn)這些功能的子程序或過程。顯然,這些程序或過程是操作系統(tǒng)程序模塊的一部分,且不能直接被用戶程序調(diào)用。而且,為了保證操作系統(tǒng)程序不被用戶程序破壞,一般操作系統(tǒng)都不允許用戶程序訪問操作系統(tǒng)的系統(tǒng)程序和數(shù)據(jù)。那么,編程人員給定了系統(tǒng)調(diào)用名和參數(shù)之后是怎樣得到系統(tǒng)服務(wù)的呢? 這
17、需要有一個(gè)類似于硬件中斷處理的中斷處理機(jī)構(gòu)。當(dāng)用戶使用系統(tǒng)調(diào)用時(shí),產(chǎn)生一條相應(yīng)的指令,處理機(jī)在執(zhí)行到該指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有關(guān)信號給該處理機(jī)構(gòu)。該處理機(jī)構(gòu)在收到了處理機(jī)發(fā)來的信號后,啟動相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能。在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為陷阱(trap)處理機(jī)構(gòu)。與此相對應(yīng),把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷阱指令(或稱訪管指令)。在操作系統(tǒng)中,每個(gè)系統(tǒng)調(diào)用都對應(yīng)一個(gè)事先給定的功能號,例如0,1,2,3等。在陷阱指令中必須包括對應(yīng)系統(tǒng)調(diào)用的功能號。而且,在有些陷阱指令中,還帶有傳遞給陷阱處理機(jī)構(gòu)和內(nèi)部處理程序的有關(guān)參數(shù)。為了實(shí)現(xiàn)系統(tǒng)調(diào)用,系統(tǒng)設(shè)計(jì)人員還
18、必須為實(shí)現(xiàn)各種系統(tǒng)調(diào)用功能的子程序編造入口地址表,每個(gè)入口地址都與相應(yīng)的系統(tǒng)子程序名對應(yīng)起來。然后,由陷阱處理程序把陷阱指令中所包含的功能號與該入口地址表中的有關(guān)項(xiàng)對應(yīng)起來,從而由系統(tǒng)調(diào)用功能號驅(qū)動有關(guān)系統(tǒng)子程序執(zhí)行。由于在系統(tǒng)調(diào)用處理結(jié)束之后,用戶程序還需利用系統(tǒng)調(diào)用的返回結(jié)果繼續(xù)執(zhí)行,因此,在進(jìn)入系統(tǒng)調(diào)用處理之前,陷阱處理機(jī)構(gòu)還需保存處理機(jī)現(xiàn)場。再者,在系統(tǒng)調(diào)用處理結(jié)束之后,陷阱處理機(jī)構(gòu)還要恢復(fù)處理機(jī)現(xiàn)場。在操作系統(tǒng)中,處理機(jī)的現(xiàn)場一般被保護(hù)在特定的內(nèi)存區(qū)或寄存器中。系統(tǒng)調(diào)用的處理過程如圖2.7所示。圖2.7 系統(tǒng)調(diào)用的處理過程有關(guān)系統(tǒng)調(diào)用的另一個(gè)問題是參數(shù)傳遞問題。不同的系統(tǒng)調(diào)用需要傳遞給系統(tǒng)子程序以不同的參數(shù)。而且,系統(tǒng)調(diào)用的執(zhí)行結(jié)果也要以參數(shù)形式返回給用戶程序。那么,怎樣實(shí)現(xiàn)用戶程序和系統(tǒng)程序之間的參數(shù)傳遞呢?下面介紹幾種常用的實(shí)現(xiàn)方法。一種是由陷阱指令自帶參數(shù)。一般來說,一條陷阱指令的長度總是有限的,而且,該指令還要攜帶一個(gè)系統(tǒng)調(diào)用的功能號,從而,陷阱指令只能自帶極有限的幾個(gè)參數(shù)進(jìn)入系統(tǒng)內(nèi)部。另一種辦法是通過使用有關(guān)通用寄存器來傳遞參數(shù)。顯然,這
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通運(yùn)輸顧問合同樣本
- 港口運(yùn)營的經(jīng)濟(jì)合同管理辦法
- 2024年商業(yè)租賃與物業(yè)服務(wù)合同
- 展覽館標(biāo)線優(yōu)化合同
- 醫(yī)療技術(shù)新項(xiàng)目管理細(xì)則
- 大型體育館大理石安裝合同
- 2024機(jī)器設(shè)備合同范文
- 課程設(shè)計(jì)寫簡歷可以嗎
- 2024年國有企業(yè)改革房屋征收合同
- 2024年校園設(shè)施運(yùn)維管理協(xié)議
- 汽車維修工時(shí)定額核定方法編制說明
- 辛棄疾詞《青玉案·元夕》
- T-HNKCSJ 002-2023 河南省地源熱泵系統(tǒng)工程技術(shù)規(guī)范
- 《無人機(jī)駕駛基礎(chǔ)》課件-項(xiàng)目四 無人機(jī)結(jié)構(gòu)及性能
- XX公司安全生產(chǎn)風(fēng)險(xiǎn)管控與隱患排查雙重預(yù)防管理體系手冊
- 心血管內(nèi)科試題庫+答案
- 2024年保密知識測試有解析答案
- 酒店住宿水單模板-皇冠假日
- 成都麓湖生態(tài)城案例詳解
- 2024年小升初數(shù)學(xué)模擬試卷
- 員工工傷事故報(bào)告(2篇)
評論
0/150
提交評論