久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

操作系統(tǒng)實(shí)驗(yàn)

時(shí)間:2019-05-14 13:58:46下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《操作系統(tǒng)實(shí)驗(yàn)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《操作系統(tǒng)實(shí)驗(yàn)》。

第一篇:操作系統(tǒng)實(shí)驗(yàn)

操作系統(tǒng)實(shí)驗(yàn)

實(shí)驗(yàn)一

Linux常用命令實(shí)驗(yàn)

一.目的和要求

本實(shí)驗(yàn)的目的是熟悉Linux操作系統(tǒng)的命令接口、圖形接口和程序接口;了解Linux操作系統(tǒng)的啟動(dòng)過(guò)程;了解Linux操作系統(tǒng)的目錄結(jié)構(gòu);用vi編輯器編寫(xiě)簡(jiǎn)單的C語(yǔ)言程序,并用gcc編譯器編譯、運(yùn)行。

二.實(shí)驗(yàn)內(nèi)容

1、實(shí)現(xiàn)開(kāi)機(jī)、登錄、退出與關(guān)機(jī):

(1)如果以root用戶登錄,則命令窗口的提示符為#;如果以普通用戶登錄,則命令窗口的提示符為$;登陸用戶名:user 密碼:123456(2)修改口令(修改口令操作不做):成功進(jìn)入系統(tǒng)后,在命令提示符后輸入“passwd”并鍵入回車鍵

(3)退出帳號(hào):命令方式下:logout(4)關(guān)機(jī)或重啟:

命令方式下:halt或reboot 窗口方式下:“桌面”->“注銷”

2、掌握的基本常用命令列表

(1)關(guān)于目錄的操作命令:cd、ls、mkdir、rmdir、pwd等;

(2)關(guān)于文件的操作命令:cat、find、man/help、vi/vim、cp、rm、mv、dd、du、df、chmod、ln等;

(3)關(guān)于進(jìn)程管理的操作命令:ps、kill、top、free 等;

(4)關(guān)于系統(tǒng)管理的操作命令:whoami、passwd、adduser/useradd、addgroup、userdel、groupdel、su、who、Ctrl+Alt+Fn(n=1、2、3、4、5、6)(在X-Window界面下切換到字符界面,重新登錄,Ctrl+Alt+F7返回圖形界面)、Alt+Fn(n=1、2、3、4、5、6)(在6個(gè)虛擬終端之間切換)等;

(5)安裝和卸載文件系統(tǒng):mount、umount等;

(6)顯示有關(guān)計(jì)算機(jī)系統(tǒng)信息的命令:uname(顯示操作系統(tǒng)的名稱)、uname –n(顯示系統(tǒng)域名)、uname –p(顯示系統(tǒng)的CPU名稱)

(7)其它命令:time、date、cal 等。

3、閱讀/etc/inittab 文本文件,思考問(wèn)題:如果要求啟動(dòng)Linux系統(tǒng)之后進(jìn)入字符 1

操作系統(tǒng)實(shí)驗(yàn)

界面,應(yīng)如何修改/etc/inittab文件?用戶應(yīng)具有什么權(quán)限?

4、切換到不同的虛擬終端,登錄到Linux系統(tǒng)

5、vi 編輯器的使用(1)進(jìn)入和退出vi(2)利用文本插入方式建立一個(gè)文件(3)在新建的文本文件上移動(dòng)光標(biāo)。

(4)對(duì)文本文件執(zhí)行刪除、復(fù)原、修改、替換操作。

6、熟悉gcc編譯環(huán)境:編寫(xiě)一個(gè)C語(yǔ)言程序myfile1.c,求1~100中偶數(shù)的和,編譯并運(yùn)行。

(1)編譯 gcc myfile1.c 運(yùn)行./a.out(2)編譯 gcc –o myfile1 myfile1.c

運(yùn)行./myfile1

7、編寫(xiě)一個(gè)C語(yǔ)言程序myfile2.c,顯示字符串“Hello, Linux!”,并將其反向輸出。

8、熟悉Linux系統(tǒng)的目錄結(jié)構(gòu),使用命令或者編寫(xiě)C語(yǔ)言程序報(bào)告Linux內(nèi)核的行為。

報(bào)告以下內(nèi)容: ? ? CPU類型和型號(hào) ? ? 內(nèi)核版本

? ? 從系統(tǒng)最后一次啟動(dòng)以來(lái)經(jīng)歷了多長(zhǎng)時(shí)間?形式為dd:hh:mm:ss ? ? 當(dāng)前配置的內(nèi)存數(shù)量 ? ? 當(dāng)前可用內(nèi)存數(shù)量

? ? 自系統(tǒng)啟動(dòng)以來(lái),發(fā)生的所有的中斷的次數(shù) ? ? 從系統(tǒng)啟動(dòng)開(kāi)始創(chuàng)建的進(jìn)程數(shù) ? ? 內(nèi)核執(zhí)行的上下文轉(zhuǎn)換的次數(shù)

三.實(shí)驗(yàn)提示

1、Linux安裝

(1)安裝前的準(zhǔn)備工作 <1>.基本的硬件配置

由于安裝涉及到各種硬件的設(shè)置,所以在安裝前必須了解機(jī)器各種硬件的型號(hào),硬盤的使用情況,內(nèi)存的大小,鼠標(biāo)的類型及接口,聲卡,網(wǎng)卡,顯卡,顯示器的型號(hào)。

操作系統(tǒng)實(shí)驗(yàn)

<2>.有關(guān)網(wǎng)絡(luò)的信息

IP地址,掩碼,網(wǎng)關(guān)IP地址,域名服務(wù)器IP地址,域名,宿主機(jī)名。<3>.安裝方式的選擇

?從CD-ROM安裝 ?從FTP站點(diǎn)安裝 ?從NFS服務(wù)器安裝 ?從硬盤安裝 硬盤分區(qū)

硬盤空間必須和計(jì)算機(jī)上安裝的其他操作系統(tǒng)所使用的硬盤空間分開(kāi)。特別要注意,如果硬盤空間很大,切忌不能將Linux裝在8G以后。安裝Red Hat Linux至少需要兩個(gè)硬盤分區(qū):一個(gè)或多個(gè)“Linux native”類型的分區(qū),一個(gè)“Linux swap”類型的分區(qū)

分區(qū)命名設(shè)計(jì)Linux 通過(guò)字母和數(shù)字的組合來(lái)表示硬盤分區(qū)。

? 前兩個(gè)字母-----分區(qū)名的前兩個(gè)字母表明分區(qū)所在設(shè)備的類型。hd指IDE硬盤,sd指SCSI硬盤。

? 下一個(gè)字母-----分區(qū)在哪個(gè)設(shè)備。例如,/dev/hda(第一個(gè)IDE硬盤),/dev/sdb(第二個(gè)SCSI硬盤)。

? 數(shù)字-----代表分區(qū)。前四個(gè)分區(qū)(主分區(qū)或擴(kuò)展分區(qū))用數(shù)字1到4表示。邏輯分區(qū)從5開(kāi)始。例如,? 若IDE硬盤在安裝Linux前安裝了Windows系統(tǒng)并劃分了C盤和邏輯分區(qū)D盤,那么D盤就是/dev/hda5, /dev/hda5表示第一個(gè)硬盤的第一個(gè)邏輯分區(qū)。

對(duì)于Linux初學(xué)者來(lái)說(shuō),為L(zhǎng)inux分兩個(gè)區(qū)(根分區(qū)和交換分區(qū))是比較簡(jiǎn)單方便的。

一個(gè)交換分區(qū):用來(lái)支持虛擬內(nèi)存。一個(gè)根分區(qū):根分區(qū)是/(根目錄)的所在地,其中包含啟動(dòng)系統(tǒng)所需的文件和系統(tǒng)配置文件。這個(gè)分區(qū)要足夠大。

一個(gè)/usr分區(qū): /usr是Linux系統(tǒng)許多軟件所在的地方。一個(gè)/home分區(qū):這是用戶的主目錄所在地。(2)開(kāi)始安裝

