1.程序生命週期
執行:該程序此刻正在執行。
2.程序表示
include/linux/sched.h中有結構體struct task_struct;表示了程序的所有資訊。
struct task_struct
;
程序限制:
rlimit_cpu #按毫秒計算的最大cpu時間
rlimit_fsize #允許的最大檔案長度
rlimit_data #資料段的最大長度
rlimit_stack #(使用者狀態)棧的最大長度
rlimit_core #記憶體轉儲檔案的最大長度
rlimit_rss #常駐記憶體的最大尺寸。換句話說,程序使用頁幀的最大數目。目前未使用
rlimit_nproc #與進**正uid關聯的使用者可以擁有的程序的最大數目
rlimit_nofile #開啟檔案的最大數目
rlimit_memlock #不可換出頁的最大數目
rlimit_as #程序占用的虛擬位址空間的最大尺寸
rlimit_locks #檔案鎖的最大數目
rlimit_sigpending #待決訊號的最大數目
rlimit_msgqueue #資訊佇列的最大數目
rlimit_nice #非實時程序的優先順序(nice level)
rlimit_rtprio #最大的實時優先順序
命名空間:
概念:就是c++命名空間的意思,隔離資源。
建立:1.用fork或者clone系統呼叫建立新程序時,有特定的選項可以控制使用使用新命名空間或者使用父命名空間。
2.unshare系統呼叫將程序的某些部分與父程序分離,包括命名空間。
程序類中命名空間結構體:
struct nsproxy
;
程序id號:
unix程序總是會分配乙個號碼用於在其命名空間中唯一地標識它們。該號碼被稱作程序id號,
簡稱pid。用fork或clone產生的每個程序都由核心自動地分配了乙個新的唯一的pid值。
3.程序的系統呼叫
fork->sys_fork }
vfork->sys_vfork }---->do_fork
clone->sys_clone }
//arch/x86/kernel/process_32.c
asmlinkage int
sys_clone
(struct pt_regs regs)
asmlinkage int
sys_fork
(long r10,
long r11,
long r12,
long r13,
long mof,
long srp,
struct pt_regs *regs)
//kernel/fork.c
long
do_fork
(unsigned
long clone_flags,
unsigned
long stack_start,
struct pt_regs *regs,
unsigned
long stack_size,
int __user *parent_tidptr,
int __user *child_tidptr)
核心功能流程:
1.檢查標誌
2.dup_task_struct
3.檢查資源限制
4.初始化task_struct
5.sched_fork
6.複製/共享程序的各個部分。
7.設定各個程序id,程序關係,等等。
表現形式CSS
css cascading stylesheets的縮寫 翻譯為 層疊樣式表 或者 級聯樣式表 簡稱樣式表 cascading stylesheets 的首字母縮寫,意思是層疊樣式表。有了css,html中大部分表現樣式的標籤就廢棄不用了,html只負責文件的結構和內容,表現形式完全交給css,ht...
多型的表現形式
目錄 1.多型的定義 2.多型的三種形式 3.多型的編譯和執行 4.多型的轉型 5.多型的好處 6.多型的弊端 多型 封裝和繼承是物件導向的三大特性。多型需滿足三個條件 1 有繼承 2 有重寫 3 有父類引用指向子類物件。最終多型體現為父類引用可以指向子類物件 父類型別 變數名 new 子類型別 1...
vue import的幾種表現形式
在使用vue開發專案的時候,很多使用會import很多模組,或者元件,下面說下import的幾種表現形式 例如 我在 src api table.js import request from utils request export function getlist params export fu...