1. 程式人生 > >Linux——程序核心知識

Linux——程序核心知識

1.對於一個需求:一個專案組有好幾個使用者,所有使用者在目錄中建立檔案,可以刪除自己的檔案,但不能刪除別人的檔案,它的實現方法如下:
沾滯位:首先知道沾滯位是針對目錄來設定的。
——許可權位
實現方法:
chmod +t file:設定目錄的沾滯位
chmod -t file:取消目錄的沾滯位

2.什麼是程序?
程序是被放在一個叫做程序控制塊的資料結構中,這個程序控制塊的資料結構被稱為PCB,而不同的作業系統下PCB的種類是不同的,在Linux作業系統下的PCB為:task_struct。
(1)身份識別符號:程序id、pid
(2)記憶體指標(告訴程序對應的程式碼和程式碼依賴的資料在哪)
(3)輔助程序排程的資訊
a)優先順序,決定了程序被排程到CPU上執行的先後順序
b)上下文資訊,儲存了該程序上次在CPU上執行的現場。(暫存器)
c)記賬資訊,決定程序什麼時候佔用CPU,什麼時候放棄CPU
d)IO相關資訊
e)訊號相關資訊
3. task_struct的內容分類:
(1)程序狀態
(2)程序排程資訊
(3)識別符號
(4)程序通訊有關資訊
(5)程序連結資訊
(6)時間和定時器資訊
(7)檔案系統資訊
(8)虛擬記憶體資訊
(9)頁面管理資訊
(10)對稱多處理(SMP)資訊
(11)和處理器相關的環境(上下文)資訊