導航:首頁 > 創造發明 > 進程創造的主要過程

進程創造的主要過程

發布時間:2021-07-10 05:55:04

1. 如何用C語言模擬實現進程創建、進程撤銷、進程阻塞、進程掛起等進程運行過程

linux中有具體的函數,不用模擬,當然如果這只是一個課業,用來理解進程的一系列創建,撤銷,等等的話,就另當別論了。那麼切入正題,在這些操作中涉及一個控制權轉移的問題,這時你要有一個system對象來管理和調度進程,system對象調度進程時,為進程實體添加一些方法,以便控制權返還給它,那麼這時其它的問題都迎丸而解了,

2. 試述創建進程原語的主要功能。

所謂原語,是操作系統內核中,由若干條指令構成、用於完成一個特定的功能的一個過程,該過程在執行時是不可中斷的。如:創建進程原語:create(n),撤銷進程原語:destroy(n),阻塞進程原語:block(),喚醒進程原語:wakeup(n).

3. 什麼是進程 為什麼

進程是操作系統中最基本、重要的概念,是多道程序系統出現後,為了刻畫系統內部出現的動態情況,描述系統內部各道程序的活動規律引進的一個概念,所有多道程序設計操作系統都建立在進程的基礎上。狹義上講,進程是正在運行的程序的實例;廣義上講,進程是一個具有一定獨立功能的程序關於某個數據集合的一次運行活動。它是操作系統進行資源分配和調度、動態執行的基本單元,是操作系統結構的基礎,在傳統的操作系統中,進程既是基本的分配單元,也是基本的執行單元。其概念主要有兩點:(1)進程是一個實體。每一個進程都有它自己的地址空間,一般情況下,包括文本區域、數據區域和堆棧。文本區域存儲處理器執行的代碼;數據區域存儲變數和進程執行期間使用的動態分配的內存;堆棧區域存儲著活動過程調用的指令和本地變數。(2)進程是一個「執行中的程序」。只有在操作系統、處理器執行程序時,它才能成為一個活動的實體,我們稱其為進程。從理論角度看,進程是對正在運行的程序過程的抽象;從實現角度看,它是一種數據結構,目的在於清晰地刻畫動態系統的內在規律,有效管理和調度進入計算機系統主存儲器運行的程序。
一、進程具有以下特點:
(1)動態性:進程的實質是程序在多道程序系統中的一次執行過程,進程是動態產生、動態消亡的。
(2)並發性:任何進程都可以與其他進程一起並發執行。
(3)獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位。
(4)非同步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進。
(5)結構特徵:進程由程序、數據和進程式控制制塊三部分組成。
二、進程、線程和程序的聯系:
通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源,在引入線程的操作系統中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調度的基本單位,由於線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間並發執行的程度。此外多個不同的進程可以包含相同的程序:一個程序在不同的數據集里就構成不同的進程,能得到不同的結果;但是執行過程中,程序不能發生改變。同一程序同時運行於若干個數據集合上,它將屬於若干個不同的進程,也就是說同一程序可以對應多個進程。
三、進程和程序的區別:
(1)程序是指令和數據的有序集合,其本身沒有任何運行的含義,是一個靜態的概念,而進程是程序在處理機上的一次執行過程,它是一個動態的概念。
(2)程序可以作為一種軟體資料長期存在,而進程是有一定生命期的。
(3)程序是永久的,進程是暫時的。
(4)進程更能真實地描述並發,而程序不能。
(5)進程是由進程式控制制塊、程序段、數據段三部分組成。
(6)進程具有創建其他進程的功能而程序沒有。
(7)在傳統的操作系統中,程序並不能獨立運行,作為資源分配和獨立運行的基本單元都是進程。
四、進程具有的三種基本狀態
由於進程在執行過程中具有動態性和非同步性,因此也就決定了進程可能具有多種狀態。
(1)就緒狀態(Ready):進程已獲得除處理器外的所需資源,等待分配處理器資源;只要分配了處理器進程就可執行。就緒進程可以按多個優先順序來劃分隊列。例如,當一個進程由於時間片用完而進入就緒狀態時,排入低優先順序隊列;當進程由I/O操作完成而進入就緒狀態時,排入高優先順序隊列。
(2)運行狀態(Running):進程佔用處理器資源;處於此狀態的進程的數目小於等於處理器的數目。在沒有其他進程可以執行時(如所有進程都在阻塞狀態),通常會自動執行系統的空閑進程。
(3)阻塞狀態(Blocked):由於進程等待某種條件(如I/O操作或進程同步),在條件滿足之前無法繼續執行。該事件發生前即使把處理器資源分配給該進程,也無法運行。
五、創建進程的事件
在多道程序環境中,只有作為進程時才能在系統中運行。因此,為了讓程序能運行,就必須為它創建進程。一個進程去創建另一個進程的典型事件,可以有以下四類:
(1) 用戶登錄:在分時系統中,用戶在終端鍵入登錄命令後,如果是合法用戶,系統將為該終端建立一個進程,並把它插入到就緒隊列中。
(2)作業調度:在批處理系統中,當作業調度程序按照一定的演算法調度到某作業時,便將該作業裝入到內存,為它分配必要的資源,並立即為它創建進程,再插入到就緒隊列中。
(3) 提供服務:當運行中的用戶程序提出某種請求後,系統將專門創建一個進程來提供用戶所需要的服務,例如,用戶程序要求進行文件列印,操作系統將為它創建一個列印進程,這樣,不僅可以使列印進程與該用戶進程並發執行,而且還便於計算出為完成列印任務所花費的時間。
(4) 應用請求:在上述三種情況中,都是由系統內核為它創建一個新進程,而這一類事件則是基於應用進程的需求,由它創建一個新的進程,以便使新進程以並發的運行方式完成特定任務。
六、進程的創建過程
一旦操作系統發現了要求創建新進程的事件後,便調用進程創建原語create()按下述步驟創建一個新進程。
(1) 申請空白PCB。為新進程申請獲得唯一的數字標識符,並從PCB集合中索取一個空白PCB。
(2) 為新進程分配資源。為新進程的程序和數據以及用戶棧分配必要的內存空間。顯然,此時操作系統必須知道新進程所需要的內存大小。
(3) 初始化進程式控制制塊。PCB的初始化主要包括:初始化標識信息,將系統分配的標識符和父進程標識符,填入新的PCB中;初始化處理機狀態信息,使程序計數器指向程序的入口地址,使棧指針指向棧頂;初始化處理機控制信息,將進程的狀態設置為就緒狀態或靜止就緒狀態,對於優先順序,通常是將它設置為最低優先順序,除非用戶以顯式的方式提出高優先順序要求。
(4) 將新進程插入就緒隊列,如果進程就緒隊列能夠接納新進程,便將新進程插入到就緒隊列中。
七、引起進程終止的事件
(1)正常結束:在任何計算機系統中,都應該有一個表示進程已經運行完成的指示。例如,在批處理系統中,通常在程序的最後安排一條Hold指令或終止的系統調用。當程序運行到Hold指令時,將產生一個中斷,去通知OS本進程已經完成。
(2)異常結束:在進程運行期間,由於出現某些錯誤和故障而迫使進程終止。這類異常事件很多,常見的有:越界錯誤,保護錯,非法指令,特權指令錯,運行超時,等待超時,算術運算錯,I/O故障。
(3)外界干預:外界干預並非指在本進程運行中出現了異常事件,而是指進程應外界的請求而終止運行。這些干預有:操作員或操作系統干預、父進程請求、父進程終止。
八、進程的終止過程
如果系統發生了上述要求終止進程的某事件後,OS便調用進程終止原語,按如下過程去終止指定的進程。
(1)根據被終止進程的標識符,從PCB集合中檢索出該進程的PCB,從中讀出該進程狀態。
(2)若被終止進程正處於執行狀態,應立即終止該進程的執行,並置調度標志為真。用於指示該進程被終止後應重新進行調度。
(3)若該進程還有子孫進程,還應將其所有子孫進程予以終止,以防他們成為不可控的進程。
(4)將被終止的進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統。
(5)將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息。
九、阻塞喚醒
1、引起進程阻塞和喚醒的事件
(1)請求系統服務:當正在執行的進程請求操作系統提供服務時,由於某種原因,操作系統並不立即滿足該進程的要求時,該進程只能轉變為阻塞狀態來等待,一旦要求得到滿足後,進程被喚醒。
(2)啟動某種操作:當進程啟動某種操作後,如果該進程必須在該操作完成之後才能繼續執行,則必須先使該進程阻塞,以等待該操作完成,該操作完成後,將該進程喚醒。
(3)新數據尚未到達:對於相互合作的進程,如果其中一個進程需要先獲得另一(合作)進程提供的數據才能運行以對數據進行處理,則是要其所需數據尚未到達,該進程只有(等待)阻塞,等到數據到達後,該進程被喚醒。
(4)無新工作可做:系統往往設置一些具有某特定功能的系統進程,每當這種進程完成任務後,便把自己阻塞起來以等待新任務到來,新任務到達後,該進程被喚醒。
2.進程阻塞過程
正在執行的進程,當發現上述某事件後,由於無法繼續執行,於是進程便通過調用阻塞原語block()把自己阻塞。可見,進程的阻塞是進程自身的一種主動行為。進入block過程後,由於此時該進程還處於執行狀態,所以應先立即停止執行,把進程式控制制塊中的現行狀態由執行改為阻塞,並將PCB插入阻塞隊列。如果系統中設置了因不同事件而阻塞的多個阻塞隊列,則應將本進程插入到具有相同事件的阻塞(等待)隊列。最後,轉調度程序進行重新調度,將處理機分配給另一就緒進程,並進行切換,亦即,保留被阻塞進程的處理機狀態(在PCB中),再按新進程的PCB中的處理機狀態設置CPU環境。
3. 進程喚醒過程
當被阻塞的進程所期待的事件出現時,如I/O完成或者其所期待的數據已經到達,則由有關進程(比如,用完並釋放了該I/O設備的進程)調用喚醒原語wakeup(),將等待該事件的進程喚醒。喚醒原語執行的過程是:首先把被阻塞的進程從等待該事件的阻塞隊列中移出,將其PCB中的現行狀態由阻塞改為就緒,然後再將該PCB插入到就緒隊列中。

