目標:加入wait queue進到kernel
在全域變數使用巨集 Declare_Wait_queue_head 宣告wait_queue的head
設定flag為wait queue的wake up function
將flag設為true
並用wake up函式去將wait queue裡面的process叫醒
用前面的enter_wait_queue.c 的system code將process 放入隨機的wait queue當中 (p.s 應該是sleep(5))
執行程式後
用ctrl z暫停
然後用bg放到背景繼續執行
用ps -t檢查每個process 的status
可以看到pid 8802 的STAT 為S
代表TASK_INTERRUPTIBLE的睡眠狀態
用前面的clean_wait_queue.c 的system code將wait queue清空
因為前面pid 8802是放入wait queue 1
所以選擇清空wait queue 1
結果可以看到pid 8802被釋放出來