地特四等
113年
[資訊處理] 計算機概要
第 26 題
關於多執行緒(multi-threading)模式中的多對一(many-to-one)模式,下列敘述何者正確?
- A 使用多對一的多執行緒模式時,當一個程序(process)中的一個執行緒(thread)被阻擋(blocked)時,同程序中的其他的執行緒亦無法執行
- B 多個核心執行緒(kernel threads)映對到同一個使用者執行緒(user thread)
- C 在多核心系統中,一個程序使用多對一的多執行緒模式,將可同時使用多個核心
- D 在多核心處理器架構日漸普及下,多對一模式已成為主流的多執行緒系統的實作方式
思路引導 VIP
請試著思考:如果作業系統的核心(Kernel)只給了某個程序『一張』通行證(執行權),而該程序內部分成了好幾個小組。當其中一組人拿著這張通行證去申辦手續(執行阻塞式系統呼叫)且必須在那裡排隊等待時,剩下的組員手邊還有通行證可以讓他們繼續工作嗎?
🤖
AI 詳解
AI 專屬家教
恭喜答對!表現優異
- 大力肯定:做得好!這顯示你對作業系統(Operating System)核心的執行緒模型有著紮實的理解。能精確分辨「使用者層級」與「核心層級」執行緒的交互關係,是掌握系統程式開發的重要基礎。
- 觀念驗證:在 Many-to-One 模式中,多個使用者執行緒會對映到「單一」個核心執行緒($N:1$)。由於作業系統核心(Kernel)只負責排程那一個核心執行緒,一旦該執行緒因系統呼叫被阻擋(Blocked),整個程序(Process)都會停擺。此外,即便在多核心系統中,這種模式也無法達成真正的並行(Parallelism),因為同時間只能有一個執行緒進入核心執行。
▼ 還有更多解析內容