程式
程式:
進行就是正在進行中的程式,程式執行起來需要被載入到記憶體中。程式就是作業系統的描述,這個描述叫PCB(程式控制塊),Linux下PCB有自己的名字叫task_struct。而作業系統就是使用task_struct結構體描述程式,使用雙向連結串列來將這些結構體組織起來進行管理。
task_struct(PCB)內容分類:
識別符號:就是程式的PID。
狀態:任務狀態、退出程式碼,退出訊號等。
優先順序:相對於其他程式的優先順序。
程式計數器:程式中即將被執行的下一條指令的地址。
記憶體指標:包括程式程式碼和程式相關資料的指標,還有和其他程式共享的記憶體塊的指標。
上下文資料:程式執行時處理器的暫存器中的資料。
I/O狀態資訊:包括顯示的I/O請求,分配給程式的I/O裝置和被程式使用的檔案列表。
記賬資訊:可能包括處理器時間總和,使用的時鐘數總和,時間限制,記賬號等。
每個程式都會有一個非負整數的表示的唯一程式ID,因為程式識別符號總是唯一的,但程式ID是可複用的,當一個程式終止後,其程式ID就會成為複用的候選者,但系統會實現延遲複用演算法,使得新程式的ID不同於最近終止程式所使用的ID。
那麼,到底什麼是程式呢?又為什麼要有程式?
CPU一次只能處理一個程式,CPU速度很快,而記憶體很慢,所以CPU會有大量的時間都是空閒的。而CPU又是很昂貴的,為了解決浪費CPU的情況,就出現了中斷處理,將程式分成一小片一小片的,這個程式執行一點,那個程式執行一點。雖然在內部程式的執行是一段一段的,但是CPU的速度很快的(速度都是納秒級別的),所以我們是感受不到程式執行過程中的停頓的。
檢視程式資訊的命令
ps -ef:檢視所有的程式資訊。
ps aux:檢視程式的詳細資訊。
top;(檢視程式的資訊)
檢視你所要的程式資訊: ps -ef | 名字。
getpid();(在程式碼中獲取一個程式的id)(一個系統的呼叫介面)
#include<stdio.h>
int main()
{
printf("%d\n", getpid());//使用getpid()來獲取一個程式的id
return 0;
}
相關文章
- Linux——程式建立、程式終止、程式等待、程式程式替換Linux
- 子程式、孤兒程式,殭屍程式, init程式
- 程式——父子程式共享
- python併發程式設計之程式1(守護程式,程式鎖,程式佇列)Python程式設計佇列
- Perl程式:殭屍程式和孤兒程式
- 小程式開發,小程式代理,小程式加盟,小程式創業創業
- 程式-程式-執行緒執行緒
- 小程式5:FTP程式FTP
- iPhone程式本地程式支援iPhone
- 智慧城市同城小程式程式 附帶前端程式前端
- 作業系統系列----程式與程式 程式的描述作業系統
- Python 中子程式與父程式Python
- 無程式碼程式設計程式設計
- 殭屍程式,孤兒程式
- [python] 多程式程式設計Python程式設計
- 程式等待和程式替換
- 《程式碼大全》程式碼生成
- Python多程式程式設計Python程式設計
- 小程式3:ATM小程式
- windows核心程式設計--程式Windows程式設計
- fork、父程式和子程式
- python程式碼打包exe程式Python
- Linux:程式模型和程式管理Linux模型
- linux 檢視程式 kill程式Linux
- Qt啟動子程式,子程式關閉時通知主程式,實現主程式對子程式的管理QT
- Linux系統程式設計——特殊程式之孤兒程式Linux程式設計
- 控制程式碼表篇——程式控制程式碼表
- 小程式程式碼打包處理
- Python網路程式設計——程式Python程式設計
- Python編寫守護程式程式Python
- ‘程式語言‘ ’程式設計工具’程式設計
- 入門程式碼程式設計程式設計
- 小程式商城前端程式碼流程前端
- Python程式py程式碼加密方法Python加密
- 低程式碼VS無程式碼
- 殭屍程式和孤兒程式
- 初識程式(一)——作業系統,程式管理,程式狀態作業系統
- Linux socke server程式設計:父程式和子程式關係LinuxServer程式設計