首页
学习
活动
专区
圈层
工具
发布

Linux进程的Uninterruptible sleep(D)状态

Linux系统进程状态 PROCESS STATE CODES Here are the different values that the s, stat and state output specifiers...D    Uninterruptible sleep (usually IO) R    Running or runnable (on run queue) S    Interruptible sleep...Linux 进程有两种睡眠状态,一种interruptible sleep,处在这种睡眠状态的进程是可以通过给它发信号来唤醒的,比如发 HUP 信号给 nginx 的 master 进程可以让 nginx...Linux进程的睡眠状态有2种:     一种是可中断睡眠,其标志位是TASK_INTERRUPTIBLE ,可中断的睡眠状态的进程会睡眠直到某个条件变为真,比如说产生一个硬件中断、释放进程正在等待的系统资源或是传递一个信号都可以是唤醒进程的条件...NFS 卷不可访问导致进程进入 D状态的,那么可以通过恢复该 NFS 卷的连接来使进程的 IO 请求得到满足,除此之外,要想干掉处在 D 状态进程就只能重启整个 Linux 系统了。

12.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    (十一)sleep(1)、sleep(0)和sleep(1000)的区别

    众所周知,sleep是让线程处于等待运行状态,不会占用CPU,OS会将执行时间分配给其它线程。 sleep(0)字面意思是睡眠0毫秒,大家可能觉得跟没写一样,其实不是的。...Sleep函数就是干这事的,他告诉操作系统“在未来的多少毫秒内我不参与CPU竞争”。 对于第一个问题:sleep(0)的作用?...由于粒度的原因,诸如sleep(1)之类的时间可能会长于1毫秒,所以sleep(1)会进入到睡眠然后进入等待状态;但sleep(0)不会,如果线程调度器的可运行队列中有大于或等于当前线程优先级的就绪线程存在...总结 Thread.Sleep(0) 并非是真的要线程挂起0毫秒,意义在于这次调用Thread.Sleep(0)的当前线程确实的被冻结了一下,让其他线程有机会优先执行。...而sleep(0)之所以马上回去参与cpu竞争,是因为调用sleep(0)后,因为0的原因,线程直接回到就绪队列,而非进入等待队列,只要进入就绪队列,那么它就参与cpu竞争。

    8.8K42

    【Linux网络】应用层协议HTTP

    在前面的文章中我们自己定义并实现了一个自定义协议,从序列化和反序列化,到封装报文,解析报文等,这就是我们自己实现的一个应用层协议。...虽然我们说, 应用层协议是我们程序员自己定的,但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用,HTTP(超文本传输协议)就是其中之一,所以下面我们就来认识一下 1...HTTP协议概述 HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网中最重要的应用层协议之一。...核心问题: 虽然解决了应用层的队头阻塞,但底层仍基于TCP。TCP在丢包时的重传机制会导致所有流(即使未被影响)等待,即TCP层的队头阻塞。

    73310

    Linux中的sleep、usleep、nanosleep、poll和select

    在进行Linux C/C++编程时,可调用的sleep函数有好多个,那么究竟应当调用哪一个了?...下表列出了这几个函数间的异同点,可作为参考: 性质 精准度 线程安全 信号安全 sleep libc库函数 秒 是 不能和alarm同时使用 有些是基于alarm实现的,所以不能和alarm同时使用...则可直接使用C++标准库提供的: 5) 毫秒睡眠 #if __cplusplus >= 201103L #include #include #include std::this_thread::sleep_for...(std::chrono::microseconds(1000)); #endif // __cplusplus >= 201103L 上述介绍的sleep函数均不方便控制它们提前结束,如果需要这种...sleep,可基于pthread_cond_timedwait实现,实现可参考CEvent源码: https://github.com/eyjian/libmooon/blob/master/src/

    6.2K40

    Linux系统之sleep命令的基本使用

    图片 一、sleep命令介绍 sleep命令是一个在Unix和类Unix操作系统中常见的命令。它允许用户可以在指定的时间内暂停当前的操作或者延迟执行下一条命令。...二、sleep的使用帮助 2.1 查看帮助信息 命令行的help帮助信息 [root@openEuler-test ~]# sleep --help Usage: sleep NUMBER[SUFFIX...> or available locally via: info '(coreutils) sleep invocation' 2.2 基本语法 基本语法sleep [选项]......5 暂停20分钟 sleep 30m 暂停2个小时: sleep 2h 暂停1天: sleep 1d 使用浮点数表示小数秒(例如,暂停0.5秒): sleep 0.5 3.2 结合多个时间单位...如下所示,结合多个时间单位(例如,暂停1小时10分钟5秒): sleep 1h10m5 四、在脚本中应用 sleep 经常被用在 shell 脚本中,以控制脚本或命令间的等待时间。

    2K20

    【Linux】应用层协议:HTTP和HTTPS

    那么有没有其他大佬针对应用层的某些使用场景,已经提前给我们写好了协议软件呢?有,这个协议就是http协议,我们当时的协议仅仅是针对计算场景所设计的,而http协议主要是针对web场景所设计的。...我用我的电脑和手机分别访问了云服务器,所以两个操作系统版本分别为x64架构的win10和基于linux的Android 13操作系统。...除将HTML文件返回给浏览器外,我们也可以将图片文件返回给浏览器,两者本质是相同的,因为在Linux下一切皆文件!...别跟我说你是音频 视频 网页 还是什么乱七八糟的东西,我linux服务器不管这些,我只认文件,无论是什么到linux这里全都是文件,所以无论返回给浏览器什么,其实无非都是把文件内容按照二进制的方式先读取到缓冲区中...需要明确的是http和https只是在技术上有交集,但在应用层两者是完全不同的协议。

    1.1K30

    Linux应用层查看系统时间的方法

    一、基本概念:     1、linux系统时间和硬件时间:     系统时间:一般来说就是我们执行date命令查看到的时间,Linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用这个时间...时区东为正,西为负,例如在中国,本地时间都是使用北京时间,在Linux上就是CST(China Standard Time,中国标准时,注意美国的中部标准时Central Standart Time也缩写为...5、last rebbot查看Linux系统最后一次启动时间 ?     6、还有一些top、w也可以查看到时间 ? ?...四、计算系统时间的程序     时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间的滴答数。...而应用层,可以利用time()、localtime()等函数,通过tm结构体得到系统时间。

    5.7K01

    【Linux网络】应用层自定义协议

    应用层 我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层. 应用层协议就是应用程序之间通信的规则和格式约定,让不同的程序能够理解彼此发送的数据含义。...这种约定就是 应用层协议 但是,为了让我们深刻理解协议,我们打算自定义实现一下协议的过程。...主机间通信的本质是 “数据拷贝”: 发送方:应用层数据 → 内核缓冲区(write拷贝) → 网络层发送。 接收方:网络层接收 → 内核缓冲区 → 应用缓冲区(read拷贝)。...接收缓冲区:用于暂存接收到的数据(等待read拷贝到应用层)。 由于双方都有独立的发送和接收缓冲区,因此可以同时进行双向数据传输(如主机A发送数据时,主机B可以同时发送数据),从而实现全双工通信。...:~/gitLinux/Linux_network/NetCal/testJson$ .

    36710

    【Linux】:应用层协议 HTTP (超文本传输协议)

    HTTP -- 概述 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用。...大多数在Linux服务器中,而在Linux当中,一切皆文件,所以 网络上获取的所有资源本质上都是文件!   ...不同于自定义应用层协议,可以随便绑定端口号,这些成熟的上层协议的端口号一般都是固定的,比如http协议的端口号就是 80。   ...并且片段标识符早期可以将图片进行轮播所用,但是现在运用的同样少了,所以这张图实际上应该如下所示: URL 与 端口号 明明 成熟的应用层协议都是与 端口号强关联的,但是这里的 url 却没有端口号 在...这是因为大多数应用层协议(如 HTTP、HTTPS、FTP 等)都有默认端口号,如果 URL 中没有显式指定端口号,客户端(如浏览器)会自动使用默认端口号(范围是 0 到 65535) HTTP

    1.5K00

    应用层

    目标: 网络应用的原理:网络应用协议的概念和 实现方面 传输层的服务模型 客户-服务器模式 对等模式(peer-to-peer) 内容分发网络 网络应用的实例:互 联网流行的应用层协 议 HTTP...通过网络基础设施提供的服 务,应用进程彼此通信 如Web: Web 服务器软件与浏览器软件 通信 网络核心中没有应用层软件 网络核心没有应用层功能 网络应用只在端系统上存在 ,快速网络应用开发和部署...应用层协议原理 网络应用的体系结构 客户-服务器模式(C/S:client/server) 对等模式(P2P:Peer To Peer) 混合体:客户-服务器和对等体系结构 1....SSL : 在TCP上面实现,提供加密的TCP连接 基本上是在应用层, 但是也可以在传输层。...Found 请求的文档在该服务上没有找到 505 HTTP Version Not Supported Trying out HTTP (client side) for yourself 在自己的linux

    1.5K10

    wait和sleep

    然后该线程将等到重新获得对监视器的所有权后才能继续执行 sleep 和 wait 有什么区别? sleep 和 wait 几乎是所有面试中必问的题,但想完全回答正确似乎没那么简单。...对于 sleep 和 wait 的区别,通常的回答是这样的: wait 必须搭配 synchronize 一起使用,而 sleep 不需要; 进入 wait 状态的线程能够被 notify 和 notifyAll...线程唤醒,而 sleep 状态的线程不能被 notify 方法唤醒;wait 通常有条件地执行,线程会一直处于 wait 状态,直到某个条件变为真,但是 sleep 仅仅让你的线程进入睡眠状态;wait...方法会释放对象锁,但 sleep 方法不会。...但上面的回答显然遗漏了一个重要的区别,在调用 wait 方法之后,线程会变为 WATING 状态,而调用 sleep 方法之后,线程会变为 TIMED_WAITING 状态。

    2.7K10
    领券