亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法

文檔序號:6556451閱讀:293來源:國知局
專利名稱:Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法
技術領域
本發(fā)明涉及Java操作系統(tǒng),尤其是涉及一種Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法。
背景技術
操作系統(tǒng)的進程是對正在運行的程序的抽象,是一種數(shù)據(jù)結構,目的在于清晰地刻畫動態(tài)系統(tǒng)的內在規(guī)律,有效管理和調度進入計算機系統(tǒng)主存儲器運行的程序。
進程是一個具有一定獨立功能的程序關于某個數(shù)據(jù)集合的一次運行活動,由數(shù)據(jù)結構以及在其上執(zhí)行的程序(語句序列)組成,是程序在這個數(shù)據(jù)集合上的運行過程,也是操作系統(tǒng)進行資源分配和保護的基本單位。它具有如下屬性●(結構性)進程包含了數(shù)據(jù)集合和運行于其上的程序。
●(共享性)同一程序同時運行于不同數(shù)據(jù)集合上時,構成不同的進程。或者說,多個不同的進程可以共享相同的程序。
●(動態(tài)性)進程是程序在數(shù)據(jù)集合上的一次執(zhí)行過程,是動態(tài)概念,同時,它還有生命周期,由創(chuàng)建而產生,由撤銷而消亡。
●(獨立性)進程既是系統(tǒng)中資源分配和保護的基本單位,也是系統(tǒng)調度的獨立單位。凡是未建立進程的程序,都不能作為獨立單位參與運行。
●(制約性)并發(fā)進程之間存在著制約性,進程在進行的關鍵點上需要相互等待或互通消息,以保證程序執(zhí)行的可再現(xiàn)性。
●(并發(fā)性)進程可以并發(fā)地執(zhí)行。對于一個單處理器的系統(tǒng)來說,m個進程P1,P2,…,Pm是輪流占用處理器并發(fā)地執(zhí)行。例如可能是這樣進行的,進程P1執(zhí)行了n1條指令后讓出處理器給P2,P2執(zhí)行了n2條指令后讓出處理器給P3,…,Pm執(zhí)行了nm條指令后讓出處理器給P1,…。因此,進程的執(zhí)行是可以被打斷的,或者說,進程執(zhí)行完一條指令后在執(zhí)行下一條指令前,可能被迫讓出處理器,由其它若干個進程執(zhí)行若干條指令后才能再獲得處理器而執(zhí)行。