注意點(diǎn):我們一般選擇的是圖形化的安裝方式。它的主要部分是相同的。

? 可能會(huì)在安裝完成后第一次啟動(dòng)時(shí)才進(jìn)行網(wǎng)卡的檢測(cè)。

操作系統(tǒng)實(shí)驗(yàn)

? 在選擇圖形化界面時(shí),有兩種方式gnome和kde;它們各有優(yōu)缺點(diǎn)。? 系統(tǒng)會(huì)讓你選擇啟動(dòng)時(shí)是圖形化方式,還是字符方式。請(qǐng)大家選擇字符方式。

? 在選擇防火墻的時(shí)候,在安裝時(shí)請(qǐng)先不用防火墻。

? 圖形化安裝方式下,不能選擇啟動(dòng)時(shí)的開(kāi)啟服務(wù)。可在系統(tǒng)安裝完成后用setup命令進(jìn)行修改。

2、進(jìn)入Linux(1)登錄

第一次登錄系統(tǒng),必須作為“root”登錄。這個(gè)帳號(hào)對(duì)系統(tǒng)的一切都有完全的訪問(wèn)權(quán)限。

在login:提示符處輸入root。按[Enter](或[Return]鍵).會(huì)出現(xiàn)Password提示。輸入口令,應(yīng)該看到類似以下的信息:

[root@localhost /root] #(2)退出

輸入[Ctrl]-[D](3)帳號(hào)和口令 <1>.帳號(hào)

創(chuàng)建新的帳號(hào)有幾種方法,最基本的方法:useradd命令.[root @ localhost / root] # useradd

Tom

[root @ localhost / root] # <2>.口令

passwd 命令可以用來(lái): ? 為新創(chuàng)建的用戶分配口令。? 修改已存在的用戶的口令。? 修改登錄的用戶的口令。此時(shí)必須以root登錄。如:

[root @ localhost / root]# passwd Tom

New UNIX password:

Retype new UNIX password:

passwd:all authentication tokens updated successfully 4

操作系統(tǒng)實(shí)驗(yàn)

[root @ localhost / root]#

用新帳戶登錄:

Red Hat Linux release 7.1(Manhattan)

Kernel 2.0.34 on an i586

login: Tom

Password:

[Tom@ localhost Tom] $ <3>.su 命令

用su,當(dāng)前的登錄段能變成root(或其他用戶)的登錄段。如:

[Tom@ localhost Tom] $ su

Password:

[root@ localhost Tom] # 也可以用su變成其他用戶。這時(shí),必須作為root運(yùn)行su,給出用戶名。<4>.關(guān)閉系統(tǒng)

關(guān)閉系統(tǒng)時(shí),必須告訴所有的進(jìn)程結(jié)束運(yùn)行,使用shutdown命令。且只能由root 運(yùn)行,格式是:

shutdown

-h-------在關(guān)閉完成后(Halt)停止系統(tǒng)。

-r--------在關(guān)閉完成后重啟動(dòng)(Reboot)系統(tǒng)。

3、vi 編輯器的使用(1)進(jìn)入和退出vi <1>進(jìn)入vi 在系統(tǒng)提示符($)下輸入命令vi和想要編輯(建立)的文件名(如example),便可進(jìn)入vi。

<2>退出vi 在命令方式下可有幾種方法退出vi編輯器:

:wq 把編輯緩沖區(qū)的內(nèi)容寫(xiě)到正在編輯的文件中,退出編輯器,回到Linux shell下。

:ZZ 僅當(dāng)作過(guò)修改時(shí)才將緩沖區(qū)內(nèi)容寫(xiě)到文件上。

操作系統(tǒng)實(shí)驗(yàn)

:x 與 :ZZ 相同。

:q!強(qiáng)行退出vi。感嘆號(hào)(!)告訴vi,無(wú)條件退出,丟棄緩沖區(qū)內(nèi)容。這樣,先前對(duì)該文件所做的修改或輸入都被拋棄。(2)新建文件

<1>在Linux提示符$之后,輸入命令 :vi myfile,然后按〈Enter〉鍵。<2>輸入插入命令i(屏幕上看不到字符i)。<3>然后,輸入以下文本行: To the only book tht I, For mang year you have been my favourite book <4>發(fā)現(xiàn)這兩行有錯(cuò),進(jìn)行改正: 按〈Esc〉鍵,從插入方式回到命令方式。按光標(biāo)上移鍵,使光標(biāo)移到第一行。

按光標(biāo)左移鍵,使光標(biāo)移到“tht”的第二個(gè)“t”處。

輸入i(這是插入命令),然后輸入a。該行變成如下形式: To the only book that I, 按光標(biāo)右移鍵,使光標(biāo)移到“I”上。

我們想在“I”之后輸入一個(gè)空格和單詞“l(fā)ike”。為此,輸入附加命令“a”。結(jié)果屏幕顯示為:

To the only book that a I,沒(méi)有出現(xiàn)預(yù)期的效果......原來(lái)是:我們先前使用了插入命令i,至今并未用〈Esc〉鍵返回命令方式。所以,輸入的所有字符都作為輸入文本予以顯示。<5>按〈Esc〉鍵,返回命令方式。

利用x命令刪除錯(cuò)誤字符。然后,進(jìn)入插入方式,輸入正確字符。<6>最后輸入如下所示的文本: To the only book that I like, For many year you have been my favourite book I liveeyou all the time and could not have picked much better.<7>將編輯的文本文件存盤。(利用“:wq”命令,或者“:x”命令)<8>重新進(jìn)入vi編輯程序,編輯上面的文件。(如:$ vi myfile)

操作系統(tǒng)實(shí)驗(yàn)

<9>在屏幕上見(jiàn)到myfile文件的內(nèi)容。在屏幕底邊一行顯示出該文件的名稱、行數(shù)和字符個(gè)數(shù):“myfile”4 lines,130 characters 它仍然有錯(cuò),需進(jìn)一步修改。

<10>將光標(biāo)移到第二行的year的r處。輸入a命令,添加字符s。

<11>按〈Esc〉,回到命令方式。輸入命令10〈Space〉,光標(biāo)移至何處?---光標(biāo)右移10個(gè)字符位置。

<12>利用取代命令r將liveeyou改為live you。

<13>將光標(biāo)移至第三行。輸入新行命令O(大寫(xiě)字母),屏幕上有什么變化?---光標(biāo)移至上一行(新加空行)的開(kāi)頭。<14>輸入新行的內(nèi)容: We've been through much together 此時(shí),vi處于哪種工作方式? <15>按〈Esc〉,回到命令方式。將光標(biāo)移到第四行的live的v字母處。利用替換命令s將v改為k。

<16>在第四行的you之后添加單詞very much。<17>修改后的文本是以下內(nèi)容: To the only book that I like, For many years you have been my favourite book We've been through much together I like you very much all the the time and could not have picked much better.將該文件存盤,退出vi。

<18>重新編輯該文件。并將光標(biāo)移到最后一行的have的v字母處,使用d$命令將v至行尾的字符都刪除。

<19>現(xiàn)在想恢復(fù)17步的原狀,怎么辦?(使用復(fù)原命令u)

<20>使用dd命令刪除第一行;將光標(biāo)移至through的u字母處,使用C(大寫(xiě)字母)命令進(jìn)行修改,隨便輸入一串字符。將光標(biāo)移到下一行的開(kāi)頭,執(zhí)行5x命令;然后執(zhí)行重復(fù)命令(.)。

<21>屏幕內(nèi)容亂了!現(xiàn)在想恢復(fù)17步的原狀,怎么辦?(不寫(xiě)盤,強(qiáng)行退出vi)

4、Linux內(nèi)核

操作系統(tǒng)實(shí)驗(yàn)

Linux 內(nèi)核源程序目錄結(jié)構(gòu)(/usr/src/redhat/SOURCES)如下: /document :保存幫助文檔

/arch

:包含多個(gè)子目錄,每個(gè)存放與特定體系結(jié)構(gòu)相關(guān)的代碼。如arch/i386(intel 386 體系結(jié)構(gòu)),arch/sparc,arch/alpha等。每個(gè)子目錄下至少又包含三個(gè)子目錄:

