

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、通信與信息工程學(xué)院2015 / 2016 學(xué)年第 二 學(xué)期實(shí)驗(yàn)報(bào)告課程名稱:操作系統(tǒng)實(shí)驗(yàn)名稱:1、LINUX 及其使用環(huán)境2、進(jìn)程管理3、進(jìn)程間通信4、文件的操作和使用班級學(xué)號專 業(yè)電子信息工程學(xué)生姓名指導(dǎo)教師趙建立實(shí)驗(yàn)名稱試驗(yàn)一 LINUX 及其使用環(huán)境實(shí)驗(yàn)類型驗(yàn)證實(shí)驗(yàn)學(xué)時(shí)1實(shí)驗(yàn)時(shí)間一、 實(shí)驗(yàn)?zāi)康暮鸵?、了解 UNIX 的命令及使用格式。2、熟悉 UNIX/LINUX 的常用基本命令。3、練習(xí)并掌握 UNIX 提供的 vi 編輯器來編譯 C 程序4、學(xué)會(huì)利用 gcc、gdb 編譯、調(diào)試 C 程序。二、 實(shí)驗(yàn)環(huán)境Windows XP + VMWare + RedHat Enterprise
2、Linux(RHEL) 4三、 實(shí)驗(yàn)原理及內(nèi)容1、熟悉 LINUX 的常用基本命令。如 Is、mkdir、grep 等,學(xué)會(huì)使用 man help 等其它命令, 掌握 vi 編輯器的使用。( 1 )顯示目錄文件ls例:Is -al顯示當(dāng)前目錄下的所有文件( 2)建新目錄 mkdir例: mkdir test 新建一個(gè) test 目錄( 3)刪除目錄rmdir( 4) 改變工作目錄位置cd例: cd test 更改工作目錄至 test 目錄下 (5)顯示當(dāng)前所在目錄 pwd( 6)查看目錄大小 du (7)文件屬性的設(shè)置chmod( 8)命令在線幫助man2、 設(shè)計(jì)一個(gè)實(shí)現(xiàn)文件拷貝功能的 she
3、ll 程序。(1 )在文本編輯器里輸入 shell 程序:#!/bin/shecho “please enter source file:”read soucecho please enter destination file:”read destcp $souc $destls $dest將程序保存在主目錄下,命名為 shell.(2) 打開終端,輸入 ls -l ,顯示目錄下所有文件的許可權(quán)、擁有者、文件大小、修改 時(shí)間及名稱。輸入./shell,運(yùn)行 shell 程序。輸入源文件,目標(biāo)文件。(3) 輸入 ls -l ,當(dāng)前目錄中包含目標(biāo)文件。即完成從源文件拷貝至目標(biāo)文件過程。3、LINU
4、X 下 C 語言程序的編譯與調(diào)試實(shí)驗(yàn)。( 1 )調(diào)試編譯代碼為了使 gdb 正常工作,必須使程序在編譯時(shí)包含調(diào)試信息。調(diào)試信息里包含程序里的每個(gè)變量的類型和在可執(zhí)行文件里的地址映射以及源代碼的行號。gdb 利用這些信息使源代碼和機(jī)器碼相關(guān)聯(lián),在編譯時(shí)用-g 選項(xiàng)打開調(diào)試選項(xiàng)。(2) gdb 基本命令命令描述file裝入欲調(diào)試的可執(zhí)行文件kill終止正在調(diào)試的程序list列出產(chǎn)生執(zhí)行文件的源代碼部分n ext執(zhí)行一行源代碼但不進(jìn)入函數(shù)內(nèi)部step執(zhí)行一行源代碼并進(jìn)入函數(shù)內(nèi)部run執(zhí)仃當(dāng)前被調(diào)試的程序quit終止 gdbwatch監(jiān)視一個(gè)變量的值而不管它何時(shí)被改變break在代碼里設(shè)置斷點(diǎn),使程序
5、執(zhí)行到這里時(shí)被掛起make不退出 gdb 就可以重新產(chǎn)生可執(zhí)行文件shell不離開 gdb 就執(zhí)行 UNIX shell 命令(3) 打開終端,輸入 gcc,編譯 c 程序。(4)編譯無錯(cuò)后,輸入./ ,運(yùn)行程序,顯示運(yùn)行結(jié)果“ hello ”。四、實(shí)驗(yàn)小結(jié)之前沒有接觸過 Linux 操作系統(tǒng),剛開始用有點(diǎn)不習(xí)慣。雖然用起來磕磕絆絆,通過本次 實(shí)驗(yàn)反而受益匪淺。通過這個(gè)實(shí)驗(yàn)我了解了 UNIX 的命令及使用格式,熟悉了 UNIX/LINUX 的常 用基本命令,同時(shí)也了解了在 LINUX 系統(tǒng)下運(yùn)行 C 語言程序的方法,掌握了 C 語言程序的編譯與調(diào)試方法。實(shí)驗(yàn)名稱試驗(yàn)二進(jìn)程管理實(shí)驗(yàn)類型驗(yàn)證實(shí)驗(yàn)學(xué)
6、時(shí)1實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)?zāi)康暮鸵?、掌握進(jìn)程的概念,明確進(jìn)程的含義 2、認(rèn)識(shí)并了解并發(fā)執(zhí)行的實(shí)質(zhì)二、 實(shí)驗(yàn)環(huán)境Win dows XP + VMWare + RedHat En terprise Lin ux(RHEL) 4三、 實(shí)驗(yàn)原理及內(nèi)容1.實(shí)驗(yàn)內(nèi)容使用系統(tǒng)調(diào)用 fork( )創(chuàng)建兩個(gè)子進(jìn)程。當(dāng)此程序運(yùn)行時(shí),在系統(tǒng)中有兩個(gè)父進(jìn)程和兩個(gè) 子進(jìn)程活動(dòng)。每一個(gè)進(jìn)程在屏幕上顯示為:父進(jìn)程1 顯示“(1)parent pid say:A”,父進(jìn)程 2 顯示“ (2)parent pid say:A”,子進(jìn)程顯示 pidl say:B,子進(jìn)程顯示“ pid2 say:C”。2、實(shí)驗(yàn)原理fork( ) :創(chuàng)建
7、一個(gè)新進(jìn)程。系統(tǒng)調(diào)用格式: pid=fork( )參數(shù)定義: int fork( )fork( ) 返回值意義如下:0:在子進(jìn)程中, pid 變量保存的 fork( ) 返回值為 0,表示當(dāng)前進(jìn)程是子進(jìn)程。0:在父進(jìn)程中, pid 變量保存的 fork( ) 返回值為子進(jìn)程的 id 值(進(jìn)程唯一標(biāo)識(shí)符) 。 -1 :創(chuàng)建失敗。如果 fork()調(diào)用成功,它向父進(jìn)程返回子進(jìn)程的PID,并向子進(jìn)程返回 0,即 fork()被調(diào)用了一次,但返回了兩次。此時(shí)OS 在內(nèi)存中建立一個(gè)新進(jìn)程,所建的新進(jìn)程是調(diào)用fork( ) 父進(jìn)程的副本,稱為子進(jìn)程。子進(jìn)程繼承了父進(jìn)程的許多特性,并具有與父進(jìn)程完全 相同的
8、用戶級上下文。父進(jìn)程與子進(jìn)程并發(fā)執(zhí)行。核心為 fork( ) 完成以下操作:(1)為新進(jìn)程分配一進(jìn)程表項(xiàng)和進(jìn)程標(biāo)識(shí)符進(jìn)入 fork( ) 后,核心檢查系統(tǒng)是否有足夠的資源來建立一個(gè)新進(jìn)程。若資源不足,則 fork( ) 系統(tǒng)調(diào)用失敗;否則,核心為新進(jìn)程分配一進(jìn)程表項(xiàng)和唯一的進(jìn)程標(biāo)識(shí)符。(2)檢查同時(shí)運(yùn)行的進(jìn)程數(shù)目超過預(yù)先規(guī)定的最大數(shù)目時(shí), fork( ) 系統(tǒng)調(diào)用失敗。(3)拷貝進(jìn)程表項(xiàng)中的數(shù)據(jù) 將父進(jìn)程的當(dāng)前目錄和所有已打開的數(shù)據(jù)拷貝到子進(jìn)程表項(xiàng)中,并置進(jìn)程的狀態(tài)為“創(chuàng)建”狀態(tài)。(4)子進(jìn)程繼承父進(jìn)程的所有文件 對父進(jìn)程當(dāng)前目錄和所有已打開的文件表項(xiàng)中的引用計(jì)數(shù)加 1。(5)為子進(jìn)程創(chuàng)建進(jìn)程
9、上、下文 進(jìn)程創(chuàng)建結(jié)束,設(shè)子進(jìn)程狀態(tài)為“內(nèi)存中就緒”并返回子進(jìn)程的標(biāo)識(shí)符。(6)子進(jìn)程執(zhí)行雖然父進(jìn)程與子進(jìn)程程序完全相同,但每個(gè)進(jìn)程都有自己的程序計(jì)數(shù)器PC 然后根據(jù)pid 變量保存的 fork( ) 返回值的不同,執(zhí)行不同的分支語句。3. 實(shí)驗(yàn)步驟(1) 在文本編輯器輸入程序:#include#includeint main()int temp1,temp2;int pid1,pid2;pid1=fork();temp1=pid1;if (pid10)printf( “n(1)parent pid %d say:A”,temp1);elseprintf( “npid1 say:B”);pid
10、2=fork();temp2=pid2;if (pid20)printf( “n(2)parent pid %d say:A”,temp2);elseprintf( “npid2 say:C”);將程序保存在主目錄下。(2) 打開終端,使用 gcc 編譯程序,如果出錯(cuò),使用 vi 編輯器編輯程序。編輯無錯(cuò)后再次編 譯。(3) 運(yùn)行程序,輸入 ./,運(yùn)行多次后得到下圖結(jié)果。四、實(shí)驗(yàn)小結(jié)通過這次實(shí)驗(yàn),掌握了進(jìn)程的概念,明確了進(jìn)程的含義,認(rèn)識(shí)并了解了并發(fā)執(zhí)行的實(shí) 質(zhì)。這次實(shí)驗(yàn)學(xué)會(huì)了用 fork ()函數(shù)創(chuàng)建實(shí)驗(yàn),了解到進(jìn)程與子進(jìn)程的創(chuàng)建過程。另外還掌握 了 LINUX 系統(tǒng)中輸出流重定向的使用,將程
11、序的輸出結(jié)果輸出到文件中,而不是直接顯示在 屏幕上。實(shí)驗(yàn)名稱試驗(yàn)三進(jìn)程間通信實(shí)驗(yàn)類型綜合實(shí)驗(yàn)學(xué)時(shí)3實(shí)驗(yàn)時(shí)間一、 實(shí)驗(yàn)?zāi)康暮鸵?、 掌握進(jìn)程另外的創(chuàng)建方法。2、 熟悉進(jìn)程的睡眠、同步、撤消等進(jìn)程控制方法。3、 了解什么是管道。4、 熟悉 UNIX/LINUX 支持的管道通信方式。二、 實(shí)驗(yàn)環(huán)境Win dows XP + VMWare + RedHat En terprise Lin ux(RHEL) 4三、實(shí)驗(yàn)原理及內(nèi)容1. 實(shí)驗(yàn)原理編寫程序?qū)崿F(xiàn)進(jìn)程的管道通信。用系統(tǒng)調(diào)用pipe()建立一管道,二個(gè)子進(jìn)程 P1 和 P2 分別向管道各寫一句話:Child 1 is sending a mess
12、age!Child 2 is sending a message!父進(jìn)程從管道中讀出二個(gè)來自子進(jìn)程的信息并顯示(要求先接收 P1,后 P2)。2. 實(shí)驗(yàn)步驟(1)在文本編輯器輸入程序:#in clude #in clude #in clude in t pid1,pid2;mai n()int fd2;char outpipe100,i npipe100;pipe(fd);/*創(chuàng)建一個(gè)管道*/while (pid1=fork( )= =-1);if(pid1= =0)lockf(fd1,1,0); sprintf(outpipe,child 1 process is sending messa
13、ge!);/* 把串放入數(shù)組 outpipe 中 */write(fd1,outpipe,50);/* 向管道寫長為 50 字節(jié)的串 */sleep(5); /* 自我阻塞 5 秒 */ lockf(fd1,0,0);exit(0);elsewhile(pid2=fork( )= =-1); if(pid2= =0) lockf(fd1,1,0);/* 互斥 */sprintf(outpipe,child 2 process is sending message!); write(fd1,outpipe,50);sleep(5); lockf(fd1,0,0);exit(0);else wai
14、t(0);/* 同步 */read(fd0,inpipe,50); /* 從管道中讀長為 50 字節(jié)的串 */ printf(%sn,inpipe);wait(0);read(fd0,inpipe,50);printf(%sn,inpipe);exit(0);2)在終端中,編譯程序。(3)輸入./執(zhí)行程序3、實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)輸出結(jié)果如下延遲 5 秒后顯示child 1 process is sending message!再延遲 5 秒child 2 process is sending message!四、實(shí)驗(yàn)小結(jié)(包括問題和解決方法、心得體會(huì)、意見與建議等)通過這次實(shí)驗(yàn), 熟悉了進(jìn)程的睡眠、
15、同步、 撤消等進(jìn)程控制方法, 了解什么是管道, 了 解了 UNIX/LINUX支持的管道通信方式。實(shí)驗(yàn)名稱實(shí)驗(yàn)四文件的操作和使用實(shí)驗(yàn)類型驗(yàn)證實(shí)驗(yàn)學(xué)時(shí)1實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)?zāi)康暮鸵笫煜の募到y(tǒng)的操作和使用方法。二、實(shí)驗(yàn)環(huán)境Win dows XP + VMWare + RedHat En terprise Lin ux(RHEL) 4三、實(shí)驗(yàn)原理及內(nèi)容1、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)程序,通過用密碼字符串對文件內(nèi)容進(jìn)行逐字符異或操作的方法,實(shí)現(xiàn)對一個(gè)文件的加/解密。2、實(shí)驗(yàn)步驟(1)實(shí)驗(yàn)程序:#in cludeint main (i nt argc,char *argv)FILE *fd1, *fd2, *fd3;int n;char jiami4;jiamiO= 1;jiami1= 2;jiami2= 3;jiami3= 4;int k=0;char temp;fd 仁 fopen( “” ,” r”);4 aaa ,對程序加密并保存至 aaa(4)使用 vi 指令進(jìn)入和 aaa,前者為加密前,后者為加密后程序。3、實(shí)驗(yàn)結(jié)果:B 中的內(nèi)容_WGWQ_AGPX_8_Q_AUW_GEV_S_;_R_J8CFXGR_QF_m_8AQEGAZ_L8四、實(shí)驗(yàn)小結(jié)(包括問題和解決方法、心得體會(huì)、意見與建議等)通過本次實(shí)驗(yàn),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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è)技術(shù)學(xué)院《語文學(xué)科教育論》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安歐亞學(xué)院《數(shù)據(jù)分析與可視化》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)大學(xué)《建筑防火設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安科技大學(xué)高新學(xué)院《汽車發(fā)展史》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧工程技術(shù)大學(xué)《資產(chǎn)評估學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川航天職業(yè)技術(shù)學(xué)院《嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥信息技術(shù)職業(yè)學(xué)院《建筑類專業(yè)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 南華大學(xué)船山學(xué)院《素描半身帶手及全身像實(shí)踐教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭考三農(nóng)職業(yè)學(xué)院《數(shù)據(jù)庫管理系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 做賬實(shí)操-生產(chǎn)型進(jìn)出口企業(yè)的會(huì)計(jì)賬務(wù)處理分錄實(shí)例
- 穩(wěn)定性冠心病診斷與治療指南
- DL-T5704-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工質(zhì)量驗(yàn)收規(guī)程
- JT-T-610-2004公路隧道火災(zāi)報(bào)警系統(tǒng)技術(shù)條件
- 初中英語比較級和最高級專項(xiàng)練習(xí)題含答案
- 大壩安全監(jiān)測系統(tǒng)驗(yàn)收規(guī)范
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 校園超市經(jīng)營投標(biāo)方案(技術(shù)方案)
- 康復(fù)醫(yī)院建筑設(shè)計(jì)標(biāo)準(zhǔn)
- 社會(huì)穩(wěn)定風(fēng)險(xiǎn)評估 投標(biāo)方案(技術(shù)方案)
- 高層建筑火災(zāi)撲救面臨問題及對策
- JC-T 738-2004水泥強(qiáng)度快速檢驗(yàn)方法
評論
0/150
提交評論