發(fā)明內容
為了對正在Java操作系統(tǒng)中運行的程序做出抽象,清晰地刻畫動態(tài)系統(tǒng)的內在規(guī)律,有效管理和調度在Java操作系統(tǒng)中運行的程序,本發(fā)明的目的在于提供一種Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法。
本發(fā)明解決技術問題所采用的技術方案是一種Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法,為了便于管理進程,按進程在執(zhí)行過程中的不同狀況,Java操作系統(tǒng)定義不同的進程狀態(tài)●新建態(tài)對應于Java進程剛剛被創(chuàng)建的狀態(tài);●運行態(tài)Java進程占有處理器正在運行;●就緒態(tài)Java進程具備運行條件,等待系統(tǒng)分配處理器以便運行;●等待態(tài)Java進程不具備運行條件,正在等待某個事件的完成;●掛起就緒態(tài)和掛起等待態(tài)Java進程對換到磁盤鏡像區(qū)中,暫時不參與進程調度;●終止態(tài)Java進程以后不再執(zhí)行。
2、進程狀態(tài)轉換的具體方式如下空NULL—→新建態(tài)執(zhí)行一個程序,創(chuàng)建一個子進程;新建態(tài)—→就緒態(tài)Java操作系統(tǒng)完成了進程創(chuàng)建的必要操作,并且當前系統(tǒng)的性能和虛擬內存的容量均允許,提交到就緒態(tài)隊列;新建態(tài)—→掛起就緒態(tài)考慮到系統(tǒng)當前資源狀況和性能要求,可以決定新建的進程將被對換出去成為掛起就緒態(tài);掛起就緒態(tài)—→就緒態(tài)當內存中沒有就緒態(tài)進程,或者掛起就緒態(tài)進程具有比就緒態(tài)進程更高的優(yōu)先級,系統(tǒng)將把掛起就緒態(tài)進程轉換成就緒態(tài);就緒態(tài)—→掛起就緒態(tài)Java操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把就緒態(tài)進程將被對換出去成為掛起就緒態(tài);就緒態(tài)—→運行態(tài)Java操作系統(tǒng)在就緒態(tài)進程隊列里面選中一個進程,在中心處理器中運行;運行態(tài)—→終止態(tài)當一個進程到達了自然結束點,或是出現(xiàn)了無法克服的錯誤,或是被操作系統(tǒng)所終結,或是被其他有終止權的進程所終結;運行態(tài)—→掛起就緒態(tài)當一個具有較高優(yōu)先級的掛起等待態(tài)進程的等待事件結束后,它需要搶占了中心處理器,,而此時主存空間有不夠,從而可能導致正在運行的進程轉化為掛起就緒態(tài)。另外處于運行態(tài)的進程也可以自己掛起自己;終止態(tài)—→空NULL完成善后操作,退出執(zhí)行;就緒態(tài)—→終止態(tài)Java操作系統(tǒng)中允許父進程終結子進程;等待態(tài)—→終止態(tài)Java操作系統(tǒng)中操作系統(tǒng)允許父進程終結子進程;
等待態(tài)—→掛起等待態(tài)如果當前不存在就緒進程,那么至少有一個等待態(tài)進程將被對換出去成為掛起等待態(tài);操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把等待態(tài)進程將被對換出去成為掛起等待態(tài);掛起等待態(tài)—→掛起就緒態(tài)引起進程等待的事件發(fā)生之后,相應的掛起等待態(tài)進程將轉換為掛起就緒態(tài);掛起等待態(tài)—→等待態(tài)當一個進程等待一個事件時,原則上時不需要把它調入內存的。但是當一個進程退出后,主存已經(jīng)有了一大塊自由空間,而某個掛起等待態(tài)進程具有較高的優(yōu)先級并且操作系統(tǒng)已經(jīng)得知導致它阻塞的事件即將結束,此時便發(fā)生了這一狀態(tài)變化。
本發(fā)明具有的有益效果是首先,在Java操作系統(tǒng)中這種進程實現(xiàn)和建立狀態(tài)的方法,清晰刻畫了進程的每一個狀態(tài),在某一個特定時刻,一個特定的進程只能處于一個特定的狀態(tài);其次,進程狀態(tài)轉換沿著固定的路線和狀態(tài)導向進行,對于特定的觸發(fā)條件和系統(tǒng)環(huán)境,Java操作系統(tǒng)中的進程向特定的狀態(tài)進行狀態(tài)切換。本Java操作系統(tǒng)的設計方案嚴格遵循了背景中所提及的進程結構性、共享性、動態(tài)性、獨立性、制約性、并發(fā)性的特點,在Java操作系統(tǒng)的實現(xiàn)中得到了巨大的靈活性和可控制性。