? kernel(存放支持該體系結(jié)構(gòu)特有的諸如信號(hào)處理和SMP之類特征的實(shí)現(xiàn));

? ? lib(存放該體系結(jié)構(gòu)特有的諸如Strlen和memcpy之類的高效率函數(shù)); mm(存放該體系結(jié)構(gòu)特有的諸如內(nèi)存管理程序的實(shí)現(xiàn))

/drivers :該目錄占內(nèi)核代碼一半以上,包括顯卡、網(wǎng)卡、SCSI適配器、軟驅(qū)、PCI設(shè)備和其他外設(shè)的軟件驅(qū)動(dòng)程序。/fs:包含linux支持的文件系統(tǒng)。

/include :包含源程序中大部分包含(.h)文件。/init: 包含main.c,保存大部分協(xié)調(diào)內(nèi)核初始化的代碼。/ipc:實(shí)現(xiàn)了SYSTEM V的進(jìn)程間通訊IPC。

/kernel:包含了linux最重要的部分:實(shí)現(xiàn)平臺(tái)獨(dú)立的基本功能,包括Sched.c、fork.c、exit.c。

/lib :存放字符串和內(nèi)存操作函數(shù)。

/mm:包含與體系結(jié)構(gòu)無(wú)關(guān)的內(nèi)存管理代碼。/net:包含了linux應(yīng)用的網(wǎng)絡(luò)協(xié)議代碼。/script :包含用來(lái)配置內(nèi)核的腳本。

5、報(bào)告Linux狀態(tài)(/proc 中的信息)

在終端窗口提示符下,可以使用cat命令顯示相關(guān)文件的內(nèi)容,如: cat /proc/cpuinfo 通過(guò)編寫(xiě)程序,顯示相關(guān)文件內(nèi)容:應(yīng)用文件操作,將相關(guān) /proc中的文件讀入到緩沖區(qū)中,可用fgets()函數(shù)按行取文件中數(shù)據(jù),通過(guò)strstr()檢驗(yàn)包含所需數(shù)據(jù)字符串。如存在,用printf()函數(shù)輸出。(1)CPU類型和型號(hào)

/proc/cpuinfo文件提供了有關(guān)CPU的多種信息,這些信息是從內(nèi)核里對(duì)CPU的測(cè)試代碼中得到的。文件列出了CPU個(gè)數(shù):processor;CPU制造商:vendor_id;CPU架構(gòu):model;CPU名稱:model name;CPU時(shí)鐘頻率:cpu MHz;CPU緩存大小: 8

操作系統(tǒng)實(shí)驗(yàn)

cache size;CPU包含的指令集:flags。文件還包含了以bogomips表示的處理機(jī)速度,而且如果檢測(cè)到CPU的多種特性或bug,文件還會(huì)包含相應(yīng)的標(biāo)志。該文件的格式為:文件由多行構(gòu)成,每行包括一個(gè)域名稱、一個(gè)冒號(hào)和一個(gè)值。

通過(guò)fopen()函數(shù)打開(kāi)包含CPU類型和型號(hào)的文件cpuinfo,把內(nèi)容讀入字符數(shù)組char_all,然后通過(guò)strstr()函數(shù)查找CPU類型和型號(hào)所在的位置,用strncpy()函數(shù)拷貝到字符數(shù)組中,通過(guò)printf()標(biāo)準(zhǔn)輸出函數(shù)輸出。(2)存儲(chǔ)器信息

/proc/meminfo 文件給出了內(nèi)存狀態(tài)的信息。它顯示出系統(tǒng)中物理內(nèi)存的總量:MenTotal;未使用的物理內(nèi)存的總量:MemFree;用做文件緩沖的物理內(nèi)存的總量:buffers;用做緩沖的物理內(nèi)存的總量:Cached;活躍的內(nèi)存大小:Active;不活躍的內(nèi)存大小:Inactive;交換分區(qū)的總量:SwapTotal;交換分區(qū)未使用的總量:SwapFree等信息。(3)內(nèi)核版本

文件/proc/version顯示了正在運(yùn)行的內(nèi)核版本、編譯此內(nèi)核的gcc版本以及該內(nèi)核的編譯時(shí)間。

(4)從系統(tǒng)最后一次啟動(dòng)以來(lái)的時(shí)間,形式為dd:hh:mm:ss uptime讀出的時(shí)間是以秒計(jì)的,所以根據(jù)要求要轉(zhuǎn)換為天:小時(shí):分鐘:秒。1天為86400秒,1小時(shí)為3600秒,1分鐘為60秒。通過(guò)兩個(gè)運(yùn)算符就可以很好的轉(zhuǎn)換:“/”做除法取整運(yùn)算,“%”做除法取余運(yùn)算。舉例:86800秒,(86800/86400)=1(天),(86800%86400)=400(余400秒);400秒,(400/3600)=0小時(shí),(400%3600)=400(余400秒);400秒,(400/60)=6分鐘,(400%60)=40(余40秒)。所以最后結(jié)果為:1:0:6:40。(5)其他信息的讀取 從/proc/stat中讀取信息

? CPU花費(fèi)在用戶態(tài)、系統(tǒng)態(tài)和空閑態(tài)的時(shí)間——cpu ? 自系統(tǒng)啟動(dòng)以來(lái),發(fā)生的所有的中斷的次數(shù)——intr ? 內(nèi)核執(zhí)行的上下文轉(zhuǎn)換的次數(shù)----ctxt ? 系統(tǒng)最后啟動(dòng)的時(shí)間----btime ? 從系統(tǒng)啟動(dòng)開(kāi)始創(chuàng)建的進(jìn)程數(shù)----processes

6、Linux的目錄結(jié)構(gòu)

操作系統(tǒng)實(shí)驗(yàn)

對(duì)于Linux來(lái)講它的樹(shù)型結(jié)構(gòu)與Windows不同,Windows可以有多個(gè)分區(qū),每個(gè)分區(qū)都有根,但Linux 只有一個(gè)根,其他的所有文件、目錄或硬盤分區(qū)、軟盤、光盤、U 盤都必須mount(掛載)到Linux 根下的一個(gè)目錄中才能被訪問(wèn)和使用。下面列出根目錄下的常見(jiàn)系統(tǒng)目錄及其用途。

/bin

bin是binary的縮寫(xiě)。這個(gè)目錄沿襲了UNIX系統(tǒng)的結(jié)構(gòu),存放著使用者最經(jīng)常使用的命令。例如cp、ls、cat,等等。

/boot

這里存放的是啟動(dòng)Linux時(shí)使用的一些核心文件。

/dev

dev是device(設(shè)備)的縮寫(xiě)。這個(gè)目錄下是所有Linux的外部設(shè)備,其功能類似DOS下的.sys和Win下的.vxd。在Linux中設(shè)備和文件是用同種方法訪問(wèn)的。例如:/dev/hda代表第一個(gè)物理IDE硬盤。

/etc

這個(gè)目錄用來(lái)存放系統(tǒng)管理所需要的配置文件(例如配置文件inittab)和子目錄。

/home

用戶的主目錄,比如說(shuō)有個(gè)用戶叫wang,那他的主目錄就是/home/wang,也可以用~wang表示。

/lib

這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)鏈接共享庫(kù),其作用類似于Windows里的.dll文件。幾乎所有的應(yīng)用程序都需要用到這些共享庫(kù)。

/lost+found

這個(gè)目錄平時(shí)是空的,當(dāng)系統(tǒng)不正常關(guān)機(jī)后,這里就成了一些無(wú)家可歸的文件的避難所,有點(diǎn)類似于DOS下的.chk文件。

/media

用來(lái)掛載光盤、U盤等文件系統(tǒng)的目錄。/misc

用來(lái)掛載NFS 共享目錄。

/mnt

用于掛載其他硬盤分區(qū)系統(tǒng)的目錄(如掛載xp分區(qū))。

/opt

某些第三方軟件商軟件的安裝地點(diǎn),如國(guó)產(chǎn)紅旗office就存放于此。/proc

