多執行緒的作業系統

2022-06-23 15:33:37 字數 505 閱讀 1271

在支援多執行緒的作業系統中,假設程序p建立了若干個執行緒,那麼(47)是不能被其他執行緒共享的。

(47)a.該程序的**段       b.該程序中開啟的檔案

c.該程序的全域性變數      d.該程序中執行緒的棧指標

【答案】d

【解析】

同一程序間的執行緒共享的資源包括:

1、堆:由於堆是在程序空間中開闢出來的,所以它是理所當然地被共享的。

2、全域性變數:它是與具體某一函式無關的,所以也與特定執行緒無關;因此也是共享的

3、靜態變數:雖然對於區域性變數來說,它在**中是“放”在某一函式中的,但是其存放位置和全域性變數一樣,存於堆中開闢的.bss和.data段,是共享的。

4、檔案等公用資源:使用這些公共資源的執行緒必須同步。win32 提供了幾種同步資源的方式,包括訊號、臨界區、事件和互斥體。

獨享的資源有:

1、棧:每個執行緒中的棧都是由執行緒自身獨享的。

2、暫存器:每個執行緒執行指令時,都要用到暫存器,執行緒間的暫存器並不共享。