4. 一個程序從創建到執行結束,要經過哪些步驟從操作系統的角度(進程管理,存儲管理,設備管理,文件管理

你這個問法很難讓人回答,程序創建通常是程序開發方面的,你又提到進程管理和存儲管理之類的,那一般是程序開始執行到結束的過程,程序執行過程至於經過那些步驟這要看程序本身要調用那些功能,可以說各有不同,但最基本最簡單的小程序要先向操作系統執行命令解釋請救,操作系統進行驗證該程序是否符合執行條件(像64位程序不能在32位平台使用差不多個意思),符合條件了操作系統會劃分一塊物理內存和虛擬內存給該程序作為緩存數據交換使用,這一點你可以到進程管理器上看到,然後關掉本程序,任何程序都無法自己關閉退出,都是向操作系統請求關閉該程序。操作系統接受關閉請求後就先將需要存儲的數據進行存儲到物理位置,然後翻放被區分的物理內存和虛擬內存區,翻放了該程序佔用的內存區等於真正意思上的該程序結束執行

5. 進程和它創建的線程之間的關系

進程是應用程序的執行實例,每個進程是由私有的虛擬地址空間、代碼、數據和其他各種系統資
源組成的。進程在運行過程中創建的資源隨著進程的終止而被銷毀,所使用的系統資源在進程終止時
被釋放或關閉。
線程是進程內部的一個執行單元(如一個函數或一個活躍的類對象等)。系統創建好進程後,實
際上就啟動執行了該進程的主執行線程。主執行線程終止了,進程也就隨之終止。每一個進程至少有
一個線程(即主執行線程,它無需由用戶去主動創建,是由系統在應用程序啟動後創建的),用戶根
據需要在應用程序中創建其他線程,使多個線程並發地運行在同一個進程中。一個進程中的所有線程
都在該進程的虛擬地址空間中,並使用這些虛擬地址空間、全局變數和系統資源,所以線程之間的通
訊要比進程之間的通訊容易得多。多線程設計在實際中的使用較為廣泛。

6. linux中C語言關於進程的創建

/*請解釋一下*/
while(((child=wait(&status))==-1)&(errno==EINTR));

這種的目的是父親進程等待子進程結束,並回收子進程的資源,將子進程的退出狀態存儲在status中,同時,返回該子進程的pid。
如果wait函數返回-1表示wait函數被其它情況打斷返回,並沒有等待到子進程結束,而同時判斷errno的值是不是EINTR(意思是讓你try again),那麼,讓進程繼續等待。因為這個錯誤並不是真正wait錯誤,而是被timeout時間等造成的,因此重新等待。而如果是其它情況,顯然是wait函數調用錯誤,即下面的if(child==-1),需要列印錯誤信息。『

//但你這句應該寫錯了。應該是邏輯與而不是位與操作。即
while(((child=wait(&status))==-1)&&(errno==EINTR));
/*請解釋一下*/
if(child==-1)

你對信號處理部分還需要努力。
另外介紹一本書《Linux高級程序設計 第3版》 上面講得很清楚。
有問題我們繼續交流,一起學習。

更多技術文章可以關注我的微博,名字:成都睿爾科技 。

7. 創造的思維過程模式包括哪些階段

1、准備,即解決問題者由情境的刺激引起多方面的聯想觀念。

經過篩選,拋棄一些對解決問題無用的觀念,較仔細檢查另一些觀念。逐漸明辨問題的特點,發現解決的頭緒。

2、孕育,介於准備與最後階段之間的階段。

其性質和持續時間變化很大。可能只需幾分鍾,也可能要幾天、幾個月,甚至幾年。其特徵是,問題被擱置一旁,沒有做有意識的工作,但以後重新注意,卻迅速解決了問題,或至少在以前的基礎上躍進了一步。

3、明朗,指突然意識到問題如何解決的階段。

可用「頓悟」一詞描述。這種意識經驗可能是正確的,也可能是錯誤的。

4、驗證,解決問題的最後階段。

此時將前一階段提出的一般解決進一步具體化,並加以應用和檢驗。

(7)進程創造的主要過程擴展閱讀:

思維的過程

思維的過程包括分析與綜合、比較與分類、抽象與概括、系統化與具體化,其中分析與綜合是思維的基本過程,其他過程都是由此派生出來的。

(一)分析與綜合

分析與綜合是思維過程的基本環節。

分析是在頭腦中把事物的整體分解成各個部分、方面或個別特徵的思維過程。

例如,我們把植物分解為根、莖、葉、花、果實、種子;把動物分解為頭、尾、足、軀體;把幾何圖形分解成點、線、面、角、體;分析一個句子由哪些語言成分構成等,都屬於分析過程。

綜合是在頭腦里把事物的各個部分、方面、各種特徵結合起來進行考慮的思維過程。

例如,把單片語成句子;把文學作品的各個情節聯成完整的場面;把一個學生的思想品德、智力水平、學業成績、健康狀況等方面聯系起來,加以評價,作出結論等都屬於綜合過程。

(二)比較與分類

比較是在頭腦中把各種事物或現象加以對比,確定它們之間的異同點的思維過程。人們認識事物,把握事物的屬性、特徵和相互關系,都是通過比較來進行的。只有經過比較,區分事物間的異同點,才能更好地識別事物。

分類是在頭腦中根據事物或現象的共同點和差異點,把它們區分為不同種類的思維過程。例如,學生掌握數的概念時,把數分為實數和虛數;又把實數分為有理數和無理數;有理數又可分為整數、小數和分數等。

(三)抽象與概括

抽象是在頭腦中把同類事物或現象的共同的、本質的特徵抽取出來,並舍棄個別的、非本質特徵的思維過程。

例如,我們對人的認識,人可以分為男性、女性;大人、小孩;工人、農民、軍人、學生、教師、商人;高個、矮個;白種人、黃種人、黑種人;人能吃飯,能睡覺,能喝水,能活動,能知覺,能記憶,能說話,能思維,能製造工具,會使用工具等。

通過分析、比較,抽出人類具有的共同的、本質的屬性,即能說話、能思維、能製造工具等,舍棄能吃飯、能睡覺、能喝水、能活動等其他動物也有的非本質屬性,這就是抽象過程。

概括是在頭腦中把抽象出來的事物的共同的、本質的特徵綜合起來並推廣到同類事物中去,使之普遍化的思維過程。

例如,我們把「人」的本質屬性——能言語、能思維、能製造工具綜合起來,推廣到古今中外一切人身上,指出:「凡是能言語、能思維、能製造和使用工具的動物都是人。」這就是概括。

(四)具體化與系統化

具體化是指在頭腦里把抽象、概括出來的一般概念、原理與理論同具體事物聯系起來的思維過程,也就是用一般原理去解決實際問題,用理論指導實際活動的過程。

系統化是指在頭腦里把學到的知識分門別類地按一定程序組成層次分明的整體系統的過程。例如,生物學家按界、門、綱、目、科、屬、種的順序,把世界上所有的生物分了類,並揭示了各類生吻間的關系和聯系,這就是人腦中對生物系統化的過程。

又如,學生掌握數的概念,在掌握整數、分數、小數知識之後,可以概括歸納為有理數;當數的概念擴大,學習了無理數之後,又可把有理數和無理數概括為實數;掌握了虛數之後,又可把實數和虛數概括為數,從而掌握了系統的數的知識。


8. 創造發明的程序是怎麼樣的

任何發明創造都有其相應的程序和步驟,同學們要創作的發明雖小,過程也是很艱難的。哪怕是一件極其簡單的小發明作品,它的創作都不是一想而就,一作而成的。沒有細心觀察,善於聯想,絕不會有閃光的發現;沒有繪圖製作,反復實驗改進,絕不會有成功的作品。「觀察→聯想→設計→繪圖→製作→實驗」,整個創作過程的各個環節,都不可忽視。只有把握住交叉反復的各個環節,才能搞出高水平的小發明。這里簡單給你簡述一下小發明的創作程序。

第一步:觀察

觀察是小發明入門的向導。世界聞名的生物學家達爾文說過,我既沒有突出的理解力,也沒有過人的機智,只是在覺察那些稍縱即逝的事物並對它進行精細觀察的能力上,我可能在眾人之上。要想搞小發明作品,首先要注重觀察,善於觀察周圍的事物,提高自己的觀察能力。

例如,獲得全國第一屆青少年科技創造發明比賽一等獎的「方便香皂盒」,發明者就是通過觀察一般香皂的結構和特徵,發現了它的不足:由於盒裡潮濕,常常使香皂和盒子粘住,不易取出來。然後巧妙地運用了杠桿原理進行構思、設計、製作。當人們打開香皂盒時,杠桿使盒裡的香皂立起來,使用起來很方便。可見觀察是創造發明的基礎,任何創造發明都來自對事物的認真觀察。

事實上,每一個人每一天都在觀察,但是有些人能從觀察中發現發明課題,而有些卻不會。為什麼呢?法國細菌學家巴斯德說得好:「在觀察的領域中,機遇只偏愛那種有準備的頭腦。」

第二步:聯想

什麼叫聯想?聯想是從一事物想到另一事物的心理過程。從當前的事物回憶起有關的另一事物,或從想起的一件事物又想到另一事物,都是聯想。聯想能力就是舊觀念同現實結合,進而產生新觀念的能力。聯想能力強的人容易捕捉發明課題,容易形成新的構思。

聯想可以使大家接收到更多信息的啟示,激發靈感,加速小發明的進程。要想做到善於聯想,就要有廣博的知識、豐富的閱歷,並勇於突破傳統思想和習慣勢力的束縛。

第三步:設計

同學們針對某一事物的優缺點,提出了大量的問題和產生了眾多的聯想,由於受知識的限制,其中有的是可能達到的想像,有的是創造性的積極幻想,但也有的是毫無把握的空想。要獲得「小發明」的課題,還必須從聯想中進行篩選,淘汰那些不切合實際或暫時達不到的想法。

通過篩選,有了基本上可行的課題,就可以進行初步的設計。在對某一課題的各種設計中,又會出現簡單問題復雜化和復雜問題簡單化的情況,既有具備創造性、先進性的,也有無創造性、過時的;既有具備使用價值的,也有無使用價值的。這時就需要輔導老師幫助你們再次進行篩選,尋找確屬小發明的可行的設計方案。

第四步:繪圖

對於中小學生來說,可行性設計方案往往只是一個想像的粗淺輪廓。無論想像物多麼簡單,都必須繪出加工圖紙(根據不同年齡、年級,提出不同的要求)。這是製作小發明前的必要步驟。同時,這也有利於訓練繪圖能力,培養同學們科學的嚴謹細致的工作作風。

第五步:製作

有了加工圖紙,准備好原材料和各種製作工具,然後按圖紙進行製作。製作中,如果發現圖紙有問題,可以修改圖紙或者重繪。當然,在製作中還可能會遇到各種意想不到的困難,這需要請輔導老師和家長協助排除。

第六步:實驗

小發明作品製作後,要進行實驗。在實驗中證實或修訂自己設計的方案。小發明作品是要不斷改進的,需要多次的觀察、聯想,反復的設計、繪圖,進行再製作,再實驗。

第七步:說明

發明作品完成後,公開時,要寫出說明書,以便推廣使用。說明書的內容,一般包含功能、結構、器材、製作、操作、原理等幾個方面。有些發明作品,一看示意圖就明白的,就可寫得簡單一些,不要面面俱到。

9. 操作系統創建一個新進程的主要步驟是什麼

b
創建進程步驟包括
1,申請空白pcb(進程式控制制塊)
2,系統為新進程分派資源;
3,初始化pcb;
4,將新進程插入就緒隊列

10. 創建新進程

當系統中有下述事件發生時,會導致新進程的創建:1、用戶登錄;2、作業調度;3、提供服務;4、應用請求。
一旦操作系統發現了要求創建新進程的事件後,便調用進程創建原語,按下述步驟創建一新進程:
(1)申請空白PCB;
(2)為新進程分配資源,為新進程的程序和數據以及用戶棧分配必要的內存空間。
(3)初始化進程式控制制塊
(4)將新進程插入就緒隊列。

閱讀全文

與進程創造的主要過程相關的資料

熱點內容
公共服務平台建設領導小組 瀏覽:165
人類創造了那些機器人 瀏覽:933
公共文化服務保障法何時實施 瀏覽:169
遼寧育嬰師證書領取 瀏覽:735
劃撥土地使用權轉讓能轉讓嗎 瀏覽:97
2019年公需科目知識產權考試答案 瀏覽:256
關於知識產權管理辦法 瀏覽:331
公共衛生服務培訓筆記 瀏覽:532
基層公共衛生服務技術題庫 瀏覽:497
中國城市老年體育公共服務體系的反思與重構 瀏覽:932
網路著作權的法定許可 瀏覽:640
工商局黨風廉政建設工作總結 瀏覽:325
公共服務平台建設可行性研究報告 瀏覽:428
投訴華爾街英語 瀏覽:202
榆次區公共衛生服務中心 瀏覽:990
申發明5G 瀏覽:815
矛盾糾紛排查調處工作協調會議記錄 瀏覽:94
版權貿易十一講 瀏覽:370
綜治辦矛盾糾紛排查調處工作總結 瀏覽:903
知識產權局專業面試 瀏覽:75