這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,可以通過(guò)直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信息。也就是說(shuō),這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里。

/root

系統(tǒng)管理員(也叫超級(jí)用戶)的主目錄。作為系統(tǒng)的擁有者,總要有些特權(quán),比如單獨(dú)擁有一個(gè)目錄。

/sbin

s就是Super User的意思,也就是說(shuō)這里存放的是系統(tǒng)管理員使用的管理程序。

/tmp

這個(gè)目錄是用來(lái)存放一些臨時(shí)文件的地方。

/usr

這是最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都存放在這個(gè)目錄 10

操作系統(tǒng)實(shí)驗(yàn)

下。其中包含以下子目錄:

/usr/X11R6

存放X-Window的目錄; /usr/bin

存放著許多應(yīng)用程序;

/usr/sbin

給超級(jí)用戶使用的一些管理程序就放在這里;

/usr/include

Linux下開(kāi)發(fā)和編譯應(yīng)用程序需要的頭文件,在這里查找; /usr/lib

存放一些常用的動(dòng)態(tài)鏈接共享庫(kù)和靜態(tài)檔案庫(kù);

/usr/local

這是提供給一般用戶的/usr目錄,在這里安裝軟件最適合; /usr/src

Linux開(kāi)放的源代碼就存在這個(gè)目錄。

/var

這個(gè)目錄中存放著那些不斷在擴(kuò)充著的東西,為了保持usr的相對(duì)穩(wěn)定,那些經(jīng)常被修改的目錄可以放在這個(gè)目錄下,實(shí)際上許多系統(tǒng)管理員都是這樣做的。另外,系統(tǒng)的日志文件就在/var/log目錄中。

我們一般日常能經(jīng)常訪問(wèn)的目錄有/home 目錄、/mnt目錄、/media 目錄、/usr 目錄。

第二篇:操作系統(tǒng)實(shí)驗(yàn)六

void * my_malloc(unsigned int size){

// int i;

// Linker *p=first;

// for(i=size;i<=HEAP_SIZE&&p==NULL;i++)

//p=p->next;

// if(i>HEAP_SIZE)//空?間?不?足á?

//return NULL;

// if(i==HEAP_SIZE){

////p=(l.n+a)->first;

//delete p;}

// else

// {//p=(l.n+i)->first;

//int j;

////WORD *w;

//int temp;

//for(j=HEAP_SIZE;jtag=1;p->kval=a;return p;

//return NULL;

if(size>first->size)

return NULL;

else

{

static Linker* p=(struct Linker *)&heap[HEAP_SIZE-(first->size)];p->size=size;

Linker* tem=first;

while(tem!=NULL)

tem=tem->next;

tem=p;

first->size=(first->size)-size;

return tem;

}

}

void my_free(void * addr){

Linker* p,*tem;

p=first;

while((Linker*)addr->size!=p->next->size)

p=p->next;

tem=p->next;

p->next=tem->next;

first->size=first->size+tem->size;

delete tem;

}

l.insert(w,j);}

第三篇:操作系統(tǒng)實(shí)驗(yàn)體會(huì)

操作系統(tǒng)實(shí)驗(yàn)體會(huì)

操作系統(tǒng) 2010-04-04 14:38:15 閱讀814 評(píng)論0 字號(hào):大中小 訂閱

每一次課程設(shè)計(jì)度讓我學(xué)到了在平時(shí)課堂不可能學(xué)到的東西。所以我對(duì)每一次課程設(shè)計(jì)的機(jī)會(huì)都非常珍惜。不一定我的課程設(shè)計(jì)能夠完成得有多么完美,但是我總是很投入的去研究去學(xué)習(xí)。所以在這兩周的課設(shè)中,熬了2個(gè)通宵,生物鐘也嚴(yán)重錯(cuò)亂了。但是每完成一個(gè)任務(wù)我都興奮不已。一開(kāi)始任務(wù)是任務(wù),到后面任務(wù)就成了自己的作品了。總體而言我的課設(shè)算是達(dá)到了老師的基本要求。總結(jié)一下有以下體會(huì)。

1、網(wǎng)絡(luò)真的很強(qiáng)大,用在學(xué)習(xí)上將是一個(gè)非常高效的助手。幾乎所有的資料都能夠在網(wǎng)上找到。從linux虛擬機(jī)的安裝,到linux的各種基本命令操作,再到gtk的圖形函數(shù),最后到文件系統(tǒng)的詳細(xì)解析。這些都能在網(wǎng)上找到。也因?yàn)檫@樣,整個(gè)課程設(shè)計(jì)下來(lái),我瀏覽的相關(guān)網(wǎng)頁(yè)已經(jīng)超過(guò)了100個(gè)(不完全統(tǒng)計(jì))。當(dāng)然網(wǎng)上的東西很亂很雜,自己要能夠?qū)W會(huì)篩選。不能決定對(duì)或錯(cuò)的,有個(gè)很簡(jiǎn)單的方法就是去嘗試。就拿第二個(gè)實(shí)驗(yàn)來(lái)說(shuō),編譯內(nèi)核有很多項(xiàng)小操作,這些小操作錯(cuò)了一項(xiàng)就可能會(huì)導(dǎo)致編譯的失敗,而這又是非常要花時(shí)間的,我用的虛擬機(jī),編譯一次接近3小時(shí)。所以要非常的謹(jǐn)慎,盡量少出差錯(cuò),節(jié)省時(shí)間。多找個(gè)幾個(gè)參照資料,相互比較,慢慢研究,最后才能事半功倍。

2、同學(xué)間的討論,這是很重要的。老師畢竟比較忙。對(duì)于課程設(shè)計(jì)最大的討論伴侶應(yīng)該是同學(xué)了。能和學(xué)長(zhǎng)學(xué)姐討論當(dāng)然再好不過(guò)了,沒(méi)有這個(gè)機(jī)會(huì)的話,和自己班上同學(xué)討論也是能夠受益匪淺的。大家都在研究同樣的問(wèn)題,討論起來(lái),更能夠把思路理清楚,相互幫助,可以大大提高效率。

3、敢于攻堅(jiān),越是難的問(wèn)題,越是要有挑戰(zhàn)的心理。這樣就能夠達(dá)到廢寢忘食的境界。當(dāng)然這也是不提倡熬夜的,畢竟有了精力才能夠打持久戰(zhàn)。但是做課設(shè)一定要有狀態(tài),能夠在吃飯,睡覺(jué),上廁所都想著要解決的問(wèn)題,這樣你不成功都難。

4、最好在做課設(shè)的過(guò)程中能夠有記錄的習(xí)慣,這樣在寫(xiě)實(shí)驗(yàn)報(bào)告時(shí)能夠比較完整的回憶起中間遇到的各種問(wèn)題。比如當(dāng)時(shí)我遇到我以前從未遇到的段錯(cuò)誤的問(wèn)題,讓我都不知道從何下手。在經(jīng)過(guò)大量的資料查閱之后,我對(duì)段錯(cuò)誤有了一定的了解,并且能夠用相應(yīng)的辦法來(lái)解決。

在編程中以下幾類做法容易導(dǎo)致段錯(cuò)誤,基本是是錯(cuò)誤地使用指針引起的

1)訪問(wèn)系統(tǒng)數(shù)據(jù)區(qū),尤其是往系統(tǒng)保護(hù)的內(nèi)存地址寫(xiě)數(shù)據(jù),最常見(jiàn)就是給一個(gè)指針以0地址 2)內(nèi)存越界(數(shù)組越界,變量類型不一致等)訪問(wèn)到不屬于你的內(nèi)存區(qū)域 3)其他 例如:

<1>定義了指針后記得初始化,在使用的時(shí)候記得判斷是否為NULL <2>在使用數(shù)組的時(shí)候是否被初始化,數(shù)組下標(biāo)是否越界,數(shù)組元素是否存在等 <3>在變量處理的時(shí)候變量的格式控制是否合理等

解決方法