附圖是本發(fā)明的流程圖。
具體實施例方式
1、一種應用于Java操作系統(tǒng)中進程實現(xiàn)和建立狀態(tài)的方法,其特征在于為了便于管理進程,按進程在執(zhí)行過程中的不同狀況,Java操作系統(tǒng)定義不同的進程狀態(tài)●新建態(tài)(new)對應于Java進程剛剛被創(chuàng)建的狀態(tài)。
●運行態(tài)(running)Java進程占有處理器正在運行。
●就緒態(tài)(ready)Java進程具備運行條件,等待系統(tǒng)分配處理器以便運行。
●等待態(tài)(blocked)Java進程不具備運行條件,正在等待某個事件的完成。
●掛起(suspend)Java進程對換到磁盤鏡像區(qū)中,暫時不參與進程調度●終止態(tài)(exit)Java進程以后不再執(zhí)行一個Java進程在創(chuàng)建后將處于就緒狀態(tài)。每個進程在執(zhí)行過程中,任一時刻當且僅當處于上述狀態(tài)之一。同時在一個進程執(zhí)行過程中,它的狀態(tài)將會發(fā)生改變。運行狀態(tài)的進程將由于出現(xiàn)等待事件而進入的等待狀態(tài),當?shù)却录Y束之后等待狀態(tài)的進程將進入就緒狀態(tài),而處理器的調度策略又會引起運行狀態(tài)和就緒狀態(tài)之間的切換。
新建態(tài)對應于Java進程剛剛被創(chuàng)建的狀態(tài)。創(chuàng)建一個進程要通過兩個步驟,首先是為一個新進程創(chuàng)建必要的管理信息,然后是讓該進程進入就緒態(tài)。此時進程將處于新建態(tài),它并沒有被提交執(zhí)行,而是在等待操作系統(tǒng)完成創(chuàng)建進程的必要操作。Java操作系統(tǒng)有時將根據(jù)系統(tǒng)性能或主存容量的限制推遲新建態(tài)Java進程的提交。
進程的終止通過兩個步驟,首先是等待操作系統(tǒng)進行善后,然后退出主存。當一個進程到達了自然結束點,或是出現(xiàn)了無法克服的錯誤,或是被操作系統(tǒng)所終結,或是被其他有終止權的進程所終結,將進入終止態(tài)。進入終止態(tài)的進程以后不再執(zhí)行,但依然臨時保留在操作系統(tǒng)中等待善后。一旦其他進程完成了對終止態(tài)進程的信息抽取之后,Java操作系統(tǒng)建刪除該進程。
由于進程的不斷創(chuàng)建,系統(tǒng)的資源已經(jīng)不能滿足進程運行的要求,這個時候就必須把某些進程掛起(suspend),對換到磁盤鏡像區(qū)中,暫時不參與進程調度,起到平滑系統(tǒng)操作負荷的目的。
2、按照

