版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)進(jìn)程調(diào)度實(shí)驗(yàn)操作系統(tǒng)進(jìn)程調(diào)度實(shí)驗(yàn)操作系統(tǒng)進(jìn)程調(diào)度實(shí)驗(yàn)xxx公司操作系統(tǒng)進(jìn)程調(diào)度實(shí)驗(yàn)文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度侯秀萍焦素云朱洪秀長春工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院2010年3月
前言操作系統(tǒng)是信息科學(xué)、計(jì)算機(jī)軟件的核心和基礎(chǔ)學(xué)科,對它的掌握程度,決定著計(jì)算機(jī)學(xué)習(xí)者的發(fā)展水平及方向。同時(shí)它是一門實(shí)踐性很強(qiáng)的課程,不僅要學(xué)習(xí)書本上的理論,而且必須動手實(shí)踐才能對操作系統(tǒng)基本原理真正理解。本課程提供實(shí)驗(yàn)課,其目的在于加深學(xué)生對教學(xué)內(nèi)容的理解,培養(yǎng)學(xué)生初步掌握操作系統(tǒng)基本功能的設(shè)計(jì)方法及其實(shí)現(xiàn)過程。為使學(xué)生能更好的了解操作系統(tǒng),本次實(shí)驗(yàn)安排了熟悉AIX操作系統(tǒng)的基本特性,在Windows系統(tǒng)下進(jìn)行實(shí)驗(yàn)題目的設(shè)計(jì)與實(shí)現(xiàn)。
目錄TOC\o"1-3"\h\z第一章AIX/LINUX簡單命令簡介 11.1如何登錄到IBM小型機(jī) 11.2如何登錄到LINUX服務(wù)器 11.3如何退出AIX/LINUX系統(tǒng) 11.4AIX/LINUX簡單命令 1第二章vi編輯器的使用 52.1vi的兩種工作模式 52.2vi的文本編輯方法 5第三章背景知識介紹 73.1進(jìn)程管理 73.2進(jìn)程控制塊 73.3進(jìn)程控制塊隊(duì)列 83.4進(jìn)程調(diào)度算法 8第四章實(shí)驗(yàn)項(xiàng)目指導(dǎo) 104.1先進(jìn)先出進(jìn)程調(diào)度算法 104.2時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法 134.3優(yōu)先數(shù)進(jìn)程調(diào)度算法 144.4可變分區(qū)管理 16第五章實(shí)驗(yàn)報(bào)告內(nèi)容及格式 185.1實(shí)驗(yàn)報(bào)告內(nèi)容 185.2參考樣例 20第一章AIX/LINUX簡單命令簡介1.1如何登錄到LINUX服務(wù)器啟動Windows后,選擇“開始”-“程序”-“附件”-“命令提示符”,執(zhí)行Telnet命令,命令格式為TelnetIP地址(例C:\>telnet,IP地址為LINUX服務(wù)器的地址),執(zhí)行此命令后,系統(tǒng)會提示輸入用戶名和密碼:都輸入student即可。系統(tǒng)會顯示提示符如下:$(普通用戶)#(root用戶)表明登錄成功,你可以開始工作。1.2如何退出AIX/LINUX系統(tǒng) 如果在當(dāng)前提示符下,用戶按Ctrl-d(或在鍵入Logout)可以退出系統(tǒng),返回到提示符狀態(tài)下(或者退回WINDOWS系統(tǒng))1.3AIX/LINUX簡單命令一、命令的基本格式說明:1、格式:$命令[-命令選項(xiàng)][參數(shù)1][參數(shù)2]2、說明:字段間用一個(gè)或多個(gè)空格分開UNIX對大小寫敏感,只接受小寫命令二、常用命令介紹1、who命令功能:可以列出當(dāng)前登錄到系統(tǒng)的所有用戶的登錄名、終端號和登錄時(shí)間$whodavidtty04Nov2808:27danieltty01Nov2808:30 2、man命令可以顯示在線電子文檔3、pwd顯示當(dāng)前目錄的絕對路徑名$pwd /usr/james4、cd改變工作目錄 $cdsource(相對路徑) $cd/usr/david(絕對路徑)$cd$HOME或者cd返回用戶主目錄5、mkdir創(chuàng)建目錄 $mkdirmemos在當(dāng)前目錄下創(chuàng)建子目錄 $mkdir/source/memos指定目錄的名字 $mkdir–pxx/yy/zz創(chuàng)建多個(gè)分級目錄6、rmdir刪除目錄 $rmdirimportant刪除一個(gè)空目錄 如果目錄不空,則無法刪除 必須在父目錄或者更高層刪除子目錄7、ls顯示指定目錄的內(nèi)容 $ls列出當(dāng)前目錄內(nèi)容 $lssource顯示目錄source的文件列表 $lssource/顯示指定的文件 $ls–a列出所有文件,包括隱藏文件 $ls–R循環(huán)列出子目錄的內(nèi)容 $ls–l按照長格式列表,顯示文件的詳細(xì)信息total3-rw-r--r--1davidstudent1026Jun2512:30123-rw-r--r--1davidstudent684Jun2512:30REPORTdrw-r--r--1davidstudent48Jun2512:30momos文件類型:第1列由10個(gè)字符組成,每行的第一個(gè)字符表示文件類型。-: 普通文件d: 目錄文件b: 塊設(shè)備文件,例如磁盤c: 字符設(shè)備文件,例如打印機(jī)文件的訪問模式:9個(gè)字符表示,R: 允許讀w: 允許寫x: 允許執(zhí)行第一組允許所有者的讀、寫和執(zhí)行權(quán)限。第二組允許用戶組的讀、寫和執(zhí)行權(quán)限。第三組允許其他用戶的讀、寫和執(zhí)行權(quán)限。如果是可執(zhí)行文件,標(biāo)記執(zhí)行許可權(quán)。8、rm刪除文件rm既可以刪除文件,也可以刪除目錄。rm命令沒有任何警告信息,當(dāng)刪除文件的時(shí)候,不出問題的話,文件就被刪除了。rm-I刪除文件前,確認(rèn)rm-r刪除指定的目錄及目錄中所有文件和子目錄9、cp復(fù)制文件格式:cp源目標(biāo)目的目標(biāo)如果目的目標(biāo)已經(jīng)存在,那么他的內(nèi)容將被破壞。$cpfile1file210、mv移動文件、更改名字 格式:mv源目標(biāo)目的目標(biāo) $mvfile1file2(更改名字) cp和mv命令都可以接受多于兩個(gè)的參數(shù),但最后參數(shù)必須是目錄 $cpfile1file2file3directory111、uptime命令:用來得到有關(guān)系統(tǒng)負(fù)載的大致數(shù)據(jù)。$uptime3:20pmup2days,2:41,16users,loadaverage:,,uptime報(bào)告當(dāng)前的時(shí)間,系統(tǒng)已經(jīng)啟動的時(shí)間以及有關(guān)任務(wù)負(fù)載的三個(gè)平均數(shù)據(jù)(最后1分鐘,最后5分鐘,最后15秒),該數(shù)據(jù)是對CPU使用量的大致接近。12、ps命令:生成一個(gè)報(bào)告,總結(jié)當(dāng)前進(jìn)程執(zhí)行的統(tǒng)計(jì)信息。該命令的選項(xiàng)控制要列出的進(jìn)程和要顯示的信息。最常用的格式就是$ps–ef-e:顯示所有進(jìn)程-f:顯示詳細(xì)信息UIDPIDPPIDCSTIMETTYTIMECMDroot00009:36:35 0:00schedjames8881131517:02:05tty610:02vi其中:UID:用戶IDPID:進(jìn)程IDPPID:父進(jìn)程IDC:當(dāng)前的調(diào)度程序的值STIME:進(jìn)程的開始時(shí)間TTY: 和進(jìn)程相關(guān)的終端TIME:總的CPU運(yùn)行時(shí)間CMD:進(jìn)程運(yùn)行的命令13、nice命令:指定運(yùn)行程序的優(yōu)先值。格式:nice–n[+|-]數(shù)字命令例:$nice–n10myprog $nice–n–10myprog14、renice命令:指定進(jìn)程的優(yōu)先值。格式:renice–n[+|-]數(shù)字PID例:$renice–n+101001 $renice–n–10131315、kill命令:向進(jìn)程發(fā)信號并殺死進(jìn)程。格式:kill[-信號]PID(S)信號是要發(fā)給進(jìn)程的信號(可選),缺省是15,通知進(jìn)程終止有時(shí)候發(fā)出kill信號之后進(jìn)程依然可能存在。此時(shí)可以使用kill–9命令。一般這樣就能夠保證殺死進(jìn)程。當(dāng)殺死一個(gè)進(jìn)程的時(shí)候,也殺死了進(jìn)程的所有子進(jìn)程。第二章vi編輯器的使用2.1vi的工作模式幾乎被所有版本的UNIX系統(tǒng)均支持vi編輯器。命令模式:vi初始啟動時(shí)先進(jìn)入命令模式。在命令模式下,所有的輸入不會在屏幕上顯示,只會被解釋執(zhí)行。輸入的命令均顯示在編輯器屏幕的最后一行。命令輸入完后,按回車執(zhí)行命令;有的命令直接就可以執(zhí)行。文本輸入模式:所有的用戶輸入將被作為文本寫入到用戶的文件中。 狀態(tài)行:屏幕最底部的一行,用來反饋編輯操作結(jié)果。以冒號(:)、斜杠(/)、問號()開頭的命令也會在狀態(tài)行顯示。vi的三種模式的相互轉(zhuǎn)化如圖所示2.2vi的文本編輯方法1、進(jìn)入vi編輯器:在命令行下輸入vi[文件名]回車,進(jìn)入vi編輯器。此時(shí)位命令行模式。2、設(shè)置文本編輯模式:在命令行輸入i(insert)鍵可以切換到輸入文本狀態(tài)。許多命令在命令行狀態(tài)下按下命令鍵就可以了,不用再輸入回車3、保存文件:首先要使vi由文本輸入模式切換到命令模式。連續(xù)按[ESC]鍵可以切換到命令模式。然后輸入wq(writeandquit)就可以存盤并退出編輯器。4、vi操作的常用方法可以使用下列命令選擇進(jìn)入文本模式時(shí)光標(biāo)的位置:i:在光標(biāo)左側(cè)輸入正文I:在光標(biāo)所在行的開頭輸入正文a:在光標(biāo)右側(cè)輸入正文A:在光標(biāo)所在行的末尾輸入正文o:在光標(biāo)所在行的下一行添加新行,光標(biāo)位于新行開頭O:在光標(biāo)所在行的上一行添加新行,光標(biāo)位于新行開頭空格鍵和[Tab]:空格鍵在當(dāng)前光標(biāo)位置前插入一個(gè)空格。[Tab]用來插入一個(gè)制表符。[Backspace]鍵:光標(biāo)退回一個(gè)字符的位置?;剀囨I:增添一個(gè)新行移動光標(biāo):可以使用箭頭鍵來移動光標(biāo)。有些終端上箭頭鍵不能正常工作。我們可以使用下面的控制鍵來移動光標(biāo):h:光標(biāo)左移一個(gè)空格j:光標(biāo)下移一行k:光標(biāo)上移一行l(wèi):光標(biāo)右移一個(gè)空格$:光標(biāo)移到當(dāng)前行的末尾w:右移光標(biāo),到下一個(gè)字的開頭b:左移光標(biāo),到前一個(gè)字的開頭e:右移光標(biāo),到一個(gè)字的末尾0:左移光標(biāo),到本行的開頭回車鍵:光標(biāo)移到下一行的開頭5、文本修改:x:從指定位置開始刪除字符dd:從指定位置刪除行u:放棄最近的修改U:放棄對當(dāng)前行所做的所有修改r:替換當(dāng)前光標(biāo)所在的字符R:從當(dāng)前光標(biāo)的位置開始替換字符,并且使vi進(jìn)入文本輸入模式.:重復(fù)上次的修改操作命令前可以加上數(shù)字,可重復(fù)操作。搜索功能:“/”和“”分別提供了向前和向后搜索功能。在命令行提示符輸入n可以繼續(xù)查找。6、退出vi:q:退出編輯器w:保存文件,但是不退出wq:保存文件,然后退出q!:退出編輯器,放棄所有的修改ZZ:保存文件,退出vi,和wq作用相同第三章背景知識介紹3.1進(jìn)程管理進(jìn)程管理是操作系統(tǒng)中用來創(chuàng)建進(jìn)程、撤消進(jìn)程、實(shí)現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換的部分,它提供了在可運(yùn)行的進(jìn)程之間復(fù)用CPU的方法。在進(jìn)程管理中,進(jìn)程調(diào)度是核心,因?yàn)樵诓捎枚嗟莱绦蛟O(shè)計(jì)的系統(tǒng)中,往往有若干個(gè)進(jìn)程同時(shí)處于就緒狀態(tài),當(dāng)就緒進(jìn)程個(gè)數(shù)大于處理器數(shù)目時(shí),就必須依照某種策略決定哪些進(jìn)程優(yōu)先占用處理器。本次實(shí)驗(yàn)?zāi)M在單處理器情況下的進(jìn)程調(diào)度,目的是加深對進(jìn)程調(diào)度工作的理解。3.2進(jìn)程控制塊為了管理和控制進(jìn)程,系統(tǒng)在創(chuàng)建每一個(gè)進(jìn)程時(shí),都為其開辟一個(gè)專用的存儲區(qū),用以隨時(shí)記錄它在系統(tǒng)中的動態(tài)特性。而當(dāng)一個(gè)進(jìn)程被撤消時(shí),系統(tǒng)就收回分配給它的存儲區(qū)。通常,把這一存儲區(qū)稱為該進(jìn)程的“進(jìn)程控制塊”PCB(ProcessControlBlock)。由于PCB是隨著進(jìn)程的創(chuàng)建而建立,隨著進(jìn)程的撤消而取消的,因此系統(tǒng)是通過PCB來“感知”一個(gè)個(gè)進(jìn)程的,PCB是進(jìn)程存在的唯一標(biāo)志。隨操作系統(tǒng)的不同,PCB的格式、大小以及內(nèi)容也不盡相同。一般地,在PCB中大致應(yīng)包如下4方面的信息。標(biāo)識信息:進(jìn)程名等。說明信息:進(jìn)程狀態(tài)、程序存放位置、數(shù)據(jù)存放位置等?,F(xiàn)場信息:通用寄存器內(nèi)容、控制寄存器內(nèi)容、斷點(diǎn)地址等。管理信息:進(jìn)程優(yōu)先數(shù)、隊(duì)列指針等。3.3進(jìn)程控制塊隊(duì)列在多道程序設(shè)計(jì)環(huán)境里,同時(shí)會創(chuàng)建多個(gè)進(jìn)程。當(dāng)計(jì)算機(jī)系統(tǒng)只有一個(gè)CPU時(shí),每次只能讓一個(gè)進(jìn)程運(yùn)行,其他的進(jìn)程或處于就緒狀態(tài),或處于阻塞狀態(tài)。為了對這些進(jìn)程進(jìn)行管理,操作系統(tǒng)要做三件事。 (1)把處于相同狀態(tài)的進(jìn)程的PCB,通過各自的隊(duì)列指針鏈接在一起,形成一個(gè)個(gè)隊(duì)列。通常有運(yùn)行隊(duì)列、就緒隊(duì)列、阻塞隊(duì)列。(2)為每一個(gè)隊(duì)列設(shè)立一個(gè)隊(duì)列頭指針,它總是指向排在隊(duì)列之首的進(jìn)程的PCB。 (3)排在隊(duì)尾的進(jìn)程的PCB,它的“隊(duì)列指針”項(xiàng)內(nèi)容應(yīng)該為“NULL”,或一個(gè)特殊的符號,以表示這是該隊(duì)的隊(duì)尾PCB。在單CPU系統(tǒng),任何時(shí)刻系統(tǒng)中都只有一個(gè)進(jìn)程處于運(yùn)行狀態(tài),因此運(yùn)行隊(duì)列中只能有一個(gè)PCB;系統(tǒng)中所有處于就緒狀態(tài)的進(jìn)程的PCB排成一隊(duì),稱其為“就緒隊(duì)列”。一般地,就緒隊(duì)列中會有多個(gè)進(jìn)程的PCB排在里面,它們形成處理機(jī)分配的候選對象。如果就緒隊(duì)列里沒有PCB存在,則稱該隊(duì)列為空;所有處于阻塞狀態(tài)進(jìn)程的PCB,應(yīng)該根據(jù)阻塞的原因進(jìn)行排隊(duì),每一個(gè)都稱為一個(gè)“阻塞隊(duì)列”。比如等待磁盤輸入/輸出進(jìn)程的PCB排成一個(gè)隊(duì)列,等待打印機(jī)輸出進(jìn)程的PCB排成一個(gè)隊(duì)列等。所以,系統(tǒng)中可以有多個(gè)阻塞隊(duì)列,每個(gè)阻塞隊(duì)列中可以有多個(gè)進(jìn)程的PCB,也可以為空。3.4進(jìn)程調(diào)度算法進(jìn)程調(diào)度算法用于確定就緒隊(duì)列中的哪一個(gè)進(jìn)程即將獲得CPU。常用的進(jìn)程調(diào)度算法有先來先服務(wù)法、時(shí)間片輪轉(zhuǎn)法、優(yōu)先數(shù)法等。1.先來先服務(wù)調(diào)度算法 先來先服務(wù)調(diào)度算法的基本思想是:以到達(dá)就緒隊(duì)列的先后次序?yàn)闃?biāo)準(zhǔn)來選擇占用處理機(jī)的進(jìn)程。一個(gè)進(jìn)程一旦占有處理機(jī),就一直使用下去,直至正常結(jié)束或因等待某事件的發(fā)生而讓出處理機(jī)。采用這種算法時(shí),應(yīng)該這樣來管理就緒隊(duì)列:到達(dá)的進(jìn)程的PCB總是排在就緒隊(duì)列末尾;調(diào)度程序總是把CPU分配給就緒隊(duì)列中的第一個(gè)進(jìn)程使用。2.時(shí)間片輪轉(zhuǎn)法時(shí)間片輪轉(zhuǎn)調(diào)度算法的基本思想是:為就緒隊(duì)列中的每一個(gè)進(jìn)程分配一個(gè)稱為“時(shí)間片”的時(shí)間段,它是允許該進(jìn)程運(yùn)行的時(shí)間長度。在使用完一個(gè)時(shí)間片后,即使進(jìn)程還沒有運(yùn)行完畢,也要強(qiáng)迫其釋放處理機(jī),讓給另一個(gè)進(jìn)程使用。它自己則返回到就緒隊(duì)列末尾,排隊(duì)等待下一次調(diào)度的到來。采用這種調(diào)度算法時(shí),對就緒隊(duì)列的管理與先來先服務(wù)完全相同。主要區(qū)別是進(jìn)程每次占用處理機(jī)的時(shí)間由時(shí)間片決定,而不是只要占用處理機(jī)就一直運(yùn)行下去,直到運(yùn)行完畢或?yàn)榈却骋皇录陌l(fā)生而自動放棄。3. 優(yōu)先數(shù)調(diào)度算法優(yōu)先數(shù)調(diào)度算法的基本思想是:為每一個(gè)進(jìn)程確定一個(gè)優(yōu)先數(shù),進(jìn)程就緒隊(duì)列按照優(yōu)先數(shù)排序。如何確定進(jìn)程的優(yōu)先數(shù)(也就是進(jìn)程的優(yōu)先級)可以從如下幾個(gè)方面考慮。 (1)根據(jù)進(jìn)程的類型。比如說,系統(tǒng)中有系統(tǒng)進(jìn)程和用戶進(jìn)程。系統(tǒng)進(jìn)程完成的任務(wù)是提供系統(tǒng)服務(wù),分配系統(tǒng)資源,因此,給予系統(tǒng)進(jìn)程較高的優(yōu)先數(shù),不僅合乎情理,而且也能夠提高系統(tǒng)的工作效率。 (2)根據(jù)進(jìn)程執(zhí)行任務(wù)的重要性。每個(gè)進(jìn)程所完成的任務(wù),就其重要性和緊迫性講,肯定不會完全一樣。比如說,系統(tǒng)中處理緊急情況的報(bào)警進(jìn)程的重要性是不言而喻的。賦予報(bào)警進(jìn)程高的優(yōu)先數(shù),一旦有緊急事件發(fā)生時(shí),讓它立即占有處理機(jī)投入運(yùn)行,誰也不會提出異議。 (3)根據(jù)進(jìn)程程序的性質(zhì)。一個(gè)CPU繁忙的進(jìn)程,由于需要占用較長的運(yùn)行時(shí)間,影響系統(tǒng)整體效率的發(fā)揮,因此只能給予較低的優(yōu)先數(shù)。一個(gè)I/O繁忙的進(jìn)程,給予它較高的優(yōu)先數(shù)后,就能充分發(fā)揮CPU和外部設(shè)備之間的并行工作能力。 (4)根據(jù)對資源的要求。系統(tǒng)資源有處理機(jī)、內(nèi)存儲器和外部設(shè)備等??梢园凑找粋€(gè)進(jìn)程所需資源的類型和數(shù)量,確定它的優(yōu)先數(shù)。比如給予占用CPU時(shí)間短或內(nèi)存容量少的進(jìn)程以較高的優(yōu)先數(shù),這樣可以提高系統(tǒng)的吞吐量。 (5)根據(jù)用戶的請求。系統(tǒng)可以根據(jù)用戶的請求,給予它的進(jìn)程很高的優(yōu)先數(shù),作“加急”處理。4.多級隊(duì)列調(diào)度算法 多級隊(duì)列調(diào)度算法也稱多級反饋隊(duì)列調(diào)度算法,它是時(shí)間片調(diào)度算法與優(yōu)先數(shù)調(diào)度算法的結(jié)合。實(shí)行這種調(diào)度算法時(shí),系統(tǒng)中將維持多個(gè)就緒隊(duì)列,每個(gè)就緒隊(duì)列具有不同的調(diào)度級別,可以獲得不同長度的時(shí)間片。例如,系統(tǒng)維持N個(gè)就緒隊(duì)列,第1級就緒隊(duì)列中進(jìn)程的調(diào)度級別最高,可獲得的時(shí)間片最短,第N級就緒隊(duì)列中進(jìn)程的調(diào)度級別最低,可獲得的時(shí)間片最長。具體的調(diào)度方法是:創(chuàng)建一個(gè)新進(jìn)程時(shí),它的PCB將進(jìn)入第1級就緒隊(duì)列的末尾。對于在第1級到第N-1級隊(duì)列中的進(jìn)程,如果在分配給它的時(shí)間片內(nèi)完成了全部工作,那么就撤離系統(tǒng);如果在時(shí)間片沒有用完時(shí)提出了輸入/輸出請求或要等待某事件發(fā)生,那么就進(jìn)入相應(yīng)的阻塞隊(duì)列里等待。在所等待的事件出現(xiàn)時(shí),仍回到原隊(duì)列末尾,參與下一輪調(diào)度(也就是每個(gè)隊(duì)列實(shí)行先來先服務(wù)調(diào)度算法);如果用完了時(shí)間片還沒有完成自己的工作,那么只能放棄對CPU的使用,降到低一級隊(duì)列的末尾,參與那個(gè)隊(duì)列的調(diào)度。對位于最后一個(gè)隊(duì)列里的進(jìn)程,實(shí)行時(shí)間片輪轉(zhuǎn)調(diào)度算法。整個(gè)系統(tǒng)最先調(diào)度1級就緒隊(duì)列;只有在上一級就緒隊(duì)列為空時(shí),才去下一級隊(duì)列調(diào)度。當(dāng)比運(yùn)行進(jìn)程更高級別的隊(duì)列中到達(dá)一個(gè)進(jìn)程(可以肯定,在此之前比運(yùn)行進(jìn)程級別高的所有隊(duì)列全為空)時(shí),系統(tǒng)將立即停止當(dāng)前運(yùn)行進(jìn)程的運(yùn)行,讓它回到自己隊(duì)列的末尾,轉(zhuǎn)去運(yùn)行級別高的那個(gè)進(jìn)程??梢钥闯觯嗉夑?duì)列調(diào)度算法優(yōu)先照顧I/O繁忙的進(jìn)程。I/O繁忙的進(jìn)程在獲得一點(diǎn)CPU時(shí)間后就會提出輸入/輸出請求,因此它們總是被保持在1、2級等較前面的隊(duì)列中,總能獲得較多的調(diào)度機(jī)會。對于CPU繁忙的進(jìn)程,它們需要較長的CPU時(shí)間,因此會逐漸地由級別高的隊(duì)列往下降,以獲得更多的CPU時(shí)間,它們“沉”得越深,被調(diào)度到的機(jī)會就越少。但是,一旦被調(diào)度到,就會獲得更多的CPU時(shí)間,所以,多級調(diào)度算法采用的是“你要得越多,你就必須等待越久”的原則來分配處理機(jī)的。第四章實(shí)驗(yàn)項(xiàng)目指導(dǎo)4.1先進(jìn)先出進(jìn)程調(diào)度算法實(shí)驗(yàn)?zāi)康睦斫庀冗M(jìn)先出進(jìn)程調(diào)度算法的基本思想。二、提示假定系統(tǒng)有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊PCB來代表。進(jìn)程控制塊的格式如圖。其中:進(jìn)程名PCB指針要求運(yùn)行時(shí)間進(jìn)程名PCB指針要求運(yùn)行時(shí)間進(jìn)入系統(tǒng)時(shí)間狀態(tài)圖PCB指針:按進(jìn)程進(jìn)入系統(tǒng)的先后順序把五個(gè)進(jìn)程連成隊(duì)列,用指針指出下一個(gè)進(jìn)程的進(jìn)程控制塊的首地址,最后一個(gè)進(jìn)程中的指針為“NULL”。要求運(yùn)行時(shí)間:假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù)。進(jìn)入系統(tǒng)時(shí)間:記錄進(jìn)程進(jìn)入系統(tǒng)的時(shí)刻,調(diào)度時(shí)總是選取最早進(jìn)入系統(tǒng)的進(jìn)程先執(zhí)行。狀態(tài):可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài)。五個(gè)進(jìn)程的初始狀態(tài)都為“就緒”狀態(tài),用“R”表示,當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束后,它的狀態(tài)為“結(jié)束”狀態(tài),用“E”表示。(2)在每次運(yùn)行你所設(shè)計(jì)的進(jìn)程調(diào)度程序之前,為每個(gè)進(jìn)程任意確定它的“進(jìn)入系統(tǒng)時(shí)間”和“要求運(yùn)行時(shí)間”。(3)為了調(diào)度方便,把五個(gè)進(jìn)程按進(jìn)入系統(tǒng)的時(shí)間從早到晚連成隊(duì)列,用一單元Head_PCB指出隊(duì)首進(jìn)程,用指針指出隊(duì)列的連接情況,如圖。Head_PCBHead_PCBPCB1PCB2PCB3PCB4PCB5P121RP221RP321RP421RP5NULL21R圖(4)處理器調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行,由于本實(shí)驗(yàn)是模擬處理器調(diào)度,所以,對被選中的進(jìn)程并不實(shí)際地啟動運(yùn)行,而是輸出被選中進(jìn)程的名稱來模擬進(jìn)程的一次運(yùn)行。提醒注意的是:在實(shí)際的系統(tǒng)中,當(dāng)一個(gè)進(jìn)程被選中運(yùn)行時(shí),必須恢復(fù)進(jìn)程的現(xiàn)場,讓它占有處理器運(yùn)行,直到出現(xiàn)等待事件或運(yùn)行結(jié)束,在這里省去了這些工作。(5)進(jìn)程運(yùn)行一次后,要將它的狀態(tài)修改成“結(jié)束”(E),且退出就緒隊(duì)列,移入空閑隊(duì)列。(6)若“就緒”狀態(tài)的進(jìn)程隊(duì)列不為空,則重復(fù)上面(4)和(5)的步驟,直到所有進(jìn)程都為“結(jié)束”狀態(tài)。(7)在所設(shè)計(jì)的程序中應(yīng)有顯示或打印語句,能顯示或打印每次被選中進(jìn)程名稱以及運(yùn)行一次后進(jìn)程隊(duì)列的變化。(8)為五個(gè)進(jìn)程任意確定一組“進(jìn)入系統(tǒng)時(shí)間”和“要求運(yùn)行時(shí)間”,啟動所設(shè)計(jì)的處理器調(diào)度程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名稱以及進(jìn)程控制塊的動態(tài)變化過程。4.2時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法一、實(shí)驗(yàn)?zāi)康睦斫鈺r(shí)間片輪轉(zhuǎn)法的基本思想。二、提示進(jìn)程名PCB指針進(jìn)程名PCB指針要求運(yùn)行時(shí)間已運(yùn)行時(shí)間狀態(tài)圖進(jìn)程名:作為進(jìn)程的標(biāo)識,假設(shè)五個(gè)進(jìn)程的進(jìn)程名分別為Q1,Q2,Q3,Q4,Q5。PCB指針:進(jìn)程按順序排成循環(huán)隊(duì)列,用指針指出下一個(gè)進(jìn)程的進(jìn)程控制塊的首地址,最后一個(gè)進(jìn)程中的指針指出第一個(gè)進(jìn)程的進(jìn)程控制塊首地址。要求運(yùn)行時(shí)間:假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù)。已運(yùn)行時(shí)間:假設(shè)進(jìn)程已經(jīng)運(yùn)行的單位時(shí)間數(shù),初始值為“0”狀態(tài):可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài)。五個(gè)進(jìn)程的初始狀態(tài)都為“就緒”狀態(tài),用“R”表示,當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束后,它的狀態(tài)為“結(jié)束”狀態(tài),用“E”表示。(2)每次運(yùn)行你所設(shè)計(jì)的進(jìn)程調(diào)度程序之前,為每個(gè)進(jìn)程任意確定它的“要求運(yùn)行時(shí)間”。圖PCB1PCB2圖PCB1PCB2PCB3PCB4PCB5Q140RQ220RQ330RQ450RQ530RCurrent_PCB(4)處理器調(diào)度總是選擇Current_PCB指示的進(jìn)程運(yùn)行。由于本實(shí)驗(yàn)是模擬處理器調(diào)度,所以,對被選中的進(jìn)程并不實(shí)際地啟動運(yùn)行,而是將該進(jìn)程的已運(yùn)行時(shí)間加1來模擬進(jìn)程的一次運(yùn)行,表示進(jìn)程已經(jīng)運(yùn)行過一個(gè)單位的時(shí)間。提醒注意的是:在實(shí)際的系統(tǒng)中,當(dāng)一個(gè)進(jìn)程被選中運(yùn)行時(shí),必須設(shè)置該進(jìn)程可以運(yùn)行的時(shí)間片值,以及恢復(fù)進(jìn)程的現(xiàn)場,讓它占有處理器運(yùn)行,直到出現(xiàn)等待事件或運(yùn)行滿一個(gè)時(shí)間片。在這里省去了這些工作。僅用“已運(yùn)行時(shí)間+1”來表示進(jìn)程已經(jīng)運(yùn)行滿一個(gè)時(shí)(5)進(jìn)程運(yùn)行一次后,應(yīng)把該進(jìn)程的進(jìn)程控制塊中的指針值送到Current_PCB,以指示下一個(gè)輪到運(yùn)行的進(jìn)程,同時(shí),應(yīng)該判斷該進(jìn)程的要求運(yùn)行時(shí)間與已經(jīng)運(yùn)行時(shí)間,若該進(jìn)程的要求運(yùn)行時(shí)間不等于已運(yùn)行時(shí)間,則表示它尚未執(zhí)行結(jié)束,應(yīng)待到下一輪時(shí)再運(yùn)行;若要求運(yùn)行時(shí)間等于已運(yùn)行時(shí)間,則表示它已經(jīng)執(zhí)行結(jié)束,應(yīng)把它的狀態(tài)修改成“結(jié)束”(E)且退出隊(duì)列。此時(shí),應(yīng)把該進(jìn)程的進(jìn)程控制塊中的指針值送到前面一個(gè)進(jìn)程指針位置。(6)若“就緒”狀態(tài)的進(jìn)程隊(duì)列不為空,則重復(fù)上面(4)和(5)的步驟,直到所有進(jìn)程都為“結(jié)束”狀態(tài)。(7)在所設(shè)計(jì)的程序中應(yīng)有顯示或打印語句,能顯示或打印每次被選中進(jìn)程名稱以及運(yùn)行一次后進(jìn)程隊(duì)列的變化。(8)為五個(gè)進(jìn)程任意確定一組“要求運(yùn)行時(shí)間”,啟動所設(shè)計(jì)的處理器調(diào)度程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名稱以及進(jìn)程控制塊的動態(tài)變化過程。4.3優(yōu)先數(shù)進(jìn)程調(diào)度算法一、實(shí)驗(yàn)?zāi)康睦斫鈨?yōu)先數(shù)進(jìn)程調(diào)度算法的基本思想。二、提示(1)假定系統(tǒng)有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊PCB來代表。進(jìn)程控制塊的格式如圖。其中:進(jìn)程名PCB指針要求運(yùn)行時(shí)間進(jìn)程名PCB指針要求運(yùn)行時(shí)間優(yōu)先數(shù)狀態(tài)圖PCB指針:按優(yōu)先數(shù)的大小把五個(gè)進(jìn)程連成隊(duì)列,用指針指出下一個(gè)進(jìn)程的進(jìn)程控制塊的首地址,最后一個(gè)進(jìn)程中的指針為“NULL”。要求運(yùn)行時(shí)間:假設(shè)進(jìn)程需要運(yùn)行的單位時(shí)間數(shù)。優(yōu)先數(shù):賦予進(jìn)程的優(yōu)先數(shù),調(diào)度時(shí)總是選取優(yōu)先數(shù)大的進(jìn)程先執(zhí)行。狀態(tài):可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài)。五個(gè)進(jìn)程的初始狀態(tài)都為“就緒”狀態(tài),用“R”表示,當(dāng)一個(gè)進(jìn)程運(yùn)行結(jié)束后,它的狀態(tài)為“結(jié)束”狀態(tài),用“E”表示。(2)在每次運(yùn)行你所設(shè)計(jì)的進(jìn)程調(diào)度程序之前,為每個(gè)進(jìn)程任意確定它的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”。(3)為了調(diào)度方便,把五個(gè)進(jìn)程按給定的優(yōu)先數(shù)從大到小連成隊(duì)列,用一單元Head_PCB指出隊(duì)首進(jìn)程,用指針指出隊(duì)列的連接情況,如圖。Head_PCBHead_PCBPCB1PCB2PCB3PCB4PCB5P121RP221RP321RP421RP5NULL21R圖(4)處理器調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行,采用動態(tài)改變優(yōu)先數(shù)的辦法,進(jìn)程每運(yùn)行一次,它的優(yōu)先數(shù)就減“1”,由于本實(shí)驗(yàn)是模擬處理器調(diào)度,所以,對被選中的進(jìn)程并不實(shí)際地啟動運(yùn)行,而是執(zhí)行優(yōu)先數(shù)—1要求運(yùn)行時(shí)間—1來模擬進(jìn)程的一次運(yùn)行。提醒注意的是:在實(shí)際的系統(tǒng)中,當(dāng)一個(gè)進(jìn)程被選中運(yùn)行時(shí),必須恢復(fù)進(jìn)程的現(xiàn)場,讓它占有處理器運(yùn)行,直到出現(xiàn)等待事件或運(yùn)行結(jié)束,在這里省去了這些工作。(5)進(jìn)程運(yùn)行一次后,若要求運(yùn)行時(shí)間不等于0,則再將它按優(yōu)先數(shù)大小插入隊(duì)列中的適當(dāng)位置;若要求運(yùn)行時(shí)間等于0,則把它的狀態(tài)修改成“結(jié)束”(E),且退出就緒隊(duì)列。(6)若“就緒”狀態(tài)的進(jìn)程隊(duì)列不為空,則重復(fù)上面(4)和(5)的步驟,直到所有進(jìn)程都為“結(jié)束”狀態(tài)。(7)在所設(shè)計(jì)的程序中應(yīng)有顯示或打印語句,能顯示或打印每次被選中進(jìn)程名稱以及運(yùn)行一次后進(jìn)程隊(duì)列的變化。(8)為五個(gè)進(jìn)程任意確定一組“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”,啟動所設(shè)計(jì)的進(jìn)程調(diào)度程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名稱以及進(jìn)程控制塊的動態(tài)變化過程。4.4可變分區(qū)管理一、實(shí)驗(yàn)?zāi)康睦斫饪勺兎謪^(qū)管理下最先適應(yīng)算法的基本思想。二、提示可變分區(qū)方式是按作業(yè)需要的主存空間大小來分割分區(qū)的。當(dāng)要裝入一個(gè)作業(yè)時(shí),根據(jù)作業(yè)需要的主存量查看是否有足夠的空閑空間,若有,則按需要量分割一個(gè)分區(qū)分配給該作業(yè);若無,則作業(yè)不能裝入。隨著作業(yè)的裝入、撤離,主存空間被分成許多個(gè)分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的。例如:操作系統(tǒng)作業(yè)1操作系統(tǒng)作業(yè)1作業(yè)3空閑區(qū)作業(yè)2空閑區(qū)5K10K14K26K32K128K為了說明那些區(qū)是空閑的,可以用來裝入新作業(yè),必須要有一張空閑區(qū)說明表,格式如下:第二欄第一欄第二欄第一欄..長度狀態(tài)14K12K未分配32K96K未分配空表目空表目...其中:起址——指出一個(gè)空閑區(qū)的主存起始地址 長度——指出從起址開始的一個(gè)連續(xù)空閑區(qū)的長度 狀態(tài)——有兩種狀態(tài),一種是“未分配”狀態(tài),指出對應(yīng)的由起址指出的摸個(gè)長度的區(qū)域是空閑區(qū);另一種是“空表目”狀態(tài),表示表中對應(yīng)的登記項(xiàng)目是空白(無效),可以用來登記新的空閑區(qū)(例如:作業(yè)撤離后,他所占用的區(qū)域就成了空閑區(qū),應(yīng)找一個(gè)“空表目”欄登記歸還的起址和長度且修改狀態(tài))。由于分區(qū)的個(gè)數(shù)不同,所以空閑區(qū)說明表中應(yīng)有適量的狀態(tài)為“空表目”的登記欄目,否則造成表格“溢出”無法登記。 上述的這張說明表的登記情況是按提示中的例子所裝入的三個(gè)作業(yè)占用的主存區(qū)域后填寫的。當(dāng)有一個(gè)新作業(yè)要求裝入主存時(shí),必須查空閑區(qū)說明表,從中找出一個(gè)足夠大的空閑區(qū)。有時(shí)找到的空閑區(qū)可能大于作業(yè)需要數(shù)量,這時(shí)應(yīng)把原來的空閑區(qū)變成兩部分:一部分分給作業(yè)占用;另一部分又成為一個(gè)較小的空閑區(qū)。為了盡量減少由于分割造成的“碎片”,在作業(yè)請求裝入時(shí),盡可能利用主存的低地址部分的空閑區(qū),而盡量保存高地址部分有較大的連續(xù)空閑區(qū),以利于大型作業(yè)的裝入。為此,在空閑區(qū)說明表中,把每個(gè)空閑區(qū)按其地址順序登記,即每個(gè)后繼的空閑區(qū)其起始地址總是比前者大,為了方便查找還可以使表格“緊縮”,總是讓“空表目”欄集中在表格的后部。(2)采用最先適應(yīng)算法(順序分配算法)分配主存空間。按照作業(yè)的需要量,查空閑區(qū)說明表,順序查看登記欄,找到第一個(gè)能滿足需要的空閑區(qū)。當(dāng)空閑區(qū)大于需要量時(shí),一部分用來裝入作業(yè),另一部分仍為空閑區(qū)登記在空閑區(qū)說明表中。由于本設(shè)計(jì)是模擬主存的分配,所以當(dāng)把主存分配給作業(yè)后并不實(shí)際啟動裝入程序裝入作業(yè),而用輸出“分配情況”來代替。(3)當(dāng)一個(gè)作業(yè)執(zhí)行結(jié)束撤離時(shí),作業(yè)所占的區(qū)域應(yīng)該歸還,歸還的區(qū)域如果與其他空閑區(qū)相鄰,則應(yīng)合成一個(gè)較大的空閑區(qū),登記在空閑區(qū)說明表中。例如:在提示中列舉的情況下,如果作業(yè)2撤離,歸還所占主存區(qū)域時(shí),應(yīng)與上、下相鄰的空閑區(qū)一起合成一個(gè)大的空閑區(qū)登記在空閑區(qū)說明表中。請按最先適應(yīng)算法設(shè)計(jì)主存分配和回收的程序。然后按(1)中假設(shè)主存中已經(jīng)裝入三個(gè)作業(yè),且形成兩個(gè)空閑區(qū),確定空閑區(qū)說明表的初值?,F(xiàn)有一個(gè)需要主存量為6K的作業(yè)4申請裝入主存;然后作業(yè)3撤離;再作業(yè)2撤離。請你為他們進(jìn)行主存分配和回收,把空閑區(qū)說明表的初值以及每次分配或回收后的變化顯示出來或打印出來。最先適應(yīng)分配模擬算法定時(shí)鬧鐘=0定時(shí)鬧鐘=0否鍵盤信息開始申請xk主存空間j=0j=j(luò)+1查看空閑區(qū)說明表的第j個(gè)登記欄長度>=xk嗎長度=長度-xk起址=起址+xk輸出作業(yè)不能裝入置狀態(tài)為空表目輸出分配情況結(jié)束狀態(tài)為“未分配嗎否鍵盤信息是鍵盤信息是鍵盤信息<鍵盤信息=鍵盤信息>鍵盤信息
第五章實(shí)驗(yàn)報(bào)告內(nèi)容及格式5.1實(shí)驗(yàn)報(bào)告內(nèi)容實(shí)驗(yàn)報(bào)告封面題目:完成人姓名:班號:學(xué)號:內(nèi)容簡要描述成績(教師手寫)該生實(shí)驗(yàn)情況總結(jié)操作系統(tǒng)實(shí)驗(yàn)報(bào)告日期:功能描述寫出你所設(shè)計(jì)的程序的主要功能。程序結(jié)構(gòu)寫出程序包含哪些模塊,以及模塊之間的結(jié)構(gòu)關(guān)系。數(shù)據(jù)結(jié)構(gòu)寫出程序中使用的數(shù)據(jù)結(jié)構(gòu),包括有哪些成員,每個(gè)成員的作用。宏和全局變量寫出程序中使用哪些宏和全局變量,它們的作用以及初始值。流程圖畫出每個(gè)模塊或函數(shù)的算法流程圖。源程序打印一份源程序清單并附上清晰的注釋。執(zhí)行結(jié)果打印程序運(yùn)行時(shí)的初值和運(yùn)行結(jié)果。要求如下:進(jìn)程控制塊的初始狀態(tài)選中運(yùn)行的進(jìn)程名以及選中進(jìn)程運(yùn)行后的各個(gè)進(jìn)程控制塊狀態(tài)對于B要求每選中一個(gè)進(jìn)程運(yùn)行后都要打印。九、使用說明描述如何使用你所設(shè)計(jì)的程序,即操作指南。十、不足之處指出程序有待改進(jìn)的地方以及改進(jìn)的思路。十一、程序調(diào)試記錄列出程序調(diào)試過程中出現(xiàn)的問題及解決的方法。十二、參考文獻(xiàn)列出實(shí)驗(yàn)過程中閱讀的參考書、文章。5.2參考樣例這里以時(shí)間片輪轉(zhuǎn)法為例,說明如何分析、設(shè)計(jì)、編碼、調(diào)試、撰寫報(bào)告。實(shí)驗(yàn)報(bào)告封面題目:時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法完成人姓名:焦素云班號:050401學(xué)號:10內(nèi)容簡要描述設(shè)計(jì)了時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法,該程序首先初始化進(jìn)程控制塊表,然后創(chuàng)建三個(gè)進(jìn)程,并對其進(jìn)行調(diào)度、運(yùn)行,直到所有進(jìn)程全部運(yùn)行完畢。成績(教師手寫)良該生實(shí)驗(yàn)情況總結(jié)該生出滿勤;認(rèn)真編程并調(diào)程,思路正確;程序能正確執(zhí)行;答辯時(shí)回答基本正確;報(bào)告清晰整潔。不足之處是功能不全。操作系統(tǒng)實(shí)驗(yàn)報(bào)告日期:200
功能要求要求創(chuàng)建若干個(gè)進(jìn)程,并用時(shí)間片輪轉(zhuǎn)法調(diào)度這些進(jìn)程運(yùn)行。程序結(jié)構(gòu)該程序共包含七個(gè)模塊,分別是主控模塊、初始化模塊、顯示空閑隊(duì)列模塊、創(chuàng)建進(jìn)程模塊、顯示就緒隊(duì)列模塊、調(diào)度模塊以及運(yùn)行模塊。它們之間的結(jié)構(gòu)如下所示:主控模塊主控模塊初始化模塊顯示空閑隊(duì)列創(chuàng)建進(jìn)程調(diào)度模塊顯示就緒隊(duì)列運(yùn)行模塊數(shù)據(jù)結(jié)構(gòu)該程序用到的數(shù)據(jù)結(jié)構(gòu)是進(jìn)程控制塊,其組成如下:成員名作用指針用于構(gòu)造進(jìn)程隊(duì)列進(jìn)程名用于區(qū)別不同的進(jìn)程估計(jì)運(yùn)行時(shí)間進(jìn)程需要的CPU時(shí)間宏和全局變量名稱作用初始值PCB_NUM是一個(gè)宏,表示系統(tǒng)最多能容納的進(jìn)程數(shù)10EXAMPLES為調(diào)試方便所設(shè)置的最多進(jìn)程數(shù)3pcb_table[PCB_NUM]包含所有進(jìn)程控制塊的數(shù)組pcb_current運(yùn)行隊(duì)列首指針NULLpcb_free空閑隊(duì)列首指針NULLpcb_ready就緒隊(duì)列首指針NULLpcb_ready_rear就緒隊(duì)列尾指針NULLcurrent_processes系統(tǒng)中當(dāng)前的就緒進(jìn)程數(shù)0算法流程(一)主控模塊初始化進(jìn)程控制塊數(shù)組初始化進(jìn)程控制塊數(shù)組顯示空閑進(jìn)程隊(duì)列開始創(chuàng)建進(jìn)程顯示就緒隊(duì)列當(dāng)就緒隊(duì)列不空時(shí)調(diào)度并運(yùn)行進(jìn)程,直到就緒隊(duì)列為空結(jié)束(二)初始化模塊將所有進(jìn)程控制塊鏈成單鏈表,由pcb_free指向鏈?zhǔn)?。(三)顯示空閑隊(duì)列模塊依次顯示空閑隊(duì)列中每一個(gè)進(jìn)程的名字。(四)創(chuàng)建進(jìn)程模塊創(chuàng)建EXAMPLES個(gè)進(jìn)程,并將它們鏈到就緒隊(duì)列中,由pcb_ready指向鏈?zhǔn)?,由pcb_ready_rear指向鏈尾。(五)顯示就緒隊(duì)列依次顯示就緒隊(duì)列中每一個(gè)進(jìn)程的名字。(六)調(diào)度模塊若就緒隊(duì)列非空,則選擇隊(duì)首進(jìn)程,由pcb_current指出,并將隊(duì)首指針pcb_ready下移。(七)運(yùn)行模塊將當(dāng)前進(jìn)程的運(yùn)行時(shí)間減1,若減1之后為0,則將相應(yīng)進(jìn)程控制塊從就緒隊(duì)列移入空閑隊(duì)列,若減1之后不為0,則將相應(yīng)進(jìn)程控制塊移到就緒隊(duì)列尾部。源程序ext=NULL; pcb_table[PCB_NUM-1].time=0; strcpy(pcb_table[PCB_NUM-1].name,"idle"); for(i=0;i<PCB_NUM-1;i++){ pcb_table[i].next=&pcb_table[i+1]; pcb_table[i].time=0; strcpy(pcb_table[i].name,"idle"); }}Del表示該文件是一個(gè)普通文件,沒有特殊屬性。第2――4個(gè)字符用來確定文件的用戶(user)權(quán)限。第5――7個(gè)字符用來確定文件的組(group)的權(quán)限。8-10個(gè)字符用來確定文件的其他用戶(otheruser,即不是文件所有者,也不是組成員的用戶)的權(quán)限。字符為r表示用允許用戶、組成員或其他人可從該文件中讀取數(shù)據(jù)。短線“-”則表示不允許該成員讀取數(shù)據(jù)。字符為w表示允許寫,字符為x表示允許執(zhí)行。CD命令:該命令可以實(shí)現(xiàn)不同目錄之間的切換,但前提是使用該命令的用戶必須有足夠的權(quán)限對相應(yīng)目錄進(jìn)行操作。下面的命令將從當(dāng)前目錄切換至mydir目錄#cd/mydir如果不給命令加任何參數(shù),那么就會從當(dāng)前目錄切換至用戶的主目錄。如[root@linuxserver/]#cd[root@linuxserverroot]#如果要切換至當(dāng)前目錄的上一級目錄,使用的命令是CD..Mkdir命令:在進(jìn)行目錄創(chuàng)時(shí),可以設(shè)置目錄的權(quán)限。此時(shí)可以使用參數(shù)“-m”。假設(shè)要讓創(chuàng)建的mydir目錄能被所有用戶都有rwx權(quán)限(即讀、寫、執(zhí)行的權(quán)限),可以使用以下命令:#mkdir–m777mydirMv命令:移動或更改現(xiàn)有文件或者目錄。這個(gè)命令和CP命令類似,不同的是當(dāng)文件出現(xiàn)在目標(biāo)位置時(shí),源文件就會被刪除。Rm命令:該命令用刪除文件或者目錄,刪除的文件不能進(jìn)行恢復(fù)操作,因此,在使用該命令時(shí)必須非常小心。Rmdir命令:Rmdir[-p]目錄名稱。該命令用于刪除目錄,只能刪除空目錄,如果目錄為非空,則會出現(xiàn)錯(cuò)誤信息。–p的意思是當(dāng)子目錄被刪除后使它也成為空目錄的話,則順便一并刪除。Cp命令:CP[選項(xiàng)]源文件或者目錄目標(biāo)文件或者目錄。該指令用于復(fù)制文件或目錄。這個(gè)命令中最常用的參數(shù)是-R,該參數(shù)會把指定目錄下的所有文件及子目錄一起進(jìn)行復(fù)制。Cat、more、less命令:都是用來顯示文件內(nèi)容的,但所能實(shí)現(xiàn)的操作卻有所不同。其中:cat:只顯示最后一屏內(nèi)容;More:只能向前看,不能后退Less:可以進(jìn)行翻面操作*Fdisk命令:fdisk[選項(xiàng)][外圍設(shè)備代號],該命令用于顯示磁盤分區(qū)信息或者創(chuàng)建新的分區(qū)。對磁盤設(shè)備/dev/had進(jìn)行分區(qū)#fdisk/dev/had;查看當(dāng)前的磁盤分區(qū)情況#fdisk-l10、*Mkfs命令:mkfs[選項(xiàng)][設(shè)備名稱];該命令的功能是實(shí)現(xiàn)磁盤的格式化,至于該命令可以實(shí)現(xiàn)多少種文件系統(tǒng)的格式化,可以在mkfs后按兩下tab鍵來顯示。如把/dev/hda5分區(qū)格式化成MS-DOS格式#mkfs–tmsdos/dev/hda511*、Chown命令:chown[選項(xiàng)][文件或者目錄];該命令的功能是變更文件或目錄的所有者或所屬組。(必須以root身分登錄)。如果要把目錄/usr/local/myfile文件的所有者更改為屬于user組的zhang,可以使用下面的命令:#chownusr/local/myfile如果要更改tmp目錄下所有文件和子目錄的所有者及所屬組,可以使用下面命令:#chown–tmp12*、Chmod命令:Chmod[選項(xiàng)][文件或者目錄];該命令的功能是變更文件或目錄的權(quán)限。在linux中,文件或目錄權(quán)限的分別以讀取、寫入、執(zhí)行3種一般權(quán)限來區(qū)分。該命令的設(shè)置方式有文字(字符)和數(shù)字兩種文字(字符)方式:chmod[ugoa]+a或-或=[rwx][文件…],在命令中,使用“+”或“-”時(shí),是在保存原來權(quán)限設(shè)備的基礎(chǔ)上修改權(quán)限。當(dāng)使用“=”時(shí),權(quán)限被明確地賦予要修改的文件。其中字符u表示文件或者目錄的所有者,g表示文件或者目錄所屬組,o表示除所有者和所屬組以外的用戶,a表示全部用戶。如:#chmodugo=rwmyfile(把文件myfile讀取和寫入的權(quán)限向所有用戶開放)#chmodg-xmyfile(取消組成員執(zhí)行myfile的權(quán)限)#chmodg+xmyfile(增加所屬組執(zhí)行myfile文件的權(quán)限)。數(shù)字方式:chmodnnn文件,其中第1、2、3個(gè)n分別表示用戶、組成員和所有其他用戶。各個(gè)位置的上n要么是一個(gè)0,或者是一個(gè)賦予權(quán)限的相關(guān)值相加得到的單個(gè)阿拉伯?dāng)?shù)字之各。數(shù)字的意義如表值表示的意義4表示文件或者目錄的讀權(quán)限2表示文件或者目錄的寫權(quán)限1表示文件或者目錄的執(zhí)行權(quán)限13*、Mount命令:mount<選項(xiàng)>設(shè)備名稱載入點(diǎn);在linux系統(tǒng)中,訪問某一硬盤分區(qū)或者光驅(qū)、軟驅(qū)等設(shè)備時(shí),需要進(jìn)行掛載,mount命令可以將指定設(shè)備中的文件系統(tǒng)載入到linux的目錄下(也就是載入點(diǎn))。管理員可在參數(shù)中直接指定設(shè)備名稱與文件系統(tǒng)。對于一些經(jīng)常使用的設(shè)備,也可在\etc\fstab文件中進(jìn)行設(shè)備,以使其在系統(tǒng)啟動時(shí)自動進(jìn)行掛載。例如,把軟驅(qū)設(shè)備加載至\mnt\floppy目錄之上,執(zhí)行下面命令:#mount\dev\fd0\mnt\floppy(mount命令要求在掛載之前載點(diǎn)(本例中是/mnt/floppy)必須存在,否則無法執(zhí)行。/dev/fd0是與驅(qū)動器A對應(yīng)的設(shè)備,相應(yīng)的驅(qū)動器B是/dev/fd1。硬盤的情況比較復(fù)雜,因?yàn)閘inux是利用設(shè)備接口來描述設(shè)備的。例如,第一個(gè)IDE接口上的主硬盤是/dev/had。從硬盤是/dev/hdb,第二個(gè)IDE接口上的兩個(gè)硬盤是/dev/hdc和/dev/hdd。問題是,由于硬盤使用的是分區(qū),所以必須使用子設(shè)備名。例如,把/dev/had上的第一個(gè)分區(qū)連結(jié)到/mnt/diskc上的命令是;#mount/dev/hda1/mnt/diskc相應(yīng)的,第二個(gè)分區(qū)是/
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店鋪出租合同范本
- 小區(qū)弱電合同范本
- 2025年度車位物業(yè)管理與社區(qū)老年活動中心服務(wù)合同
- 2025年度智能小區(qū)物業(yè)與業(yè)主服務(wù)合同模板范文
- 二零二五年度離婚后子女撫養(yǎng)費(fèi)及教育支持協(xié)議
- 國際科技合作項(xiàng)目專題合作協(xié)議書范本
- 2025年度電影音樂創(chuàng)作與制作聘用合同
- 二零二五年度環(huán)保監(jiān)測與治理服務(wù)團(tuán)隊(duì)聘用協(xié)議
- 2025年度年度工業(yè)用地土地出租環(huán)境治理合同
- 2025年度醫(yī)療護(hù)理機(jī)構(gòu)護(hù)工雇傭合同
- 我國全科醫(yī)生培訓(xùn)模式
- 淺談建筑工程機(jī)電安裝施工技術(shù)運(yùn)用論文
- 《字體設(shè)計(jì)》模塊五 裝飾性變化設(shè)計(jì)技巧的訓(xùn)練
- 《摔跤吧爸爸》觀后感PPT
- FRENIC 5000G11S、P11S富士變頻器操作說明書
- 機(jī)構(gòu)編制重要事項(xiàng)的報(bào)告范文(5篇)
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 《長津湖》電影賞析PPT
- Q-GDW 11274-2014 風(fēng)電無功電壓自動控制技術(shù)規(guī)范
- GB/T 18838.3-2008涂覆涂料前鋼材表面處理噴射清理用金屬磨料的技術(shù)要求第3部分:高碳鑄鋼丸和砂
- CPR和AED培訓(xùn)考核試題附答案
評論
0/150
提交評論