版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</p><p> 二00九級(jí)計(jì)算機(jī)三班</p><p><b> 學(xué) 號(hào): </b></p><p><b> 姓 名:</b></p><p><b> 指導(dǎo)老師: </b></p><p
2、> 時(shí) 間:2012.02.20--2012.03.01</p><p><b> 目 錄</b></p><p> 一、任務(wù)內(nèi)容及進(jìn)度安排</p><p> 1. 任務(wù)內(nèi)容……………………………2</p><p> 2. 進(jìn)度安排……………………………5</p><p&g
3、t; 實(shí)現(xiàn)任務(wù)及其問題分析</p><p> 任務(wù)一…………………………………7</p><p> 任務(wù)二…………………………………8</p><p> 任務(wù)三…………………………………9</p><p> 任務(wù)四…………………………………9</p><p> 三、心得體會(huì)………………………………10<
4、;/p><p> 四、附錄……………………………………11</p><p> 一、任務(wù)內(nèi)容及進(jìn)度安排</p><p><b> 1. 任務(wù)內(nèi)容</b></p><p> 任務(wù)一 I/O系統(tǒng)調(diào)用開銷比較</p><p> 在LINUX平臺(tái)用C編程逆序一個(gè)文本文件,注意顯示逆轉(zhuǎn)結(jié)果的必須是
5、原文件名。如文件原內(nèi)容為“abcd”,處理后內(nèi)容應(yīng)為“dcba”。</p><p><b> 請(qǐng)分別使用三種方法</b></p><p> (1)標(biāo)準(zhǔn)C的I/O庫函數(shù):fopen、fread和fwrite</p><p> (2)Unix的I/O函數(shù):open、read 和write</p><p> (3)op
6、en和mmap</p><p> 要求盡量考慮效率,比較三種方法的性能。</p><p> 任務(wù)二 實(shí)現(xiàn)一個(gè)簡單的shell</p><p> 實(shí)現(xiàn)一個(gè)簡單的shell(命令行解釋器),類似于sh,bash,csh等。</p><p> 你的shell 必須支持以下內(nèi)部命令</p><p> cd &l
7、t;目錄>更改當(dāng)前的工作目錄到另一個(gè)<目錄>。如果<目錄>未指定,輸出當(dāng)前工作目錄。如果<目錄>不存在,應(yīng)當(dāng)有適當(dāng)?shù)腻e(cuò)誤信息提示。這個(gè)命令應(yīng)該也能改變PWD的環(huán)境變量。</p><p> environ 列出所有環(huán)境變量字符串的設(shè)置(類似于Unix系統(tǒng)下的env命令)。</p><p> echo <內(nèi)容 > 顯示echo后的內(nèi)容且
8、換行</p><p> help 簡短概要的輸出你的shell的使用方法和基本功能。</p><p> jobs 輸出shell當(dāng)前的一系列子進(jìn)程,必須提供子進(jìn)程的命名和PID號(hào)。</p><p> quit,exit,bye退出shell。</p><p> 所有的內(nèi)部命令應(yīng)當(dāng)優(yōu)先于在$PATH中同名的程序。</p>
9、<p> 任何非內(nèi)部命令必須請(qǐng)求shell創(chuàng)建一個(gè)新進(jìn)程,且該子進(jìn)程執(zhí)行指定的程序。這個(gè)新進(jìn)程必須繼承shell的環(huán)境變量和指定的命令行參數(shù)。 </p><p> Shell應(yīng)當(dāng)具有以下特征:</p><p> Batch Processing 如果shell啟動(dòng)帶有一個(gè)文件名作為參數(shù),打開該文件并執(zhí)行文件里所有命令。待所有進(jìn)程全部結(jié)束退出shell。該功能類似于shell
10、的交互模式。</p><p> Debugging 提供-v選項(xiàng),shell啟動(dòng)時(shí)打開此選項(xiàng)將在運(yùn)行過程中輸出若干調(diào)試信息。在該種模式下,shell應(yīng)該顯示所有被創(chuàng)建了的進(jìn)程的PID號(hào),通報(bào)已結(jié)束的子進(jìn)程和傳遞給子進(jìn)程的參數(shù)等。</p><p> Prompt(命令行提示符) 解釋器應(yīng)該打印$PS2(而不是$PS1)作為提示符。</p><p> Backgr
11、ound processing 如果命令以符號(hào)&終止,在后臺(tái)并發(fā)執(zhí)行該程序。shell立即等待下一命令行的輸入,而不等待該程序的結(jié)束。</p><p> 任務(wù)三 進(jìn)程/線程同步</p><p> 編程實(shí)現(xiàn)下圖的效果,要求分別使用進(jìn)程和線程</p><p> (1)進(jìn)程+SYS V信號(hào)量</p><p> ?。?)線程實(shí)現(xiàn)
12、+Posix同步操作API</p><p> 無論進(jìn)程形式還是線程形式,進(jìn)程/線程pi的主體反復(fù)輸出下面語句:</p><p> I am process(or thread) pi</p><p> 執(zhí)行次數(shù)取必須保證進(jìn)程并發(fā)情況的發(fā)生(比如p3和p4的交迭運(yùn)行),大家自行調(diào)整。必須保證parbegin(p1(), p2(), ……, p6())并發(fā)形式的充
13、分發(fā)生, 一個(gè)典型的輸出系列如下:</p><p> I am thread 1</p><p><b> .....</b></p><p> I am thread 1</p><p> I am thread 1</p><p><b> .....</b>&
14、lt;/p><p> I am thread 1</p><p> I am thread 3</p><p><b> .....</b></p><p> I am thread 3</p><p> I am thread 2</p><p><b>
15、 .....</b></p><p> I am thread 2</p><p> I am thread 3</p><p><b> .....</b></p><p> I am thread 3</p><p> I am thread 2</p>
16、<p> 任務(wù)四 文件內(nèi)容的并行搜索</p><p> 在閱讀大型項(xiàng)目代碼時(shí),經(jīng)常要搜索某個(gè)標(biāo)識(shí)符,找出該標(biāo)識(shí)符的聲明、定義或引用的地方(某文件的哪一行)。本任務(wù)要求實(shí)現(xiàn)一個(gè)程序idfind,其使用格式如下:</p><p> idfind [-j n] id dirname</p><p> 選項(xiàng) -j 指定并行線程數(shù)目。如果省略該選
17、項(xiàng),則只啟動(dòng)一個(gè)線程。</p><p> id表示要查找的標(biāo)識(shí)符,dirname表示項(xiàng)目所在目錄。</p><p> 任務(wù)五 實(shí)現(xiàn)一個(gè)malloc/free</p><p> 實(shí)現(xiàn)一個(gè)malloc/free,必須按講義指出的方案(注意,因?yàn)榫W(wǎng)上有一些現(xiàn)成的版本,凡未按講義方案實(shí)現(xiàn)者均無效)</p><p> 設(shè)計(jì)測試實(shí)例,并與l
18、ibc的malloc實(shí)現(xiàn)進(jìn)行性能比較。</p><p> 選做,分析你正在使用的libc下malloc的實(shí)現(xiàn)。</p><p> 請(qǐng)參考下面的材料注意其如何保證性能。</p><p> 任務(wù)六 利用元數(shù)據(jù)操作ext2文件系統(tǒng)</p><p> 1.了解并熟悉EX2文件系統(tǒng)的組織結(jié)構(gòu)。</p><p>
19、2.編制一個(gè)文件系統(tǒng)瀏覽器,該瀏覽器類似shell,但只能對(duì)一個(gè)ext2文件系統(tǒng)執(zhí)行以下操作:</p><p> a) cd: 改變用戶當(dāng)前工作目錄。假定初始目錄為ext2文件系統(tǒng)的根目錄。</p><p> b) ls: 列出用戶當(dāng)前目錄的所有文件,每項(xiàng)輸出格式包括:文件的權(quán)限,文件大小,修改時(shí)間和文件名。</p><p> c) cat: 輸出一個(gè)文件的內(nèi)
20、容。</p><p> d) exit: 退出該程序 </p><p> 這幾個(gè)命令都比shell類似的命令要簡單一些。</p><p><b> 2. 進(jìn)度安排</b></p><p> 周二(2012.02.21):</p><p> 1)編寫生成制定大小的文件的程序</p&g
21、t;<p> 2)編寫標(biāo)準(zhǔn)C的I/O操作程序</p><p> 3)編寫Unix的I/0操作程序</p><p> 周三(2012.02.22):</p><p> 1)編寫mmap的I/0操作程序</p><p> 2)測試三種不同方法的性能</p><p> 3)熟悉了解shell的相關(guān)機(jī)
22、理</p><p> 周四(2012.02.23):</p><p><b> 實(shí)現(xiàn)cd命令</b></p><p> 實(shí)現(xiàn)environ命令</p><p><b> 實(shí)現(xiàn)echo命令</b></p><p><b> 實(shí)現(xiàn)help命令</b>
23、;</p><p> 周五(2012.02.24):</p><p><b> 實(shí)現(xiàn)jobs命令</b></p><p><b> 實(shí)習(xí)退出命令</b></p><p><b> 實(shí)現(xiàn)命令提示符特征</b></p><p><b>
24、實(shí)現(xiàn)后臺(tái)運(yùn)行特征</b></p><p> 周一(2012.02.27):</p><p> 實(shí)現(xiàn)外部命令調(diào)用功能</p><p> 測試shell,檢測時(shí)候達(dá)到要求</p><p> 編寫任務(wù)三的進(jìn)程同步</p><p> 4)編寫任務(wù)三的縣線程同步</p><p>
25、周二(2012.02.28):</p><p> 1)文件的搜索的單進(jìn)程實(shí)現(xiàn)</p><p> 2)文件搜索的多進(jìn)程實(shí)現(xiàn)</p><p> 周三(2012.02.29):</p><p><b> 1)實(shí)現(xiàn)任務(wù)五</b></p><p> 周四(2012.03.01):</p>
26、;<p><b> 測試修改任務(wù)五代碼</b></p><p> 完成實(shí)驗(yàn)六的部分代碼</p><p> 周五(2012.03.02):</p><p> 1)完成實(shí)驗(yàn)六的代碼</p><p> 2) 測試實(shí)驗(yàn)六的功能</p><p> 二、實(shí)現(xiàn)任務(wù)及其問題分析</
27、p><p> 任務(wù)一 I/O系統(tǒng)調(diào)用開銷比較</p><p><b> 實(shí)現(xiàn)的功能:</b></p><p> 1.生成制定大小的文件</p><p> 2. 利用C實(shí)現(xiàn)文件內(nèi)容的逆序</p><p> 3. 利用unix函數(shù)實(shí)現(xiàn)文件內(nèi)容的逆序</p><p>
28、 4. 利用mmap函數(shù)實(shí)現(xiàn)文件內(nèi)容的逆序</p><p> 5. 按照要求跟蹤實(shí)現(xiàn)性能比較</p><p><b> 問題分析:</b></p><p> 1. 文件讀取后出現(xiàn)亂碼</p><p> 分析:fread()函數(shù)的使用出現(xiàn)問題,重新修改后問題解決。</p><p> 2.
29、 文件逆序后無法打開</p><p> 分析:fwrite()函數(shù)的使用出現(xiàn)問題,字符串在重新逆序后沒有添加結(jié)束符。</p><p> 3. 對(duì)漢字文件操作后,文件全部為亂碼</p><p> 分析:不同的編譯器中對(duì)漢字的大小定義不同,修改每次讀取的字節(jié)數(shù),問題解決。</p><p> 4. 解決中間文件,實(shí)現(xiàn)文件逆序,程序執(zhí)行后無變
30、化</p><p> 分析:文件的打開方式不正確,導(dǎo)致無法寫入文件,修改打開方式后,文件操作成功。</p><p> 任務(wù)二 實(shí)現(xiàn)一個(gè)簡單的shell</p><p><b> 實(shí)現(xiàn)的功能:</b></p><p> 1. 內(nèi)部命令cd功能</p><p> 2. 內(nèi)部命令echo
31、功能</p><p> 3. 內(nèi)部命令environ功能</p><p> 4. 內(nèi)部命令help功能</p><p> 5. 內(nèi)部命令jobs功能</p><p> 6. 內(nèi)部命令退出功能</p><p> 7. 解釋器應(yīng)該打印$PS2作為提示符。</p><p> 8. 命令以符
32、號(hào)&終止,在后臺(tái)并發(fā)執(zhí)行該程序。shell立即等待下一命令行的輸入,而不等待該程序的結(jié)束。</p><p><b> 問題分析:</b></p><p> 1. cd功能實(shí)現(xiàn)過程中,無法確定路徑改變時(shí)候成功</p><p> 問題分析:模仿linux的shell模式,在命令提示符中調(diào)用環(huán)境變量,打印當(dāng)前的路徑。</p>
33、<p> 2. Echo命令執(zhí)行之后會(huì),在字符串的最后會(huì)出現(xiàn)'\n'符號(hào)</p><p> 問題分析:檢查程序語句后,發(fā)現(xiàn)在命令解析時(shí),字符串結(jié)束符的添加位置出現(xiàn)偏差,忽略了被讀取的換行符號(hào)。</p><p> 3. 實(shí)現(xiàn)jobs功能時(shí),無法調(diào)用系統(tǒng)程序,而自己實(shí)現(xiàn)時(shí)又無法操作</p><p> 問題分析:設(shè)置結(jié)構(gòu)體數(shù)字,存儲(chǔ)子
34、進(jìn)程的名稱、ID號(hào)、及狀態(tài)。ID號(hào)在父進(jìn)程返回時(shí)獲取并保存,狀態(tài)通過fork()返回的次數(shù)來確定。</p><p> 在解析命令時(shí),當(dāng)命令中參數(shù)比較多多時(shí),解析代碼會(huì)出現(xiàn)錯(cuò)誤。</p><p> 任務(wù)三 進(jìn)程/線程同步</p><p><b> 實(shí)現(xiàn)的功能:</b></p><p><b> 1.
35、 線程的同步</b></p><p><b> 2. 進(jìn)程的同步</b></p><p><b> 問題分析:</b></p><p> 1. 子進(jìn)程在信號(hào)量為0的狀態(tài)下,沒有阻塞,依然執(zhí)行。</p><p> 問題分析:函數(shù)的參數(shù)設(shè)置問題,修改函數(shù)參數(shù)設(shè)置。</p>
36、<p> 2. 無法創(chuàng)建信號(hào)量或創(chuàng)建后無法初始化為0</p><p> 問題分析:信號(hào)量創(chuàng)建函數(shù)的參數(shù)設(shè)置問題,在最后的參數(shù)添加一個(gè)參數(shù)0666,問題解決。</p><p> 3. 進(jìn)程并發(fā)一定后,程序死鎖</p><p> 問題分析:在程序中發(fā)現(xiàn)在同一進(jìn)程代碼中兩次申請(qǐng)了 同一資源,導(dǎo)致死鎖。</p><p> 4.
37、 進(jìn)程無法出現(xiàn)較為理想的并發(fā)狀態(tài)</p><p> 問題分析:在各個(gè)進(jìn)程的打印次數(shù)設(shè)置方面不合理,修改各個(gè)子進(jìn)程的打印次數(shù),使其能產(chǎn)生理想的狀態(tài)。</p><p> 5. 進(jìn)程4和進(jìn)程3僅僅發(fā)生一次并發(fā),后來一直等待進(jìn)程3結(jié)束后,進(jìn)程4又開始執(zhí)行。</p><p> 問題分析:進(jìn)程4釋放資源后,進(jìn)程5占據(jù),等待資源3,從而導(dǎo)致進(jìn)程5和進(jìn)程4競爭資源2,導(dǎo)致進(jìn)程
38、4無法執(zhí)行,增加進(jìn)程2的資源數(shù)后問題解決。 </p><p> 任務(wù)四 文件內(nèi)容的并行搜索</p><p> 任務(wù)四的并行搜索實(shí)現(xiàn)的比較少,僅僅通過多種渠道了解了如何進(jìn)行操作,但是后面沒有多余的時(shí)間進(jìn)行編寫。</p><p><b> 心得體會(huì)</b></p><p> 在此次操作系統(tǒng)課程設(shè)計(jì)中,對(duì)于專業(yè)方
39、面的知識(shí)又有了更多的了解,同時(shí)也接觸到了一個(gè)全新的程序設(shè)計(jì)平臺(tái)。</p><p> 此次課程設(shè)計(jì)的操作平臺(tái)是linux操作系統(tǒng),在此之前,自己</p><p> 對(duì)linux并沒有太多的了解。通過此次課程設(shè)計(jì),自己對(duì)linux系統(tǒng)及基于linux核心的程序設(shè)計(jì)有了個(gè)更多的了解,同時(shí)也體會(huì)到linux平臺(tái)下編譯工具的方便及強(qiáng)大,同時(shí)也深刻體驗(yàn)了開源的操作系統(tǒng)對(duì)于一個(gè)計(jì)算機(jī)從業(yè)者的重要性。
40、通過linux下的c編程,自己又找到了一個(gè)新的編程方向。</p><p> 此外,此次課程設(shè)計(jì)的前兩個(gè)任務(wù)的意義沒有特別的體現(xiàn),基本是利用編程的知識(shí)來實(shí)現(xiàn)一個(gè)具有特定功能的程序或者系統(tǒng),沒有感到太多的不同。然而,第三個(gè)實(shí)驗(yàn)的同步卻讓我感覺到了有一中不一樣的感覺。通過自己編程實(shí)踐,體會(huì)到了多線程、多進(jìn)程同步的機(jī)理,對(duì)于進(jìn)程、線程同步有了更深刻的了解,確實(shí)感覺到了多進(jìn)程多線程的優(yōu)越及有趣之處,使我自己對(duì)進(jìn)程和線程同
41、步有了更大的興趣。</p><p> 后面的三個(gè)任務(wù)可能具有更大的意義,但是由于自己在前面的實(shí)驗(yàn)花費(fèi)了太多的時(shí)間的,導(dǎo)致后面沒有時(shí)間繼續(xù)完成?,F(xiàn)在看來感覺前面的任務(wù)其實(shí)沒什么,但是實(shí)際做起來,卻沒有那么高的效率,也使我認(rèn)識(shí)到自己的不足及努力的方向。</p><p><b> 附錄:</b></p><p><b> 線程并發(fā):&
42、lt;/b></p><p> #include <stdio.h></p><p> #include <pthread.h></p><p> #include <stdlib.h></p><p> #include <unistd.h></p><p&g
43、t; pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;</p><p> pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;</p><p> pthread_mutex_t mutex3 = PTHREAD_MUTEX_INITIALIZER;</p><p
44、> pthread_mutex_t mutex4 = PTHREAD_MUTEX_INITIALIZER;</p><p> pthread_mutex_t mutex5 = PTHREAD_MUTEX_INITIALIZER;</p><p> pthread_mutex_t mutex6 = PTHREAD_MUTEX_INITIALIZER;</p><
45、;p> pthread_mutex_t mutex7 = PTHREAD_MUTEX_INITIALIZER;</p><p> void *thread1(void *arg)</p><p><b> {</b></p><p><b> int i,j;</b></p><p>
46、 for(i=0;i<10;i++)</p><p><b> {</b></p><p> printf("I am process 1\n");</p><p> fflush(stdout);</p><p><b> sleep(1);</b></p
47、><p><b> }</b></p><p> pthread_mutex_unlock(&mutex1);</p><p> pthread_mutex_unlock(&mutex2);</p><p> return NULL;</p><p><b> }&
48、lt;/b></p><p> void *thread2(void *arg)</p><p><b> {</b></p><p><b> int i,j;</b></p><p> pthread_mutex_lock(&mutex1);</p><
49、p> for(i=0;i<10;i++)</p><p><b> {</b></p><p> printf("I am process 2\n");</p><p> fflush(stdout);</p><p><b> sleep(1);</b>&
50、lt;/p><p><b> }</b></p><p> pthread_mutex_unlock(&mutex1);</p><p> pthread_mutex_unlock(&mutex3);</p><p> pthread_mutex_unlock(&mutex4);</p&
51、gt;<p> return NULL;</p><p><b> }</b></p><p> void *thread3(void *arg)</p><p><b> {</b></p><p><b> int i,j;</b></p>
52、;<p> pthread_mutex_lock(&mutex2);</p><p> for(i=0;i<30;i++)</p><p><b> {</b></p><p> printf("I am process 3\n");</p><p> fflus
53、h(stdout);</p><p><b> sleep(1);</b></p><p><b> }</b></p><p> pthread_mutex_unlock(&mutex2);</p><p> pthread_mutex_unlock(&mutex5);&l
54、t;/p><p> return NULL;</p><p><b> }</b></p><p> void *thread4(void *arg)</p><p><b> {</b></p><p><b> int i,j;</b><
55、/p><p> pthread_mutex_lock(&mutex3);</p><p> for(i=0;i<40;i++)</p><p><b> {</b></p><p> printf("I am process 4\n");</p><p>
56、fflush(stdout);</p><p><b> sleep(1);</b></p><p><b> }</b></p><p> pthread_mutex_unlock(&mutex3);</p><p> pthread_mutex_unlock(&mutex
57、7);</p><p> return NULL;</p><p><b> }</b></p><p> void *thread5(void *arg)</p><p><b> {</b></p><p><b> int i,j;</b>
58、;</p><p> pthread_mutex_lock(&mutex4);</p><p> pthread_mutex_lock(&mutex5);</p><p> for(i=0;i<20;i++)</p><p><b> {</b></p><p>
59、printf("I am process 5\n");</p><p> fflush(stdout);</p><p><b> sleep(1);</b></p><p><b> }</b></p><p> pthread_mutex_unlock(&mu
60、tex4);</p><p> pthread_mutex_unlock(&mutex5);</p><p> pthread_mutex_unlock(&mutex6);void *thread6(void *arg)</p><p><b> {</b></p><p><b> i
61、nt i,j;</b></p><p> pthread_mutex_lock(&mutex6);</p><p> pthread_mutex_lock(&mutex7);</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p&g
62、t;<p> printf("I am process 6\n");</p><p> fflush(stdout);</p><p><b> sleep(1);</b></p><p><b> }</b></p><p> pthread_mutex
63、_unlock(&mutex6);</p><p> pthread_mutex_unlock(&mutex7);</p><p> return NULL;</p><p><b> }</b></p><p> int main(void)</p><p><b&
64、gt; {</b></p><p> pthread_t mythread1,mythread2,mythread3,mythread4,mythread5,mythread6;</p><p><b> int i;</b></p><p> pthread_mutex_lock(&mutex1);</p&g
65、t;<p> pthread_mutex_lock(&mutex2);</p><p> pthread_mutex_lock(&mutex3);</p><p> pthread_mutex_lock(&mutex4);</p><p> pthread_mutex_lock(&mutex5);</p&g
66、t;<p> pthread_mutex_lock(&mutex6);</p><p> pthread_mutex_lock(&mutex7);</p><p> for(i=1;i<=6;i++)</p><p><b> {</b></p><p> if( 1 ==
67、i )</p><p><b> {</b></p><p> if( pthread_create(&mythread1,NULL,thread1,NULL) )</p><p> { printf("error:111111111111111\n");</p><p>&
68、lt;b> abort();</b></p><p><b> }</b></p><p><b> }</b></p><p> if( 2 == i )</p><p><b> {</b></p><p> if( p
69、thread_create(&mythread2,NULL,thread2,NULL) )</p><p> { printf("error:22222222222222222\n");</p><p><b> abort();</b></p><p><b> }</b>&
70、lt;/p><p><b> }</b></p><p> return NULL;</p><p><b> }</b></p><p> if( 3 == i )</p><p><b> {</b></p><p>
71、 if( pthread_create(&mythread3,NULL,thread3,NULL) )</p><p> { printf("error:13333333333333333\n");</p><p><b> abort();</b></p><p><b> }</
72、b></p><p><b> }</b></p><p> if( 4 == i )</p><p><b> {</b></p><p> if( pthread_create(&mythread4,NULL,thread4,NULL) )</p><p
73、> { printf("er4444444444444441\n");</p><p><b> abort();</b></p><p><b> }</b></p><p><b> }</b></p><p> if( 5
74、== i )</p><p><b> {</b></p><p> if( pthread_create(&mythread5,NULL,thread5,NULL) )</p><p> { printf("error:6666666666666666\n");</p><p&
75、gt;<b> abort();</b></p><p><b> }</b></p><p><b> }</b></p><p> if( 6 == i )</p><p><b> {</b></p><p> i
76、f( pthread_create(&mythread6,NULL,thread6,NULL) )</p><p> { printf("error:666666666666666\n");</p><p><b> abort();</b></p><p><b> }</b>
77、;</p><p><b> }</b></p><p><b> }</b></p><p> if(pthread_join(mythread6,NULL))</p><p><b> {</b></p><p> printf("
78、;6666666666666666666\n");</p><p><b> abort();</b></p><p><b> }</b></p><p><b> exit(0);</b></p><p><b> }</b><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)-文件管理實(shí)驗(yàn)報(bào)告
- 操作系統(tǒng)課程實(shí)驗(yàn)報(bào)告
- 讀者與寫者-操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---io系統(tǒng)調(diào)用開銷比較
- 操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--內(nèi)存的連續(xù)分配算法
- 操作系統(tǒng)課程設(shè)計(jì)——操作系統(tǒng)課程設(shè)計(jì)模擬操作系統(tǒng)
- 操作系統(tǒng)實(shí)驗(yàn)報(bào)告 (5)
- 操作系統(tǒng)實(shí)驗(yàn)報(bào)告模板
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 《操作系統(tǒng)》課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)-- 操作系統(tǒng)
- 操作系統(tǒng)作業(yè)調(diào)度實(shí)驗(yàn)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告2014217151
- 《操作系統(tǒng)原理》課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告2
評(píng)論
0/150
提交評(píng)論