- 论坛徽章:
- 6
|
回复 42# T-Bagwell
IO当然包括network,不过一般来说network相比于disk还是比较快的满足用户请求,所以读写disk的D状态更加常见;network同样会出现。
见下面的代码,就会将进程设置为D状态,不过时间太短,top大部分时间看不到而已。- 1600 static void __lock_sock(struct sock *sk)
- 1601 {
- 1602 DEFINE_WAIT(wait);
- 1603
- 1604 for (;;) {
- 1605 prepare_to_wait_exclusive(&sk->sk_lock.wq, &wait,
- 1606 TASK_UNINTERRUPTIBLE);
- 1607 spin_unlock_bh(&sk->sk_lock.slock);
- 1608 schedule();
- 1609 spin_lock_bh(&sk->sk_lock.slock);
- 1610 if (!sock_owned_by_user(sk))
- 1611 break;
- 1612 }
- 1613 finish_wait(&sk->sk_lock.wq, &wait);
- 1614 }
复制代码 |
|