




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、摘 要計算機系統(tǒng)中的核心系統(tǒng)軟件是操作系統(tǒng),它負責控制和管理整個系統(tǒng)的資源并組織用戶高效、協(xié)調(diào)使用這些資源,使計算機中各部件高效地并行運行。進程是程序在計算機上的一次執(zhí)行活動。當你運行一個程序,你就啟動了一個進程。顯然,程序是死的(靜態(tài)的),進程是活的(動態(tài)的)。進程可以分為系統(tǒng)進程和用戶進程。凡是用于完成操作系統(tǒng)的各種功能的進程就是系統(tǒng)進程,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;用戶進程就是所有由你啟動的進程。進程是操作系統(tǒng)進行資源分配的單位。在 UNIX 系統(tǒng)中,用戶創(chuàng)建一個新進程的唯一方法就是調(diào)用系統(tǒng)調(diào)用 fork。調(diào) 用 fork 的進程稱為父進程,而新創(chuàng)建的進程叫做子進程。本課程設計
2、是實現(xiàn)進程創(chuàng)建系統(tǒng),我們還將學到有關進程的相關概念。 Linux操作系統(tǒng)是面向多用戶的.在同一時間可以有許多用戶向操作系統(tǒng)發(fā)出各種命令.那么操作系統(tǒng)是怎么實現(xiàn)多用戶的環(huán)境呢? 在現(xiàn)代的操作系統(tǒng)里面,都有程序和進程的概念.那么什么是程序,什么是進程呢? 通俗的講程序是一個包含可以執(zhí)行代碼的文件,是一個靜態(tài)的文件。而進程是一個開始執(zhí)行但是還沒有結(jié)束的程序的實例。就是可執(zhí)行文件的具體實現(xiàn)一個程序可能有許多進程,而每一個進程又可以有許多子進程。依次循環(huán)下去,而產(chǎn)生子孫進程。當程序被系統(tǒng)調(diào)用到內(nèi)存以后,系統(tǒng)會給程序分配一定的資源(內(nèi)存,設備等等)然后進行一系列的復雜操作,使
3、程序變成進程以供系統(tǒng)調(diào)用。在系統(tǒng)里面只有進程沒有程序,為了區(qū)分各個不同的進程,系統(tǒng)給每一個進程分配了一個ID(就象我們的身份證)以便識別。為了充分的利用資源,系統(tǒng)還對進程區(qū)分了不同的狀態(tài)。將進程分為新建,運行,阻塞,就緒和完成五個狀態(tài)。新建表示進程正在被創(chuàng)建,運行是進程正在運行,阻塞是進程正在等待某一個事件發(fā)生,就緒是表示系統(tǒng)正在等待CPU來執(zhí)行命令,而完成表示進程已經(jīng)結(jié)束了,系統(tǒng)正在回收資源。關鍵詞:進程;操作系統(tǒng);父進程;子進程;進程創(chuàng)建系統(tǒng);目 錄1 緒論11.1概述11.2學習方法11.3進程及進程創(chuàng)建21.4進程映像21.5設計思想32 偽碼算法43 函數(shù)調(diào)用關系圖84 結(jié)果分析10
4、5 結(jié)論14參考文獻16致 謝17附 錄181 緒論1.1概述 通過本課程的學習,使學習掌握操作系統(tǒng)的基本概念、原理、技術(shù)和使用方法;能用程序設計語言編寫和調(diào)試運行操作系統(tǒng)的主要方法和模塊;深入的了解操作系統(tǒng)在計算機系統(tǒng)中的使用及地位,以及它與硬件和其他軟件之間的關系;進而了解操作系統(tǒng)控制整個計算機系統(tǒng)的全過程,具有操作系統(tǒng)的整體概念。本課程設計是實現(xiàn)進程創(chuàng)建系統(tǒng),我們還將學到有關進程的相關概念。 Linux操作系統(tǒng)是面向多用戶的.在同一時間可以有許多用戶向操作系統(tǒng)發(fā)出各種命令.那么操作系統(tǒng)是怎么實現(xiàn)多用戶的環(huán)境呢? 在現(xiàn)代的操作系統(tǒng)里面,都有程序和進程的概念.那么什么是程序,什么是進程呢?
5、通俗的講程序是一個包含可以執(zhí)行代碼的文件,是一個靜態(tài)的文件.而進程是一個開始執(zhí)行但是還沒有結(jié)束的程序的實例.就是可執(zhí)行文件的具體實現(xiàn). 一個程序可能有許多進程,而每一個進程又可以有許多子進程.依次循環(huán)下去,而產(chǎn)生子孫進程. 當程序被系統(tǒng)調(diào)用到內(nèi)存以后,系統(tǒng)會給程序分配一定的資源(內(nèi)存,設備等等)然后進行一系列的復雜操作,使程序變成進程以供系統(tǒng)調(diào)用.在系統(tǒng)里面只有進程沒有程序,為了區(qū)分各個不同的進程,系統(tǒng)給每一個進程分配了一個ID(就象我們的身份證)以便識別. 為了充分的利用資源,系統(tǒng)還對進程區(qū)分了不同的狀態(tài).將進程分為新建,運行,阻塞,就緒和完成五個狀態(tài). 新建表示進程正在被創(chuàng)建,運行是進程正
6、在運行,阻塞是進程正在等待某一個事件發(fā)生,就緒是表示系統(tǒng)正在等待CPU來執(zhí)行命令,而完成表示進程已經(jīng)結(jié)束了,系統(tǒng)正在回收資源。進程和程序的區(qū)別。掌握Linux中進程的創(chuàng)建方法,進一步理解進程的并發(fā)執(zhí)行。了解UNIX的命令及使用格式,熟悉UNIX/LINUX的常用基本命令,練習并掌握UNIX提供的vi編輯器來編譯C程序,學會利用gcc、gdb編譯、調(diào)試C程序。編寫程序,使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進程。當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上顯示一個字符,如父進程顯示'a',子進程分別顯示字符'b'和字符'c
7、9;。試觀察記錄屏幕上的顯示結(jié)果,并分析原因; 修改程序,每一個進程循環(huán)顯示一句話,如子進程顯示'daughter '及'son ',父進程顯示 'parent ',觀察結(jié)果,分析原因。1.2學習方法 計算機操作系統(tǒng)具有其自身的規(guī)律性,在掌握其基本原理的同時,加強實習環(huán)節(jié)的訓練對學習這門課有極大的幫助。 獲取知識的同時,掌握科學的基本規(guī)律及研究方法。做到最大化對本門課程知識的了解。 培養(yǎng)自我拓展知識和運用知識的能力,并且在學習中多進行操作訓練,做到熟能生巧。1.3進程及進程創(chuàng)建 進程是操作系統(tǒng)的一個核心概念。其概念至今未有嚴格的公認的定義。一般的
8、講,進程是一個具有一定獨立功能的程序關于某個數(shù)據(jù)集合的一次運行活動。其基本狀態(tài)有三種,ready(就緒),running(運行),wait(等待)。死鎖是指,在兩個或者多個并發(fā)進程中,如果每個進程有某種資源而又都等待別的進程釋放他們現(xiàn)在保持的資源,否則就不能向前推進,成稱這一組進程產(chǎn)生了死鎖。通俗的講,就是兩個或者多個進程無止境的等候著永遠不會成立的條件的一種系統(tǒng)狀態(tài)。產(chǎn)生死鎖的根本原因是系統(tǒng)能夠提供的資源數(shù)比要求該資源數(shù)的少,其具體原因是1系統(tǒng)的資源不足2進程推進順序非法。解鎖是指通過軟件或者硬件手段解除移動通訊設備對于運營網(wǎng)絡的限制。進程是一個程序在一組數(shù)據(jù)上的一次執(zhí)行過程。一個Windo
9、ws進程包含自己獨立的虛擬地址空間,用以保護私有的執(zhí)行代碼和數(shù)據(jù)不被其他的進程破壞。進程由以下方面組成:(1)至少一個可執(zhí)行程序,包括代碼和初始數(shù)據(jù),一般在進程創(chuàng)建時說明。(2)一個獨立的進程用戶空間,在進程創(chuàng)建時由操作系統(tǒng)分配。它用于存放進程用戶態(tài)運行的程序和處理的數(shù)據(jù)。(3)系統(tǒng)資源。這是指在進程創(chuàng)建時及執(zhí)行過程中,由操作系統(tǒng)分配給進程的系統(tǒng)資源,包括I/O設備,文件等。(4)一個執(zhí)行棧區(qū),包含運行現(xiàn)場信息。一般的用戶進程都是經(jīng)歷首先被創(chuàng)建,斷斷續(xù)續(xù)運行,最后結(jié)束的過程。操作系統(tǒng)提供了進程創(chuàng)建的系統(tǒng)調(diào)用。用戶程序可以通過“進程創(chuàng)建”系統(tǒng)調(diào)用創(chuàng)建新的進程去運行新的程序。當要把新進程加入到系統(tǒng)
10、時,操作系統(tǒng)創(chuàng)建管理該進程的所要的系統(tǒng)表格,為進程分配空間并初始化進程空間,準備好執(zhí)行程序和數(shù)據(jù)。一個進程可以創(chuàng)建一個新的進程,被創(chuàng)建的進程稱為子進程,創(chuàng)建者進程稱為父進程。1.4進程映像進程映像也稱進程圖像,是進程執(zhí)行的上下文環(huán)境,包括處理機中各通用寄存器的值,進程的內(nèi)存映像,打開文件的狀態(tài)和進程占用的資源信息等。它又:進程控制塊(PCB)、進程執(zhí)行的程序(code)/程序、進程執(zhí)行時所用的數(shù)據(jù)/數(shù)據(jù)集合、進程執(zhí)行時使用的工作區(qū)組成。 一個進程至少執(zhí)行一個可執(zhí)行程序,這些程序往往以文件形式存放于輔存中,程序文件中還包含局部變量,全局變量數(shù)據(jù)以及常數(shù)定義。因此,一個進程需要足夠的存儲空間來存放
11、進程的程序和數(shù)據(jù)以便執(zhí)行。為了執(zhí)行程序,操作系統(tǒng)還必須為進程分配一個棧區(qū),用來保存過程調(diào)用時的現(xiàn)場。我們把程序,數(shù)據(jù),棧的集合稱作進程映像(Process Image)。沒有進程映像,進程就不知道運行什么程序。1.5設計思想1.使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個子進程。當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上顯示一個字符:父進程顯示'a',子進程分別顯示字符'b'和字符'c',多次運行此程序,對比運行結(jié)果。2.修改上述程序,每一個進程循環(huán)顯示一句話。子進程顯示'daughter '及'son
12、 ',父進程顯示 'parent '多次運行,對比結(jié)果。 3. 再次修改,在程序中使用調(diào)用lockf()來給每一個子進程加鎖或解鎖并運行程序,對比結(jié)果。2 偽碼算法 偽碼是一種算法描述語言。使用偽碼的目的是使被描述的算法可以容易的以任何一種編程語言實現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰、代碼簡單、可讀性好,并且類似于自然語言。介于自然語言與編程語言之間。以編程語言的書寫形式指明算法職能。使用偽代碼,不用拘泥于具體實現(xiàn)。相比程序語言它更類似于自然語言。它是半角式化、不標準的語言。它可以將整個算法運行過程的結(jié)構(gòu)用接近自然愿與你的形式(可以使用任何一種你熟悉的意思表達出來)描述出來。
13、對于概要設計中的使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個子進程,創(chuàng)建的過程函數(shù)如下:(1)函數(shù)使用頭文件如下: #include<iostream> Using namespace std;(2)main() 系統(tǒng)調(diào)用格式 參數(shù)定義 Int p1,p2; 調(diào)用函數(shù)fork() P1=fork(); If(p1=0)cout<<”b”<<endl; Else if(p1>0) P2=fork(); If(p2=0)cout<<”c”<<endl; Else if(p2>0) cout<<”a”<<endl;R
14、eturn 0; 使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進程 #include <iostream> using namespace std; int main() int p1,p2; p1=fork(); if(p1=0) cout<<"b"<<endl; else if(p1>0) p2=fork(); if(p2=0) cout<<"c"<<endl; else if(p2>0) cout<<"a"<<endl; return 0;修
15、改程序之后,每一個進程循環(huán)顯示一句話#include<iostream>using namespace std;int main() int p1,p2; p1=fork();/獲得fork()函數(shù)返回值賦給P1 if(p1=0) for(int i=0;i<3;i+) cout<<"daughter"<<i<<endl; cout<<"b"<<endl; else if(p1>0) p2=fork(); if(p2=0) for(int i=0;i<3;i+) c
16、out<<"son"<<i<<endl; cout<<"c"<<endl; else if(p2>0) for(int i=0;i<3;i+) cout<<"parent"<<i<<endl; cout<<"a"<<endl; return 0; 在程序中使用調(diào)用lockf()來給每一個子進程加鎖#include<iostream>using namespace std;i
17、nt main() int p1,p2; p1=fork();/獲得fork()函數(shù)返回值賦給P1 if(p1=0) lockf(1,1,0);/ 加鎖 for(int i=0;i<3;i+) cout<<"daughter"<<i<<endl; cout<<"b"<<endl; lockf(1,0,0);/解鎖 else if(p1>0) p2=fork(); if(p2=0) lockf(1,1,0);/ 加鎖 for(int i=0;i<3;i+) cout<<
18、;"son"<<i<<endl; cout<<"c"<<endl; lockf(1,0,0);/解鎖 else if(p2>0) for(int i=0;i<3;i+) cout<<"parent"<<i<<endl; cout<<"a"<<endl; return 0; 3 函數(shù)調(diào)用關系圖函數(shù)調(diào)用的一般形式加上分號即構(gòu)成函數(shù)語句。例如: printf ("%d",a);sca
19、nf ("%d",&b);都是以函數(shù)語句的方式調(diào)用函數(shù)。函數(shù)作為另一個函數(shù)調(diào)用的實際出現(xiàn)。這種情況是把該函數(shù)的返回值作為實參進行傳送,因此要求該函數(shù)必須是有返回值的。例如: printf("%d",max(x,y); 即是把max調(diào)用的返回值又作為printf函數(shù)的實參來使用的。在函數(shù)調(diào)用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各系統(tǒng)的規(guī)定不一定相同。介紹printf 函數(shù)時已提到過,這里從函數(shù)調(diào)用的角度再強調(diào)一下。 函數(shù)調(diào)用關系圖如下:P1=fork(),p2=fork()
20、;P1=0P1>0Cout<<”a”P2=0P2>0Cout<<”c”Cout<<”a” 圖3.1函數(shù)調(diào)用關系圖 使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個子進程。當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上顯示一個字符:父進程顯示'a',子進程分別顯示字符'b'和字符'c'。 如果被調(diào)函數(shù)的返回值是整型或字符型時,可以不對被調(diào)函數(shù)作說明,而直接調(diào)用。 當被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時,在主調(diào)函數(shù)中也可以不對被調(diào)函數(shù)再作說明而直接調(diào)用。 如在所有函數(shù)定義之前,在函數(shù)外預先
21、說明了各個函數(shù)的類型,則在以后的各主調(diào)函數(shù)中,可不再對被調(diào)函數(shù)作說明。4 結(jié)果分析(1) 使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進程的程序的調(diào)試結(jié)果: 在打開cygwin軟件以后,先輸入文件所在位置,如下面圖中所示“cd f:/cygwin”以后,按回車,在系統(tǒng)彈出的輸入欄里再輸入“g+ create.cpp -o create”后,再次回車,然后繼續(xù)在輸入欄里輸入”./creat.exe”后,便得到調(diào)試結(jié)果,重復輸入,可以得到不同的結(jié)果數(shù)據(jù),如下圖所示: 圖4.1第一次執(zhí)行結(jié)果 圖4.2第二次執(zhí)行結(jié)果 由上面的兩個圖可以看出來由于程序的并發(fā)執(zhí)行,同一個程序運行的結(jié)果會有所區(qū)別。(2) 修改程序
22、之后,同一個程序運行的結(jié)果會有所區(qū)別。 在打開cygwin軟件以后,先輸入文件所在位置,如下面圖中所示“cd f:/cygwin”以后,按回車,在系統(tǒng)彈出的輸入欄里再輸入“g+ xiugai.cpp -o xiugai”后,再次回車,然后繼續(xù)在輸入欄里輸入”./xiugai.exe”后,便得到調(diào)試結(jié)果,重復輸入,可以得到不同的結(jié)果數(shù)據(jù),如下圖所示: 圖4.4修改后第一次執(zhí)行結(jié)果 圖4.5修改后第二次執(zhí)行結(jié)果 圖4.6修改后第三次執(zhí)行結(jié)果(3) 在程序中使用調(diào)用lockf()來給每一個子進程加鎖的調(diào)試結(jié)果: 在打開cygwin軟件以后,先輸入文件所在位置,如下面圖中所示“cd f:/cygwin
23、”以后,按回車,在系統(tǒng)彈出的輸入欄里再輸入“g+ jiasuo.cpp -o jiasuo”后,再次回車,然后繼續(xù)在輸入欄里輸入”./jiasuo.exe”后,便得到調(diào)試結(jié)果,重復輸入,可以得到不同的結(jié)果數(shù)據(jù),如下圖所示: 圖4.7加鎖后第一次執(zhí)行結(jié)果 圖4.8加鎖后第二次執(zhí)行結(jié)果 由上面的運行結(jié)果可以看出在程序中使用調(diào)用lockf()來給每一個子進程加鎖,可以實現(xiàn)進程之間的互斥。5 結(jié)論 經(jīng)過兩周的課程設計生活,從一開始拿到題目到后來的分析,構(gòu)思,完成設計,這一系列的工作讓我受益匪淺。并且通過本學期的操作系統(tǒng)的學習以及這次課程設計,我對操作系統(tǒng)的理解和操作都有了比較大的進步。通過這次課程設計
24、,讓我明白了怎樣創(chuàng)建一個進程。經(jīng)兩個星期的學習,我對進程管理中的相關內(nèi)容進一步的了解了,也更近一步的加深了對編程的理解。知道了自己的不足。 通過這次實驗,讓我明白了怎樣創(chuàng)建一個進程,以及如何使用系統(tǒng)調(diào)用來調(diào)用fork()函數(shù),當fork()的返回值為0的時候表示當前進程是子進程,當fork()函數(shù)的返回值是大于0的時候表示當前進程是父進程,當fork()返回值是-1的時候表示創(chuàng)建進程失敗。通過實驗使我見到了由于程序的并發(fā)執(zhí)行,同一個程序運行的結(jié)果會有所區(qū)別;并且知道了使用調(diào)用lockf()來給每一個子進程加鎖,來實現(xiàn)進程之間的互斥。更重要的是通過這次實驗使我學會了如何在linux的環(huán)境下使用g
25、cc、gdb來編輯和編譯程序??傊ㄟ^這次上機實驗讓我學到了許多書本上面學不到的知識,鍛煉了自己的動手能力和編程的能力。通過該題目的設計過程,我明白了自己的不足我更加努力,爭取在畢業(yè)時達到步入社會的要求。為自己的未來打好基礎。 同時加深了我對進程創(chuàng)建的理解 ,更加理解了課程設計的重要意義,我知道了,只有將自己的理論與實際相結(jié)合,才能更好的將所學的知識應用于實踐,加深自己的理解,更好的理解操作系統(tǒng)的深刻內(nèi)涵。通過這一次的課程設計,我不僅僅學到了專業(yè)知識,更使我懂得如何做事。其實每一次的課程設計都是在教會我怎么樣做事情,它告訴我完成一件事情,光靠團隊的人數(shù)是沒有任何優(yōu)勢的,關鍵在于團隊之中是否有優(yōu)
26、秀的骨干去引領這個團隊完成這件事情。但可惜的是,每次都沒有,而本來并不優(yōu)秀也不是骨干的我無奈成為了矮子軍里的姚明,我只好在無限的感慨中奮力完成課程報告。過而能改,善莫大焉。在課程設計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領悟,不斷獲齲最終的檢測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在老師的指導下,終于游逆而解。在今后社會的發(fā)展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不
27、可能收獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可。我認為,在這學期的實驗中,不僅培養(yǎng)了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實驗課上,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們都可以在實驗結(jié)束之后變的更加成熟,會面對需要面對的事情。 參考文獻1湯子瀛,哲鳳屏.計算機操作系統(tǒng).西安電子科技大學學出版社,2001.2王清,李光明.計算機操作系
28、統(tǒng).冶金工業(yè)出版社,2003.3孫鐘秀等. 操作系統(tǒng)教程. 高等教育出版社,2003.4曾明.Linux操作系統(tǒng)應用教程. 陜西科學技術(shù)出版社,2005. 5張麗芬,劉利雄.操作系統(tǒng)實驗教程. 清華大學出版社,2006.6孟靜,操作系統(tǒng)教程原理和實例分析. 高等教育出版社,2000.7周長林,計算機操作系統(tǒng)教程. 高等教育出版社,2011.8張堯?qū)W,計算機操作系統(tǒng)教程,清華大學出版社,2000.9任滿杰,操作系統(tǒng)原理實用教程,電子工業(yè)出版社,2006.10張坤.操作系統(tǒng)實驗教程,清華大學出版社,2006. 致 謝在這次課程設計中,雖然只有短短的兩周時間,卻讓我學會了很多東西。使得我們將之前的理
29、論知識運用與實踐中,從開始一無所知到能夠看懂并且理解程序,對操作系統(tǒng)的更進一步的鞏固以及對進程的概念也有了更深刻的理解。對操作系統(tǒng)中進程的創(chuàng)建的基本概念、工作原理以及設計方法進行了更深入的學習和了解。這次課程設計使我學到了很多東西,真正做到了理論與實踐相結(jié)合,得到了軟件工程的綜合訓練,大大地提高了解決實際問題的能力。當然,這與老師的指導和同學們的幫助是分不開的。在此我要誠心感謝老師的耐心指導。在整個設計過程當中給我提出了很多意見,并指出了許多錯誤和不足之處,使我受益匪淺。為她付出了個人的寶貴時間來輔導我們而表示忠心的感謝!還要感謝我們班的同學,他們在這次設計當中給了我很多幫助,沒有他的幫助這次
30、的課設是不可能順利完成的。附 錄源程序代碼如下1使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進程的程序清單:#include <iostream>#include <unistd.h>using namespace std;int main() int p1,p2; p1=fork(); if(p1=0) cout<<"b"<<endl; else if(p1>0) p2=fork(); if(p2=0) cout<<"c"<<endl; else if(p2>0) cout<<"a"<<endl; return 0;2修改程序之后,每一個進程循環(huán)顯示一句話的程序清單:#include<iostream>using namespace std;int main() int p1,p2; p1=fork();/獲得fork()函數(shù)返回值賦給P1 if(p1=0) for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客戶經(jīng)理年終個人工作總結(jié)模版
- 社區(qū)護理資源配置優(yōu)化策略
- 快速充電技術(shù)的探索
- 風險管理套期保值講解
- 火電廠生產(chǎn)工藝流程
- 養(yǎng)老護理標準化流程
- 余姚四中教師考試試題及答案
- 有關古代法律的考試題及答案
- 銀行行長面試題目及答案
- 老人晨起護理
- 武漢市2025屆高中畢業(yè)生四月調(diào)研考試 試卷與解析
- 2025北京各區(qū)高三一模數(shù)學分類匯編解析 答案
- 第18課《井岡翠竹》 課件
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 英語試卷
- 廣西壯族自治區(qū)2025年4月高三畢業(yè)班診斷學考試英語試卷(廣西三模)
- 2025年山東省棗莊市滕州市中考歷史模擬試卷(一)
- 2025華陽新材料科技集團有限公司招聘(500人)筆試參考題庫附帶答案詳解
- 2024年美睫技術(shù)考核試題及答案
- 運維崗筆試題及答案
- 余杭塘路(俞家圩路-光明路)工程環(huán)評報告
- 中國化的馬克思主義(毛澤東思想)概論知到課后答案智慧樹章節(jié)測試答案2025年春上海思博職業(yè)技術(shù)學院
評論
0/150
提交評論