所示,進程狀態(tài)轉換的具體方式如下在具有掛起進程功能的Java操作系統(tǒng)中,進程增加了兩個新狀態(tài)掛起就緒態(tài)(ready,suspend)和掛起等待態(tài)(blocked,suspend)。掛起就緒態(tài)表明了進程具備運行條件但目前在二級存儲器中,只有當它被對換到主存才能被調度執(zhí)行。掛起等待態(tài)表明了進程正在等待某一個事件且在二級存儲器中。
空NULL—→新建態(tài)執(zhí)行一個程序,創(chuàng)建一個子進程。
新建態(tài)—→就緒態(tài)Java操作系統(tǒng)完成了進程創(chuàng)建的必要操作,并且當前系統(tǒng)的性能和虛擬內存的容量均允許,提交到就緒態(tài)隊列。
新建態(tài)—→掛起就緒態(tài)考慮到系統(tǒng)當前資源狀況和性能要求,可以決定新建的進程將被對換出去成為掛起就緒態(tài)。
掛起就緒態(tài)—→就緒態(tài)當內存中沒有就緒態(tài)進程,或者掛起就緒態(tài)進程具有比就緒態(tài)進程更高的優(yōu)先級,系統(tǒng)將把掛起就緒態(tài)進程轉換成就緒態(tài)。
就緒態(tài)—→掛起就緒態(tài)Java操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把就緒態(tài)進程將被對換出去成為掛起就緒態(tài)。
就緒態(tài)—→運行態(tài)Java操作系統(tǒng)在就緒態(tài)進程隊列里面選中一個進程,在中心處理器中運行。
運行態(tài)—→終止態(tài)當一個進程到達了自然結束點,或是出現(xiàn)了無法克服的錯誤,或是被操作系統(tǒng)所終結,或是被其他有終止權的進程所終結。
運行態(tài)—→掛起就緒態(tài)當一個具有較高優(yōu)先級的掛起等待態(tài)進程的等待事件結束后,它需要搶占了中心處理器,,而此時主存空間有不夠,從而可能導致正在運行的進程轉化為掛起就緒態(tài)。另外處于運行態(tài)的進程也可以自己掛起自己。
終止態(tài)—→空NULL完成善后操作,退出執(zhí)行。
就緒態(tài)—→終止態(tài)Java操作系統(tǒng)中允許父進程終結子進程。
等待態(tài)—→終止態(tài)Java操作系統(tǒng)中操作系統(tǒng)允許父進程終結子進程。
等待態(tài)—→掛起等待態(tài)如果當前不存在就緒進程,那么至少有一個等待態(tài)進程將被對換出去成為掛起等待態(tài);操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把等待態(tài)進程將被對換出去成為掛起等待態(tài)。
掛起等待態(tài)—→掛起就緒態(tài)引起進程等待的事件發(fā)生之后,相應的掛起等待態(tài)進程將轉換為掛起就緒態(tài)。
掛起等待態(tài)—→等待態(tài)當一個進程等待一個事件時,原則上時不需要把它調入內存的。但是當一個進程退出后,主存已經(jīng)有了一大塊自由空間,而某個掛起等待態(tài)進程具有較高的優(yōu)先級并且操作系統(tǒng)已經(jīng)得知導致它阻塞的事件即將結束,此時便發(fā)生了這一狀態(tài)變化。
引起進程掛起的原因是多樣的,主要有●操作系統(tǒng)中的進程0均處于等待狀態(tài),處理器空閑,此時需要把一些進程對換出去,以騰出足夠的內存裝入就緒進程運行。
●進程競爭資源,導致系統(tǒng)資源不足,負荷過重,此時需要掛起部分進程以調整系統(tǒng)負荷。
●把一些定期執(zhí)行的進程(如審計程序、監(jiān)控程序、記賬程序)對換出去,以減輕系統(tǒng)負荷。
●用戶要求掛起自己的進程,以根據(jù)中間執(zhí)行情況和中間結果進行某些調試、檢查和改正。
●父進程要求掛起自己的后代進程,以進行某些檢查和改正。
●當系統(tǒng)出現(xiàn)故障或某些功能受到破壞時,需要掛起某些進程以排除故障。
Java操作系統(tǒng)把一個掛起進程等同于不在主存的進程,因此掛起的進程將不參與進程調度直到它們被對換進主存。一個掛起進程具有如下特征
●該進程不能立即被執(zhí)行。
●掛起進程可能會等待一個事件,但所等待的事件是獨立于掛起條件的,事件結束并不能導致進程具備執(zhí)行條件。
●進程進入掛起狀態(tài)是由于操作系統(tǒng)、父進程或進程本身阻止它的運行。
●結束進程掛起狀態(tài)的命令只能通過操作系統(tǒng)或父進程發(fā)出。
本Java操作系統(tǒng)軟件已經(jīng)向中華人民共和國版權局申請計算機軟件著作權登記。
權利要求
1.一種Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法,其特征在于為了便于管理進程,按進程在執(zhí)行過程中的不同狀況,Java操作系統(tǒng)定義不同的進程狀態(tài)●新建態(tài)對應于Java進程剛剛被創(chuàng)建的狀態(tài);●運行態(tài)Java進程占有處理器正在運行;●就緒態(tài)Java進程具備運行條件,等待系統(tǒng)分配處理器以便運行;●等待態(tài)Java進程不具備運行條件,正在等待某個事件的完成;●掛起就緒態(tài)和掛起等待態(tài)Java進程對換到磁盤鏡像區(qū)中,暫時不參與進程調度;●終止態(tài)Java進程以后不再執(zhí)行。
2.進程狀態(tài)轉換的具體方式如下空NULL—→新建態(tài)執(zhí)行一個程序,創(chuàng)建一個子進程;新建態(tài)—→就緒態(tài)Java操作系統(tǒng)完成了進程創(chuàng)建的必要操作,并且當前系統(tǒng)的性能和虛擬內存的容量均允許,提交到就緒態(tài)隊列;新建態(tài)—→掛起就緒態(tài)考慮到系統(tǒng)當前資源狀況和性能要求,可以決定新建的進程將被對換出去成為掛起就緒態(tài);掛起就緒態(tài)—→就緒態(tài)當內存中沒有就緒態(tài)進程,或者掛起就緒態(tài)進程具有比就緒態(tài)進程更高的優(yōu)先級,系統(tǒng)將把掛起就緒態(tài)進程轉換成就緒態(tài);就緒態(tài)—→掛起就緒態(tài)Java操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把就緒態(tài)進程將被對換出去成為掛起就緒態(tài);就緒態(tài)—→運行態(tài)Java操作系統(tǒng)在就緒態(tài)進程隊列里面選中一個進程,在中心處理器中運行;運行態(tài)—→終止態(tài)當一個進程到達了自然結束點,或是出現(xiàn)了無法克服的錯誤,或是被操作系統(tǒng)所終結,或是被其他有終止權的進程所終結;運行態(tài)—→掛起就緒態(tài)當一個具有較高優(yōu)先級的掛起等待態(tài)進程的等待事件結束后,它需要搶占了中心處理器,,而此時主存空間有不夠,從而可能導致正在運行的進程轉化為掛起就緒態(tài)。另外處于運行態(tài)的進程也可以自己掛起自己;終止態(tài)—→空NULL完成善后操作,退出執(zhí)行;就緒態(tài)—→終止態(tài)Java操作系統(tǒng)中允許父進程終結子進程;等待態(tài)—→終止態(tài)Java操作系統(tǒng)中操作系統(tǒng)允許父進程終結子進程;等待態(tài)—→掛起等待態(tài)如果當前不存在就緒進程,那么至少有一個等待態(tài)進程將被對換出去成為掛起等待態(tài);操作系統(tǒng)根據(jù)當前資源狀況和性能要求,也可以決定把等待態(tài)進程將被對換出去成為掛起等待態(tài);掛起等待態(tài)—→掛起就緒態(tài)引起進程等待的事件發(fā)生之后,相應的掛起等待態(tài)進程將轉換為掛起就緒態(tài);掛起等待態(tài)—→等待態(tài)當一個進程等待一個事件時,原則上時不需要把它調入內存的。但是當一個進程退出后,主存已經(jīng)有了一大塊自由空間,而某個掛起等待態(tài)進程具有較高的優(yōu)先級并且操作系統(tǒng)已經(jīng)得知導致它阻塞的事件即將結束,此時便發(fā)生了這一狀態(tài)變化。
全文摘要
本發(fā)明公開了一種應用于Java操作系統(tǒng)中進程的實現(xiàn)和進程狀態(tài)轉換的方法。在Java操作系統(tǒng)中,定義了原子化的七個不同的進程狀態(tài)新建態(tài)、運行態(tài)、就緒態(tài)、等待態(tài)、掛起就緒、掛起等待、終止態(tài),并且Java操作系統(tǒng)中的進程可以按照系統(tǒng)條件和狀態(tài),根據(jù)設定的進程狀態(tài)切換條件,進行明確的狀態(tài)切換。這一方法在突出了Java操作系統(tǒng)中進程在安全性、靈活性方面的優(yōu)勢,從整體上提高了Java操作系統(tǒng)的運行速度,特別是在嵌入式平臺這類本身硬件運行速度不是很快時,更具有明顯的效果。
文檔編號G06F9/46GK1804806SQ200610049099
公開日2006年7月19日 申請日期2006年1月16日 優(yōu)先權日2006年1月16日
發(fā)明者陳天洲, 戴鴻君, 黃彧 申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1