1.利用gdb逐步查找段錯(cuò)誤: 2.分析Core文件 3.段錯(cuò)誤時(shí)啟動(dòng)調(diào)試: 4.利用backtrace和objdump進(jìn)行分析: 總而言之,對(duì)待課設(shè)要像對(duì)待自己的作品一樣,不要當(dāng)作任務(wù)來(lái)完成。

第四篇:操作系統(tǒng)實(shí)驗(yàn)總結(jié)

操作系統(tǒng)實(shí)驗(yàn)總結(jié)

學(xué)號(hào):

姓名:

班級(jí):

在本學(xué)期的計(jì)算機(jī)操作系統(tǒng)這門課學(xué)習(xí)當(dāng)中,為了更好的了解操作系統(tǒng)相關(guān)知識(shí),我們通過(guò)OS Lab平臺(tái)做了幾個(gè)實(shí)驗(yàn)。在實(shí)驗(yàn)室的過(guò)程中,我對(duì)課堂上學(xué)到的操作系統(tǒng)的一些知識(shí)有了新的認(rèn)識(shí),同時(shí)還接觸到了操作系統(tǒng)的相關(guān)源代碼,而且通過(guò)實(shí)驗(yàn)的運(yùn)行效果了解了平時(shí)我們看不到的操作系統(tǒng)的一些狀況,收獲還是很大的。下面先簡(jiǎn)要?dú)w納在實(shí)驗(yàn)課上我做的幾個(gè)實(shí)驗(yàn)的主要實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)步驟:

實(shí)驗(yàn)一:實(shí)驗(yàn)環(huán)境的使用

實(shí)驗(yàn)步驟:

1.1啟動(dòng)OS Lab

OS Lab每次啟動(dòng)后都會(huì)首先彈出一個(gè)用于注冊(cè)用戶信息的對(duì)話框(可以選擇對(duì)話框標(biāo)題欄上的“幫助”按鈕獲得關(guān)于此對(duì)話框的幫助信息)。在此對(duì)話框中填入學(xué)號(hào)和姓名后,點(diǎn)擊“確定”按鈕完成本次注冊(cè)。觀察OS Lab主窗口的布局。OS Lab主要由下面的若干元素組成:菜單欄、工具欄以及停靠在左側(cè)和底部的各種工具窗口,余下的區(qū)域用來(lái)放置編輯器窗口。

1.2 學(xué)習(xí)OS Lab的基本使用方法

練習(xí)使用OS Lab編寫(xiě)一個(gè)Windows控制臺(tái)應(yīng)用程序,熟悉OS Lab的基本使用方法(主要包括新建項(xiàng)目、生成項(xiàng)目、調(diào)試項(xiàng)目等)。

實(shí)驗(yàn)二:操作系統(tǒng)的啟動(dòng)

實(shí)驗(yàn)步驟:

2.1 準(zhǔn)備實(shí)驗(yàn)

啟動(dòng)OS Lab,新建一個(gè)EOS Kernel項(xiàng)目,在“項(xiàng)目管理器”窗口中打開(kāi)boot文件夾中的boot.asm和loader.asm兩個(gè)匯編文件,按F7生成項(xiàng)目,生成完成后,使用Windows資源管理器打開(kāi)項(xiàng)目文件夾中的Debug文件夾。找到由boot.asm生成的軟盤引導(dǎo)扇區(qū)程序boot.bin文件,找到由loader.asm生成的loader程序loader.bin文件,記錄下此文件的大小1566字節(jié)。

2.2 調(diào)試EOS操作系統(tǒng)的啟動(dòng)過(guò)程

2.2.1 使用Bochs做為遠(yuǎn)程目標(biāo)機(jī)

將調(diào)試時(shí)使用的遠(yuǎn)程目標(biāo)機(jī)修改為Bochs

2.2.2 調(diào)試BIOS程序

按F5啟動(dòng)調(diào)試,Bochs在CPU要執(zhí)行的第一條指令(即BIOS的第一條指令)處中斷,從Console窗口顯示的內(nèi)容中,我們可以獲得關(guān)于BIOS第一條指令的相關(guān)信息,然后查看CPU在沒(méi)有執(zhí)行任何指令之前主要寄存器中的數(shù)據(jù),以及內(nèi)存中的數(shù)據(jù)。

2.2.3 調(diào)試軟盤引導(dǎo)扇區(qū)程序

練習(xí)從0x7c00處調(diào)試軟盤引導(dǎo)扇區(qū)程序;查看boot.lst文件;調(diào)試過(guò)程——軟盤引導(dǎo)扇區(qū)程序的主要任務(wù)就是將軟盤中的loader.bin文件加載到物理內(nèi)存的0x1000處,然后跳轉(zhuǎn)到loader程序的第一條指令(物理地址0x1000處的指令)繼續(xù)執(zhí)行l(wèi)oader程序;

2.2.4 調(diào)試加載程序

調(diào)試過(guò)程——Loader程序的主要任務(wù)是將操作系統(tǒng)內(nèi)核(kernel.dll文件)加載到內(nèi)存中,然后讓CPU進(jìn)入保護(hù)模式并且啟用分頁(yè)機(jī)制,最后進(jìn)入操作系統(tǒng)內(nèi)核開(kāi)始執(zhí)行(跳轉(zhuǎn)到kernel.dll的入口點(diǎn)執(zhí)行);

2.2.5 調(diào)試內(nèi)核

2.2.6 EOS啟動(dòng)后的狀態(tài)和行為

查看EOS的版本號(hào);查看EOS啟動(dòng)后的進(jìn)程和線程的信息;查看有應(yīng)用程序運(yùn)行時(shí)進(jìn)程和線程的信息

實(shí)驗(yàn)三:進(jìn)程的創(chuàng)建

實(shí)驗(yàn)步驟:

3.1 準(zhǔn)備實(shí)驗(yàn)

啟動(dòng)OS Lab;新建一個(gè)EOS Kernel項(xiàng)目;分別使用Debug配置和Release配置生成此項(xiàng)目,從而在該項(xiàng)目文件夾中生成完全版本的EOS SDK文件夾;新建一個(gè)EOS應(yīng)用程序項(xiàng)目;使用在第3步生成的SDK文件夾覆蓋EOS應(yīng)用程序項(xiàng)目文件夾中的SDK文件夾

3.2 練習(xí)使用控制臺(tái)命令創(chuàng)建EOS應(yīng)用程序的進(jìn)程

3.3 練習(xí)通過(guò)編程的方式讓?xiě)?yīng)用程序創(chuàng)建另一個(gè)應(yīng)用程序的進(jìn)程

使用OS Lab打開(kāi)本實(shí)驗(yàn)文件夾中的NewProc.c文件;查看應(yīng)用程序創(chuàng)建另一個(gè)應(yīng)用程序的進(jìn)程的執(zhí)行結(jié)果。

3.4 調(diào)試CreateProcess函數(shù)

調(diào)試CreateProcess函數(shù)創(chuàng)建進(jìn)程的過(guò)程;分別驗(yàn)證應(yīng)用程序和操作系統(tǒng)內(nèi)核在進(jìn)程的4G虛擬地址空間中所處的位置;

3.5 調(diào)試PsCreateProcess函數(shù)

調(diào)試PspCreateProcessEnvironment函數(shù);調(diào)試進(jìn)程控制塊的創(chuàng)建過(guò)程;調(diào)試初始化進(jìn)程控制塊中各個(gè)成員變量的過(guò)程。

3.6 練習(xí)通過(guò)編程的方式創(chuàng)建應(yīng)用程序的多個(gè)進(jìn)程

使用OS Lab打開(kāi)本實(shí)驗(yàn)文件夾中的參考源代碼文件NewTwoProc.c,仔細(xì)閱讀此文件中的源代碼。使用NewTwoProc.c文件中的源代碼替換EOS應(yīng)用程序項(xiàng)目中EOSApp.c文件內(nèi)的源代碼,生成后啟動(dòng)調(diào)試,查看多個(gè)進(jìn)程并發(fā)執(zhí)行的結(jié)果。

實(shí)驗(yàn)四:線程的狀態(tài)和轉(zhuǎn)換

實(shí)驗(yàn)步驟:

