民國111年 第2梯次 電腦軟體設計(C++)乙級 學科
第62題
有關於資料庫的並行控制,下列那些敘述是正確的?
題目
有關於資料庫的並行控制,下列那些敘述是正確的?
- (1) 二元鎖定的lock 與unlock 指令可以交錯執行,因此可以同時有兩個在等待佇列中的交易(Transaction)一起存取lock 的同一個資料項
- (2) 某個優先權較低的交易可能會無止盡的一直等待執行,此時發生了飢餓(Starvation)現象
- (3) 當兩個交易互相等待被對方lock 的資料項時,此時發生了死結(Dead lock)現象
- (4) 二元鎖定(Binary Lock)只能有兩種狀態lock 與unlock,多重模式鎖定(Multi-Mode Lock)則可以有read_lock、write_lock、un lock 等多種指令
官方答案
(2) 某個優先權較低的交易可能會無止盡的一直等待執行,此時發生了飢餓(Starvation)現象、(3) 當兩個交易互相等待被對方lock 的資料項時,此時發生了死結(Dead lock)現象、(4) 二元鎖定(Binary Lock)只能有兩種狀態lock 與unlock,多重模式鎖定(Multi-Mode Lock)則可以有read_lock、write_lock、un lock 等多種指令
解析
並行控制中,二元鎖定(Binary Lock)只有 lock 與 unlock 兩態,同一時間僅一交易持有鎖定,等待佇列須依序取得,不可能兩個同時存取同資料項,故選項 1 錯誤。選項 2:排程使低優先權交易長期得不到資源而無止盡等待,稱飢餓(Starvation),正確。選項 3:兩交易各自持有對方所需鎖定並互相等待,形成循環等待即死結(Deadlock),正確。選項 4:二元鎖定僅 lock/unlock;多重模式鎖定(共享/排他)則有 read_lock、write_lock、unlock 等,正確。故正確為 2、3、4。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。