PCB--task_struct

要說task_stuct,必須要說進程控制塊 PCB (Process Control Block),PCB是作爲進程是否存在的標誌。(如果有心得PCB產生就說明有進程產生)
  • 進程信息被放在一個叫做進程控制塊的數據結構中,可以理解爲進程屬性的集合。
  • linux操作系統下的PCB是task_struct
task_struct是linux內核的一種數據結構,它會被裝載到 RAM(內存)裏幷包含着進程信息。
task_struct都包含以下內容

  • 標識符:描述本進程的唯一標識符,用來區別其它進程。(pid)
  • 狀態:任務狀態,退出碼,進程信號。
  • 優先級:相對於其他進程的優先級。
  • 程序計數器:程序中即將被執行的下一條指令地址。
  • 內存指針:包括程序代碼的進程相關數據指針,還有其他進程共享的內存塊指針。
  • 上下文數據:進程執行時處理器寄存器中數據[休學例子,要加圖CPU,寄存器]。
  • I/O的狀態信息:包括顯示I/O請求,分配給進程的I/O設備和被進程使用的文件列表。
  • 記賬信息:可能包括處理器時間總合,使用的時鐘數總合,時間限制,記賬號等。
  • 其他。
      
      1.進程狀態
      可運行狀態、等待狀態、暫停狀態、僵死狀態
2.優先級
調度程序利用這部分信息決定系統中哪個進程最應該運行,並結合進程的狀態信息保證系統運轉的公平和高效。這一部分信息通常包括進程的類別(普通進程還是實時進程)、進程的優先級等等
3.時間和定時器信息

一個進程從創建到終止叫做該進程的生存期(lifetime)。進程在其生存期內使用CPU的時間,內核都要進行記錄,以便進行統計、計費等有關操作。進程耗費CPU的時間由兩部分組成:一是在用戶模式(或稱爲用戶態)下耗費的時間、一是在系統模式(或稱爲系統態)下耗費的時間。每個時鐘滴答,也就是每個時鐘中斷,內核都要更新當前進程耗費CPU的時間信息。

可以看一下這篇文章:

Linux中的task_struct結構體 - CSDN博客 http://blog.csdn.net/Silence723/article/details/52035720







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章