- 進程信息被放在一個叫做進程控制塊的數據結構中,可以理解爲進程屬性的集合。
- linux操作系統下的PCB是task_struct
- 標識符:描述本進程的唯一標識符,用來區別其它進程。(pid)
- 狀態:任務狀態,退出碼,進程信號。
- 優先級:相對於其他進程的優先級。
- 程序計數器:程序中即將被執行的下一條指令地址。
- 內存指針:包括程序代碼的進程相關數據指針,還有其他進程共享的內存塊指針。
- 上下文數據:進程執行時處理器寄存器中數據[休學例子,要加圖CPU,寄存器]。
- I/O的狀態信息:包括顯示I/O請求,分配給進程的I/O設備和被進程使用的文件列表。
- 記賬信息:可能包括處理器時間總合,使用的時鐘數總合,時間限制,記賬號等。
- 其他。
一個進程從創建到終止叫做該進程的生存期(lifetime)。進程在其生存期內使用CPU的時間,內核都要進行記錄,以便進行統計、計費等有關操作。進程耗費CPU的時間由兩部分組成:一是在用戶模式(或稱爲用戶態)下耗費的時間、一是在系統模式(或稱爲系統態)下耗費的時間。每個時鐘滴答,也就是每個時鐘中斷,內核都要更新當前進程耗費CPU的時間信息。
可以看一下這篇文章:
Linux中的task_struct結構體 - CSDN博客 http://blog.csdn.net/Silence723/article/details/52035720