-
等待隊列
鎖定
- 中文名
- 等待隊列
- 特 點
- 進程所組成的隊列
- 系 統
- linux系統
- 條 件
- 需要其他事件的發生
等待隊列操作方法
進程的狀態主要有以下幾種,Running---進程處 於運行(它是系統的當前進程)或者準備運行狀態(它在等待系統將CPU分配給它)。Waiting---進程在等待一個事件或者資源。 Stopped---進程被停止,通常是通過接收一個信號。正在被調試的進程可能處於停止狀態。Zombie(defunct)---僵死狀態。
[1]
等待隊列使用案例
struct wait_queue *wq= NULL;
read_write_t sleepy_read(struct inode *inode, struct file *flip, char *buf, count_t count)
{
printk(KERN_DEBUG "process %i (%s) going to sleep\n", current->pid, current->comm);
interruptible_sleep_on(&wq);
printk(KERN_DEBUG "awoken %i (%s)\n", current->pid, current->comm);
return 0;
}
read_write_t sleepy_write(struct inode *inode, struct file *flip, char *buf, count_t count)
{
printk(KERN_DEBUG "process %i (%s) awakening the readers\n", current->pid, current->comm);
wake_up_interruptible(&wq);
return count;