本页使用了标题或全文手工转换

行程

维基百科,自由的百科全书
(重定向自进程
跳转至: 导航搜索
各地中文名稱
大陸 进程
台灣 行程

行程英语process),是電腦中已執行程式的實體。行程為曾经是分時系統的基本運作單位。在面向进程设计的系统(如早期的UNIXLinux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,行程本身不是基本執行单位,而是執行緒的容器。程式本身只是指令、数据及其组织形式的描述,行程才是程式(那些指令和数据)的真正執行实例。若干行程有可能與同一個程式相關聯,且每個行程皆可以同步(循序)或异步(平行)的方式獨立執行。現代電腦系統可在同一段時間內以进程的形式将多個程式載入到記憶體中,並藉由時間共享(或稱时分复用),以在一個處理器上表現出同時(平行性)執行的感覺。同樣的,使用多執行緒技術(多執行緒即每一個執行緒都代表一個行程内的一个独立执行上下文)的作業系統或電腦架構,同樣程式的平行线程,可在多CPU主機或網絡上真正同時執行(在不同的CPU上)。

名稱[编辑]

  • 整批系統環境,行程稱為工作jobs)。
  • 分時系統環境,行程稱為使用者程式user progams)或任務tasks)。
  • 在多數情況,工作與行程是同義詞,但行程(process)已較為人接受

概念[编辑]

使用者下達執行程式的命令後,就會產生行程。同一程式可產生多個行程(一對多關係),以允許同時有多位使用者執行同一程式,卻不會相衝突。

行程需要一些資源才能完成工作,如CPU使用時間、記憶體、檔案以及I/O裝置,且為依序逐一進行,也就是每个CPU核心任何時間內僅能執行一項行程。

內容[编辑]

一個電腦系統行程包括(或者說「擁有」)下列資料:

  • 那個程式的可執行機器碼的一個在記憶體的映像。
  • 分配到的記憶體(通常是虛擬的一個記憶體區域)。記憶體的內容包括可執行代碼、特定於行程的資料(輸入、輸出)、呼叫堆疊、堆棧(用於保存運行時運輸中途產生的資料)。
  • 分配給該行程的資源的作業系統描述符,諸如檔案描述符(Unix術語)或檔案控制代碼(Windows)、資料源和資料終端。
  • 安全特性,諸如行程擁有者和行程的權限集(可以容許的操作)。
  • 處理器狀態(內文),諸如暫存器內容、物理記憶體定址等。當行程正在執行時,狀態通常儲存在暫存器,其他情況在記憶體。

狀態[编辑]

行程在執行時,狀態(state)會改變。所謂狀態,就是指行程目前的動作:

  • 新生(new):行程新產生中。
  • 執行(running):正在執行。
  • 等待(waiting):等待某事發生,例如等待使用者輸入完成。亦称“阻塞”(blocked
  • 就緒(ready):排班中,等待CPU。
  • 結束(terminated):完成執行。

各狀態名稱可能隨不同作業系統而相異;对于单CPU系统(UP),任何時間可能有多個行程為等待、就緒,但必定僅有一個行程在執行。

行程控制表[编辑]

執行緒[编辑]

排程[编辑]

行程間通訊(Inter-process communication[编辑]

相關[编辑]