我的理解是,等待进程是进程在恢复活动之前等待某个事件完成的情况。处于等待状态的程序或进程在等待状态期间处于非活动状态。
基本上在上面等待某些事件发生。
睡觉呢?
Sleep
导致进程放弃其剩余时间片并在给定持续时间 Vs 内保持不可运行状态Wait
:暂停执行直到事件完成。
正如你所说的那样,一个进程等待一个事件。睡眠是时间驱动的等待。
请在 Wikipedia 上查看:http ://en.wikipedia.org/wiki/Process_state 。
A "ready" or "waiting" process has been loaded into main memory and is awaiting execution on a CPU
它在等待数据,与其他进程交互,就像等待用户查询的 Apache 服务器,这是一个更正常的进程状态......
"wait" :如果您执行了命令,shell 将等待(保持)并且不会再执行任何命令,直到命令成功完成并切换到下一个。
"sleep" : 如果你运行的命令是 sleep 10,那么它会花 10 秒不输出任何东西。因此,shell 在睡眠过程的内部等待中花费了 10 秒。
sleep: 发出此命令以在其中作为参数提到的指定时间限制内暂停系统的执行。
例如
sleep 50
上面指定的 UNIX 操作系统中的 shell 执行暂停 50 秒。
wait: wait 导致参数中指定的进程或参数中指定的作业等待等待。如果未指定任何内容,则管道中的所有作业都处于等待状态,即当前处于活动状态的所有当前子进程都处于等待状态。等待也返回返回状态。如果一个孩子在调用时已经退出(所谓的“僵尸”过程),该函数立即返回。孩子使用的任何系统资源都被释放。返回状态一般是流水线进程中最后一个作业的退出状态,进入等待状态。在未指定作业或流程的情况下,返回状态将为零。
UNIX 操作系统中等待命令的一般语法是
wait n
其中 n 是可选的,表示进程或作业
在 Unix 中
等待:是一个进程正在等待一些外部事件的事实,例如从网络接收数据,从磁盘读取字节等......
Sleeping : 是一个进程将其自身置于一个unrannable
状态一段时间的事实,它在 unix 中是如何通过警报系统调用完成的
Waiting
进程和Sleeping
进程实际上都是为了waiting
某些外部事件或信号进入ready
状态,以便它可以被调度程序拾取并馈送到 CPU 以继续其执行(running
状态)
TLDR
两者都是一个WAITING
状态。