理解“進(jìn)程”(process)

進(jìn)程,即process,到底是什么?

OSTEPv1.01第4.1節(jié)對其定義如下:

The abstraction provided by the OS of a running program is something we will call a process.

Abstraction在計算機科學(xué)和程序開發(fā)中是一個相當(dāng)重要的概念和工具,它表示對于具體細(xì)節(jié)的忽略和封裝。說進(jìn)程是OS提供的abstraction,說明所有的(至少是現(xiàn)代的)操作系統(tǒng),不管其底層實現(xiàn)如何,都有這么個相同的概念,用以代表一個正在運行的程序。

那么在這個共有的“進(jìn)程”概念下,包括了哪些相通的組成部分呢?換句話說,不管在什么操作系統(tǒng),任一時刻,某個進(jìn)程都有一個狀態(tài),那么這個狀態(tài)包括哪些內(nèi)容呢?

  • 內(nèi)存地址空間:該進(jìn)程此刻所能訪問的內(nèi)存區(qū)域,以及該區(qū)域內(nèi)的大小、具體數(shù)據(jù)等
  • 寄存器:包括程序計數(shù)器(program counter, PC)
  • IO信息:比如說該進(jìn)程此刻打開的文件、socket等
  • 運行狀態(tài):該進(jìn)程此刻是否正在CPU上運行,是否在等待IO事件等等
  • 其他信息,如該進(jìn)程當(dāng)前棧幀的位置

在每個OS的具體實現(xiàn)層面,就必須

  1. 為上面這些數(shù)據(jù)設(shè)計相應(yīng)的數(shù)據(jù)結(jié)構(gòu),除此之外OS還會定義其它的用于管理進(jìn)程的數(shù)據(jù)結(jié)構(gòu)
  2. 開發(fā)操作這些數(shù)據(jù)結(jié)構(gòu)及管理進(jìn)程的邏輯(函數(shù)),這部分屬于OS的內(nèi)部邏輯
  3. 提供OS用戶使用的操作進(jìn)程的API(system calls)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進(jìn)程 操作系統(tǒng)背景知識 顧名思義,進(jìn)程即正在執(zhí)行的一個過程。進(jìn)程是對正在運行程序的一個抽象。 進(jìn)程的概念起源于操作...
    go以恒閱讀 1,018評論 0 2
  • 必備的理論基礎(chǔ) 1.操作系統(tǒng)作用: 隱藏丑陋復(fù)雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進(jìn)程,并將多個進(jìn)程對硬件...
    drfung閱讀 3,756評論 0 5
  • 顧名思義,進(jìn)程即正在執(zhí)行的一個過程。進(jìn)程是對正在運行程序的一個抽象。進(jìn)程的概念起源于操作系統(tǒng),是操作系統(tǒng)最核心的概...
    SlashBoyMr_wang閱讀 1,290評論 0 3
  • 又來到了一個老生常談的問題,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個問題開始,來談?wù)劜?..
    tangsl閱讀 4,318評論 0 23
  • 文/tangsl(簡書作者) 原文鏈接:http://www.itdecent.cn/p/2b993a4b913e...
    西葫蘆炒胖子閱讀 3,940評論 0 5

友情鏈接更多精彩內(nèi)容