4.1 準(zhǔn)備實(shí)驗(yàn)

啟動(dòng)OS Lab,新建一個(gè)EOS Kernel項(xiàng)目

4.2 調(diào)試線程狀態(tài)的轉(zhuǎn)換過(guò)程

查看一下loop命令執(zhí)行的效果;調(diào)試線程狀態(tài)轉(zhuǎn)換的過(guò)程;對(duì)斷點(diǎn)進(jìn)行一些調(diào)整。

4.2.1 線程由阻塞狀態(tài)進(jìn)入就緒狀態(tài):

將線程從等待隊(duì)列中移除;將線程的狀態(tài)由Waiting修改為Zero;將線程插入其優(yōu)先級(jí)對(duì)應(yīng)的就緒隊(duì)列的隊(duì)尾;將線程的狀態(tài)由Zero修改為Ready。

4.2.2 線程由運(yùn)行狀態(tài)進(jìn)入就緒狀態(tài):

線程中斷運(yùn)行,將線程中斷運(yùn)行時(shí)的上下文保存到線程控制塊中;如果處于運(yùn)行狀態(tài)的線程被更高優(yōu)先級(jí)的線程搶先,就需要將該線程插入其優(yōu)先級(jí)對(duì)應(yīng)的就緒隊(duì)列的隊(duì)首。(注意,如果處于運(yùn)行狀態(tài)的線程主動(dòng)讓出處理器,例如時(shí)間片用完,就需要將程插入其優(yōu)先級(jí)對(duì)應(yīng)的就緒隊(duì)列的隊(duì)尾);將線程的狀態(tài)由Running修改為Ready

4.2.3 線程由就緒狀態(tài)進(jìn)入運(yùn)行狀態(tài):

將線程從其優(yōu)先級(jí)對(duì)應(yīng)的就緒隊(duì)列中移除;將線程的狀態(tài)由Ready修改為Zero;將線程的狀態(tài)由Zero修改為Running;將線程的上下文從線程控制塊(TCB)復(fù)制到處理器的各個(gè)寄存器中,讓線程從上次停止運(yùn)行的位置繼續(xù)運(yùn)行。

4.2.4 線程由運(yùn)行狀態(tài)進(jìn)入阻塞狀態(tài):

將線程插入等待隊(duì)列的隊(duì)尾;將線程的狀態(tài)由Running修改為Waiting;將線程中斷執(zhí)行,并將處理器上下文保存到該線程的線程控制塊中。

4.3 為線程增加掛起狀態(tài)

觀察loop線程被掛起的情況:刪除之前添加的所有斷點(diǎn);按F5啟動(dòng)調(diào)試;待EOS啟動(dòng)完

畢,在EOS控制臺(tái)中輸入命令“l(fā)oop”后按回車。此時(shí)可以看到loop線程的執(zhí)行計(jì)數(shù)在不停增長(zhǎng),說(shuō)明loop線程正在執(zhí)行,記錄下loop線程的ID;按Ctrl+F2切換到控制臺(tái)2,輸入命令“suspend 31”(如果loop線程的ID是31)后按回車;按Ctrl+1切換回控制臺(tái)1,可以看到由于loop線程已經(jīng)成功被掛起,其執(zhí)行計(jì)數(shù)已經(jīng)停止增長(zhǎng)了。

在PsResumThread函數(shù)第119行需要添加的代碼的流程可以是:首先調(diào)用List Remove Entry函數(shù)將線程從掛起線程隊(duì)列中移除,然后調(diào)用PspReadyThread函數(shù)將線程恢復(fù)為就緒狀態(tài),最后調(diào)用PspThreadSchedule宏函數(shù)執(zhí)行線程調(diào)度,讓剛剛恢復(fù)的線程有機(jī)會(huì)執(zhí)行。

實(shí)驗(yàn)過(guò)程:

做實(shí)驗(yàn)時(shí),最開(kāi)始并不是很了解OS Lab平臺(tái)的使用,即使對(duì)著老師給的實(shí)驗(yàn)教程做還是不怎么會(huì),于是請(qǐng)教會(huì)做的同學(xué),通過(guò)同學(xué)的講解我知道了怎樣在OS Lab平臺(tái)上建立項(xiàng)目,怎樣更改路徑并找到項(xiàng)目的源文件等等基本操作。

掌握對(duì)平臺(tái)的簡(jiǎn)單應(yīng)用后,做后面的實(shí)驗(yàn)我是按照實(shí)驗(yàn)教程上的步驟一步步的實(shí)施,并且每次都認(rèn)真觀察相應(yīng)的運(yùn)行結(jié)果,每個(gè)實(shí)驗(yàn)都會(huì)建議我們學(xué)習(xí)實(shí)驗(yàn)教程前面的理論部分,我想如果對(duì)他的理論不熟悉,就算試驗(yàn)成功了我也不知道為什么,所以我一般在做實(shí)驗(yàn)前會(huì)對(duì)前面的理論部分進(jìn)行簡(jiǎn)要的學(xué)習(xí)和熟悉。做實(shí)驗(yàn)的過(guò)程中,有時(shí)候按照實(shí)驗(yàn)教程上的步驟做平臺(tái)還是會(huì)出現(xiàn)一些錯(cuò)誤,比如做實(shí)驗(yàn)三到調(diào)試CreateProcess函數(shù)時(shí),出現(xiàn)的調(diào)試異常對(duì)話框中,本來(lái)是要點(diǎn)擊“是”的,但做到這里電腦總是會(huì)出現(xiàn)像死機(jī)一樣的狀況,關(guān)掉平臺(tái)重做到這里老是出現(xiàn)同樣的問(wèn)題,最后換電腦也是這樣,然后我嘗試不按照實(shí)驗(yàn)步驟點(diǎn)擊“是”也不行,最后還是又還了電腦才做成功,問(wèn)其他同學(xué)也有出現(xiàn)同樣的問(wèn)題,我想可能是平臺(tái)和電腦上有什么地方有沖突吧。

之后做試驗(yàn)是遇到問(wèn)題我還是選擇多問(wèn)同學(xué),畢竟每個(gè)人擅長(zhǎng)的是不同的,有些問(wèn)題這個(gè)同學(xué)會(huì)解決,有些問(wèn)題則是那個(gè)同學(xué)才懂解決,通過(guò)互相交流和學(xué)習(xí),我們通過(guò)實(shí)驗(yàn)不僅鞏固了課堂上學(xué)到的相關(guān)知識(shí),也對(duì)操作系統(tǒng)有了更深的了解。

體會(huì):

其實(shí)做完實(shí)驗(yàn)我還是不能保證我對(duì)OS Lab這個(gè)平臺(tái)有很好的全面的了解,但是對(duì)一些基本操作及其快捷鍵我算是大致掌握了,通過(guò)這個(gè)平臺(tái)我也是認(rèn)識(shí)到了“沒(méi)有做不到的,只有想不到的”,我覺(jué)得創(chuàng)建這個(gè)平臺(tái)的人們真的是很了不起,這個(gè)平臺(tái)讓我們便動(dòng)手便了解了平時(shí)我們看不到的操作系統(tǒng)的相關(guān)知識(shí)。要做好實(shí)驗(yàn),得按照實(shí)驗(yàn)教程上面的內(nèi)容一步步落實(shí),要邊做變領(lǐng)悟相關(guān)原理及運(yùn)行結(jié)果的出現(xiàn)的原因,這樣我們才能在試驗(yàn)中學(xué)到更多、掌握更多。其次,也遇到問(wèn)題我們自然是要先自己思考,通過(guò)不同的嘗試來(lái)解決,之后不能解決的我們要多向老師同學(xué)請(qǐng)教,通過(guò)互相交流得來(lái)的知識(shí)也是會(huì)讓我們難忘的。

第五篇:《操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書(shū)

《操作系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書(shū)

(適用于計(jì)科、網(wǎng)絡(luò)工程、軟件工程、信計(jì)專業(yè))

計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院

2010-5

目錄

前言..................................................................................................................................................3 實(shí)驗(yàn)

