Try   HackMD

2024q1 第 8 週測驗題

目的: 檢驗學員對 concurrency 的認知

作答表單: 測驗 1 (針對 Linux 核心「設計」課程)

測驗 1

task 是個運用 coroutine 實作的任務排程器,允許搭配 POSIX Thread 使用,使用 C11 Atomics 和 x86-64 組合語言開發。

編譯方式:

$ gcc -O2 -Wall -Wextra -std=gnu11 \
      -o test_task \
      test_task.c task.c \
      -lpthread    

參考執行輸出:

test_task_start
test_task_sleep
test_task_pause
test_task_exit
test_task_order
test_task_detach

預期不會觸發任何 assert。

作答規範:

  • AAAA 和 CCCC 是 bool 型態,亦即 truefalse
  • BBBB 是 C11 Atomics 提供的函式
  • 以最精簡的形式書寫