36 在生產消費問題中,下列何者為計數器(counter)的主要功能?
(A) 記錄生產者數量
(B) 記錄消費者數量
(C) 記錄目前緩衝器中產品數量
(D) 記錄執行時間

答案:登入後查看
統計: A(0), B(1), C(7), D(0), E(0) #3399883

詳解 (共 2 筆)

#7318886

【第一步:找關鍵字】

關鍵字:

  • 生產消費問題(Producer-Consumer Problem)

  • 計數器(counter)

  • 緩衝器(buffer)

? 這題關鍵是:
counter 在這個模型中是在「數什麼」

【第二步:白話翻譯】

這題在問:

? 「在一個『有人生產東西、有人拿東西』的系統中,counter 是在記什麼?」

【第三步:解題思路】

這題在考什麼觀念?

? 同步問題(Synchronization)中的共享資源管理

解題步驟

  1. 理解生產消費問題

  2. 找出 buffer 的角色

  3. 思考 counter 在監控什麼

原理與規則(生活比喻)

把這個問題想成「飲料販賣機」:

  • 生產者 → 補飲料的人

  • 消費者 → 買飲料的人

  • 緩衝器(buffer) → 販賣機

  • counter → 裡面剩幾瓶飲料

? 所以 counter 是在記:

? 目前有幾個產品

【第四步:選項分析】

(A) 為什麼錯?

✘ 錯

? 不需要記生產者數量

? 系統關心的是「產品」,不是「人數」

(B) 為什麼錯?

✘ 錯

? 同理,也不需要記消費者數量

(C) 為什麼對?

✔ 正確(本題答案)

? counter 的核心用途:

記錄 buffer 裡目前有多少產品

? 用來避免:

  • overflow(放太多)

  • underflow(拿不到)

(D) 為什麼錯?

✘ 錯

? 執行時間與這個問題無關

【觀念補充與延伸】

核心觀念定位

? 作業系統 / 同步與並行(Synchronization)
? 高頻經典題

生產消費問題結構

元件 功能
Producer 放資料
Consumer 取資料
Buffer 存資料
Counter 記數量

為什麼需要 counter?

? 因為:

  • buffer 有容量限制

  • 必須知道:

    • 還能不能放

    • 還有沒有東西可拿

進階觀念(重要)

通常會搭配:

  • mutex(互斥鎖):避免同時修改

  • semaphore(號誌):控制數量

觸類旁通(舉一反三)

對比概念

  • counting semaphore vs binary semaphore
    ? counting 用來管理數量(像 counter)

變化題型

  • 問:buffer 滿時會怎樣?
    ? producer 要等待

【記憶口訣】

? 「counter 不數人,只數貨」

【常見陷阱】

學生最容易搞混的地方

以為在記「生產者或消費者數量」

心理盲點

看到 producer / consumer 就選人數

避坑指南

? 記住:

整個問題的核心是「產品流動」

0
0
#6786487
1. 題目解析 題目詢問的是計數器(c...
(共 911 字,隱藏中)
前往觀看
0
0