為什么需要進程
通常程序不能并發執行,因為程序并發執行的結果,是不可再現的。為了使程序,可以并發執行,且能對其加以描述和控制,引入了進程的概念。
進程的特征和定義
進程是程序的一次執行,是系統進行資源分配調度的獨立單位。
結構特征:為了使程序能夠獨立運行,應配置一個進程控制塊PCB。進程是由程序段,相關的數據段和PCB(進程控制塊)三部分構成的。
動態性:進程是程序的一次執行,由創建而產生,由調度而執行,由撤銷而消亡,進程存在一定的生命周期。
并發性:多個進程實體,同存在于內存中,且能在一段時間內同時運行。
獨立性:進程實體,是一個能獨立運行,獨立分配資源,獨立接收調度的基本單位。
異步性:進程按自己獨立的不可預知的速度推進。
進程的狀態及轉換
創建:保證進程的調度,必須在創建工作完成以后,再進行。確保,對進程控制塊PCB操作的完整性。
就緒:進程已分配到除CPU外的所有必要資源。
執行:進程已獲得CPU,其指令集正在執行。
阻塞/掛起
正在執行的進程由于發生某事件導致暫時無法繼續執行。
終止:等待其他進程收集完信息后,將刪除該進程,清空PCB并返還給系統。
下面是進程狀態圖:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
計算機操作系統-進程(1)起源、定義、組成、組織、特征
發表于 06-10 11:41
當一個進程在執行時, CPU的所有寄存器中的值、進程的狀態以及堆棧中的內容,比如各個變量和數據,包括所有的寄存器變量、進程打開的文件、內存信息等。這些信息被稱為該進程的上下文(Cont
發表于 08-05 07:11
進程定義: 可并發執行的程序,在一個數據集合上的運行過程; 申請/擁有資源的最小單位;
發表于 08-07 07:56
當一個進程在執行時, CPU的所有寄存器中的值、進程的狀態以及堆棧中的內容,比如各個變量和數據,包括所有的寄存器變量、進程打開的文件、內存信息等。這些信息被稱為該進程的上下文(Cont
發表于 08-07 08:20
信息的定義有哪些?信息有哪些基本特征?信息系統是由哪些部分組成的?信息系統的計算模式有哪幾種?
發表于 09-29 06:42
文章目錄操作系統進程和線程什么是進程?什么是線程?進程和線程有什么區別?何時使用多進程,何時使用多線程?
發表于 12-24 07:16
Linux進程管理
本章主要介紹進程的概念、狀態、構成以及Linux進程的相關知識。
掌握進程的概念
掌握進程的描述、狀態及轉換
理
發表于 04-28 14:57
?0次下載
線程和進程的區別在于,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文。多
發表于 07-20 07:48
?1960次閱讀
進程凍結技術(freezing of tasks)是指在系統hibernate或者suspend的時候,將用戶進程和部分內核線程置于“可控”的暫停狀態。
2 為什么需要凍結技術
發表于 05-06 16:00
?769次閱讀
線程是CPU調度的最小單位(程序執行流的最小單元),它被包含在進程之中,是進程中的實際運作單元。一條線程是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的
發表于 11-20 10:23
?2631次閱讀
Daemon 進程生命周期長且在后臺運行。編寫daemon進程需要遵循哪些規則呢? 1、執行fork()函數,父進程退出,子進程繼續 執行這
發表于 12-07 16:24
?1411次閱讀
教程 2:添加特征 - 自定義配置文件創建
發表于 03-15 19:39
?0次下載
教程 2:添加特征 - 自定義配置文件創建
發表于 07-06 18:50
?0次下載
進程有哪些狀態?這個問題在面試的時候出現的概率也比較高。
發表于 07-25 17:06
?1279次閱讀
進程中的指令已經執行完成,但是進程PCB結構還沒有回收。
即子進程先于父進程退出后,子進程的PCB
發表于 11-29 15:52
?6963次閱讀
評論