一、進(jìn)程管理與進(jìn)程同步.......................................................................................................4 實(shí)驗(yàn)

二、存儲(chǔ)器管理.......................................................................................................................6 實(shí)驗(yàn)

三、磁盤調(diào)度算法的設(shè)計(jì).......................................................................................................7 實(shí)驗(yàn)

四、文件系統(tǒng)原理與模擬實(shí)現(xiàn)...............................................................................................8

前言

本課程將系統(tǒng)學(xué)習(xí)操作系統(tǒng)的基本概念和常用算法以及其發(fā)展情況和應(yīng)用情況。通過(guò)本課程的學(xué)習(xí),學(xué)生應(yīng)達(dá)到如下要求:

1、加深理解操作系統(tǒng)原理。

2、熟悉操作系統(tǒng)的常用算法并完成算法的程序設(shè)計(jì)。

3、理解當(dāng)前操作系統(tǒng)的應(yīng)用前景和新的進(jìn)展。

本課程主要講解操作系統(tǒng)的實(shí)現(xiàn)原理,如進(jìn)程管理、進(jìn)程同步、存儲(chǔ)器管理、設(shè)備管理和文件系統(tǒng)等。要求學(xué)生理解操作系統(tǒng)的基本原理并完成其中多種典型的操作系統(tǒng)的算法的模擬序設(shè)計(jì)。

學(xué)生可以采用任何一種自己熟悉的編程語(yǔ)言完成算法的程序設(shè)計(jì),如C/C++、Delphi、VB、VC、C#等。

實(shí)驗(yàn)

一、進(jìn)程管理

實(shí)驗(yàn)?zāi)康模?/p>

理解和掌握進(jìn)程管理中死鎖處理和進(jìn)程同步的方法。

實(shí)驗(yàn)內(nèi)容:

實(shí)現(xiàn)銀行家算法、進(jìn)程調(diào)度過(guò)程的模擬、讀者-寫(xiě)者問(wèn)題的寫(xiě)者優(yōu)先算法。

實(shí)驗(yàn)步驟:

? 理解安全性算法和銀行家算法的核心機(jī)制:

針對(duì)3類資源、5個(gè)進(jìn)程的情況,設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),分別表示每個(gè)進(jìn)程占用各類資源的情況;

編程實(shí)現(xiàn)安全性算法函數(shù),編制主函數(shù),動(dòng)態(tài)輸入資源的占用情況,進(jìn)程的資源申請(qǐng),調(diào)用安全性函數(shù),實(shí)現(xiàn)銀行家算法;

測(cè)試:輸入可分配和不可分配的請(qǐng)求,測(cè)試系統(tǒng)的正確性。

? 理解進(jìn)程的三狀態(tài)調(diào)度過(guò)程,及各狀態(tài)間的轉(zhuǎn)換關(guān)系;

模擬若干個(gè)進(jìn)程的運(yùn)行過(guò)程,將其存入進(jìn)程文件中。如:進(jìn)程1:運(yùn)行5秒后有3秒的I/O操作,之后有10秒的運(yùn)行,結(jié)束。可以寫(xiě)成:”p1:r5,io3,r3 e;” ;

編程實(shí)現(xiàn)調(diào)度算法函數(shù),定義時(shí)間片大小和并發(fā)進(jìn)程個(gè)數(shù),不斷從進(jìn)程文件中讀出進(jìn)程信息,模擬進(jìn)程的運(yùn)行及調(diào)度過(guò)程;

測(cè)試:針對(duì)進(jìn)程文件里面的數(shù)據(jù)為正常、缺項(xiàng)、格式不正確等各種情況,檢測(cè)程序的執(zhí)行結(jié)果。

? 設(shè)計(jì)讀者--寫(xiě)者問(wèn)題的寫(xiě)者優(yōu)先算法;

學(xué)習(xí)Windows平臺(tái)下信號(hào)量的API函數(shù)的使用;編制讀寫(xiě)進(jìn)程的模擬信息文件,里面包含多個(gè)讀寫(xiě)進(jìn)程的運(yùn)行描述:編制讀者--寫(xiě)者問(wèn)題的寫(xiě)者優(yōu)先算法,從進(jìn)程模擬信息文件中取出進(jìn)程信息,按要求啟動(dòng)對(duì)應(yīng)的進(jìn)程模擬程序,決定出讀者/寫(xiě)者進(jìn)程的運(yùn)行次序。

實(shí)驗(yàn)結(jié)果:

銀行家算法程序提供一個(gè)用戶界面,可以在上邊發(fā)出資源申請(qǐng)命令,系統(tǒng)應(yīng)能給出是否可以接受申請(qǐng),并且有結(jié)論輸出;

進(jìn)程調(diào)度模擬程序根據(jù)一個(gè)進(jìn)程調(diào)度文件,模擬進(jìn)程的各種調(diào)度過(guò)程,用適合的表達(dá)方式表示出來(lái)。

寫(xiě)者優(yōu)先同步控制程序根據(jù)一個(gè)讀寫(xiě)進(jìn)程模擬信息文件,按照寫(xiě)者優(yōu)先同步控制過(guò)程,用適合的表達(dá)方式表示出各讀寫(xiě)進(jìn)程的執(zhí)行次序。

實(shí)驗(yàn)

二、存儲(chǔ)器管理

實(shí)驗(yàn)?zāi)康模?/p>

理解各類置換算法的原理和虛擬存儲(chǔ)器管理的方法。

實(shí)驗(yàn)內(nèi)容:

編程實(shí)現(xiàn)LRU算法或CLOCK/改進(jìn)算法等置換算法(二選一),模擬實(shí)現(xiàn)虛擬存儲(chǔ)器的地址變換過(guò)程。

實(shí)驗(yàn)步驟:

? 理解LRU或CLOCK改進(jìn)算法等置換算法;

設(shè)計(jì)與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu),如:LRU的堆棧或CLOCK改進(jìn)算法中的循環(huán)結(jié)構(gòu);

按照最多5塊的內(nèi)存分配情況,編程實(shí)現(xiàn)所選算法,動(dòng)態(tài)輸入訪問(wèn)內(nèi)存的塊號(hào)序列,輸出置換結(jié)果;

測(cè)試:輸入合法、非法的訪問(wèn)序列數(shù)據(jù),檢查程序的正確性和健壯性。

? 理解虛擬存儲(chǔ)器的地址變換過(guò)程;

設(shè)計(jì)用于模擬快表、頁(yè)表、地址變換所用的寄存器的數(shù)據(jù)結(jié)構(gòu); 編制頁(yè)表的初始信息文件,舉例說(shuō)明文件中具有的信息:共有5塊,每塊的狀態(tài)、在內(nèi)存和外存的起始地址等。

編程實(shí)現(xiàn)虛擬存儲(chǔ)器地址變換算法程序,動(dòng)態(tài)輸入所要訪問(wèn)的邏輯地址,變換過(guò)程文字描述以及變換后的物理地址;

測(cè)試:輸入有效、無(wú)效地址,測(cè)試程序的正確性和錯(cuò)誤處理能力。

實(shí)驗(yàn)結(jié)果:

置換算法程序提供內(nèi)存訪問(wèn)序列的輸入界面,輸出正確的置換過(guò)程描述和置換結(jié)果;

虛擬地址變換程序提供邏輯地址輸入界面,形象地表示出變換成物理地址的過(guò)程與最后變換成的物理地址。

實(shí)驗(yàn)

三、磁盤調(diào)度算法的設(shè)計(jì)

實(shí)驗(yàn)?zāi)康模?/p>

通過(guò)對(duì)磁盤調(diào)度算法的設(shè)計(jì),深入理解提高磁盤訪問(wèn)速度的原理。

實(shí)驗(yàn)內(nèi)容:

模擬實(shí)現(xiàn)磁盤調(diào)度算法:最短尋道時(shí)間優(yōu)先(SSTF)和掃描(SCAN)算法。

要求:

可以對(duì)給出的任意的磁盤請(qǐng)求序列、計(jì)算平均尋道長(zhǎng)度; 要求可定制磁盤請(qǐng)求序列長(zhǎng)度、磁頭起始位置、磁頭移動(dòng)方向。

