Skip to content

fallantbell/NCU_linux_project2

Repository files navigation

NCU_linux_project2

目標:加入wait queue進到kernel

enter_wait_queue.c(System code)

在全域變數使用巨集 Declare_Wait_queue_head 宣告wait_queue的head
設定flag為wait queue的wake up function
image

clean_wait_queue.c(System code)

將flag設為true
並用wake up函式去將wait queue裡面的process叫醒
image

驗證

enter_queue.c

用前面的enter_wait_queue.c 的system code將process 放入隨機的wait queue當中 (p.s 應該是sleep(5))
image

執行程式後
用ctrl z暫停
然後用bg放到背景繼續執行
用ps -t檢查每個process 的status
可以看到pid 8802 的STAT 為S
代表TASK_INTERRUPTIBLE的睡眠狀態
image

clean_queue.c

用前面的clean_wait_queue.c 的system code將wait queue清空
image

因為前面pid 8802是放入wait queue 1
所以選擇清空wait queue 1
結果可以看到pid 8802被釋放出來
image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published