程序執行緒
位址空間、全域性變數、開啟的檔案
程式計數器
子程序暫存器、堆疊
賬戶資訊
狀態程序維護乙個資料結構:包含程序所必須的先關資源(程序控制塊)
執行緒:核心態、使用者態、混合使用
訊息傳遞:kill -signal pid
套接字、共享記憶體、檔案、訊號量
cooperative threads-scheduling:程式自主控制
preemptive threads-scheduling:優先順序佇列
public
class
liftoff
implements
runnable
public
liftoff(int countdown)
public string status()
@override
public
void
run()
system.out.println(id);}}
public
final
static
void
main(string args)
system.out.println("waiting for liftoff.");
}
public
static
final
void
main(string args)
exec.shutdown();
system.out.println("waiting for liftoff.");
}
//解決併發程式設計的方案
2、將狀態變數修改為不可變的變數
3、在訪問狀態變數時使用同步鎖
關於linux系統的swap交換空間
LINUX擴充套件虛擬記憶體
1.檢查現有交換空間的大小 如果你想檢查你現有虛擬記憶體的大小,可以使用命令 free m root chenfancentos free m total used free shared buffers cached mem 988 164 823 0 26 48 buffers cache 90...
程序虛擬記憶體模型
以32位的作業系統為例,32位的作業系統每個程序對應的虛擬記憶體為4g 232 其中核心區1g,使用者區3g 程序控制塊pcb 1.pcb是程序存在的資料結構,系統通過pcb的存在而感知程序的存在 2.系統通過pcb對程序進行排程和管理 3.程序 pcb 與pid是一對一關係,而與程式檔案之間是多對...
程序的虛擬記憶體
程序屬性資訊的task struct結構體,其中包含程序使用的記憶體資訊。在32位的作業系統中,當程序建立的時候 程式執行時 系統會為每乙個程序分配大小為4gb的虛擬記憶體空間,用於儲存程序屬性資訊。c語言中的變數,通常使用 運算子來獲得其位址,那麼,這個位址就是虛擬位址,在簡單的微控制器中,編寫的...