




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 作業(yè)管理和用戶接口2.1 作業(yè)組織和控制2.2 作業(yè)管理舉例2.3 系統(tǒng)調(diào)用(SYSTEM CALL)2.4 圖形用戶接口(GUI, GRAPHIC USER INTERFACE)2.5用戶管理和配置管理在這一章中,我們從用戶使用和系統(tǒng)管理出發(fā)討論OS向上提供的用戶接口,即系統(tǒng)命令接口和系統(tǒng)調(diào)用接口。系統(tǒng)命令接口可完成用戶作業(yè)的組織和控制。2.1 作業(yè)組織和控制2.1.1 作業(yè)和作業(yè)處理過程2.1.2 作業(yè)調(diào)度2.1.3 作業(yè)控制語言2.1.4系統(tǒng)調(diào)用返回2.1.1 作業(yè)和作業(yè)處理過程1. 作業(yè)的概念2. 作業(yè)的組成3. 作業(yè)的處理過程4. 作業(yè)輸入方式5. 作業(yè)控制表(JCB, Jo
2、b Control Block)1. 作業(yè)的概念一個(gè)作業(yè)是指在一次應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到輸出結(jié)束,用戶要求計(jì)算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部工作。用戶的觀點(diǎn):在一次業(yè)務(wù)處理過程中,從輸入程序和數(shù)據(jù)到輸出結(jié)果的全過程。作業(yè)步:形成中間結(jié)果文件。系統(tǒng)的觀點(diǎn)(針對(duì)作業(yè)進(jìn)行資源分配):作業(yè)由程序及數(shù)據(jù)(作業(yè)體)和作業(yè)說明書(作業(yè)控制語言)作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個(gè)作業(yè)的處理過程中,計(jì)算機(jī)所做的相對(duì)獨(dú)立的工作。2. 作業(yè)的組成作業(yè)說明書包括作業(yè)基本情況、作業(yè)控制、作業(yè)資源要求的描述;它體現(xiàn)用戶的控制意圖。如:預(yù)計(jì)運(yùn)行時(shí)間、要求的資源情況、執(zhí)行優(yōu)先級(jí)等。作業(yè)基本情況:用戶名
3、、作業(yè)名、編程語言、最大處理時(shí)間等;作業(yè)控制描述:作業(yè)控制方式、作業(yè)步的操作順序、作業(yè)執(zhí)行出錯(cuò)處理;作業(yè)資源要求描述:處理時(shí)間、優(yōu)先級(jí)、內(nèi)存空間、外設(shè)類型和數(shù)量等;作業(yè)由程序、數(shù)據(jù)和作業(yè)說明書三部分組成。3. 作業(yè)的處理過程作業(yè)提交:作業(yè)的輸入;作業(yè)執(zhí)行:先到就緒,經(jīng)調(diào)度運(yùn)行,有I/O請(qǐng)求等待,I/O完成到就緒作業(yè)完成:作業(yè)的輸出;4. 作業(yè)輸入方式無通道處理方式:聯(lián)機(jī)(降低了CPU效率):由主機(jī)直接控制輸入/輸出;I/O與作業(yè)處理不能并行。脫機(jī)(人工干預(yù)):通過磁帶或磁盤在外圍處理機(jī)與主機(jī)之間交換作業(yè)(需人工移動(dòng));用于主機(jī)不太快的情況。直接耦合:通過共享外存在外圍處理機(jī)與主機(jī)之間交換作業(yè);
4、用于高速主機(jī)。有通道處理:輸入/輸出由主機(jī)和通道來承擔(dān)。假脫機(jī)(spooling, Simultaneously Peripheral Operation On Line):系統(tǒng)把作業(yè)處理的全過程劃分為相對(duì)獨(dú)立的三個(gè)部分-輸入流、處理流和輸出流。spooling-in/spooling-out進(jìn)程:控制輸入/輸出;網(wǎng)絡(luò):在網(wǎng)絡(luò)上一臺(tái)機(jī)器進(jìn)行作業(yè)輸入/輸出,在另一臺(tái)主機(jī)上運(yùn)行;5. 作業(yè)控制表(JCB, Job Control Block)作業(yè)名估計(jì)執(zhí)行時(shí)間優(yōu)先數(shù)(用于調(diào)度)作業(yè)說明書文件名程序類型(需調(diào)用的系統(tǒng)程序)資源要求:(靜態(tài),或中間可以隨作業(yè)步變化效率不高;動(dòng)態(tài)分配作業(yè)狀態(tài):提交、后備
5、、執(zhí)行、就緒、等待、完成;在運(yùn)行過程中,系統(tǒng)對(duì)作業(yè)進(jìn)行管理的必要信息。2.1.2 作業(yè)調(diào)度作業(yè)調(diào)度算法的評(píng)價(jià)因素作業(yè)吞吐量:運(yùn)行盡可能多的作業(yè);充分利用資源:CPU忙、I/O設(shè)備忙;對(duì)各作業(yè)公平、合理,使用戶滿意:執(zhí)行時(shí)間長(zhǎng)短、等待時(shí)間等;檢查系統(tǒng)是否滿足作業(yè)的資源要求,并一定算法選取作業(yè)。作業(yè)調(diào)度也稱為宏觀調(diào)度。2.1.3 命令控制界面接口脫機(jī)作業(yè)控制:用戶輸入作業(yè)說明書,整個(gè)作業(yè)的運(yùn)行由系統(tǒng)控制。聯(lián)機(jī)作業(yè)控制:通過人-機(jī)會(huì)話方式控制作業(yè)運(yùn)行。用戶登錄(控制臺(tái)登錄或遠(yuǎn)程登錄),由系統(tǒng)自動(dòng)執(zhí)行一些命令腳本后,并進(jìn)入shell(字符或GUI界面),接受用戶的命令和操作,最后退出系統(tǒng)。 概述命令接
6、口的基本任務(wù)1. 解釋操作系統(tǒng)命令語言中的命令,將命令傳送到系統(tǒng)以便執(zhí)行2. 接受系統(tǒng)來的信息,以響應(yīng)語言的形式提呈給用戶聯(lián)機(jī)用戶與交互式命令接口 使用者用輸入裝置,以各種操作方法向計(jì)算機(jī)發(fā)出命令,請(qǐng)求各種操作 系統(tǒng)收到命令請(qǐng)求之后,將控制轉(zhuǎn)向命令解釋系統(tǒng),對(duì)該命令進(jìn)行解釋執(zhí)行,完成指定功能 系統(tǒng)等待新的命令輸入聯(lián)機(jī)命令接口: 一組聯(lián)機(jī)命令,終端處理程序,命令解釋程序 命令接口的操作方式用命令處理程序來實(shí)現(xiàn)對(duì)命令進(jìn)行判別、分類、翻譯、解釋、并按照命令參數(shù)的要求與功能,調(diào)用系統(tǒng)相應(yīng)過程實(shí)現(xiàn) 命令語言 目的:規(guī)定由操作系統(tǒng)執(zhí)行的一系列操作 命令結(jié)構(gòu):(命令前綴)命令名(命令參數(shù))(命令選項(xiàng))命令前
7、綴:命令的特殊性命令參數(shù):命令在執(zhí)行前所需的資源、文件和數(shù)據(jù)命令選擇:指明命令的目標(biāo)、路徑、方向、范圍等 命令行實(shí)例1命令行:一行可有一個(gè)或多個(gè)命令,每次一行,包含一個(gè)或多個(gè)命令。shell給出提示符時(shí)可輸入,以回車鍵提交。如:“l(fā)s -a -l”列出當(dāng)前目錄文件列表;gunzip mp1.tar.gz; tar -xvf mp1.tar; rm -r -f mp1.tar為解壓縮后再展開。命令格式:一個(gè)命令可有命令參數(shù),格式包括選項(xiàng)/開關(guān) (option/switch)或參數(shù)(argument)。如UNIX系統(tǒng): cp -r doc /tmpargv0, argv1, .(含子目錄的文件復(fù)制
8、:/tmp為目標(biāo)地址)命令行實(shí)例2:(1)UNIX系統(tǒng):whols -l(2)DOS系統(tǒng)dir c: 命令的種類與功能基本命令最不可少的命令顯示文件目錄、路徑和內(nèi)容復(fù)制、更名或刪除建立、編輯程序、文本和數(shù)據(jù)不同的語言編譯和連接程序顯示系統(tǒng)或用戶環(huán)境的信息批處理命令 針對(duì)脫機(jī)用戶操作和大量順序操作功能而設(shè)計(jì) 批處理命令可以是專門的命令,也可是系統(tǒng)的基本命令;還有有關(guān)的語法結(jié)構(gòu),循環(huán)、分支、轉(zhuǎn)移、判別等,枸成一套特殊的命令語言宏命令一類組合命令,某些方面類似于批處理命令,但有嚴(yán)格格式。宏命令其中可包含若干命令,類似于宏語句MACRO mycmd命令集MACRO END命令的附加功能命令的附加功能用
9、以擴(kuò)大命令的功能性、選擇性、適應(yīng)性。包括:(1)參數(shù)與變量 位置變量 關(guān)鍵字變量(2)命令通配符(3)重定向(4)管道與過濾器內(nèi)部命令(基本命令)和外部命令(文件命令)內(nèi)部命令:直接由shell本身完成,功能簡(jiǎn)單、使用頻繁;如:DOS的copy命令。外部命令:運(yùn)行相應(yīng)的可執(zhí)行文件,在使用時(shí)加載。如:DOS的xcopy命令。命令簡(jiǎn)化:利用參數(shù)替換可簡(jiǎn)化命令輸入,通配符(?, *)用于匹配一組文件名如:UNIX的cp命令:當(dāng)前目錄上有兩個(gè)1.tar和2.tar時(shí),cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp命令文件 命令設(shè)計(jì)命令設(shè)計(jì)是操作系統(tǒng)各模塊設(shè)計(jì)中
10、重要的,也是困難的一環(huán)命令解釋和處理程序也是操作系統(tǒng)中重要的程序模塊 實(shí)現(xiàn)1.用戶進(jìn)程 對(duì)終端進(jìn)行控制,即登錄管理 OS提供監(jiān)控程序(monitor),不斷檢查系統(tǒng)終端,一旦發(fā)現(xiàn)某個(gè)終端打開,在終端上顯示必要信息,要求用戶注冊(cè)(給出用戶名、口令),看其是否合法,合法則為終端生成用戶進(jìn)程,然后,用戶進(jìn)程作業(yè)不斷接收命令為用戶服務(wù) 2.用戶管理 為每個(gè)用戶建立一個(gè)帳號(hào),并記錄這個(gè)用戶的主要信息,如用戶名,口令,這些信息存放在系統(tǒng)文件內(nèi)。當(dāng)用戶登錄時(shí),系統(tǒng)將用戶打入信息與該文件進(jìn)行比較,若匹則為合法用戶,并為其創(chuàng)建用戶進(jìn)程,其標(biāo)志:提示符2.2 作業(yè)管理舉例2.2.1 MS DOS的作業(yè)管理2.2.
11、2 UNIX的作業(yè)管理返回2.2.1 MS DOS的作業(yè)管理命令分類:內(nèi)部命令:如dir, cd, copy外部命令:如format, xcopy命令行選項(xiàng)命令行選項(xiàng)通常是:/option;如:/?選項(xiàng)可顯示各命令的命令行選項(xiàng)列表。通配符:由外部命令自己處理。如:xcopy *.c . argv1=*.c. DOS命令處理程序(或其他程序如DOS shell):駐留內(nèi)存,在系統(tǒng)運(yùn)行期間不再退出。為了給應(yīng)用程序的執(zhí)行提供更大內(nèi)存空間,又分為常駐部分和暫駐部分(可被應(yīng)用程序覆蓋)輸入輸出重定向和管道(pipe), , |, 基于臨時(shí)文件為輸入重定向,如:find string temp.txt將顯
12、示文件temp.txt中有string串的行;more ”為輸出重定向,“”為添加輸出重定向。如:“dir temp.txt”將把“dir”命令在屏幕上的輸出保存在新文件“temp.txt”中;而dir temp.txt將屏幕輸出追加在文件temp.txt的結(jié)尾。管道|是將前一個(gè)命令的屏幕輸出作為后一個(gè)命令的鍵盤輸入。如:dir | sort將把dir命令的輸出按行進(jìn)行排序。環(huán)境變量set PATH=c:tools;%PATH%原PATH=c:dos 則后PATH=c:tools;c:dos系統(tǒng)引導(dǎo)時(shí)加載系統(tǒng)引導(dǎo)時(shí)加載:autoexec.bat2.2.2 UNIX的作業(yè)管理. shell命令處
13、理程序. shell批處理. shell命令處理程序1. shell的類型2. 初始化文件3. 基本特征4. 輸入輸出重定向5. 管道6. 后臺(tái)執(zhí)行7. 環(huán)境變量和內(nèi)部變量8. 別名9. 常用的外部命令1. shell的類型Bourne shell(/bin/sh)Bourne shell 的作者是 Steven Bourne。它是 UNIX 最初使用的shell 并且在每種 UNIX 上都可以使用。Bourne shell 在 shell 編程方面相當(dāng)優(yōu)秀,但在處理與用戶的交互方面作得不如其他幾種 shell。Bourne shell 最大的缺點(diǎn)在于它處理用戶的輸入方面。在 Bourne s
14、hell 里鍵入命令會(huì)很麻煩,尤其當(dāng)你鍵入很多相似的命令時(shí)。C shell(/bin/csh)C shell 由 Bill Joy 所寫,它更多的考慮了用戶界面的友好性。它支持象命令補(bǔ)齊(command-line completion)等一些 Bourne shell 所不支持的特性。普遍認(rèn)為C shell 的編程接口做的不如 Bourne shell, 但 C shell 被很多 C 程序員使用因?yàn)?C shell的語法和 C語言的很相似,這也是C shell名稱的由來。UNIX上有許多種shell,主要功能是相同的,在細(xì)節(jié)上有一些區(qū)別。幾種shell 都有它們的優(yōu)點(diǎn)和缺點(diǎn)。Korn she
15、ll (ksh)Korn shell (ksh) 由 Dave Korn 所寫。它集合了C shell 和 Bourne shell 的優(yōu)點(diǎn)并且和 Bourne shell 完全兼容。 Bourne Again shell (bash)Bourne Again shell (bash)是 Bourne shell 的擴(kuò)展。bash 與 Bourne shell 完全向后兼容,并且在 Bourne shell 的基礎(chǔ)上增加和增強(qiáng)了很多特性。bash 也包含了很多 C 和 Korn shell 里的優(yōu)點(diǎn)。bash 有很靈活和強(qiáng)大的編程接口,同時(shí)又有很友好的用戶界面。 bash 有幾種特性使命令的輸
16、入變得更容易。 其他shell除了這些 shell 以外,許多其他的 shell 程序吸收了這些原來的 shell 程序的優(yōu)點(diǎn)而成為新的 shell 。如:tcsh (csh 的擴(kuò)展)Public Domain Korn shell (pdksh, ksh 的擴(kuò)展) 2. 初始化文件B Shell執(zhí)行.profileC Shell執(zhí)行.cshrc和.login兩個(gè)文件K Shell執(zhí)行.profile和$ENV兩個(gè)文件(sh) .profile與(csh) .login對(duì)應(yīng),進(jìn)行注冊(cè)時(shí)的初始化;而在csh在非注冊(cè)啟動(dòng)時(shí)都讀入.cshrc;3. 基本特征內(nèi)部命令:如cd, exec區(qū)分大小寫,e
17、xec的功能是執(zhí)行一個(gè)命令;外部命令:如ls, mkdir命令行選項(xiàng)通常是:-option如:ls -a -l中的-a表示列出所有文件,-l表示列出所有信息。通配符:由shell處理后再傳遞給外部命令。如:cat *.c 則argv1=a.c, argv2=b.c,而 cat *.c 則argv1=*.c(cat的功能是讀入所有文件,并顯示)4. 輸入輸出重定向和為標(biāo)準(zhǔn)輸出重定向;2和2為標(biāo)準(zhǔn)錯(cuò)誤輸出重定向(2表示標(biāo)準(zhǔn)錯(cuò)誤輸出的設(shè)備號(hào),只對(duì)sh有意義); &是標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向;基于內(nèi)核的緩沖區(qū)行輸入重定向:用定界符間的內(nèi)容作為標(biāo)準(zhǔn)輸入。如:下面命令的標(biāo)準(zhǔn)輸入為郵件內(nèi)容。 mail
18、user2 WARNING . WARNING5. 管道如:ls -l | wc -l可給出文件數(shù)目。如:“cat sample.text | grep High | wc -l” 這個(gè)管道將把 cat 命令(列出一個(gè)文件的內(nèi)容)的輸出送給grep命令。grep 命令在輸入里查找單詞 High,grep命令的輸出則是所有包含單詞 High的行,這個(gè)輸出又被送給 wc命令。帶 -l選項(xiàng)的 wc命令將統(tǒng)計(jì)輸入里的行數(shù)。管道可以把一系列命令連接起來。第一個(gè)命令的輸出會(huì)通過管道傳給第二個(gè)命令而作為第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,以此類推。而管道行中最后一個(gè)命令的輸出才會(huì)顯示
19、在屏幕上(如果命令行里使用了輸出重定向的話,將會(huì)放進(jìn)一個(gè)文件里)。通過管道,可以將多個(gè)簡(jiǎn)單程序組合完成復(fù)雜的功能。6. 后臺(tái)執(zhí)行如:xterm -display 6:0.0 &為在后臺(tái)啟動(dòng)一個(gè)xterm窗口,并顯示到主機(jī)6上。后臺(tái)執(zhí)行:cmd &;7. 環(huán)境變量和內(nèi)部變量set可給出內(nèi)部變量列表,env可給出環(huán)境變量列表。繼承只對(duì)環(huán)境變量有效。sh: PATH=/usr/bin:$PATH ; export PATH注意:在export前為內(nèi)部變量,之后為環(huán)境變量。csh: set setenv PATH /usr/bin:$PATH-注意:在csh中環(huán)境變量的賦值(setenv)沒有等號(hào),而
20、內(nèi)部變量的賦值(set)有等號(hào)。內(nèi)部變量不能被子進(jìn)程繼承(如同C里的局部變量);改環(huán)境變量就會(huì)自動(dòng)改內(nèi)部變量,反之不然。8. 別名alias 的格式:alias aliasname=string . 把 aliasname 直接用來取代后面的 string ,如有任何跟在后面的 argument 將會(huì)出現(xiàn)的其后。利用該功能,使用者可以將常用卻冗長(zhǎng)的指令以其他的名字存起。如:alias dir=ls -a -l為ls -a -l定義了一個(gè)別名dir;給復(fù)雜命令定義別名:alias/unalias9. 常用的外部命令man查看手冊(cè)echo, wc, grep, sed, awk(用于文本掃描和處理
21、), sort, cut(對(duì)每行進(jìn)行特定刪除處理)字符串操作;pwd, ls, mkdir, rmdir, cp, rm, mv, ln文件和目錄操作;chmod, chown, chgrp(修改文件所在的用戶組)文件權(quán)限和屬主;cat, more, tail(顯示文件的最后部分)查看文件;test, expr檢測(cè)和數(shù)值計(jì)算;vi全屏幕編輯;. 批處理1. 變量替換2. 條件轉(zhuǎn)移3. 循環(huán)4. 分支5. 函數(shù)稱為腳本 shell script:注釋用 #,續(xù)行用 解釋執(zhí)行,效率較低;而且要加載外部命令;指定解釋執(zhí)行腳本的程序:#!/bin/sh或 #!/opt/bin/perlperl, Pr
22、actical Extraction and Report Language是一個(gè)文本文件分析工具。執(zhí)行腳本(sh):cmd(cshsource cmd), exec cmd, cmd(sh cmd, sh cmd)source命令是運(yùn)行tcl腳本;exec是用指定命令新建shell,以取代當(dāng)前shell;sh命令是運(yùn)行sh腳本。1. 變量替換如:下面是一個(gè)變量定義和引用的例子:temp=test messageecho $tempecho AAA$tempBBBecho CCC$tempDDDecho $temp變量賦值格式:變量名=值值串中包括空格、制表符或換行符時(shí),值要放在號(hào)內(nèi);變量引用
23、格式:$變量名如引用前后緊接其它字符,引用方式為:$變量名或$變量名; $variable, 雙引號(hào):“進(jìn)行變量替換”, 單引號(hào):不作任何替換;其運(yùn)行結(jié)果為:test messageAAAtest messageBBBCCCtest messageDDD$temp2. 條件轉(zhuǎn)移if command; then . ; else . ; fi例:# 調(diào)用test命令,注意:方括號(hào)和判斷條件之間必須有空格 !# 下面腳本在有參數(shù)時(shí)顯示Have arguement(s),無參數(shù)時(shí)顯示No arguement;# 其中, a$1 = a 用于判斷$1是否為空串;if a$1 = a ; then ec
24、ho No arguement else echo Have arguement(s) fi運(yùn)行結(jié)果為:./temp.txtNo arguement/temp.txt weHave arguement(s)例:# 下面腳本在命令行參數(shù)個(gè)數(shù)不對(duì)(其中,test $# = 4測(cè)試命令行參數(shù)個(gè)數(shù)是否為4),提示出錯(cuò)信息;if test $# = 4 ; thenecho $4 $3 $2 $1elseecho $0 usage: arg1 arg2 arg3 arg4fi運(yùn)行結(jié)果如下:$ ./temp.txt./temp.txt usage: arg1 arg2 arg3 arg4$ ./temp.
25、txt a b c dd c b a3. 循環(huán) while 1 ; do . ; done例:# 下面腳本在文件lockfile可讀時(shí)每暫停5秒重復(fù)測(cè)試一次(其中,test -r lockfile判斷文件lockfile是否存在);while test -r lockfile; dosleep 5done運(yùn)行結(jié)果為:有文件lockfile時(shí),腳本一直不結(jié)束;直到該文件被刪除后,腳本才結(jié)束。4. 分支基于模式匹配的多路分支結(jié)構(gòu),它依據(jù)word的不同,執(zhí)行不同的命令序列; case word in pattern1) pat1-list; pattern2) pat2-list; esac例:#
26、下面腳本依據(jù)命令行參數(shù)的不同,顯示不同內(nèi)容;case $1 in *.c) echo C:$1 ; *.a) echo A:$1 ; *.f) echo F:$1 ; esac運(yùn)行結(jié)果如下:$ ./temp.txt c.aA:c.a$ ./temp.txt c.cC:c.c$ ./temp.txt c.fF:c.f5. 函數(shù)1.函數(shù)定義shell允許將一組命令集或語句形成一個(gè)可用塊,這些塊稱為 shell函數(shù)定義函數(shù)的格式:functionfunction-name()#函數(shù)名前面多了個(gè)function關(guān)鍵字command1.例:#!/bin/bash#hellofunfunctionhell
27、o()echoHello!Thefirstparameteris$1.hellogood#該腳本執(zhí)行的結(jié)果是:Hello!Thefirstparameterisgood.5. 函數(shù)例:#這里$*和$1是new_func的參數(shù),而$0為腳本的參數(shù))new_func () echo $* echo $1 new_func $0 arg2運(yùn)行結(jié)果為:$./temp.txt asb$./temp.txt arg2$./temp.txt2.3 系統(tǒng)調(diào)用(SYSTEM CALL)2.3.1 系統(tǒng)調(diào)用及其功能2.3.2 系統(tǒng)調(diào)用的實(shí)現(xiàn)過程2.3.3 系統(tǒng)調(diào)用舉例2.3.4 系統(tǒng)調(diào)用與普通過程調(diào)用的相同點(diǎn)和不
28、同點(diǎn)返回系統(tǒng)調(diào)用是操作系統(tǒng)提供給軟件開發(fā)人員的唯一接口,開發(fā)人員可利用它使用系統(tǒng)功能。OS核心中都有一組實(shí)現(xiàn)系統(tǒng)功能的過程(子程序),系統(tǒng)調(diào)用就是對(duì)上述過程的調(diào)用。2.3.1 系統(tǒng)調(diào)用及其功能每個(gè)操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用,包括:外存文件與目錄的讀寫,各種I/O設(shè)備的使用,在程序中啟動(dòng)另一個(gè)程序,查詢和統(tǒng)計(jì)系統(tǒng)資源使用情況等等。1. 系統(tǒng)調(diào)用的功能1) 設(shè)備管理:設(shè)備的讀寫和控制;Ioctl設(shè)備配置Open設(shè)備打開Close設(shè)備關(guān)閉Read讀設(shè)備Write寫設(shè)備2) 文件管理:文件讀寫和文件控制;Open文件打開Close文件關(guān)閉Read讀文件Write寫文件seek讀寫指針定位Creat文
29、件創(chuàng)建Stat讀文件狀態(tài)Mount安裝文件系統(tǒng)chmod修改文件屬性3) 進(jìn)程控制:創(chuàng)建、中止、暫停等控制;Fork創(chuàng)建進(jìn)程Exit進(jìn)程自我終止Wait阻塞當(dāng)前進(jìn)程Sleep進(jìn)程睡眠Getpid讀父進(jìn)程標(biāo)識(shí)4) 進(jìn)程通信:消息隊(duì)列、共享存儲(chǔ)區(qū)、socket等通信渠道的建立、使用和刪除;5) 存儲(chǔ)管理:內(nèi)存的申請(qǐng)和釋放;6) 系統(tǒng)管理:設(shè)置和讀取時(shí)間、讀取用戶和主機(jī)標(biāo)識(shí)等;gtime讀取時(shí)間Stime設(shè)置時(shí)間getuid讀取用戶標(biāo)識(shí)2. 通過系統(tǒng)調(diào)用接口使用系統(tǒng)命令通過系統(tǒng)調(diào)用接口也可使用系統(tǒng)命令。C語言里的system()函數(shù)可調(diào)用shell來完成命令如 UNIX系統(tǒng): system(cp -
30、r doc /tmp)2.3.2 系統(tǒng)調(diào)用的實(shí)現(xiàn)過程實(shí)際上系統(tǒng)調(diào)用語句本身是硬件提供的(機(jī)器指令),但其所調(diào)用的功能是操作系統(tǒng)提供的。每種機(jī)器的機(jī)器指令集中都有一條系統(tǒng)調(diào)用指令。設(shè)置系統(tǒng)調(diào)用號(hào)和參數(shù)。調(diào)用號(hào)作為指令的一部分(如早期UNIX),或裝入到特定寄存器里(如:DOS int 21h,AH=調(diào)用號(hào)。)參數(shù)裝入到特定寄存器里,或以寄存器指針指向參數(shù)表(內(nèi)存區(qū)域)。執(zhí)行trap(int)指令:入口的一般性處理,查入口跳轉(zhuǎn)表,跳轉(zhuǎn)到相應(yīng)功能的過程。保護(hù)CPU現(xiàn)場(chǎng)(將PC與PSW入棧),改變CPU執(zhí)行狀態(tài)(處理機(jī)狀態(tài)字PSW切換,地址空間表切換)將參數(shù)取到核心空間執(zhí)行操作系統(tǒng)內(nèi)部代碼;執(zhí)行ire
31、t指令:將執(zhí)行結(jié)果裝入適當(dāng)位置(類似于參數(shù)帶入),恢復(fù)CPU現(xiàn)場(chǎng)(以棧頂內(nèi)容置PSW和PC)。2.3.3 系統(tǒng)調(diào)用舉例凡是與硬件相關(guān)、與應(yīng)用無關(guān)的工作,都通過操作系統(tǒng)程序來完成。1. 利用系統(tǒng)調(diào)用實(shí)現(xiàn)硬盤文件內(nèi)容讀寫在應(yīng)用程序中直接利用I/O指令進(jìn)行硬盤文件內(nèi)容讀寫將是十分復(fù)雜和困難的。原因?yàn)椋捍疟P的控制和狀態(tài)接口寄存器比打印機(jī)的復(fù)雜的多,而且還有地址接口寄存器,涉及像磁道號(hào),磁面號(hào),扇區(qū)號(hào)這樣復(fù)雜的外存物理地址;通常一個(gè)外存存儲(chǔ)介質(zhì)上可以存放多個(gè)文件,隨著文件的建立、刪除和拷貝在不停地變化,每個(gè)文件的長(zhǎng)度隨著其內(nèi)容的變化而不停地變化,安全問題;MOVE DX,OFFSETBUFFMOVE C
32、X,BYTEMOVE BX,HANDLEMOVE AH,3FHINT 21H2.3.4 系統(tǒng)調(diào)用與普通過程調(diào)用的相同點(diǎn)和不同點(diǎn)相同點(diǎn)改變指令流程重復(fù)執(zhí)行和公用改變指令流程后需要返回原處不同點(diǎn)系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用;執(zhí)行狀態(tài)不同進(jìn)入方式不同與進(jìn)程調(diào)度的關(guān)系不同:嵌套或遞歸調(diào)用1. 系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用;系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,程序中不包含被調(diào)用代碼,好處:(1)用戶程序長(zhǎng)度縮短(2)當(dāng)OS升級(jí)時(shí),調(diào)用方不必改變系統(tǒng)調(diào)用方式的調(diào)用地址和返回地址都是不固定的,系統(tǒng)調(diào)用指令中不包含調(diào)用地址,只包含功能號(hào),是按功能號(hào)(在可執(zhí)行目標(biāo)程序中)調(diào)用的。在操作系
33、統(tǒng)內(nèi)部,由系統(tǒng)調(diào)用處理程序通過系統(tǒng)調(diào)用分支表(OS的一個(gè)數(shù)據(jù)結(jié)構(gòu))將功能號(hào)轉(zhuǎn)換為相應(yīng)的指令地址。系統(tǒng)調(diào)用返回指令中不包括返回地址,通過棧保存和彈出返回地址。系統(tǒng)調(diào)用返回地址不固定,因?yàn)橛脩舫绦蛟诓煌牡胤秸{(diào)用OS。CALL調(diào)用方式是靜態(tài)調(diào)用,被調(diào)用代碼與調(diào)用代碼在同一程序之內(nèi)。CALL調(diào)用方式,其調(diào)用地址是固定的,包含在調(diào)用語句中;返回地址是不固定的(同一子程序可能被不同處多次調(diào)用),在程序執(zhí)行過程中通過棧的實(shí)現(xiàn)來保存和彈出返回地址。2. 執(zhí)行狀態(tài)不同狀態(tài)切換:系統(tǒng)調(diào)用、中斷、異常trap陷入特權(quán)指令(訪問關(guān)鍵寄存器、停機(jī)指令)和I/O敏感指令(中斷屏蔽、端口讀寫)調(diào)用和返回經(jīng)歷了不同的系統(tǒng)狀
34、態(tài)。通常核心和應(yīng)用程序的代碼分別運(yùn)行在CPU的不同的狀態(tài)下(系統(tǒng)態(tài)/核心態(tài)/管態(tài)和用戶態(tài)/目態(tài)),所用地址空間也不同核心的代碼可以直接訪問應(yīng)用進(jìn)程的地址空間,反之不然。3. 進(jìn)入方式不同CALL指令的內(nèi)部實(shí)現(xiàn)過程:返回地址壓棧(即該CALL指令所在的地址);將該CALL指令中所含的地址(即被調(diào)用代碼所在地址)送入PCRET指令的內(nèi)部實(shí)現(xiàn)過程:從棧頂彈出返回地址送入程序計(jì)數(shù)器PC利用int或trap指令進(jìn)行系統(tǒng)調(diào)用;利用call或jmp指令進(jìn)入普通的過程調(diào)用;4. 與進(jìn)程調(diào)度的關(guān)系不同采用搶先式調(diào)度的系統(tǒng),在系統(tǒng)調(diào)用返回時(shí),要進(jìn)行重新調(diào)度的檢查是否有更高優(yōu)先級(jí)的任務(wù)就緒(創(chuàng)建或喚醒)。5. 嵌套
35、或遞歸調(diào)用對(duì)系統(tǒng)調(diào)用,一般不允許在同一個(gè)進(jìn)程中發(fā)生嵌套或遞歸(不同進(jìn)程可以重入同一個(gè)系統(tǒng)調(diào)用)。2.4 圖形用戶接口(GUI, GRAPHIC USER INTERFACE)2.4.1 概述2.4.2 MS Windows2.4.3 X Window2.4.4 事件驅(qū)動(dòng)模式(event-driven)返回在命令行方式下,用戶與操作系統(tǒng)的交互要求用戶記憶命令格式。在圖形用戶接口方式下,用戶可利用鼠標(biāo)對(duì)屏幕上的圖標(biāo)進(jìn)行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶使用。它的技術(shù)基礎(chǔ)是高分辯顯示器和鼠標(biāo)。2.4.1 概述1. 窗口系統(tǒng)(window system)的特點(diǎn)2. 窗口系統(tǒng)的圖形元
36、素及其狀態(tài)3. 窗口管理器(window manager)1. 窗口系統(tǒng)(window system)的特點(diǎn)利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶可以通過操縱圖形元素(如菜單、圖標(biāo))來執(zhí)行相應(yīng)的功能同屏多窗口與并發(fā)進(jìn)程相對(duì)應(yīng):屏幕上同時(shí)顯示多個(gè)窗口;一個(gè)進(jìn)程可以對(duì)應(yīng)一個(gè)或多個(gè)窗口;窗口動(dòng)態(tài)創(chuàng)建、改變、撤銷輸入方式:鼠標(biāo)指針點(diǎn)擊(或其他定位設(shè)備)和鍵盤輸入;通常是即時(shí)交互一致的圖形元素風(fēng)格可方便用戶學(xué)習(xí)和使用:如按鈕、滾動(dòng)條優(yōu)點(diǎn):操作直觀(不必記命令行參數(shù)),可與多個(gè)進(jìn)程交互,便于進(jìn)行多媒體處理簡(jiǎn)而言之:交互的并發(fā)性好、傳遞信息量大2. 窗口系統(tǒng)的圖形元素及其狀態(tài)窗口(windo
37、w):屏幕上的矩形區(qū)域(可以通過掩模mask來顯示任意形狀)包括:標(biāo)題條(title bar)、邊框(border)、窗口角(corner)、系統(tǒng)菜單框(system menu box)、最大化/最小化按鈕(maximize/minimize)、滾動(dòng)條(scroll bar)等狀態(tài):當(dāng)前/非當(dāng)前窗口(active/inactive) 接受輸入,最大化/最小化/恢復(fù)原大小(restore),窗口的前后遮蓋Z軸,焦點(diǎn)(focus)接受鍵盤輸入(而非鼠標(biāo))桌面(desktop)和墻紙(wallpaper)圖標(biāo)(icon):一個(gè)小圖象(如32x32或64x64 pixel),通常供鼠標(biāo)指針點(diǎn)擊。通過不
38、同的圖標(biāo)可以標(biāo)識(shí)不同的對(duì)象。如:可執(zhí)行程序、最小化的窗口、文件動(dòng)畫圖標(biāo)鼠標(biāo)指針(mouse pointer):鼠標(biāo)指針通常對(duì)應(yīng)屏幕上的光標(biāo)(cursor)。光標(biāo)在屏幕上只有一個(gè),在不同屏幕位置(上下文)可以呈現(xiàn)不同形狀,可以獨(dú)立于鼠標(biāo)來直接操縱光標(biāo)。鼠標(biāo)點(diǎn)擊:左鍵/右鍵/中鍵(left/right/middle button),單擊(click)/雙擊(double-click),拖曳(drag)/拖放(drag-and-drop);按鈕(button):鼠標(biāo)點(diǎn)擊或按回車鍵/空格鍵時(shí)執(zhí)行相應(yīng)功能,如 menu button;提供單項(xiàng)或多項(xiàng)選擇,如radiobutton和checkbutton;
39、當(dāng)前按鈕及其切換。菜單(menu):臨時(shí)窗口,菜單條(menu bar)、彈出式菜單、下拉式菜單(上下文相關(guān)菜單)對(duì)話框(dialog box):臨時(shí)窗口,顯示提示信息(message)或填寫用戶設(shè)置。3. 窗口管理器(window manager):形成統(tǒng)一的使用風(fēng)格處理窗口的普遍特性,如:窗口的大小、位置(窗口的標(biāo)題條、邊框、控制菜單框)窗口中由應(yīng)用程序管理的部分稱為客戶區(qū)(client area)協(xié)調(diào)各窗口間的相互關(guān)系,如:窗口之間的前后遮蓋關(guān)系,桌面2.4.2 MS Windows1. 特點(diǎn)2. MS Windows結(jié)構(gòu)3. 基本概念4. 消息處理:兩種方法1. 特點(diǎn)是OS 的一部分,
40、提供默認(rèn)的窗口風(fēng)格(如菜單、對(duì)話框)除Windows2000外,窗口應(yīng)用程序只能在控制臺(tái)(本地)執(zhí)行。2. MS Windows結(jié)構(gòu)OS系統(tǒng)服務(wù)(KERNEL):內(nèi)存管理、程序加載(包括DLL)、任務(wù)調(diào)度、文件管理用戶接口(USER):窗口和消息管理,以及菜單、控制、對(duì)話框、定時(shí)器等圖形設(shè)備接口(GDI, Graphic Device Interface):管理顯示器,為USER與應(yīng)用程序提供與硬件設(shè)備獨(dú)立的接口可分成三個(gè)部分。3. 基本概念消息(message):消息作為窗口的輸入,如用戶操作、其他窗口或系統(tǒng)發(fā)出的請(qǐng)求或通知。窗口過程(window procedure):消息由各窗口自己的窗
41、口過程來作處理。窗口過程的調(diào)用參數(shù):接收窗口句柄(可以在多個(gè)窗口共用一個(gè)窗口過程時(shí)加以區(qū)分)、消息ID(消息的類型)、消息參數(shù)(16+32位或32+32位值,整數(shù)或指針)還可以取得消息的發(fā)生時(shí)間和屏幕坐標(biāo)4. 消息處理:兩種方法排隊(duì)消息:放到進(jìn)程(線程)的FIFO消息隊(duì)列里。如應(yīng)用程序發(fā)送的消息,系統(tǒng)的鼠標(biāo)、鍵盤、定時(shí)器、窗口繪制和退出等。排隊(duì)消息所用的API:發(fā)送消息到消息隊(duì)列PostMessage;從消息隊(duì)列讀取消息GetMessage, PeekMessage;分發(fā)一個(gè)消息到相應(yīng)窗口DispatchMessage;非排隊(duì)消息:直接發(fā)送到指定窗口的窗口過程。非排隊(duì)消息所用的API:Send
42、Message,直到接收方窗口過程處理完才返回接收方正處于GetMessage,而接受并處理SendMessage送來的消息之后,仍處于GetMessage。為防止死鎖,一般要:if (InSendMessage() ReplyMessage(TRUE);消息循環(huán):不斷移出消息,并加以處理。用戶不作處理的消息,應(yīng)傳給默認(rèn)窗口過程加以處理:DefWindowProc()WM_PAINT消息:通知窗口客戶區(qū)中的某部分(region)已被改變,應(yīng)用程序應(yīng)該對(duì)其重新繪制??偸潜慌旁诰€程消息隊(duì)列的最后,并且多個(gè)WM_PAINT消息中的region會(huì)自動(dòng)被合并為一個(gè)。2.4.3 X Window1.特點(diǎn)2
43、. X Window的結(jié)構(gòu)3. 基本概念4. X lib和工具箱(toolkit)5. X Window的使用Client-Server結(jié)構(gòu):X client和server都是應(yīng)用程序一個(gè)server可以為不同計(jì)算機(jī)上的多個(gè)client提供服務(wù), server對(duì)有關(guān)I/O設(shè)備具有訪問權(quán)一個(gè)client也可以連接不同計(jì)算機(jī)上的多個(gè)server顯示設(shè)備獨(dú)立性和支持多種網(wǎng)絡(luò)協(xié)議:(在TCP/IP, DECnet之上的X protocol) X不是計(jì)算機(jī)操作系統(tǒng)的一部分:其他大部分窗口系統(tǒng)都是以O(shè)S核心為基礎(chǔ)的,如:MS Windows, Macintosh, SunView支持自由風(fēng)格(policy
44、 free):只提供機(jī)制不提供風(fēng)格;包括窗口管理器、菜單、按鈕、滾動(dòng)條等的管理和操作,如:Motif, Open Look, Tcl/Tk等1. 特點(diǎn)2. X Window的結(jié)構(gòu)X Window的結(jié)構(gòu)各client、窗口管理器和X server可以在一臺(tái)或多臺(tái)計(jì)算機(jī)上用戶對(duì)server所控制設(shè)備的操作都使server發(fā)送事件(event),如:鼠標(biāo)移動(dòng)、點(diǎn)擊,鍵盤輸入;事件是一個(gè)數(shù)據(jù)塊,內(nèi)容包括:事件類型、相關(guān)的窗口等client對(duì)來自server的事件進(jìn)行處理,然后向server發(fā)送請(qǐng)求(request),如:窗口操作、顯示圖形或正文X protocol使用的傳送信道:異步字節(jié)流。serve
45、r不斷發(fā)送事件而由client中的先進(jìn)先出FIFO隊(duì)列加以緩沖,client不斷發(fā)送請(qǐng)求而由server中的FIFO隊(duì)列加以緩沖。X Window的隊(duì)列3. 基本概念屏幕(screen)和顯示器(display):屏幕指顯示設(shè)備硬件,而顯示器指X server(及其控制的鍵盤、鼠標(biāo)和屏幕)。X允許一個(gè)顯示器控制多個(gè)屏幕(即顯示設(shè)備硬件)。資源(resource):是X window使用的窗口、位圖(bitmap)、字體(font)、調(diào)色板(color map)和其他數(shù)據(jù)結(jié)構(gòu)的總稱。資源在X server中創(chuàng)建和存儲(chǔ),按照client的請(qǐng)求來加以管理,而client退出時(shí)撤銷對(duì)應(yīng)的資源。通過資源
46、標(biāo)識(shí)(resource ID,整數(shù)類型)來標(biāo)識(shí)不同的資源(包括系統(tǒng)資源)資源的自身不體現(xiàn)風(fēng)格窗口樹:層次,子窗口只顯示出被父窗口剪切(clip)的區(qū)域4. X lib和工具箱(toolkit)X lib函數(shù)庫,將接收到的X protocol轉(zhuǎn)換為事件,并將請(qǐng)求轉(zhuǎn)換為發(fā)送X protocol。其代碼鏈接在X client中。如:打開顯示器:XOpenDisplay(char *display_name)與X server建立連接取得X connection的文件描述符:XConnectionNumber()X toolkit:提供各種構(gòu)件的例程庫,便于用戶使用,體現(xiàn)不同的風(fēng)格。如:Motif,
47、Open Look, Tcl/Tk構(gòu)件的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在X clientXt Intrinsics:對(duì)構(gòu)件的管理和操作,如:建立和撤銷widget、管理資源(包括widget的初始值)、處理事件并調(diào)用相應(yīng)的處理程序(回調(diào)過程call-back)widget set:構(gòu)件集合構(gòu)件類(widget class)和構(gòu)件實(shí)例(widget instance)構(gòu)件(widget):由多個(gè)資源(最終是resource ID)復(fù)合而成,具有特定外觀和功能的部件,如:按鈕、菜單和滾動(dòng)條如同建筑上的預(yù)制件。本質(zhì)是:對(duì)某些事件給出了默認(rèn)響應(yīng)(通常是改變外觀),并可以掛接回調(diào)過程來進(jìn)行用戶定義的處理,方便用戶使用。如
48、Tcl/Tk:button .app.button2 -image icon2 -command incr x0各個(gè)widget也構(gòu)成widget tree,最頂層是top-level widget(在toolkit初始化時(shí)建立)editres命令:查看widget tree,并對(duì)X 應(yīng)用進(jìn)程中的資源進(jìn)行動(dòng)態(tài)修改5. X Window的使用1)本地,起動(dòng)X server2)本地,允許訪問X server:xhost +hostC, xhost -hostC3)本地,發(fā)起遠(yuǎn)程登錄:telnet hostC并輸入用戶名和口令4)遠(yuǎn)地,運(yùn)行X終端程序:/usr/openwin/bin/xterm -
49、display hostS:0.0 & 或:setenv DISPLAY hostS:0.0 ; /usr/openwin/bin/xterm &5)本地,在 xterm窗口內(nèi)輸入命令行,可以起動(dòng)其他X client程序,如:xclock遠(yuǎn)程登錄,X server機(jī)為hostS(本地用戶),client機(jī)為hostC(遠(yuǎn)地)2.4.4事件驅(qū)動(dòng)模式(event-driven)1. 面臨的問題2.事件驅(qū)動(dòng)模式3. 分發(fā)驅(qū)動(dòng)模式4. 舉例1. 面臨的問題若C1, C2, C3在判斷時(shí)是阻塞式(blocking),則一個(gè)分支在阻塞等待時(shí),使得其他兩個(gè)即使條件具備也不被立即執(zhí)行若C1, C2, C3在判
50、斷時(shí)是非阻塞式(non-blocking),則C1, C2, C3不間歇地反復(fù)查詢,CPU開銷大幾個(gè)處理分支在各自條件下,間歇地、重復(fù)地執(zhí)行,次序不確定。如: While (!done) if (C1) P1;/* C1:管道1可讀*/ if (C2) P2; /* C2:管道2可寫*/ if (C3) P3;/* C3:定時(shí)器的時(shí)間到*/ 2.事件驅(qū)動(dòng)模式將多路判斷和等待匯集為一路UNIX系統(tǒng)中相應(yīng)的系統(tǒng)調(diào)用或庫函數(shù)為:select()(Solaris 2.3庫函數(shù),Linux系統(tǒng)調(diào)用), poll()(Solaris 2.3系統(tǒng)調(diào)用)特點(diǎn):節(jié)省運(yùn)行CPU開銷無事件時(shí)等待而不是反復(fù)查詢,有事
51、件時(shí)才處理當(dāng)處理分支較多時(shí),switch語句變得復(fù)雜和不易掌握While (!done) NextEvent(Event);/* 獲取下一個(gè)事件,若無事件則等待直到有事件*/ switch (Event.Type) case C1:P1; case C2:P2; case C3:P3; 3. 分發(fā)驅(qū)動(dòng)模式特點(diǎn):通過對(duì)象管理機(jī)構(gòu)(如X toolkit)創(chuàng)建多個(gè)對(duì)象或構(gòu)件,輸入事件通過對(duì)象各自的回調(diào)過程(call-back procedure)來處理通過對(duì)象管理機(jī)構(gòu),將輸入事件分發(fā)給適當(dāng)?shù)脑責(zé)o須了解分發(fā)過程的實(shí)現(xiàn)CreateObject(object1, P1);CreateObject(obj
52、ect2, P2);CreateObject(object3, P3);While (!done) NextEvent(Event);/* 獲取下一個(gè)事件,若無事件則等待直到有事件*/ Dispatch(Event);/* 分發(fā)事件給相應(yīng)的回調(diào)過程*/4. 舉例MS Windows的消息處理:WinMain(.) CreateWindow(MainWndClass, SampleName, .);/* 窗口過程的人口指針包括在WNDCLASS結(jié)構(gòu)中,通過RegisterClass注冊(cè)窗口類*/ while (GetMessage(&msg, .) /* 收到 WM_QUIT消息時(shí),返回值為NU
53、LL */ TranslateMessage(&msg); DispatchMessage(&msg); X Window的事件處理:Xt Intrinsicsmain(.) topWidget = XtAppInitialize(.); XtRealizeWidget(.); while (1) /* 這里的while循環(huán)等價(jià)于XtAppMainLoop 函數(shù)*/ XtAppNextEvent(., &event); XtDispatchEvent(&event); 小結(jié)作業(yè)組織和控制:脫機(jī)、聯(lián)機(jī)(命令行)系統(tǒng)調(diào)用:與普通過程調(diào)用的區(qū)別、與高級(jí)語言函數(shù)庫的區(qū)別、實(shí)現(xiàn)過程作業(yè)管理舉例:DOS、
54、UNIX(shell)圖形用戶接口(GUI):概述、X Window、MS Windows、事件驅(qū)動(dòng)模式2.5 用戶管理和配置管理2.5.1 用戶管理2.5.2 配置管理用戶管理負(fù)責(zé)系統(tǒng)中所有用戶使用系統(tǒng)資源時(shí)的權(quán)限管理;配置管理負(fù)責(zé)系統(tǒng)中所有軟件運(yùn)行環(huán)境的配置。2.5.1 用戶管理 用戶功能 舉例 用戶功能用戶身份:認(rèn)證通過之后生成相應(yīng)用戶身份的shell進(jìn)程在shell中運(yùn)行的新進(jìn)程也繼承同樣的用戶身份系統(tǒng)資源中的權(quán)限設(shè)置(屬主和訪問權(quán)限):靜態(tài)資源如文件、設(shè)備,動(dòng)態(tài)資源如進(jìn)程;控制進(jìn)程對(duì)資源的訪問控制:進(jìn)程的用戶身份與資源的權(quán)限設(shè)置比較; 舉例.1 UNIX.1 UNIX用戶的控制臺(tái)/遠(yuǎn)
55、程登錄(login):給出用戶名和口令;su變?yōu)槠渌脩粲脩鬒D(user ID):是一個(gè)整數(shù)。Uid為0的是超級(jí)用戶或特權(quán)用戶(super-user or privileged user);用戶名(user name):字符串,通常超級(jí)用戶是 root(對(duì)所有資源均有全部訪問權(quán),執(zhí)行所有系統(tǒng)調(diào)用)。/etc/passwd文件:文本文件,每行對(duì)應(yīng)一個(gè)用戶,包括:用戶名、用戶ID、用戶組ID、用戶全名、用戶根目錄、默認(rèn)shell;如:root:x:0:1:Super-User:/:/sbin/sh為該文件中與root用戶對(duì)應(yīng)的行。有關(guān)user的例程:getuid(); setuid();1. 用
56、戶為防止口令失竊,用戶口令放在 /etc/shadow文件中,只有超級(jí)用戶進(jìn)程可以讀取。如:xyong:6YD6YlXYuOAGk:10624:為該文件中對(duì)應(yīng)于用戶xyong的加密口令。創(chuàng)建新用戶(useradd):命令./useradd test1會(huì)對(duì)文件passwd進(jìn)行修改,以創(chuàng)建一個(gè)新的用戶test1。刪除已有用戶(userdel):命令./userdel test1會(huì)對(duì)文件passwd進(jìn)行修改,以刪除已有用戶test1。2. 用戶組用戶組ID(group):是一個(gè)整數(shù)。Uid為0的是超級(jí)用戶組;用戶組名:字符串,通常超級(jí)用戶組是 root。/etc/group文件:文本文件,每行對(duì)應(yīng)一
57、個(gè)用戶組,包括:用戶組名、用戶組ID、組內(nèi)的各用戶。如:sys:3:root,bin,sys,adm,rootc為該文件中與sys組對(duì)應(yīng)的行。有關(guān)group的例程:initgroups(); getgroups(); setgroups(); getgid(); setgid();創(chuàng)建新用戶組(groupadd):命令./groupadd test會(huì)對(duì)文件group進(jìn)行修改,以創(chuàng)建一個(gè)新的用戶組test。把一個(gè)用戶加入一個(gè)組(usermod):命令./usermod -G group user會(huì)對(duì)文件group進(jìn)行修改,把用戶user加入用戶組group。在文件管理功能中有相應(yīng)命令進(jìn)行資源所有者及其所在用戶組的控制。如命令chgrp group directory可修改目錄directory所在的用戶組為 group。3. 資源訪問權(quán)限資源中的用戶信息:文件:uid, gidchown()進(jìn)程:uid, gid, euid, egidsetuid(), getuid() (real ID對(duì)應(yīng)于調(diào)用進(jìn)程ID,ef
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公門安裝合同范例
- 二建水利合同范本
- 2025年臨滄貨運(yùn)從業(yè)資格證模擬考試題庫
- 互惠合同范本
- 農(nóng)藥倉儲(chǔ)配送合同范本
- 兼職中介合同范本
- 傳媒公司投資合同范本
- 勞動(dòng)合同范本 襄陽
- saas服務(wù)合同范本
- 加工維修承攬合同范本
- 《中醫(yī)基礎(chǔ)理論》課件-中醫(yī)學(xué)理論體系的基本特點(diǎn)-整體觀念
- 2025年廣東省深圳法院招聘書記員招聘144人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年人教版新教材數(shù)學(xué)一年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 2025年春西師版一年級(jí)下冊(cè)數(shù)學(xué)教學(xué)計(jì)劃
- 課題申報(bào)書:“四新”視域下地方高校學(xué)科建設(shè)與人才培養(yǎng)研究
- 施工爆破作業(yè)審批制度范文(2篇)
- 企業(yè)員工退休管理規(guī)章制度(3篇)
- 中國(guó)干眼臨床診療專家共識(shí)(2024年)解讀
- 小學(xué)生情緒調(diào)適課件
- 2025年華潤(rùn)電力招聘筆試參考題庫含答案解析
- 建筑行業(yè)材料供應(yīng)應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論