測(cè)試:假設(shè)磁盤訪問(wèn)序列:98,183,37,122,14,124,65,67;讀寫(xiě)頭起始位置:53,方向:磁道增加的方向。

實(shí)驗(yàn)

四、文件系統(tǒng)原理與模擬實(shí)現(xiàn)

實(shí)驗(yàn)?zāi)康模?/p>

了解操作系統(tǒng)中文件系統(tǒng)的結(jié)構(gòu)和管理過(guò)程,掌握經(jīng)典的算法:混合索引與成組鏈接法等方法。

實(shí)驗(yàn)內(nèi)容:

編程模擬實(shí)現(xiàn)混合索引和成組鏈接法算法;

實(shí)驗(yàn)步驟:

? 模擬混合索引的原理;

假設(shè)每個(gè)盤塊16字節(jié)大小,每個(gè)盤塊號(hào)占2字節(jié):

設(shè)計(jì)支持混合索引算法的索引節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu);編程模擬實(shí)現(xiàn)混合索引算法。

測(cè)試:輸入一個(gè)文件的長(zhǎng)度,給出模擬分配占用的磁盤塊的情況;輸入一個(gè)需要訪問(wèn)的地址,計(jì)算該地址所在的盤塊號(hào)。

? 模擬成組鏈接法的原理;

設(shè)系統(tǒng)具有7個(gè)可用磁盤塊,每組3塊。

編程模擬實(shí)現(xiàn)成組鏈接法。輸入請(qǐng)求的磁盤塊數(shù),模擬成組鏈接分配;輸入回收的磁盤塊號(hào),模擬成組鏈接回收。

測(cè)試:輸入請(qǐng)求的磁盤塊數(shù),給出分配后的鏈接情況。輸入回收的磁盤塊號(hào),給出回收后的鏈接情況。

下載操作系統(tǒng)實(shí)驗(yàn)word格式文檔
下載操作系統(tǒng)實(shí)驗(yàn).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    操作系統(tǒng)實(shí)驗(yàn)十

    試驗(yàn)十文件系統(tǒng)設(shè)計(jì) 數(shù)計(jì)學(xué)院教師實(shí)驗(yàn)教案 (實(shí)驗(yàn)十) 實(shí)驗(yàn)項(xiàng)目名稱:文件系統(tǒng)設(shè)計(jì) 教師評(píng)分: 一、實(shí)驗(yàn)項(xiàng)目名稱: 文件系統(tǒng)設(shè)計(jì) 二、實(shí)驗(yàn)?zāi)康暮鸵螅?目的:通過(guò)一個(gè)簡(jiǎn)單多用戶文件系統(tǒng)......

    山大操作系統(tǒng)實(shí)驗(yàn)35篇

    進(jìn)程調(diào)度算法實(shí)驗(yàn) 張咪 軟件四班 一、實(shí)驗(yàn)要求 設(shè)有兩個(gè)并發(fā)執(zhí)行的父子進(jìn)程,不斷循環(huán)輸出各自進(jìn)程號(hào)、優(yōu)先數(shù)和調(diào)度策略。進(jìn)程初始調(diào)度策略均為系統(tǒng)默認(rèn)策略和默認(rèn)優(yōu)先級(jí)。當(dāng)......

    操作系統(tǒng)實(shí)驗(yàn)教學(xué)大綱(新)

    《操作系統(tǒng)》課程實(shí)驗(yàn)教學(xué)大綱 英文名稱:Operating System 課程編號(hào):0007021046-1 學(xué)時(shí)數(shù):48+S16 課程性質(zhì):必修 先修課程:C語(yǔ)言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)組成原理、匯編語(yǔ)言程......

    操作系統(tǒng)本科實(shí)驗(yàn)任務(wù)

    實(shí)驗(yàn)一 一、實(shí)驗(yàn)名稱 進(jìn)程調(diào)度的設(shè)計(jì)與實(shí)現(xiàn) 二、實(shí)驗(yàn)?zāi)康?1、 綜合應(yīng)用下列知識(shí)點(diǎn)設(shè)計(jì)并實(shí)現(xiàn)操作系統(tǒng)的進(jìn)程調(diào)度:鄰接表,布爾 數(shù)組,非阻塞輸入,圖形用戶界面GUI,進(jìn)程控制塊,進(jìn)程狀......

    網(wǎng)絡(luò)操作系統(tǒng)實(shí)驗(yàn)教案

    網(wǎng)絡(luò)操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書(shū) 2006.3 網(wǎng)絡(luò)操作系統(tǒng)實(shí)驗(yàn)教案 孫梅 一、實(shí)驗(yàn)名稱: 實(shí)驗(yàn)一、網(wǎng)絡(luò)操作系統(tǒng)的安裝(2學(xué)時(shí)) 二、儀器、設(shè)備: 計(jì)算機(jī)、網(wǎng)絡(luò)互聯(lián)設(shè)備路由器或交換機(jī) 三、參考......

    操作系統(tǒng)存儲(chǔ)管理實(shí)驗(yàn)介紹

    河南師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)五 存儲(chǔ)管理 一、實(shí)驗(yàn)?zāi)康?1 、加深對(duì)操作系統(tǒng)存儲(chǔ)管理的理解 2 、能過(guò)模似頁(yè)面調(diào)試算法,加深理解操作系統(tǒng)對(duì)內(nèi)存的高度管理......

    操作系統(tǒng)進(jìn)程調(diào)度實(shí)驗(yàn)五篇范文

    一. 實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)環(huán)境 1.實(shí)驗(yàn)?zāi)康?通過(guò)觀察、分析實(shí)驗(yàn)現(xiàn)象,深入理解進(jìn)程及進(jìn)程在調(diào)度執(zhí)行和內(nèi)存空間等方面的特點(diǎn),掌握在POSIX 規(guī)范中fork和kill系統(tǒng)調(diào)用的功能和使用。 2.......

    西工大操作系統(tǒng)實(shí)驗(yàn)2(精選五篇)

    實(shí)驗(yàn)二 FreeBSD的應(yīng)用軟件安裝問(wèn)題: 目前實(shí)驗(yàn)室安裝的是一個(gè)運(yùn)行在Windows XP虛擬機(jī)上的FreeBSD操作系統(tǒng),是可視化桌面環(huán)境的命令行界面,上邊只有最基本的Unix操作系統(tǒng),沒(méi)有任......

主站蜘蛛池模板: 国产美女在线精品免费观看网址| 乌克兰少妇xxxx做受野外| 国产亚洲精品一区二区在线观看| 无码精品人妻一区二区三区影院| 精品国产人成亚洲区| 野外做受三级视频| 成人看片黄a免费看那个网址| 国产精品久久久久久无码五月| 97超碰人人做人人爱欧美| 精品国产一二三产品区别在哪| 丰满人妻一区二区三区免费视频| 国产无套露脸在线观看| 欧美亚洲国产片在线播放| 久久久久久久99精品国产片| 亚洲欧美在线一区中文字幕| 国产v综合v亚洲欧| 97日日碰曰曰摸日日澡| 中文字幕天天躁日日躁狠狠躁免费| 久久久性色精品国产免费观看| 亚洲综合中文字幕无线码| 久国产精品人妻aⅴ| 国产成人无码aⅴ片在线观看| 亚洲色偷拍另类无码专区| 99精品国产一区二区电影| 国产亚洲欧美另类一区二区三区| 成人一区二区三区视频在线观看| av无码制服丝袜国产日韩| 思思久久99热只有频精品66| 欧美成人精精品一区二区三区| 鲁一鲁一鲁一鲁一澡| 国产精品导航一区二区| 人妻免费久久久久久久了| 国语自产精品视频在 视频| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交| 久久九九精品国产免费看小说| 欧美午夜精品一区二区三区电影| 无码丰满熟妇bbbbxxx| 精品亚洲一区二区三区在线播放| 欧亚乱熟女一区二区在线| 国产亚洲精品aaaa片在线播放| 少妇厨房愉情理9仑片视频|