在支援多執行緒的作業系統中,假設程序p建立了若干個執行緒,那麼(47)是不能被其他執行緒共享的。
(47)a.該程序的**段 b.該程序中開啟的檔案
c.該程序的全域性變數 d.該程序中線程的棧指標
【答案】d
【解析】
同一程序間的執行緒共享的資源包括:
1、堆:由於堆是在程序空間中開闢出來的,所以它是理所當然地被共享的。
2、全域性變數:它是與具體某一函式無關的,所以也與特定執行緒無關;因此也是共享的
3、靜態變數:雖然對於區域性變數來說,它在**中是「放」在某一函式中的,但是其存放位置和全域性變數一樣,存於堆中開闢的.bss和.data段,是共享的。
4、檔案等公用資源:使用這些公共資源的執行緒必須同步。win32 提供了幾種同步資源的方式,包括訊號、臨界區、事件和互斥體。
獨享的資源有:
1、棧:每個執行緒中的棧都是由執行緒自身獨享的。
2、暫存器:每個執行緒執行指令時,都要用到暫存器,執行緒間的暫存器並不共享。
作業系統 多程序 多執行緒
對比維度 多程序多執行緒 結論資料共享 資料共享複雜,需要用ipc 共享程序資料,資料共享簡單 多程序 多執行緒 資料同步 資料是分開的,同步簡單 因為共享程序資料,同步複雜 多程序 多執行緒 記憶體 cpu 占用記憶體多,切換複雜,cpu利用率低 占用記憶體少,切換簡單,cpu利用率高 多程序 多...
多執行緒(李森作業系統)
hw9 互斥量 mutex是用來保護資源的。cond是用來通知喚醒的一種機制,如a等待b的輸出結果,a可呼叫pthread cond wait來等待,b輸出結果後可以通知a,告訴他b的工作已經結束,a可以繼續執行了。b呼叫thread cond signal or pthread cond broa...
linux多執行緒 作業系統執行緒同步互斥
這一目主要我想得是理論和實際結合的辦法去做,先將理論,把這塊在作業系統中的內容先進行陳述。然後用linux下的 去真正實現。perterson演算法是用來是實現對臨界區資源的互斥訪問,它是用軟體的機制實現。也就是說在linux系統程式設計當中,如果不讓你使用pthread mutex t mutex...